[PD] Finding "$0" and dealing with it in messages

Mathieu Bouchard matju at artengine.ca
Fri Nov 27 19:44:32 CET 2009


On Wed, 25 Nov 2009, Frank Barknecht wrote:

> Single objects unfortunatly often behave inconsistently or not as one 
> maybe would expect (e.g. [route list symbol] strips list- but not 
> symbol-selectors).

[route] is quite disappointing. I already made [route2] which doesn't 
modify any message, and I'm gonna make [route3] which outputs "list 
$1...$n" on any non-last outlet in a consistent manner (and without the 
weird quirks that happen when you try using [route] for that purpose).

To one who believes that abstractions and externals should have a Pd API 
that is as similar to each other, [route3] should be obvious: it would 
correspond more closely to class_addmethod.

> all_about_data_types.pd doesn't even use the word "selector" anywhere.

The pd 0.42 source code has the word "selector" once. This word was 
introduced there in 0.39. On pd-list, there have been occasional uses of 
the word 'selector' quite early. There's one early mention of 'selector' 
(by none other than Miller) as early as 1998, but that seems to be an 
outlier. After that you have to skip to 2001.

Some stats now. Number of occurrences of "selector" per year (including 
"file selector", and someone who said "selector" to mean "receiver", etc):

       num ratio
1998    1     3
1999    0     0
2000    2     3
2001   23    10
2002   28     5
2003   51     7
2004   70     8
2005   78     8
2006  455    39
2007  195    15
2008   74     8
2009  244    33

(where the ratio is 1000 times the number of occurrences divided by the 
total number of emails)

AFAIK, "selector" is vocabulary that comes from Smalltalk and its 
derivatives, or any "general OOP theory book" that considers Smalltalk to 
be a reference. This word is quite absent from the C++ vocabulary, for 
example. Even though I started using C++ in 1992, it took me until 1997 to 
read the word "selector" somewhere, probably a text on Objective-C.
Starting in 2000 or so, though, I was seeing "selector" everywhere as was 
the norm for the Ruby language. I used it routinely on pd-list.

> Instead it talks about "casting" but doesn't explain what that means (in 
> the patch it means adding a "symbol"-selector to a meta-message). It has 
> several vague sentences in it like: "Many objects cast the data they 
> receive when they output it" or "Some objects do not cast the data". 
> This doesn't make me any smarter.

trigger-help.pd is even funnier. It talks about "conversions" in which 
nearly every conversion results in all values of one type (0, 1, 2, 3, 
...) end up being "converted" to the same value of the other type (symbol 
float), thus destroying the entire contents of the message (except the 
existence thereof).

> All in all, I don't think, the patch tells you "All About Data Types".
> But maybe it just has a misleading name.

It's a marketing thing. It's like when you enter a "Steve's Music Store" 
and they tell you "if we don't have it, you don't need it".

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801


More information about the Pd-list mailing list