commit e7407b1fce2506427f16d4bba5c77093599b31f6 parent ead095895357f13a712e6a62abadb3b578198141 Author: jatinchowdhury18 <jatinchowdhury18@gmail.com> Date: Wed, 22 Jul 2020 23:37:37 -0700 Fix volume spike on loading plugin during playback (#57) Co-authored-by: jatinchowdhury18 <jatinchowdhury18@users.noreply.github.com> Diffstat:
4 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/Plugin/Source/PluginProcessor.cpp b/Plugin/Source/PluginProcessor.cpp @@ -141,6 +141,8 @@ void ChowtapeModelAudioProcessor::prepareToPlay (double sampleRate, int samplesP for (int ch = 0; ch < 2; ++ch) { dryDelay[ch].prepareToPlay (sampleRate, samplesPerBlock); + dryDelay[ch].setLengthMs (1000.0f * calcLatencySamples() / (float) sampleRate, true); + lossFilter[ch]->prepare ((float) sampleRate, samplesPerBlock); } @@ -149,7 +151,7 @@ void ChowtapeModelAudioProcessor::prepareToPlay (double sampleRate, int samplesP scope->prepareToPlay (sampleRate, samplesPerBlock); - dryWet.setDryWet (*vts.getRawParameterValue ("drywet")); + dryWet.setDryWet (*vts.getRawParameterValue ("drywet") / 100.0f); dryWet.reset(); dryBuffer.setSize (2, samplesPerBlock); diff --git a/Plugin/Source/Processors/Chew/ChewProcessor.cpp b/Plugin/Source/Processors/Chew/ChewProcessor.cpp @@ -27,6 +27,9 @@ void ChewProcessor::prepare (double sr) void ChewProcessor::processBlock (AudioBuffer<float>& buffer) { + if (depth->load() == 0.0f && freq->load() == 0.0f) + return; + const int shortBlockSize = 64; if (buffer.getNumSamples() <= shortBlockSize) { diff --git a/Plugin/Source/Processors/Degrade/DegradeProcessor.cpp b/Plugin/Source/Processors/Degrade/DegradeProcessor.cpp @@ -44,6 +44,9 @@ void DegradeProcessor::prepareToPlay (double sampleRate, int samplesPerBlock) void DegradeProcessor::processBlock (AudioBuffer<float>& buffer, MidiBuffer& midi) { + if (depthParam->load() == 0.0f && amtParam->load() == 0.0f) + return; + cookParams(); for (int ch = 0; ch < buffer.getNumChannels(); ++ch) diff --git a/Plugin/Source/Processors/Timing_Effects/Flutter.cpp b/Plugin/Source/Processors/Timing_Effects/Flutter.cpp @@ -50,7 +50,7 @@ void Flutter::prepareToPlay (double sampleRate, int samplesPerBlock) phase3[ch] = 0.0f; dcBlocker[ch].reset (sampleRate); - dcBlocker[ch].calcCoefs (10.0f, 0.707f); + dcBlocker[ch].calcCoefs (30.0f, 0.707f); } wowAmp = 1000.0f * 1000.0f / (float) sampleRate;