[PD] Pd Manual
jancsika at yahoo.com
Mon Aug 10 22:44:40 CEST 2009
I think there is a problem in section 2.3.2 of the Pd Manual:
"It is indeterminate which of "B" or "C" is done first; this depends on
what order you made the connections in (in Max, it's automatically sorted
right to left)."
First of all, the part before the semicolon contradicts the part that
follows the semicolon.
Second of all, the next paragraph talks about infinite loops; [trigger]
isn't addressed until the following section, momentarily making it seem
as if "the order you made the connections in" is an feature of the
language that is somehow analogous to Max's right-to-left sorting.
This may seem nitpicky, but I think the analogous Pd feature
in this case is Pd's reliance on [trigger] as the main
way to specify execution order. I think [trigger] should be mentioned
before the the quoted material above (or at least immediately following)
so that the comparison to Max is as follows:
Max: When multiple connections are made from an object, they are executed
in right-to-left order. This makes it easy to know the execution order
simply by looking at a patch, but can make it tricky to reorganize the
patch (unless [trigger] is used explicitly).
Pd: When the execution order needs to be specified, the user explicitly
uses a [trigger] object. This means you can look at a patch and tell the execution order, _and_ (aside from [inlet] and [outlet]) objects can be reorganized without the risk of changing the execution order.
Finally, if there are multiple connections from an object and [trigger]
is not used, it can be assumed that either execution order shouldn't
matter in that instance, or that the person making the patch has forgotten
to specify it (in which case it is an error and [trigger] should be
The fact that Pd executes in the order the connections were made only
makes sense in light of the explicit use of [trigger]. Even if Pd rolled
some virtual dice to determine execution order when multiple
connections are coming from a single object, most of our patches would
work the same because we all use [trigger] explicitly in Pd, right?
I know the Pd manual doesn't make assumption about how someone _should_
use Pd, but I think this is an exception, because anyone who is relying
on the order they make connections is going to have a hard time getting
anywhere. Plus, it seems like an unusual number of people have said
(or written) that Pd "relies" on the order in which you make connections
for the execution order, which isn't true.
Does this make sense?
More information about the Pd-list