VST3 Hosting - setCurrentProgram(), reset() inoperative?

I’ve encountered a couple issues while working with JUCE 4.2 to host VST3 plugins.

  1. I can use the getNumPrograms() and getProgramName() functions successfully, but setCurrentProgram() doesn’t do anything. This isn’t surprising, given the function definition:

    void setCurrentProgram (int) override {}

I know VST3 uses “Program Lists” but I haven’t located any alternative functions for loading presets. Could anyone help me understand how to load a VST3 factory preset using JUCE?

  1. I’ve noticed that calling reset() on a VST3 does not cause the plugin to flush its buffers as expected. Is there a mechanism in Juce’s VST3 implementation that can be used to flush the buffers of a VST3 plugin?


Hi SynthDan,

Can you check the latest tip on develop to see if this is fixed? In particular can you check the following two commits:

Call setProcessing (false) when resting a VST3 plug-in
Support factory programs in VST3 hosting

Thank you!


All indications are that both of these issues are fixed beautifully. Thank you!


It seems AudioUnits are still missing a reset() implementation it looks like i’d be enough to call resetBusses() or maybe even better AudioUnitReset (audioUnit, kAudioUnitScope_Global, 0).
Also hosted VSTv2 don’t seem to receive the reset() call.

I’d like to raise attention to this thread again. Maybe i should have started a new one?

Hi Luzifer, I’m aware of this bug. Sorry it’s taking so long but I will roll out a bunch of fixes for related issues with the multibus updates.

hi fabian, that’s fine. it’s just that bugs reported that way occasionally drop under the table. hope to see you guys in berlin again.