{"adoption": {"forks": 129, "observed_at": "2026-08-28T04:04:09.567876+00:00", "stars": 1258}, "canonical_url": "https://ross.abutalabs.com/products/dswaveformimage", "card": {"archived": false, "artifact_type": "library", "description": "Generate waveform images from audio files on iOS, macOS & visionOS in Swift. Native SwiftUI & UIKit views.", "domain": ["mobile-development", "desktop-applications", "graphics"], "enriched": true, "function": ["audio-processing", "image-processing", "ui-components"], "health_score": 89, "homepage": null, "language": "Swift", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["dmrschmidt/DSWaveformImage"], "name": "dmrschmidt/DSWaveformImage", "platform": ["cross-platform"], "pushed_at": "2026-05-17T09:14:09+00:00", "repo": "dmrschmidt/DSWaveformImage", "stars": 1258, "tags": ["swiftui", "uikit", "waveform", "fft", "visionos", "mac-catalyst", "audio-visualization", "audio", "ios", "macos", "swift"], "topics": ["audio-analysis", "audio-visualizer", "waveform-images", "waveform", "audio-files", "fourier-transform", "fft", "swift", "ios", "swiftui", "mac-catalyst", "catalyst", "ipad", "ipados", "macos", "macosx", "vision-os", "visionos"], "urls": [], "use_cases": ["render waveform images from audio files in swift", "show audio waveform in swiftui view", "display live waveform while recording on ios", "extract amplitude samples from an audio file", "draw circular or stereo waveforms in an ios app"], "what_it_is": "A Swift library that generates waveform images from audio files on iOS, iPadOS, macOS, visionOS, and Mac Catalyst. It provides native SwiftUI and UIKit views plus a raw API for rendering waveforms to UIImage/NSImage or extracting normalized audio samples.", "when_to_avoid": ["you need waveform rendering on non-Apple platforms", "you need full audio playback or editing, not just visualization", "you need cross-platform (Android/web) audio visualization"], "when_to_choose": ["you need native Apple-platform waveform rendering with SwiftUI or UIKit views", "you want customizable waveform styles and renderers (linear, circular, stereo)", "you need both image rendering and raw sample analysis"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dswaveformimage", "repo": "dmrschmidt/DSWaveformImage", "role": "main", "score": 82}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.567876+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T05:05:35.125828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a45dec77c9573e21986775eb6cd0745e01026656323a647ee29ccd59f8f1e257", "fetched_at": "2026-08-28T04:04:09.567876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmrschmidt/DSWaveformImage"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.567876+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T05:05:35.125828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a45dec77c9573e21986775eb6cd0745e01026656323a647ee29ccd59f8f1e257", "fetched_at": "2026-08-28T04:04:09.567876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmrschmidt/DSWaveformImage"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T05:05:35.125828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a45dec77c9573e21986775eb6cd0745e01026656323a647ee29ccd59f8f1e257", "fetched_at": "2026-08-28T04:04:09.567876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmrschmidt/DSWaveformImage"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.567876+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.567876+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.567876+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T05:05:35.125828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a45dec77c9573e21986775eb6cd0745e01026656323a647ee29ccd59f8f1e257", "fetched_at": "2026-08-28T04:04:09.567876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmrschmidt/DSWaveformImage"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.567876+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.567876+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T05:05:35.125828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a45dec77c9573e21986775eb6cd0745e01026656323a647ee29ccd59f8f1e257", "fetched_at": "2026-08-28T04:04:09.567876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmrschmidt/DSWaveformImage"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.567876+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.567876+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.567876+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T05:05:35.125828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a45dec77c9573e21986775eb6cd0745e01026656323a647ee29ccd59f8f1e257", "fetched_at": "2026-08-28T04:04:09.567876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmrschmidt/DSWaveformImage"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.567876+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:09.567876+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T05:05:35.125828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a45dec77c9573e21986775eb6cd0745e01026656323a647ee29ccd59f8f1e257", "fetched_at": "2026-08-28T04:04:09.567876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmrschmidt/DSWaveformImage"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T05:05:35.125828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a45dec77c9573e21986775eb6cd0745e01026656323a647ee29ccd59f8f1e257", "fetched_at": "2026-08-28T04:04:09.567876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmrschmidt/DSWaveformImage"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T05:05:35.125828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a45dec77c9573e21986775eb6cd0745e01026656323a647ee29ccd59f8f1e257", "fetched_at": "2026-08-28T04:04:09.567876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmrschmidt/DSWaveformImage"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T05:05:35.125828+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a45dec77c9573e21986775eb6cd0745e01026656323a647ee29ccd59f8f1e257", "fetched_at": "2026-08-28T04:04:09.567876+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmrschmidt/DSWaveformImage"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 82, "longevity": 100, "rhythm": 72}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4684, "days_push": 108, "days_rel": 109, "gap_med": 57.0, "n_releases_24m": 3}, "score": 82, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}