Use an intermediate method to set the sample rate and block size for the resources

This commit is contained in:
Paul Ferrand 2020-03-29 17:16:29 +02:00
parent 406b7a08d7
commit 7cb92e05d2
2 changed files with 15 additions and 4 deletions

View file

@ -25,5 +25,18 @@ struct Resources
FilterPool filterPool { midiState };
EQPool eqPool { midiState };
WavetablePool wavePool;
void setSampleRate(float samplerate)
{
midiState.setSampleRate(samplerate);
filterPool.setSampleRate(samplerate);
eqPool.setSampleRate(samplerate);
}
void setSamplesPerBlock(int samplesPerBlock)
{
bufferPool.setBufferSize(samplesPerBlock);
midiState.setSamplesPerBlock(samplesPerBlock);
}
};
}

View file

@ -510,7 +510,7 @@ void sfz::Synth::setSamplesPerBlock(int samplesPerBlock) noexcept
this->tempMixNodeBuffer.resize(samplesPerBlock);
for (auto& voice : voices)
voice->setSamplesPerBlock(samplesPerBlock);
resources.midiState.setSamplesPerBlock(samplesPerBlock);
resources.setSamplesPerBlock(samplesPerBlock);
for (auto& bus : effectBuses) {
if (bus)
@ -529,9 +529,7 @@ void sfz::Synth::setSampleRate(float sampleRate) noexcept
for (auto& voice : voices)
voice->setSampleRate(sampleRate);
resources.filterPool.setSampleRate(sampleRate);
resources.eqPool.setSampleRate(sampleRate);
resources.midiState.setSampleRate(sampleRate);
resources.setSampleRate(sampleRate);
for (auto& bus : effectBuses) {
if (bus)