I just made a small example file of how things could be done via scripting:
There is a radio button group (4 buttons in a “Radio Group 1”), and every time the state of one of those buttons changes, the script will update the state of the pad widget above (Scripted Button) accordingly.
The AUX-LEDs above the pads are in the same widget link group (A,B,C,D) as the pad widget below, so they also will change their state according to the group they are in (one might change the number of involved widgets per link group at will).
That way you can control 4 parameters at once with only one “real” radiobutton… the rest of the bunch (per column) is just linked to the “Scripted Buttons”.
BUT:
As i said before, this solution works only one way around:
The script doesn’t care of whatever you do to the other LEDs or pads!
You can group-wise (linked!) turn them on or off in any possibe way, which might turn up unwanted situations, but as soon as you trigger one of the radio buttons, all the widget states will be set again accordingly. But maybe this is also good enough for most people.
One could also “block” widgets from being used via GUI (mouse).
This is the script (should be easily adaptable for diffrent numbers of radio buttons):
var
btnRadio1, btnRadio2, btnRadio3, btnRadio4 : widget
btnScriptA, btnScriptB, btnScriptC, btnScriptD : widget
radioButtons : widget array = [btnRadio1, btnRadio2, btnRadio3, btnRadio4]
scriptedButtons : widget array = [btnScriptA, btnScriptB, btnScriptC, btnScriptD]
function setButtons()
var
index : integer
for index = 0; index < Size(radioButtons); index = index + 1 Do
SetWidgetValue(scriptedButtons[index],GetWidgetValue(radioButtons[index]))
end
End
Initialization
setButtons()
End
// Called when any of several widgets changed
// The widget and index parameters are optional
On WidgetValueChanged(w : Widget, index: integer, newValue : double) from btnRadio1, btnRadio2, btnRadio3, btnRadio4
setButtons()
End
radiobuttons with aux-group script.gig (210.2 KB)
Maybe that helps…