On Mon, 8 Aug 2005, Tim Blechmann wrote:
there are basically two ways how abstractions communicate with each other: inlets and receives. i'd propose that every inlet / outlet / receive declares a loadbang function. before this loadbang function has been run, the outlet events are queued (maybe using clock callbacks), then then the behaviour is the same as currently. for the outlets it's more tricky, since they'd have to register a loadbang on the parent canvas.
I don't understand what you mean by all of this. Do you have an example?
I also have a proposal for solving the [loadbang] problem.
My suggestion would be that [loadbang] would take a single argument which would be an integer interpreted as a priority order, with a default value of zero. Negative values would be accepted.
The first [loadbang] to be triggered is the one that has the largest argument, because that's consistent with the fact that in a [t] the first outlet to be active is the one with the biggest index.
Two [loadbang]s with the same priority get executed in whatever order.
The scope of [loadbang] priorities is the same as the scope of a $0, that is, a subpatch is considered to be part of its parent, whereas an abstraction instance is not. Therefore, in the priority hierarchy (the post-order tree traversal in the mail to Miller), a $0 corresponds to one node, and the priority numbers fine-tune the ordering within its node.
____________________________________________________________________ Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju Freelance Digital Arts Engineer, Montréal QC Canada