add auto zoombar/status color, fix 3 batchrender boobies, rotate plugin tweaks, add...
[goodguy/cinelerra.git] / cinelerra-5.1 / plugins / freeverb / Components / revmodel.hpp
1 // Reverb model declaration\r
2 //\r
3 // Written by Jezar at Dreampoint, June 2000\r
4 // http://www.dreampoint.co.uk\r
5 // This code is public domain\r
6 \r
7 #ifndef _revmodel_\r
8 #define _revmodel_\r
9 \r
10 #include "comb.hpp"\r
11 #include "allpass.hpp"\r
12 #include "tuning.h"\r
13 \r
14 class revmodel\r
15 {\r
16 public:\r
17                                         revmodel();\r
18                         void    mute();\r
19                         void    processmix(float *inputL, float *inputR, float *outputL, float *outputR, long numsamples, int skip);\r
20                         void    processreplace(float *inputL, float *inputR, float *outputL, float *outputR, long numsamples, int skip);\r
21                         void    setroomsize(float value);\r
22                         float   getroomsize();\r
23                         void    setdamp(float value);\r
24                         float   getdamp();\r
25                         void    setwet(float value);\r
26                         float   getwet();\r
27                         void    setdry(float value);\r
28                         float   getdry();\r
29                         void    setwidth(float value);\r
30                         float   getwidth();\r
31                         void    setmode(float value);\r
32                         float   getmode();\r
33 private:\r
34                         void    update();\r
35 private:\r
36         float   gain;\r
37         float   roomsize,roomsize1;\r
38         float   damp,damp1;\r
39         float   wet,wet1,wet2;\r
40         float   dry;\r
41         float   width;\r
42         float   mode;\r
43 \r
44         // The following are all declared inline \r
45         // to remove the need for dynamic allocation\r
46         // with its subsequent error-checking messiness\r
47 \r
48         // Comb filters\r
49         comb    combL[numcombs];\r
50         comb    combR[numcombs];\r
51 \r
52         // Allpass filters\r
53         allpass allpassL[numallpasses];\r
54         allpass allpassR[numallpasses];\r
55 \r
56         // Buffers for the combs\r
57         float   bufcombL1[combtuningL1];\r
58         float   bufcombR1[combtuningR1];\r
59         float   bufcombL2[combtuningL2];\r
60         float   bufcombR2[combtuningR2];\r
61         float   bufcombL3[combtuningL3];\r
62         float   bufcombR3[combtuningR3];\r
63         float   bufcombL4[combtuningL4];\r
64         float   bufcombR4[combtuningR4];\r
65         float   bufcombL5[combtuningL5];\r
66         float   bufcombR5[combtuningR5];\r
67         float   bufcombL6[combtuningL6];\r
68         float   bufcombR6[combtuningR6];\r
69         float   bufcombL7[combtuningL7];\r
70         float   bufcombR7[combtuningR7];\r
71         float   bufcombL8[combtuningL8];\r
72         float   bufcombR8[combtuningR8];\r
73 \r
74         // Buffers for the allpasses\r
75         float   bufallpassL1[allpasstuningL1];\r
76         float   bufallpassR1[allpasstuningR1];\r
77         float   bufallpassL2[allpasstuningL2];\r
78         float   bufallpassR2[allpasstuningR2];\r
79         float   bufallpassL3[allpasstuningL3];\r
80         float   bufallpassR3[allpasstuningR3];\r
81         float   bufallpassL4[allpasstuningL4];\r
82         float   bufallpassR4[allpasstuningR4];\r
83 };\r
84 \r
85 #endif//_revmodel_\r
86 \r
87 //ends\r
88 \r
89 \r
90 \r