Perks of building stuff on top of LV2 and split DSP / UI design: you can keep multiple UI instances in sync.
Perfect if multiple people need to adjust the same setup!
@sjaehn globals cant work if we are talking about completly different systems connecting to the same host. I cant show with a simple screen recording, but it is possible to have the same in sync across multiple computers.
the nice thing is me not having to do anything special about this. just implementing LV2 receiving and sending messages, and we get the sync feature for free :D
@falktx Yes, this is one of the limitations of the ugly globals. Another one would be the lacking cross-communication between multiple host instances. Thus, my approach works nicely if you load multiple instances of B.Choppr in Carla but would fail if you open a second window of Carla. As expected.
BTW, Jatin used JUCE SharedResourcePointer instead.
Now, I'm curious how did you solve it in your case. Host or plugin-based? And how does the code looks like?
@sjaehn Code just uses LV2 mechanisms for informing the host of changes, and receiving back those again.
There is nothing extra to do on the plugin-side for this, we get it "for free".
I could have the same in Carla when having Carla-Control on a remote machine, but did not bother setting up custom GUI support for that yet.
Note the same is possible in VST3 too, it also has host-provided message passing for UIs to communicate with the DSP side and vice-versa. No host I know handles it though
@falktx 2UIs for the same plugin instance, then you are fully right that LV2 already provides all you need.
My (and Jatins) ideas were "only" about the communication between two plugin (DSP) instances.
But it would be a "nice to have" if host makers can provide an optional feature to (i) clone a plugin instance with all its current parameters and to (ii) keep different instances of the same plugin (DSP) synchronized. 🙏
@falktx oh wow, really great to see this! Love your work ❤️
Have a happy new year and thank you for sharing your work with all of us. ☺️
@falktx Great thing. If it is a host-provided feature. Jatin implemented something similar in his "Chow" plugins to keep multiple plugin instances synchronized. And also I did it in some of my plugins (feature called shared data) by the use of ugly globals. But it's really much better if the host can do this.