revmodel.hpp
上传用户:kjfoods
上传日期:2020-07-06
资源大小:29949k
文件大小:2k
源码类别:

midi

开发平台:

Unix_Linux

  1. // Reverb model declaration
  2. //
  3. // Google Summer of Code 2007
  4. //
  5. // Authors: Biodun Osunkunle <biodun@videolan.org>
  6. //
  7. // Mentor : Jean-Baptiste Kempf <jb@videolan.org>
  8. //
  9. // Original written by Jezar at Dreampoint, June 2000
  10. #ifndef _revmodel_
  11. #define _revmodel_
  12. #include "comb.hpp"
  13. #include "allpass.hpp"
  14. #include "tuning.h"
  15. class revmodel
  16. {
  17. public:
  18.             revmodel();
  19.     void    mute();
  20.     void    processreplace(float *inputL, float *outputL, long numsamples, int skip);
  21.     void    processmix(float *inputL, float *outputL, long numsamples, int skip);
  22.     void    setroomsize(float value);
  23.     float    getroomsize();
  24.     void    setdamp(float value);
  25.     float    getdamp();
  26.     void    setwet(float value);
  27.     float    getwet();
  28.     void    setdry(float value);
  29.     float    getdry();
  30.     void    setwidth(float value);
  31.     float    getwidth();
  32.     void    setmode(float value);
  33.     float    getmode();
  34. private:
  35.     void    update();
  36. private:
  37.     float    gain;
  38.     float    roomsize,roomsize1;
  39.     float    damp,damp1;
  40.     float    wet,wet1,wet2;
  41.     float    dry;
  42.     float    width;
  43.     float    mode;
  44. // The following are all declared inline
  45. // to remove the need for dynamic allocation
  46. // with its subsequent error-checking messiness
  47. // Comb filters
  48.     comb    combL[numcombs];
  49.     comb    combR[numcombs];
  50.     // Allpass filters
  51.     allpass    allpassL[numallpasses];
  52.     allpass    allpassR[numallpasses];
  53.     // Buffers for the combs
  54.     float    bufcombL1[combtuningL1];
  55.     float    bufcombR1[combtuningR1];
  56.     float    bufcombL2[combtuningL2];
  57.     float    bufcombR2[combtuningR2];
  58.     float    bufcombL3[combtuningL3];
  59.     float    bufcombR3[combtuningR3];
  60.     float    bufcombL4[combtuningL4];
  61.     float    bufcombR4[combtuningR4];
  62.     float    bufcombL5[combtuningL5];
  63.     float    bufcombR5[combtuningR5];
  64.     float    bufcombL6[combtuningL6];
  65.     float    bufcombR6[combtuningR6];
  66.     float    bufcombL7[combtuningL7];
  67.     float    bufcombR7[combtuningR7];
  68.     float    bufcombL8[combtuningL8];
  69.     float    bufcombR8[combtuningR8];
  70.     // Buffers for the allpasses
  71.     float    bufallpassL1[allpasstuningL1];
  72.     float    bufallpassR1[allpasstuningR1];
  73.     float    bufallpassL2[allpasstuningL2];
  74.     float    bufallpassR2[allpasstuningR2];
  75.     float    bufallpassL3[allpasstuningL3];
  76.     float    bufallpassR3[allpasstuningR3];
  77.     float    bufallpassL4[allpasstuningL4];
  78.     float    bufallpassR4[allpasstuningR4];
  79. };
  80. #endif//_revmodel_
  81. //ends