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


#1

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?

Thanks!
Dan


#2

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!

Fabian


#3

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

Dan


#4

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.


#5

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


#6

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.


#7

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.