diff --git a/sources/Voice.cpp b/sources/Voice.cpp index c46fb4e8..fc1448d6 100644 --- a/sources/Voice.cpp +++ b/sources/Voice.cpp @@ -26,8 +26,14 @@ void sfz::Voice::startVoice(Region* region, int delay, int channel, int number, speedRatio = static_cast(region->sampleRate / this->sampleRate); pitchRatio = region->getBasePitchVariation(number, value); baseGain = region->getBaseGain(); + if (triggerType != TriggerType::CC) + baseGain *= region->getNoteGain(number, value); + DBG("Voice base gain with note crossfades: " << baseGain); + baseGain *= region->getCCGain(ccState); + DBG("Voice base gain with CC crossfades: " << baseGain); sourcePosition = region->getOffset(); initialDelay = delay + region->getDelay(); + DBG("Voice initial delay: " << initialDelay); baseFrequency = midiNoteFrequency(number) * pitchRatio; prepareEGEnvelope(delay, value); }