Yeah, apparently what happens is that they hardcode the strings as ASCII floats in the graph, prepended by the string length. (That’s Pascal format, apparently.) E.g. “Hello world” is [11, 72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100].
/*
d = SynthDef(\asdf, { Poll.kr(0, 0, "Hello world") })
d.dumpUGens
[ 0_Impulse, control, [ 0, 0 ] ]
[ 1_Poll, control, [ 0_Impulse, 0, -1, 11, 72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100 ] ]
*/
The stranger thing is that if I turn on debugOSC, I don’t see any strings sent at all,
so I’m guessing there’s some kind of refencing used later
-> Synth('asdf' : 1031)
[ 9, "asdf", 1031, 0, 1, 0 ]
Hello world: 0
Could you briefly explain that that stage3 means or where can I read about those stages?
That’s a fair point but there was a discussion here about local buffers created on the server that apparently have conflicting numbers. So it’s not like the server doesn’t create any of those “by itself” at all.