Overview
Modulated time delay using cubic interpolation
Discussion
THIS MODULE IS DEPRECATED AND NOT RECOMMENDED FOR NEW DESIGNS.
PLEASE USE THE AllpassDelayci MODULE INSTEAD.
This module implements a time-varying delay. The first input pin (mod) specifies the modulation factor; the second input pin is the multichannel audio signal. The module computes the instantaneous delay to apply on a sample-by-sample basis. The instantaneous delay is a floating-point value computed as:
delay[n] = M.currentDelay + mod[n] * M.modDepth
The modulation factor input is usually in the range [-1 +1], but this is not checked by the module.
The instantaneous delay time is a floating-point value and the module implements fractional sample interpolation using cubic (third order) interpolation. A related module is delayi which implements the same function but uses linear interpolation.
Type Definition
typedef struct _ModuleDelayci { ModuleInstanceDescriptor instance; // Common Audio Weaver module instance structure INT32 maxDelay; // Maximum delay that can be realized, in samples. The size of the delay buffer (maxDelay+1)*numChannels FLOAT32 currentDelay; // Current delay FLOAT32 modDepth; // Maximum depth, in samples, of the modulation signal INT32 stateIndex; // Index of the oldest state variable in the array of state variables INT32 stateHeap; // Heap in which to allocate memory FLOAT32* state; // State variable array } ModuleDelayciClass;
Variables
Properties
Name | Type | Usage | isHidden | Default value | Range | Units |
maxDelay | int | const | 0 | 100 | 1:100000 | samples |
currentDelay | float | parameter | 0 | 0 | 0:100 | samples |
modDepth | float | parameter | 0 | 0 | 0:100 | samples |
stateIndex | int | state | 1 | 0 | Unrestricted | |
stateHeap | int | const | 1 | 561 | Unrestricted | |
state | float* | state | 1 | [1 x 101] | Unrestricted |
Pins
Input Pins
Name: mod
Description: modulation input
Data type: float
Channel range: 1
Block size range: Unrestricted
Sample rate range: Unrestricted
Complex support: Real
Name: in
Description: audio input
Data type: float
Channel range: Unrestricted
Block size range: Unrestricted
Sample rate range: Unrestricted
Complex support: Real
Output Pins
Name: out
Description: audio output
Data type: float
MATLAB Usage
File Name: delayci_module.m
M=delayci_module(NAME, MAXDELAY, MEMHEAP) Creates a fractional sample time delay for use in the Audio Weaver. Arguments: Arguments: NAME - name of the module. MAXDELAY - Maximum delay, in samples. MEMHEAP - specifies the memory heap to use to allocate the main state buffer. This is a string and follows the memory allocation enumeration in Framework.h. Allowable values are: 'AWE_HEAP_FAST' - always use internal DM memory. 'AWE_HEAP_FASTB' - always use internal PM memory. 'AWE_HEAP_SLOW' - always use external memory. 'AWE_HEAP_FAST2SLOW' - use internal memory. If this fails then use external memory (the default). 'AWE_HEAP_FASTB2SLOW' - use internal memory. If this fails then use external memory.