Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::signal::DynamicEqBandT< SampleType > Class Template Reference

One internally keyed dynamic-EQ band. More...

#include <dynamic_eq.hpp>

Classes

struct  Parameters

Public Member Functions

 DynamicEqBandT ()
void prepare (SampleType sample_rate)
bool set_parameters (Parameters requested)
 Apply one coherent parameter set.
Parameters parameters () const noexcept
SampleType process (SampleType input) noexcept
bool process_block (SampleType *samples, std::size_t frames) noexcept
void reset () noexcept
SampleType detector_level () const noexcept
SampleType activity () const noexcept
SampleType dynamic_gain_db () const noexcept
GainReduction gain_reduction () const noexcept
BiquadCoefficientsT< SampleType > band_coefficients () const noexcept
SampleType sample_rate () const noexcept

Static Public Member Functions

static constexpr int latency_samples () noexcept

Static Public Attributes

static constexpr SampleType min_frequency_hz = SampleType{20}
static constexpr SampleType max_sample_rate = SampleType{768000}
static constexpr SampleType min_q = SampleType{0.1}
static constexpr SampleType max_q = SampleType{12}
static constexpr SampleType min_threshold_db = SampleType{-120}
static constexpr SampleType max_threshold_db = SampleType{0}
static constexpr SampleType min_range_db = SampleType{-24}
static constexpr SampleType max_range_db = SampleType{24}

Detailed Description

template<typename SampleType = float>
class pulp::signal::DynamicEqBandT< SampleType >

One internally keyed dynamic-EQ band.

A unity-peak band-pass section isolates the controlled band. Its output is both the detector key and the parallel equalization signal:

output = input + band * (db_to_gain(dynamic_gain_db) - 1)

At the centre frequency this gives the requested gain while leaving audio below threshold exactly transparent. Positive range boosts and negative range attenuates. Compose several instances in series for a multiband EQ; this primitive deliberately owns no crossover or spectral engine.

RT contract: fixed scalar state only. After prepare(), process(), block processing, reset(), and accessors allocate no memory, lock nothing, and perform no I/O. Parameters are control-side/block-boundary operations.

Constructor & Destructor Documentation

◆ DynamicEqBandT()

template<typename SampleType = float>
pulp::signal::DynamicEqBandT< SampleType >::DynamicEqBandT ( )
inline

Member Function Documentation

◆ activity()

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::activity ( ) const
inlinenoexcept

◆ band_coefficients()

template<typename SampleType = float>
BiquadCoefficientsT< SampleType > pulp::signal::DynamicEqBandT< SampleType >::band_coefficients ( ) const
inlinenoexcept

◆ detector_level()

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::detector_level ( ) const
inlinenoexcept

◆ dynamic_gain_db()

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::dynamic_gain_db ( ) const
inlinenoexcept

◆ gain_reduction()

template<typename SampleType = float>
GainReduction pulp::signal::DynamicEqBandT< SampleType >::gain_reduction ( ) const
inlinenoexcept

◆ latency_samples()

template<typename SampleType = float>
constexpr int pulp::signal::DynamicEqBandT< SampleType >::latency_samples ( )
inlinestaticconstexprnoexcept

◆ parameters()

template<typename SampleType = float>
Parameters pulp::signal::DynamicEqBandT< SampleType >::parameters ( ) const
inlinenoexcept

◆ prepare()

template<typename SampleType = float>
void pulp::signal::DynamicEqBandT< SampleType >::prepare ( SampleType sample_rate)
inline

◆ process()

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::process ( SampleType input)
inlinenoexcept

◆ process_block()

template<typename SampleType = float>
bool pulp::signal::DynamicEqBandT< SampleType >::process_block ( SampleType * samples,
std::size_t frames )
inlinenoexcept

◆ reset()

template<typename SampleType = float>
void pulp::signal::DynamicEqBandT< SampleType >::reset ( )
inlinenoexcept

◆ sample_rate()

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::sample_rate ( ) const
inlinenoexcept

◆ set_parameters()

template<typename SampleType = float>
bool pulp::signal::DynamicEqBandT< SampleType >::set_parameters ( Parameters requested)
inline

Apply one coherent parameter set.

Non-finite fields reject the whole update; finite out-of-range values are clamped to the public bounds.

Member Data Documentation

◆ max_q

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::max_q = SampleType{12}
staticconstexpr

◆ max_range_db

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::max_range_db = SampleType{24}
staticconstexpr

◆ max_sample_rate

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::max_sample_rate = SampleType{768000}
staticconstexpr

◆ max_threshold_db

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::max_threshold_db = SampleType{0}
staticconstexpr

◆ min_frequency_hz

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::min_frequency_hz = SampleType{20}
staticconstexpr

◆ min_q

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::min_q = SampleType{0.1}
staticconstexpr

◆ min_range_db

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::min_range_db = SampleType{-24}
staticconstexpr

◆ min_threshold_db

template<typename SampleType = float>
SampleType pulp::signal::DynamicEqBandT< SampleType >::min_threshold_db = SampleType{-120}
staticconstexpr

The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/signal/include/pulp/signal/dynamic_eq.hpp