aicodix___dsp/delay.hh
2020-04-23 00:27:14 +02:00

33 lines
388 B
C++

/*
Digital delay line
Copyright 2020 Ahmet Inan <inan@aicodix.de>
*/
#pragma once
namespace DSP {
template <typename TYPE, int NUM>
class Delay
{
TYPE buf[NUM];
int pos;
public:
Delay() : pos(0)
{
for (int i = 0; i < NUM; ++i)
buf[i] = 0;
}
TYPE operator () (TYPE input)
{
TYPE tmp = buf[pos];
buf[pos] = input;
if (++pos >= NUM)
pos = 0;
return tmp;
}
};
}