A set of coefficients for use in an Filter object. More...
#include <juce_IIRFilter.h>
Public Types | |
using | Ptr = ReferenceCountedObjectPtr< Coefficients > |
The Coefficients structure is ref-counted, so this is a handy type that can be used as a pointer to one. More... | |
Public Member Functions | |
Coefficients () | |
Creates a null set of coefficients (which will produce silence). More... | |
Coefficients (Coefficients &&)=default | |
Coefficients (const Coefficients &)=default | |
template<size_t Num> | |
Coefficients (const std::array< NumericType, Num > &values) | |
Constructs from an array. More... | |
Coefficients (NumericType b0, NumericType b1, NumericType a0, NumericType a1) | |
Directly constructs an object from the raw coefficients. More... | |
Coefficients (NumericType b0, NumericType b1, NumericType b2, NumericType a0, NumericType a1, NumericType a2) | |
Coefficients (NumericType b0, NumericType b1, NumericType b2, NumericType b3, NumericType a0, NumericType a1, NumericType a2, NumericType a3) | |
void | decReferenceCount () noexcept |
Decreases the object's reference count. More... | |
bool | decReferenceCountWithoutDeleting () noexcept |
Decreases the object's reference count. More... | |
size_t | getFilterOrder () const noexcept |
Returns the filter order associated with the coefficients. More... | |
double | getMagnitudeForFrequency (double frequency, double sampleRate) const noexcept |
Returns the magnitude frequency response of the filter for a given frequency and sample rate. More... | |
void | getMagnitudeForFrequencyArray (const double *frequencies, double *magnitudes, size_t numSamples, double sampleRate) const noexcept |
Returns the magnitude frequency response of the filter for a given frequency array and sample rate. More... | |
double | getPhaseForFrequency (double frequency, double sampleRate) const noexcept |
Returns the phase frequency response of the filter for a given frequency and sample rate. More... | |
void | getPhaseForFrequencyArray (double *frequencies, double *phases, size_t numSamples, double sampleRate) const noexcept |
Returns the phase frequency response of the filter for a given frequency array and sample rate. More... | |
const NumericType * | getRawCoefficients () const noexcept |
Returns a raw data pointer to the coefficients. More... | |
NumericType * | getRawCoefficients () noexcept |
Returns a raw data pointer to the coefficients. More... | |
int | getReferenceCount () const noexcept |
Returns the object's current reference count. More... | |
void | incReferenceCount () noexcept |
Increments the object's reference count. More... | |
Coefficients & | operator= (Coefficients &&)=default |
Coefficients & | operator= (const Coefficients &)=default |
template<size_t Num> | |
Coefficients & | operator= (const std::array< NumericType, Num > &values) |
Assigns contents from an array. More... | |
Static Public Member Functions | |
static Ptr | makeAllPass (double sampleRate, NumericType frequency) |
Returns the coefficients for an all-pass filter. More... | |
static Ptr | makeAllPass (double sampleRate, NumericType frequency, NumericType Q) |
Returns the coefficients for an all-pass filter with variable Q. More... | |
static Ptr | makeBandPass (double sampleRate, NumericType frequency) |
Returns the coefficients for a band-pass filter. More... | |
static Ptr | makeBandPass (double sampleRate, NumericType frequency, NumericType Q) |
Returns the coefficients for a band-pass filter with variable Q. More... | |
static Ptr | makeFirstOrderAllPass (double sampleRate, NumericType frequency) |
Returns the coefficients for a first order all-pass filter. More... | |
static Ptr | makeFirstOrderHighPass (double sampleRate, NumericType frequency) |
Returns the coefficients for a first order high-pass filter. More... | |
static Ptr | makeFirstOrderLowPass (double sampleRate, NumericType frequency) |
Returns the coefficients for a first order low-pass filter. More... | |
static Ptr | makeHighPass (double sampleRate, NumericType frequency) |
Returns the coefficients for a high-pass filter. More... | |
static Ptr | makeHighPass (double sampleRate, NumericType frequency, NumericType Q) |
Returns the coefficients for a high-pass filter with variable Q. More... | |
static Ptr | makeHighShelf (double sampleRate, NumericType cutOffFrequency, NumericType Q, NumericType gainFactor) |
Returns the coefficients for a high-pass shelf filter with variable Q and gain. More... | |
static Ptr | makeLowPass (double sampleRate, NumericType frequency) |
Returns the coefficients for a low-pass filter. More... | |
static Ptr | makeLowPass (double sampleRate, NumericType frequency, NumericType Q) |
Returns the coefficients for a low-pass filter with variable Q. More... | |
static Ptr | makeLowShelf (double sampleRate, NumericType cutOffFrequency, NumericType Q, NumericType gainFactor) |
Returns the coefficients for a low-pass shelf filter with variable Q and gain. More... | |
static Ptr | makeNotch (double sampleRate, NumericType frequency) |
Returns the coefficients for a notch filter. More... | |
static Ptr | makeNotch (double sampleRate, NumericType frequency, NumericType Q) |
Returns the coefficients for a notch filter with variable Q. More... | |
static Ptr | makePeakFilter (double sampleRate, NumericType centreFrequency, NumericType Q, NumericType gainFactor) |
Returns the coefficients for a peak filter centred around a given frequency, with a variable Q and gain. More... | |
Public Attributes | |
Array< NumericType > | coefficients |
The raw coefficients. More... | |
Protected Member Functions | |
void | resetReferenceCount () noexcept |
Resets the reference count to zero without deleting the object. More... | |
Private Types | |
using | ArrayCoeffs = ArrayCoefficients< NumericType > |
Private Member Functions | |
template<size_t Num> | |
Coefficients & | assign (const NumericType(&values)[Num]) |
template<size_t Num> | |
Coefficients & | assignImpl (const NumericType *values) |
Private Attributes | |
Atomic< int > | refCount { 0 } |
A set of coefficients for use in an Filter object.
@tags{DSP}
|
private |
using juce::dsp::IIR::Coefficients< NumericType >::Ptr = ReferenceCountedObjectPtr<Coefficients> |
The Coefficients structure is ref-counted, so this is a handy type that can be used as a pointer to one.
juce::dsp::IIR::Coefficients< NumericType >::Coefficients | ( | ) |
Creates a null set of coefficients (which will produce silence).
juce::dsp::IIR::Coefficients< NumericType >::Coefficients | ( | NumericType | b0, |
NumericType | b1, | ||
NumericType | a0, | ||
NumericType | a1 | ||
) |
Directly constructs an object from the raw coefficients.
Most people will want to use the static methods instead of this, but the constructor is public to allow tinkerers to create their own custom filters!
juce::dsp::IIR::Coefficients< NumericType >::Coefficients | ( | NumericType | b0, |
NumericType | b1, | ||
NumericType | b2, | ||
NumericType | a0, | ||
NumericType | a1, | ||
NumericType | a2 | ||
) |
juce::dsp::IIR::Coefficients< NumericType >::Coefficients | ( | NumericType | b0, |
NumericType | b1, | ||
NumericType | b2, | ||
NumericType | b3, | ||
NumericType | a0, | ||
NumericType | a1, | ||
NumericType | a2, | ||
NumericType | a3 | ||
) |
|
default |
|
default |
|
inlineexplicit |
Constructs from an array.
References juce::UnitTestCategories::values.
|
inlineprivate |
References juce::UnitTestCategories::values.
|
private |
|
inlinenoexceptinherited |
Decreases the object's reference count.
If the count gets to zero, the object will be deleted.
References jassert.
|
inlinenoexceptinherited |
Decreases the object's reference count.
If the count gets to zero, the object will not be deleted, but this method will return true, allowing the caller to take care of deletion.
References jassert.
|
noexcept |
Returns the filter order associated with the coefficients.
|
noexcept |
Returns the magnitude frequency response of the filter for a given frequency and sample rate.
|
noexcept |
Returns the magnitude frequency response of the filter for a given frequency array and sample rate.
|
noexcept |
Returns the phase frequency response of the filter for a given frequency and sample rate.
|
noexcept |
Returns the phase frequency response of the filter for a given frequency array and sample rate.
|
inlinenoexcept |
Returns a raw data pointer to the coefficients.
References juce::Array< ElementType, TypeOfCriticalSectionToUse, minimumAllocatedSize >::begin(), and juce::dsp::IIR::Coefficients< NumericType >::coefficients.
|
inlinenoexcept |
Returns a raw data pointer to the coefficients.
References juce::dsp::IIR::Coefficients< NumericType >::coefficients, and juce::Array< ElementType, TypeOfCriticalSectionToUse, minimumAllocatedSize >::getRawDataPointer().
|
inlinenoexceptinherited |
Returns the object's current reference count.
|
inlinenoexceptinherited |
Increments the object's reference count.
This is done automatically by the smart pointer, but is public just in case it's needed for nefarious purposes.
Referenced by juce::ReferenceCountedObjectPtr< juce::ReferenceCountedObject >::operator=().
|
static |
Returns the coefficients for an all-pass filter.
|
static |
Returns the coefficients for an all-pass filter with variable Q.
|
static |
Returns the coefficients for a band-pass filter.
|
static |
Returns the coefficients for a band-pass filter with variable Q.
|
static |
Returns the coefficients for a first order all-pass filter.
|
static |
Returns the coefficients for a first order high-pass filter.
|
static |
Returns the coefficients for a first order low-pass filter.
|
static |
Returns the coefficients for a high-pass filter.
|
static |
Returns the coefficients for a high-pass filter with variable Q.
|
static |
Returns the coefficients for a high-pass shelf filter with variable Q and gain.
The gain is a scale factor that the high frequencies are multiplied by, so values greater than 1.0 will boost the high frequencies, values less than 1.0 will attenuate them.
|
static |
Returns the coefficients for a low-pass filter.
|
static |
Returns the coefficients for a low-pass filter with variable Q.
|
static |
Returns the coefficients for a low-pass shelf filter with variable Q and gain.
The gain is a scale factor that the low frequencies are multiplied by, so values greater than 1.0 will boost the low frequencies, values less than 1.0 will attenuate them.
|
static |
Returns the coefficients for a notch filter.
|
static |
Returns the coefficients for a notch filter with variable Q.
|
static |
Returns the coefficients for a peak filter centred around a given frequency, with a variable Q and gain.
The gain is a scale factor that the centre frequencies are multiplied by, so values greater than 1.0 will boost the centre frequencies, values less than 1.0 will attenuate them.
|
default |
|
default |
|
inline |
Assigns contents from an array.
References juce::UnitTestCategories::values.
|
inlineprotectednoexceptinherited |
Resets the reference count to zero without deleting the object.
You should probably never need to use this!
Array<NumericType> juce::dsp::IIR::Coefficients< NumericType >::coefficients |
The raw coefficients.
You should leave these numbers alone unless you really know what you're doing.
Referenced by juce::dsp::IIR::Coefficients< NumericType >::getRawCoefficients().