equalizer.cpp (814B)
1 2 #include <assert.h> 3 4 #include "filters/equalizer.hpp" 5 6 using namespace bogaudio::dsp; 7 8 void Equalizer::setParams( 9 float sampleRate, 10 float lowDb, 11 float midDb, 12 float highDb 13 ) { 14 assert(lowDb >= cutDb && lowDb <= gainDb); 15 assert(midDb >= cutDb && midDb <= gainDb); 16 assert(highDb >= cutDb && highDb <= gainDb); 17 18 _lowAmp.setLevel(lowDb); 19 _lowFilter.setParams(sampleRate, 100.0f, 0.0f); 20 21 _midAmp.setLevel(midDb); 22 _midFilter.setParams(sampleRate, 350.0f, 0.55f, MultimodeFilter::PITCH_BANDWIDTH_MODE); 23 24 _highAmp.setLevel(highDb); 25 _highFilter.setParams(sampleRate, 1000.0f, 0.0f); 26 } 27 28 float Equalizer::next(float sample) { 29 float low = _lowAmp.next(_lowFilter.next(sample)); 30 float mid = _midAmp.next(_midFilter.next(sample)); 31 float high = _highAmp.next(_highFilter.next(sample)); 32 return low + mid + high; 33 }