|
arduino-audio-tools
|
Simple Flanger Effect Consistig of a single voice flanger The flanger has an effective range between 0 and 15 miliseconds in this case dleay buffer should be set to sampleRate*3/200 Constructor requires internal delay in samples. More...
#include <AudioEffectsSuite.h>
Public Member Functions | |
| SimpleFlanger ()=default | |
| SimpleFlanger (effectsuite_t extSampleRate=44100) | |
| SimpleFlanger (SimpleFlanger ©)=default | |
| ~SimpleFlanger ()=default | |
| virtual bool | active () |
| determines if the effect is active | |
| SimpleFlanger * | clone () override |
| int | id () |
| Allows to identify an effect. | |
| effectsuite_t | processDouble (effectsuite_t inputSample) override |
| virtual void | setActive (bool value) |
| sets the effect active/inactive | |
| void | setDepth (const effectsuite_t depth) |
| void | setEffectGain (effectsuite_t gain) |
| void | setEffectParams (effectsuite_t gain, effectsuite_t depth, effectsuite_t rate) |
| void | setId (int id) |
| Allows to identify an effect. | |
| void | setRate (const effectsuite_t rate) |
| void | setupDelayEffectBase (const int bufferSizeSamples) |
| void | setupSimpleFlanger (effectsuite_t extSampleRate) |
Protected Member Functions | |
| effectsuite_t | capGain (effectsuite_t gain) |
| 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 | incDelayBuffReadIndex (effectsuite_t indexInc) |
| void | incDelayBuffWriteIndex () |
| void | setAngleDelta () |
| bool | setDelayBuffer (int bufferSizeSamples) |
| void | setDelayBuffReadIndex (effectsuite_t index) |
| void | storeSample (effectsuite_t inputSample) |
| void | updateModulation () |
Static Protected Member Functions | |
| static effectsuite_t ** | setInterpolationTable () |
Protected Attributes | |
| bool | active_flag = true |
| effectsuite_t | angleDelta = 2.0f * 3.141592653589793f * timeStep |
| effectsuite_t | currentDelayReadIndex = 0 |
| int | currentDelayWriteIndex = 0 |
| effectsuite_t * | delayBuffer = 0 |
| int | delayTimeSamples = 44100 |
| effectsuite_t | effectGain = .01 |
| bool | error |
| int | id_value = -1 |
| int | maxDelayBufferSize = 441000 |
| effectsuite_t | modulationAngle = 0 |
| effectsuite_t | modulationConstant |
| effectsuite_t | modulationDepth = 1000 |
| effectsuite_t | modulationIndex = 0 |
| effectsuite_t | modulationRate = 0 |
| effectsuite_t | timeStep = 1. / 44100. |
Static Protected Attributes | |
| static const int | interpOrder = 4 |
| static const int | interpResolution = 1000 |
Simple Flanger Effect Consistig of a single voice flanger The flanger has an effective range between 0 and 15 miliseconds in this case dleay buffer should be set to sampleRate*3/200 Constructor requires internal delay in samples.
|
default |
Constructor: DigitalEffect Base Must Be initialised
|
default |
|
inline |
|
default |
Destructor.
|
inlineprotected |
capGain: caps gain to a range of 1 and -1;
| gain | address of gain value |
|
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) |
|
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 |
Increments the currentDelayBufferReadIndex by indexInc
| indexInc | The amount to increment the delay buffer index |
|
inlineprotectedinherited |
Increments the currentDelayWriteBufferIndex by 1
|
inlineoverridevirtual |
Apply the DSP effect
Implements EffectSuiteBase.
|
inlineprotected |
setAngleDelta: sets the angleDelta for delay modulation
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 |
<Description#>
| depth | <#depth description#> |
|
inline |
setEffectGain: sets the effect 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. |
|
inline |
setEffectGain: sets the parameters for effect
| gain | effect gain |
| depth | depth of modulation in samples |
| rate | rate of modulation in Hz |
|
inlinestaticprotectedinherited |
Sets the internal lagrange interpolation table. Ideally it should be shared amongst all
|
inline |
<Description#>
| rate | <#rate description#> |
<Description#>
| bufferSizeSamples | <bufferSizeSamples description#> |
|
inline |
|
inlineprotectedinherited |
store input sample into the delay buffer
| inputSample | sample to be stored for delay (effectsuite_t) |
|
inlineprotected |
updateModulation: updates the modulationIndex by the correct increment
|
protected |
increment value for modulation signal
|
protectedinherited |
|
protectedinherited |
|
protectedinherited |
buffer to stored audio buffer for delay effects
|
protectedinherited |
the delay time of signal in samples
|
protected |
|
protectedinherited |
internal class error boolean
|
protectedinherited |
|
protectedinherited |
Maximum number of samples that can be stored in delayBuffer
|
protected |
|
protected |
2 * pi * modulationRate / sampleRate
|
protected |
|
protected |
|
protected |
|
protected |
1/sampleRate: The time in seconds between samples