From 6898ef0dac8237b10ddcfb16a6b66a4e90e91ca9 Mon Sep 17 00:00:00 2001 From: Roland Rabien Date: Wed, 20 Sep 2023 22:08:18 -0700 Subject: [PATCH] Fixed envelopes not reseting --- plugin/Source/PluginProcessor.cpp | 9 +++++++++ plugin/Source/PluginProcessor.h | 1 + plugin/Source/WavetableVoice.cpp | 6 +++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/plugin/Source/PluginProcessor.cpp b/plugin/Source/PluginProcessor.cpp index 953feeb..76ecca3 100644 --- a/plugin/Source/PluginProcessor.cpp +++ b/plugin/Source/PluginProcessor.cpp @@ -723,7 +723,16 @@ void WavetableAudioProcessor::processBlock (juce::AudioBuffer& buffer, ju { juce::ScopedNoDenormals noDenormals; if (! dspLock.tryEnter()) + { + blockMissed = true; return; + } + + if (blockMissed) + { + blockMissed = false; + turnOffAllVoices (false); + } startBlock(); setMPE (globalParams.mpe->isOn()); diff --git a/plugin/Source/PluginProcessor.h b/plugin/Source/PluginProcessor.h index d955716..898d0bb 100644 --- a/plugin/Source/PluginProcessor.h +++ b/plugin/Source/PluginProcessor.h @@ -269,6 +269,7 @@ public: gin::StepLFO modStepLFO; juce::AudioPlayHead* playhead = nullptr; + bool blockMissed = false; struct CurTable { diff --git a/plugin/Source/WavetableVoice.cpp b/plugin/Source/WavetableVoice.cpp index b084c72..543ae8f 100644 --- a/plugin/Source/WavetableVoice.cpp +++ b/plugin/Source/WavetableVoice.cpp @@ -52,13 +52,17 @@ void WavetableVoice::noteStarted() for (auto& osc : oscillators) osc.noteOn(); + noise.noteOn(); sub.noteOn(); filterADSR.noteOn(); for (auto& a : modADSRs) - a.noteOn(); + { + a.reset(); + a.noteOn(); + } for (auto& l : modLFOs) l.noteOn();