Summary
I have a new version of a VST2 plugin and am making sure plugin state is correctly restored when loading projects saved with an older version of the plugin when the new version is installed, and vice versa.
This seems to work fine in all hosts I tested, but not in Cubase 8.
Both versions of the plugin were built with Juce, and the version numbers are 1.1.1 and 1.1.2.
It seems like Cubase refuses to call setStateInformation in the case the older version is installed and a project saved with the newer version is opened (note: my code can handle that, and this works fine in other hosts).
Details / debug info
This is what I’m observing (Cubase 8 64-bit on Windows 10):
CASE 1: debugging with version 1.1.1 of our plugin installed
(plugin version shows up as 0.1.1.1 in Cubase)
loading project saved with version 1.1.1 of plugin
–> setStateInformation gets called
loading project saved with version 1.1.2b1 of plugin
–> neither setStateInformation nor setCurrentProgramStateInformation gets called…
CASE 2: debugging with version 1.1.2b1 of our plugin installed
(plugin version shows up as 1.1.2.0 in Cubase)
loading project saved with version 1.1.1 of plugin
–> setStateInformation gets called
loading project saved with version 1.1.2b1 of plugin
–> setStateInformation gets called
I am also seeing this in the plugin manager (this is in Cubase Pro 8.5.30 32-bit on Windows 10 64-bit):
- new plugin (Juce version 1.1.2): version shows up as 1.1.2.0 in plugin manager
- old plugin (Juce version 1.1.1): version shows up as 0.1.1.1 in plugin manager
Has anyone experienced this before?
Is there anything I can do about this?
For the Roli team: is there a plugin example in the Juce examples that uses programs? That would be easier, as it probably also happens with other plugins (I’m not doing anything special other than declaring a number of programs and keeping a 2-D array of floats for the parameter values of the programs, and then using the program number as index in the 2D array; as said this all works fine in other hosts).
Thanks!