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;
|
break;
|
||||||
}
|
}
|
||||||
waveOscillator.setWavetable(wave);
|
waveOscillator.setWavetable(wave);
|
||||||
|
waveOscillator.setPhase(region->getPhase());
|
||||||
} else if (region->oscillator) {
|
} else if (region->oscillator) {
|
||||||
const WavetableMulti* wave = resources.wavePool.getFileWave(region->sample);
|
const WavetableMulti* wave = resources.wavePool.getFileWave(region->sample);
|
||||||
waveOscillator.setWavetable(wave);
|
waveOscillator.setWavetable(wave);
|
||||||
|
waveOscillator.setPhase(region->getPhase());
|
||||||
} else {
|
} else {
|
||||||
currentPromise = resources.filePool.getFilePromise(region->sample);
|
currentPromise = resources.filePool.getFilePromise(region->sample);
|
||||||
if (currentPromise == nullptr) {
|
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);
|
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);
|
pitchRatio = region->getBasePitchVariation(number, value);
|
||||||
|
|
||||||
baseVolumedB = region->getBaseVolumedB(number);
|
baseVolumedB = region->getBaseVolumedB(number);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue