diff --git a/src/sfizz/Resources.h b/src/sfizz/Resources.h index 2c6adcfc..17f924a9 100644 --- a/src/sfizz/Resources.h +++ b/src/sfizz/Resources.h @@ -40,5 +40,14 @@ struct Resources bufferPool.setBufferSize(samplesPerBlock); midiState.setSamplesPerBlock(samplesPerBlock); } + + void clear() + { + curves = CurveSet::createPredefined(); + filePool.clear(); + wavePool.clearFileWaves(); + logger.clear(); + midiState.reset(); + } }; } diff --git a/src/sfizz/Synth.cpp b/src/sfizz/Synth.cpp index 5e4d7fe9..c618f154 100644 --- a/src/sfizz/Synth.cpp +++ b/src/sfizz/Synth.cpp @@ -130,17 +130,14 @@ void sfz::Synth::clear() list.clear(); for (auto& list : ccActivationLists) list.clear(); + regions.clear(); effectBuses.clear(); effectBuses.emplace_back(new EffectBus); effectBuses[0]->setGainToMain(1.0); effectBuses[0]->setSamplesPerBlock(samplesPerBlock); effectBuses[0]->setSampleRate(sampleRate); - resources.curves = CurveSet::createPredefined(); - resources.filePool.clear(); - resources.wavePool.clearFileWaves(); - resources.logger.clear(); - resources.midiState.reset(); + resources.clear(); numGroups = 0; numMasters = 0; fileTicket = -1;