We’re having problems trying to load old sessions that were saved with non-JUCE versions of the plug-in. While AAX falls back on a default of extracting the old parameter values from the stream, which happens to work for us because our old AAX used that default method of writing the data, our old VST3 sessions don’t work at all. The code calls setState(), which calls readFromMemoryStream(), which fails, apparently because it fails to create anything from the IBStream* data. I can’t debug beyond that, however, as all I see is the interface headers, not any code for the creation of the ISizeableStream object. It then tries to use readFromUnknownStream(), which calls loadStateData (with 108 bytes), but that fails as well, and so the session fails to load any of our plugin data at all.
Is there any way that we can customize the behavior of the VST3 wrapper, preferably without editing the JUCE code (which I’m not permitted to do here)? I had written code that our setStateInformation() function could fall back on if our own parsing of the VST3 session data failed, but our function is never called because of the failure of the above code. I need a way to either allow it to reach our code (and let us detect that it’s old non-JUCE code), or else I need a way to override the wrapper behavior so that we can write our own code to load the old state information.
Anyone know how to do either one of these?
(I have not tested loading of old AU or VST2 session data yet, by the way. I wouldn’t be surprised if the same problems are there, especially since out old AU was built using the auwrapper in the VST3 SDK.)