DSPark 1.6.1
Header-only audio DSP framework in pure C++20 — zero dependencies
Loading...
Searching...
No Matches
DeEsser.h File Reference

Frequency-selective dynamic processor for sibilance reduction. More...

#include "../Core/AudioBuffer.h"
#include "../Core/AudioSpec.h"
#include "../Core/Biquad.h"
#include "../Core/DspMath.h"
#include "../Core/StateBlob.h"
#include <algorithm>
#include <array>
#include <atomic>
#include <cmath>
#include <cstddef>
#include <cstdint>
#include <vector>
Include dependency graph for DeEsser.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  dspark::DeEsser< T >
 Stereo-linked, CPU-optimized dynamic-EQ de-esser. More...
 

Namespaces

namespace  dspark
 Main namespace for the DSPark framework.
 

Detailed Description

Frequency-selective dynamic processor for sibilance reduction.

A dynamic-EQ style de-esser: a bandpass sidechain detects energy in a configurable frequency band and a dynamic peak-cut bell applies the gain reduction at that band. Optimized for zero inner-loop allocations and trigonometric eliminations during dynamic EQ modulation.

Architecture:

  1. Bandpass sidechain (Biquad) isolates the sibilant band.
  2. Envelope follower (peak with attack/release) tracks maximum stereo sibilance.
  3. Fast-math Biquad Peak cut applies gain reduction with precomputed trig terms.

Threading: prepare() belongs to the setup thread; processBlock() and reset() belong to the audio thread. Setters are lock-free atomic publications, safe from any thread, consumed at the next processBlock(). Non-finite setter arguments are ignored.

Dependencies: Biquad.h, DspMath.h, AudioSpec.h, AudioBuffer.h, StateBlob.h.

deesser.prepare(spec);
deesser.setFrequency(7000.0f);
deesser.setThreshold(-20.0f);
deesser.setReduction(12.0f);
deesser.processBlock(buffer);
Stereo-linked, CPU-optimized dynamic-EQ de-esser.
Definition DeEsser.h:65
void setThreshold(T db) noexcept
Sets the detection threshold in dBFS. Non-finite values are ignored.
Definition DeEsser.h:189
void setReduction(T db) noexcept
Sets the maximum gain reduction in dB (sign is ignored). Non-finite values are ignored.
Definition DeEsser.h:196
void prepare(const AudioSpec &spec)
Prepares the de-esser state and filters.
Definition DeEsser.h:81
void processBlock(AudioBufferView< T > buffer) noexcept
Processes audio in-place. Stereo-linked to preserve imaging.
Definition DeEsser.h:101
void setFrequency(T hz) noexcept
Sets the sibilance centre frequency in Hz.
Definition DeEsser.h:171

Definition in file DeEsser.h.