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...
#include <juce_StateVariableFilter.h>
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) | |
using | ParametersPtr = typename Parameters<NumericType>::Ptr |
A typedef for a ref-counted pointer to the coefficients object. | |
Public Member Functions | |
Filter () | |
Creates a filter with default parameters. | |
Filter (ParametersPtr parametersToUse) | |
Filter (const Filter &)=default | |
Creates a copy of another filter. | |
Filter (Filter &&)=default | |
Move constructor. | |
void | prepare (const ProcessSpec &) noexcept |
Initialization of the filter. | |
void | reset () noexcept |
Resets the filter's processing pipeline. | |
void | snapToZero () noexcept |
Ensure that the state variables are rounded to zero if the state variables are denormals. | |
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. | |
Public Attributes | |
Parameters< NumericType >::Ptr | parameters |
The parameters of the state variable filter. | |
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 parameters, and reset().
dsp::StateVariableFilter::Filter< SampleType >::Filter | ( | ParametersPtr | parametersToUse | ) |
References parameters, and reset().
|
default |
Creates a copy of another filter.
References Filter().
|
default |
Move constructor.
References Filter().
|
noexcept |
Initialization of the filter.
References reset().
|
noexcept |
|
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().
|
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 >::bandPass, dsp::StateVariableFilter::Parameters< NumericType >::highPass, jassertfalse, dsp::StateVariableFilter::Parameters< NumericType >::lowPass, and parameters.
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 Filter(), Filter(), and processSample().