arduino-audio-tools
Loading...
Searching...
No Matches
EnvelopeFilter< effectsuite_t > Class Template Reference

EnvelopeFilter. More...

#include <AudioEffectsSuite.h>

Inheritance diagram for EnvelopeFilter< effectsuite_t >:
FilterEffectBase< effectsuite_t_default > EffectSuiteBase< effectsuite_t_default > AudioEffect

Public Member Functions

 EnvelopeFilter ()
 ~EnvelopeFilter ()=default
virtual bool active ()
 determines if the effect is active
virtual effectsuite_t_default applyFilter (effectsuite_t_default sampVal)
EnvelopeFilter * clone () override
effectsuite_t_default envelope (effectsuite_t_default sample)
int id ()
 Allows to identify an effect.
virtual effect_t process (effect_t inputSample) override
 see applyFilter
effectsuite_t processFloat (effectsuite_t sample)
virtual effectsuite_t_default processFloat (effectsuite_t_default inputSample) override
virtual void setActive (bool value)
 sets the effect active/inactive
bool setChebyICoefficients (effectsuite_t_default cutFreqIn, bool shelfType, effectsuite_t_default rippleIn)
void setId (int id)
 Allows to identify an effect.

Protected Member Functions

void allocateBufferMemory ()
bool changeChebyICoefficients (effectsuite_t_default cutFreq, bool shelfType, effectsuite_t_default ripple, int poles)
void clearMemory ()
int16_t clip (int32_t in, int16_t clipLimit=32767, int16_t resultLimit=32767)
 generic clipping method
void copyParent (AudioEffect *copy)
void incBufferIndex ()
effectsuite_t_default rms (effectsuite_t_default sample)
bool setSimpleLpf (int order)

Protected Attributes

bool active_flag
int bufferIndex
SimpleLPF< effectsuite_t > envelopeFollower
int filterOrder
float * firBuffer
float * firCoefficients
float * firTemp
int id_value
float * iirBuffer
float * iirCoefficients
float * iirTemp
effectsuite_t_default * rmsBuffer
int rmsBufferIndex
const int rmsWindowSize
int samplingRate

Detailed Description

template<typename effectsuite_t = effectsuite_t_default>
class audio_tools::EnvelopeFilter< effectsuite_t >

EnvelopeFilter.

Author
Matthew Hamilton

Constructor & Destructor Documentation

◆ EnvelopeFilter()

template<typename effectsuite_t = effectsuite_t_default>
EnvelopeFilter ( )
inline

Constructor

◆ ~EnvelopeFilter()

template<typename effectsuite_t = effectsuite_t_default>
~EnvelopeFilter ( )
default

Desructor

Member Function Documentation

◆ active()

virtual bool active ( )
inlinevirtualinherited

determines if the effect is active

◆ allocateBufferMemory()

void allocateBufferMemory ( )
inlineprotectedinherited

will allocate memory to a buffer given the current filter order and set all values == 0.00

◆ applyFilter()

virtual effectsuite_t_default applyFilter ( effectsuite_t_default sampVal)
inlinevirtualinherited

with the current filter coefficients this method filters a sample then stores it the sample Buffer and increments the index

Parameters
sampValis the sample to be processed
Returns
filtered audio sample

◆ changeChebyICoefficients()

bool changeChebyICoefficients ( effectsuite_t_default cutFreq,
bool shelfType,
effectsuite_t_default ripple,
int poles )
inlineprotectedinherited

set firCoefficients and iirCoefficients for required chebyshev type I filter sampleBuffer memory is also set @params cutFreq normalised cutoff frequency (0 < x < .5) @params shelfType bool filter shelf type, false = low pass, true = high pass @params ripple percentage ripple (<.2929) @params poles number of poles

Returns
boolean false on error and true on success

◆ clearMemory()

void clearMemory ( )
inlineprotectedinherited

checks internal memory storage of filter coeffcients and deletes if required

◆ clip()

int16_t clip ( int32_t in,
int16_t clipLimit = 32767,
int16_t resultLimit = 32767 )
inlineprotectedinherited

generic clipping method

◆ clone()

template<typename effectsuite_t = effectsuite_t_default>
EnvelopeFilter * clone ( )
inlineoverridevirtual

Implements AudioEffect.

◆ copyParent()

void copyParent ( AudioEffect * copy)
inlineprotectedinherited

◆ envelope()

effectsuite_t_default envelope ( effectsuite_t_default sample)
inlineinherited

detect the envelop of an incoming signal

Parameters
samplethe incoming signal sample value
Returns
returns envelope dection signal sample value

◆ id()

int id ( )
inlineinherited

Allows to identify an effect.

◆ incBufferIndex()

void incBufferIndex ( )
inlineprotectedinherited

increment the buffer index and wrap it to the filter order

◆ process()

virtual effect_t process ( effect_t inputSample)
inlineoverridevirtualinherited

see applyFilter

Reimplemented from EffectSuiteBase< effectsuite_t_default >.

Reimplemented in FilteredDelay< effectsuite_t >.

◆ processFloat() [1/2]

template<typename effectsuite_t = effectsuite_t_default>
effectsuite_t processFloat ( effectsuite_t sample)
inline

main process method: applies an envelope filter to the incoming signal sample @params sample incoming signal sample value

Returns
processed sample value

◆ processFloat() [2/2]

virtual effectsuite_t_default processFloat ( effectsuite_t_default inputSample)
inlineoverridevirtualinherited

◆ rms()

effectsuite_t_default rms ( effectsuite_t_default sample)
inlineprotectedinherited

root mean square of signal over a specific sample window

◆ setActive()

virtual void setActive ( bool value)
inlinevirtualinherited

sets the effect active/inactive

◆ setChebyICoefficients()

bool setChebyICoefficients ( effectsuite_t_default cutFreqIn,
bool shelfType,
effectsuite_t_default rippleIn )
inlineinherited

changes the current Chebyshev type 1 coefficients without altering the filter order. This allows for use in an audio process thread as it avoids dynamic allocation of memory. Filter sample and coefficient buffers are unaltered for initialising a chebyshev type 1 filter

See also
setChebyICoefficients @params cutFreq normalised cutoff frequency (0 < x < .5) @params shelfType bool Filters shelf type, false = low pass, true = high pass @params ripple percentage ripple (<.2929)
Returns
boolean false on error and true on success

◆ setId()

void setId ( int id)
inlineinherited

Allows to identify an effect.

◆ setSimpleLpf()

bool setSimpleLpf ( int order)
inlineprotectedinherited

a simple normalised fir low pass filter @params order number of delay coefficients

Member Data Documentation

◆ active_flag

bool active_flag
protectedinherited

◆ bufferIndex

int bufferIndex
protectedinherited

current buffer index

◆ envelopeFollower

template<typename effectsuite_t = effectsuite_t_default>
SimpleLPF<effectsuite_t> envelopeFollower
protected

this follows the signal envelope and alters the internallow pass filter cutoff

◆ filterOrder

int filterOrder
protectedinherited

order of delay filter including the zero delay coefficients

◆ firBuffer

float* firBuffer
protectedinherited

buffer to hold forward delay sample data

◆ firCoefficients

float* firCoefficients
protectedinherited

Numerator coefficients in delay filter firCoefficients[0] z^0 coeffcieint firCoefficients[1] z^-1 coefficient

◆ firTemp

float* firTemp
protectedinherited

hold temporary values for fir coeffcient buffer

◆ id_value

int id_value
protectedinherited

◆ iirBuffer

float* iirBuffer
protectedinherited

buffer to hold backward delay sample data

◆ iirCoefficients

float* iirCoefficients
protectedinherited

Denomiator coefficients in delay filter

See also
firCoefficients

◆ iirTemp

float* iirTemp
protectedinherited

hold temporary values for iir coeffcient buffer

◆ rmsBuffer

effectsuite_t_default* rmsBuffer
protectedinherited

RMS window buffer

◆ rmsBufferIndex

int rmsBufferIndex
protectedinherited

current write index of rmsBuffer

◆ rmsWindowSize

const int rmsWindowSize
protectedinherited

window size in samples of rms window

◆ samplingRate

int samplingRate
protectedinherited

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