@@ -326,30 +326,6 @@ void NeuralAmpModeler::ProcessBlock(iplug::sample** inputs, iplug::sample** outp
326326 sample** toneStackOutPointers = gateGainOutput;
327327 if (toneStackActive)
328328 {
329- // Translate params from knob 0-10 to dB.
330- // Tuned ranges based on my ear. E.g. seems treble doesn't need nearly as
331- // much swing as bass can use.
332- const double bassGainDB = 4.0 * (GetParam (kToneBass )->Value () - 5.0 ); // +/- 20
333- const double midGainDB = 3.0 * (GetParam (kToneMid )->Value () - 5.0 ); // +/- 15
334- const double trebleGainDB = 2.0 * (GetParam (kToneTreble )->Value () - 5.0 ); // +/- 10
335-
336- const double bassFrequency = 150.0 ;
337- const double midFrequency = 425.0 ;
338- const double trebleFrequency = 1800.0 ;
339- const double bassQuality = 0.707 ;
340- // Wider EQ on mid bump up to sound less honky.
341- const double midQuality = midGainDB < 0.0 ? 1.5 : 0.7 ;
342- const double trebleQuality = 0.707 ;
343-
344- // Define filter parameters
345- recursive_linear_filter::BiquadParams bassParams (sampleRate, bassFrequency, bassQuality, bassGainDB);
346- recursive_linear_filter::BiquadParams midParams (sampleRate, midFrequency, midQuality, midGainDB);
347- recursive_linear_filter::BiquadParams trebleParams (sampleRate, trebleFrequency, trebleQuality, trebleGainDB);
348- // Apply tone stack
349- // Set parameters
350- mToneBass .SetParams (bassParams);
351- mToneMid .SetParams (midParams);
352- mToneTreble .SetParams (trebleParams);
353329 sample** bassPointers = mToneBass .Process (gateGainOutput, numChannelsInternal, numFrames);
354330 sample** midPointers = mToneMid .Process (bassPointers, numChannelsInternal, numFrames);
355331 sample** treblePointers = mToneTreble .Process (midPointers, numChannelsInternal, numFrames);
@@ -462,6 +438,46 @@ void NeuralAmpModeler::OnUIOpen()
462438 mCheckSampleRateWarning = true ;
463439}
464440
441+ void NeuralAmpModeler::OnParamChange (int paramIdx)
442+ {
443+ switch (paramIdx)
444+ {
445+ case kToneBass :
446+ {
447+ const double sampleRate = GetSampleRate ();
448+ const double bassGainDB = 4.0 * (GetParam (kToneBass )->Value () - 5.0 ); // +/- 20
449+ const double bassFrequency = 150.0 ;
450+ const double bassQuality = 0.707 ;
451+ recursive_linear_filter::BiquadParams bassParams (sampleRate, bassFrequency, bassQuality, bassGainDB);
452+ mToneBass .SetParams (bassParams);
453+ }
454+
455+ break ;
456+ case kToneMid :
457+ {
458+ const double sampleRate = GetSampleRate ();
459+ const double midGainDB = 3.0 * (GetParam (kToneMid )->Value () - 5.0 ); // +/- 15
460+ const double midFrequency = 425.0 ;
461+ // Wider EQ on mid bump up to sound less honky.
462+ const double midQuality = midGainDB < 0.0 ? 1.5 : 0.7 ;
463+ recursive_linear_filter::BiquadParams midParams (sampleRate, midFrequency, midQuality, midGainDB);
464+ mToneMid .SetParams (midParams);
465+ }
466+ break ;
467+ case kToneTreble :
468+ {
469+ const double sampleRate = GetSampleRate ();
470+ const double trebleGainDB = 2.0 * (GetParam (kToneTreble )->Value () - 5.0 ); // +/- 10
471+ const double trebleFrequency = 1800.0 ;
472+ const double trebleQuality = 0.707 ;
473+ recursive_linear_filter::BiquadParams trebleParams (sampleRate, trebleFrequency, trebleQuality, trebleGainDB);
474+ mToneTreble .SetParams (trebleParams);
475+ }
476+ break ;
477+ default : break ;
478+ }
479+ }
480+
465481void NeuralAmpModeler::OnParamChangeUI (int paramIdx, EParamSource source)
466482{
467483 if (auto pGraphics = GetUI ())
0 commit comments