JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
juce::dsp::IIR::Coefficients< NumericType > Struct Template Reference

A set of coefficients for use in an Filter object. More...

#include "juce_IIRFilter.h"

Inheritance diagram for juce::dsp::IIR::Coefficients< NumericType >:
juce::dsp::ProcessorState juce::ReferenceCountedObject

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.
 
- Public Types inherited from juce::dsp::ProcessorState
using Ptr = ReferenceCountedObjectPtr< ProcessorState >
 The ProcessorState structure is ref-counted, so this is a handy type that can be used as a pointer to one.
 

Public Member Functions

 Coefficients ()
 Creates a null set of coefficients (which will produce silence).
 
 Coefficients (NumericType b0, NumericType b1, NumericType a0, NumericType a1)
 Directly constructs an object from the raw coefficients.
 
 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)
 
 Coefficients (const Coefficients &)=default
 
 Coefficients (Coefficients &&)=default
 
Coefficientsoperator= (const Coefficients &)=default
 
Coefficientsoperator= (Coefficients &&)=default
 
template<size_t Num>
 Coefficients (const std::array< NumericType, Num > &values)
 Constructs from an array.
 
template<size_t Num>
Coefficientsoperator= (const std::array< NumericType, Num > &values)
 Assigns contents from an array.
 
size_t getFilterOrder () const noexcept
 Returns the filter order associated with the coefficients.
 
double getMagnitudeForFrequency (double frequency, double sampleRate) const noexcept
 Returns the magnitude frequency response of the filter for a given frequency and sample rate.
 
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.
 
double getPhaseForFrequency (double frequency, double sampleRate) const noexcept
 Returns the phase frequency response of the filter for a given frequency and sample rate.
 
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.
 
NumericTypegetRawCoefficients () noexcept
 Returns a raw data pointer to the coefficients.
 
const NumericTypegetRawCoefficients () const noexcept
 Returns a raw data pointer to the coefficients.
 
- Public Member Functions inherited from juce::ReferenceCountedObject
void incReferenceCount () noexcept
 Increments the object's reference count.
 
void decReferenceCount () noexcept
 Decreases the object's reference count.
 
bool decReferenceCountWithoutDeleting () noexcept
 Decreases the object's reference count.
 
int getReferenceCount () const noexcept
 Returns the object's current reference count.
 

Static Public Member Functions

static Ptr makeFirstOrderLowPass (double sampleRate, NumericType frequency)
 Returns the coefficients for a first order low-pass filter.
 
static Ptr makeFirstOrderHighPass (double sampleRate, NumericType frequency)
 Returns the coefficients for a first order high-pass filter.
 
static Ptr makeFirstOrderAllPass (double sampleRate, NumericType frequency)
 Returns the coefficients for a first order all-pass filter.
 
static Ptr makeLowPass (double sampleRate, NumericType frequency)
 Returns the coefficients for a low-pass filter.
 
static Ptr makeLowPass (double sampleRate, NumericType frequency, NumericType Q)
 Returns the coefficients for a low-pass filter with variable Q.
 
static Ptr makeHighPass (double sampleRate, NumericType frequency)
 Returns the coefficients for a high-pass filter.
 
static Ptr makeHighPass (double sampleRate, NumericType frequency, NumericType Q)
 Returns the coefficients for a high-pass filter with variable Q.
 
static Ptr makeBandPass (double sampleRate, NumericType frequency)
 Returns the coefficients for a band-pass filter.
 
static Ptr makeBandPass (double sampleRate, NumericType frequency, NumericType Q)
 Returns the coefficients for a band-pass filter with variable Q.
 
static Ptr makeNotch (double sampleRate, NumericType frequency)
 Returns the coefficients for a notch filter.
 
static Ptr makeNotch (double sampleRate, NumericType frequency, NumericType Q)
 Returns the coefficients for a notch filter with variable Q.
 
static Ptr makeAllPass (double sampleRate, NumericType frequency)
 Returns the coefficients for an all-pass filter.
 
static Ptr makeAllPass (double sampleRate, NumericType frequency, NumericType Q)
 Returns the coefficients for an all-pass filter with variable Q.
 
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.
 
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.
 
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.
 

Public Attributes

Array< NumericTypecoefficients
 The raw coefficients.
 

Additional Inherited Members

- Protected Member Functions inherited from juce::ReferenceCountedObject
 ReferenceCountedObject ()=default
 Creates the reference-counted object (with an initial ref count of zero).
 
 ReferenceCountedObject (const ReferenceCountedObject &) noexcept
 Copying from another object does not affect this one's reference-count.
 
 ReferenceCountedObject (ReferenceCountedObject &&) noexcept
 Copying from another object does not affect this one's reference-count.
 
ReferenceCountedObjectoperator= (const ReferenceCountedObject &) noexcept
 Copying from another object does not affect this one's reference-count.
 
ReferenceCountedObjectoperator= (ReferenceCountedObject &&) noexcept
 Copying from another object does not affect this one's reference-count.
 
virtual ~ReferenceCountedObject ()
 Destructor.
 
void resetReferenceCount () noexcept
 Resets the reference count to zero without deleting the object.
 

Detailed Description

template<typename NumericType>
struct juce::dsp::IIR::Coefficients< NumericType >

A set of coefficients for use in an Filter object.

See also
IIR::Filter

@tags{DSP}

Definition at line 123 of file juce_IIRFilter.h.

Member Typedef Documentation

◆ Ptr

The Coefficients structure is ref-counted, so this is a handy type that can be used as a pointer to one.

Definition at line 157 of file juce_IIRFilter.h.

Constructor & Destructor Documentation

◆ Coefficients() [1/5]

Creates a null set of coefficients (which will produce silence).

Definition at line 276 of file juce_IIRFilter.cpp.

◆ Coefficients() [2/5]

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!

Definition at line 283 of file juce_IIRFilter.cpp.

◆ Coefficients() [3/5]

Definition at line 291 of file juce_IIRFilter.cpp.

◆ Coefficients() [4/5]

Definition at line 299 of file juce_IIRFilter.cpp.

◆ Coefficients() [5/5]

template<typename NumericType >
template<size_t Num>
juce::dsp::IIR::Coefficients< NumericType >::Coefficients ( const std::array< NumericType, Num > &  values)
explicit

Constructs from an array.

Definition at line 148 of file juce_IIRFilter.h.

Member Function Documentation

◆ getFilterOrder()

template<typename NumericType >
size_t juce::dsp::IIR::Coefficients< NumericType >::getFilterOrder ( ) const
noexcept

Returns the filter order associated with the coefficients.

Definition at line 430 of file juce_IIRFilter.cpp.

◆ getMagnitudeForFrequency()

template<typename NumericType >
double juce::dsp::IIR::Coefficients< NumericType >::getMagnitudeForFrequency ( double  frequency,
double  sampleRate 
) const
noexcept

Returns the magnitude frequency response of the filter for a given frequency and sample rate.

Definition at line 436 of file juce_IIRFilter.cpp.

◆ getMagnitudeForFrequencyArray()

template<typename NumericType >
void juce::dsp::IIR::Coefficients< NumericType >::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.

Definition at line 466 of file juce_IIRFilter.cpp.

◆ getPhaseForFrequency()

template<typename NumericType >
double juce::dsp::IIR::Coefficients< NumericType >::getPhaseForFrequency ( double  frequency,
double  sampleRate 
) const
noexcept

Returns the phase frequency response of the filter for a given frequency and sample rate.

Definition at line 502 of file juce_IIRFilter.cpp.

◆ getPhaseForFrequencyArray()

template<typename NumericType >
void juce::dsp::IIR::Coefficients< NumericType >::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.

Definition at line 532 of file juce_IIRFilter.cpp.

◆ getRawCoefficients() [1/2]

template<typename NumericType >
const NumericType * juce::dsp::IIR::Coefficients< NumericType >::getRawCoefficients ( ) const
noexcept

Returns a raw data pointer to the coefficients.

Definition at line 263 of file juce_IIRFilter.h.

◆ getRawCoefficients() [2/2]

template<typename NumericType >
NumericType * juce::dsp::IIR::Coefficients< NumericType >::getRawCoefficients ( )
noexcept

Returns a raw data pointer to the coefficients.

Definition at line 260 of file juce_IIRFilter.h.

◆ makeAllPass() [1/2]

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeAllPass ( double  sampleRate,
NumericType  frequency 
)
static

Returns the coefficients for an all-pass filter.

Definition at line 388 of file juce_IIRFilter.cpp.

◆ makeAllPass() [2/2]

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeAllPass ( double  sampleRate,
NumericType  frequency,
NumericType  Q 
)
static

Returns the coefficients for an all-pass filter with variable Q.

Definition at line 395 of file juce_IIRFilter.cpp.

◆ makeBandPass() [1/2]

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeBandPass ( double  sampleRate,
NumericType  frequency 
)
static

Returns the coefficients for a band-pass filter.

Definition at line 358 of file juce_IIRFilter.cpp.

◆ makeBandPass() [2/2]

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeBandPass ( double  sampleRate,
NumericType  frequency,
NumericType  Q 
)
static

Returns the coefficients for a band-pass filter with variable Q.

Definition at line 365 of file juce_IIRFilter.cpp.

◆ makeFirstOrderAllPass()

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeFirstOrderAllPass ( double  sampleRate,
NumericType  frequency 
)
static

Returns the coefficients for a first order all-pass filter.

Definition at line 321 of file juce_IIRFilter.cpp.

◆ makeFirstOrderHighPass()

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeFirstOrderHighPass ( double  sampleRate,
NumericType  frequency 
)
static

Returns the coefficients for a first order high-pass filter.

Definition at line 314 of file juce_IIRFilter.cpp.

◆ makeFirstOrderLowPass()

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeFirstOrderLowPass ( double  sampleRate,
NumericType  frequency 
)
static

Returns the coefficients for a first order low-pass filter.

Definition at line 307 of file juce_IIRFilter.cpp.

◆ makeHighPass() [1/2]

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeHighPass ( double  sampleRate,
NumericType  frequency 
)
static

Returns the coefficients for a high-pass filter.

Definition at line 343 of file juce_IIRFilter.cpp.

◆ makeHighPass() [2/2]

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeHighPass ( double  sampleRate,
NumericType  frequency,
NumericType  Q 
)
static

Returns the coefficients for a high-pass filter with variable Q.

Definition at line 350 of file juce_IIRFilter.cpp.

◆ makeHighShelf()

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeHighShelf ( double  sampleRate,
NumericType  cutOffFrequency,
NumericType  Q,
NumericType  gainFactor 
)
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.

Definition at line 412 of file juce_IIRFilter.cpp.

◆ makeLowPass() [1/2]

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeLowPass ( double  sampleRate,
NumericType  frequency 
)
static

Returns the coefficients for a low-pass filter.

Definition at line 328 of file juce_IIRFilter.cpp.

◆ makeLowPass() [2/2]

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeLowPass ( double  sampleRate,
NumericType  frequency,
NumericType  Q 
)
static

Returns the coefficients for a low-pass filter with variable Q.

Definition at line 335 of file juce_IIRFilter.cpp.

◆ makeLowShelf()

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeLowShelf ( double  sampleRate,
NumericType  cutOffFrequency,
NumericType  Q,
NumericType  gainFactor 
)
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.

Definition at line 403 of file juce_IIRFilter.cpp.

◆ makeNotch() [1/2]

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeNotch ( double  sampleRate,
NumericType  frequency 
)
static

Returns the coefficients for a notch filter.

Definition at line 373 of file juce_IIRFilter.cpp.

◆ makeNotch() [2/2]

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makeNotch ( double  sampleRate,
NumericType  frequency,
NumericType  Q 
)
static

Returns the coefficients for a notch filter with variable Q.

Definition at line 380 of file juce_IIRFilter.cpp.

◆ makePeakFilter()

template<typename NumericType >
Coefficients< NumericType >::Ptr juce::dsp::IIR::Coefficients< NumericType >::makePeakFilter ( double  sampleRate,
NumericType  centreFrequency,
NumericType  Q,
NumericType  gainFactor 
)
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.

Definition at line 421 of file juce_IIRFilter.cpp.

◆ operator=()

Assigns contents from an array.

Definition at line 152 of file juce_IIRFilter.h.

Member Data Documentation

◆ coefficients

The raw coefficients.

You should leave these numbers alone unless you really know what you're doing.

Definition at line 269 of file juce_IIRFilter.h.


The documentation for this struct was generated from the following files: