{"id":17284119,"url":"https://github.com/pixlwave/waveform","last_synced_at":"2026-03-10T14:04:17.441Z","repository":{"id":63920316,"uuid":"340441922","full_name":"pixlwave/Waveform","owner":"pixlwave","description":"An interactive audio waveform made with SwiftUI.","archived":false,"fork":false,"pushed_at":"2024-02-29T08:10:36.000Z","size":37616,"stargazers_count":85,"open_issues_count":8,"forks_count":13,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-20T20:48:36.684Z","etag":null,"topics":["avfoundation","swiftui","swiftuijam","waveform"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pixlwave.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-19T17:29:05.000Z","updated_at":"2025-12-13T12:03:17.000Z","dependencies_parsed_at":"2024-10-15T10:03:15.603Z","dependency_job_id":null,"html_url":"https://github.com/pixlwave/Waveform","commit_stats":{"total_commits":57,"total_committers":2,"mean_commits":28.5,"dds":0.08771929824561409,"last_synced_commit":"f8c7066bbdd08db84817e8be9b19534b03fdd913"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/pixlwave/Waveform","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixlwave%2FWaveform","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixlwave%2FWaveform/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixlwave%2FWaveform/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixlwave%2FWaveform/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pixlwave","download_url":"https://codeload.github.com/pixlwave/Waveform/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pixlwave%2FWaveform/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30336093,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T12:41:07.687Z","status":"ssl_error","status_checked_at":"2026-03-10T12:41:06.728Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["avfoundation","swiftui","swiftuijam","waveform"],"created_at":"2024-10-15T09:53:10.727Z","updated_at":"2026-03-10T14:04:17.403Z","avatar_url":"https://github.com/pixlwave.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Waveform\n\nA SwiftUI Package to display an interactive waveform of an audio file.\n\n![Zooming Waveform](https://github.com/pixlwave/Waveform/blob/main/Images/zoom.gif?raw=true)\n\nThe project is currently in a very early stage having been created as part of SwiftUI Jam 2021. Code from the end of the Jam will be in the [swiftuijam](https://github.com/pixlwave/Waveform/tree/swiftuijam) branch.\n\n## Installation\n\nTo include it in your Xcode project click `File | Swift Packages | Add Package Dependency…` and enter the following url:\n\n```\nhttps://github.com/pixlwave/Waveform\n```\n\nFor now, you'll need to select `Branch` and ensure it's set to `main` until v0.1.0 is released.\n\n## Usage\n\n![Waveform Selection](https://github.com/pixlwave/Waveform/blob/main/Images/select.gif?raw=true)\n\nTo use Waveform create a `WaveformGenerator` object with your audio file:\n\n```swift\nlet audioFile = try! AVAudioFile(forReading: URL))!\nlet generator = WaveformGenerator(audioFile: audioFile)   // this generator object is observable\n```\n\nAnd then pass this to a `Waveform` along with a selection range if you need this:\n\n```swift\nvar body: some View {\n    Waveform(generator: generator, selectedSamples: $selection, selectionEnabled: .constant(true))\n}\n```\n\nThe colour scheme can be customised via the standard colour modifiers:\n\n```swift\nWaveform(generator: generator, selectedSamples: $selection, selectionEnabled: .constant(true))\n    .foregroundColor(waveformColor)\n    .background(backgroundColor)\n    .accentColor(selectionColor)\n```\n\n## Caveats\n\n- More work is required on optimisation for acceptable performance on older devices.\n- Any audio file you use is loaded into memory in the `WaveformGenerator`. For now it would be worth watching your app's memory usage until this is addressed.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpixlwave%2Fwaveform","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpixlwave%2Fwaveform","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpixlwave%2Fwaveform/lists"}