If one organizes their abstractions in such a manner that [f $1] always refers to that abstractions "index", one can:
- more powerfully clone that object as
[clone object 12]
- add both dynamic sends and receives based on that index:
loadbang
|
f $1
|
[symbol objectname-$1(
|
[s]
and
[r objectname-$1]
|
So each object can then
not only get its [all( and [by-idx( messages but also its [r & s] messages outside of the clone thread, ie external from the clone messages, ex. from a gui, hid, OSC, etc., as [s objectname-$1].
Esp. because, I don't know if you've noticed, but working inside clones can be tricky and is prone to losing changes if you don't save the clone's changes before closing.
- further, one can then create "2nd level" objects at
[clone parentobject 12 childobject]
Such that inside parent is
[f $1] and [symbol $2].
and all $2's are instances of "childobject".
The benefits of this are:
- greater cloning flexibility because one can swap out out which clone is used merely by changing the name.
Ex.
- go into the clone
- open the child
- edit the child
- save it as "child2"
- exit the clone
- change [clone parent 12 child] to
[clone parent 12 child2]
and all of the clone thread will be updated accordingly.
Afterward:
I have yet to find a way to send messages into the clone without editing it, though that feature would be enormously beneficial, esp. as it applies to changing the clone's objects and parameters.
p.s. I hope this benefits your creative process in some way. Happy PD-ing!
The more ideas there are to play with, the more fun there is to be had.