--- /dev/null
+// Reverb model declaration\r
+//\r
+// Written by Jezar at Dreampoint, June 2000\r
+// http://www.dreampoint.co.uk\r
+// This code is public domain\r
+\r
+#ifndef _revmodel_\r
+#define _revmodel_\r
+\r
+#include "comb.hpp"\r
+#include "allpass.hpp"\r
+#include "tuning.h"\r
+\r
+class revmodel\r
+{\r
+public:\r
+ revmodel();\r
+ void mute();\r
+ void processmix(float *inputL, float *inputR, float *outputL, float *outputR, long numsamples, int skip);\r
+ void processreplace(float *inputL, float *inputR, float *outputL, float *outputR, long numsamples, int skip);\r
+ void setroomsize(float value);\r
+ float getroomsize();\r
+ void setdamp(float value);\r
+ float getdamp();\r
+ void setwet(float value);\r
+ float getwet();\r
+ void setdry(float value);\r
+ float getdry();\r
+ void setwidth(float value);\r
+ float getwidth();\r
+ void setmode(float value);\r
+ float getmode();\r
+private:\r
+ void update();\r
+private:\r
+ float gain;\r
+ float roomsize,roomsize1;\r
+ float damp,damp1;\r
+ float wet,wet1,wet2;\r
+ float dry;\r
+ float width;\r
+ float mode;\r
+\r
+ // The following are all declared inline \r
+ // to remove the need for dynamic allocation\r
+ // with its subsequent error-checking messiness\r
+\r
+ // Comb filters\r
+ comb combL[numcombs];\r
+ comb combR[numcombs];\r
+\r
+ // Allpass filters\r
+ allpass allpassL[numallpasses];\r
+ allpass allpassR[numallpasses];\r
+\r
+ // Buffers for the combs\r
+ float bufcombL1[combtuningL1];\r
+ float bufcombR1[combtuningR1];\r
+ float bufcombL2[combtuningL2];\r
+ float bufcombR2[combtuningR2];\r
+ float bufcombL3[combtuningL3];\r
+ float bufcombR3[combtuningR3];\r
+ float bufcombL4[combtuningL4];\r
+ float bufcombR4[combtuningR4];\r
+ float bufcombL5[combtuningL5];\r
+ float bufcombR5[combtuningR5];\r
+ float bufcombL6[combtuningL6];\r
+ float bufcombR6[combtuningR6];\r
+ float bufcombL7[combtuningL7];\r
+ float bufcombR7[combtuningR7];\r
+ float bufcombL8[combtuningL8];\r
+ float bufcombR8[combtuningR8];\r
+\r
+ // Buffers for the allpasses\r
+ float bufallpassL1[allpasstuningL1];\r
+ float bufallpassR1[allpasstuningR1];\r
+ float bufallpassL2[allpasstuningL2];\r
+ float bufallpassR2[allpasstuningR2];\r
+ float bufallpassL3[allpasstuningL3];\r
+ float bufallpassR3[allpasstuningR3];\r
+ float bufallpassL4[allpasstuningL4];\r
+ float bufallpassR4[allpasstuningR4];\r
+};\r
+\r
+#endif//_revmodel_\r
+\r
+//ends\r
+\r
+\r
+\r