Update of /cvsroot/pure-data/abstractions/footils/list-abs
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17078/list-abs
Added Files:
OSCprepend-help.pd OSCprepend.pd README last-x-help.pd
last-x.pd list-accum-help.pd list-accum.pd list-demux.pd
list-drip-help.pd list-drip.pd list-drip2.pd
list-dripslow-help.pd list-dripslow.pd list-inter-example.pd
list-inter-gem-example.pd list-inter-help.pd list-inter.pd
list-len-help.pd list-len.pd list-makefilename-help.pd
list-makefilename.pd list-math-help.pd list-math.pd
list-minmax-help.pd list-minmax.pd list-rev-help.pd
list-rev.pd list-rot-help.pd list-rot.pd sroute-help.pd
sroute.pd take-two-help.pd take-two.pd triple-scale-help.pd
triple-scale.pd
Log Message:
Initial import of list-abs, abstractions using pd-0.39's new [list] object
family to do common list operations. See the README for details.
--- NEW FILE: list-minmax.pd ---
#N canvas 499 299 571 374 10;
#X obj 128 37 list-drip;
#X obj 128 60 route float;
#X obj 128 204 f;
#X obj 112 284 outlet;
#X obj 171 259 f;
#X obj 171 286 outlet;
#X obj 40 198 t b b;
#X obj 128 13 inlet;
#X obj 112 256 f;
#N canvas 0 0 450 300 once 0;
#X obj 110 75 inlet;
#X obj 105 187 spigot 1;
#X obj 110 104 t b f;
#X msg 125 151 0;
#X msg 165 99 1;
#X obj 165 63 inlet;
#X obj 102 219 outlet;
#X connect 0 0 2 0;
#X connect 1 0 6 0;
#X connect 2 0 3 0;
#X connect 2 1 1 0;
#X connect 3 0 1 1;
#X connect 4 0 1 1;
#X connect 5 0 4 0;
#X restore 218 112 pd once;
#X obj 128 90 t f f f;
#X obj 218 59 s \$0-end;
#X obj 262 87 r \$0-end;
#X obj 40 174 r \$0-end;
#X obj 128 146 <=;
#X obj 128 168 select 1;
#X obj 244 205 f;
#X obj 244 169 select 1;
#X obj 244 147 >=;
#X connect 0 0 1 0;
#X connect 0 1 11 0;
#X connect 1 0 10 0;
#X connect 2 0 8 1;
#X connect 2 0 14 1;
#X connect 4 0 5 0;
#X connect 6 0 8 0;
#X connect 6 1 4 0;
#X connect 7 0 0 0;
#X connect 8 0 3 0;
#X connect 9 0 14 1;
#X connect 9 0 18 1;
#X connect 10 0 14 0;
#X connect 10 0 18 0;
#X connect 10 1 16 1;
#X connect 10 1 2 1;
#X connect 10 2 9 0;
#X connect 12 0 9 1;
#X connect 13 0 6 0;
#X connect 14 0 15 0;
#X connect 15 0 2 0;
#X connect 16 0 4 1;
#X connect 16 0 18 1;
#X connect 17 0 16 0;
#X connect 18 0 17 0;
--- NEW FILE: list-rot.pd ---
#N canvas 489 301 701 467 10;
#X obj 322 283 list split 1;
#X obj 322 324 list prepend;
#X obj 367 216 until;
#X text 416 325 move first element to back;
#X obj 322 251 list;
#X obj 267 277 t l;
#X obj 323 170 f \$1;
#X obj 323 194 moses 1;
#X obj 302 54 inlet;
#X obj 406 83 inlet;
#X text 457 83 how often to rotate;
#X obj 221 268 list;
#X obj 221 231 b;
#X text 74 191 pass unchanged \, if rot# < 1;
#X floatatom 397 140 5 0 0 0 - - -;
#X obj 302 80 t b b l;
#X obj 299 388 list;
#X obj 238 116 s \$0-out;
#X obj 211 351 r \$0-out;
#X text 349 53 list to rotate;
#X msg 135 37 0 1 2 3 4 5 6 7;
#X obj 299 418 outlet;
#X connect 0 0 1 0;
#X connect 0 1 1 1;
#X connect 1 0 5 0;
#X connect 1 0 16 1;
#X connect 2 0 4 0;
#X connect 4 0 0 0;
#X connect 5 0 4 1;
#X connect 6 0 7 0;
#X connect 7 0 12 0;
#X connect 7 1 2 0;
#X connect 8 0 15 0;
#X connect 9 0 6 1;
#X connect 11 0 16 1;
#X connect 12 0 11 0;
#X connect 14 0 6 1;
#X connect 15 0 17 0;
#X connect 15 1 6 0;
#X connect 15 2 4 1;
#X connect 15 2 11 1;
#X connect 16 0 21 0;
#X connect 18 0 16 0;
#X connect 20 0 15 0;
--- NEW FILE: list-inter.pd ---
#N canvas 364 37 760 649 10;
#X obj 345 204 list-drip;
#X obj 426 327 list-dripslow;
#X obj 345 264 t a b;
#X obj 439 434 t l;
#X obj 322 477 list;
#X obj 322 502 outlet;
#X obj 345 176 list;
#X obj 368 145 inlet;
#X obj 535 282 inlet;
#X obj 345 64 inlet;
#X obj 345 434 list prepend;
#X obj 345 369 expr $f3*($f2-$f1) + $f1;
#X text 23 67 inlets:;
#X text 37 85 1) float 0-1: distance between lists;
#X text 39 106 2) list 1;
#X text 39 125 2) list 2;
#X text 20 25 list-inter: elementwise linear interpolation between
two (float) lists.;
#X obj 345 93 t b f b;
#X obj 512 303 list;
#X obj 512 259 r \$0-start;
#X obj 389 117 s \$0-start;
#X obj 424 411 r \$0-start;
#X obj 345 226 route float;
#X text 14 197 Non-float elements in first list will be kept.;
#X connect 0 0 22 0;
#X connect 0 1 4 0;
#X connect 1 0 11 1;
#X connect 2 0 11 0;
#X connect 2 1 1 0;
#X connect 3 0 10 1;
#X connect 4 0 5 0;
#X connect 6 0 0 0;
#X connect 7 0 6 1;
#X connect 8 0 18 1;
#X connect 9 0 17 0;
#X connect 10 0 3 0;
#X connect 10 0 4 1;
#X connect 11 0 10 0;
#X connect 17 0 6 0;
#X connect 17 1 11 2;
#X connect 17 2 20 0;
#X connect 18 0 1 1;
#X connect 19 0 18 0;
#X connect 21 0 10 1;
#X connect 22 0 2 0;
#X connect 22 1 10 0;
--- NEW FILE: sroute.pd ---
#N canvas 0 0 450 300 10;
#X obj 148 99 inlet;
#X obj 90 54 list split 1;
#X obj 90 31 inlet;
#X obj 90 188 outlet;
#X obj 90 124 select \$1;
#X obj 90 154 list;
#X obj 148 188 outlet;
#X obj 148 156 list;
#X connect 0 0 4 1;
#X connect 1 0 4 0;
#X connect 1 1 5 1;
#X connect 1 1 7 1;
#X connect 2 0 1 0;
#X connect 4 0 5 0;
#X connect 4 1 7 0;
#X connect 5 0 3 0;
#X connect 7 0 6 0;
--- NEW FILE: list-inter-example.pd ---
#N canvas 331 120 783 579 10;
#X obj 118 233 list-inter;
#X obj 118 166 list split 1;
#X obj 201 234 t l;
#X obj 118 193 expr 1-$f1;
#X obj 461 377 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 9377 1;
#X obj 118 303 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 6198 1;
#X obj 157 303 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 3953 1;
#X obj 197 303 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 4387 1;
#X floatatom 118 277 5 0 0 0 - - -;
#X floatatom 157 277 5 0 0 0 - - -;
#X floatatom 197 277 5 0 0 0 - - -;
#X obj 118 255 unpack 0 0 0;
#X obj 461 400 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 2363 1;
#X obj 461 423 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 960 1;
#X obj 447 143 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 12700 1;
#X obj 447 166 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 3200 1;
#X obj 447 189 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 1300 1;
#X msg 459 107 1;
#X msg 118 136 \$1 5 2 3 \, \$2 4 5 6 \, \$3 6 7 1;
#N canvas 0 0 753 456 normalize 0;
#X obj 369 105 pack 0 0 0;
#X obj 332 175 list-math /;
#X obj 438 76 t b f;
#X obj 391 78 t b f;
#X obj 403 154 list-accum;
#X obj 361 135 t a a;
#X obj 330 202 unpack 0 0 0;
#X msg 305 259 set \$1;
#X msg 365 260 set \$1;
#X msg 437 269 set \$1;
#X obj 360 47 inlet;
#X obj 403 48 inlet;
#X obj 450 49 inlet;
#X obj 328 327 outlet;
#X obj 380 328 outlet;
#X obj 438 324 outlet;
#X obj 190 246 outlet;
#X connect 0 0 5 0;
#X connect 1 0 6 0;
#X connect 1 0 16 0;
#X connect 2 0 0 0;
#X connect 2 1 0 2;
#X connect 3 0 0 0;
#X connect 3 1 0 1;
#X connect 4 0 1 1;
#X connect 5 0 1 0;
#X connect 5 1 4 0;
#X connect 6 0 7 0;
#X connect 6 1 8 0;
#X connect 6 2 9 0;
#X connect 7 0 13 0;
#X connect 8 0 14 0;
#X connect 9 0 15 0;
#X connect 10 0 0 0;
#X connect 11 0 3 0;
#X connect 12 0 2 0;
#X restore 342 339 pd normalize;
#X obj 342 369 s \$0-list;
#X obj 118 107 r \$0-list;
#X connect 0 0 11 0;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 1 1 0 1;
#X connect 2 0 0 2;
#X connect 3 0 0 0;
#X connect 8 0 5 0;
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 11 0 8 0;
#X connect 11 1 9 0;
#X connect 11 2 10 0;
#X connect 14 0 19 0;
#X connect 15 0 19 1;
#X connect 16 0 19 2;
#X connect 17 0 14 0;
#X connect 18 0 1 0;
#X connect 19 0 20 0;
#X connect 19 1 4 0;
#X connect 19 2 12 0;
#X connect 19 3 13 0;
#X connect 21 0 18 0;
--- NEW FILE: list-len-help.pd ---
#N canvas 460 246 450 300 10;
#X obj 123 162 list-len;
#X msg 160 132 1 2 3 4 5 6;
#X obj 123 232 print Length;
#X floatatom 141 197 5 0 0 0 - - -;
#X msg 123 77 bang;
#X text 47 20 list-len: calculate length of a list.;
#X msg 136 101 1;
#X text 182 74 empty list;
#X text 218 102 convert atom to 1-elem list;
#X text 262 133 "real" lists;
#X msg 167 101 dog;
#X connect 0 0 2 0;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 4 0 0 0;
#X connect 6 0 0 0;
#X connect 10 0 0 0;
--- NEW FILE: list-inter-help.pd ---
#N canvas 256 50 764 621 10;
#X text 101 83 inlets:;
#X text 115 101 1) float 0-1: distance between lists;
#X text 117 122 2) list 1;
#X text 117 141 2) list 2;
#X text 95 30 list-inter: elementwise linear interpolation between
two (float) lists.;
#X obj 228 153 hsl 128 15 0 1 0 0 empty empty factor_(0-1) -2 -6 0
10 -262144 -1 -1 10400 0;
#X obj 225 359 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 9470 1;
#X obj 264 359 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 7740 1;
#X obj 304 359 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 3110 1;
#X floatatom 225 333 5 0 0 0 - - -;
#X floatatom 264 333 5 0 0 0 - - -;
#X floatatom 304 333 5 0 0 0 - - -;
#X obj 225 282 list-inter;
#X text 87 519 Also see [triple-scale] \, but [list-inter] works for
float lists of arbitrary length.;
#X obj 225 311 unpack 0 0 0 0;
#X obj 343 360 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 11090 1;
#X floatatom 343 334 5 0 0 0 - - -;
#X obj 164 307 print;
#X text 96 63 Non-float elements in first list will be kept.;
#X msg 257 181 5 2 9 3;
#X msg 267 207 5 x 9 3;
#X text 326 207 careful!;
#X msg 290 255 8 7 1 10;
#X connect 5 0 12 0;
#X connect 9 0 6 0;
#X connect 10 0 7 0;
#X connect 11 0 8 0;
#X connect 12 0 14 0;
#X connect 12 0 17 0;
#X connect 14 0 9 0;
#X connect 14 1 10 0;
#X connect 14 2 11 0;
#X connect 14 3 16 0;
#X connect 16 0 15 0;
#X connect 19 0 12 1;
#X connect 20 0 12 1;
#X connect 22 0 12 2;
--- NEW FILE: triple-scale-help.pd ---
#N canvas 358 179 532 458 10;
#X obj 112 74 hsl 128 15 0 1 0 0 empty empty factor_(0-1) -2 -6 0 10
-262144 -1 -1 4800 0;
#X obj 109 187 triple-scale;
#X text 61 29 interpolate linearily between two points (x \, y \, z)
;
#X obj 109 216 unpack 0 0 0;
#X obj 109 264 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 7790 1;
#X obj 148 264 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 1750 1;
#X obj 188 264 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 7590 1;
#X floatatom 109 238 5 0 0 0 - - -;
#X floatatom 148 238 5 0 0 0 - - -;
#X floatatom 188 238 5 0 0 0 - - -;
#X msg 148 132 5 1 9;
#X msg 188 160 8 2 1;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 3 0 7 0;
#X connect 3 1 8 0;
#X connect 3 2 9 0;
#X connect 7 0 4 0;
#X connect 8 0 5 0;
#X connect 9 0 6 0;
#X connect 10 0 1 1;
#X connect 11 0 1 2;
--- NEW FILE: list-accum.pd ---
#N canvas 0 0 450 300 10;
#X obj 212 193 f 0;
#X obj 182 192 + 1;
#X obj 182 114 list-drip;
#X obj 212 168 0;
#X obj 182 53 inlet;
#X obj 182 81 t a b;
#X obj 182 140 route float;
#X obj 166 245 outlet;
#X obj 166 220 f;
#X text 116 23 list-accum: add all floats in a list;
#X connect 0 0 1 1;
#X connect 1 0 0 0;
#X connect 1 0 8 1;
#X connect 2 0 6 0;
#X connect 2 1 8 0;
#X connect 3 0 0 0;
#X connect 4 0 5 0;
#X connect 5 0 2 0;
#X connect 5 1 3 0;
#X connect 6 0 1 0;
#X connect 8 0 7 0;
--- NEW FILE: OSCprepend-help.pd ---
#N canvas 417 189 565 469 10;
#X msg 121 238 /a 1 c 3;
#X obj 121 350 print OSC;
#X text 52 262 ignored:;
#X text 72 238 okay:;
#X obj 121 323 OSCprepend /synth/ha;
#X msg 256 231 /osc;
#X text 304 230 change OSC-messages;
#X msg 256 257 /freq/1;
#X obj 104 31 cnv 15 220 30 empty empty OSCprepend 20 12 0 14 -233017
-66577 0;
#X text 98 76 "Prepends" first argument to an OSC message list.;
#X text 106 140 Right inlet lets you change the prepended argument
;
#X msg 121 262 900 2 3 4 a b c;
#X text 104 103 Example: with ARG_1 being "/synth" the message "/set
x 1 2" will become "/synth/set x 1 2".;
#X text 107 166 Lists not starting with a symbol are filtered out.
;
#X msg 325 285 1;
#X text 359 287 oops...;
#X symbolatom 324 260 10 0 0 1 type-here - -;
#X connect 0 0 4 0;
#X connect 4 0 1 0;
#X connect 5 0 4 1;
#X connect 7 0 4 1;
#X connect 11 0 4 0;
#X connect 14 0 4 1;
#X connect 16 0 4 1;
--- NEW FILE: list-math.pd ---
#N canvas 424 89 624 640 10;
#X msg 119 113 1 2 3 4 a b c;
#X text 251 117 <- click to test;
#X obj 196 386 list;
#X obj 77 499 list;
#X obj 100 271 route float;
#X obj 100 385 list prepend;
#X floatatom 248 273 5 0 0 0 - - -;
#N canvas 0 0 533 407 drip 0;
#X obj 64 206 list split 1;
#X obj 64 123 until;
#X obj 64 181 list append;
#X obj 194 206 bang;
#X text 146 90 First store list \, then start the loop;
#X text 163 118 "until" bangs its output until told to stop by a "bang"
to its right inlet.;
#X text 182 160 Store the remaining list.;
#X text 239 205 third outlet of "split" tells us to stop.;
#X obj 64 243 outlet;
#X obj 64 57 inlet;
#X obj 64 86 t b l;
#X text 237 44 From list-help.pd;
#X connect 0 0 8 0;
#X connect 0 1 2 1;
#X connect 0 2 3 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 1 1;
#X connect 9 0 10 0;
#X connect 10 0 1 0;
#X connect 10 1 2 1;
#X restore 100 242 pd drip;
#X obj 78 150 t b a b;
#X text 254 314 Do math only on float elements;
#X obj 122 178 s \$0-reset-result;
#X obj 179 357 r \$0-reset-result;
#X text 260 177 clear result list;
#X text 175 242 "Drip" (serialize) the list;
#X text 258 389 Repack the list (think of the counter);
#X text 124 496 Final result is built here;
#X obj 78 81 inlet;
#X obj 100 307 expr $f1 \$1 $f2;
#X obj 200 273 inlet;
#X obj 77 530 outlet;
#X text 182 32 Use as "list-math operator" where operator is some binary
operator \, expr can understand.;
#X connect 0 0 8 0;
#X connect 2 0 5 1;
#X connect 3 0 19 0;
#X connect 4 0 17 0;
#X connect 4 1 5 0;
#X connect 5 0 2 0;
#X connect 5 0 3 1;
#X connect 6 0 17 1;
#X connect 7 0 4 0;
#X connect 8 0 3 0;
#X connect 8 1 7 0;
#X connect 8 2 10 0;
#X connect 11 0 5 1;
#X connect 16 0 8 0;
#X connect 17 0 5 0;
#X connect 18 0 17 1;
--- NEW FILE: list-demux.pd ---
#N canvas 0 0 450 300 10;
#X obj 131 118 list prepend 0;
#X obj 224 95 hradio 15 1 0 4 empty empty empty 0 -6 0 8 -262144 -1
-1 3;
#X obj 131 146 route 0 1 2 3;
#X obj 131 251 print d1;
#X obj 195 177 print d4;
#X obj 174 202 print d3;
#X obj 152 224 print d2;
#X floatatom 131 81 5 0 0 0 - - -;
#X text 111 39 "demux" with lists;
#X connect 0 0 2 0;
#X connect 1 0 0 1;
#X connect 2 0 3 0;
#X connect 2 1 6 0;
#X connect 2 2 5 0;
#X connect 2 3 4 0;
#X connect 7 0 0 0;
--- NEW FILE: README ---
list-abs
--------
These are abstractions implementing common list operations. Included are in
alphabetical order:
last-x.pd
get a list containing the last x atoms received.
list-accum.pd
sum all floats in a list.
list-demux.pd
route lists to different outlets (like demux in zexy). Not an abstraction,
just a patch illustrating the idiom.
list-drip.pd
serialize a list automatically (like drip in zexy).
list-drip2.pd
serialize two lists in sync as long as first list lasts.
list-dripslow.pd
serialize a list on demand: each bang will output the next element.
list-inter.pd
element-wise linear interpolation between two (float) lists.
list-inter-example-gem.pd shows a more complicated usage example, but
requires gem for visualisation.
list-len.pd
calculate length of a list.
list-makefilename.pd
apply [makefilename] on list elements, if they are symbols.
list-math.pd
apply [expr OP] with OP in (+,-,*,/) on list elements, if they are floats.
list-minmax.pd
find minimum and maximum float in a list.
list-rev.pd
reverse a list.
list-rot.pd
rotate a list (move X elements from front to back)
sroute.pd
a settable [route] object for a single selector.
take-two.pd
take a list as input and print all combinations of length two without repetition.
triple-scale.pd
this actually is not using [list]: Interpolate between two (x,y,z)-points.
Also see [list-inter], which is more powerful.
--- NEW FILE: sroute-help.pd ---
#N canvas 0 0 658 332 10;
#X obj 127 156 sroute 1;
#X obj 178 124 hradio 15 1 0 3 empty empty empty 0 -6 0 8 -262144 -1
-1 0;
#X msg 127 72 1 1 1;
#X msg 78 72 0 0 0;
#X msg 176 72 2 2 2;
#X text 84 29 sroute: settable route;
#X obj 444 126 hradio 15 1 0 3 empty empty bad 0 -6 0 8 -262144 -1
-1 0;
#X symbolatom 414 96 10 0 0 2 good - -;
#X obj 127 235 print SR1;
#X obj 335 235 print SR2;
#X msg 351 99 b b b;
#X msg 335 72 a a a;
#X text 401 61 type "a" or "b";
#X obj 335 156 sroute a;
#X obj 178 207 print SR1-miss;
#X obj 386 203 print SR2-miss;
#X connect 0 0 8 0;
#X connect 0 1 14 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 6 0 13 1;
#X connect 7 0 13 1;
#X connect 10 0 13 0;
#X connect 11 0 13 0;
#X connect 13 0 9 0;
#X connect 13 1 15 0;
--- NEW FILE: list-len.pd ---
#N canvas 0 0 534 321 10;
#X obj 126 70 inlet;
#X obj 82 144 list-drip;
#X obj 161 209 + 1;
#X obj 82 172 b;
#X obj 116 249 f;
#X obj 116 276 outlet;
#X obj 148 183 1;
#X obj 132 211 f 1;
#X obj 206 213 0;
#X obj 126 104 t a b b;
#X text 37 37 list-len: calculate length of a list.;
#X connect 0 0 9 0;
#X connect 1 0 3 0;
#X connect 1 1 4 0;
#X connect 2 0 7 1;
#X connect 3 0 7 0;
#X connect 4 0 5 0;
#X connect 6 0 7 1;
#X connect 7 0 2 0;
#X connect 7 0 4 1;
#X connect 8 0 4 1;
#X connect 9 0 1 0;
#X connect 9 1 6 0;
#X connect 9 2 8 0;
--- NEW FILE: list-makefilename-help.pd ---
#N canvas 510 222 590 494 10;
#X obj 83 371 print M;
#X obj 83 334 list-makefilename %s-blabla;
#X obj 82 33 cnv 15 220 30 empty empty list-makefilename 20 12 0 14
-233017 -66577 0;
#X msg 267 220 xyz-%s-abc;
#X msg 267 200 /help/%s;
#X text 80 76 Change symbols in a list \, pass floats unchanged.;
#X msg 83 200 1 2 3 4 SYMBOL;
#X msg 83 222 list FREQ 440 AMP 1;
#X msg 267 287 const;
#X msg 314 286 You-probably-%don't-want-this;
#X text 301 250 pass unchanged;
#X msg 267 249 %s;
#X text 78 111 Use as "list-makefilename makefilename-arg". Right inlet
can be used to change the arg to makefilename. Please only use symbol
placeholders (== "%s");
#X connect 1 0 0 0;
#X connect 3 0 1 1;
#X connect 4 0 1 1;
#X connect 6 0 1 0;
#X connect 7 0 1 0;
#X connect 8 0 1 1;
#X connect 9 0 1 1;
#X connect 11 0 1 1;
--- NEW FILE: take-two.pd ---
#N canvas 444 190 497 465 10;
#X obj 206 267 list split 1;
#X obj 206 330 list;
#X obj 206 389 list;
#X obj 206 300 t b a;
#X obj 206 233 list;
#X obj 206 200 until;
#X obj 256 174 b;
#X obj 206 85 inlet;
#X obj 206 415 outlet;
#N canvas 0 0 533 407 drip 0;
#X obj 64 206 list split 1;
#X obj 64 123 until;
#X obj 64 181 list append;
#X obj 194 206 bang;
#X text 146 90 First store list \, then start the loop;
#X text 163 118 "until" bangs its output until told to stop by a "bang"
to its right inlet.;
#X text 182 160 Store the remaining list.;
#X text 239 205 third outlet of "split" tells us to stop.;
#X obj 64 243 outlet;
#X obj 64 57 inlet;
#X text 237 44 From list-help.pd;
#X obj 143 243 outlet;
#X obj 64 86 t b a;
#X connect 0 0 8 0;
#X connect 0 1 2 1;
#X connect 0 2 3 0;
#X connect 0 2 11 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 1 1;
#X connect 9 0 12 0;
#X connect 12 0 1 0;
#X connect 12 1 2 1;
#X restore 206 355 pd drip;
#X obj 206 152 t b a;
#X connect 0 0 3 0;
#X connect 0 1 1 1;
#X connect 0 1 4 1;
#X connect 0 2 6 0;
#X connect 1 0 9 0;
#X connect 2 0 8 0;
#X connect 3 0 1 0;
#X connect 3 1 2 1;
#X connect 4 0 0 0;
#X connect 5 0 4 0;
#X connect 6 0 5 1;
#X connect 7 0 10 0;
#X connect 9 0 2 0;
#X connect 10 0 5 0;
#X connect 10 1 4 1;
--- NEW FILE: list-rev-help.pd ---
#N canvas 449 421 464 309 10;
#X msg 156 76 1 2 3 4;
#X obj 184 109 print Original;
#X obj 156 199 list-rev;
#X obj 184 164 print Reversed;
#X obj 183 230 print Rev_again;
#X text 127 35 list-rev: reverse a list's order.;
#X obj 156 131 list-rev;
#X connect 0 0 1 0;
#X connect 0 0 6 0;
#X connect 2 0 4 0;
#X connect 6 0 2 0;
#X connect 6 0 3 0;
--- NEW FILE: list-drip-help.pd ---
#N canvas 353 34 661 705 10;
#X obj 70 93 list-drip;
#X msg 70 66 1 2 3 a b c;
#X obj 70 124 print;
#X obj 151 120 bng 15 250 50 0 empty empty end 0 -6 0 8 -262144 -1
-1;
#X msg 297 70 1 2 3 a b c;
#X obj 382 129 bng 15 250 50 0 empty empty end 0 -6 0 8 -262144 -1
-1;
#X obj 297 178 print first;
#X obj 329 154 print second;
#X obj 212 390 bng 15 250 50 0 empty empty end 0 -6 0 8 -262144 -1
-1;
#X text 71 217 Use list-drip2 to combine two lists into one \, for
example by addition:;
#X obj 219 550 list;
#X obj 123 549 list prepend;
#X obj 42 584 list;
#X obj 42 612 print RESULT;
#X obj 123 289 t b b;
#X msg 123 269 bang;
#X obj 123 346 t l b;
#X text 190 302 Add these lists by element. Be careful with their lengths
;
#X text 70 18 list-drip: drips or serializes a list \, that is \, it
sends all elements one after another.;
#X text 434 105 Drip two lists in sync.;
#X text 285 429 filter out floats;
#X obj 42 552 r \$0-end;
#X obj 212 409 s \$0-end;
#X text 200 508 reset first;
#X obj 123 478 +;
#N canvas 383 75 709 522 add-lots-of-lists 0;
#X obj 273 211 bng 15 250 50 0 empty empty end 0 -6 0 8 -262144 -1
-1;
#X obj 184 167 t l b;
#X text 138 51 Add many lists by routing the result back to the second
inlet of list-drip2;
#X obj 154 142 t b a;
#X obj 103 433 print CURRENT-RESULT;
#X msg 68 145 bang;
#X text 65 125 Reset;
#X msg 232 103 0.1 0.2 0.3 0.4;
#X msg 354 103 0.01 0.02 0.03 0.04;
#X obj 184 370 list prepend;
#X obj 280 371 list;
#X obj 103 405 list;
#X obj 184 299 +;
#X msg 154 105 1 3 4 7;
#X msg 84 219 0;
#X obj 88 176 t b b b;
#N canvas 347 135 671 625 weighted 0;
#X obj 435 225 list split 1;
#X text 59 90 weighted sum of lists;
#X obj 435 294 list-math *;
#X obj 435 270 list;
#X obj 435 248 t b f;
#X msg 361 184 \$1 0 0 1;
#X msg 435 184 \$1 0 1 0;
#X obj 380 83 hsl 64 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 3300 1;
#X obj 454 83 hsl 64 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 2700 1;
#X obj 530 83 hsl 64 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 0 1;
#X obj 353 486 list;
#X obj 361 149 f;
#X obj 435 151 f;
#X obj 511 153 f;
#N canvas 0 0 516 490 list-accum 0;
#X obj 319 215 bng 15 250 50 0 empty empty end 0 -6 0 8 -262144 -1
-1;
#X obj 230 171 t l b;
#X obj 200 146 t b a;
#X msg 399 128 bang;
#X text 396 108 Reset;
#X obj 230 374 list prepend;
#X obj 326 375 list;
#X obj 149 409 list;
#X obj 230 303 +;
#X msg 375 214 0;
#X obj 379 171 t b b b;
#X obj 149 437 outlet;
#X obj 199 104 inlet;
#X obj 343 106 inlet;
#X obj 230 213 list-drip2;
#X connect 1 0 14 0;
#X connect 1 1 5 1;
#X connect 2 0 7 0;
#X connect 2 1 1 0;
#X connect 3 0 10 0;
#X connect 5 0 6 0;
#X connect 5 0 7 1;
#X connect 6 0 5 1;
#X connect 7 0 11 0;
#X connect 7 0 14 1;
#X connect 8 0 5 0;
#X connect 9 0 8 1;
#X connect 10 0 9 0;
#X connect 10 1 14 0;
#X connect 10 2 14 1;
#X connect 12 0 2 0;
#X connect 13 0 10 0;
#X connect 14 0 8 0;
#X connect 14 1 8 1;
#X connect 14 2 0 0;
#X restore 376 444 pd list-accum;
#X obj 354 509 print W_SUM;
#X msg 266 81 bang;
#X obj 269 104 t b b b;
#X msg 511 183 \$1 1 1 0;
#X obj 376 38 hsl 64 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
-1 -1 2600 1;
#X obj 375 59 t b f;
#X connect 0 0 4 0;
#X connect 0 1 3 1;
#X connect 2 0 14 0;
#X connect 3 0 2 0;
#X connect 4 0 3 0;
#X connect 4 1 2 1;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 11 1;
#X connect 8 0 12 1;
#X connect 9 0 13 1;
#X connect 10 0 15 0;
#X connect 11 0 5 0;
#X connect 12 0 6 0;
#X connect 13 0 18 0;
#X connect 14 0 10 1;
#X connect 16 0 17 0;
#X connect 17 0 10 0;
#X connect 17 1 11 0;
#X connect 17 1 12 0;
#X connect 17 1 13 0;
#X connect 17 2 14 1;
#X connect 18 0 0 0;
#X connect 19 0 20 0;
#X connect 20 0 17 0;
#X connect 20 1 11 1;
#X restore 434 245 pd weighted;
#X obj 184 209 list-drip2;
#X text 419 223 Add lists weighted:;
#X connect 1 0 17 0;
#X connect 1 1 9 1;
#X connect 3 0 11 0;
#X connect 3 1 1 0;
#X connect 5 0 15 0;
#X connect 7 0 3 0;
#X connect 8 0 3 0;
#X connect 9 0 10 0;
#X connect 9 0 11 1;
#X connect 10 0 9 1;
#X connect 11 0 4 0;
#X connect 11 0 17 1;
#X connect 12 0 9 0;
#X connect 13 0 3 0;
#X connect 14 0 12 1;
#X connect 15 0 14 0;
#X connect 15 1 17 0;
#X connect 15 2 17 1;
#X connect 17 0 12 0;
#X connect 17 1 12 1;
#X connect 17 2 0 0;
#X restore 415 583 pd add-lots-of-lists;
#X text 418 557 Another example:;
#X obj 297 97 list-drip2;
#X obj 123 388 list-drip2;
#X msg 124 326 1 2 3 4;
#X msg 196 326 5 6 7 8;
#X msg 396 70 4 5 6 d e f ignored;
#X connect 0 0 2 0;
#X connect 0 1 3 0;
#X connect 1 0 0 0;
#X connect 4 0 27 0;
#X connect 8 0 22 0;
#X connect 10 0 11 1;
#X connect 11 0 10 0;
#X connect 11 0 12 1;
#X connect 12 0 13 0;
#X connect 14 0 29 0;
#X connect 14 1 30 0;
#X connect 15 0 14 0;
#X connect 16 0 28 0;
#X connect 16 1 11 1;
#X connect 21 0 12 0;
#X connect 24 0 11 0;
#X connect 27 0 6 0;
#X connect 27 1 7 0;
#X connect 27 2 5 0;
#X connect 28 0 24 0;
#X connect 28 1 24 1;
#X connect 28 2 8 0;
#X connect 29 0 16 0;
#X connect 30 0 28 1;
#X connect 31 0 27 1;
--- NEW FILE: list-drip2.pd ---
#N canvas 161 215 536 406 10;
#X obj 133 90 inlet;
#X obj 133 246 outlet;
#X obj 247 95 inlet;
#X obj 190 213 outlet;
#X obj 247 173 outlet;
#N canvas 501 342 487 367 drip-two-lists 1;
#X obj 64 243 outlet;
#X obj 64 57 inlet;
#X obj 157 240 outlet;
#X obj 225 242 outlet;
#X obj 321 95 inlet;
#X text 272 240 End;
#X obj 64 133 list-drip;
#X obj 64 156 t a b;
#X obj 157 192 list-dripslow;
#X connect 1 0 6 0;
#X connect 4 0 8 1;
#X connect 6 0 7 0;
#X connect 6 1 3 0;
#X connect 7 0 0 0;
#X connect 7 1 8 0;
#X connect 8 0 2 0;
#X restore 133 139 pd drip-two-lists;
#X text 300 172 bang at end;
#X text 244 212 second list;
#X text 190 248 first list;
#X text 51 35 Drips two lists in sync \, as long as the first list
lasts.;
#X connect 0 0 5 0;
#X connect 2 0 5 1;
#X connect 5 0 1 0;
#X connect 5 1 3 0;
#X connect 5 2 4 0;
--- NEW FILE: list-minmax-help.pd ---
#N canvas 368 264 689 365 10;
#X floatatom 254 271 5 0 0 0 min - -;
#X floatatom 326 271 5 0 0 0 max - -;
#X obj 254 138 random 100;
#X obj 254 116 until;
#X msg 366 138 set;
#X msg 232 61 10;
#X msg 254 160 add2 \$1;
#X obj 232 88 t b f b;
#X msg 254 203 41 49 75 14 47 94 89 87 30 87;
#X text 178 28 list-minmax: find minimum and maximum float in a list.
;
#X msg 141 201 2;
#X text 140 178 special cases;
#X obj 254 234 list-minmax;
#X msg 179 202 11 2 2 2;
#X connect 2 0 6 0;
#X connect 3 0 2 0;
#X connect 4 0 8 0;
#X connect 5 0 7 0;
#X connect 6 0 8 0;
#X connect 7 0 8 0;
#X connect 7 1 3 0;
#X connect 7 2 4 0;
#X connect 8 0 12 0;
#X connect 10 0 12 0;
#X connect 12 0 0 0;
#X connect 12 1 1 0;
#X connect 13 0 12 0;
--- NEW FILE: list-math-help.pd ---
#N canvas 431 198 659 551 10;
#X obj 160 259 print L;
#X msg 160 194 1 2 3 4 a b c;
#X floatatom 270 193 5 0 0 0 - - -;
#X obj 404 263 print L;
#X msg 404 198 1 2 3 4 a b c;
#X floatatom 514 197 5 0 0 0 - - -;
#X obj 164 365 print L;
#X msg 164 300 1 2 3 4 a b c;
#X floatatom 274 299 5 0 0 0 - - -;
#X obj 160 226 list-math *;
#X msg 159 167 1 2 3 4 a b c \, 10 20 30 x y z;
#X text 144 93 Use as "list-math operator" where operator is some binary
operator \, that expr can understand \, like + \, - \, * or /;
#X obj 406 373 print L;
#X msg 406 308 1 2 3 4 a b c;
#X floatatom 516 307 5 0 0 0 - - -;
#X obj 132 31 cnv 15 140 30 empty empty list-math 20 12 0 14 -233017
-66577 0;
#X text 292 40 simple mathematical operations on lists.;
#X obj 404 230 list-math +;
#X obj 164 332 list-math /;
#X obj 406 340 list-math -;
#X connect 1 0 9 0;
#X connect 2 0 9 1;
#X connect 4 0 17 0;
#X connect 5 0 17 1;
#X connect 7 0 18 0;
#X connect 8 0 18 1;
#X connect 9 0 0 0;
#X connect 10 0 9 0;
#X connect 13 0 19 0;
#X connect 14 0 19 1;
#X connect 17 0 3 0;
#X connect 18 0 6 0;
#X connect 19 0 12 0;
--- NEW FILE: list-inter-gem-example.pd ---
#N canvas 402 9 678 693 10;
#X obj 459 490 gemwin;
#X msg 459 452 reset \, create \, 1;
#X msg 488 469 0 \, destroy;
#X obj 57 199 translateXYZ;
#X obj 58 161 gemhead;
#X obj 48 381 gemhead;
#X obj 249 202 translateXYZ;
#X obj 248 167 gemhead;
#X obj 426 203 translateXYZ;
#X obj 425 168 gemhead;
#X obj 151 313 t b a;
#X obj 152 338 f;
#X obj 90 99 hsl 128 15 0 1 0 0 empty empty factor_(0-1) -2 -6 0 10
-262144 -1 -1 7100 1;
#X obj 377 105 hsl 128 15 0 1 0 0 empty empty factor_(0-1) -2 -6 0
10 -262144 -1 -1 7000 1;
#X obj 253 114 t b b b;
#X msg 259 93 bang;
#X obj 97 290 list-inter;
#X obj 163 357 list-inter;
#X obj 62 234 color 1 0 0;
#X obj 248 242 color 0 1 0;
#X obj 422 246 color 0 0 1;
#X obj 54 491 color 1 1 1;
#X obj 483 170 unpack 0 0 0 0 0;
#X obj 306 169 unpack 0 0 0 0 0;
#X obj 116 163 unpack 0 0 0 0 0;
#X obj 154 195 pack 0 0 0;
#X msg 309 142 3 1 0 1 0;
#X obj 336 218 pack 0 0 0;
#X obj 519 205 pack 0 0 0;
#X obj 106 383 unpack 0 0 0 0 0;
#X obj 187 423 pack 0 0 0;
#X msg 487 147 -2 -3 1 0.3 0.5;
#X msg 119 135 -1 2 1 0 0;
#X obj 57 264 circle 0.1;
#X obj 251 277 circle 0.1;
#X obj 420 283 circle 0.1;
#X obj 35 421 translateXYZ 0 0 -0.1;
#X obj 252 72 loadbang;
#X obj 52 511 square 0.2;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 18 0;
#X connect 4 0 3 0;
#X connect 5 0 36 0;
#X connect 6 0 19 0;
#X connect 7 0 6 0;
#X connect 8 0 20 0;
#X connect 9 0 8 0;
#X connect 10 0 11 0;
#X connect 10 1 17 1;
#X connect 11 0 17 0;
#X connect 12 0 16 0;
#X connect 13 0 11 0;
#X connect 14 0 32 0;
#X connect 14 1 26 0;
#X connect 14 2 31 0;
#X connect 15 0 14 0;
#X connect 16 0 10 0;
#X connect 17 0 29 0;
#X connect 18 0 33 0;
#X connect 19 0 34 0;
#X connect 20 0 35 0;
#X connect 21 0 38 0;
#X connect 22 0 8 1;
#X connect 22 1 8 2;
#X connect 22 2 28 0;
#X connect 22 3 28 1;
#X connect 22 4 28 2;
#X connect 23 0 6 1;
#X connect 23 1 6 2;
#X connect 23 2 27 0;
#X connect 23 3 27 1;
#X connect 23 4 27 2;
#X connect 24 0 3 1;
#X connect 24 1 3 2;
#X connect 24 2 25 0;
#X connect 24 3 25 1;
#X connect 24 4 25 2;
#X connect 25 0 18 1;
#X connect 26 0 16 2;
#X connect 26 0 23 0;
#X connect 27 0 19 1;
#X connect 28 0 20 1;
#X connect 29 0 36 1;
#X connect 29 1 36 2;
#X connect 29 2 30 0;
#X connect 29 3 30 1;
#X connect 29 4 30 2;
#X connect 30 0 21 1;
#X connect 31 0 17 2;
#X connect 31 0 22 0;
#X connect 32 0 16 1;
#X connect 32 0 24 0;
#X connect 36 0 21 0;
#X connect 37 0 14 0;
#X connect 37 0 13 0;
#X connect 37 0 12 0;
--- NEW FILE: take-two-help.pd ---
#N canvas 309 319 748 381 10;
#X obj 114 160 take-two;
#X obj 114 203 print;
#X msg 114 104 1 2 3 4;
#X msg 176 103 list a b c d e f g h;
#X text 192 153 take a list as input and print all combinations of
length two without repetition.;
#X connect 0 0 1 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
--- NEW FILE: triple-scale.pd ---
#N canvas 146 135 849 526 10;
#X obj 224 150 unpack 0 0 0;
#X obj 224 117 inlet;
#X obj 189 312 pack 0 0 0;
#X obj 189 333 outlet;
#X obj 382 150 unpack 0 0 0;
#X obj 382 117 inlet;
#X obj 134 118 inlet;
#X obj 134 146 t f f f;
#X obj 133 207 expr $f1*($f3-$f2) + $f2;
#X obj 221 234 expr $f1*($f3-$f2) + $f2;
#X obj 311 255 expr $f1*($f3-$f2) + $f2;
#X text 178 41 interpolate linearily between to points (x \, y \, z)
;
#X text 455 118 point 2;
#X text 280 117 point 1;
#X text 142 99 0-1;
#X connect 0 0 8 1;
#X connect 0 1 9 1;
#X connect 0 2 10 1;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 4 0 8 2;
#X connect 4 1 9 2;
#X connect 4 2 10 2;
#X connect 5 0 4 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 1 9 0;
#X connect 7 2 10 0;
#X connect 8 0 2 0;
#X connect 9 0 2 1;
#X connect 10 0 2 2;
--- NEW FILE: last-x-help.pd ---
#N canvas 446 464 569 323 10;
#X obj 188 143 last-x 4;
#X floatatom 188 118 5 0 0 0 - - -;
#X obj 188 174 print last_x;
#X text 124 52 last-x: make a list of the last x floats.;
#X floatatom 239 119 5 0 0 2 change-size - -;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 4 0 0 1;
--- NEW FILE: last-x.pd ---
#N canvas 417 318 723 395 10;
#X obj 153 175 cnv 15 150 80 empty empty empty 20 12 0 14 -233017 -66577
0;
#X floatatom 356 89 5 0 0 2 change-size - -;
#X obj 326 112 t f b;
#X text 378 110 first reset (b) \, then set new length (f).;
#X text 311 195 Right outlet is responsible to first fill the list
;
#X text 312 211 Left outlet then only lets the smaller list pass.;
#X obj 180 183 list;
#X obj 326 54 inlet;
#X obj 180 149 inlet;
#X obj 180 302 outlet;
#X obj 180 228 list split \$1;
#X connect 1 0 2 0;
#X connect 2 0 10 1;
#X connect 2 1 6 1;
#X connect 6 0 10 0;
#X connect 7 0 2 0;
#X connect 8 0 6 0;
#X connect 10 0 6 1;
#X connect 10 0 9 0;
#X connect 10 2 6 1;
--- NEW FILE: list-accum-help.pd ---
#N canvas 247 182 450 300 10;
#X obj 164 160 list-accum;
#X floatatom 164 199 5 0 0 0 - - -;
#X msg 164 119 1 2 3;
#X obj 120 197 print;
#X msg 217 120 1 2 3 and 4;
#X text 94 61 list-accum: add all floats in a list;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 2 0 0 0;
#X connect 4 0 0 0;
--- NEW FILE: list-dripslow.pd ---
#N canvas 592 504 407 292 10;
#N canvas 0 0 533 407 dripslow 0;
#X obj 87 232 list split 1;
#X obj 87 207 list append;
#X obj 87 283 outlet;
#X obj 87 83 inlet;
#X obj 166 283 outlet;
#X obj 159 81 inlet;
#X obj 87 118 b;
#X text 202 82 list;
#X text 42 83 bang;
#X text 210 283 EOL;
#X text 28 282 element;
#X obj 166 253 b;
#X connect 0 0 2 0;
#X connect 0 1 1 1;
#X connect 0 2 11 0;
#X connect 1 0 0 0;
#X connect 3 0 6 0;
#X connect 5 0 1 1;
#X connect 6 0 1 0;
#X connect 11 0 4 0;
#X restore 149 136 pd dripslow;
#X obj 149 199 outlet;
#X obj 149 73 inlet;
#X obj 221 199 outlet;
#X obj 221 71 inlet;
#X text 265 70 list;
#X text 105 71 bang;
#X text 274 200 EOL;
#X text 94 198 element;
#X connect 0 0 1 0;
#X connect 0 1 3 0;
#X connect 2 0 0 0;
#X connect 4 0 0 1;
--- NEW FILE: list-makefilename.pd ---
#N canvas 424 89 624 640 10;
#X msg 119 113 1 2 3 4 a b c;
#X text 251 117 <- click to test;
#X obj 196 386 list;
#X obj 77 499 list;
#X obj 100 385 list prepend;
#N canvas 0 0 533 407 drip 0;
#X obj 64 206 list split 1;
#X obj 64 123 until;
#X obj 64 181 list append;
#X obj 194 206 bang;
#X text 146 90 First store list \, then start the loop;
#X text 163 118 "until" bangs its output until told to stop by a "bang"
to its right inlet.;
#X text 182 160 Store the remaining list.;
#X text 239 205 third outlet of "split" tells us to stop.;
#X obj 64 243 outlet;
#X obj 64 57 inlet;
#X obj 64 86 t b l;
#X text 237 44 From list-help.pd;
#X connect 0 0 8 0;
#X connect 0 1 2 1;
#X connect 0 2 3 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 1 1;
#X connect 9 0 10 0;
#X connect 10 0 1 0;
#X connect 10 1 2 1;
#X restore 100 202 pd drip;
#X obj 78 150 t b a b;
#X obj 122 178 s \$0-reset-result;
#X obj 179 357 r \$0-reset-result;
#X text 260 177 clear result list;
#X text 181 204 "Drip" (serialize) the list;
#X text 258 389 Repack the list (think of the counter);
#X text 124 496 Final result is built here;
#X obj 78 81 inlet;
#X obj 223 248 inlet;
#X obj 77 530 outlet;
#X obj 100 231 route symbol;
#X obj 100 334 makefilename \$1;
#X text 202 228 only work on symbols;
#X obj 223 272 symbol;
#X msg 223 293 set \$1;
#X text 148 27 Use as "list-makefilename makefilename-arg". Right inlet
can be used to change the arg to makefilename. Please only use symbol
placeholders (== "%s");
#X connect 0 0 6 0;
#X connect 2 0 4 1;
#X connect 3 0 15 0;
#X connect 4 0 2 0;
#X connect 4 0 3 1;
#X connect 5 0 16 0;
#X connect 6 0 3 0;
#X connect 6 1 5 0;
#X connect 6 2 7 0;
#X connect 8 0 4 1;
#X connect 13 0 6 0;
#X connect 14 0 19 0;
#X connect 16 0 17 0;
#X connect 16 1 4 0;
#X connect 17 0 4 0;
#X connect 19 0 20 0;
#X connect 20 0 17 0;
--- NEW FILE: list-rev.pd ---
#N canvas 575 483 566 351 10;
#X obj 92 29 inlet;
#N canvas 0 0 533 407 drip 0;
#X obj 64 206 list split 1;
#X obj 64 123 until;
#X obj 64 181 list append;
#X obj 194 206 bang;
#X obj 64 243 outlet;
#X obj 64 57 inlet;
#X obj 64 86 t b l;
#X text 237 44 From list-help.pd;
#X obj 143 243 outlet;
#X connect 0 0 4 0;
#X connect 0 1 2 1;
#X connect 0 2 3 0;
#X connect 0 2 8 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 1 1;
#X connect 5 0 6 0;
#X connect 6 0 1 0;
#X connect 6 1 2 1;
#X restore 92 94 pd drip;
#X obj 148 141 t l;
#X obj 92 141 list;
#X obj 136 207 list;
#X obj 92 54 t l b;
#X obj 136 259 outlet;
#X text 174 95 drip list;
#X text 174 210 intermediate store \, bang'd on list end.;
#X text 178 140 repack in reverse order;
#X connect 0 0 5 0;
#X connect 1 0 3 0;
#X connect 1 1 4 0;
#X connect 2 0 3 1;
#X connect 3 0 2 0;
#X connect 3 0 4 1;
#X connect 4 0 6 0;
#X connect 5 0 1 0;
#X connect 5 1 3 1;
--- NEW FILE: list-rot-help.pd ---
#N canvas 471 516 479 301 10;
#X msg 136 118 0 1 2 3 4 5 6 7;
#X floatatom 201 151 5 0 0 0 ROT# - -;
#X obj 136 230 print;
#X obj 136 183 list-rot 3;
#X text 124 33 list-rot;
#X text 64 61 Rotate a list (move ROT# elements from front to back)
;
#X text 63 81 ROT# has to be positive \, negative ROT# will not rotate!
;
#X connect 0 0 3 0;
#X connect 1 0 3 1;
#X connect 3 0 2 0;
--- NEW FILE: OSCprepend.pd ---
#N canvas 511 144 636 444 10;
#X obj 45 131 list split 1;
#X msg 94 90 /a 1 2 3;
#X obj 45 276 list append;
#X obj 45 299 list trim;
#X obj 45 239 makefilename \$1%s;
#X obj 45 188 route symbol;
#X obj 45 89 inlet;
#X obj 45 319 outlet;
#X text 215 99 "Prepends" first argument to an OSC message list.;
#X text 221 126 Example: with \$1 being "/synth" the message "/set
x 1 2" will become "/synth/set x 1 2".;
#X text 223 163 Right inlet lets you change the prepended argument
;
#X msg 146 209 set \$1%s;
#X obj 146 185 symbol;
#X obj 146 163 inlet;
#X text 224 189 Lists not starting with a symbol are filtered out!
;
#X connect 0 0 5 0;
#X connect 0 1 2 1;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 3 0 7 0;
#X connect 4 0 2 0;
#X connect 5 0 4 0;
#X connect 6 0 0 0;
#X connect 11 0 4 0;
#X connect 12 0 11 0;
#X connect 13 0 12 0;
--- NEW FILE: list-drip.pd ---
#N canvas 0 0 450 300 10;
#N canvas 0 0 533 407 drip 1;
#X obj 64 206 list split 1;
#X obj 64 123 until;
#X obj 64 181 list append;
#X obj 194 206 bang;
#X text 146 90 First store list \, then start the loop;
#X text 163 118 "until" bangs its output until told to stop by a "bang"
to its right inlet.;
#X text 182 160 Store the remaining list.;
#X text 239 205 third outlet of "split" tells us to stop.;
#X obj 64 243 outlet;
#X obj 64 57 inlet;
#X text 237 44 From list-help.pd;
#X obj 143 243 outlet;
#X obj 64 86 t b a;
#X connect 0 0 8 0;
#X connect 0 1 2 1;
#X connect 0 2 3 0;
#X connect 0 2 11 0;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 1 1;
#X connect 9 0 12 0;
#X connect 12 0 1 0;
#X connect 12 1 2 1;
#X restore 133 139 pd drip;
#X obj 133 90 inlet;
#X obj 133 212 outlet;
#X obj 177 181 outlet;
#X connect 0 0 2 0;
#X connect 0 1 3 0;
#X connect 1 0 0 0;
--- NEW FILE: list-dripslow-help.pd ---
#N canvas 356 400 543 329 10;
#X msg 208 152 1 2 3 4;
#X obj 122 229 print element;
#X obj 208 202 print EOL;
#X msg 122 146 bang;
#X text 60 30 list-dripslow: Serialize a list on demand.;
#X text 56 69 First set list through right inlet \, then on each bang
into left inlet \, one element will be output through left outlet.
Right outlet bangs at list's end.;
#N canvas 401 196 593 450 drip-many-example 0;
#X obj 122 171 list-drip;
#X obj 122 194 t a b;
#X obj 122 323 print L1;
#X obj 207 324 print L2;
#X obj 297 326 print L3;
#X obj 207 249 t a b;
#X obj 122 121 t b b b;
#X text 160 39 Drip many lists in sync;
#X msg 122 92 bang;
#X msg 383 187 A B C;
#X msg 293 187 1 2 3;
#X msg 122 149 x y z;
#X obj 207 225 list-dripslow;
#X obj 297 283 list-dripslow;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 12 0;
#X connect 5 0 3 0;
#X connect 5 1 13 0;
#X connect 6 0 11 0;
#X connect 6 1 10 0;
#X connect 6 2 9 0;
#X connect 8 0 6 0;
#X connect 9 0 13 1;
#X connect 10 0 12 1;
#X connect 11 0 0 0;
#X connect 12 0 5 0;
#X connect 13 0 4 0;
#X restore 332 185 pd drip-many-example;
#N canvas 606 157 450 300 drip-emulation 0;
#X obj 140 194 list-dripslow;
#X obj 140 117 t b l;
#X obj 140 167 until;
#X obj 140 224 print;
#X msg 140 82 1 2 3 4 5 6 7 achtung;
#X text 135 49 drip fast with dripslow;
#X connect 0 0 3 0;
#X connect 0 1 2 1;
#X connect 1 0 2 0;
#X connect 1 1 0 1;
#X connect 2 0 0 0;
#X connect 4 0 1 0;
#X restore 332 219 pd drip-emulation;
#X obj 122 180 list-dripslow;
#X connect 0 0 8 1;
#X connect 3 0 8 0;
#X connect 8 0 1 0;
#X connect 8 1 2 0;