[PD-cvs] abstractions/footils/list-abs compare-any-help.pd, NONE, 1.1.2.1 compare-any.pd, NONE, 1.1.2.1 list-centroid-help.pd, NONE, 1.3.2.1 list-centroid.pd, NONE, 1.2.2.1 list-compare-help.pd, NONE, 1.1.2.1 list-compare.pd, NONE, 1.1.2.1 list-enumerate-help.pd, NONE, 1.1.2.1 list-enumerate.pd, NONE, 1.1.2.1 list-extend-help.pd, NONE, 1.1.2.1 list-extend.pd, NONE, 1.2.2.1 list-fifo-help.pd, NONE, 1.1.2.1 list-fifo.pd, NONE, 1.1.2.1 list-filter-help.pd, NONE, 1.2.2.1 list-filter.pd, NONE, 1.2.2.1 list-find-help.pd, NONE, 1.2.2.1 list-find.pd, NONE, 1.2.2.1 list-geometric-mean-help.pd, NONE, 1.1.2.1 list-geometric-mean.pd, NONE, 1.1.2.1 list-harmonic-mean-help.pd, NONE, 1.2.2.1 list-harmonic-mean.pd, NONE, 1.1.2.1 list-inter-many-help.pd, NONE, 1.1.2.1 list-inter-many.pd, NONE, 1.1.2.1 list-map-help.pd, NONE, 1.1.2.1 list-map.pd, NONE, 1.1.2.1 list-map2-help.pd, NONE, 1.1.2.1 list-map2.pd, NONE, 1.1.2.1 list-mean-help.pd, NONE, 1.1.2.1 list-mean.pd, NONE, 1.1.2.1 list-reduce-help.pd, NONE, 1.1.2.1 list-reduce.pd, NONE, 1.1.2.1

Frank Barknecht fbar at users.sourceforge.net
Mon May 28 14:29:34 CEST 2007


Update of /cvsroot/pure-data/abstractions/footils/list-abs
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7586

Added Files:
      Tag: branch-v0-39-2-extended
	compare-any-help.pd compare-any.pd list-centroid-help.pd 
	list-centroid.pd list-compare-help.pd list-compare.pd 
	list-enumerate-help.pd list-enumerate.pd list-extend-help.pd 
	list-extend.pd list-fifo-help.pd list-fifo.pd 
	list-filter-help.pd list-filter.pd list-find-help.pd 
	list-find.pd list-geometric-mean-help.pd 
	list-geometric-mean.pd list-harmonic-mean-help.pd 
	list-harmonic-mean.pd list-inter-many-help.pd 
	list-inter-many.pd list-map-help.pd list-map.pd 
	list-map2-help.pd list-map2.pd list-mean-help.pd list-mean.pd 
	list-reduce-help.pd list-reduce.pd 
Log Message:
added new list-abs to branch pd-ext

--- NEW FILE: list-inter-many-help.pd ---
#N canvas 256 50 619 683 10;
#X obj 195 449 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 508 1;
#X obj 234 449 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 1270 1;
#X obj 274 449 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 6731 1;
#X floatatom 195 423 5 0 0 0 - - -;
#X floatatom 234 423 5 0 0 0 - - -;
#X floatatom 274 423 5 0 0 0 - - -;
#X obj 195 401 unpack 0 0 0 0;
#X obj 313 450 vsl 15 128 0 10 0 0 empty empty empty 0 -8 0 8 -262144
-1 -1 127 1;
#X floatatom 313 424 5 0 0 0 - - -;
#X obj 195 372 list-inter-many;
#N canvas 239 261 368 386 randlist 0;
#X msg 141 73 4;
#X obj 141 103 until;
#X obj 141 130 random 100;
#X obj 141 157 / 10;
#X obj 141 199 list prepend;
#X obj 232 200 t a;
#X obj 118 242 list;
#X obj 118 47 t b b b;
#X obj 118 24 inlet;
#X obj 118 318 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 4 0 6 1;
#X connect 5 0 4 1;
#X connect 6 0 9 0;
#X connect 7 0 6 0;
#X connect 7 1 0 0;
#X connect 7 2 4 1;
#X connect 8 0 7 0;
#X restore 385 282 pd randlist;
#X msg 295 337 clear;
#X msg 295 315 print;
#X msg 385 260 add random list;
#X obj 195 291 / 100;
#X floatatom 195 268 5 0 0 0 - - -;
#X obj 385 237 until;
#X msg 385 214 4;
#X obj 244 292 line;
#X floatatom 244 321 5 0 0 0 - - -;
#X msg 244 269 0 \, 3 2000;
#X msg 385 434;
#X text 390 412 textfile contents:;
#X msg 339 376 set;
#X text 117 621 Also see:;
#X obj 193 622 list-inter;
#X text 97 26 [list-inter-many];
#X obj 385 304 list prepend add;
#X obj 385 327 list trim;
#X text 94 93 Inlets:;
#X text 94 61 Elementwise linear interpolation between several float
lists stored in a [textfile] object internally.;
#X text 98 208 Outlet: interpolated list.;
#X text 108 171 1) [textfile] inlet. Use the selector "add" to add
lists to the interpolation space;
#X text 108 116 0) float: distance between lists. Values between 0
and 1 will interpolate the first two lists \, values between 1 and
2 interpolate the second with the third list and so on.;
#X connect 3 0 0 0;
#X connect 4 0 1 0;
#X connect 5 0 2 0;
#X connect 6 0 3 0;
#X connect 6 1 4 0;
#X connect 6 2 5 0;
#X connect 6 3 8 0;
#X connect 8 0 7 0;
#X connect 9 0 6 0;
#X connect 10 0 27 0;
#X connect 11 0 9 1;
#X connect 11 0 23 0;
#X connect 12 0 9 1;
#X connect 13 0 10 0;
#X connect 14 0 9 0;
#X connect 15 0 14 0;
#X connect 16 0 13 0;
#X connect 17 0 16 0;
#X connect 18 0 9 0;
#X connect 18 0 19 0;
#X connect 20 0 18 0;
#X connect 23 0 21 0;
#X connect 27 0 28 0;
#X connect 28 0 9 1;
#X connect 28 0 21 0;

--- NEW FILE: list-compare.pd ---
#N canvas 368 289 390 300 10;
#X obj 222 58 inlet;
#X obj 94 57 inlet;
#X obj 94 199 outlet;
#N canvas 380 394 492 461 compare-elements 0;
#X obj 83 135 list-dripslow;
#X obj 83 226 compare-any;
#X obj 83 157 t a b;
#X obj 264 48 inlet;
#X obj 65 36 inlet;
#X obj 241 111 list;
#X obj 83 112 until;
#X obj 83 256 select 0;
#X obj 83 288 t b b;
#X msg 83 317 0;
#X obj 65 379 outlet;
#X obj 65 356 f 1;
#X obj 65 59 t b b a b b;
#X msg 125 319 1;
#X obj 155 192 list-dripslow;
#X connect 0 0 2 0;
#X connect 0 1 6 1;
#X connect 1 0 7 0;
#X connect 2 0 1 0;
#X connect 2 1 14 0;
#X connect 3 0 5 1;
#X connect 4 0 12 0;
#X connect 5 0 14 1;
#X connect 6 0 0 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 8 1 6 1;
#X connect 9 0 11 1;
#X connect 11 0 10 0;
#X connect 12 0 11 0;
#X connect 12 1 6 0;
#X connect 12 2 0 1;
#X connect 12 3 5 0;
#X connect 12 4 13 0;
#X connect 13 0 11 1;
#X connect 14 0 1 1;
#X restore 94 136 pd compare-elements;
#X msg 216 167 0;
#N canvas 446 369 450 300 compare-lengths 0;
#X obj 144 68 list length;
#X obj 45 67 list length;
#X obj 45 102 ==;
#X obj 45 123 select 1 0;
#X obj 144 35 inlet;
#X obj 45 20 inlet;
#X obj 45 203 outlet;
#X obj 77 182 outlet;
#X obj 45 45 t a a;
#X obj 45 154 list;
#X text 39 237 if equal \, send list out to first outlet \, else bang
second outlet;
#X connect 0 0 2 1;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 9 0;
#X connect 3 1 7 0;
#X connect 4 0 0 0;
#X connect 5 0 8 0;
#X connect 8 0 1 0;
#X connect 8 1 9 1;
#X connect 9 0 6 0;
#X restore 94 93 pd compare-lengths;
#X connect 0 0 5 1;
#X connect 0 0 3 1;
#X connect 1 0 5 0;
#X connect 3 0 2 0;
#X connect 4 0 2 0;
#X connect 5 0 3 0;
#X connect 5 1 4 0;

--- NEW FILE: list-fifo-help.pd ---
#N canvas 256 47 862 626 10;
#X obj 192 535 print;
#X obj 192 331 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X msg 299 357 1 2 3 4 5;
#X symbolatom 312 378 10 0 0 0 - - -;
#X floatatom 325 395 5 0 0 0 - - -;
#X symbolatom 419 424 10 0 0 0 - - -;
#X msg 109 412 clear;
#X obj 250 505 bng 15 250 50 0 empty empty EOL 17 7 1 10 -262144 -1
-1;
#X text 117 175 CAUTION:;
#X text 118 193 When a message contains the delimiter symbol \, it
is falsely split into two parts.;
#X text 117 110 [list-fifo] can be used to limit the number of messages
passing during a certain time (might be usefull to limit the used network
bandwidth). It also can be used as a sequencer.;
#X text 81 29 [list-fifo];
#X text 118 228 Default delimiter between messages is the empty symbol.
You can customize this with the first argument:;
#X text 61 397 clear stored list;
#X text 163 314 trigger output;
#X text 288 315 store lists or elements;
#X text 416 407 manually change delimiter symbol;
#X text 119 55 [list-fifo] stores incoming (list-)messages and outputs
them one by one on incoming bangs in the order they arrive like a FIFO:
first in \, first out.;
#X text 104 580 Based on a patch and idea by Roman Haefli 2006;
#X obj 192 476 list-fifo;
#X msg 290 337 eins due trois four;
#X obj 121 270 list-fifo MY_DELIMITER;
#X connect 1 0 19 0;
#X connect 2 0 19 1;
#X connect 3 0 19 1;
#X connect 4 0 19 1;
#X connect 5 0 19 2;
#X connect 6 0 19 0;
#X connect 19 0 0 0;
#X connect 19 1 7 0;
#X connect 20 0 19 1;

--- NEW FILE: list-map2.pd ---
#N canvas 470 232 489 423 10;
#X obj 86 33 inlet;
#X obj 300 34 inlet;
#X obj 151 352 outlet;
#X obj 169 269 outlet;
#X obj 151 317 list;
#X obj 300 215 list prepend;
#X obj 379 185 t a;
#X obj 86 58 route bang;
#X obj 86 83 b;
#X obj 151 84 t b a;
#X obj 151 124 list;
#X obj 169 215 list-drip2;
#X obj 169 243 list;
#X obj 258 33 inlet;
#X obj 234 192 list;
#X obj 151 155 t b a a b b;
#X connect 0 0 7 0;
#X connect 1 0 5 0;
#X connect 4 0 2 0;
#X connect 5 0 6 0;
#X connect 5 0 4 1;
#X connect 6 0 5 1;
#X connect 7 0 8 0;
#X connect 7 1 9 0;
#X connect 8 0 10 0;
#X connect 9 0 10 0;
#X connect 9 1 10 1;
#X connect 10 0 15 0;
#X connect 11 0 12 0;
#X connect 11 1 12 1;
#X connect 12 0 3 0;
#X connect 13 0 14 1;
#X connect 14 0 11 1;
#X connect 15 0 4 0;
#X connect 15 1 11 0;
#X connect 15 2 4 1;
#X connect 15 3 14 0;
#X connect 15 4 5 1;

--- NEW FILE: list-mean.pd ---
#N canvas 0 0 457 428 10;
#X obj 127 69 inlet;
#X obj 127 337 outlet;
#X obj 146 138 list-drip;
#X obj 146 164 route float;
#X obj 127 274 f;
#N canvas 425 298 450 300 count 0;
#X obj 133 59 b;
#X obj 133 35 inlet;
#X obj 183 35 inlet;
#X obj 164 111 + 1;
#X obj 133 133 outlet;
#X msg 183 71 1;
#X obj 133 110 f 1;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 2 0 5 0;
#X connect 3 0 6 1;
#X connect 5 0 6 1;
#X connect 6 0 3 0;
#X connect 6 0 4 0;
#X restore 222 226 pd count;
#X obj 127 308 /;
#X obj 146 189 t a b;
#N canvas 370 313 450 300 accum 0;
#X obj 182 102 0;
#X obj 135 79 inlet;
#X obj 182 79 inlet;
#X obj 135 169 outlet;
#X obj 135 137 +;
#X obj 168 138 f;
#X connect 0 0 4 1;
#X connect 1 0 4 0;
#X connect 2 0 0 0;
#X connect 4 0 3 0;
#X connect 4 0 5 0;
#X connect 5 0 4 1;
#X restore 146 224 pd accum;
#X obj 127 105 t b a b b;
#X connect 0 0 9 0;
#X connect 2 0 3 0;
#X connect 3 0 7 0;
#X connect 4 0 6 0;
#X connect 5 0 6 1;
#X connect 6 0 1 0;
#X connect 7 0 8 0;
#X connect 7 1 5 0;
#X connect 8 0 4 1;
#X connect 9 0 4 0;
#X connect 9 1 2 0;
#X connect 9 2 8 1;
#X connect 9 3 5 1;

--- NEW FILE: list-filter.pd ---
#N canvas 728 203 519 432 10;
#X obj 86 33 inlet;
#X obj 275 52 inlet;
#X obj 151 352 outlet;
#X obj 169 268 outlet;
#X obj 169 215 list-drip;
#X obj 326 250 list prepend;
#X obj 405 220 t a;
#X obj 86 58 route bang;
#X obj 86 83 b;
#X obj 151 84 t b a;
#X obj 151 124 list;
#X obj 275 111 select 0;
#X obj 326 133 b;
#X obj 326 209 list;
#X obj 169 244 t a a;
#X obj 151 317 list;
#X obj 151 155 t b a b b b;
#X connect 0 0 7 0;
#X connect 1 0 11 0;
#X connect 4 0 14 0;
#X connect 5 0 6 0;
#X connect 5 0 15 1;
#X connect 6 0 5 1;
#X connect 7 0 8 0;
#X connect 7 1 9 0;
#X connect 8 0 10 0;
#X connect 9 0 10 0;
#X connect 9 1 10 1;
#X connect 10 0 16 0;
#X connect 11 1 12 0;
#X connect 12 0 13 0;
#X connect 13 0 5 0;
#X connect 14 0 3 0;
#X connect 14 1 13 1;
#X connect 15 0 2 0;
#X connect 16 0 15 0;
#X connect 16 1 4 0;
#X connect 16 2 15 1;
#X connect 16 3 5 1;
#X connect 16 4 13 1;

--- NEW FILE: list-find-help.pd ---
#N canvas 124 128 552 533 10;
#X floatatom 169 259 5 0 0 0 - - -;
#X obj 154 331 list-find;
#X obj 212 293 loadbang;
#X obj 111 449 print FOUND_AT;
#X text 69 21 [list-find];
#N canvas 516 236 450 300 collect 0;
#X obj 195 37 inlet;
#X obj 41 37 inlet;
#X obj 41 144 outlet;
#X msg 195 74 set;
#X text 143 140 1993-2004 by Karlheinz Essl;
#X text 143 160 vs. 1.1;
#X obj 41 99 list trim;
#X obj 41 74 list prepend add2;
#X connect 0 0 3 0;
#X connect 1 0 7 0;
#X connect 3 0 2 0;
#X connect 6 0 2 0;
#X connect 7 0 6 0;
#X restore 154 395 pd collect;
#X obj 154 309 t a b;
#X msg 169 237 0;
#X msg 199 237 4;
#X text 130 53 Find position(s) of a value in a list.;
#X text 130 72 Inlet0: value to search;
#X text 130 91 Inlet1: list to search in.;
#X msg 154 184 seven;
#X msg 212 315 0 1 2 3 4 5 6 seven eight 0 0;
#X msg 154 206 symbol eight;
#X msg 154 417;
#X text 130 110 Outlet0: stream of found positions;
#X floatatom 212 354 5 0 0 1 hits - -;
#X msg 229 237 100;
#X text 130 129 Outlet1: after list was completely scanned \, report
number of elements found.;
#X connect 0 0 6 0;
#X connect 1 0 3 0;
#X connect 1 0 5 0;
#X connect 1 1 17 0;
#X connect 2 0 13 0;
#X connect 5 0 15 0;
#X connect 6 0 1 0;
#X connect 6 1 5 1;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X connect 12 0 6 0;
#X connect 13 0 1 1;
#X connect 14 0 6 0;
#X connect 18 0 0 0;

--- NEW FILE: list-extend-help.pd ---
#N canvas 329 163 570 457 10;
#X msg 102 183 1 2 3;
#X msg 156 290 bang;
#X msg 101 215 bang;
#X msg 102 161 a b c;
#X msg 102 139 x y z;
#X msg 154 259 A B C;
#X obj 68 323 list-extend;
#X obj 68 363 print LIST-EXTEND;
#X text 44 27 list-extend;
#X text 60 52 Build a list from incoming lists or elements.;
#X floatatom 101 119 5 0 0 0 - - -;
#X text 97 97 Add elements or lists and output stored list.;
#X text 146 219 output stored list;
#X text 201 261 set complete stored list;
#X text 201 292 set stored list to empty list (==reset);
#X connect 0 0 6 0;
#X connect 1 0 6 1;
#X connect 2 0 6 0;
#X connect 3 0 6 0;
#X connect 4 0 6 0;
#X connect 5 0 6 1;
#X connect 6 0 7 0;
#X connect 10 0 6 0;

--- NEW FILE: compare-any-help.pd ---
#N canvas 394 294 528 377 10;
#X msg 246 131 symbol x;
#X msg 255 154 symbol y;
#X msg 116 137 symbol x;
#X msg 125 160 symbol y;
#X obj 96 254 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 236 109 2.3;
#X msg 106 114 2.3;
#X msg 131 180 i;
#X msg 140 201 j;
#X msg 258 175 i;
#X msg 264 196 j;
#X obj 96 278 print;
#X text 37 14 [compare-any];
#X text 81 37 Test if two anythings are the same. Out: 1 if equal \,
0 if not equal.;
#X msg 96 92 1;
#X msg 226 87 1;
#X obj 96 231 compare-any;
#X msg 221 66 0;
#X msg 86 71 0;
#X connect 0 0 16 1;
#X connect 1 0 16 1;
#X connect 2 0 16 0;
#X connect 3 0 16 0;
#X connect 4 0 11 0;
#X connect 5 0 16 1;
#X connect 6 0 16 0;
#X connect 7 0 16 0;
#X connect 8 0 16 0;
#X connect 9 0 16 1;
#X connect 10 0 16 1;
#X connect 14 0 16 0;
#X connect 15 0 16 1;
#X connect 16 0 4 0;
#X connect 17 0 16 1;
#X connect 18 0 16 0;

--- NEW FILE: list-enumerate.pd ---
#N canvas 596 471 450 300 10;
#X obj 152 100 list-drip;
#X obj 152 78 t a b;
#N canvas 473 338 450 300 count 0;
#X obj 131 154 f 0;
#X obj 156 153 + 1;
#X msg 147 133 0;
#X obj 131 183 outlet;
#X obj 131 59 inlet;
#X obj 131 96 b;
#X obj 178 61 inlet;
#X obj 178 98 b;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 1 0 0 1;
#X connect 2 0 0 1;
#X connect 4 0 5 0;
#X connect 5 0 0 0;
#X connect 6 0 7 0;
#X connect 7 0 2 0;
#X restore 231 170 pd count;
#X obj 152 128 t a b;
#X obj 152 48 inlet;
#X obj 152 196 list prepend;
#X obj 152 224 outlet;
#X obj 210 224 outlet;
#X connect 0 0 3 0;
#X connect 0 1 7 0;
#X connect 1 0 0 0;
#X connect 1 1 2 1;
#X connect 2 0 5 1;
#X connect 3 0 5 0;
#X connect 3 1 2 0;
#X connect 4 0 1 0;
#X connect 5 0 6 0;

--- NEW FILE: list-map2-help.pd ---
#N canvas 344 108 758 698 10;
#X obj 135 320 spigot;
#X obj 171 303 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X msg 67 276 0 1 2 3;
#X obj 67 386 print MAIN;
#X obj 381 349 print SERIALIZED;
#X obj 323 378 print MAIN;
#X msg 67 255 bang;
#X msg 131 276 a b c;
#X msg 323 244 bang;
#X msg 72 447 0 1 2 3;
#X obj 72 536 list trim;
#X obj 72 516 list prepend set;
#X msg 72 558 0 a -|- 1 b -|- 2 c -|- 3 d -|-;
#X obj 158 471 list append -|-;
#X msg 227 541 set;
#X msg 71 421 bang;
#X obj 325 532 list trim;
#X obj 325 512 list prepend set;
#X msg 325 445 1 2 3 4 5;
#X msg 325 554 2 0 0 0 0;
#X obj 323 312 list-map2;
#X obj 411 312 +;
#X msg 352 289 10 20 30 40;
#X msg 323 268 1 2 3 4;
#X msg 130 449 a b c d;
#X obj 67 320 list-map2;
#X obj 325 490 list-map2;
#X obj 72 471 list-map2;
#X msg 354 466 2 0;
#X obj 397 490 *;
#X text 64 72 Calls a user-defined operation for each pair of elements
of two incoming lists and returns a list of the return values.;
#X obj 125 359 print SERIALIZED_PAIRS;
#X text 64 120 [list-map2] is a helper abstraction to make element-wise
operations on two lists easy to patch. The basic idea is to bundle
two list-serializers and a list-repacker into one object. Then you
connect whatever operation should be applied on every pair of list
items to the right outlet and send the modified items back to the right
inlet. Here the modified elements get packed into a list again and
sent to the left outlet of [list-map2].;
#N canvas 239 121 843 692 more-examples 0;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-in1 64 float 0;
#X coords 0 1 63 -1 128 60 1;
#X restore 366 91 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-in2 64 float 0;
#X coords 0 1 63 -1 128 60 1;
#X restore 508 91 graph;
#X msg 68 83 bang;
#N canvas 0 0 297 280 noise 0;
#X obj 33 115 random 1000;
#X obj 33 88 t b a;
#X obj 33 143 / 500;
#X obj 33 163 - 1;
#X msg 33 44 64;
#N canvas 0 0 450 300 countto 0;
#X obj 163 151 f 0;
#X obj 190 151 + 1;
#X obj 163 109 until;
#X msg 205 111 0;
#X obj 163 180 outlet;
#X obj 163 39 inlet;
#X obj 163 87 t a b;
#X connect 0 0 1 0;
#X connect 0 0 4 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 0 1;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 6 1 3 0;
#X restore 33 66 pd countto;
#X obj 33 21 inlet;
#X obj 33 194 tabwrite \$0-in2;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 1 1 7 1;
#X connect 2 0 3 0;
#X connect 3 0 7 0;
#X connect 4 0 5 0;
#X connect 5 0 1 0;
#X connect 6 0 4 0;
#X restore 508 52 pd noise;
#X msg 508 28 make noise;
#X msg 527 184 const 0;
#X obj 527 280 s \$0-out;
#X text 586 168 impulse;
#X obj 149 164 list-map2;
#N canvas 414 307 598 380 tabdump-ins 0;
#X obj 187 213 list prepend;
#X obj 278 213 t a;
#X obj 125 254 list;
#X obj 125 23 inlet;
#X obj 125 279 outlet;
#X msg 187 92 64;
#N canvas 0 0 450 300 countto 0;
#X obj 163 151 f 0;
#X obj 190 151 + 1;
#X obj 163 109 until;
#X msg 205 111 0;
#X obj 163 180 outlet;
#X obj 163 39 inlet;
#X obj 163 87 t a b;
#X connect 0 0 1 0;
#X connect 0 0 4 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 0 1;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 6 1 3 0;
#X restore 187 114 pd countto;
#X obj 187 136 t a a;
#X obj 320 213 list prepend;
#X obj 411 213 t a;
#X obj 320 190 tabread \$0-in2;
#X obj 187 190 tabread \$0-in1;
#X obj 187 256 list;
#X obj 187 281 outlet;
#X obj 125 46 t b b b b b;
#X connect 0 0 2 1;
#X connect 0 0 1 0;
#X connect 1 0 0 1;
#X connect 2 0 4 0;
#X connect 3 0 14 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 11 0;
#X connect 7 1 10 0;
#X connect 8 0 9 0;
#X connect 8 0 12 1;
#X connect 9 0 8 1;
#X connect 10 0 8 0;
#X connect 11 0 0 0;
#X connect 12 0 13 0;
#X connect 14 0 2 0;
#X connect 14 1 12 0;
#X connect 14 2 5 0;
#X connect 14 3 0 1;
#X connect 14 4 8 1;
#X restore 149 134 pd tabdump-ins;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-out-max 64 float 0;
#X coords 0 1 63 -1 128 60 1;
#X restore 363 174 graph;
#X obj 149 192 list prepend 0;
#X obj 527 225 s \$0-in1;
#X msg 588 184 const 0 \, 16 1;
#X obj 231 165 max;
#X obj 527 249 s \$0-in2;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-out-min 64 float 0;
#X coords 0 1 63 -1 128 60 1;
#X restore 364 274 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-out-mul 64 float 0;
#X coords 0 1 63 -1 128 60 1;
#X restore 364 398 graph;
#X obj 150 277 list-map2;
#X obj 150 305 list prepend 0;
#X obj 150 327 s \$0-out-min;
#X obj 232 278 min;
#X obj 150 390 list-map2;
#X obj 150 418 list prepend 0;
#X obj 232 391 *;
#X obj 150 440 s \$0-out-mul;
#X obj 149 214 s \$0-out-max;
#N canvas 414 307 598 380 tabdump-ins 0;
#X obj 187 213 list prepend;
#X obj 278 213 t a;
#X obj 125 254 list;
#X obj 125 23 inlet;
#X obj 125 279 outlet;
#X msg 187 92 64;
#N canvas 0 0 450 300 countto 0;
#X obj 163 151 f 0;
#X obj 190 151 + 1;
#X obj 163 109 until;
#X msg 205 111 0;
#X obj 163 180 outlet;
#X obj 163 39 inlet;
#X obj 163 87 t a b;
#X connect 0 0 1 0;
#X connect 0 0 4 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 0 1;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 6 1 3 0;
#X restore 187 114 pd countto;
#X obj 187 136 t a a;
#X obj 320 213 list prepend;
#X obj 411 213 t a;
#X obj 320 190 tabread \$0-in2;
#X obj 187 190 tabread \$0-in1;
#X obj 187 256 list;
#X obj 187 281 outlet;
#X obj 125 46 t b b b b b;
#X connect 0 0 2 1;
#X connect 0 0 1 0;
#X connect 1 0 0 1;
#X connect 2 0 4 0;
#X connect 3 0 14 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 11 0;
#X connect 7 1 10 0;
#X connect 8 0 9 0;
#X connect 8 0 12 1;
#X connect 9 0 8 1;
#X connect 10 0 8 0;
#X connect 11 0 0 0;
#X connect 12 0 13 0;
#X connect 14 0 2 0;
#X connect 14 1 12 0;
#X connect 14 2 5 0;
#X connect 14 3 0 1;
#X connect 14 4 8 1;
#X restore 150 252 pd tabdump-ins;
#N canvas 414 307 598 380 tabdump-ins 0;
#X obj 187 213 list prepend;
#X obj 278 213 t a;
#X obj 125 254 list;
#X obj 125 23 inlet;
#X obj 125 279 outlet;
#X msg 187 92 64;
#N canvas 0 0 450 300 countto 0;
#X obj 163 151 f 0;
#X obj 190 151 + 1;
#X obj 163 109 until;
#X msg 205 111 0;
#X obj 163 180 outlet;
#X obj 163 39 inlet;
#X obj 163 87 t a b;
#X connect 0 0 1 0;
#X connect 0 0 4 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 0 1;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 6 1 3 0;
#X restore 187 114 pd countto;
#X obj 187 136 t a a;
#X obj 320 213 list prepend;
#X obj 411 213 t a;
#X obj 320 190 tabread \$0-in2;
#X obj 187 190 tabread \$0-in1;
#X obj 187 256 list;
#X obj 187 281 outlet;
#X obj 125 46 t b b b b b;
#X connect 0 0 2 1;
#X connect 0 0 1 0;
#X connect 1 0 0 1;
#X connect 2 0 4 0;
#X connect 3 0 14 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 11 0;
#X connect 7 1 10 0;
#X connect 8 0 9 0;
#X connect 8 0 12 1;
#X connect 9 0 8 1;
#X connect 10 0 8 0;
#X connect 11 0 0 0;
#X connect 12 0 13 0;
#X connect 14 0 2 0;
#X connect 14 1 12 0;
#X connect 14 2 5 0;
#X connect 14 3 0 1;
#X connect 14 4 8 1;
#X restore 150 365 pd tabdump-ins;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-out-xfade 64 float 0;
#X coords 0 1 63 -1 128 60 1;
#X restore 365 534 graph;
#X obj 151 582 list-map2;
#X obj 151 610 list prepend 0;
#N canvas 414 307 598 380 tabdump-ins 0;
#X obj 187 213 list prepend;
#X obj 278 213 t a;
#X obj 125 254 list;
#X obj 125 23 inlet;
#X obj 125 279 outlet;
#X msg 187 92 64;
#N canvas 0 0 450 300 countto 0;
#X obj 163 151 f 0;
#X obj 190 151 + 1;
#X obj 163 109 until;
#X msg 205 111 0;
#X obj 163 180 outlet;
#X obj 163 39 inlet;
#X obj 163 87 t a b;
#X connect 0 0 1 0;
#X connect 0 0 4 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 0 1;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 6 1 3 0;
#X restore 187 114 pd countto;
#X obj 187 136 t a a;
#X obj 320 213 list prepend;
#X obj 411 213 t a;
#X obj 320 190 tabread \$0-in2;
#X obj 187 190 tabread \$0-in1;
#X obj 187 256 list;
#X obj 187 281 outlet;
#X obj 125 46 t b b b b b;
#X connect 0 0 2 1;
#X connect 0 0 1 0;
#X connect 1 0 0 1;
#X connect 2 0 4 0;
#X connect 3 0 14 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 11 0;
#X connect 7 1 10 0;
#X connect 8 0 9 0;
#X connect 8 0 12 1;
#X connect 9 0 8 1;
#X connect 10 0 8 0;
#X connect 11 0 0 0;
#X connect 12 0 13 0;
#X connect 14 0 2 0;
#X connect 14 1 12 0;
#X connect 14 2 5 0;
#X connect 14 3 0 1;
#X connect 14 4 8 1;
#X restore 151 529 pd tabdump-ins;
#X obj 151 632 s \$0-out-xfade;
#X obj 154 487 hsl 64 15 0 1 0 0 empty empty crossfade_0-1 -2 -8 1
10 -262144 -1 -1 6300 1;
#X obj 151 506 t b a;
#N canvas 0 0 450 300 xfade 0;
#X obj 54 131 -;
#X obj 54 155 * 0.5;
#X obj 54 182 +;
#X obj 104 48 inlet;
#X obj 54 48 inlet;
#X obj 54 206 outlet;
#X obj 54 81 unpack 0 0;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 5 0;
#X connect 3 0 1 1;
#X connect 4 0 6 0;
#X connect 6 0 0 0;
#X connect 6 1 0 1;
#X connect 6 1 2 1;
#X restore 234 582 pd xfade;
#X obj 258 520 hsl 64 15 0 1 0 0 empty empty crossfade_0-1 -2 -8 1
10 -262144 -1 -1 6300 1;
#X obj 255 539 t b a;
#X obj 298 640 list-inter;
#X text 272 622 this is similar to:;
#X connect 2 0 9 0;
#X connect 2 0 27 0;
#X connect 2 0 28 0;
#X connect 2 0 32 0;
#X connect 4 0 3 0;
#X connect 5 0 6 0;
#X connect 5 0 12 0;
#X connect 5 0 15 0;
#X connect 8 0 11 0;
#X connect 8 1 14 0;
#X connect 9 0 8 0;
#X connect 9 1 8 1;
#X connect 11 0 26 0;
#X connect 13 0 12 0;
#X connect 14 0 8 2;
#X connect 18 0 19 0;
#X connect 18 1 21 0;
#X connect 19 0 20 0;
#X connect 21 0 18 2;
#X connect 22 0 23 0;
#X connect 22 1 24 0;
#X connect 23 0 25 0;
#X connect 24 0 22 2;
#X connect 27 0 18 0;
#X connect 27 1 18 1;
#X connect 28 0 22 0;
#X connect 28 1 22 1;
#X connect 30 0 31 0;
#X connect 30 1 36 0;
#X connect 31 0 33 0;
#X connect 32 0 30 0;
#X connect 32 1 30 1;
#X connect 34 0 35 0;
#X connect 35 0 32 0;
#X connect 35 1 36 1;
#X connect 36 0 30 2;
#X connect 37 0 38 0;
#X connect 38 0 30 0;
#X connect 38 1 36 1;
#X restore 69 595 pd more-examples;
#X text 67 237 bang will redo the last two lists;
#X text 324 411 If the second list is too short \, its final element
will be repeated:;
#X text 65 32 [list-map2] - map an operation on element pairs from
two lists.;
#X text 67 626 2007 Frank Barknecht;
#X connect 0 0 25 2;
#X connect 1 0 0 1;
#X connect 2 0 25 0;
#X connect 6 0 25 0;
#X connect 7 0 25 1;
#X connect 8 0 20 0;
#X connect 9 0 27 0;
#X connect 10 0 12 0;
#X connect 11 0 10 0;
#X connect 13 0 27 2;
#X connect 14 0 12 0;
#X connect 15 0 27 0;
#X connect 16 0 19 0;
#X connect 17 0 16 0;
#X connect 18 0 26 0;
#X connect 20 0 5 0;
#X connect 20 1 4 0;
#X connect 20 1 21 0;
#X connect 21 0 20 2;
#X connect 22 0 20 1;
#X connect 23 0 20 0;
#X connect 24 0 27 1;
#X connect 25 0 3 0;
#X connect 25 1 0 0;
#X connect 25 1 31 0;
#X connect 26 0 17 0;
#X connect 26 1 29 0;
#X connect 27 0 11 0;
#X connect 27 1 13 0;
#X connect 28 0 26 1;
#X connect 29 0 26 2;

--- NEW FILE: list-map-help.pd ---
#N canvas 344 116 618 692 10;
#X obj 67 310 list-map;
#X text 65 32 [list-map] - the swiss army knife of list-operations
;
#X obj 135 310 spigot;
#X obj 171 293 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X msg 67 266 0 1 2 3;
#X obj 118 347 print SERIALIZED;
#X obj 67 376 print MAIN;
#X msg 313 268 0 1 2 3;
#X obj 364 349 print SERIALIZED;
#X obj 313 378 print MAIN;
#X floatatom 404 292 5 0 0 0 - - -;
#X msg 67 245 bang;
#X msg 145 265 a b c;
#X msg 145 245 bang;
#X obj 381 312 * 10;
#X msg 313 244 bang;
#X msg 72 447 0 1 2 3;
#X obj 72 536 list trim;
#X obj 72 516 list prepend set;
#X msg 72 558;
#X obj 138 471 list append -|-;
#X msg 227 541 set;
#X text 304 564 A more complex example:;
#N canvas 164 99 846 438 filters 0;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-in 64 float 0;
#X coords 0 1 63 -1 128 60 1;
#X restore 503 222 graph;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-out 64 float 0;
#X coords 0 1 63 -1 128 60 1;
#X restore 645 222 graph;
#X obj 110 316 s \$0-out;
#N canvas 414 307 437 371 tabdump-in 0;
#X obj 147 152 tabread \$0-in;
#X obj 147 205 list prepend;
#X obj 238 205 t a;
#X obj 125 254 list;
#X obj 125 23 inlet;
#X obj 125 279 outlet;
#X obj 125 46 t b b b;
#X msg 147 104 64;
#N canvas 0 0 450 300 countto 0;
#X obj 163 151 f 0;
#X obj 190 151 + 1;
#X obj 163 109 until;
#X msg 205 111 0;
#X obj 163 180 outlet;
#X obj 163 39 inlet;
#X obj 163 87 t a b;
#X connect 0 0 1 0;
#X connect 0 0 4 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 0 1;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 6 1 3 0;
#X restore 147 126 pd countto;
#X connect 0 0 1 0;
#X connect 1 0 3 1;
#X connect 1 0 2 0;
#X connect 2 0 1 1;
#X connect 3 0 5 0;
#X connect 4 0 6 0;
#X connect 6 0 3 0;
#X connect 6 1 7 0;
#X connect 6 2 1 1;
#X connect 7 0 8 0;
#X connect 8 0 0 0;
#X restore 110 206 pd tabdump-in;
#X msg 110 155 bang;
#X obj 110 294 list prepend 0;
#N canvas 0 0 297 272 pole 0;
#X obj 71 140 +;
#X obj 71 172 t a a;
#X obj 117 173 * 0.9;
#X obj 71 54 inlet;
#X obj 147 51 inlet;
#X obj 71 230 outlet;
#X text 72 17 one-pole filter;
#X obj 147 74 t b a;
#X msg 87 118 0;
#X connect 0 0 1 0;
#X connect 1 0 5 0;
#X connect 1 1 2 0;
#X connect 2 0 0 1;
#X connect 3 0 0 0;
#X connect 4 0 7 0;
#X connect 7 0 8 0;
#X connect 7 1 2 1;
#X connect 8 0 0 1;
#X restore 297 269 pd pole;
#X obj 269 117 hsl 64 15 0 0.99 0 0 empty empty filter-coeff -2 -8
1 10 -262144 -1 -1 0 1;
#N canvas 0 0 297 272 zero 0;
#X obj 71 142 t a a;
#X obj 71 44 inlet;
#X obj 124 41 inlet;
#X obj 71 230 outlet;
#X text 71 20 one-zero filter;
#X obj 71 204 +;
#X obj 154 112 * -1;
#X obj 71 168 * -0.5;
#X obj 124 66 t b a;
#X msg 87 113 0;
#X connect 0 0 7 0;
#X connect 0 1 5 0;
#X connect 1 0 0 0;
#X connect 2 0 8 0;
#X connect 5 0 3 0;
#X connect 6 0 7 1;
#X connect 7 0 5 1;
#X connect 8 0 9 0;
#X connect 8 1 6 0;
#X connect 9 0 5 1;
#X restore 244 269 pd zero;
#N canvas 0 0 341 267 split 0;
#X obj 11 193 outlet;
#X obj 68 194 outlet;
#X obj 11 143 list prepend 0;
#X obj 11 169 route 0 1;
#X obj 104 110 hradio 12 1 0 2 empty empty zero 28 3 1 10 -262144 -1
-1 0;
#X obj 11 68 inlet;
#X obj 180 33 select 0 1;
#X msg 180 62 label zero;
#X msg 211 87 label pole;
#X obj 104 38 loadbang;
#X msg 104 64 0;
#X connect 2 0 3 0;
#X connect 3 0 0 0;
#X connect 3 1 1 0;
#X connect 4 0 2 1;
#X connect 4 0 6 0;
#X connect 5 0 2 0;
#X connect 6 0 7 0;
#X connect 6 1 8 0;
#X connect 7 0 4 0;
#X connect 8 0 4 0;
#X connect 9 0 10 0;
#X connect 10 0 4 0;
#X coords 0 -1 1 1 60 30 2 100 100;
#X restore 244 217 pd split;
#X floatatom 266 139 5 0 0 0 - - -;
#N canvas 0 0 297 280 noise 0;
#X obj 33 115 random 1000;
#X obj 33 88 t b a;
#X obj 33 194 tabwrite \$0-in;
#X obj 33 143 / 500;
#X obj 33 163 - 1;
#X msg 33 44 64;
#N canvas 0 0 450 300 countto 0;
#X obj 163 151 f 0;
#X obj 190 151 + 1;
#X obj 163 109 until;
#X msg 205 111 0;
#X obj 163 180 outlet;
#X obj 163 39 inlet;
#X obj 163 87 t a b;
#X connect 0 0 1 0;
#X connect 0 0 4 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 0 1;
#X connect 5 0 6 0;
#X connect 6 0 2 0;
#X connect 6 1 3 0;
#X restore 33 66 pd countto;
#X obj 33 21 inlet;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 1 1 2 1;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X connect 5 0 6 0;
#X connect 6 0 1 0;
#X connect 7 0 5 0;
#X restore 504 184 pd noise;
#X msg 504 160 make noise;
#X obj 266 158 t b a a;
#X msg 439 324 const 0;
#X obj 439 365 s \$0-in;
#X obj 440 390 s \$0-out;
#X msg 500 324 const 0 \, 16 1;
#X text 498 308 impulse;
#X text 112 34 This is a more complex example showing how to apply
a set of elementary filters on a list of floats. Try playing with the
coeff-slider and switch between pole and zero operation.;
#X obj 110 236 list-map;
#X connect 3 0 20 0;
#X connect 4 0 3 0;
#X connect 5 0 2 0;
#X connect 6 0 20 1;
#X connect 7 0 10 0;
#X connect 8 0 20 1;
#X connect 9 0 8 0;
#X connect 9 1 6 0;
#X connect 10 0 13 0;
#X connect 12 0 11 0;
#X connect 13 0 3 0;
#X connect 13 1 8 1;
#X connect 13 2 6 1;
#X connect 14 0 15 0;
#X connect 14 0 16 0;
#X connect 17 0 15 0;
#X connect 20 0 5 0;
#X connect 20 1 9 0;
#X restore 330 586 pd filters;
#X text 67 626 2007 Frank Barknecht \, original idea by IOhannes m
zmoelnig and Thomas Musil.;
#X obj 313 312 list-map;
#X obj 72 471 list-map;
#X msg 71 421 bang;
#X text 64 72 Calls a user-defined operation for each of the incoming
list's items and returns a list of the return values.;
#X text 64 120 [list-map] is a helper abstraction to make element-wise
operations on lists easy to patch. The basic idea is to bundle a list-serializer
and a list-repacker into one object. Then you connect whatever operation
should be applied on every list item to the right outlet and send the
modified items back to the right inlet. Here the modified elements
get packed into a list again and sent to the left outlet of [list-map].
;
#X obj 315 460 list-map;
#X obj 315 502 list trim;
#X obj 315 482 list prepend set;
#X obj 387 460 pow 3;
#X floatatom 417 437 5 0 0 0 - - -;
#X msg 315 435 1 2 3 4 5;
#X msg 315 524;
#X connect 0 0 6 0;
#X connect 0 1 2 0;
#X connect 0 1 5 0;
#X connect 2 0 0 1;
#X connect 3 0 2 1;
#X connect 4 0 0 0;
#X connect 7 0 25 0;
#X connect 10 0 14 1;
#X connect 11 0 0 0;
#X connect 12 0 0 1;
#X connect 13 0 0 1;
#X connect 14 0 25 1;
#X connect 15 0 25 0;
#X connect 16 0 26 0;
#X connect 17 0 19 0;
#X connect 18 0 17 0;
#X connect 20 0 26 1;
#X connect 21 0 19 0;
#X connect 25 0 9 0;
#X connect 25 1 8 0;
#X connect 25 1 14 0;
#X connect 26 0 18 0;
#X connect 26 1 20 0;
#X connect 27 0 26 0;
#X connect 30 0 32 0;
#X connect 30 1 33 0;
#X connect 31 0 36 0;
#X connect 32 0 31 0;
#X connect 33 0 30 1;
#X connect 34 0 33 1;
#X connect 35 0 30 0;

--- NEW FILE: compare-any.pd ---
#N canvas 460 148 653 646 10;
#X obj 118 28 inlet;
#X obj 118 451 outlet;
#X obj 118 336 ==;
#X obj 118 358 select 1;
#N canvas 272 259 450 300 demux 0;
#X obj 76 87 inlet;
#X obj 169 86 inlet;
#X obj 76 145 list prepend 0;
#X obj 76 186 route 0 1;
#X obj 76 242 outlet;
#X obj 105 213 outlet;
#X connect 0 0 2 0;
#X connect 1 0 2 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 5 0;
#X restore 118 230 pd demux;
#X msg 169 207 0;
#X msg 200 206 1;
#X obj 118 295 route float;
#X obj 219 293 route symbol;
#X obj 359 199 print HUH?;
#X obj 219 272 list;
#X obj 238 164 route float symbol;
#X obj 238 136 list;
#X msg 118 423 1;
#X msg 190 418 0;
#X obj 238 28 inlet;
#X obj 219 356 select [DUMMY-SYMBOL];
#X connect 0 0 4 0;
#X connect 2 0 3 0;
#X connect 3 0 13 0;
#X connect 3 1 14 0;
#X connect 4 0 7 0;
#X connect 4 1 10 0;
#X connect 5 0 4 1;
#X connect 6 0 4 1;
#X connect 7 0 2 0;
#X connect 7 1 14 0;
#X connect 8 0 16 0;
#X connect 8 1 14 0;
#X connect 10 0 8 0;
#X connect 11 0 2 1;
#X connect 11 0 5 0;
#X connect 11 1 6 0;
#X connect 11 1 16 1;
#X connect 11 2 9 0;
#X connect 12 0 11 0;
#X connect 13 0 1 0;
#X connect 14 0 1 0;
#X connect 15 0 12 0;
#X connect 16 0 13 0;
#X connect 16 1 14 0;

--- NEW FILE: list-inter-many.pd ---
#N canvas 452 377 578 375 10;
#X obj 85 312 list-inter;
#X obj 263 227 textfile;
#N canvas 490 388 450 300 get-list 0;
#X obj 61 48 inlet;
#X msg 105 133 rewind;
#X obj 83 158 until;
#X obj 61 74 f;
#X obj 61 97 t b a b;
#X obj 61 221 outlet;
#X obj 83 202 outlet;
#X connect 0 0 3 0;
#X connect 1 0 6 0;
#X connect 2 0 6 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 4 1 2 0;
#X connect 4 2 1 0;
#X restore 191 193 pd get-list;
#X obj 191 263 list;
#X obj 337 27 inlet;
#X obj 191 97 int;
#X obj 191 161 + 1;
#X obj 191 139 t a a;
#X obj 221 161 + 2;
#N canvas 490 388 450 300 get-list 0;
#X obj 61 48 inlet;
#X msg 105 133 rewind;
#X obj 83 158 until;
#X obj 61 74 f;
#X obj 61 97 t b a b;
#X obj 61 221 outlet;
#X obj 83 198 outlet;
#X connect 0 0 3 0;
#X connect 1 0 6 0;
#X connect 2 0 6 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 4 1 2 0;
#X connect 4 2 1 0;
#X restore 358 192 pd get-list;
#X obj 358 262 list;
#X obj 191 119 change;
#X obj 85 22 inlet;
#X obj 85 47 t a a;
#X obj 85 335 outlet;
#X obj 337 84 t b a;
#X obj 147 77 moses 0;
#N canvas 0 0 450 300 wrap 0;
#X obj 139 160 -;
#X obj 169 137 int;
#X obj 139 116 t a a;
#X obj 139 91 inlet;
#X obj 139 185 outlet;
#X connect 0 0 4 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 2 1 1 0;
#X connect 3 0 2 0;
#X restore 85 128 pd wrap;
#X connect 0 0 14 0;
#X connect 1 0 3 1;
#X connect 1 0 10 1;
#X connect 2 0 3 0;
#X connect 2 1 1 0;
#X connect 3 0 0 1;
#X connect 4 0 15 0;
#X connect 5 0 11 0;
#X connect 6 0 2 0;
#X connect 7 0 6 0;
#X connect 7 1 8 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 9 1 1 0;
#X connect 10 0 0 2;
#X connect 11 0 7 0;
#X connect 12 0 13 0;
#X connect 13 0 17 0;
#X connect 13 1 16 0;
#X connect 15 0 11 0;
#X connect 15 1 1 0;
#X connect 16 1 5 0;
#X connect 17 0 0 0;

--- NEW FILE: list-geometric-mean.pd ---
#N canvas 355 173 457 428 10;
#X obj 127 69 inlet;
#X obj 127 337 outlet;
#X obj 146 138 list-drip;
#X obj 146 164 route float;
#X obj 127 274 f;
#N canvas 425 298 450 300 count 0;
#X obj 133 59 b;
#X obj 133 35 inlet;
#X obj 183 35 inlet;
#X obj 164 111 + 1;
#X obj 133 133 outlet;
#X msg 183 71 1;
#X obj 133 110 f 1;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 2 0 5 0;
#X connect 3 0 6 1;
#X connect 5 0 6 1;
#X connect 6 0 3 0;
#X connect 6 0 4 0;
#X restore 222 226 pd count;
#X obj 146 189 t a b;
#X obj 127 105 t b a b b;
#X obj 222 253 pow -1;
#X obj 127 302 pow;
#N canvas 370 313 450 300 product 0;
#X obj 135 79 inlet;
#X obj 182 79 inlet;
#X obj 135 169 outlet;
#X obj 168 138 f;
#X obj 135 137 *;
#X obj 182 102 1;
#X connect 0 0 4 0;
#X connect 1 0 5 0;
#X connect 3 0 4 1;
#X connect 4 0 2 0;
#X connect 4 0 3 0;
#X connect 5 0 4 1;
#X restore 146 225 pd product;
#X connect 0 0 7 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 9 0;
#X connect 5 0 8 0;
#X connect 6 0 10 0;
#X connect 6 1 5 0;
#X connect 7 0 4 0;
#X connect 7 1 2 0;
#X connect 7 2 10 1;
#X connect 7 3 5 1;
#X connect 8 0 9 1;
#X connect 9 0 1 0;
#X connect 10 0 4 1;

--- NEW FILE: list-centroid-help.pd ---
#N struct 1002-centroid float x;
#N canvas 285 188 596 561 10;
#X floatatom 129 468 5 0 0 0 centroid - -;
#X msg 129 363 1 1 1 1;
#X msg 245 260 0 0 0 0;
#X msg 245 279 -1 1;
#X obj 215 469 bng 15 250 50 0 empty empty result_undefined 17 7 1
10 -262144 -1 -1;
#X msg 129 245 0 1 0;
#X obj 129 439 list-centroid;
#X text 63 25 [list-centroid];
#X text 93 90 centroid = sum(mi * i) / sum(mi);
#X text 71 49 Calculates the centroid or center of mass of a list of
floats according to:;
#X text 67 115 where the index i starts from 0;
#X msg 247 344 -1 3;
#X msg 129 287 1 2 3;
#X text 314 270 these two are undefined!;
#X msg 129 341 5 5 5;
#N canvas 0 0 450 300 randlist 0;
#X obj 134 129 until;
#X msg 246 151 set;
#X msg 134 193 add2 \$1;
#X obj 112 101 t b f b;
#X obj 135 249 outlet;
#X obj 112 31 inlet;
#X obj 112 73 + 1;
#X obj 112 53 random 10;
#X obj 134 151 random 10;
#X obj 134 171 - 5;
#X connect 0 0 8 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 3 2 1 0;
#X connect 5 0 7 0;
#X connect 6 0 3 0;
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X connect 9 0 2 0;
#X restore 295 337 pd randlist;
#X msg 295 363 4;
#X msg 295 315 bang;
#X msg 129 306 10 20 30;
#X msg 129 267 0 2 0 0 0 1;
#X msg 248 325 -1 2;
#X msg 248 407 -10 9;
#X text 305 406 Note: a centroid can be negative!;
#X text 75 520 2007 Frank Barknecht;
#X text 67 146 Negative values are possible.;
#X text 65 174 If all floats add up to 0 \, the result is undefined.
In this case \, no result will be sent to the first outlet \, instead
the second outlet will bang and a console warning will be issued.;
#N canvas 318 53 641 556 graphical-centroid 0;
#N canvas 0 0 450 300 randlist 0;
#X obj 134 129 until;
#X msg 246 151 set;
#X msg 134 193 add2 \$1;
#X obj 112 101 t b f b;
#X obj 135 249 outlet;
#X obj 112 31 inlet;
#X obj 134 151 random 100;
#X obj 134 171 / 100;
#X msg 112 59 10;
#X connect 0 0 6 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 3 2 1 0;
#X connect 5 0 8 0;
#X connect 6 0 7 0;
#X connect 7 0 2 0;
#X connect 8 0 3 0;
#X restore 79 388 pd randlist;
#X msg 79 366 bang;
#X obj 79 447 list prepend 0;
#X obj 79 470 s \$0-tab;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-tab 10 float 0;
#X coords 0 1 9 0 200 140 1;
#X restore 79 105 graph;
#N canvas 0 0 694 427 \$0-c 0;
#X scalar 1002-centroid 3.63093 \;;
#X coords 0 0 18 140 200 140 1;
#X restore 79 105 pd \$0-c;
#X floatatom 339 346 5 0 0 0 - - -;
#X obj 339 313 list-centroid;
#N canvas 336 319 712 355 \$0-centroid 0;
#X obj 19 329 outlet;
#X obj 19 86 route change;
#X obj 19 62 struct \$0-centroid float x;
#X obj 228 62 drawpolygon 900 2 x 0 x 140;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X restore 453 315 pd \$0-centroid;
#X obj 339 367 set \$0-centroid x;
#N canvas 0 0 503 429 create 0;
#X msg 242 258 traverse pd-\$1 \, bang;
#X obj 242 238 symbol \$0-c;
#X msg 107 79 0;
#X obj 242 278 pointer;
#X msg 243 178 clear;
#X obj 243 205 s pd-\$0-c;
#X obj 107 302 append \$0-centroid x;
#X obj 107 114 t a b b;
#X obj 107 50 loadbang;
#X obj 107 326 outlet;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 7 0;
#X connect 3 0 6 1;
#X connect 4 0 5 0;
#X connect 6 0 9 0;
#X connect 7 0 6 0;
#X connect 7 1 1 0;
#X connect 7 2 4 0;
#X connect 8 0 2 0;
#X restore 468 339 pd create;
#X obj 339 127 metro 50;
#X obj 339 102 tgl 15 0 empty empty show-centroid 17 7 1 10 -258699
-262144 -1 1 1;
#N canvas 473 338 450 300 countto 0;
#X obj 131 154 f 0;
#X obj 156 153 + 1;
#X msg 174 113 0;
#X obj 131 183 outlet;
#X obj 131 59 inlet;
#X obj 131 116 until;
#X obj 131 96 t a b;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 1 0 0 1;
#X connect 2 0 0 1;
#X connect 4 0 6 0;
#X connect 5 0 0 0;
#X connect 6 0 5 0;
#X connect 6 1 2 0;
#X restore 362 195 pd countto;
#X obj 362 219 tabread \$0-tab;
#X obj 362 249 list prepend;
#X obj 452 249 t a;
#X msg 362 175 10;
#X obj 339 148 t b b b;
#X obj 339 274 list;
#X text 77 30 Switch on the "show-centroid"-metro and play with the
values in the array.;
#X obj 79 344 loadbang;
#X msg 79 414 0.53 0.99 0.91 0.59 0.63 0.23 0.71 0.87 0.01 0.22;
#X connect 0 0 22 0;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 6 0 9 0;
#X connect 7 0 6 0;
#X connect 8 0 9 1;
#X connect 10 0 9 1;
#X connect 11 0 18 0;
#X connect 12 0 11 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 15 0 19 1;
#X connect 16 0 15 1;
#X connect 17 0 13 0;
#X connect 18 0 19 0;
#X connect 18 1 17 0;
#X connect 18 2 15 1;
#X connect 19 0 7 0;
#X connect 21 0 1 0;
#X connect 22 0 2 0;
#X restore 392 510 pd graphical-centroid;
#X text 321 510 Also see:;
#X connect 1 0 6 0;
#X connect 2 0 6 0;
#X connect 3 0 6 0;
#X connect 5 0 6 0;
#X connect 6 0 0 0;
#X connect 6 1 4 0;
#X connect 11 0 6 0;
#X connect 12 0 6 0;
#X connect 14 0 6 0;
#X connect 15 0 16 0;
#X connect 16 0 6 0;
#X connect 17 0 15 0;
#X connect 18 0 6 0;
#X connect 19 0 6 0;
#X connect 20 0 6 0;
#X connect 21 0 6 0;

--- NEW FILE: list-compare-help.pd ---
#N canvas 324 167 529 463 10;
#X floatatom 149 244 5 0 0 0 - - -;
#X obj 213 244 loadbang;
#X msg 149 217 0;
#X msg 179 217 4;
#X msg 134 169 seven;
#X msg 134 196 symbol eight;
#X obj 134 316 list-compare;
#X obj 134 354 tgl 24 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 134 389 print EQUAL?;
#X text 69 21 [list-compare];
#X text 108 42 Compare two lists element by element.;
#X floatatom 228 295 5 0 0 0 - - -;
#X text 134 90 Out: 1 if equal \, 0 if not equal.;
#X text 134 66 In: two lists to compare.;
#X msg 134 115 0 1 2 3 4 5 6 seven eight;
#X msg 134 142 0 1 2 3 4 5 6 seventy eight;
#X msg 213 271 0 1 2 3 4 5 6 seven eight;
#X connect 0 0 6 0;
#X connect 1 0 16 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 6 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 11 0 6 1;
#X connect 14 0 6 0;
#X connect 15 0 6 0;
#X connect 16 0 6 1;

--- NEW FILE: list-filter-help.pd ---
#N canvas 367 75 578 673 10;
#X obj 226 453 mod 2;
#X obj 226 483 != 0;
#X obj 274 454 mod 3;
#X obj 274 483 != 0;
#X obj 226 517 &&;
#X obj 226 426 t a a;
#N canvas 0 0 450 300 show 0;
#X obj 129 107 list prepend set;
#X obj 129 129 list trim;
#X obj 129 79 inlet;
#X obj 129 154 outlet;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 0 0;
#X restore 70 548 pd show;
#X msg 70 574;
#X text 62 27 [list-filter];
#X text 66 58 [list-filter] returns a sequence consisting of those
items from the sequence for which the user-defined operation cross-connected
to the rightmost in- and outlet is true.;
#X text 66 112 Everything that is not 0 is considered a TRUE value.
Internally [select 0] is used.;
#X msg 70 213 0 1 2 3 4 5;
#N canvas 0 0 450 300 show 0;
#X obj 129 107 list prepend set;
#X obj 129 129 list trim;
#X obj 129 79 inlet;
#X obj 129 154 outlet;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 0 0;
#X restore 70 306 pd show;
#X msg 70 332;
#X obj 167 266 >= 3;
#X text 67 163 Examples:;
#X text 217 266 remove values smaller than 3 from list;
#X obj 160 212 t b a;
#X floatatom 160 193 5 0 0 0 - - -;
#X text 200 212 "bang" to [list-filter] will resend the last list;
#X obj 70 265 list-filter;
#X text 70 362 Calculate some small primes:;
#X msg 70 387 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
23 24;
#X obj 70 471 list-filter;
#X msg 82 526 bang;
#X msg 79 285 bang;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 2 0 3 0;
#X connect 3 0 4 1;
#X connect 4 0 23 1;
#X connect 5 0 0 0;
#X connect 5 1 2 0;
#X connect 6 0 7 0;
#X connect 11 0 20 0;
#X connect 12 0 13 0;
#X connect 14 0 20 1;
#X connect 17 0 20 0;
#X connect 17 1 14 1;
#X connect 18 0 17 0;
#X connect 20 0 12 0;
#X connect 20 1 14 0;
#X connect 22 0 23 0;
#X connect 23 0 6 0;
#X connect 23 1 5 0;
#X connect 24 0 6 0;
#X connect 25 0 12 0;

--- NEW FILE: list-centroid.pd ---
#N canvas 204 70 675 629 10;
#X obj 127 475 f;
#X obj 127 65 inlet;
#X obj 127 561 outlet;
#X obj 163 170 list-enumerate;
#X obj 163 197 t a a;
#X obj 261 406 /;
#X obj 261 376 swap;
#X obj 210 345 select 0;
#N canvas 286 344 401 287 sum(mi*i) 0;
#X obj 126 138 +;
#X obj 153 139 f;
#X msg 168 88 0;
#X obj 126 66 inlet;
#X obj 168 66 inlet;
#X obj 126 171 outlet;
#X obj 126 103 *;
#X connect 0 0 1 0;
#X connect 0 0 5 0;
#X connect 1 0 0 1;
#X connect 2 0 0 1;
#X connect 3 0 6 0;
#X connect 4 0 2 0;
#X connect 6 0 0 0;
#X restore 284 255 pd sum(mi*i);
#N canvas 573 330 450 328 sum(mi) 0;
#X obj 179 137 +;
#X obj 206 138 f;
#X msg 296 77 0;
#X obj 179 55 inlet;
#X obj 296 55 inlet;
#X obj 179 170 outlet;
#X text 143 34 in: (idx value);
#X text 40 89 swap to: (val idx);
#X text 67 172 sum of values;
#X obj 179 89 swap;
#X connect 0 0 1 0;
#X connect 0 0 5 0;
#X connect 1 0 0 1;
#X connect 2 0 0 1;
#X connect 3 0 9 0;
#X connect 4 0 2 0;
#X connect 9 0 0 0;
#X restore 163 253 pd sum(mi);
#X obj 210 559 outlet;
#X obj 127 399 spigot 1;
#X obj 145 285 f;
#X obj 240 528 print list-centroid;
#X obj 210 468 t b b;
#X msg 240 503 warning: sum of items equals 0: centroid is undefined!
;
#X obj 127 89 t b b a b b;
#X text 69 26 centroid (center of mass) = sum(mi * i) / sum(mi);
#X connect 0 0 2 0;
#X connect 1 0 16 0;
#X connect 3 0 4 0;
#X connect 4 0 9 0;
#X connect 4 1 8 0;
#X connect 5 0 0 1;
#X connect 6 0 5 0;
#X connect 6 1 5 1;
#X connect 7 0 14 0;
#X connect 7 1 6 0;
#X connect 8 0 6 1;
#X connect 9 0 12 1;
#X connect 11 0 0 0;
#X connect 12 0 7 0;
#X connect 12 0 11 1;
#X connect 14 0 10 0;
#X connect 14 1 15 0;
#X connect 15 0 13 0;
#X connect 16 0 11 0;
#X connect 16 1 12 0;
#X connect 16 2 3 0;
#X connect 16 3 9 1;
#X connect 16 4 8 1;

--- NEW FILE: list-map.pd ---
#N canvas 470 232 489 423 10;
#X obj 86 33 inlet;
#X obj 275 52 inlet;
#X obj 151 352 outlet;
#X obj 170 248 outlet;
#X obj 151 317 list;
#X obj 170 215 list-drip;
#X obj 275 215 list prepend;
#X obj 354 185 t a;
#X obj 151 155 t b a a b;
#X obj 86 58 route bang;
#X obj 86 83 b;
#X obj 151 84 t b a;
#X obj 151 124 list;
#X connect 0 0 9 0;
#X connect 1 0 6 0;
#X connect 4 0 2 0;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 6 0 4 1;
#X connect 7 0 6 1;
#X connect 8 0 4 0;
#X connect 8 1 5 0;
#X connect 8 2 4 1;
#X connect 8 3 6 1;
#X connect 9 0 10 0;
#X connect 9 1 11 0;
#X connect 10 0 12 0;
#X connect 11 0 12 0;
#X connect 11 1 12 1;
#X connect 12 0 8 0;

--- NEW FILE: list-reduce.pd ---
#N canvas 238 102 593 526 10;
#X obj 86 33 inlet;
#X obj 275 52 inlet;
#X obj 151 352 outlet;
#X obj 205 353 outlet;
#X obj 86 58 route bang;
#X obj 86 83 b;
#X obj 151 84 t b a;
#X obj 151 124 list;
#X obj 151 233 list split 2;
#X obj 151 155 t a b;
#X obj 275 189 list append;
#X text 53 386 [list-reduce];
#X text 55 423 [list-reduce] returns a single value constructed by
calling the user-defined objects connected to the right outlet on the
first two items of the sequence \, then on the result (if it comes
in through the right inlet) and the next item \, and so on.;
#X obj 275 124 list split 1;
#X connect 0 0 4 0;
#X connect 1 0 13 0;
#X connect 4 0 5 0;
#X connect 4 1 6 0;
#X connect 5 0 7 0;
#X connect 6 0 7 0;
#X connect 6 1 7 1;
#X connect 7 0 9 0;
#X connect 8 0 3 0;
#X connect 8 1 10 1;
#X connect 8 2 2 0;
#X connect 9 0 8 0;
#X connect 9 1 10 1;
#X connect 10 0 8 0;
#X connect 13 0 10 0;

--- NEW FILE: list-enumerate-help.pd ---
#N canvas 541 286 540 454 10;
#X obj 152 196 list-enumerate;
#X obj 152 274 list trim;
#X obj 152 254 list prepend add;
#X msg 152 303;
#X text 41 39 [list-enumerate];
#X text 57 73 serialize a list and put numbers in front of every element
;
#X msg 225 275 set;
#X obj 152 158 t a b;
#X msg 152 137 a b c d 0 1 2 3;
#X obj 243 216 bng 15 250 50 0 empty empty EOL 17 7 1 10 -262144 -1
-1;
#X connect 0 0 2 0;
#X connect 0 1 9 0;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X connect 6 0 3 0;
#X connect 7 0 0 0;
#X connect 7 1 6 0;
#X connect 8 0 7 0;

--- NEW FILE: list-harmonic-mean-help.pd ---
#N struct 1029-dial float y;
#N canvas 402 177 566 571 10;
#N canvas 0 0 450 300 randlist 0;
#X obj 134 129 until;
#X msg 246 151 set;
#X msg 134 193 add2 \$1;
#X obj 112 101 t b f b;
#X obj 135 249 outlet;
#X obj 112 31 inlet;
#X obj 112 73 + 1;
#X obj 112 53 random 10;
#X obj 134 151 random 10;
#X obj 134 171 + 1;
#X connect 0 0 8 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 3 2 1 0;
#X connect 5 0 7 0;
#X connect 6 0 3 0;
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X connect 9 0 2 0;
#X restore 153 305 pd randlist;
#X msg 153 283 bang;
#X floatatom 98 439 5 0 0 1 harmonic_mean - -;
#X msg 153 331 3 5 3 3 8;
#X msg 98 228 1 2 3 4;
#X msg 98 254 any symbols 1 2 3 4 are ignored;
#X text 96 146 Non-floats in a list are silently dropped.;
#X text 96 119 where n is the total number of floats in a list.;
#N canvas 318 53 648 574 graphical-mean 0;
#N canvas 0 0 450 300 randlist 0;
#X obj 134 129 until;
#X msg 246 151 set;
#X msg 134 213 add2 \$1;
#X obj 112 101 t b f b;
#X obj 135 249 outlet;
#X obj 112 31 inlet;
#X obj 134 151 random 100;
#X msg 112 59 10;
#X obj 134 191 / 10;
#X obj 134 170 + 1;
#X connect 0 0 6 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 3 2 1 0;
#X connect 5 0 7 0;
#X connect 6 0 9 0;
#X connect 7 0 3 0;
#X connect 8 0 2 0;
#X connect 9 0 8 0;
#X restore 79 388 pd randlist;
#X msg 79 366 bang;
#X obj 79 447 list prepend 0;
#X obj 79 500 s \$0-tab;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-tab 10 float 0;
#X coords 0 10 9 0 200 140 1;
#X restore 75 152 graph;
#N canvas 0 0 916 918 \$0-c 0;
#X scalar 1029-dial 0 \;;
#X coords 0 0 200 140 200 140 1;
#X restore 75 152 pd \$0-c;
#N canvas 0 0 503 429 create 0;
#X msg 242 258 traverse pd-\$1 \, bang;
#X obj 242 238 symbol \$0-c;
#X msg 107 79 0;
#X obj 242 278 pointer;
#X msg 243 178 clear;
#X obj 243 205 s pd-\$0-c;
#X obj 107 114 t a b b;
#X obj 107 50 loadbang;
#X obj 107 326 outlet;
#X obj 107 302 append \$0-dial y;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 6 0;
#X connect 3 0 9 1;
#X connect 4 0 5 0;
#X connect 6 0 9 0;
#X connect 6 1 1 0;
#X connect 6 2 4 0;
#X connect 7 0 2 0;
#X connect 9 0 8 0;
#X restore 440 364 pd create;
#X obj 339 127 metro 50;
#X obj 339 102 tgl 15 0 empty empty show-mean 17 7 1 10 -258699 -262144
-1 0 1;
#N canvas 473 338 450 300 countto 0;
#X obj 131 154 f 0;
#X obj 156 153 + 1;
#X msg 174 113 0;
#X obj 131 183 outlet;
#X obj 131 59 inlet;
#X obj 131 116 until;
#X obj 131 96 t a b;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 1 0 0 1;
#X connect 2 0 0 1;
#X connect 4 0 6 0;
#X connect 5 0 0 0;
#X connect 6 0 5 0;
#X connect 6 1 2 0;
#X restore 362 195 pd countto;
#X obj 362 219 tabread \$0-tab;
#X obj 362 249 list prepend;
#X obj 452 249 t a;
#X msg 362 175 10;
#X obj 339 148 t b b b;
#X obj 339 274 list;
#X obj 79 344 loadbang;
#X text 77 30 Switch on the "show"-metro and play with the values in
the array.;
#N canvas 336 319 712 355 \$0-dial 0;
#X obj 19 119 outlet;
#X obj 19 86 route change;
#X obj 19 62 struct \$0-dial float y;
#X obj 229 62 drawpolygon 900 2 0 y 200 y;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X restore 425 340 pd \$0-dial;
#X msg 213 469 bounds 0 10 9 0;
#X obj 213 449 loadbang;
#X obj 339 388 set \$0-dial y;
#X floatatom 339 339 5 0 0 0 - - -;
#X msg 92 469 const 5;
#N canvas 0 0 299 354 scale 0;
#X msg 74 83 10 \$1;
#X obj 74 107 -;
#X obj 74 158 * 140;
#X obj 74 134 / 20;
#X obj 74 49 inlet;
#X obj 74 182 outlet;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 4 0 0 0;
#X restore 339 363 pd scale;
#X obj 339 313 list-harmonic-mean;
#X msg 79 414 7.4 4.8 2 8.4 5.6 3.6 1.1 8.6 5 8.6;
#X connect 0 0 26 0;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 6 0 21 1;
#X connect 7 0 14 0;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 11 0 15 1;
#X connect 12 0 11 1;
#X connect 13 0 9 0;
#X connect 14 0 15 0;
#X connect 14 1 13 0;
#X connect 14 2 11 1;
#X connect 15 0 25 0;
#X connect 16 0 1 0;
#X connect 18 0 21 1;
#X connect 19 0 3 0;
#X connect 20 0 19 0;
#X connect 22 0 24 0;
#X connect 23 0 3 0;
#X connect 24 0 21 0;
#X connect 25 0 22 0;
#X connect 26 0 2 0;
#X restore 98 459 pd graphical-mean;
#X obj 98 405 list-harmonic-mean;
#X text 86 22 [list-harmonic-mean];
#X text 96 51 Calculates the harmonic mean of a list (of floats) according
to:;
#X msg 154 357 0 1 2 3 4;
#X text 234 357 0 makes the harmonic mean limit to 0;
#X text 95 171 If a 0 occurs \, the harmonic mean is set to 0 \, because
if one value approaches zero \, the harmonic mean limits to zero as
well.;
#X obj 185 493 list-geometric-mean;
#X obj 184 515 list-mean;
#X text 97 494 More means:;
#X text 114 91 harmonic mean = n / (1/f0 + 1/f1 + 1/f2 + ... + 1/fn)
;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 3 0 9 0;
#X connect 4 0 9 0;
#X connect 5 0 9 0;
#X connect 9 0 2 0;
#X connect 12 0 9 0;

--- NEW FILE: list-reduce-help.pd ---
#N canvas 407 86 648 705 10;
#X floatatom 128 311 5 0 0 0 - - -;
#X msg 137 151 bang;
#X obj 179 306 print TWO_ITEMS;
#X obj 107 336 print RESULT;
#X msg 144 175 1;
#X msg 152 221 1 2 3;
#X msg 149 197 1 2;
#X msg 155 244 1 2 3 4;
#X text 182 152 redo last list;
#X text 73 22 [list-reduce];
#X text 188 176 list with only one item will pass unchanged.;
#X symbolatom 101 451 15 0 0 0 - - -;
#X msg 196 420 \$2-\$1;
#X obj 103 587 list-reduce;
#X msg 103 560 1 2 3 4 5 6 7 8;
#X msg 198 586 \$2 \$1;
#N canvas 209 220 605 355 more-info 0;
#X msg 84 101 bang;
#X obj 126 236 print TWO_ITEMS;
#X obj 54 266 print RESULT;
#X msg 91 125 1;
#X msg 99 171 1 2 3;
#X msg 96 147 1 2;
#X text 36 42 If nothing is connected to the right inlet \, [list-reduce]
will act like the left and right outlets of [list split 2] reversed.
;
#X obj 54 203 list-reduce;
#X msg 342 100 bang;
#X obj 385 244 print TWO_ITEMS;
#X obj 312 265 print RESULT;
#X msg 349 124 1;
#X msg 357 170 1 2 3;
#X msg 354 146 1 2;
#X obj 312 202 list split 2;
#X text 178 202 equal to this:;
#X connect 0 0 7 0;
#X connect 3 0 7 0;
#X connect 4 0 7 0;
#X connect 5 0 7 0;
#X connect 7 0 2 0;
#X connect 7 1 1 0;
#X connect 8 0 14 0;
#X connect 11 0 14 0;
#X connect 12 0 14 0;
#X connect 13 0 14 0;
#X connect 14 0 9 0;
#X connect 14 2 10 0;
#X restore 354 422 pd more-info;
#X obj 103 615 print REVERSE?;
#X obj 101 421 list-reduce;
#X text 93 64 [list-reduce] returns a single value constructed by calling
the user-defined objects connected to the right outlet on the first
two items of the sequence \, then on the result (if it comes in through
the right inlet) and the next item of the original list \, and so on.
;
#X obj 107 273 list-reduce;
#X text 100 485 It's important \, that there will be only one element
coming back in through the right inlet. Lists with more than one item
will be shortened automatically to avoid stack overflows.;
#X text 252 585 <-- two items == bad idea;
#X msg 101 394 a b c d e;
#X obj 329 275 list-reduce;
#X obj 416 275 min;
#N canvas 0 0 450 300 randlist 0;
#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 obj 255 236 outlet;
#X obj 232 38 inlet;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 2 0 6 0;
#X connect 3 0 5 0;
#X connect 4 0 6 0;
#X connect 5 0 6 0;
#X connect 5 1 1 0;
#X connect 5 2 2 0;
#X connect 7 0 3 0;
#X restore 329 222 pd randlist;
#X msg 329 248 27 92 42 82 48 52 74 33 52 71;
#X msg 329 202 bang;
#X obj 382 301 list-reduce;
#X floatatom 382 325 5 0 0 3 max - -;
#X obj 469 301 max;
#X floatatom 329 326 5 0 0 3 min - -;
#X obj 196 273 +;
#X connect 1 0 20 0;
#X connect 4 0 20 0;
#X connect 5 0 20 0;
#X connect 6 0 20 0;
#X connect 7 0 20 0;
#X connect 12 0 18 1;
#X connect 13 0 17 0;
#X connect 13 1 15 0;
#X connect 14 0 13 0;
#X connect 15 0 13 1;
#X connect 18 0 11 0;
#X connect 18 1 12 0;
#X connect 20 0 0 0;
#X connect 20 0 3 0;
#X connect 20 1 2 0;
#X connect 20 1 33 0;
#X connect 23 0 18 0;
#X connect 24 0 32 0;
#X connect 24 1 25 0;
#X connect 25 0 24 1;
#X connect 26 0 27 0;
#X connect 27 0 24 0;
#X connect 27 0 29 0;
#X connect 28 0 26 0;
#X connect 29 0 30 0;
#X connect 29 1 31 0;
#X connect 31 0 29 1;
#X connect 33 0 20 1;

--- NEW FILE: list-mean-help.pd ---
#N struct 1002-dial float y;
#N canvas 276 234 534 466 10;
#X obj 98 306 list-mean;
#N canvas 0 0 450 300 randlist 0;
#X obj 134 129 until;
#X msg 246 151 set;
#X msg 134 193 add2 \$1;
#X obj 112 101 t b f b;
#X obj 135 249 outlet;
#X obj 112 31 inlet;
#X obj 112 73 + 1;
#X obj 112 53 random 10;
#X obj 134 151 random 10;
#X obj 134 171 - 5;
#X connect 0 0 8 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 3 2 1 0;
#X connect 5 0 7 0;
#X connect 6 0 3 0;
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X connect 9 0 2 0;
#X restore 153 236 pd randlist;
#X msg 153 214 bang;
#X floatatom 98 340 5 0 0 1 arithmetric_mean - -;
#X text 86 22 [list-mean];
#X msg 153 262 4 -3 -4 1 2 -3;
#X msg 98 159 1 2 3 4;
#X msg 98 185 any symbols 1 2 3 4 are ignored;
#X text 96 117 Non-floats in a list are silently dropped.;
#X text 114 82 mean = sum(f[i]) / total number of floats;
#X text 96 42 Calculates the arithmetric mean of a list (of floats)
according to:;
#N canvas 318 53 648 574 graphical-mean 0;
#N canvas 0 0 450 300 randlist 0;
#X obj 134 129 until;
#X msg 246 151 set;
#X msg 134 213 add2 \$1;
#X obj 112 101 t b f b;
#X obj 135 249 outlet;
#X obj 112 31 inlet;
#X obj 134 151 random 100;
#X msg 112 59 10;
#X obj 134 191 / 10;
#X obj 134 170 + 1;
#X connect 0 0 6 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 3 2 1 0;
#X connect 5 0 7 0;
#X connect 6 0 9 0;
#X connect 7 0 3 0;
#X connect 8 0 2 0;
#X connect 9 0 8 0;
#X restore 79 388 pd randlist;
#X msg 79 366 bang;
#X obj 79 447 list prepend 0;
#X obj 79 500 s \$0-tab;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-tab 10 float 0;
#X coords 0 10 9 0 200 140 1;
#X restore 75 152 graph;
#N canvas 0 0 916 918 \$0-c 0;
#X scalar 1002-dial 0 \;;
#X coords 0 0 200 140 200 140 1;
#X restore 75 152 pd \$0-c;
#N canvas 0 0 503 429 create 0;
#X msg 242 258 traverse pd-\$1 \, bang;
#X obj 242 238 symbol \$0-c;
#X msg 107 79 0;
#X obj 242 278 pointer;
#X msg 243 178 clear;
#X obj 243 205 s pd-\$0-c;
#X obj 107 114 t a b b;
#X obj 107 50 loadbang;
#X obj 107 326 outlet;
#X obj 107 302 append \$0-dial y;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 6 0;
#X connect 3 0 9 1;
#X connect 4 0 5 0;
#X connect 6 0 9 0;
#X connect 6 1 1 0;
#X connect 6 2 4 0;
#X connect 7 0 2 0;
#X connect 9 0 8 0;
#X restore 468 339 pd create;
#X obj 339 127 metro 50;
#X obj 339 102 tgl 15 0 empty empty show-mean 17 7 1 10 -258699 -262144
-1 0 1;
#N canvas 473 338 450 300 countto 0;
#X obj 131 154 f 0;
#X obj 156 153 + 1;
#X msg 174 113 0;
#X obj 131 183 outlet;
#X obj 131 59 inlet;
#X obj 131 116 until;
#X obj 131 96 t a b;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 1 0 0 1;
#X connect 2 0 0 1;
#X connect 4 0 6 0;
#X connect 5 0 0 0;
#X connect 6 0 5 0;
#X connect 6 1 2 0;
#X restore 362 195 pd countto;
#X obj 362 219 tabread \$0-tab;
#X obj 362 249 list prepend;
#X obj 452 249 t a;
#X msg 362 175 10;
#X obj 339 148 t b b b;
#X obj 339 274 list;
#X obj 79 344 loadbang;
#X msg 79 414 7.3 6.6 7.6 8.9 6.2 5.1 9.4 1.9 8.9 8.1;
#X text 77 30 Switch on the "show"-metro and play with the values in
the array.;
#N canvas 336 319 712 355 \$0-dial 0;
#X obj 19 119 outlet;
#X obj 19 86 route change;
#X obj 19 62 struct \$0-dial float y;
#X obj 229 62 drawpolygon 900 2 0 y 200 y;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X restore 453 315 pd \$0-dial;
#X msg 213 469 bounds 0 10 9 0;
#X obj 213 449 loadbang;
#X obj 339 313 list-mean;
#X obj 339 388 set \$0-dial y;
#X floatatom 339 339 5 0 0 0 - - -;
#X msg 92 469 const 5;
#N canvas 0 0 299 354 scale 0;
#X msg 74 83 10 \$1;
#X obj 74 107 -;
#X obj 74 158 * 140;
#X obj 74 134 / 20;
#X obj 74 49 inlet;
#X obj 74 182 outlet;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 4 0 0 0;
#X restore 339 363 pd scale;
#X connect 0 0 17 0;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 6 0 23 1;
#X connect 7 0 14 0;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 11 0 15 1;
#X connect 12 0 11 1;
#X connect 13 0 9 0;
#X connect 14 0 15 0;
#X connect 14 1 13 0;
#X connect 14 2 11 1;
#X connect 15 0 22 0;
#X connect 16 0 1 0;
#X connect 17 0 2 0;
#X connect 19 0 23 1;
#X connect 20 0 3 0;
#X connect 21 0 20 0;
#X connect 22 0 24 0;
#X connect 24 0 26 0;
#X connect 25 0 3 0;
#X connect 26 0 23 0;
#X restore 97 363 pd graphical-mean;
#X text 101 394 More means:;
#X obj 192 394 list-geometric-mean;
#X obj 192 415 list-harmonic-mean;
#X connect 0 0 3 0;
#X connect 1 0 5 0;
#X connect 2 0 1 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;

--- NEW FILE: list-extend.pd ---
#N canvas 354 269 450 300 10;
#X obj 77 41 inlet;
#X obj 156 66 inlet;
#X obj 77 257 outlet;
#X text 72 21 add new elements to stored list and output it;
#X text 156 47 set stored list \, no output;
#X obj 77 153 list prepend;
#X obj 172 153 t a;
#X connect 0 0 5 0;
#X connect 1 0 5 1;
#X connect 5 0 6 0;
#X connect 5 0 2 0;
#X connect 6 0 5 1;

--- NEW FILE: list-find.pd ---
#N canvas 372 65 643 444 10;
#X obj 91 359 f;
#X obj 91 51 inlet;
#X obj 183 47 inlet;
#X obj 91 396 outlet;
#X text 60 27 value to find;
#X obj 91 180 list-drip;
#X obj 91 210 t a b;
#X obj 91 158 list;
#X text 180 27 list to search in;
#X text 208 103 [list-find] Find positions of a value (symbol or float)
in a list.;
#X obj 91 293 compare-any;
#X obj 91 317 select 1;
#N canvas 0 0 450 300 count 0;
#X obj 120 148 f 0;
#X obj 148 149 + 1;
#X obj 163 100 0;
#X obj 117 24 inlet;
#X obj 119 176 outlet;
#X obj 181 25 inlet;
#X obj 114 47 b;
#X connect 0 0 1 0;
#X connect 0 0 4 0;
#X connect 1 0 0 1;
#X connect 2 0 0 1;
#X connect 3 0 6 0;
#X connect 5 0 2 0;
#X connect 6 0 0 0;
#X restore 121 245 pd count;
#X obj 91 80 t b a b b;
#X obj 176 395 outlet;
#X obj 248 351 + 1;
#X obj 176 375 f;
#X obj 219 350 f 1;
#X msg 235 317 1;
#X msg 199 318 0;
#X connect 0 0 3 0;
#X connect 1 0 13 0;
#X connect 2 0 7 1;
#X connect 5 0 6 0;
#X connect 5 1 16 0;
#X connect 6 0 10 0;
#X connect 6 1 12 0;
#X connect 7 0 5 0;
#X connect 10 0 11 0;
#X connect 11 0 0 0;
#X connect 11 0 17 0;
#X connect 12 0 0 1;
#X connect 13 0 7 0;
#X connect 13 1 10 1;
#X connect 13 2 12 1;
#X connect 13 3 18 0;
#X connect 13 3 19 0;
#X connect 15 0 17 1;
#X connect 16 0 14 0;
#X connect 17 0 16 1;
#X connect 17 0 15 0;
#X connect 18 0 17 1;
#X connect 19 0 16 1;

--- NEW FILE: list-geometric-mean-help.pd ---
#N struct 1015-dial float y;
#N canvas 410 240 560 562 10;
#N canvas 0 0 450 300 randlist 0;
#X obj 134 129 until;
#X msg 246 151 set;
#X msg 134 193 add2 \$1;
#X obj 112 101 t b f b;
#X obj 135 249 outlet;
#X obj 112 31 inlet;
#X obj 112 73 + 1;
#X obj 112 53 random 10;
#X obj 134 151 random 10;
#X obj 134 171 + 1;
#X connect 0 0 8 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 3 2 1 0;
#X connect 5 0 7 0;
#X connect 6 0 3 0;
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X connect 9 0 2 0;
#X restore 153 266 pd randlist;
#X msg 153 244 bang;
#X floatatom 98 400 5 0 0 1 geometric_mean - -;
#X msg 153 292 8 6 7 3 8 3 1 7;
#X msg 98 189 1 2 3 4;
#X msg 98 215 any symbols 1 2 3 4 are ignored;
#X text 96 146 Non-floats in a list are silently dropped.;
#X obj 98 366 list-geometric-mean;
#X text 86 22 [list-geometric-mean];
#X text 96 51 Calculates the geometric mean of a list (of floats) according
to:;
#X text 96 119 where n is the total number of floats in a list.;
#X text 232 329 0 destroys everything!;
#X msg 154 328 1 2 0 3 4;
#X text 114 91 geometric mean = pow(f0 * f1 * f2 * ... * fn \, 1/n)
;
#N canvas 318 53 648 574 graphical-mean 0;
#N canvas 0 0 450 300 randlist 0;
#X obj 134 129 until;
#X msg 246 151 set;
#X msg 134 213 add2 \$1;
#X obj 112 101 t b f b;
#X obj 135 249 outlet;
#X obj 112 31 inlet;
#X obj 134 151 random 100;
#X msg 112 59 10;
#X obj 134 191 / 10;
#X obj 134 170 + 1;
#X connect 0 0 6 0;
#X connect 1 0 4 0;
#X connect 2 0 4 0;
#X connect 3 0 4 0;
#X connect 3 1 0 0;
#X connect 3 2 1 0;
#X connect 5 0 7 0;
#X connect 6 0 9 0;
#X connect 7 0 3 0;
#X connect 8 0 2 0;
#X connect 9 0 8 0;
#X restore 79 388 pd randlist;
#X msg 79 366 bang;
#X obj 79 447 list prepend 0;
#X obj 79 500 s \$0-tab;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-tab 10 float 0;
#X coords 0 10 9 0 200 140 1;
#X restore 75 152 graph;
#N canvas 0 0 916 918 \$0-c 0;
#X scalar 1015-dial 0 \;;
#X coords 0 0 200 140 200 140 1;
#X restore 75 152 pd \$0-c;
#N canvas 0 0 503 429 create 0;
#X msg 242 258 traverse pd-\$1 \, bang;
#X obj 242 238 symbol \$0-c;
#X msg 107 79 0;
#X obj 242 278 pointer;
#X msg 243 178 clear;
#X obj 243 205 s pd-\$0-c;
#X obj 107 114 t a b b;
#X obj 107 50 loadbang;
#X obj 107 326 outlet;
#X obj 107 302 append \$0-dial y;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 2 0 6 0;
#X connect 3 0 9 1;
#X connect 4 0 5 0;
#X connect 6 0 9 0;
#X connect 6 1 1 0;
#X connect 6 2 4 0;
#X connect 7 0 2 0;
#X connect 9 0 8 0;
#X restore 468 339 pd create;
#X obj 339 127 metro 50;
#X obj 339 102 tgl 15 0 empty empty show-mean 17 7 1 10 -258699 -262144
-1 0 1;
#N canvas 473 338 450 300 countto 0;
#X obj 131 154 f 0;
#X obj 156 153 + 1;
#X msg 174 113 0;
#X obj 131 183 outlet;
#X obj 131 59 inlet;
#X obj 131 116 until;
#X obj 131 96 t a b;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 1 0 0 1;
#X connect 2 0 0 1;
#X connect 4 0 6 0;
#X connect 5 0 0 0;
#X connect 6 0 5 0;
#X connect 6 1 2 0;
#X restore 362 195 pd countto;
#X obj 362 219 tabread \$0-tab;
#X obj 362 249 list prepend;
#X obj 452 249 t a;
#X msg 362 175 10;
#X obj 339 148 t b b b;
#X obj 339 274 list;
#X obj 79 344 loadbang;
#X msg 79 414 5.7 6 8.1 9.9 3.1 6.5 9.7 5.8 5.6 0.9;
#X text 77 30 Switch on the "show"-metro and play with the values in
the array.;
#N canvas 336 319 712 355 \$0-dial 0;
#X obj 19 119 outlet;
#X obj 19 86 route change;
#X obj 19 62 struct \$0-dial float y;
#X obj 229 62 drawpolygon 900 2 0 y 200 y;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X restore 453 315 pd \$0-dial;
#X msg 213 469 bounds 0 10 9 0;
#X obj 213 449 loadbang;
#X obj 339 388 set \$0-dial y;
#X floatatom 339 339 5 0 0 0 - - -;
#X msg 92 469 const 5;
#N canvas 0 0 299 354 scale 0;
#X msg 74 83 10 \$1;
#X obj 74 107 -;
#X obj 74 158 * 140;
#X obj 74 134 / 20;
#X obj 74 49 inlet;
#X obj 74 182 outlet;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 4 0 0 0;
#X restore 339 363 pd scale;
#X obj 339 313 list-geometric-mean;
#X connect 0 0 17 0;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 6 0 22 1;
#X connect 7 0 14 0;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 11 0 15 1;
#X connect 12 0 11 1;
#X connect 13 0 9 0;
#X connect 14 0 15 0;
#X connect 14 1 13 0;
#X connect 14 2 11 1;
#X connect 15 0 26 0;
#X connect 16 0 1 0;
#X connect 17 0 2 0;
#X connect 19 0 22 1;
#X connect 20 0 3 0;
#X connect 21 0 20 0;
#X connect 23 0 25 0;
#X connect 24 0 3 0;
#X connect 25 0 22 0;
#X connect 26 0 23 0;
#X restore 98 420 pd graphical-mean;
#X obj 185 453 list-harmonic-mean;
#X obj 184 474 list-mean;
#X text 97 450 More means:;
#X connect 0 0 3 0;
#X connect 1 0 0 0;
#X connect 3 0 7 0;
#X connect 4 0 7 0;
#X connect 5 0 7 0;
#X connect 7 0 2 0;
#X connect 12 0 7 0;

--- NEW FILE: list-fifo.pd ---
#N canvas 252 152 752 488 10;
#X obj 22 272 list split 1;
#X obj 22 224 until;
#X obj 259 67 list append [delim];
#X obj 22 395 list;
#X obj 22 321 t b b;
#X obj 22 26 inlet trigger;
#X obj 259 25 inlet list;
#X obj 423 26 inlet delimiter;
#X obj 22 419 outlet;
#X obj 101 420 outlet;
#X obj 52 198 b;
#X obj 423 78 symbol \$1;
#X obj 441 48 loadbang;
#X obj 423 124 route symbol;
#X obj 22 75 route bang clear;
#X obj 22 250 list;
#X obj 259 155 list-extend;
#X obj 115 365 list-extend;
#X obj 301 131 t b b;
#X obj 157 338 t b b;
#X obj 22 296 select [delim];
#X text 108 439 EOL;
#X text 20 440 list;
#X text 334 310 Based on a patch and idea by Roman Haefli 2006;
#X connect 0 0 20 0;
#X connect 0 1 15 1;
#X connect 0 1 16 1;
#X connect 0 2 9 0;
#X connect 0 2 10 0;
#X connect 1 0 15 0;
#X connect 2 0 16 0;
#X connect 3 0 8 0;
#X connect 4 0 3 0;
#X connect 4 1 1 1;
#X connect 4 1 17 1;
#X connect 5 0 14 0;
#X connect 6 0 2 0;
#X connect 7 0 11 0;
#X connect 10 0 1 1;
#X connect 11 0 13 0;
#X connect 12 0 11 0;
#X connect 13 0 2 1;
#X connect 13 0 20 1;
#X connect 14 0 1 0;
#X connect 14 1 18 0;
#X connect 14 1 19 0;
#X connect 15 0 0 0;
#X connect 16 0 15 1;
#X connect 17 0 3 1;
#X connect 18 0 16 0;
#X connect 18 1 16 1;
#X connect 19 0 17 0;
#X connect 19 1 17 1;
#X connect 20 0 4 0;
#X connect 20 1 17 0;

--- NEW FILE: list-harmonic-mean.pd ---
#N canvas 355 173 457 428 10;
#X obj 127 69 inlet;
#X obj 127 377 outlet;
#X obj 146 138 list-drip;
#X obj 146 164 route float;
#X obj 127 314 f;
#N canvas 425 298 450 300 count 0;
#X obj 133 59 b;
#X obj 133 35 inlet;
#X obj 183 35 inlet;
#X obj 164 111 + 1;
#X obj 133 133 outlet;
#X msg 183 71 1;
#X obj 133 110 f 1;
#X connect 0 0 6 0;
#X connect 1 0 0 0;
#X connect 2 0 5 0;
#X connect 3 0 6 1;
#X connect 5 0 6 1;
#X connect 6 0 3 0;
#X connect 6 0 4 0;
#X restore 238 225 pd count;
#X obj 146 189 t a b;
#X obj 127 105 t b a b b;
#X obj 146 250 pow -1;
#X obj 127 342 *;
#N canvas 370 313 660 345 sum-reci 0;
#X obj 84 40 inlet;
#X obj 183 40 inlet;
#X obj 135 249 outlet;
#X obj 168 218 f;
#X obj 135 217 +;
#X obj 183 183 0;
#X obj 135 184 pow -1;
#X obj 84 149 select 0;
#X obj 219 249 outlet;
#X obj 84 122 spigot 1;
#X msg 135 90 1;
#X msg 84 176 0;
#X text 270 253 if a 0 occurs \, the harmonic mean always is 0 \, too!
;
#X connect 0 0 9 0;
#X connect 1 0 5 0;
#X connect 1 0 10 0;
#X connect 3 0 4 1;
#X connect 4 0 2 0;
#X connect 4 0 3 0;
#X connect 5 0 4 1;
#X connect 6 0 4 0;
#X connect 7 0 11 0;
#X connect 7 1 6 0;
#X connect 9 0 7 0;
#X connect 10 0 9 1;
#X connect 11 0 9 1;
#X connect 11 0 8 0;
#X restore 146 225 pd sum-reci;
#X connect 0 0 7 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 9 0;
#X connect 5 0 9 1;
#X connect 6 0 10 0;
#X connect 6 1 5 0;
#X connect 7 0 4 0;
#X connect 7 1 2 0;
#X connect 7 2 10 1;
#X connect 7 3 5 1;
#X connect 8 0 4 1;
#X connect 9 0 1 0;
#X connect 10 0 8 0;
#X connect 10 1 4 1;





More information about the Pd-cvs mailing list