Speaker Range Crop v0.2.0
Features
- Vicanek matched (decramped) filter design replaces RBJ-cookbook biquads - the Linkwitz-Riley 4th-order response now tracks the analog prototype all the way to Nyquist
- LFE channels keep their low-frequency content - the high-pass side is bypassed on channels foobar2000 marks as LFE
- Component version is injected from the Meson project version
just build-debug,just build-releaseandjust releasecommands for one-step plugin builds
Sound
- 20 kHz low-pass stays active and accurate at 44.1 kHz, where the old bilinear design had to disable it above 0.45 x sample rate
- Exact -6.02 dB Linkwitz-Riley crossover point at the cutoff frequency
- Minimum-phase IIR processing with zero latency, double-precision state at all sample rates
Fixes
- Gapless playback no longer glitches at track transitions - filter state is kept across
on_endoftrack/on_endofplaybackand only reset on seek/stop - No allocations or exceptions can cross the foobar2000 SDK audio callback - reconfiguration failures pass audio through and retry
- Config dialog uses an invariant numeric locale, resyncs edits with sliders on focus loss, and reports preset save errors instead of crashing
Other
- Unit tests migrated to Catch2 v3 via Meson WrapDB (decramping, LFE bypass, channel isolation, preset table coverage)
- Meson wrap SDK mode is now the default build flow
- LF line endings enforced repo-wide; clang-tidy output filtered to project code
Full Changelog: https://github.com/kidoz/foo-dsp-speaker-range/commits/v0.2.0