f6c45123fa
Adds the output limiter stage after the 'All' channel. Guarantees the output never exceeds the ceiling: fixed 1.5 ms look-ahead, stereo-linked sliding-max peak detection over the look-ahead window -> gain = ceiling/window_max, decoupled smoothing (fast attack / user release), and a final clamp as the hard guarantee. - src/dsp/limiter.rs: Limiter (sample-peak; true-peak via oversampling is 4b) - src/lib.rs: wired as final stage; new globals output_ceiling_db (-24..0) and limiter_release_ms; latency now the constant three-stage total (bands+All+limiter); two UI sliders added to the global row - 14 unit tests (4 new: ceiling guarantee on spikes, loud-sine limiting, transparency below ceiling, latency) - README/docs updated (Stage 4 split into 4a done / 4b oversampling) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
11 lines
366 B
Rust
11 lines
366 B
Rust
//! 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 biquad;
|
|
pub mod compressor;
|
|
pub mod crossover;
|
|
pub mod limiter;
|