[PD] Understanding Selectors, Atoms, Lists ...

Sciss contact at sciss.de
Wed Apr 19 12:02:55 CEST 2006


hi,

this may be related to a thread last week about the nature lists ?

as a experienced max-user i'm having problems to understand the  
nature of PD atoms. there seems to be the possibility that an atom is  
neither a symbol, nor a number nor a list ? like in this patch some  
inputs leave [route] through the rightmost outlet:

#N canvas 316 159 576 396 10;
#X msg 30 55 3.14159;
#X obj 67 149 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 117 149 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 66 123 route float list symbol;
#X obj 169 149 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X obj 221 149 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X msg 122 55 alpha;
#X msg 215 55 alpha beta;
#X text 213 35 NOT a list??;
#X text 97 35 NOT a symbol??;
#X text 41 198 Philosophical question : if an atom is not a symbol
\, nor a number \, nor a list \, what kind of primitive atom class
is it instead?;
#X msg 310 56 symbol alpha;
#X msg 412 57 symbol alpha beta;
#X msg 354 127 list alpha;
#X msg 430 90 list alpha beta;
#X text 351 161 it's routed as a "symbol"!;
#X text 66 164 f;
#X text 117 166 l;
#X text 169 166 s;
#X text 221 168 other;
#X text 349 146 this is completely weird \,;
#X msg 132 304 list alpha beta;
#X obj 255 365 print A;
#X obj 321 365 print B;
#X msg 255 305 list alpha;
#X msg 338 304 alpha beta;
#X obj 256 341 zl slice 1;
#X text 339 284 allowed ...;
#X connect 0 0 3 0;
#X connect 3 0 1 0;
#X connect 3 1 2 0;
#X connect 3 2 4 0;
#X connect 3 3 5 0;
#X connect 6 0 3 0;
#X connect 7 0 3 0;
#X connect 11 0 3 0;
#X connect 12 0 3 0;
#X connect 13 0 3 0;
#X connect 14 0 3 0;
#X connect 21 0 26 0;
#X connect 24 0 26 0;
#X connect 25 0 26 0;
#X connect 26 0 22 0;
#X connect 26 1 23 0;

what i find particularly confusing is that [list alpha( comes out of  
the symbol outlet ...

then the nature of lists. here i compare the same functionality in pd  
and max. first max:

max v2;
#N vpatcher 361 44 787 395;
#P window setfont "Sans Serif" 9.;
#P comment 89 223 29 196617 here;
#P button 70 222 15 0;
#P button 29 222 15 0;
#P newex 29 192 51 196617 route list;
#P comment 292 159 58 196617 "test test";
#P button 227 221 15 0;
#P button 186 221 15 0;
#P newex 186 191 51 196617 route list;
#P newex 226 156 59 196617 print SLICE;
#P newex 186 129 50 196617 zl slice 0;
#P newex 67 136 59 196617 print PACK;
#P newex 67 98 45 196617 pack s s;
#P button 39 54 15 0;
#P message 102 54 26 196617 test;
#P message 67 54 26 196617 test;
#P comment 69 158 58 196617 "test test";
#P comment 244 222 29 196617 here;
#P comment 68 35 54 196617 both work;
#P fasten 6 0 14 0 72 122 34 122;
#P connect 14 0 15 0;
#P connect 3 0 6 0;
#P fasten 5 0 6 0 44 83 72 83;
#P connect 6 0 7 0;
#P connect 14 1 16 0;
#P connect 4 0 6 1;
#P fasten 6 0 8 0 72 122 191 122;
#P fasten 8 1 10 0 231 150 191 150;
#P connect 10 0 11 0;
#P connect 8 1 9 0;
#P connect 10 1 12 0;
#P pop;

... then the same in pd:

#N canvas 253 241 513 444 10;
#X obj 82 133 pack s s;
#X msg 175 57 test;
#X msg 83 57 test;
#X text 83 39 this works;
#X text 175 38 this complains;
#X msg 175 103 symbol test;
#X text 176 86 this works;
#X obj 49 101 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1;
#X obj 147 161 zl slice 0;
#X obj 83 194 print PACK;
#X text 59 214 "list test test";
#X text 210 212 "test test" (so "list" is "lost"?);
#X obj 7 281 route list;
#X obj 8 309 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1;
#X obj 77 311 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1;
#X obj 24 340 print ROUTE;
#X obj 157 261 route list;
#X obj 158 289 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1;
#X obj 222 290 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1;
#X text 21 361 "list" removed again;
#X obj 213 193 print SLICE;
#X text 242 289 here;
#X connect 0 0 8 0;
#X connect 0 0 9 0;
#X connect 0 0 12 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 5 0 0 1;
#X connect 7 0 0 0;
#X connect 8 1 16 0;
#X connect 8 1 20 0;
#X connect 12 0 13 0;
#X connect 12 0 15 0;
#X connect 12 1 14 0;
#X connect 16 0 17 0;
#X connect 16 1 18 0;

there seems to be no logic whether one has can use a message "as  
such" and when one has to prepend the "symbol" selector. also there  
seems to be no logic whether an object outputs a list "as such" or  
with a prepended "list" selector ; like [pack] accepts a symbol  
without "symbol" in the left inlet, but not in the right inlet ; it  
will output a list prepended by "list" ; if i put this list into  
[zl], the list-prefix is stripped.

also, what kind of atom is this [alpha beta gamma( if not a list?

thanks for help. best, -sciss-





More information about the Pd-list mailing list