From 7cb92e05d205105f257021e3ca928d877dc5c815 Mon Sep 17 00:00:00 2001 From: Paul Ferrand Date: Sun, 29 Mar 2020 17:16:29 +0200 Subject: [PATCH] Use an intermediate method to set the sample rate and block size for the resources --- src/sfizz/Resources.h | 13 +++++++++++++ src/sfizz/Synth.cpp | 6 ++---- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/sfizz/Resources.h b/src/sfizz/Resources.h index e129b355..1367d714 100644 --- a/src/sfizz/Resources.h +++ b/src/sfizz/Resources.h @@ -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); + } }; } diff --git a/src/sfizz/Synth.cpp b/src/sfizz/Synth.cpp index 2c701e19..4e68bbaf 100644 --- a/src/sfizz/Synth.cpp +++ b/src/sfizz/Synth.cpp @@ -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)