I hate to take more of anyone’s time, but I have a few questions that are hard to even figure out how to ask:
I’ve read up a bit on Server Architecture (again) but am trying to really get a grip on this.
From the docs:
A Node is an addressable node in a tree of nodes run by the synth engine. There are two types, Synths and Groups. The tree defines the order of execution of all Synths. All nodes have an integer ID.
When we create synths, they are obviously assigned to a node, which may be in their own group or will end up in the default group.
With proxies (either via Ndefs or ProxySpace) it seems every instantiation is in it’s own Group.
But I still seem (even after reading pretty much every doc on BusPlug->NodeProxy->Ndef or with ProxySpace) how all of this actually interacts. I understand the idea of a proxy, but think that I’m having trouble knowing how order of execution works (which is obviously a bit more loose with proxies).
This: https://doc.sccode.org/Tutorials/JITLib/proxyspace_examples.html
is helpful to a degree, all examples work, but I’m having trouble relating the concepts in a workable sense. @jamshark70 - what you’ve explained makes loads of sense, but at a lower level. I’m trying to fathom the larger picture here and can’t quite seem to grasp it.
For instance even the assignment in the above example of ~out = \staub;
how does one then control this proxy? The doc seems more about ~out = SynthDef(...
(and the lines with ~out.spawn
elude me even further).
Again, I understand in basic terms that ~out = {...}
is the same as Ndef(\out, {...}
but I’m having more trouble figuring out how these NodeProxies actually work on the server and with the client-side language.
I’m not even sure what to ask. But given a path to look into, I will.
One good example of playing a SynthDef assigned to a proxy with a pattern playing would be wonderful.