Use the phase helper
This commit is contained in:
parent
b223fb5e4f
commit
dabb7ead9f
1 changed files with 2 additions and 13 deletions
|
|
@ -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<float>(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<int>(phase);
|
||||
} else {
|
||||
std::uniform_real_distribution<float> phaseDist { 0.0001f, 0.9999f };
|
||||
phase = phaseDist(Random::randomGenerator);
|
||||
}
|
||||
waveOscillator.setPhase(phase);
|
||||
}
|
||||
|
||||
pitchRatio = region->getBasePitchVariation(number, value);
|
||||
|
||||
baseVolumedB = region->getBaseVolumedB(number);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue