// Reverb model 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 _revmodel_ #define _revmodel_ #include #include "comb.hpp" #include "allpass.hpp" #include "tuning.h" class revmodel { public: revmodel(); void init(const float sampleRate); void mute(); void process(const float input, float &outputL, float &outputR); void setroomsize(float value); float getroomsize(); void setdamp(float value); float getdamp(); void setwet(float value); float getwet(); void setdry(float value); float getdry(); void setwidth(float value); float getwidth(); void setmode(float value); float getmode(); private: void update(); private: float gain; float roomsize,roomsize1; float damp,damp1, damp2; float feedback_allpass; float wet,wet1,wet2; float dry; float width; float mode; float conversion; float math_e = 2.71828; // The following are all declared inline // to remove the need for dynamic allocation // with its subsequent error-checking messiness // Comb filters comb combL[numcombs]; comb combR[numcombs]; // Allpass filters allpass allpassL[numallpasses]; allpass allpassR[numallpasses]; // Buffers for the combs float *bufcombL1; float *bufcombR1; float *bufcombL2; float *bufcombR2; float *bufcombL3; float *bufcombR3; float *bufcombL4; float *bufcombR4; float *bufcombL5; float *bufcombR5; float *bufcombL6; float *bufcombR6; float *bufcombL7; float *bufcombR7; float *bufcombL8; float *bufcombR8; // Buffers for the allpasses float *bufallpassL1; float *bufallpassR1; float *bufallpassL2; float *bufallpassR2; float *bufallpassL3; float *bufallpassR3; float *bufallpassL4; float *bufallpassR4; }; #endif//_revmodel_ //ends