[PD] definitions of data types

Martin Peach martinrp at vax2.concordia.ca
Wed Feb 8 19:21:36 CET 2006

Hans-Christoph Steiner wrote:

> On Feb 7, 2006, at 7:32 PM, Frank Barknecht wrote:
>> Hallo,
>> Martin Peach hat gesagt: // Martin Peach wrote:
>>> OK I see, so then wouldn't it be a good idea to merge those two 
>>> types  of
>>> list into one? Just treat all messages as lists. Then there is no
>>> restriction on the first element.
>>> Then an external could have a single list method which would be called
>>> for any possible input, instead of the plethora of methods for each
>>> possible input symbol and type the way it is now; the external would
>>> parse its input and call all those functions itself instead of
>>> registering them all with pd and having pd call them. Probably the  
>>> time
>>> taken would be no different and the symbol table would be much  
>>> smaller.
>> Let me quote Matju on this (from a post he did on pd-dev replying to  
>> Hans,
>> when the term "undefined set" was still debated and finally 
>> abandoned  and
>> which I called "meta-messages".)
>>   Messages have selectors. Selectors are used to select methods.
>>   Suppose that the Pd of your dreams comes to existence, and that 
>> may  mean
>>   without any so-called "undefined sets". Every message would be a  
>> "list".
>>   Then how would you send a message like "set $1" or "color $1 $2" 
>> to  an
>>   object?  somehow the list method (which is then the only method in  
>> each
>>   class) would have to deal with all messages. Then a neat idea to  
>> break
>>   down the code in more manageable bits would be to select one of  
>> several C
>>   functions depending on the first element of the received list. 
>> This  first
>>   argument could be called a "selector". But now, what about a
>>   list-processing object that really needs to be able to receive a  
>> list in
>>   the same inlet as you would use to do "set" and "color" and such? To
>>   disambiguate this, let's prefix the lists intended for  
>> list-processing
>>   with a special selector that we might call "list".
>>   Thus messages would be called lists and former lists would be called
>>   something else like "really lists" but there might be better 
>> names.   And
>>   then again there would be things that are lists but not "really  
>> lists"
>>   and there appear again the "undefined sets" that aren't undefined nor
>>   sets.
>> Or in the words of Miller:
>>   It's not clear whether this was a good design choice, but it's
>>   entrenched.
>> I learned the word "entrenched" from that.
> It is entrenched so it probably won't change anytime soon.  But I do  
> think that Pd could work without "list" and "symbol" selectors.  Then  
> symbolic atoms would automatically be symbols and any series with 
> more  than one atom would automatically be a list.  You can then have  
> separate inlets to handle different situations, like the first inlet  
> handling config messages like [set 1 3( and the second inlet handling  
> lists that are meant as only data.
I guess separate having data and program buses like that would mean that 
pd had a 'leaky' Harvard architecture because there would be no way to 
ensure the connections were made to the correct inlet.
Another approach would be to have another kind of patch cord for control 
messages, like the signal cords on the dsp objects.


More information about the Pd-list mailing list