diff --git a/src/sfizz/Wavetables.cpp b/src/sfizz/Wavetables.cpp index b04c0a8c..e7a3f3da 100644 --- a/src/sfizz/Wavetables.cpp +++ b/src/sfizz/Wavetables.cpp @@ -253,8 +253,17 @@ WavetableMulti WavetableMulti::createForHarmonicProfile( const WavetableMulti* WavetableMulti::getSilenceWavetable() { static WavetableMulti wm; - wm.allocateStorage(1); - wm.fillExtra(); + static bool initialized { false }; + + if (!initialized) { + constexpr unsigned numTables = WavetableMulti::numTables(); + wm.allocateStorage(1); + for (unsigned m = 0; m < numTables; ++m) { + float* ptr = const_cast(wm.getTablePointer(m)); + *ptr = 0; + } + wm.fillExtra(); + } return &wm; }