> Date: Thu, 03 Jul 2008 09:37:05 +0200
> From: Atte Andr? Jensen <atte.jensen(a)gmail.com>
> Subject: Re: [PD] best way to do 1/x
> To: pd-list(a)iem.at
> Message-ID: <486C81A1.9050001(a)gmail.com>
> Content-Type: text/plain; charset=ISO-8859-15; format=flowed
>
> Frank Barknecht wrote:
>
>> Yes, it is. ;)
>
> But slightly more tricky is that send/recieve must have the same
> "problems", but may be more difficult to spot.
>
In my patches I sometimes like to have one global [loadbang] which
lives in a subpatch called something like [pd init], with one big
[trigger] and a bunch of [send]'s. That way I can control exactly
what order things get initialized and I never have to guess or be
surprised by the order of loadbangs in several other subpatches.
However, just like with any message, if you are sending the same thing
in several unrelated directions which all eventually dead-end into a
"cold" inlet, you don't need to worry about the order (as much,
anyway).
Now that I think about it, wouldn't [loadbang]'s in abstractions
necessarily have to go before [loadbang]'s elsewhere in the parent
patch, to initialize the internal state of the abstraction before any
data can be sent to it? And if this is the case, would this
"inside-out" loadbang order extend to [pd subpatch]'s too? Anyway, if
this were the case it would still not be something to rely upon too
heavily.
BTW, since you mentioned it I believe [send] and [receive] should be
included in "depth-first" control dataflow chains, just like regular
connections (it would be a serious design flaw if this weren't the
case, I think -- but you're right, it can be harder to track down, and
harder still if the send and receive symbols live inside graphical
objects...). As a fun experiment, see what happens if you make a
control connection loop (also see what happens with an audio loop).
It's good to be aware of what happens during various kinds of errors.
Matt