audio_processing
Stateful provider-neutral PCM transforms, meters, and WAV utilities.
0.2.0
kshdotdev/audio-kit-dart
What this package is like to depend on
Last release 18 days ago
06 Aug 2026
Too new to tell
only 2 dated releases
Nearly every release is documented
notes for 2 of 2 stable releases
Nothing withdrawn
no release was ever pulled
0 months old
2 releases · first in 2026
2 releases in the last 12 months
see the full history below
Release timeline
2 releases · Jul 2026 to Aug 2026Releases
latest 2-
0.2.006 Aug 2026Release notes
Open source →- Add
AecDelayEstimator: envelope cross-correlation delay estimation between a loopback reference and a microphone capture, with recency-weighted median smoothing and two lock tiers. Amplitude thresholds are float32-native; seeAecDelayEstimator.defaultMinNearStd. - Add
AecBlockAccumulatorplusfloatToPcm16/pcm16ToFloatfor chopping float32 captures into the exact 10 ms int16 blocks an echo canceller requires. - Add
mixTracksToMonoandpeakBucketsfor offline mixdown and waveform rendering of completed recordings of differing lengths, which the streamingAudioMixercannot express. - Adapted from Control Center (MIT © 2026 Samuel Alev); see
NOTICE. - Add
AudioRing: a fixed-capacity float32 ring addressed by a monotonic absolute write index, so a position reported by a VAD — counted from the start of the stream — indexes the audio directly no matter how often the buffer has wrapped. Ranges older than the capacity are clipped rather than wrapped, because returning samples from the wrong moment is indistinguishable from success. Defaults to 160,000 samples, ten seconds at 16 kHz. - Add
AdaptiveGainandAdaptiveGainProcessor: slow automatic gain control that amplifies quiet capture toward a 0.3 target peak (30x ceiling, 0.995 per-chunk running-peak decay, 1.05 deadband) and never attenuates. Speech models trained on normalized audio collapse on the 0.05-peak recordings real microphones produce; the slow decay is what keeps the noise floor from being pumped up between utterances. The processor keeps one running peak per stream and drops it on a discontinuity. - Add segmented WAV recording:
SegmentedWavRecorderrotates bounded WAV segments while durably mirroring a JSON sidecar (SegmentedWavRecordingManifest) with pause/resume/source-change markers, bounded queue policies (wait,dropNewest,failRecorder), and a stable failed state on segment IO errors. Storage is injected through the newSegmentedWavStorage/SegmentedWavStorageFileports;LocalSegmentedWavStorageis thedart:ioadapter. - Add crash recovery for segmented recordings:
recoverSegmentedWavRecordingrepairs every segment named by the durable sidecar after an interrupted process, andrepairWavStorageFilerepairs one canonical WAV held in anySegmentedWavStorageFile.repairWavFileHeadercovers the path-baseddart:iocase. - Add
WavFileAudioSource: anAudioSourceover a canonical WAV file for offline pipelines. - Keep the portable/
dart:iobarrel split intact for the new APIs:audio_processing.dartexports only portable code (recorder, manifest, storage ports, storage-based recovery), whileaudio_processing_io.dartaddsLocalSegmentedWavStorage,WavFileAudioSource,WavFileAudioSink, andrepairWavFileHeader.SegmentedWavRecorder.createandrecoverSegmentedWavRecordingtake required storage instead of adirectoryPathconvenience, so portable code never constructsdart:iostorage implicitly.
- Add
-
0.1.027 Jul 2026