[PD] Pd Manual

Jonathan Wilkes 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 
utilized).

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?

-Jonathan


      




More information about the Pd-list mailing list