1
// Comb filter class declaration
3
// Written by Jezar at Dreampoint, June 2000
4
// http://www.dreampoint.co.uk
5
// This code is public domain
10
#include "denormals.h"
13
//---------------------------------------------------------
15
//---------------------------------------------------------
32
void setbuffer(float *buf, int size) {
36
float process(float input) {
37
float output = buffer[bufidx];
38
undenormalise(output);
39
filterstore = (output*damp2) + (filterstore*damp1);
40
undenormalise(filterstore);
41
buffer[bufidx] = input + (filterstore*feedback);
42
if (++bufidx >= bufsize)
44
// bufidx = ++bufidx % bufsize;
48
for (int i=0; i<bufsize; i++)
51
void setdamp(float val) {
55
float getdamp() { return damp1; }
56
void setfeedback(float val) { feedback = val; }
57
float getfeedback() { return feedback; }
61
// Big to inline - but crucial for speed