// Header file of module Filter_r.cpp #include #include const int kLowPass=0, //-LowPass kHighPass=1, //-HiPass kBandPassCSG=2, //-BandPass CSG kBandPassCZPG=3, //-BandPass CZPG kNotch=4, //-Notch kAll=5, //-AllPass kPeaking=6, //-Peaking kLowShelf=7, //-LowShelf kHighShelf=8; //-HiShelf // Butterworth all-purpose filter class TRbjEqFilter { public: float b0a0,b1a0,b2a0,a1a0,a2a0; float in1,in2,ou1,ou2; float fSampleRate; int fMaxBlockSize; int fFilterType; float fFreq,fQ,fDBGain; bool fQIsBandWidth; float *out1; void InitFilter(float SampleRate, int MaxBlockSize); void SetQ(float NewQ); void CalcFilterCoeff(); void CalcFilterCoeffs(int pFilterType, float pFreq, float pQ, float pDBGain, bool pQIsBandWidth); void Process(float *Input, int sampleframes); float Process1(float input); }; // end of file filter_r.h