From ac27e060ba76cb9852074818cb91d8cb2bfc0cb6 Mon Sep 17 00:00:00 2001 From: Paul Fd Date: Sun, 4 Apr 2021 17:54:08 +0200 Subject: [PATCH] Apply velocity-related note gain to a CC-triggered note if the velocity has been replaced with `sw_vel=previous` --- src/sfizz/Voice.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/sfizz/Voice.cpp b/src/sfizz/Voice.cpp index ff5610ea..612ce8cf 100644 --- a/src/sfizz/Voice.cpp +++ b/src/sfizz/Voice.cpp @@ -472,8 +472,9 @@ bool Voice::startVoice(Layer* layer, int delay, const TriggerEvent& event) noexc impl.baseVolumedB_ = region.getBaseVolumedB(resources.midiState, impl.triggerEvent_.number); impl.baseGain_ = region.getBaseGain(); - if (impl.triggerEvent_.type != TriggerEventType::CC) + if (impl.triggerEvent_.type != TriggerEventType::CC || region.velocityOverride == VelocityOverride::previous) impl.baseGain_ *= region.getNoteGain(impl.triggerEvent_.number, impl.triggerEvent_.value); + impl.gainSmoother_.reset(); impl.resetCrossfades();