I am experiencing a parameter recall problem with Ableton Live9 (don’t have the 10) on the VST version of my plugin. When I reopen a Live project the parameters of the plugin are not recalled back correctly.
I have made some tests on others DAW’s I do have.
It works on Logic (unfortunately that’s the AU version)
On Reaper it works both on VST and AU versions.
And on Ableton Live, the AU version works but not the VST!
Any experiences to share likewise , or any advices from Ableton devs ?
I don’t use the begin/endChangeGesture() method. Simply the parameters are shared with the DAW by getStateInformation() and setStateInformation() methods.
And I don’t have Live10 (it seems that it does not work there neither as reported) but I test with Live9.7.7
Consider a new blank Live set, with the plugin loaded on one track.
I change some parameters on the plugin, close its window and save the Live set.
Then after loading the Live set back, and opening the plugin window, I see that the relevant preset is not loaded and its parameters are not set as I saved it with the Live set.
This only happens on Live and with the VST version of the plugin, the AU version works Ok.
I am confused with what kind of coding practice I should take care to make it work for Live on VST version.
So is the problem that Live simply isn’t calling getStateInformation when the project is saved? Or is it that the plug-in’s state is requested, but you’re getting incorrect info supplied with setStateInformation when you load the project?
yes, I am using the usual getStateInformation - setStateInformation duo. Both of your assumptions might be true?
Notice that when I close the plugin window and open it back the parameters are correctly called back. Does this mean that Live can indeed receive the state of the plugin correctly?
However when I load the Live set back, the plugin state has been messed up.
You can check everything in the debugger - set the executable to Live in your Xcode scheme and then you can print debug information to Xcode’s console.
Look when the last getStateInformation call happens and check that the state you are writing corresponds to what you think the parameter values are.
Compare this to the data you get when you load the project.
interesting. I have focused on two parameters among a couple of hundreds. And it seems that the StateInformation gets the values correctly.
So it looks like the DAW is calling the original preset back with some kind of programchange message which overrides the values passed during the setStateInformation method, since what I see on the UI is the original preset and also sounds as it.
all right, setting a timer is like setting a time bomb in such situations. Both processes should watch each other, and will give go no go to each other. So this can be handled with a process order and why not even as a standard fix in JUCE then.
from Ableton: We’re getting in touch to let you know that Live 10.0.3 has been released. This version contains a fix for the AU bug you were experiencing in 10.0.2, whereby plug-ins would not recall their correct states.