The Biquad object implements a first or second order H(z) transfer function using one of four standard structures: Direct, Canonical, Transpose Direct, Transpose Canonical.
More...
#include <fxobjects.h>
|
virtual bool | reset (double _sampleRate) |
|
virtual bool | canProcessAudioFrame () |
|
virtual double | processAudioSample (double xn) |
| process one sample through the biquad More...
|
|
BiquadParameters | getParameters () |
|
void | setParameters (const BiquadParameters &_parameters) |
|
void | setCoefficients (double *coeffs) |
|
double * | getCoefficients () |
|
double * | getStateArray () |
|
double | getG_value () |
|
double | getS_value () |
|
virtual bool | reset (double _sampleRate) |
|
virtual bool | canProcessAudioFrame () |
|
virtual double | processAudioSample (double xn) |
|
BiquadParameters | getParameters () |
|
void | setParameters (const BiquadParameters &_parameters) |
|
void | setCoefficients (double *coeffs) |
|
double * | getCoefficients () |
|
double * | getStateArray () |
|
double | getG_value () |
|
double | getS_value () |
|
virtual bool | reset (double _sampleRate) |
|
virtual bool | canProcessAudioFrame () |
|
virtual double | processAudioSample (double xn) |
|
BiquadParameters | getParameters () |
|
void | setParameters (const BiquadParameters &_parameters) |
|
void | setCoefficients (double *coeffs) |
|
double * | getCoefficients () |
|
double * | getStateArray () |
|
double | getG_value () |
|
double | getS_value () |
|
virtual bool | reset (double _sampleRate) |
|
virtual bool | canProcessAudioFrame () |
|
virtual double | processAudioSample (double xn) |
|
BiquadParameters | getParameters () |
|
void | setParameters (const BiquadParameters &_parameters) |
|
void | setCoefficients (double *coeffs) |
|
double * | getCoefficients () |
|
double * | getStateArray () |
|
double | getG_value () |
|
double | getS_value () |
|
virtual void | setSampleRate (double _sampleRate) |
|
virtual void | enableAuxInput (bool enableAuxInput) |
|
virtual double | processAuxInputAudioSample (double xn) |
|
virtual bool | processAudioFrame (const float *inputFrame, float *outputFrame, uint32_t inputChannels, uint32_t outputChannels) |
|
virtual void | setSampleRate (double _sampleRate) |
|
virtual void | enableAuxInput (bool enableAuxInput) |
|
virtual double | processAuxInputAudioSample (double xn) |
|
virtual bool | processAudioFrame (const float *inputFrame, float *outputFrame, uint32_t inputChannels, uint32_t outputChannels) |
|
virtual void | setSampleRate (double _sampleRate) |
|
virtual void | enableAuxInput (bool enableAuxInput) |
|
virtual double | processAuxInputAudioSample (double xn) |
|
virtual bool | processAudioFrame (const float *inputFrame, float *outputFrame, uint32_t inputChannels, uint32_t outputChannels) |
|
virtual void | setSampleRate (double _sampleRate) |
|
virtual void | enableAuxInput (bool enableAuxInput) |
|
virtual double | processAuxInputAudioSample (double xn) |
|
virtual bool | processAudioFrame (const float *inputFrame, float *outputFrame, uint32_t inputChannels, uint32_t outputChannels) |
|
The Biquad object implements a first or second order H(z) transfer function using one of four standard structures: Direct, Canonical, Transpose Direct, Transpose Canonical.
Audio I/O:
- Processes mono input to mono output.
Control I/F:
- Author
- Will Pirkle http://www.willpirkle.com
- Version
- Revision : 1.0
- Date
- Date : 2018 / 09 / 7
◆ canProcessAudioFrame() [1/4]
virtual bool Biquad::canProcessAudioFrame |
( |
| ) |
|
|
inlinevirtual |
◆ canProcessAudioFrame() [2/4]
virtual bool Biquad::canProcessAudioFrame |
( |
| ) |
|
|
inlinevirtual |
◆ canProcessAudioFrame() [3/4]
virtual bool Biquad::canProcessAudioFrame |
( |
| ) |
|
|
inlinevirtual |
◆ canProcessAudioFrame() [4/4]
virtual bool Biquad::canProcessAudioFrame |
( |
| ) |
|
|
inlinevirtual |
◆ getCoefficients() [1/4]
double* Biquad::getCoefficients |
( |
| ) |
|
|
inline |
get the coefficient array for read/write access to the array (not used in current objects)
◆ getCoefficients() [2/4]
double* Biquad::getCoefficients |
( |
| ) |
|
|
inline |
get the coefficient array for read/write access to the array (not used in current objects)
◆ getCoefficients() [3/4]
double* Biquad::getCoefficients |
( |
| ) |
|
|
inline |
get the coefficient array for read/write access to the array (not used in current objects)
◆ getCoefficients() [4/4]
double* Biquad::getCoefficients |
( |
| ) |
|
|
inline |
get the coefficient array for read/write access to the array (not used in current objects)
◆ getG_value() [1/4]
double Biquad::getG_value |
( |
| ) |
|
|
inline |
get the structure G (gain) value for Harma filters; see 2nd Ed FX book
◆ getG_value() [2/4]
double Biquad::getG_value |
( |
| ) |
|
|
inline |
get the structure G (gain) value for Harma filters; see 2nd Ed FX book
◆ getG_value() [3/4]
double Biquad::getG_value |
( |
| ) |
|
|
inline |
get the structure G (gain) value for Harma filters; see 2nd Ed FX book
◆ getG_value() [4/4]
double Biquad::getG_value |
( |
| ) |
|
|
inline |
get the structure G (gain) value for Harma filters; see 2nd Ed FX book
◆ getParameters() [1/4]
get parameters: note use of custom structure for passing param data
- Returns
- BiquadParameters custom data structure
◆ getParameters() [2/4]
get parameters: note use of custom structure for passing param data
- Returns
- BiquadParameters custom data structure
◆ getParameters() [3/4]
get parameters: note use of custom structure for passing param data
- Returns
- BiquadParameters custom data structure
◆ getParameters() [4/4]
get parameters: note use of custom structure for passing param data
- Returns
- BiquadParameters custom data structure
◆ getS_value() [1/4]
double Biquad::getS_value |
( |
| ) |
|
|
inline |
get the structure S (storage) value for Harma filters; see 2nd Ed FX book
◆ getS_value() [2/4]
double Biquad::getS_value |
( |
| ) |
|
|
inline |
get the structure S (storage) value for Harma filters; see 2nd Ed FX book
◆ getS_value() [3/4]
double Biquad::getS_value |
( |
| ) |
|
|
inline |
get the structure S (storage) value for Harma filters; see 2nd Ed FX book
◆ getS_value() [4/4]
double Biquad::getS_value |
( |
| ) |
|
|
inline |
get the structure S (storage) value for Harma filters; see 2nd Ed FX book
◆ getStateArray() [1/4]
double* Biquad::getStateArray |
( |
| ) |
|
|
inline |
get the state array for read/write access to the array (used only in direct form oscillator)
◆ getStateArray() [2/4]
double* Biquad::getStateArray |
( |
| ) |
|
|
inline |
get the state array for read/write access to the array (used only in direct form oscillator)
◆ getStateArray() [3/4]
double* Biquad::getStateArray |
( |
| ) |
|
|
inline |
get the state array for read/write access to the array (used only in direct form oscillator)
◆ getStateArray() [4/4]
double* Biquad::getStateArray |
( |
| ) |
|
|
inline |
get the state array for read/write access to the array (used only in direct form oscillator)
◆ processAudioSample() [1/4]
virtual double Biquad::processAudioSample |
( |
double |
xn | ) |
|
|
virtual |
process input x(n) through biquad to produce return value y(n)
- Parameters
-
- Returns
- the processed sample
Implements IAudioSignalProcessor.
◆ processAudioSample() [2/4]
double Biquad::processAudioSample |
( |
double |
xn | ) |
|
|
virtual |
process one sample through the biquad
process input x(n) through biquad to produce return value y(n)
- Parameters
-
- Returns
- the processed sample
- RULES:
1) do all math required to form the output y(n), reading registers as required - do NOT write registers
2) check for underflow, which can happen with feedback structures
3) lastly, update the states of the z^-1 registers in the state array just before returning
- NOTES:
the storageComponent or "S" value is used for Zavalishin's VA filters and is only available on two of the forms: direct and transposed canonical
- Parameters
-
- Returns
- the biquad processed output y(n)
Implements IAudioSignalProcessor.
◆ processAudioSample() [3/4]
virtual double Biquad::processAudioSample |
( |
double |
xn | ) |
|
|
virtual |
process input x(n) through biquad to produce return value y(n)
- Parameters
-
- Returns
- the processed sample
Implements IAudioSignalProcessor.
◆ processAudioSample() [4/4]
virtual double Biquad::processAudioSample |
( |
double |
xn | ) |
|
|
virtual |
process input x(n) through biquad to produce return value y(n)
- Parameters
-
- Returns
- the processed sample
Implements IAudioSignalProcessor.
◆ reset() [1/4]
virtual bool Biquad::reset |
( |
double |
_sampleRate | ) |
|
|
inlinevirtual |
reset: clear out the state array (flush delays); can safely ignore sampleRate argument - we don't need/use it
Implements IAudioSignalProcessor.
◆ reset() [2/4]
virtual bool Biquad::reset |
( |
double |
_sampleRate | ) |
|
|
inlinevirtual |
reset: clear out the state array (flush delays); can safely ignore sampleRate argument - we don't need/use it
Implements IAudioSignalProcessor.
◆ reset() [3/4]
virtual bool Biquad::reset |
( |
double |
_sampleRate | ) |
|
|
inlinevirtual |
reset: clear out the state array (flush delays); can safely ignore sampleRate argument - we don't need/use it
Implements IAudioSignalProcessor.
◆ reset() [4/4]
virtual bool Biquad::reset |
( |
double |
_sampleRate | ) |
|
|
inlinevirtual |
reset: clear out the state array (flush delays); can safely ignore sampleRate argument - we don't need/use it
Implements IAudioSignalProcessor.
◆ setCoefficients() [1/4]
void Biquad::setCoefficients |
( |
double * |
coeffs | ) |
|
|
inline |
set the coefficient array NOTE: passing by pointer to array; allows us to use "array notation" with pointers i.e. [ ]
◆ setCoefficients() [2/4]
void Biquad::setCoefficients |
( |
double * |
coeffs | ) |
|
|
inline |
set the coefficient array NOTE: passing by pointer to array; allows us to use "array notation" with pointers i.e. [ ]
◆ setCoefficients() [3/4]
void Biquad::setCoefficients |
( |
double * |
coeffs | ) |
|
|
inline |
set the coefficient array NOTE: passing by pointer to array; allows us to use "array notation" with pointers i.e. [ ]
◆ setCoefficients() [4/4]
void Biquad::setCoefficients |
( |
double * |
coeffs | ) |
|
|
inline |
set the coefficient array NOTE: passing by pointer to array; allows us to use "array notation" with pointers i.e. [ ]
◆ setParameters() [1/4]
set parameters: note use of custom structure for passing param data
- Parameters
-
◆ setParameters() [2/4]
set parameters: note use of custom structure for passing param data
- Parameters
-
◆ setParameters() [3/4]
set parameters: note use of custom structure for passing param data
- Parameters
-
◆ setParameters() [4/4]
set parameters: note use of custom structure for passing param data
- Parameters
-
◆ coeffArray
double Biquad::coeffArray = { 0.0 } |
|
protected |
◆ parameters
type of calculation (algorithm structure)
◆ stateArray
double Biquad::stateArray = { 0.0 } |
|
protected |
array of state (z^-1) registers
◆ storageComponent
double Biquad::storageComponent = 0.0 |
|
protected |
for Harma loop resolution
The documentation for this class was generated from the following files:
- C:/RackAFX_v7/ASPIK_SDK/samples/demo_custom_views/With FFTW/DemoCustomViews/project_source/source/PluginObjects/fxobjects.h
- C:/RackAFX_v7/ASPIK_SDK/samples/demo_custom_views/With FFTW/DemoCustomViews/project_source/source/PluginObjects/fxobjects.cpp