From bfb9b807243533582eb1195e33cde8778069c8ab Mon Sep 17 00:00:00 2001 From: Paul Ferrand Date: Fri, 13 Dec 2019 13:20:20 +0100 Subject: [PATCH] Corrected a bug where the pitch shift due to the note displacement with respect to the key center was applied twice --- 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 685388d8..480f3d5e 100644 --- a/src/sfizz/Voice.cpp +++ b/src/sfizz/Voice.cpp @@ -104,7 +104,7 @@ void sfz::Voice::startVoice(Region* region, int delay, int channel, int number, sourcePosition = region->getOffset(); initialDelay = delay + static_cast(region->getDelay() * sampleRate); - baseFrequency = midiNoteFrequency(number) * pitchRatio; + baseFrequency = midiNoteFrequency(number); prepareEGEnvelope(initialDelay, value); } @@ -463,6 +463,7 @@ void sfz::Voice::fillWithGenerator(AudioSpan buffer) noexcept pitchBendEnvelope.getQuantizedBlock(bends, region->bendStep); else pitchBendEnvelope.getBlock(bends); + applyGain(bends, jumps); jumps[0] += phase; cumsum(jumps, phases);