When I use chnset on a selected button channel (member of a radiogroup) to change button state to 1, the states of other buttons remain unchanged. Shouldn’t other buttons automatically change to 0 when they are members of the same radiogroup?
The radiogroup behaves as expected when clicking on button widgets though.
Please let me know if I’m doing something wrong.
<Cabbage>
form caption("test radiogroup") size(200, 100), pluginid("trg1") style("legacy")
button bounds(80, 8, 50, 40) latched(1) channel("button0") identchannel("button0_ID") text("0") value(1) radiogroup("group1") corners(3) colour:0(0, 255, 0, 255) colour:1(255, 255, 0, 255) fontcolour:0(0, 0, 0, 255) fontcolour:1(160, 0, 0, 255)
button bounds(134, 8, 50, 40) latched(1) channel("button1") identchannel("button1_ID") text("1") value(0) radiogroup("group1") corners(3) colour:0(0, 255, 0, 255) colour:1(255, 255, 0, 255) fontcolour:0(0, 0, 0, 255) fontcolour:1(160, 0, 0, 255)
button bounds(80, 52, 50, 40) latched(1) channel("button2") identchannel("button2_ID") text("2") value(0) radiogroup("group1") corners(3) colour:0(0, 255, 0, 255) colour:1(255, 255, 0, 255) fontcolour:0(0, 0, 0, 255) fontcolour:1(160, 0, 0, 255)
button bounds(134, 52, 50, 40) latched(1) channel("button3") identchannel("button3_ID") text("3") value(0) radiogroup("group1") corners(3) colour:0(0, 255, 0, 255) colour:1(255, 255, 0, 255) fontcolour:0(0, 0, 0, 255) fontcolour:1(160, 0, 0, 255)
</Cabbage>
<CsoundSynthesizer>
<CsOptions>
-n -d -m0d -+rtmidi=NULL
</CsOptions>
<CsInstruments>
ksmps = 16
nchnls = 2
0dbfs = 1
instr 1
kcnt init 0
if metro(1)==1 then
ksel = kcnt % 4
/*
chnset k(0), "button0" ; adding this block resolves the problem
chnset k(0), "button1"
chnset k(0), "button2"
chnset k(0), "button3"
*/
Ssel sprintfk "button%d", ksel
chnset k(1), Ssel
kcnt += 1
endif
k0 chnget "button0"
k1 chnget "button1"
k2 chnget "button2"
k3 chnget "button3"
Sout sprintfk "%d, %d, %d, %d \n", k0, k1, k2, k3
printks Sout,1
endin
</CsInstruments>
<CsScore>
f0 z
i 1 0 [3600*24*7]
</CsScore>
</CsoundSynthesizer>




Tbh, I applied some sticky tape and hoped for the best! It comes down to juggling the two different gui modes. If I could drop one entirely I could make these kind of things more streamlined. Perhaps something for Cabbage v3
I’m just trying to pull out of your mystery box anything that could help anticipate where issues could show up, but I can also let myself be surprised with a reassuring Rory’s safety tape 


