// Comb filter class declaration // // Written by Jezar at Dreampoint, June 2000 // http://www.dreampoint.co.uk // This code is public domain // adapted for use in VCV Rack by Martin Lueders #ifndef _comb_ #define _comb_ #include "denormals.h" class comb { public: comb() { buffer = 0; filterstore = 0; bufidx = 0; }; ~comb() { if (buffer) delete buffer; }; void makebuffer(float *buf, int size) { if (buffer) {delete buffer;} buffer = new float[size]; bufsize = size; bufidx = 0; } void deletebuffer() { if(buffer) delete buffer; bufsize = 0; }; void setbuffer(float *buf, int size) { buffer = buf; bufsize = size; }; inline float process(float inp, float damp1, float damp2, float feedback); void mute() { for( int i=0; i=bufsize) bufidx = 0; return output; } #endif //_comb_ //ends