Skip to content

v1.5.1 — Audio-clock offset drift tracking

Pre-release
Pre-release

Choose a tag to compare

@macswg macswg released this 30 May 05:07
· 28 commits to main since this release

⚠️ Deprecated — do not use. This release predates v1.7.6 and contains measurement/decode bugs fixed in later versions. Please use the latest release.


Released 2026-05-29.

Fixes

  • Audio-clock offset now tracks drift instead of freezing at a one-shot value (#56, #52). The audio-clock → performance.now() offset used to translate worklet chunk stamps was sampled once per wired source and held constant for the session. It now re-samples AudioContext.getOutputTimestamp() at most once per 2 s and EMA-tracks the result (alpha 0.2). Two consequences:

    • Slow ADC-clock drift (~10 ms/hr) is followed rather than accumulating unbounded within a session.
    • A one-shot read taken while the main thread was momentarily busy — especially the receipt-time fallback — no longer bakes that jitter in as a permanent bias that could push decoded-frame timestamps intermittently past the 200 ms freshness gate (a possible cause of spurious lock-loss flicker).

    Chunk-to-chunk deltas are preserved exactly, so the LSQ carrier-rate classifier is unaffected.

Investigation note: #56 (glitching after a significant timecode change) is not closed by this — the offset path was ruled a weak fit for that trigger; this change removes it from suspicion so future repros isolate the real (likely decoder-state) cause.

Full changelog: v1.5.0...v1.5.1