Saving and loading VST3 state in DAW (REAPER, Carla,...)

Hi jucers, I’m following the tutorial in this JUCE: Tutorial: Saving and loading your plug-in state. I downloaded (https://docs.juce.com/tutorials/ZIPs/AudioProcessorValueTreeStateTutorial.zip) then build and deployed the VST3 into REAPER or Carla, JUCE AudioPluginHost but failed loading previous state. I added some message dialog and see that setStateInformation was never called by hosts (while getStateInformation was called multi times). I google and see in this Juce VSTs state isn't kept when closing and reopening GUI · Issue #68 · grame-cncm/faust · GitHub a statement: “Cakewalk, Reaper, Carla and VSTHost - not saving state.”. Is it correct? Can you please help me confirm this? And can you please tell me a DAW that can support reload VST3 state? Thanks!

1 Like

The state is connected with the processor. An editor has a different life-span, which is always shorter than the processor’s. It’s created later, closed earlier. Can be opened, closed, re-opened, under control of the host.
Important: for opened read “created” and for closed read “destroyed”.

So, an editor first has to inquire with the processor what the current state it, because it is the processor who receives this information from the host and will likely already have it before the editor is created.

As long as an editor exists, it has to respond to parameter changes. These can come from the host, but also from other parts of the plugin itself. But the editor has no responsability for where and how the state is stored.

Are you sure you have a good overview of the lifetimes of processor, state and editor(s)? This can be very tricky if you are starting with this lovely stuff :slight_smile:

I remember I initially mixed up the plugin with its editor… that’s just a psychological trap easy to fall into. The processor is the plugin, and it can/should work perfectly without any (open) editor.

Closing and re-opening an editor (or GUI in your words) has nothing to do with exchanging the plugin’s state with the host.

Success, ask more, tell me I missed some point, whatever :slight_smile:

PS: this old grame-cncm/faust discussion will just confuse you, focus on the Juce documentation.

And Reaper is a very good Daw for testing plugins.

1 Like

Thank you very much PeterEmanuelRoos. I’m just debugging the example to understand the work flow of the vst3 in a DAW. While debugging, I don’t see that setStateInformation was called. The example is from JUCE tutorial, not mine. If I run the standalone plugin version from IDE, this worked. But in DAW Reaper, it was not called.

hi people, I’m a complete beginner in coding but I want to find out of using VST’s as far as in a coding language can be done. The question I have is regarding if I created an application using Juce, I have a set way of how I mix my music and with certain plugins. Is it possible to code a full beat/song, AND also have the final mix touch I like if I specify which vst’s and plugins and their settings? thanks! (Again, may sound like a dumb question but I don’t know anything about coding music, let alone coding lo. Just want to educate myself)