You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.1 KiB
C++
88 lines
2.1 KiB
C++
// Reverb model declaration
|
|
//
|
|
// Written by Jezar at Dreampoint, June 2000
|
|
// http://www.dreampoint.co.uk
|
|
// This code is public domain
|
|
|
|
#ifndef _revmodel_
|
|
#define _revmodel_
|
|
|
|
#include "comb.hpp"
|
|
#include "allpass.hpp"
|
|
#include "tuning.h"
|
|
|
|
class revmodel
|
|
{
|
|
public:
|
|
revmodel();
|
|
void mute();
|
|
void processmix(float *inputL, float *inputR, float *outputL, float *outputR, long numsamples, int skip);
|
|
void processreplace(float *inputL, float *inputR, float *outputL, float *outputR, long numsamples, int skip);
|
|
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;
|
|
float wet,wet1,wet2;
|
|
float dry;
|
|
float width;
|
|
float mode;
|
|
|
|
// 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[combtuningL1];
|
|
float bufcombR1[combtuningR1];
|
|
float bufcombL2[combtuningL2];
|
|
float bufcombR2[combtuningR2];
|
|
float bufcombL3[combtuningL3];
|
|
float bufcombR3[combtuningR3];
|
|
float bufcombL4[combtuningL4];
|
|
float bufcombR4[combtuningR4];
|
|
float bufcombL5[combtuningL5];
|
|
float bufcombR5[combtuningR5];
|
|
float bufcombL6[combtuningL6];
|
|
float bufcombR6[combtuningR6];
|
|
float bufcombL7[combtuningL7];
|
|
float bufcombR7[combtuningR7];
|
|
float bufcombL8[combtuningL8];
|
|
float bufcombR8[combtuningR8];
|
|
|
|
// Buffers for the allpasses
|
|
float bufallpassL1[allpasstuningL1];
|
|
float bufallpassR1[allpasstuningR1];
|
|
float bufallpassL2[allpasstuningL2];
|
|
float bufallpassR2[allpasstuningR2];
|
|
float bufallpassL3[allpasstuningL3];
|
|
float bufallpassR3[allpasstuningR3];
|
|
float bufallpassL4[allpasstuningL4];
|
|
float bufallpassR4[allpasstuningR4];
|
|
};
|
|
|
|
#endif//_revmodel_
|
|
|
|
//ends
|