dsp::StateVariableFilter::Filter< SampleType > Class Template Reference
juce_dsp » processors

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...

## Detailed Description

### template<typename SampleType>
class dsp::StateVariableFilter::Filter< SampleType >

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

## Member Typedef Documentation

## NumericType

template<typename SampleType >

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)

## ParametersPtr

template<typename SampleType >

using dsp::StateVariableFilter::Filter< SampleType >::ParametersPtr = typename Parameters<NumericType>::Ptr

A typedef for a ref-counted pointer to the coefficients object.

## Constructor & Destructor Documentation

## Filter() [1/4]

template<typename SampleType >

dsp::StateVariableFilter::Filter< SampleType >::Filter | ( |  | ) |

Creates a filter with default parameters.

References dsp::StateVariableFilter::Filter< SampleType >::reset().

## Filter() [2/4]

template<typename SampleType >

dsp::StateVariableFilter::Filter< SampleType >::Filter | ( | ParametersPtr | parametersToUse | ) |

References dsp::StateVariableFilter::Filter< SampleType >::reset().

## Filter() [3/4]

template<typename SampleType >

dsp::StateVariableFilter::Filter< SampleType >::Filter | ( | const Filter< SampleType > & |  | ) |

default

Creates a copy of another filter.

## Filter() [4/4]

template<typename SampleType >

dsp::StateVariableFilter::Filter< SampleType >::Filter | ( | Filter< SampleType > && |  | ) |

default

Move constructor.

## Member Function Documentation

## prepare()

template<typename SampleType >

void dsp::StateVariableFilter::Filter< SampleType >::prepare | ( | const ProcessSpec & |  | ) |

noexcept

Initialization of the filter.

References dsp::StateVariableFilter::Filter< SampleType >::reset().

## reset()

template<typename SampleType >

void 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().

## snapToZero()

template<typename SampleType >

void dsp::StateVariableFilter::Filter< SampleType >::snapToZero | ( |  | ) |

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().

## process()

template<typename SampleType >
template<typename ProcessContext >

void dsp::StateVariableFilter::Filter< SampleType >::process | ( | const ProcessContext & | context | ) |

noexcept

## processSample()

template<typename SampleType >

SampleType JUCE_VECTOR_CALLTYPE dsp::StateVariableFilter::Filter< SampleType >::processSample | ( | SampleType | sample | ) |

noexcept

Processes a single sample, without any locking or checking.

Use this if you need processing of a single value.

References jassertfalse, and dsp::StateVariableFilter::Filter< SampleType >::parameters.

## Member Data Documentation

## parameters

template<typename SampleType >

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().

The documentation for this class was generated from the following file:

- juce_StateVariableFilter.h