NeuralAmpModelerPlugin

Plugin for Neural Amp Modeler
Log | Files | Refs | Submodules | README | LICENSE

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 }