NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev
Stateful provider-neutral PCM transforms, meters, and WAV utilities.
Last release 2 months 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
2 months old
2 releases · first in 2026
One column per month.
Add AecDelayEstimator: envelope cross-correlation delay estimation between a loopback reference and a microphone capture, with recency-weighted median
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; see
AecDelayEstimator.defaultMinNearStd.AecBlockAccumulator plus floatToPcm16/pcm16ToFloat for chopping
float32 captures into the exact 10 ms int16 blocks an echo canceller requires.mixTracksToMono and peakBuckets for offline mixdown and waveform
rendering of completed recordings of differing lengths, which the streaming
AudioMixer cannot express.NOTICE.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.AdaptiveGain and AdaptiveGainProcessor: 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.SegmentedWavRecorder rotates 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 new
SegmentedWavStorage/SegmentedWavStorageFile ports;
LocalSegmentedWavStorage is the dart:io adapter.recoverSegmentedWavRecording
repairs every segment named by the durable sidecar after an interrupted
process, and repairWavStorageFile repairs one canonical WAV held in any
SegmentedWavStorageFile. repairWavFileHeader covers the path-based
dart:io case.WavFileAudioSource: an AudioSource over a canonical WAV file for
offline pipelines.dart:io barrel split intact for the new APIs:
audio_processing.dart exports only portable code (recorder, manifest,
storage ports, storage-based recovery), while audio_processing_io.dart
adds LocalSegmentedWavStorage, WavFileAudioSource, WavFileAudioSink,
and repairWavFileHeader. SegmentedWavRecorder.create and
recoverSegmentedWavRecording take required storage instead of a
directoryPath convenience, so portable code never constructs dart:io
storage implicitly.- Initial public release.
Your coding agent can read these notes before it upgrades. Set up the MCP server →