From ee9ce94ea8afbb967428c7f47f13e92cb1c6ff69 Mon Sep 17 00:00:00 2001 From: paulfd Date: Sat, 14 Sep 2019 08:37:54 +0200 Subject: [PATCH] corrected a bug on the offset calculation --- sfizz/Voice.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sfizz/Voice.cpp b/sfizz/Voice.cpp index 6ff161d9..ded3d93e 100644 --- a/sfizz/Voice.cpp +++ b/sfizz/Voice.cpp @@ -73,21 +73,21 @@ void sfz::Voice::startVoice(Region* region, int delay, int channel, int number, // DBG("Base gain: " << baseGain << " - with modifier: " << gain); basePan = normalizeNegativePercents(region->pan); - auto pan = basePan; + auto pan { basePan }; if (region->panCC) pan += normalizeCC(ccState[region->panCC->first]) * normalizeNegativePercents(region->panCC->second); panEnvelope.reset(pan); // DBG("Base pan: " << basePan << " - with modifier: " << pan); basePosition = normalizeNegativePercents(region->position); - auto position = basePosition; + auto position { basePosition }; if (region->positionCC) position += normalizeCC(ccState[region->positionCC->first]) * normalizeNegativePercents(region->positionCC->second); positionEnvelope.reset(position); // DBG("Base position: " << basePosition << " - with modifier: " << position); baseWidth = normalizeNegativePercents(region->width); - auto width = baseWidth; + auto width { baseWidth }; if (region->widthCC) width += normalizeCC(ccState[region->widthCC->first]) * normalizeNegativePercents(region->widthCC->second); widthEnvelope.reset(width); @@ -96,7 +96,7 @@ void sfz::Voice::startVoice(Region* region, int delay, int channel, int number, sourcePosition = region->getOffset(); floatPosition = static_cast(sourcePosition); // DBG("Offset: " << floatPosition); - initialDelay = delay + region->getDelay(); + initialDelay = delay + static_cast(region->getDelay() / sampleRate); baseFrequency = midiNoteFrequency(number) * pitchRatio; prepareEGEnvelope(delay, value); }