Commit d99587b
Add CX audio expander (IEC 60857 Appendix B decoder)
Implement the CBS CX noise-reduction expander as a standalone
post-processor for ld-decode's analog audio, plus the mirror-image
compressor for round-trip testing (lddecode/cx.py).
Single njit control-path loop (500 Hz sidechain HPF, full-wave
rectifier + knee clamp, fast/slow followers on a common capacitor,
attack compensator, reciprocal VCA), runtime self-calibration of V_CR
from the implemented detector, streaming state, and a CLI.
V_CR is anchored to the fast-follower mean at 40 kHz (settles in ~50 ms)
rather than an integrator-settled tone, which the from-below operating
equilibrium matches exactly (ratio 2.5000); the seeded-integrator
calibration in the plan under-settles ~4.5% and skews the static curve.
Validated (see cx-decoder-plan.md sec. 8b): static curve within
+/-0.12 dB off-knee, round-trip envelope error 0.002 dB, and on the real
he010 dual-track disc post-expansion slope 1.01 vs the EFM digital twin
(mean tracking error 0.95 dB) at ~236x realtime.
Tests in tests/test_cx.py cover T1/T2/T3, calibration ratios and
streaming bit-identicality.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent 98465ad commit d99587b
3 files changed
Lines changed: 1074 additions & 0 deletions
0 commit comments