JUCE
|
An IIR filter that can perform low, band and high-pass filtering on an audio signal, with 12 dB of attenuation / octave, using a TPT structure, designed for fast modulation (see Vadim Zavalishin's documentation about TPT structures for more information). More...
Public Types | |
using | NumericType = typename SampleTypeHelpers::ElementType< SampleType >::Type |
The NumericType is the underlying primitive type used by the SampleType (which could be either a primitive or vector) More... | |
using | ParametersPtr = typename Parameters< NumericType >::Ptr |
A typedef for a ref-counted pointer to the coefficients object. More... | |
Public Member Functions | |
Filter () | |
Creates a filter with default parameters. More... | |
Filter (ParametersPtr parametersToUse) | |
Filter (const Filter &)=default | |
Creates a copy of another filter. More... | |
Filter (Filter &&)=default | |
Move constructor. More... | |
void | prepare (const ProcessSpec &) noexcept |
Initialization of the filter. More... | |
void | reset () noexcept |
Resets the filter's processing pipeline. More... | |
void | snapToZero () noexcept |
Ensure that the state variables are rounded to zero if the state variables are denormals. More... | |
template<typename ProcessContext > | |
void | process (const ProcessContext &context) noexcept |
SampleType JUCE_VECTOR_CALLTYPE | processSample (SampleType sample) noexcept |
Processes a single sample, without any locking or checking. More... | |
Public Attributes | |
Parameters< NumericType >::Ptr | parameters |
The parameters of the state variable filter. More... | |
An IIR filter that can perform low, band and high-pass filtering on an audio signal, with 12 dB of attenuation / octave, using a TPT structure, designed for fast modulation (see Vadim Zavalishin's documentation about TPT structures for more information).
Its behaviour is based on the analog state variable filter circuit.
Note: The bandpass here is not the one in the RBJ CookBook, its gain can be higher than 0 dB. For the classic 0 dB bandpass, we need to multiply the result with R2
using dsp::StateVariableFilter::Filter< SampleType >::NumericType = typename SampleTypeHelpers::ElementType<SampleType>::Type |
The NumericType is the underlying primitive type used by the SampleType (which could be either a primitive or vector)
using dsp::StateVariableFilter::Filter< SampleType >::ParametersPtr = typename Parameters<NumericType>::Ptr |
A typedef for a ref-counted pointer to the coefficients object.
dsp::StateVariableFilter::Filter< SampleType >::Filter | ( | ) |
Creates a filter with default parameters.
References dsp::StateVariableFilter::Filter< SampleType >::reset().
Referenced by dsp::StateVariableFilter::Filter< SampleType >::Filter().
dsp::StateVariableFilter::Filter< SampleType >::Filter | ( | ParametersPtr | parametersToUse | ) |
|
default |
Creates a copy of another filter.
|
default |
Move constructor.
|
noexcept |
Initialization of the filter.
References dsp::StateVariableFilter::Filter< SampleType >::reset().
|
noexcept |
Resets the filter's processing pipeline.
Referenced by dsp::StateVariableFilter::Filter< SampleType >::Filter(), and dsp::StateVariableFilter::Filter< SampleType >::prepare().
|
noexcept |
Ensure that the state variables are rounded to zero if the state variables are denormals.
This is only needed if you are doing sample by sample processing.
References dsp::util::snapToZero().
Referenced by dsp::StateVariableFilter::Filter< SampleType >::processSample().
|
noexcept |
|
noexcept |
Processes a single sample, without any locking or checking.
Use this if you need processing of a single value.
References dsp::StateVariableFilter::Parameters< NumericType >::g, dsp::StateVariableFilter::Parameters< NumericType >::h, dsp::isBypassed(), jassert, jassertfalse, JUCE_LEAK_DETECTOR, dsp::StateVariableFilter::Filter< SampleType >::parameters, dsp::StateVariableFilter::Parameters< NumericType >::R2, and dsp::StateVariableFilter::Filter< SampleType >::snapToZero().
Parameters<NumericType>::Ptr dsp::StateVariableFilter::Filter< SampleType >::parameters |
The parameters of the state variable filter.
It's up to the caller to ensure that these parameters are modified in a thread-safe way.
Referenced by dsp::StateVariableFilter::Filter< SampleType >::processSample().