--- On Sat, 4/11/09, Frank Barknecht fbar@footils.org wrote:
From: Frank Barknecht fbar@footils.org Subject: Re: [PD] Pd FLOSS Manual Update pt 1 To: pd-list@iem.at Date: Saturday, April 11, 2009, 8:49 PM Hallo, Derek Holzer hat gesagt: // Derek Holzer wrote:
as I've mentioned before, this obscure and arcane
business of many types
of messages is probably the most incomprehensible bit
for new users
coming to Pd. What I'd like to see in this chapter
is not just another
taxonomy of the different kind of messages Pd has.
Rather, I'd like to
see clear tutorials with real world examples of why
you would use
different messages for different purposes instead of
presenting a bunch
of abstract information right away.
I think the priority for the FLOSS Manual should be to
show *why* things
are used, rather than to be exhaustive about all the
different things
that *could* be used.
Meta-messages (I'll use this term now) have a very important "why": In Pd they are generally used to set the status of objects or make them do specific actions. Sending a "stop"-meta-message to [poly] will make it stop playing, sending a "set"-meta-message to a [makefilename] will change the format string, a "set" to a tabread sets the table to read from and so on.
The other messages - float, symbol or list - generally are data carrying messages. Floats to tabread will give the value of that index in the table, symbol to makefilename will apply the format string, lists to [poly] will be tagged with a number and output it. All of these change data and pass it along.
There's lots of potential for explaining the difference with examples taken from daily use.
The distinction between meta-messages and data messages becomes very important in message boxes, which are only doing the expected dollar expansion properly when the incoming message is a data message, and they react to meta messages like "set" in completely different ways.
"Messages in Pd are simewhat artificially divided into two classes. First are data-holding messages (bang, float, symbol, list) which are the primary way of communicating between objects. Second is "everything else" (you could call them out-of-band messages or metamessages) that describe changes in configuration, read and write files, quit Pd, etc. These are provided so that complex objects don't need to have 100 separate inlets for every possible functionality. It's not clear whether this was a good design choice, but it's entrenched."
That's a quote from list-help.pd
So if obscure details are skipped in the beginning
in favor of clarity, I would prefer that. Other, laterexamples can show
the more exotic types and uses of "meta
messages" "custom messages" etc,
or the distinctions between them when it becomes
important.
The distincion is important all the time. Even if it's explained in detail later, the terminology should not be different. That's why I recommended to not use "undefined strings" which is not a common term for the messages it refers to, especially as most of http://en.flossmanuals.net/bin/view/PureData/Messages deals with meta-messages and [route]. [route] almost always is used with either number lists or meta-messages, and only very rarely with data messages not starting with a float. (That's why my [route]s often come in tandem with [list trim].)
I agree that meta-messages should be called meta-messages, if they're called anything. But I don't see how to make the distinction clear without having a comprehensive table of relevant pd-vanilla objects and their behavior regarding meta-messages.
Why do the first inlets of pack and symbol accept [pitch( ? Why wouldn't the secondary inlets of pack and symbol accept [pitch( ? Why does the second inlet of [list] accept [pitch( but the first inlet of [makefilename %s] doesn't? How do message-box dollar signs handle meta-messages? How does [list length] handle them? Do you need [list trim] to route a float list by the first value?
-Jonathan
Ciao
Frank
Pd-list@iem.at mailing list UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list