|
arduino-audio-tools
|
Delay effect that filters the repeat delay. More...
#include <AudioEffectsSuite.h>
Public Member Functions | |
| FilteredDelay (FilteredDelay ©)=default | |
| FilteredDelay (int delayInSamples, int sample_rate=44100) | |
| ~FilteredDelay ()=default | |
| virtual bool | active () |
| determines if the effect is active | |
| virtual effectsuite_t | applyFilter (effectsuite_t sampVal) |
| FilteredDelay * | clone () override |
| effectsuite_t | envelope (effectsuite_t sample) |
| int | id () |
| Allows to identify an effect. | |
| effect_t | process (effect_t inputSample) override |
| see applyFilter | |
| effectsuite_t | processDouble (effectsuite_t inputSample) override |
| virtual void | setActive (bool value) |
| sets the effect active/inactive | |
| bool | setChebyICoefficients (effectsuite_t cutFreq, bool shelfType, effectsuite_t ripple) |
| void | setDelayGain (effectsuite_t gain) |
| void | setFeedbackGain (effectsuite_t gain) |
| void | setId (int id) |
| Allows to identify an effect. | |
| void | setupDelayEffectBase (const int bufferSizeSamples) |
Protected Member Functions | |
| void | allocateBufferMemory () |
| void | capGain (effectsuite_t &gain) |
| bool | changeChebyICoefficients (effectsuite_t cutFreq, bool shelfType, effectsuite_t 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 | delaySample (effectsuite_t inputSample) |
| effectsuite_t | getInterpolatedOut (effectsuite_t bufferIndex) |
| void | incBufferIndex () |
| void | incDelayBuffReadIndex (effectsuite_t indexInc) |
| void | incDelayBuffWriteIndex () |
| effectsuite_t | rms (effectsuite_t sample) |
| bool | setDelayBuffer (int bufferSizeSamples) |
| void | setDelayBuffReadIndex (effectsuite_t index) |
| bool | setSimpleLpf (int order) |
| void | storeSample (effectsuite_t inputSample) |
Static Protected Member Functions | |
| static effectsuite_t ** | setInterpolationTable () |
Protected Attributes | |
| bool | active_flag = true |
| int | bufferIndex = 0 |
| effectsuite_t | currentDelayReadIndex = 0 |
| int | currentDelayWriteIndex = 0 |
| effectsuite_t * | delayBuffer = 0 |
| effectsuite_t | delayGain = .707 |
| int | delayTimeSamples = 44100 |
| bool | error |
| effectsuite_t | feedbackGain = 0.0 |
| int | filterOrder = 0 |
| effectsuite_t * | firBuffer = 0 |
| effectsuite_t * | firCoefficients = 0 |
| effectsuite_t * | firTemp = 0 |
| int | id_value = -1 |
| effectsuite_t * | iirBuffer = 0 |
| effectsuite_t * | iirCoefficients = 0 |
| effectsuite_t * | iirTemp = 0 |
| int | maxDelayBufferSize = 441000 |
| effectsuite_t * | rmsBuffer = new effectsuite_t[rmsWindowSize] |
| int | rmsBufferIndex = 0 |
| const int | rmsWindowSize = 128 |
| int | samplingRate = 0 |
Static Protected Attributes | |
| static const int | interpOrder = 4 |
| static const int | interpResolution = 1000 |
Delay effect that filters the repeat delay.
|
inline |
Constructor
|
default |
|
default |
Destructor
|
inlineprotectedinherited |
will allocate memory to a buffer given the current filter order and set all values == 0.00
|
inlinevirtualinherited |
with the current filter coefficients this method filters a sample then stores it the sample Buffer and increments the index
| sampVal | is the sample to be processed |
|
inlineprotected |
capGain: caps gain to a range of 1 and -1;
| gain | address of gain value |
|
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
|
inlineprotectedinherited |
checks internal memory storage of filter coeffcients and deletes if required
|
inlineprotectedinherited |
generic clipping method
|
inlineoverridevirtual |
Implements AudioEffect.
|
inlineprotectedinherited |
|
inlineprotectedinherited |
store input sample into the delay buffer and increment currentDelayWriteIndex for tracking when to loop back to start of buffer
| inputSample | sample to be stored for delay (effectsuite_t) |
|
inlineinherited |
detect the envelop of an incoming signal
| sample | the incoming signal sample value |
|
inlineprotectedinherited |
get the value of the requested buffer index by interpolating other points
| bufferIndex | The required buffer index |
|
inlineinherited |
Allows to identify an effect.
|
inlineprotectedinherited |
increment the buffer index and wrap it to the filter order
|
inlineprotectedinherited |
Increments the currentDelayBufferReadIndex by indexInc
| indexInc | The amount to increment the delay buffer index |
|
inlineprotectedinherited |
Increments the currentDelayWriteBufferIndex by 1
see applyFilter
Reimplemented from FilterEffectBase.
|
inlineoverridevirtual |
apply the DSP effect
Reimplemented from FilterEffectBase.
|
inlineprotectedinherited |
root mean square of signal over a specific sample window
|
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
Allocates memory for delay buffer and initialises all elements to 0
| bufferSizeSamples | the size of delay buffer to be used |
|
inlineprotectedinherited |
sets the currentDelayBufferReadIndex by indexInc (Currently no wrapping)
| index | the read index index required |
|
inline |
setDelayGain: sets the delay gain to a value between 1 and -1
| gainrequired | delay gain. Values beyond 1 and -1 are capped to the maximum to avoid idiocy. Negative velus invoke a phase inversion. |
|
inline |
setDelayGain: sets the feedback gain to a value between 1 and -1
| gain | required delay gain. Values beyond 1 and -1 are capped to the maximum to avoid idiocy. Negative velus invoke a phase inversion. |
|
inlinestaticprotectedinherited |
Sets the internal lagrange interpolation table. Ideally it should be shared amongst all
a simple normalised fir low pass filter @params order number of delay coefficients
<Description#>
| bufferSizeSamples | <bufferSizeSamples description#> |
|
inlineprotectedinherited |
store input sample into the delay buffer
| inputSample | sample to be stored for delay (effectsuite_t) |
|
protectedinherited |
current buffer index
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
buffer to stored audio buffer for delay effects
|
protected |
|
protectedinherited |
the delay time of signal in samples
|
protectedinherited |
internal class error boolean
|
protected |
|
protectedinherited |
order of delay filter including the zero delay coefficients
|
protectedinherited |
buffer to hold forward delay sample data
|
protectedinherited |
Numerator coefficients in delay filter firCoefficients[0] z^0 coeffcieint firCoefficients[1] z^-1 coefficient
|
protectedinherited |
hold temporary values for fir coeffcient buffer
|
protectedinherited |
|
protectedinherited |
buffer to hold backward delay sample data
|
protectedinherited |
Denomiator coefficients in delay filter
|
protectedinherited |
hold temporary values for iir coeffcient buffer
|
protectedinherited |
Maximum number of samples that can be stored in delayBuffer
|
protectedinherited |
RMS window buffer
|
protectedinherited |
current write index of rmsBuffer
|
protectedinherited |