revmodel.hpp

Go to the documentation of this file.
00001 // Reverb model declaration
00002 //
00003 // Google Summer of Code 2007
00004 //
00005 // Authors: Biodun Osunkunle <biodun@videolan.org>
00006 //
00007 // Mentor : Jean-Baptiste Kempf <jb@videolan.org>
00008 //
00009 // Original written by Jezar at Dreampoint, June 2000
00010 
00011 #ifndef _revmodel_
00012 #define _revmodel_
00013 
00014 #include "comb.hpp"
00015 #include "allpass.hpp"
00016 #include "tuning.h"
00017 
00018 class revmodel
00019 {
00020 public:
00021             revmodel();
00022     void    mute();
00023     void    processreplace(float *inputL, float *outputL, long numsamples, int skip);
00024     void    processmix(float *inputL, float *outputL, long numsamples, int skip);
00025     void    setroomsize(float value);
00026     float    getroomsize();
00027     void    setdamp(float value);
00028     float    getdamp();
00029     void    setwet(float value);
00030     float    getwet();
00031     void    setdry(float value);
00032     float    getdry();
00033     void    setwidth(float value);
00034     float    getwidth();
00035     void    setmode(float value);
00036 private:
00037     void    update();
00038 private:
00039     float    gain;
00040     float    roomsize,roomsize1;
00041     float    damp,damp1;
00042     float    wet,wet1,wet2;
00043     float    dry;
00044     float    width;
00045     float    mode;
00046 
00047 // The following are all declared inline
00048 // to remove the need for dynamic allocation
00049 // with its subsequent error-checking messiness
00050 
00051 // Comb filters
00052     comb    combL[numcombs];
00053     comb    combR[numcombs];
00054 
00055     // Allpass filters
00056     allpass    allpassL[numallpasses];
00057     allpass    allpassR[numallpasses];
00058 
00059     // Buffers for the combs
00060     float    bufcombL1[combtuningL1];
00061     float    bufcombR1[combtuningR1];
00062     float    bufcombL2[combtuningL2];
00063     float    bufcombR2[combtuningR2];
00064     float    bufcombL3[combtuningL3];
00065     float    bufcombR3[combtuningR3];
00066     float    bufcombL4[combtuningL4];
00067     float    bufcombR4[combtuningR4];
00068     float    bufcombL5[combtuningL5];
00069     float    bufcombR5[combtuningR5];
00070     float    bufcombL6[combtuningL6];
00071     float    bufcombR6[combtuningR6];
00072     float    bufcombL7[combtuningL7];
00073     float    bufcombR7[combtuningR7];
00074     float    bufcombL8[combtuningL8];
00075     float    bufcombR8[combtuningR8];
00076 
00077     // Buffers for the allpasses
00078     float    bufallpassL1[allpasstuningL1];
00079     float    bufallpassR1[allpasstuningR1];
00080     float    bufallpassL2[allpasstuningL2];
00081     float    bufallpassR2[allpasstuningR2];
00082     float    bufallpassL3[allpasstuningL3];
00083     float    bufallpassR3[allpasstuningR3];
00084     float    bufallpassL4[allpasstuningL4];
00085     float    bufallpassR4[allpasstuningR4];
00086 };
00087 
00088 #endif//_revmodel_
00089 
00090 //ends

Generated on Tue May 25 08:04:53 2010 for VLC by  doxygen 1.5.6