A SynthSnapshot describes a Synth on the server.
A Synth representing the synth described by this snapshot. It does not create the synth on the server, nor does it guarantee it is still runnung on the server.
A SynthDesc for the synth, if one can be found.
The name of the SynthDef, as reported by the server.
An Dictionary mapping NamedControl names to values of those controls at the time of the snapshot.
fork { SynthDef(\outputTest, { |out, freq| var sig = SinOsc.ar(freq, 0, 0.1); Out.ar(out, sig) }).add; ~synths = 10.collect { |i| Synth(\outputTest, [ \out, [0, 1, 2, 3].choose, \freq, 400.rand ]); }; 1.wait; TreeSnapshot.get({ |snap| var playing = snap.root.children[0].children.select { |node| node.isKindOf(SynthSnapshot) && (node.outputs[0].startingChannel == 0) }; "% synths are playing to output 0: %".format(playing.size, playing.collect(_.nodeId)).postln; "Synth freq's are: ".postln; playing.do { |node| if (node.isKindOf(SynthSnapshot)) { " node %: % ".format(node.nodeId, node.controls[\freq]).postln; } } }); ~synths.do(_.free); }