Hi. Before I investigate and issue a bug report, can somebody check this please on recent SC. I’m running the slightly older 3.10.2. Here, I have a severe case where a /g_head
reorders nodes but does not inform the client about the tree changes. To reproduce:
s.quit;
s.boot;
r = RootNode(s);
r.dumpTree;
/*
NODE TREE Group 0
1 group
*/
s.dumpOSC;
(
f = { |msg, time, addr|
if(msg[0] != '/status.reply') {
"r: %\n".postf(msg);
}
};
thisProcess.addOSCRecvFunc(f);
);
SynthDef(\main, { Out.ar(0, DC.ar(0)) }).send(s);
SynthDef(\meter, { Out.ar(0, DC.ar(0)) }).send(s);
a = Group.tail(r);
b = Group.head(a);
Synth.tail(a, \main);
Synth.head(b, \meter);
Synth.head(r, \meter);
r.dumpTree;
/*
NODE TREE Group 0
1004 meter
1 group
1000 group
1001 group
1003 meter
1002 main
*/
s.sendMsg("/g_head", 1000, 1001); // NO REPLY !!!
s.sendMsg("/g_tail", 1000, 1001); // ok, /n_move
s.sendMsg("/g_head", 1000, 1001); // again, NO REPLY
r.dumpTree;
/*
NODE TREE Group 0
1004 meter
1 group
1000 group
1001 group
1003 meter
1002 main
*/
As you can see from the queryTree
, the tree order has changed, but the line // NO REPLY !!!
here means I’m not getting any client side OSC info on that change. What might cause this, or is it fixed in recent SC? Thanks!