Hallo, Mike McGonagle hat gesagt: // Mike McGonagle wrote:
And yes, while this is possible, it just seems very "difficult" at best, to be able to create a patch and lay it out in such a way that you can make those sorts of selections. LOTS of planning would need to go into such a thing.
What I generally do *if* I'm doing dynamic patching is write as much as possible into an abstraction and just create copies of that. nqpoly4~ may help with automating that.
A very useful trick for these abstractions is to avoid doing connections at all and just pass $0 as an argument. Then inside the abstraction, use [r $1-inlet] receivers where $1 is the $0 of the parent as passed as argument instead of inlets, and [s $1-outlet] instead of outlets. Outside of the patch use [s $0-inlet] to write to the fake inlet, and [r $0-outlet] to read from the fake sender outlet. Do the same for signals with r~/s~ and throw~/catch~ pairs. Most dynamic connections can be avoided by this approach.
If you need to pass data from one dynamically created abstraction to another, use a similar approach with numbered arguments. Again this can be seen in action in the redesign of nqpoly4~.pd that I once did and that's in svn/pd-extended as well, or in polypoly.pd.
Frank Barknecht