Simple Delay effect consiting of a single tap delay with Effect Gain and feed back controls Constructor requires internal delay in samples.
More...
#include <AudioEffectsSuite.h>
|
bool | active_flag = true |
|
int | count = 0 |
|
effectsuite_t | currentDelayReadIndex = 0 |
|
effectsuite_t | currentDelaySamples |
|
int | currentDelayWriteIndex = 0 |
|
effectsuite_t * | delayBuffer = 0 |
|
effectsuite_t | delayGain = .707 |
|
effectsuite_t | delayIncrement |
|
bool | delayTimeChanged = false |
|
int | delayTimeSamples = 44100 |
|
effectsuite_t | delayTransitionTime |
|
effectsuite_t | delayTransitionTimeInSamples |
|
bool | error |
|
effectsuite_t | feedbackGain = 0. |
|
int | id_value = -1 |
|
effectsuite_t | invDelayIncrement |
|
int | maxDelayBufferSize = 441000 |
|
effectsuite_t | readHeadIndex |
|
int | sampleRate |
|
effectsuite_t | targetDelaySamples |
|
unsigned int | writeHeadIndex |
|
|
static const int | interpOrder = 4 |
|
static const int | interpResolution = 1000 |
|
Simple Delay effect consiting of a single tap delay with Effect Gain and feed back controls Constructor requires internal delay in samples.
- See also
- process
- Author
- Matthew Hamilton
- Copyright
- MIT License
◆ SimpleDelay()
SimpleDelay |
( |
int |
maxDelayInSamples = 8810 , |
|
|
int |
samplingRate = 44100 |
|
) |
| |
|
inline |
Constructor: DigitalEffect Base Must Be initialised
- Parameters
-
delayInSamples | Set the amount of delay in samples |
- See also
- DelayEffectBase constructor
◆ ~SimpleDelay()
◆ capGain()
void capGain |
( |
effectsuite_t & |
gain | ) |
|
|
inlineprotected |
capGain: caps gain to a range of 1 and -1;
- Parameters
-
gain | address of gain value |
◆ 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) |
◆ 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
◆ getSplineOut()
effectsuite_t getSplineOut |
( |
effectsuite_t |
bufferIndex | ) |
|
|
inlineprotected |
get a cubic spline interpolated out from the wave table Derived from code by Alec Wright at repository: https://github.com/Alec-Wright/Chorus
- Authors
- Matthew Hamilton, Alec Wright
- Parameters
-
bufferIndex | the required buffer index |
- Returns
- returns interpolated value as effectsuite_t
◆ 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
◆ process()
effect_t process |
( |
effect_t |
inputSample | ) |
|
|
inlineoverridevirtual |
Main process block for applying audio effect
- Parameters
-
inputSample | The int16_t input audio sample for the effect to be applied to |
- Returns
- an audio sample as a int16_t with effect applied
Reimplemented from EffectSuiteBase.
◆ processDouble()
effectsuite_t processDouble |
( |
effectsuite_t |
inputSample | ) |
|
|
inlineoverridevirtual |
Apply delay and return input sample along with delay buffer signal
- Parameters
-
inputSample | <#inputSample description#> |
- Returns
- <#return value description#>
Implements EffectSuiteBase.
◆ 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
-
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
- setFeedbackGain
◆ setDelayTime()
void setDelayTime |
( |
effectsuite_t |
delayInSamples | ) |
|
|
inline |
<#Description#>
- Parameters
-
delayInSample | <#delayInSample description#> |
◆ setDelayTransitionTime()
void setDelayTransitionTime |
( |
effectsuite_t |
seconds | ) |
|
|
inline |
<#Description#>
- Parameters
-
seconds | <#seconds description#> |
◆ 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
◆ setupDelayEffectBase()
void setupDelayEffectBase |
( |
const int |
bufferSizeSamples | ) |
|
|
inlineinherited |
<#Description#>
- Parameters
-
bufferSizeSamples | <#bufferSizeSamples description#> |
◆ setupSimpleDelay()
void setupSimpleDelay |
( |
int |
delayInSamples | ) |
|
|
inline |
<#Description#>
- Parameters
-
delayInSamples | <#delayInSamples 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) |
◆ delayBuffer
effectsuite_t* delayBuffer = 0 |
|
protectedinherited |
buffer to stored audio buffer for delay effects
◆ delayIncrement
effectsuite_t delayIncrement |
|
protected |
increment when transition from current to target delay per sample set by delayTransitionTime
◆ delayTimeSamples
int delayTimeSamples = 44100 |
|
protectedinherited |
the delay time of signal in samples
◆ delayTransitionTime
effectsuite_t delayTransitionTime |
|
protected |
time in seconds to transition from one delay to another
◆ error
internal class error boolean
◆ invDelayIncrement
effectsuite_t invDelayIncrement |
|
protected |
inverse of delay increment: for working out whole number cyles to reach target delay
◆ maxDelayBufferSize
int maxDelayBufferSize = 441000 |
|
protectedinherited |
Maximum number of samples that can be stored in delayBuffer
The documentation for this class was generated from the following file: