Delay effect that filters the repeat delay.
More...
#include <AudioEffectsSuite.h>
|
static const int | interpOrder = 4 |
|
static const int | interpResolution = 1000 |
|
Delay effect that filters the repeat delay.
- Author
- Matthew Hamilton
- Copyright
- MIT License
◆ FilteredDelay()
◆ ~FilteredDelay()
◆ 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 applyFilter |
( |
effectsuite_t |
sampVal | ) |
|
|
inlinevirtualinherited |
with the current filter coefficients this method filters a sample then stores it the sample Buffer and increments the index
- Parameters
-
sampVal | is the sample to be processed |
- Returns
- filtered audio sample
◆ capGain()
void capGain |
( |
effectsuite_t & |
gain | ) |
|
|
inlineprotected |
capGain: caps gain to a range of 1 and -1;
- Parameters
-
gain | address of gain value |
◆ changeChebyICoefficients()
bool changeChebyICoefficients |
( |
effectsuite_t |
cutFreq, |
|
|
bool |
shelfType, |
|
|
effectsuite_t |
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()
checks internal memory storage of filter coeffcients and deletes if required
◆ delaySample()
void delaySample |
( |
effectsuite_t |
inputSample | ) |
|
|
inlineprotectedinherited |
store input sample into the delay buffer and increment currentDelayWriteIndex for tracking when to loop back to start of buffer
- Parameters
-
inputSample | sample to be stored for delay (effectsuite_t) |
◆ envelope()
effectsuite_t envelope |
( |
effectsuite_t |
sample | ) |
|
|
inlineinherited |
detect the envelop of an incoming signal
- Parameters
-
sample | the incoming signal sample value |
- Returns
- returns envelope dection signal sample value
◆ getInterpolatedOut()
effectsuite_t getInterpolatedOut |
( |
effectsuite_t |
bufferIndex | ) |
|
|
inlineprotectedinherited |
get the value of the requested buffer index by interpolating other points
- Parameters
-
bufferIndex | The required buffer index |
- Returns
- interpolated output
◆ incBufferIndex()
increment the buffer index and wrap it to the filter order
◆ incDelayBuffReadIndex()
void incDelayBuffReadIndex |
( |
effectsuite_t |
indexInc | ) |
|
|
inlineprotectedinherited |
Increments the currentDelayBufferReadIndex by indexInc
- Parameters
-
indexInc | The amount to increment the delay buffer index |
◆ incDelayBuffWriteIndex()
void incDelayBuffWriteIndex |
( |
| ) |
|
|
inlineprotectedinherited |
Increments the currentDelayWriteBufferIndex by 1
◆ processDouble()
effectsuite_t processDouble |
( |
effectsuite_t |
inputSample | ) |
|
|
inlineoverridevirtual |
◆ rms()
effectsuite_t rms |
( |
effectsuite_t |
sample | ) |
|
|
inlineprotectedinherited |
root mean square of signal over a specific sample window
◆ setChebyICoefficients()
bool setChebyICoefficients |
( |
effectsuite_t |
cutFreq, |
|
|
bool |
shelfType, |
|
|
effectsuite_t |
ripple |
|
) |
| |
|
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
◆ setDelayBuffer()
bool setDelayBuffer |
( |
int |
bufferSizeSamples | ) |
|
|
inlineprotectedinherited |
Allocates memory for delay buffer and initialises all elements to 0
- Parameters
-
bufferSizeSamples | the size of delay buffer to be used |
- Returns
- false and error description if there's a problem, or sets the internal delay buffer and returns true
◆ setDelayBuffReadIndex()
void setDelayBuffReadIndex |
( |
effectsuite_t |
index | ) |
|
|
inlineprotectedinherited |
sets the currentDelayBufferReadIndex by indexInc (Currently no wrapping)
- Parameters
-
index | the read index index required |
◆ setDelayGain()
void setDelayGain |
( |
effectsuite_t |
gain | ) |
|
|
inline |
setDelayGain: sets the delay gain to a value between 1 and -1
- Parameters
-
gainrequired | delay gain. Values beyond 1 and -1 are capped to the maximum to avoid idiocy. Negative velus invoke a phase inversion. |
- See also
- setFeedbackGain
◆ setFeedbackGain()
void setFeedbackGain |
( |
effectsuite_t |
gain | ) |
|
|
inline |
setDelayGain: sets the feedback gain to a value between 1 and -1
- Parameters
-
gain | required delay gain. Values beyond 1 and -1 are capped to the maximum to avoid idiocy. Negative velus invoke a phase inversion. |
- See also
- setDelayGain
◆ setInterpolationTable()
static effectsuite_t** setInterpolationTable |
( |
| ) |
|
|
inlinestaticprotectedinherited |
Sets the internal lagrange interpolation table. Ideally it should be shared amongst all
- Returns
- false and an error description if there's a problem, or sets the interpolation lookup table and returns true
◆ setSimpleLpf()
bool setSimpleLpf |
( |
int |
order | ) |
|
|
inlineprotectedinherited |
a simple normalised fir low pass filter @params order number of delay coefficients
◆ setupDelayEffectBase()
void setupDelayEffectBase |
( |
const int |
bufferSizeSamples | ) |
|
|
inlineinherited |
<#Description#>
- Parameters
-
bufferSizeSamples | <#bufferSizeSamples description#> |
◆ storeSample()
void storeSample |
( |
effectsuite_t |
inputSample | ) |
|
|
inlineprotectedinherited |
store input sample into the delay buffer
- Parameters
-
inputSample | sample to be stored for delay (effectsuite_t) |
◆ bufferIndex
◆ delayBuffer
effectsuite_t* delayBuffer = 0 |
|
protectedinherited |
buffer to stored audio buffer for delay effects
◆ delayTimeSamples
int delayTimeSamples = 44100 |
|
protectedinherited |
the delay time of signal in samples
◆ error
internal class error boolean
◆ filterOrder
order of delay filter including the zero delay coefficients
◆ firBuffer
effectsuite_t* firBuffer = 0 |
|
protectedinherited |
buffer to hold forward delay sample data
◆ firCoefficients
effectsuite_t* firCoefficients = 0 |
|
protectedinherited |
Numerator coefficients in delay filter firCoefficients[0] z^0 coeffcieint firCoefficients[1] z^-1 coefficient
◆ firTemp
effectsuite_t* firTemp = 0 |
|
protectedinherited |
hold temporary values for fir coeffcient buffer
◆ iirBuffer
effectsuite_t* iirBuffer = 0 |
|
protectedinherited |
buffer to hold backward delay sample data
◆ iirCoefficients
effectsuite_t* iirCoefficients = 0 |
|
protectedinherited |
◆ iirTemp
effectsuite_t* iirTemp = 0 |
|
protectedinherited |
hold temporary values for iir coeffcient buffer
◆ maxDelayBufferSize
int maxDelayBufferSize = 441000 |
|
protectedinherited |
Maximum number of samples that can be stored in delayBuffer
◆ rmsBuffer
◆ rmsBufferIndex
current write index of rmsBuffer
◆ rmsWindowSize
const int rmsWindowSize = 128 |
|
protectedinherited |
window size in samples of rms window
The documentation for this class was generated from the following file: