26 template <
unsigned int NUM_BUFFER_SAMPLES,
class T =
int8_t>
32 T delay_array[NUM_BUFFER_SAMPLES];
33 unsigned int _write_pos;
34 unsigned int _delaytime_cells;
49 AudioDelay(
unsigned int delaytime_cells): _write_pos(0), _delaytime_cells(delaytime_cells)
59 T
next(T in_value,
unsigned int delaytime_cells)
61 ++_write_pos &= (NUM_BUFFER_SAMPLES - 1);
62 unsigned int read_pos = (_write_pos - delaytime_cells) & (NUM_BUFFER_SAMPLES - 1);
65 delay_array[_write_pos] = in_value;
66 T delay_sig = delay_array[read_pos] ;
79 ++_write_pos &= (NUM_BUFFER_SAMPLES - 1);
80 unsigned int read_pos = (_write_pos - _delaytime_cells) & (NUM_BUFFER_SAMPLES - 1);
83 delay_array[_write_pos] = in_value;
84 T delay_sig = delay_array[read_pos] ;
94 void set(
unsigned int delaytime_cells){
95 _delaytime_cells = delaytime_cells;
104 T
read(
unsigned int delaytime_cells)
106 unsigned int read_pos = (_write_pos - delaytime_cells) & (NUM_BUFFER_SAMPLES - 1);
107 return delay_array[read_pos];
Audio delay line for comb filter, flange, chorus and short echo effects.
T next(T in_value, unsigned int delaytime_cells)
Input a value to the delay and retrieve the signal in the delay line at the position delaytime_cells.
T read(unsigned int delaytime_cells)
Retrieve the signal in the delay line at the position delaytime_cells.
T next(T in_value)
Input a value to the delay and retrieve the signal in the delay line at the position delaytime_cells.
AudioDelay(unsigned int delaytime_cells)
Constructor.
void set(unsigned int delaytime_cells)
Set the delay time, measured in cells.