LMMS
Loading...
Searching...
No Matches
lmms::EqFilter Class Reference

The EqFilter class. A wrapper for the StereoBiQuad class, giving it freq, res, and gain controls. Used on a per channel per frame basis with recalculation of coefficents upon parameter changes. The intention is to use this as a bass class, children override the calcCoefficents() function, providing the coefficents a1, a2, b0, b1, b2. More...

#include <EqFilter.h>

Inheritance diagram for lmms::EqFilter:
lmms::EqHighShelfFilter lmms::EqHp12Filter lmms::EqLowShelfFilter lmms::EqLp12Filter lmms::EqPeakFilter

Public Member Functions

 EqFilter ()
virtual void setSampleRate (int sampleRate)
virtual void setFrequency (float freq)
virtual void setQ (float res)
virtual void setGain (float gain)
virtual void setParameters (float sampleRate, float freq, float res, float gain)
float update (float in, ch_cnt_t ch, float frameProgress)
 update filters using two BiQuads, then crossfades, depending on on percentage of period processes

Protected Member Functions

virtual void calcCoefficents ()
 calcCoefficents Override this in child classes to provide the coefficents, based on Freq, Res and Gain
void setCoeffs (float a1, float a2, float b0, float b1, float b2)

Protected Attributes

float m_sampleRate
float m_freq
float m_res
float m_gain
float m_bw
StereoBiQuad m_biQuadFrameInitial
StereoBiQuad m_biQuadFrameTarget

Detailed Description

The EqFilter class. A wrapper for the StereoBiQuad class, giving it freq, res, and gain controls. Used on a per channel per frame basis with recalculation of coefficents upon parameter changes. The intention is to use this as a bass class, children override the calcCoefficents() function, providing the coefficents a1, a2, b0, b1, b2.

Constructor & Destructor Documentation

◆ EqFilter()

lmms::EqFilter::EqFilter ( )
inline

Member Function Documentation

◆ calcCoefficents()

virtual void lmms::EqFilter::calcCoefficents ( )
inlineprotectedvirtual

calcCoefficents Override this in child classes to provide the coefficents, based on Freq, Res and Gain

Reimplemented in lmms::EqHighShelfFilter, lmms::EqHp12Filter, lmms::EqLowShelfFilter, lmms::EqLp12Filter, and lmms::EqPeakFilter.

◆ setCoeffs()

void lmms::EqFilter::setCoeffs ( float a1,
float a2,
float b0,
float b1,
float b2 )
inlineprotected

◆ setFrequency()

virtual void lmms::EqFilter::setFrequency ( float freq)
inlinevirtual

◆ setGain()

virtual void lmms::EqFilter::setGain ( float gain)
inlinevirtual

◆ setParameters()

virtual void lmms::EqFilter::setParameters ( float sampleRate,
float freq,
float res,
float gain )
inlinevirtual

Reimplemented in lmms::EqPeakFilter.

◆ setQ()

virtual void lmms::EqFilter::setQ ( float res)
inlinevirtual

◆ setSampleRate()

virtual void lmms::EqFilter::setSampleRate ( int sampleRate)
inlinevirtual

◆ update()

float lmms::EqFilter::update ( float in,
ch_cnt_t ch,
float frameProgress )
inline

update filters using two BiQuads, then crossfades, depending on on percentage of period processes

Parameters
in
ch
frameProgresspercentage of frame processed
Returns

Member Data Documentation

◆ m_biQuadFrameInitial

StereoBiQuad lmms::EqFilter::m_biQuadFrameInitial
protected

◆ m_biQuadFrameTarget

StereoBiQuad lmms::EqFilter::m_biQuadFrameTarget
protected

◆ m_bw

float lmms::EqFilter::m_bw
protected

◆ m_freq

float lmms::EqFilter::m_freq
protected

◆ m_gain

float lmms::EqFilter::m_gain
protected

◆ m_res

float lmms::EqFilter::m_res
protected

◆ m_sampleRate

float lmms::EqFilter::m_sampleRate
protected

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