Overview
High order allpass structure with integer time delays
Discussion
The allpass_delay_module.m and allpass_delay16_module.m implement the digital system shown below:
...
The module allpass_delay16_module.m has exactly the same functionality except that the data stored in the delay line is quantized to fract16 values in order to save memory. The input data to the delay line must be in the range [-1 +1) or else it will be clipped. The output data from the delay line is converted back to floating-point values for further processing. The allpass_delay16_module.m takes roughly half the memory as compared with the allpass_delay_module.m though with a loss of precision.
Type Definition
Code Block |
---|
typedef struct _ModuleAllpassDelay { 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 INT32 currentDelay; // Current delay FLOAT32 coef; // Feedback/-feedforward coefficient for the allpass delay. INT32 stateIndex; // Index of the oldest state variable in the array of state variables FLOAT32* state; // State variable array } ModuleAllpassDelayClass; |
Variables
Properties
Name | Type | Usage | isHidden | Default value | Range | Units |
maxDelay | int | const | 0 | 100 | 1:100000 | samples |
currentDelay | int | parameter | 0 | 0 | 0:1:100 | samples |
coef | float | parameter | 0 | 0.5 | -1:1 | |
stateIndex | int | state | 1 | 0 | Unrestricted | |
state | float* | state | 1 | [1 x 101] | Unrestricted |
Pins
Input Pins
Name: in
Description: audio input
...
Sample rate range: Unrestricted
Complex support: Real
Output Pins
Name: out
Description: audio output
...
Description: audio output
Data type: float
MATLAB Usage
File Name: allpass_delay_module.m
...