From dabb7ead9ff8b91e8c50e5df63f705a2fa082c44 Mon Sep 17 00:00:00 2001 From: Paul Ferrand Date: Sat, 28 Mar 2020 20:11:17 +0100 Subject: [PATCH] Use the phase helper --- src/sfizz/Voice.cpp | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/sfizz/Voice.cpp b/src/sfizz/Voice.cpp index 2b150b42..e86375f2 100644 --- a/src/sfizz/Voice.cpp +++ b/src/sfizz/Voice.cpp @@ -58,9 +58,11 @@ void sfz::Voice::startVoice(Region* region, int delay, int number, uint8_t value break; } waveOscillator.setWavetable(wave); + waveOscillator.setPhase(region->getPhase()); } else if (region->oscillator) { const WavetableMulti* wave = resources.wavePool.getFileWave(region->sample); waveOscillator.setWavetable(wave); + waveOscillator.setPhase(region->getPhase()); } else { currentPromise = resources.filePool.getFilePromise(region->sample); if (currentPromise == nullptr) { @@ -70,19 +72,6 @@ void sfz::Voice::startVoice(Region* region, int delay, int number, uint8_t value speedRatio = static_cast(currentPromise->sampleRate / this->sampleRate); } - if (region->oscillator || region->isGenerator()) { - float phase; - const float phaseParam = region->oscillatorPhase; - if (phaseParam >= 0) { - phase = phaseParam * (1.0f / 360.0f); - phase -= static_cast(phase); - } else { - std::uniform_real_distribution phaseDist { 0.0001f, 0.9999f }; - phase = phaseDist(Random::randomGenerator); - } - waveOscillator.setPhase(phase); - } - pitchRatio = region->getBasePitchVariation(number, value); baseVolumedB = region->getBaseVolumedB(number);