--- On Tue, 8/11/09, Jonathan Wilkes <jancsika(a)yahoo.com> wrote:
> From: Jonathan Wilkes <jancsika(a)yahoo.com>
> Subject: Re: [PD] Pd Manual
> To: "William Brent" <william.brent(a)gmail.com>
> Date: Tuesday, August 11, 2009, 11:04 PM
>
>
> --- On Tue, 8/11/09, William Brent <william.brent(a)gmail.com>
> wrote:
>
> > From: William Brent <william.brent(a)gmail.com>
> > Subject: Re: [PD] Pd Manual
> > To: "Jonathan Wilkes" <jancsika(a)yahoo.com>
> > Date: Tuesday, August 11, 2009, 8:58 AM
> > > "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.
> >
> > I see your point here, but the meaning seems clear.
> > From the
> > perspective we're given of the patch, we really don't
> know
> > which
> > connection was made first. So it's indeterminate as
> > presented.
> >
> > Then, I guess trigger isn't introduced in the _very_
> next
> > paragraph,
> > but it's there in the next section (2.3.3) after
> explaining
> > hot/cold
> > inlets as a related point. So it's still part of
> the
> > same line of
> > thought. A few more trigger examples wouldn't hurt
> > though...
Hi William,
I would say that the meaning is clear for those of us who have
patching habits in Pd. However, my main point is that the relevance
is not clear, especially for people reading about Pd for the first time.
I've heard and read at least five comments in the past year from people
who have taken a cursory glance at Pd and found it necessary to mention
they dislike the idea that "execution order is determined by the order in
which connections are made." I know these people are aware of the
[trigger] object, so my only explanation is that they think the order in
which connections are made is useful as a common patching practice.
Additionally, in section 2.3.3 it is stated that the second patch
example (which has two connections coming from the number atom) is
incorrect because the author made the leftmost connection first. Equally
important, and unstated, is that such an idiom is _never_ relied upon in
Pd. If you're reading the manual for the first time, how would you know
which of the following is true:
a) [trigger] is used to disambiguate execution order for the beginner,
and for situations in which execution order gets complex. But for simple
idioms, one can use connection order as a shortcut.
b) The patch example is not idiomatic Pd, but the one that uses [trigger]
is. [trigger] should _always_ be used for visual clarity whenever
execution order matters.
Here's my first attempt to clarify the relevance of the sentence I quoted in the first email (Section 2.3.2):
Whether "B" or "C" is done first depends on the order in which you made
the connections. This means you cannot determine the execution order
simply by looking at the two connections coming from "A." In practice,
Pd patches never rely upon the order in which connections were made to
specify execution order. In situations where execution order must be
specified, the [trigger] object is used (see section 2.3.3 below).
And in section 2.3.3:
Change:
Here, I connected the left inlet before connecting the right hand one
(although this is not evident in the appearance of the patch.)
To:
If I had connected the left inlet before connecting the right hand one,
the "+" would add the new input (at left) to the previous input (at
right). If I had connected the right inlet first, the patch would produce
the correct output, but the problem remains the same: the execution order
is not evident in the appearance of the patch.
-Jonathan