|
- // 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 <math.h>
-
- #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
|