NeuralAmpModelerPlugin

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

commit 1f3585c594dcac5dc7176f5003cb4ae4d79cd058
parent 96b250055e295b2859381d0a27ecb4fa011d29db
Author: Steven Atkinson <steven@atkinson.mn>
Date:   Sun, 13 Aug 2023 21:27:31 -0700

Specify tail size based on DC blocker (#361)


Diffstat:
MNeuralAmpModeler/NeuralAmpModeler.cpp | 9++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/NeuralAmpModeler/NeuralAmpModeler.cpp b/NeuralAmpModeler/NeuralAmpModeler.cpp @@ -19,6 +19,8 @@ using namespace iplug; using namespace igraphics; +const double kDCBlockerFrequency = 5.0; + // Styles const IVColorSpec colorSpec{ DEFAULT_BGCOLOR, // Background @@ -345,7 +347,7 @@ void NeuralAmpModeler::ProcessBlock(iplug::sample** inputs, iplug::sample** outp irPointers = mIR->Process(toneStackOutPointers, numChannelsInternal, numFrames); // And the HPF for DC offset (Issue 271) - const double highPassCutoffFreq = 5.0; + const double highPassCutoffFreq = kDCBlockerFrequency; // const double lowPassCutoffFreq = 20000.0; const recursive_linear_filter::HighPassParams highPassParams(sampleRate, highPassCutoffFreq); // const recursive_linear_filter::LowPassParams lowPassParams(sampleRate, lowPassCutoffFreq); @@ -369,6 +371,11 @@ void NeuralAmpModeler::ProcessBlock(iplug::sample** inputs, iplug::sample** outp void NeuralAmpModeler::OnReset() { const auto sampleRate = GetSampleRate(); + // Tail is because the HPF DC blocker has a decay. + // 10 cycles should be enough to pass the VST3 tests checking tail behavior. + // I'm ignoring the model & IR, but it's not the end of the world. + const int tailCycles = 10; + SetTailSize(tailCycles * (int)(sampleRate / kDCBlockerFrequency)); mInputSender.Reset(sampleRate); mOutputSender.Reset(sampleRate); mCheckSampleRateWarning = true;