[PD] a general discussion about which software to learn: pd, max, both... or else?

Frank Barknecht fbar at footils.org
Tue Oct 16 13:09:17 CEST 2007

Chuckk Hubbard hat gesagt: // Chuckk Hubbard wrote:

> >From the point of view of the compiler, perhaps, but I think most
> programmers are very concerned with vertical arrangement, in the sense of
> how they think, no?  A .c file with line breaks removed looks like gibberish
> to a human, though it may compile fine.

Well, a novel also is hard to read it it would just have one loooooong
line on one page. But it would have the same meaning. In fact, I
think, in the old times "books" even were just one looooooooooong page.

But it's different, if spatial layout is tied to the meaning of a
text. Comic books are an example: Here spatial arrangement (like order
and size of panels) is an important tool to express different
meanings. In programming, a spreadsheet application would be an
example for a tool, where spatial arrangements may carry meaning.

The fact that even with inherently 1-dimensional languages humans tend
to organize the words neatly on the page by properly indenting logical
blocks etc. although technically it wouldn't matter, is a hint, that
thinking about algorithms,... may work better in two dimensions. 
Sutherland's thesis has some more things to say about this issue, IIRC.

Sutherland's main focus is discussing how to make a computer
understand spatial meaning, and some issues with that. In Pd the
actual spatial layout, as Matju wrote, is not important. What's
important are the connection cords. They define the meaning. But it
would be possible to just take distance as defining meaning. IIRC
Guenther Geiger developed a dataflow music language which gets rid of
patch cords and just uses distance and size of objects to convey
meaning. The reacTable uses a similar idea: Just bring two objects
close to each other, and they magically get connected. Pd here is in
the middle: Distance doesn't matter technically, but to the Pd
programmer managing spatial layout is as important as indenting is to
the 1-dim programmer as far as readability is concerned. 

(Personally I'm quite sensitive in this regard and for example I try
to avoid using abstractions, that *look* messy, have to many crossing
wires and are generally carelessly laid out. It's hard to read such
patches so it's more likely that they contain bugs. I won't point
fingers, as many of my older patches are like this as well [don't look
into originator.pd].)

> In either text-based or dataflow languages, actual program flow can vary,
> whatever the order of elements, so methinks there is always some kind of
> temporal and conditional thought going on.  If time is another dimension,
> then perhaps the debate is 2 vs. 3 dimensions?

Actually especially for music, (real) time is a very important
dimension, maybe the single most important one, and logical time is
important in every program. The generally right-to-left execution
order of in/outlets expresses a notion of logical time in patch space.
By putting objects, that act at the same time, next to each other, or
objects, that act after each other, in different rows/colums one
can express some time relationships manually as well.

 Frank Barknecht                                     _ ______footils.org__

More information about the Pd-list mailing list