A bounded mono de-esser primitive. More...
#include <de_esser.hpp>
Classes | |
| struct | Params |
Public Types | |
| enum class | OutputMode { normal , detector_listen } |
Public Member Functions | |
| bool | prepare (SampleType sample_rate, const Params ¶ms={}) noexcept |
| Establish sample rate and coefficients. | |
| bool | set_params (const Params ¶ms) noexcept |
| Atomically adopt a new valid configuration. | |
| const Params & | params () const noexcept |
| SampleType | sample_rate () const noexcept |
| bool | prepared () const noexcept |
| bool | healthy () const noexcept |
| std::uint64_t | fault_count () const noexcept |
| void | set_bypassed (bool bypassed) noexcept |
| Bypass is sample-exact while the detector and split continue tracking, so leaving bypass does not resume from stale state. | |
| bool | bypassed () const noexcept |
| void | set_output_mode (OutputMode mode) noexcept |
| OutputMode | output_mode () const noexcept |
| SampleType | process (SampleType input) noexcept |
| void | process (const SampleType *input, SampleType *output, std::size_t num_samples) noexcept |
| void | process (SampleType *buffer, std::size_t num_samples) noexcept |
| SampleType | gain_reduction_db () const noexcept |
| Positive attenuation magnitude, suitable for direct display. | |
| GainReduction | gain_reduction () const noexcept |
| SampleType | detector_level_db () const noexcept |
| void | reset () noexcept |
| Clear signal history while retaining configuration, bypass, and output mode. | |
A bounded mono de-esser primitive.
A band-pass detector measures sibilance independently from the audio split. Above threshold, only the LR4 high band is attenuated, while the low band is retained and recombined. Use one instance per channel; linked-stereo policy belongs to the caller because it requires an explicit channel-link contract.
RT contract: after prepare(), processing, bypass/listen changes, metering, and reset() are fixed-state and allocate no memory. prepare() and set_params() redesign coefficients and reset signal history, so call them at a control-rate boundary rather than inside the sample loop.
|
strong |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Positive attenuation magnitude, suitable for direct display.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Establish sample rate and coefficients.
Invalid configurations are rejected without partially preparing the processor.
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
|
inlinenoexcept |
Clear signal history while retaining configuration, bypass, and output mode.
The next finite sample starts from zero detector history.
|
inlinenoexcept |
|
inlinenoexcept |
Bypass is sample-exact while the detector and split continue tracking, so leaving bypass does not resume from stale state.
|
inlinenoexcept |
|
inlinenoexcept |
Atomically adopt a new valid configuration.
The previous configuration and state remain in force when validation fails.