Delay modules hold the input signal for some amount of time using an internal circular buffer. This buffer is instantiated with a size maxDelay
. At runtime, currentDelay
is set to control the time constant for the maxDelay
buffer. Most delays update currentDelay
instantaneously, but smoothed(interpolated) delays are provided if the final product needs a varying delay.
...
For most cases, use Delay msec or Delay samples. Modulated delays come into play for making musical effects.
Allpass Delays
Allpass Delays use feedback and feedforward in order to vary the phase of a signal without changing its magnitude or its position in time. Our allpass delays have a coef variable which determines the amount of gain on the feedback/forward mix factor. Allpasses are commonly used in audio effects like chorus, flanger, reverb, and stereo effects. Our allpasses also have the option of outputting the delayed signal (in cases where time position and phase should change).
Modulated Delays
Modulated Delays come with a modulation control pin. This control pin feeds the modulation factor mod, limited in depth by modDepth. A common use case is to provide the mod pin with a random or oscillator source that varies from -1 to 1, allowing the delay to vary. This oscillation reduces harmonic artifacts from feedback delay lines.
Delay Taps
Delay Taps create an evenly spaced N amount of delays, which are all interleaved into separate ‘delay channels.’ This is useful for adaptive FIR filters and prediction algorithms due to the consistency in delay length.
Low memory delays
Since delays tend to be memory intensive, memory efficient options are provided. Modules labelled with a 16 in the name use half of the bits (compared to 32 bit data). This results in about half the size on the heap, at a cost of lost amplitude resolution. Our most memory efficient delay for multiple lines is the Delay State Writer16. This uses a circular buffer and multiple pointers instead of multiple buffers in memory, all while using 16-bit resolution.
Table of Delay Modules
Module Name | Input type | Delay Time Type | Time Interpolation | Modulation Control | Delay Tap | Low Mem |
Allpass Delay | Floating point | Integer Samples | (none) | (none) | (none) | (none) |
Allpass Delay Fract32 | Fract32 | Integer Samples | (none) | (none) | (none) | (none) |
Allpass Delay16 | Floating point | Integer Samples | (none) | (none) | (none) | yes |
Allpass Delay16 Fract32 | Fract32 | Integer Samples | (none) | (none) | (none) | yes |
Allpass Delayci | Floating point | Fractional Samples | Cubic | yes | (none) | (none) |
Allpass Delayi | Floating point | Fractional Samples | Linear | yes | (none) | (none) |
Block Delay | Any | Blocks | (none) | (none) | (none) | (none) |
Delay | Any | Integer Samples | (none) | (none) | (none) | (none) |
Delay Interp Fract32 | Fract32 | Fractional Samples | Linear and Cubic | yes | (none) | (none) |
Delay Msec | Any | Fractional Milliseconds | (none) | (none) | (none) | (none) |
Delay Ntap | Any | Integer Samples | (none) | (none) | yes | (none) |
Delay NTap16 Fract32 | Fract32 | Integer Samples | (none) | (none) | yes | yes |
Delay Reader | Integer | Fractional Samples | (none) | (none) | (none) | (none) |
Delay State Writer | Any | Integer Samples | (none) | (none) | (none) | (none) |
Delay State Writer16 | Any | Integer Samples | (none) | (none) | (none) | yes |
Delay16 | Any | Integer Samples | (none) | (none) | (none) | yes |
Delayci | Floating point | Fractional Samples | Cubic | yes | (none) | (none) |
Delayci Fract32 | Fract32 | Fractional Samples | (none) | (none) | (none) | (none) |
Delayi | Floating point | Fractional Samples | Linear | yes | (none) | (none) |
Fractional Delay Fract32 | Fract32 | Fractional Samples | (none) | (none) | yes | (none) |
Interpolated Delay | Floating point | Fractional Samples | Linear and Cubic | yes | (none) | (none) |