I am using JUCE 3.06 and am reporting an issue reported from the field and that I have investigated with VST (effect) plug-ins under the latest version of Sony SoundForge (v11) and Vegas Video, using both Windows 7 (x64) and 8.1, on a 32-bit build of the plug-in (not VST3). I am building on VS2013.
The problem is the plug-in's parameters are not restored prior to processing, or saved to the VST Preset files (.FXP) that these apps save. These issues appear both when accessing plug-ins under the FX Favorites... menu or with the "Apply FX Chain..." commands.
1. The user brings up the plug-in GUI and moves the controls and then presses "OK" - the app processes the audio using whatever default parameter settings are set when the AudioEffect is initialized. I have put breakpoints in setParameter and the host app is not calling it. No luck with setChunk either.
2. Save the plug-ins settings as a VST Preset in the app and you end up with a 0 bytes .FXP file.
I have reproduced the issue with my plug-in and JuceDemoPlugin (audio plugin demo). Any idea what might be going on?
If the host isn't even calling those functions then I'm really not sure what to suggest.. It's very basic stuff, and has worked for years in all the other hosts.
Do you actually have code written for getStateInformation and setStateInformation in the plugin?
Have you tried other hosts? If it happens in every host you try - then you can be pretty sure the problem is in your plugin. If it works in other hosts, then yea, what up with Sony?
The JUCE demo plugin still has this bug:
In Logic X the presets menu for a plugin instance has a preset called “Factory Presets/Pres 0: Default”, but choosing it does absolutely nothing.
Btw - as bug reports repeatedly get lost I’d suggest to create a forum topic for known bugs as suggested here - Please add a “known bugs” list
It’s always a great honour fixing anniversary bugs. See the latest develop. Your plug-ins should now return zero programs if they don’t have any programs.
I remember that in some cases, it was a problem if the plug-in were to report to its host that it had 0 programs.
Has this been taken into account when applying this fix?
(IIRC, there was a jassert in the code preventing 0 to be returned for exactly this reason)