I’m using some Neural DSP plugins like the Mesa Boogie. It has two flavors of the amp and the VST3 automatically switches. The controls for each amp are identical, but they are unique (e.g. Gain amp 1 and Gain amp 2).
To save space AND make clear which amp is active, I’d like to hide Amp 1 widgets when Amp 2 is on and vice versa.
This would be relatively easy to highly automate a script if I could get a list of GPScript-Names for all widgets on a Panel (or even in a Rack). That way, I could append the set the GPScript Name such as “Gain.Amp1” and “Treble.Amp1”
Ideally I’d program something like:
VAR myWidgetArray : String Array = GetRackspaceWidgetList(Rackspace[GetCurrentRackspaceIndex()]) Returns String Array
This would return a list of Widgets that have a GPScript Name value set to non-null. Ideally the array would be indexed by the Z-Order (top to bottom).
myWidgetArray[1] = Gain.Amp1
myWidgetArray[2] = Gain.Amp2
Now I can identify all of the widgets assigned to Amp1 and set their show/hide value based on an event such as the widget switch the choses which amp to make active.
Even better would be if there were script objects for Panel. Panels as a script object would be similar RackSpaces, they would have have an ID, InRackspace, Name, and Order)
Then a new “Container” level is added that acts like a “Group” in other UX worlds (except in GP Group means "control multiple widgets at the same time). You create Containers by selecting multiple widgets. Container would have the unique ID GPScript Name and get/set parameters: Lock and Hide. Then a script could easily show/hide a group of widgets
Today, it appears that I would have to manually keep track of all widget Script Names and modify my scripts everytime I want to add/remove a widget to my list.
Anyone tried to dynamically show/hide groups of widgets?