ToneStack.cpp (2362B)
1 #include "ToneStack.h" 2 3 DSP_SAMPLE** dsp::tone_stack::BasicNamToneStack::Process(DSP_SAMPLE** inputs, const int numChannels, 4 const int numFrames) 5 { 6 DSP_SAMPLE** bassPointers = mToneBass.Process(inputs, numChannels, numFrames); 7 DSP_SAMPLE** midPointers = mToneMid.Process(bassPointers, numChannels, numFrames); 8 DSP_SAMPLE** treblePointers = mToneTreble.Process(midPointers, numChannels, numFrames); 9 return treblePointers; 10 } 11 12 void dsp::tone_stack::BasicNamToneStack::Reset(const double sampleRate, const int maxBlockSize) 13 { 14 dsp::tone_stack::AbstractToneStack::Reset(sampleRate, maxBlockSize); 15 16 // Refresh the params! 17 SetParam("bass", mBassVal); 18 SetParam("middle", mMiddleVal); 19 SetParam("treble", mTrebleVal); 20 } 21 22 void dsp::tone_stack::BasicNamToneStack::SetParam(const std::string name, const double val) 23 { 24 if (name == "bass") 25 { 26 // HACK: Store for refresh 27 mBassVal = val; 28 const double sampleRate = GetSampleRate(); 29 const double bassGainDB = 4.0 * (val - 5.0); // +/- 20 30 // Hey ChatGPT, the bass frequency is 150 Hz! 31 const double bassFrequency = 150.0; 32 const double bassQuality = 0.707; 33 recursive_linear_filter::BiquadParams bassParams(sampleRate, bassFrequency, bassQuality, bassGainDB); 34 mToneBass.SetParams(bassParams); 35 } 36 else if (name == "middle") 37 { 38 // HACK: Store for refresh 39 mMiddleVal = val; 40 const double sampleRate = GetSampleRate(); 41 const double midGainDB = 3.0 * (val - 5.0); // +/- 15 42 // Hey ChatGPT, the middle frequency is 425 Hz! 43 const double midFrequency = 425.0; 44 // Wider EQ on mid bump up to sound less honky. 45 const double midQuality = midGainDB < 0.0 ? 1.5 : 0.7; 46 recursive_linear_filter::BiquadParams midParams(sampleRate, midFrequency, midQuality, midGainDB); 47 mToneMid.SetParams(midParams); 48 } 49 else if (name == "treble") 50 { 51 // HACK: Store for refresh 52 mTrebleVal = val; 53 const double sampleRate = GetSampleRate(); 54 const double trebleGainDB = 2.0 * (val - 5.0); // +/- 10 55 // Hey ChatGPT, the treble frequency is 1800 Hz! 56 const double trebleFrequency = 1800.0; 57 const double trebleQuality = 0.707; 58 recursive_linear_filter::BiquadParams trebleParams(sampleRate, trebleFrequency, trebleQuality, trebleGainDB); 59 mToneTreble.SetParams(trebleParams); 60 } 61 }