BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

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 }