diff --git a/plugin/Source/Panels.h b/plugin/Source/Panels.h index 96a3fdf..c8315e6 100644 --- a/plugin/Source/Panels.h +++ b/plugin/Source/Panels.h @@ -88,9 +88,15 @@ public: menus[prefix].addItem (t, [this, t] { if (idx == 0) + { + proc.userTable1.reset(); proc.osc1Table = t; + } else + { + proc.userTable2.reset(); proc.osc2Table = t; + } proc.reloadWavetables(); }); diff --git a/plugin/Source/PluginProcessor.cpp b/plugin/Source/PluginProcessor.cpp index 02ef023..2adead2 100644 --- a/plugin/Source/PluginProcessor.cpp +++ b/plugin/Source/PluginProcessor.cpp @@ -506,7 +506,7 @@ void WavetableAudioProcessor::reloadWavetables() if (shouldLoad (0, osc2Table.toString(), sr)) loadWaveTable (osc2Tables, sr, userTable2, "wav"); } - if (auto mb = loadMemory (osc2Table.toString()); mb.getSize() > 0) + else if (auto mb = loadMemory (osc2Table.toString()); mb.getSize() > 0) { if (shouldLoad (1, osc2Table.toString(), sr)) loadWaveTable (osc2Tables, sr, mb, "flac"); @@ -517,10 +517,15 @@ void WavetableAudioProcessor::incWavetable (int osc, int delta) { auto& table = osc == 0 ? osc1Table : osc2Table; + if (osc == 0) + userTable1.reset(); + else + userTable2.reset(); + juce::StringArray tables; for (auto i = 0; i < BinaryData::namedResourceListSize; i++) - if (juce::String (BinaryData::originalFilenames[i]).endsWith (".wav")) - tables.add (juce::String (BinaryData::originalFilenames[i]).upToLastOccurrenceOf (".wav", false, false)); + if (juce::String (BinaryData::originalFilenames[i]).endsWith (".wt2048")) + tables.add (juce::String (BinaryData::originalFilenames[i]).upToLastOccurrenceOf (".wt2048", false, false)); tables.sortNatural();