Stage 2: full-band compressor with constant-latency look-ahead
Implements the single full-band feed-forward compressor (the engine that will be reused per band + for the 'All' channel). Design follows Giannoulis et al. 2012: log-domain gain computer with a quadratic soft knee feeding a smooth decoupled peak detector for attack/release ballistics. Stereo-linked peak detection. Look-ahead uses a fixed audio delay with a constant reported latency (set once in initialize); the knob only moves the detector tap within that delay. This avoids renegotiating latency from process(), which crashed FL Studio when the look-ahead was adjusted during playback. - src/dsp/compressor.rs: Compressor + CompressorSettings, RT-safe (no alloc in process; buffers sized in prepare; envelope denormals flushed in-code) - src/lib.rs: nested CompressorParams (threshold/ratio/knee/attack/release/makeup/ bypass) + global look-ahead; egui ParamSlider grid; latency reported once - 5 unit tests (static curve, knee continuity, steady-state convergence, constant latency); Cargo.toml lib crate-type added so tests link - README: 'All' channel architecture already documented; look-ahead spec updated Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
//! DSP building blocks for Codename 206.
|
||||
//!
|
||||
//! Stage 2 introduces the full-band compressor (also the engine that will be reused
|
||||
//! per band and for the 'All' aggregate channel — see README.md). Later stages add the
|
||||
//! crossover filterbank, output limiter, and oversampler alongside it.
|
||||
|
||||
pub mod compressor;
|
||||
Reference in New Issue
Block a user