Skip to main content

deess_multiband

Function deess_multiband 

Source
pub fn deess_multiband(
    signal: &[f32],
    sample_rate: u32,
    crossover_freq: f32,
    threshold_db: f32,
    ratio: f32,
    bands: usize,
) -> Vec<f32>
Expand description

Multiband, adaptive de-esser. The region above crossover_freq is split into bands sub-bands; each tracks its own short-term level (an exponential moving average) and is compressed by ratio only when its instantaneous level rises threshold_db above that adaptive average. Adapting per band and over time catches sibilance concentrated in part of the band and follows a speaker’s changing level, where a single fixed-threshold band over- or under-reacts. Falls back to a single band when bands <= 1.