aboutsummaryrefslogtreecommitdiff
path: root/tof
diff options
context:
space:
mode:
authorThomas O Fredericks <mrtof@users.sourceforge.net>2010-05-27 21:35:31 +0000
committerThomas O Fredericks <mrtof@users.sourceforge.net>2010-05-27 21:35:31 +0000
commitc3fdeeb4feb97052336a624bbbb5cf821ee03551 (patch)
treeb415f0d491eadd83c0030a3643d7e199b1aee799 /tof
parentba3f7a4f80b4fc85785d2538c624cc201630cbd1 (diff)
Modified my dir structure
svn path=/trunk/externals/tof/; revision=13571
Diffstat (limited to 'tof')
-rw-r--r--tof/OSCToParam-help.pd11
-rw-r--r--tof/OSCToParam.pd4
-rw-r--r--tof/animate-help.pd130
-rw-r--r--tof/animate.pd361
-rw-r--r--tof/argument-help.pd56
-rw-r--r--tof/arguments-help.pd38
-rw-r--r--tof/breakpoints-help.pd80
-rw-r--r--tof/breakpoints~-help.pd90
-rw-r--r--tof/common~-help.pd39
-rw-r--r--tof/crossfade~-help.pd43
-rw-r--r--tof/folderpanel-help.pd15
-rw-r--r--tof/from_ascii_code-help.pd29
-rw-r--r--tof/gemwin+-help.pd36
-rw-r--r--tof/gemwin+.pd252
-rw-r--r--tof/getdollarzero-help.pd20
-rw-r--r--tof/homea.gifbin0 -> 2315 bytes
-rw-r--r--tof/homeb.gifbin0 -> 2336 bytes
-rw-r--r--tof/imagebang-help.pd48
-rw-r--r--tof/increment-help.pd42
-rw-r--r--tof/iterate-help.pd61
-rw-r--r--tof/listUnfold-help.pd40
-rw-r--r--tof/menubutton-help.pd103
-rw-r--r--tof/onlyone-help.pd66
-rw-r--r--tof/openHelp-help.pd15
-rw-r--r--tof/panda.gifbin0 -> 25576 bytes
-rw-r--r--tof/pandb.gifbin0 -> 20679 bytes
-rw-r--r--tof/param-help.pd647
-rw-r--r--tof/path-help.pd94
-rw-r--r--tof/phasorshot~-help.pd70
-rw-r--r--tof/pix_film+-help.pd38
-rw-r--r--tof/pix_film+.pd101
-rw-r--r--tof/pmenu-help.pd66
-rw-r--r--tof/streamMinMax-help.pd28
-rw-r--r--tof/test-argument.pd30
-rw-r--r--tof/test-arguments-all.pd9
-rw-r--r--tof/test-arguments-comma.pd23
-rw-r--r--tof/test-arguments-token.pd15
-rw-r--r--tof/test-param-2.pd29
-rw-r--r--tof/test-param.pd42
-rw-r--r--tof/to_ascii_code-help.pd14
40 files changed, 2785 insertions, 0 deletions
diff --git a/tof/OSCToParam-help.pd b/tof/OSCToParam-help.pd
new file mode 100644
index 0000000..7084eec
--- /dev/null
+++ b/tof/OSCToParam-help.pd
@@ -0,0 +1,11 @@
+#N canvas 431 304 515 325 10;
+#X obj -8 -53 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text -3 -9 author: mrtoftrash@gmail.com;
+#X text -3 2 version: 2009-04-14 (initial release);
+#X text -3 -54 description: forwards all incomming OSC messages to
+matching params.;
+#X text -3 -20 tags: routing param OSC;
+#X obj -3 81 tof/OSCToParam 3475;
+#X text 137 72 All OSC messages received on port 3475 will be forwarded
+to matching params.;
diff --git a/tof/OSCToParam.pd b/tof/OSCToParam.pd
new file mode 100644
index 0000000..dacc583
--- /dev/null
+++ b/tof/OSCToParam.pd
@@ -0,0 +1,4 @@
+#N canvas 332 238 604 420 10;
+#X obj 88 46 oscx/dumpOSC \$1;
+#X obj 89 286 maxlib/remote;
+#X connect 0 0 1 0;
diff --git a/tof/animate-help.pd b/tof/animate-help.pd
new file mode 100644
index 0000000..466d2a7
--- /dev/null
+++ b/tof/animate-help.pd
@@ -0,0 +1,130 @@
+#N canvas 177 122 716 557 10;
+#X msg 73 84 fall;
+#X obj 198 182 metro 1000;
+#X obj 199 154 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X obj 199 214 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 201 237 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 200 260 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 206 289 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 211 314 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 213 334 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 216 392 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 222 421 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 238 208 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 243 227 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 250 258 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 245 283 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 255 302 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 267 323 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 256 349 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 260 379 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 169 361 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 345 391 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 351 420 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 367 207 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 372 226 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 379 257 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 374 282 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 384 301 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 396 322 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 385 348 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 389 378 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 298 354 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 465 383 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 471 412 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 487 199 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 492 218 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 499 249 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 494 274 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 504 293 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 516 314 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 509 370 delay 250;
+#X obj 208 368 delay 250;
+#X obj 505 340 delay 250;
+#X text 56 2 Tags: Patch Fun;
+#X text 57 -17 Description: Animates the object boxes inside a patch.
+;
+#X msg 54 56 bang;
+#X text 87 56 Launches the "explosion" animation;
+#X text 108 81 Lanches the "falling" animation;
+#X text 56 22 Version: 0.1;
+#X obj 52 124 tof/animate;
+#X connect 0 0 48 0;
+#X connect 1 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 7 0 8 0;
+#X connect 8 0 39 0;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 14 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
+#X connect 16 0 17 0;
+#X connect 17 0 18 0;
+#X connect 18 0 40 0;
+#X connect 19 0 20 0;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 24 0 25 0;
+#X connect 25 0 26 0;
+#X connect 26 0 27 0;
+#X connect 27 0 28 0;
+#X connect 28 0 41 0;
+#X connect 29 0 30 0;
+#X connect 30 0 31 0;
+#X connect 31 0 32 0;
+#X connect 32 0 33 0;
+#X connect 33 0 34 0;
+#X connect 34 0 35 0;
+#X connect 35 0 36 0;
+#X connect 36 0 37 0;
+#X connect 37 0 38 0;
+#X connect 39 0 9 0;
+#X connect 40 0 19 0;
+#X connect 41 0 29 0;
+#X connect 44 0 48 0;
diff --git a/tof/animate.pd b/tof/animate.pd
new file mode 100644
index 0000000..b5a786d
--- /dev/null
+++ b/tof/animate.pd
@@ -0,0 +1,361 @@
+#N canvas 1210 191 838 577 10;
+#X obj 578 131 table \$0x 100;
+#X obj 578 174 table \$0y 100;
+#X obj 245 278 delay;
+#X obj 241 200 random 2000;
+#X obj 83 130 t b b b;
+#X obj 319 222 t b b;
+#X msg 299 263 stop;
+#X obj 578 152 table \$0xt 100;
+#X obj 579 196 table \$0yt 100;
+#N canvas 0 0 834 623 restore 0;
+#X obj 520 148 f;
+#X obj 518 193 until;
+#X obj 539 242 f;
+#X obj 622 267 + 1;
+#X msg 612 215 0;
+#X obj 521 169 t f b;
+#X obj 537 272 t f f f f;
+#X obj 571 348 tabread \$0x;
+#X obj 661 348 tabread \$0y;
+#X obj 589 386 pack;
+#X obj 255 19 inlet doit;
+#X obj 552 46 r \$0count;
+#X obj 423 53 t b b;
+#X msg 435 93 0;
+#X obj 562 430 iemguts/canvasobjectposition 2 0;
+#X connect 0 0 5 0;
+#X connect 1 0 2 0;
+#X connect 2 0 6 0;
+#X connect 3 0 2 1;
+#X connect 4 0 2 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 14 1;
+#X connect 6 3 3 0;
+#X connect 7 0 9 0;
+#X connect 8 0 9 1;
+#X connect 9 0 14 0;
+#X connect 10 0 12 0;
+#X connect 11 0 0 1;
+#X connect 12 0 13 0;
+#X connect 12 1 0 0;
+#X connect 13 0 0 1;
+#X restore 355 344 pd restore;
+#N canvas 1273 155 720 553 save 0;
+#X obj 126 163 t b b f b;
+#X obj 266 479 unpack f f;
+#X obj 265 517 tabwrite \$0x;
+#X obj 358 517 tabwrite \$0y;
+#X obj 109 67 until;
+#X msg 118 39 100;
+#X obj 142 273 spigot;
+#X msg 184 231 1;
+#X obj 265 437 t l b;
+#X msg 341 450 0;
+#X obj 96 97 f;
+#X obj 179 122 + 1;
+#X obj 57 299 f;
+#X obj 94 127 t f f f;
+#X obj 267 226 t f f;
+#X obj 375 467 t f f;
+#X obj 41 63 t b b b;
+#X msg 169 70 0;
+#X obj 51 354 s \$0count;
+#X obj 49 12 inlet;
+#X obj 265 407 iemguts/canvasobjectposition 2 0;
+#X connect 0 0 6 0;
+#X connect 0 1 20 0;
+#X connect 0 2 14 0;
+#X connect 0 3 7 0;
+#X connect 1 0 2 0;
+#X connect 1 1 3 0;
+#X connect 4 0 10 0;
+#X connect 5 0 4 0;
+#X connect 6 0 4 1;
+#X connect 7 0 6 1;
+#X connect 8 0 1 0;
+#X connect 8 1 9 0;
+#X connect 9 0 6 1;
+#X connect 10 0 13 0;
+#X connect 11 0 10 1;
+#X connect 12 0 18 0;
+#X connect 13 0 0 0;
+#X connect 13 1 12 1;
+#X connect 13 2 11 0;
+#X connect 14 0 15 0;
+#X connect 14 1 20 1;
+#X connect 15 0 2 1;
+#X connect 15 1 3 1;
+#X connect 16 0 12 0;
+#X connect 16 1 5 0;
+#X connect 16 2 17 0;
+#X connect 17 0 10 1;
+#X connect 17 0 12 1;
+#X connect 19 0 16 0;
+#X connect 20 0 8 0;
+#X restore 130 295 pd save;
+#N canvas 48 0 912 684 animate 0;
+#X obj 109 4 inlet;
+#X obj 249 81 r \$0count;
+#X obj 209 115 f;
+#X obj 267 224 until;
+#X obj 279 262 f;
+#X obj 362 287 + 1;
+#X msg 366 129 0;
+#X obj 280 285 t f f;
+#X obj 404 354 t b b f f;
+#X obj 401 40 inlet stop;
+#X obj 352 551 tabwrite \$0xt;
+#X obj 491 525 tabwrite \$0yt;
+#X obj 432 82 t b b;
+#X obj 112 64 t f b b;
+#X obj 397 323 zexy/demultiplex 0 1;
+#X obj 639 39 inlet animation;
+#X obj 593 486 tabwrite \$0xt;
+#X obj 717 486 tabwrite \$0yt;
+#X obj 624 368 t f b f f;
+#N canvas 1197 215 779 663 smooth 0;
+#X obj 231 415 tabread \$0xt;
+#X obj 156 413 tabread \$0x;
+#X obj 152 345 t f f;
+#X obj 328 335 t f f;
+#X obj 358 379 t f f;
+#X obj 135 496 pack;
+#X obj 348 413 tabread \$0y;
+#X obj 423 414 tabread \$0yt;
+#X obj 111 466 expr $f3*($f2-$f1)+$f1;
+#X obj 310 466 expr $f3*($f2-$f1)+$f1;
+#X obj 156 299 t f f f;
+#X obj 258 150 unpack f f;
+#X obj 302 26 inlet;
+#X obj 149 543 s \$0pos;
+#X obj 378 541 s \$0index;
+#X connect 0 0 8 1;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 2 1 0 0;
+#X connect 3 0 8 2;
+#X connect 3 1 9 2;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 13 0;
+#X connect 6 0 9 0;
+#X connect 7 0 9 1;
+#X connect 8 0 5 0;
+#X connect 9 0 5 1;
+#X connect 10 0 2 0;
+#X connect 10 1 4 0;
+#X connect 10 2 14 0;
+#X connect 11 0 10 0;
+#X connect 11 1 3 0;
+#X connect 12 0 11 0;
+#X restore 17 480 pd smooth;
+#X obj 428 144 s \$0stop;
+#X obj 514 285 unpack;
+#X msg 635 254 1 1;
+#X msg 611 424 0;
+#N canvas 1614 215 779 663 accelerate 0;
+#X obj 231 415 tabread \$0xt;
+#X obj 156 413 tabread \$0x;
+#X obj 152 345 t f f;
+#X obj 328 335 t f f;
+#X obj 135 496 pack;
+#X obj 348 413 tabread \$0y;
+#X obj 423 414 tabread \$0yt;
+#X obj 132 33 inlet;
+#X obj 358 379 t f f f;
+#X obj 310 466 expr pow($f3 \, 2)*$f2+$f1;
+#X obj 110 466 expr pow($f3 \, 2)*$f2+$f1;
+#X obj 157 300 t f f f;
+#X obj 172 176 unpack f f;
+#X obj 159 553 s \$0pos;
+#X obj 330 553 s \$0index;
+#X connect 0 0 10 1;
+#X connect 1 0 10 0;
+#X connect 2 0 1 0;
+#X connect 2 1 0 0;
+#X connect 3 0 10 2;
+#X connect 3 1 9 2;
+#X connect 4 0 13 0;
+#X connect 5 0 9 0;
+#X connect 6 0 9 1;
+#X connect 7 0 12 0;
+#X connect 8 0 5 0;
+#X connect 8 1 6 0;
+#X connect 9 0 4 1;
+#X connect 10 0 4 0;
+#X connect 11 0 2 0;
+#X connect 11 1 8 0;
+#X connect 11 2 14 0;
+#X connect 12 0 11 0;
+#X connect 12 1 3 0;
+#X restore 86 481 pd accelerate;
+#X obj 698 415 random 500;
+#X obj 703 448 + 300;
+#N canvas 1446 285 856 573 steady 0;
+#X obj 241 425 tabread \$0xt;
+#X obj 166 423 tabread \$0x;
+#X obj 162 355 t f f;
+#X obj 338 345 t f f;
+#X obj 368 389 t f f;
+#X obj 145 506 pack;
+#X obj 358 423 tabread \$0y;
+#X obj 433 424 tabread \$0yt;
+#X obj 142 43 inlet;
+#X obj 121 476 expr $f3*$f2+$f1;
+#X obj 320 476 expr $f3*$f2+$f1;
+#X obj 171 203 unpack f f;
+#X obj 167 311 t f f f;
+#X obj 128 547 s \$0pos;
+#X obj 266 540 s \$0index;
+#X connect 0 0 9 1;
+#X connect 1 0 9 0;
+#X connect 2 0 1 0;
+#X connect 2 1 0 0;
+#X connect 3 0 9 2;
+#X connect 3 1 10 2;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 13 0;
+#X connect 6 0 10 0;
+#X connect 7 0 10 1;
+#X connect 8 0 11 0;
+#X connect 9 0 5 0;
+#X connect 10 0 5 1;
+#X connect 11 0 12 0;
+#X connect 11 1 3 0;
+#X connect 12 0 2 0;
+#X connect 12 1 4 0;
+#X connect 12 2 14 0;
+#X restore 175 484 pd steady;
+#X obj 46 362 zexy/demultiplex 0 1 3;
+#X msg 571 249 3 0;
+#X obj 412 502 tabread \$0x;
+#X obj 367 522 +;
+#X obj 514 468 tabread \$0y;
+#X obj 497 502 +;
+#N canvas 0 0 604 527 timeline 0;
+#X obj 168 284 f;
+#X obj 261 295 + 1;
+#X msg 222 243 0;
+#X obj 161 206 r \$0count;
+#X obj 151 228 f;
+#X obj 153 256 until;
+#X msg 248 63 stop;
+#X obj 132 171 t b b f;
+#X msg 132 66 0 \, 1 \$1;
+#X obj 250 41 r \$0stop;
+#X obj 139 28 inlet;
+#X obj 152 459 outlet;
+#X obj 170 310 t f f;
+#X obj 181 407 pack f f;
+#X obj 285 153 moses 0.5;
+#X floatatom 346 213 5 0 0 0 - - -;
+#X obj 337 175 expr 0.5-($f1-0.5);
+#X obj 137 116 line 0 50;
+#X connect 0 0 12 0;
+#X connect 1 0 0 1;
+#X connect 2 0 0 1;
+#X connect 3 0 4 1;
+#X connect 4 0 5 0;
+#X connect 5 0 0 0;
+#X connect 6 0 17 0;
+#X connect 7 0 4 0;
+#X connect 7 1 2 0;
+#X connect 7 2 13 1;
+#X connect 8 0 17 0;
+#X connect 9 0 6 0;
+#X connect 10 0 8 0;
+#X connect 12 0 13 0;
+#X connect 12 1 1 0;
+#X connect 13 0 11 0;
+#X connect 14 0 7 0;
+#X connect 14 0 15 0;
+#X connect 14 1 16 0;
+#X connect 16 0 7 0;
+#X connect 16 0 15 0;
+#X connect 17 0 7 0;
+#X restore 93 285 pd timeline;
+#X obj 359 421 random 2000;
+#X obj 365 481 - 1000;
+#X obj 444 401 random 2000;
+#X obj 460 452 - 1000;
+#X obj 605 194 route bang fall;
+#X connect 0 0 13 0;
+#X connect 1 0 2 1;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 7 0;
+#X connect 5 0 4 1;
+#X connect 6 0 4 1;
+#X connect 7 0 14 0;
+#X connect 7 1 5 0;
+#X connect 8 0 35 0;
+#X connect 8 1 37 0;
+#X connect 8 2 10 1;
+#X connect 8 2 30 0;
+#X connect 8 3 11 1;
+#X connect 8 3 32 0;
+#X connect 9 0 12 0;
+#X connect 12 0 20 0;
+#X connect 13 0 34 0;
+#X connect 13 1 2 0;
+#X connect 13 2 6 0;
+#X connect 14 0 8 0;
+#X connect 14 1 18 0;
+#X connect 15 0 39 0;
+#X connect 18 0 23 0;
+#X connect 18 1 25 0;
+#X connect 18 2 16 1;
+#X connect 18 3 17 1;
+#X connect 21 0 28 1;
+#X connect 21 1 14 1;
+#X connect 22 0 21 0;
+#X connect 23 0 16 0;
+#X connect 25 0 26 0;
+#X connect 26 0 17 0;
+#X connect 28 0 19 0;
+#X connect 28 1 24 0;
+#X connect 28 2 27 0;
+#X connect 29 0 21 0;
+#X connect 30 0 31 1;
+#X connect 31 0 10 0;
+#X connect 32 0 33 1;
+#X connect 33 0 11 0;
+#X connect 34 0 28 0;
+#X connect 35 0 36 0;
+#X connect 36 0 31 0;
+#X connect 37 0 38 0;
+#X connect 38 0 33 0;
+#X connect 39 0 29 0;
+#X connect 39 1 22 0;
+#X restore 121 364 pd animate;
+#X obj 316 306 t b b;
+#X obj 92 279 f;
+#X obj 241 227 + 2000;
+#X obj 536 -26 inlet;
+#X obj 482 341 iemguts/canvasobjectposition 1 0;
+#X obj 481 299 r \$0pos;
+#X obj 672 302 r \$0index;
+#X obj 304 58 t b a;
+#X connect 2 0 12 0;
+#X connect 3 0 14 0;
+#X connect 4 0 13 0;
+#X connect 4 1 10 0;
+#X connect 4 2 3 0;
+#X connect 5 0 6 0;
+#X connect 5 1 12 0;
+#X connect 6 0 2 0;
+#X connect 12 0 11 1;
+#X connect 12 1 9 0;
+#X connect 13 0 11 0;
+#X connect 14 0 2 0;
+#X connect 14 0 13 1;
+#X connect 15 0 19 0;
+#X connect 17 0 16 0;
+#X connect 18 0 16 1;
+#X connect 19 0 4 0;
+#X connect 19 1 11 2;
diff --git a/tof/argument-help.pd b/tof/argument-help.pd
new file mode 100644
index 0000000..dbfd5cd
--- /dev/null
+++ b/tof/argument-help.pd
@@ -0,0 +1,56 @@
+#N canvas 59 319 922 529 10;
+#X obj 496 461 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj -11 19 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text -3 68 author: mrtoftrash@gmail.com;
+#X text -5 89 version: 2009-04-14 (initial release);
+#X obj 422 131 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 419 220 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 419 271 print;
+#X obj 422 179 print;
+#X obj 422 303 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 422 351 print;
+#X text 618 484 <- open it;
+#X obj 422 154 tof/argument 1;
+#X obj 419 244 tof/argument 1 32;
+#X obj 422 325 tof/argument;
+#X text 5 176 [argument n default];
+#X text -4 17 description: Outputs the patch's creation arguments individually.
+;
+#X text 516 147 This help patch is a file and therefore has no creation
+arguments. The [argument] to the left has no default value \, so nothing
+will be outputed.;
+#X text 514 323 With no arguments \, [argument] outputs the patch's
+\$0 as symbol.;
+#X text 427 407 Inside the following abstraction \, three [argument]
+objects output the creation arguments. Look inside for an explenation
+of the printed output.;
+#X text 517 460 <- bang to print;
+#X text 534 237 As stated before \, this help patch is a file and has
+no creation arguments. But the [argument] to the left has a default
+value and will output it.;
+#X text 6 199 argument 1: patch's creation argument to output.;
+#X text 5 216 argument 2: default value to output if the patch's creation
+argument is not set or if the wrong type.;
+#X text 4 253 inlet 1 bang: outputs the n-th patch creation argument
+or the default value if there is no n-th creation argument.;
+#X text 5 289 outlet 1 anything: outputs the n-th patch creation argument
+or the default value if there is no n-th creation argument.;
+#X text 1 331 If the patch's n-th creation argument is not of the same
+type as the default value \, the default value will be outputed instead.
+;
+#X text -4 46 tags: initialization patch;
+#X text 1 126 see also:;
+#X obj 73 129 tof/arguments;
+#X obj 496 485 ./test-argument a b;
+#X connect 0 0 29 0;
+#X connect 4 0 11 0;
+#X connect 5 0 12 0;
+#X connect 8 0 13 0;
+#X connect 11 0 7 0;
+#X connect 12 0 6 0;
+#X connect 13 0 9 0;
diff --git a/tof/arguments-help.pd b/tof/arguments-help.pd
new file mode 100644
index 0000000..26d4a28
--- /dev/null
+++ b/tof/arguments-help.pd
@@ -0,0 +1,38 @@
+#N canvas 56 497 880 406 10;
+#X obj 506 84 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 506 333 ./test-arguments-all a bear 3 34;
+#X obj 507 307 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 508 181 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 508 206 ./test-arguments-token @a 54 @c 764;
+#X obj 506 104 ./test-arguments-comma ready \, 1 2 3 \, go speedracer
+;
+#X obj -1 29 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 7 78 author: mrtoftrash@gmail.com;
+#X text 6 56 tags: initialization patch;
+#X text 6 27 description: Outputs and parses the patch's creation arguments.
+;
+#X text 5 98 version: 2009-10-27 (initial release);
+#X text 5 139 see also:;
+#X obj 77 142 tof/argument;
+#X text 15 180 [arguments mode];
+#X text 15 209 argument 1 symbol: the parsing mode. If it is "comma"
+or " \, " the mode is set to COMMA. If it is another symbol \, the
+first character of the symbol is used as a TOKEN. If no argument is
+set \, the default mode is ALL.;
+#X text 17 284 inlet 1 bang: outputs parsed patch creation arguments.
+;
+#X text 18 308 outlet 1 variable: the parsed patch arguments.;
+#X text 611 32 COMMA MODE;
+#X obj 546 57 tof/arguments comma;
+#X obj 681 57 tof/arguments \,;
+#X text 613 265 ALL MODE;
+#X text 608 132 TOKEN MODE;
+#X obj 593 158 tof/arguments @;
+#X obj 596 290 tof/arguments;
+#X connect 0 0 5 0;
+#X connect 2 0 1 0;
+#X connect 3 0 4 0;
diff --git a/tof/breakpoints-help.pd b/tof/breakpoints-help.pd
new file mode 100644
index 0000000..e54fff9
--- /dev/null
+++ b/tof/breakpoints-help.pd
@@ -0,0 +1,80 @@
+#N canvas 80 66 926 683 10;
+#X obj 14 228 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X msg 7 185 0 1125 0.671429 300 0.557143 700 0.571429 0 0.792857 375
+1 100 0.0857143 1250 0.492857 1150 0;
+#X obj 7 149 loadbang;
+#X obj 691 319 r \$0s;
+#X obj 636 319 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 637 367 dump;
+#X obj 693 367 r \$0d;
+#X obj 636 340 s \$0r;
+#X obj 637 389 s \$0r;
+#X text 636 293 The beakpoints can now be controlld remotely:;
+#X msg 23 257 duration 5000;
+#X obj 7 594 line;
+#X msg 36 293 dump;
+#X obj 106 595 print DUMP;
+#X obj 691 339 print data;
+#X obj 693 392 print dump;
+#X obj 206 595 bng 15 250 50 0 empty empty Change 17 7 0 10 -262144
+-1 -1;
+#X obj 9 435 tof/breakpoints;
+#X obj 507 332 tof/breakpoints 100 50 3000 \$0r \$0s \$0d;
+#X obj 6 9 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 11 60 author: mrtoftrash@gmail.com;
+#X text 11 79 version: 2009-04-14 (initial release);
+#X text 11 9 description: A graphical breakpoint envelope generator
+based on [envgen] by ggee.;
+#X text 12 41 tags: ui timing;
+#X text 35 223 Inlet 1 bang: deliver values for line or line~.;
+#X text 68 142 Inlet 1 list: sets the point data (value0 delay1 value1
+delay2 value2 etc...);
+#X text 111 257 Inlet 1 duration: set the total duration in milliseconds
+;
+#X text 76 292 Inlet 1 dump: dump the current point data out the second
+outlet;
+#X text 53 395 Select a point with the mouse and press the backspace
+key to delete it.;
+#X text 54 376 Click and drag to change points;
+#X obj 7 621 nbx 5 28 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 22
+-262144 -1 -1 0.78 256;
+#X text 474 151 Argument 1: display width;
+#X text 474 165 Argument 2: display height;
+#X text 473 179 Argument 3: receive name;
+#X text 473 194 Argument 4: send name;
+#X text 473 208 Argument 5: dump receive name;
+#X text 473 223 Argument 6: contents change by mouse receive name;
+#X text 478 257 The following breakpoints was created with the following:
+[breakpoints 100 50 3000 \$0r \$0s \$0d];
+#X text 147 119 -- Inlets --;
+#X text 637 124 -- Arguments --;
+#X floatatom 56 328 5 0 600 0 - - -;
+#X text 479 505 -- Outlets --;
+#X text 312 585 Outlet 2: The point data when dumped.;
+#X text 311 607 Outlet 3: Bangs when the contents was modified with
+the mouse.;
+#X text 94 322 Inlet 1 float: output the interpolated value at that
+index.;
+#X text 314 535 Outlet 1: The line or line~ data if [breakpoints] was
+banged \, or the value at that index if a float was sent.;
+#X text 627 433 -- See also --;
+#X text 492 459 [tof/breakpoints~];
+#X msg 270 471 0 0.5 1 0.5 0;
+#X connect 0 0 17 0;
+#X connect 1 0 17 0;
+#X connect 2 0 1 0;
+#X connect 3 0 14 0;
+#X connect 4 0 7 0;
+#X connect 5 0 8 0;
+#X connect 6 0 15 0;
+#X connect 10 0 17 0;
+#X connect 11 0 30 0;
+#X connect 12 0 17 0;
+#X connect 17 0 11 0;
+#X connect 17 1 13 0;
+#X connect 17 2 16 0;
+#X connect 40 0 17 0;
+#X connect 48 0 17 0;
diff --git a/tof/breakpoints~-help.pd b/tof/breakpoints~-help.pd
new file mode 100644
index 0000000..311cdd9
--- /dev/null
+++ b/tof/breakpoints~-help.pd
@@ -0,0 +1,90 @@
+#N canvas 0 25 996 667 10;
+#X floatatom 119 332 5 0 0 0 - - -;
+#X obj 39 642 dac~;
+#X obj 245 549 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 145 548 print DUMP;
+#X obj 48 396 tof/breakpoints~;
+#X text 618 155 The following breakpoints was created with this line:
+[breakpoints~ 100 50 3000 \$0r \$0d \$0c];
+#X text 28 -13 Description: A graphical signal~ breakpoint envelope
+generator (based on envgen by ggee).;
+#X obj 47 591 tabread4~ \$0table;
+#X obj 46 566 *~ 0;
+#N canvas 331 260 450 300 load_soundfile 0;
+#X obj 65 34 inlet;
+#X obj 66 68 openpanel;
+#X msg 66 136 read -resize \$1 \$2table;
+#X obj 66 172 soundfiler;
+#X obj 66 203 outlet;
+#X obj 66 99 pack s \$0;
+#X connect 0 0 1 0;
+#X connect 1 0 5 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 5 0 2 0;
+#X restore 30 52 pd load_soundfile;
+#X obj 30 29 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 163 591 table \$0table;
+#X obj 30 74 s \$0samples;
+#X obj 67 544 r \$0samples;
+#X msg 100 308 dump;
+#X msg 60 205 1 1 0;
+#X text 799 362 -- Outlets --;
+#X text 637 415 Outlet 2: The point data when dumped.;
+#X text 636 437 Outlet 3: Bangs when the contents was modified with
+the mouse.;
+#X text 635 392 Outlet 1 signal: The value at that index;
+#X text 35 111 Inlet 1 list: sets the point data (value0 delay1 value1
+delay2 value2 etc...);
+#X text 142 94 -- Inlets --;
+#X obj 47 614 *~ 0.5;
+#X text 156 330 Inlet 1 signal: output the interpolated value at that
+index.;
+#X text 138 298 Inlet 1 dump: dump the current point data out the second
+outlet.;
+#X text 86 180 Play forward;
+#X text 104 201 Play backward;
+#X text 161 237 Play back and forth;
+#X text 257 419 Select a point with the mouse and press the backspace
+key to delete it.;
+#X text 258 400 Click and drag to change points;
+#X text 625 49 Argument 1: display width;
+#X text 625 63 Argument 2: display height;
+#X text 624 77 Argument 3: receive name;
+#X text 624 92 Argument 4: send name;
+#X text 624 106 Argument 5: dump receive name;
+#X text 624 121 Argument 6: contents change by mouse receive name;
+#X text 764 18 -- Arguments --;
+#X obj 624 205 tof/breakpoints~ 100 50 3000 \$0r \$0d \$0c;
+#X text 767 280 -- See also --;
+#X text 632 306 [tof/breakpoints];
+#X obj 119 357 phasor~ 0.5;
+#X text 52 29 Load a short sound loop and turn dsp on;
+#X obj 46 157 loadbang;
+#X msg 46 183 0 1 1;
+#X msg 72 236 0 0.5 1 0.5 0;
+#X msg 84 259 0 0.5 0.5 0 0 0.5 0.5;
+#X text 226 259 Mix things up;
+#X msg 96 282 0 0.25 0.25 0 1 0.25 0.75 0 0.5 0.25 0.75 0 0.25 0.25
+0.5;
+#X connect 0 0 40 0;
+#X connect 4 0 8 0;
+#X connect 4 1 3 0;
+#X connect 4 2 2 0;
+#X connect 7 0 22 0;
+#X connect 8 0 7 0;
+#X connect 9 0 12 0;
+#X connect 10 0 9 0;
+#X connect 13 0 8 1;
+#X connect 14 0 4 0;
+#X connect 15 0 4 0;
+#X connect 22 0 1 0;
+#X connect 22 0 1 1;
+#X connect 40 0 4 0;
+#X connect 42 0 43 0;
+#X connect 43 0 4 0;
+#X connect 44 0 4 0;
+#X connect 45 0 4 0;
+#X connect 47 0 4 0;
diff --git a/tof/common~-help.pd b/tof/common~-help.pd
new file mode 100644
index 0000000..225c5c8
--- /dev/null
+++ b/tof/common~-help.pd
@@ -0,0 +1,39 @@
+#N canvas 162 106 780 541 10;
+#X obj 56 302 tof/common~ patrick;
+#X obj 278 305 tof/common~ patrick;
+#X obj 55 266 sig~;
+#X floatatom 55 241 5 0 0 0 - - -;
+#X obj 277 271 sig~;
+#X floatatom 277 244 5 0 0 0 - - -;
+#X obj 29 23 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 34 71 author: mrtoftrash@gmail.com;
+#X text 33 49 tags: mix~ control~;
+#X text 34 92 version: 2009-10-22;
+#X text 34 23 description: "many to many" nonlocal signal connections.
+;
+#X text 35 129 All common~ objects of the same name share the same
+output.;
+#X text 35 152 The output is the sum of all the inputs from the previous
+dsp block.;
+#X text 35 193 common~ only works for the default block size (64) and
+delays the input by one block.;
+#X obj 181 354 metro 1000;
+#X obj 57 389 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
+-262144 -1 -1 0 256;
+#X obj 278 384 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
+-262144 -1 -1 0 256;
+#X obj 57 346 snapshot~;
+#X obj 278 347 snapshot~;
+#X obj 182 323 loadbang;
+#X connect 0 0 17 0;
+#X connect 1 0 18 0;
+#X connect 2 0 0 0;
+#X connect 3 0 2 0;
+#X connect 4 0 1 0;
+#X connect 5 0 4 0;
+#X connect 14 0 17 0;
+#X connect 14 0 18 0;
+#X connect 17 0 15 0;
+#X connect 18 0 16 0;
+#X connect 19 0 14 0;
diff --git a/tof/crossfade~-help.pd b/tof/crossfade~-help.pd
new file mode 100644
index 0000000..bc76552
--- /dev/null
+++ b/tof/crossfade~-help.pd
@@ -0,0 +1,43 @@
+#N canvas 339 91 665 533 10;
+#X floatatom 323 276 5 0 0 0 - - -;
+#X obj 32 -13 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 37 31 author: mrtoftrash@gmail.com;
+#X text 37 52 version: 2009-06-04 (initial release);
+#X obj 36 164 osc~ 100;
+#X obj 36 444 dac~;
+#X obj 197 189 noise~;
+#X obj 93 163 osc~ 500;
+#X obj 248 189 osc~ 200;
+#X obj 35 417 *~ 0.5;
+#X obj 106 416 *~ 0.5;
+#X obj 142 394 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
+-1 -1 0 1;
+#X text 35 142 First source: signal inlets to the left.;
+#X text 187 170 Second source: signal inlets to the right.;
+#X obj 326 255 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
+-1 -1 0 1;
+#X text 334 234 Crossfade: 0-1;
+#X text 261 215 The right most inlet controls the linear crossfade
+value.;
+#X text 37 -14 description: crossfades 2 multi-channel sources;
+#X obj 36 348 tof/crossfade~ 2;
+#X msg 323 298 \$1 5;
+#X obj 328 336 line~;
+#X text 41 104 Argument 1: The number of channels for each source (defaults
+to 2);
+#X text 38 10 tags: signal mix~;
+#X connect 0 0 19 0;
+#X connect 4 0 18 0;
+#X connect 6 0 18 2;
+#X connect 7 0 18 1;
+#X connect 8 0 18 3;
+#X connect 9 0 5 0;
+#X connect 10 0 5 1;
+#X connect 11 0 9 1;
+#X connect 11 0 10 1;
+#X connect 14 0 0 0;
+#X connect 18 0 9 0;
+#X connect 18 1 10 0;
+#X connect 19 0 20 0;
+#X connect 20 0 18 4;
diff --git a/tof/folderpanel-help.pd b/tof/folderpanel-help.pd
new file mode 100644
index 0000000..b45fd68
--- /dev/null
+++ b/tof/folderpanel-help.pd
@@ -0,0 +1,15 @@
+#N canvas 372 91 450 300 10;
+#X obj 26 148 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 26 185 tof/folderpanel;
+#X obj 26 221 print;
+#X obj -1 29 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 7 78 author: mrtoftrash@gmail.com;
+#X text 5 99 version: 2009-04-14 (initial release);
+#X text 6 56 tags: initialization patch;
+#X text 6 29 description: queries for a folder;
+#X text 140 150 inlet 1 bang: opens the panel;
+#X text 140 169 outlet 2 symbol: the folder selected;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
diff --git a/tof/from_ascii_code-help.pd b/tof/from_ascii_code-help.pd
new file mode 100644
index 0000000..341c5bf
--- /dev/null
+++ b/tof/from_ascii_code-help.pd
@@ -0,0 +1,29 @@
+#N canvas 1080 84 708 396 10;
+#X obj 94 332 print;
+#X msg 133 156 43;
+#X obj 71 69 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X msg 108 116 32;
+#X obj 94 285 tof/from_ascii_code 13;
+#X msg 99 94 54;
+#X msg 155 197 13;
+#X text 64 29 Tags: conversion text symbols;
+#X text 64 13 Description: Convert ASCII codes into PD messages;
+#X text 134 95 Floats and lists: enter ASCII codes;
+#X text 93 68 Bang: output data;
+#X text 248 285 Optionnal argument: output data once that ASCII code
+is received;
+#X msg 121 137 65;
+#X text 185 192 Because of [form_ascii_code]'s creation argument \,
+the number 13 acts like a bang;
+#X msg 161 229 49 50 51 32 52 53 13;
+#X msg 143 176 49 50 51 32 52 53;
+#X connect 1 0 4 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 0;
+#X connect 4 0 0 0;
+#X connect 5 0 4 0;
+#X connect 6 0 4 0;
+#X connect 12 0 4 0;
+#X connect 14 0 4 0;
+#X connect 15 0 4 0;
diff --git a/tof/gemwin+-help.pd b/tof/gemwin+-help.pd
new file mode 100644
index 0000000..19cc08f
--- /dev/null
+++ b/tof/gemwin+-help.pd
@@ -0,0 +1,36 @@
+#N canvas 112 132 841 373 10;
+#X obj 4 -185 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X text 483 -183 dimen w h;
+#X text 483 -169 lighting 0/1;
+#X text 483 -156 border 0/1;
+#X text 482 -143 offest x y;
+#X text 440 -88 Gem window with a dimension of 640 by 480 pixels \,
+with no border \, and with an offset of 200 by 200 pixels;
+#X text 482 -130 frame f;
+#X text 440 -234 ARGUMENTS;
+#X text -6 -269 Description: A more user friendly Gem window manager
+with mouse pointer information.;
+#X text 439 -216 You can set the following comma separated arguments:
+;
+#X text -5 -234 Tags: Gem;
+#X obj 43 -125 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X text 23 -188 Float: 1: Create and render window \, 0: Destroy window.
+;
+#X text 67 -128 Float: Mouse mode \; 0: Gem coordinates \, 1: Normalized.
+;
+#X obj 43 -75 print mouse;
+#X obj 4 -100 gemwin+;
+#X text 39 -58 x_pos y_pos left_button middle_button right_button;
+#X obj 4 9 scale 0.5;
+#X obj 5 35 square;
+#X obj 439 -109 gemwin+ dimen 640 480 \, border 0 \, offset 200 200
+;
+#X text 12 -37 The left most outlet is a gemlist normalized to the
+window's size (i.e. a square of size 1 fills the whole window);
+#X connect 0 0 15 0;
+#X connect 11 0 15 1;
+#X connect 15 0 17 0;
+#X connect 15 1 14 0;
+#X connect 17 0 18 0;
diff --git a/tof/gemwin+.pd b/tof/gemwin+.pd
new file mode 100644
index 0000000..11d6226
--- /dev/null
+++ b/tof/gemwin+.pd
@@ -0,0 +1,252 @@
+#N canvas 162 76 861 657 10;
+#X obj 178 213 gemwin;
+#X obj -1 -331 inlet;
+#X obj -1 -172 sel 1 0;
+#X msg 140 129 0;
+#X msg 83 132 destroy;
+#X obj 96 29 t b b;
+#X msg 25 168 create;
+#X msg -12 168 1;
+#N canvas 609 89 830 679 CREATE&DESTROY 0;
+#X obj 104 -313 inlet;
+#X msg 138 -180 0;
+#X obj 27 -183 t b b;
+#X msg 90 -138 0;
+#X msg 36 -104 1;
+#X obj 16 -138 delay 201;
+#X obj 91 -280 route 1 0;
+#X obj 95 -243 route create destroy;
+#X obj 176 42 outlet;
+#X connect 0 0 6 0;
+#X connect 1 0 8 0;
+#X connect 2 0 5 0;
+#X connect 2 1 3 0;
+#X connect 3 0 8 0;
+#X connect 4 0 8 0;
+#X connect 5 0 4 0;
+#X connect 6 0 2 0;
+#X connect 6 1 1 0;
+#X connect 6 2 7 0;
+#X connect 7 0 2 0;
+#X connect 7 1 1 0;
+#X restore -1 -203 pd CREATE&DESTROY;
+#X obj -53 106 t b b b;
+#N canvas 5 95 1019 673 SETTINGS 0;
+#X obj 144 -139 inlet;
+#X obj 69 461 outlet;
+#X msg 274 199 frame \$1;
+#X msg 509 118 border \$1;
+#X msg 723 156 lighting \$1;
+#N canvas 2 27 1022 686 dimen 0;
+#X msg 73 494 dimen \$1 \$2;
+#X obj 58 391 pack;
+#X obj 65 272 t f f;
+#X obj 284 236 t f f;
+#X obj 60 20 inlet;
+#X obj 65 570 outlet;
+#X obj 104 58 t b b;
+#X obj 465 22 inlet;
+#X obj 308 567 outlet;
+#X obj 539 564 outlet;
+#X obj 445 52 unpack;
+#X obj 154 357 s gemwin+_w_r;
+#X obj 354 343 s gemwin+_h_r;
+#X obj 230 450 r gemwin+_w_r;
+#X obj 454 458 r gemwin+_h_r;
+#X obj 489 110 loadbang;
+#X msg 452 134 320;
+#X msg 512 139 240;
+#X obj 73 200 f;
+#X obj 282 197 f;
+#X connect 0 0 5 0;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 2 1 11 0;
+#X connect 3 0 1 1;
+#X connect 3 1 12 0;
+#X connect 4 0 6 0;
+#X connect 6 0 18 0;
+#X connect 6 1 19 0;
+#X connect 7 0 10 0;
+#X connect 10 0 18 1;
+#X connect 10 1 19 1;
+#X connect 13 0 8 0;
+#X connect 14 0 9 0;
+#X connect 15 0 16 0;
+#X connect 15 0 17 0;
+#X connect 16 0 18 1;
+#X connect 17 0 19 1;
+#X connect 18 0 2 0;
+#X connect 19 0 3 0;
+#X restore 47 102 pd dimen;
+#N canvas 1096 133 1022 686 offset 0;
+#X obj 102 258 pack;
+#X obj 60 20 inlet;
+#X obj 109 468 outlet;
+#X msg 117 392 offset \$1 \$2;
+#X obj 123 67 t b b;
+#X obj 401 28 inlet;
+#X obj 66 203 f 0;
+#X obj 298 200 f 0;
+#X obj 398 59 unpack;
+#X connect 0 0 3 0;
+#X connect 1 0 4 0;
+#X connect 3 0 2 0;
+#X connect 4 0 6 0;
+#X connect 4 1 7 0;
+#X connect 5 0 8 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 1;
+#X connect 8 0 6 1;
+#X connect 8 1 7 1;
+#X restore 178 113 pd offset;
+#X obj 218 -39 t b b b b b b;
+#X msg 620 319 FSAA \$1;
+#X obj 621 294 * 2;
+#X obj 563 -149 inlet;
+#X obj 505 85 f 1;
+#X obj 564 -96 route dimen offset fps border anti-aliasing lighting
+;
+#X obj 723 120 f 0;
+#X obj 623 269 f 0;
+#X obj 308 460 outlet w;
+#X obj 520 449 outlet h;
+#X obj 299 140 f 20;
+#X connect 0 0 7 0;
+#X connect 2 0 1 0;
+#X connect 3 0 1 0;
+#X connect 4 0 1 0;
+#X connect 5 0 1 0;
+#X connect 5 1 15 0;
+#X connect 5 2 16 0;
+#X connect 6 0 1 0;
+#X connect 7 0 5 0;
+#X connect 7 1 6 0;
+#X connect 7 2 17 0;
+#X connect 7 3 11 0;
+#X connect 7 4 13 0;
+#X connect 7 5 14 0;
+#X connect 8 0 1 0;
+#X connect 9 0 8 0;
+#X connect 10 0 12 0;
+#X connect 11 0 3 0;
+#X connect 12 0 5 1;
+#X connect 12 1 6 1;
+#X connect 12 2 17 1;
+#X connect 12 3 11 1;
+#X connect 12 4 14 1;
+#X connect 12 5 13 1;
+#X connect 13 0 4 0;
+#X connect 14 0 9 0;
+#X connect 17 0 2 0;
+#X restore 217 81 pd SETTINGS;
+#X obj -1 -305 route float bang;
+#X msg 45 -273 1;
+#X obj 4 -124 t b b b;
+#N canvas 9 159 826 574 mouse 0;
+#X obj 153 67 gemmouse 1 1;
+#X obj 347 93 expr $f1/$f2*-4 \; $f1/$f2*4;
+#X obj 154 340 expr ($f1 * ($f3 - $f2)) + $f2;
+#X obj 230 -27 inlet;
+#X obj 382 -34 inlet;
+#X obj 282 284 expr $f1*-8+4;
+#X obj 551 -28 inlet mode;
+#X obj 148 223 zexy/demultiplex 0 1;
+#X obj 302 229 zexy/demultiplex 0 1;
+#X obj 103 515 outlet;
+#X obj 16 -5 inlet do_output;
+#X obj 136 403 f;
+#X obj 198 430 pack f f f f f;
+#X obj 113 142 t f b;
+#X obj 206 125 t f b;
+#X obj 247 125 t f b;
+#X obj 287 126 t f b;
+#X obj 22 217 spigot;
+#X obj 26 242 t b b;
+#X msg 74 246 0;
+#X msg 96 195 1;
+#X obj 372 335 expr ($f1-0.5)*2;
+#X obj 535 348 expr ($f1-0.5)*-2;
+#X connect 0 0 13 0;
+#X connect 0 1 8 0;
+#X connect 0 2 14 0;
+#X connect 0 3 15 0;
+#X connect 0 4 16 0;
+#X connect 1 0 2 1;
+#X connect 1 1 2 2;
+#X connect 2 0 11 1;
+#X connect 3 0 1 0;
+#X connect 4 0 1 1;
+#X connect 5 0 12 1;
+#X connect 6 0 7 1;
+#X connect 6 0 8 1;
+#X connect 7 0 2 0;
+#X connect 7 1 21 0;
+#X connect 8 0 5 0;
+#X connect 8 1 22 0;
+#X connect 10 0 17 0;
+#X connect 11 0 12 0;
+#X connect 12 0 9 0;
+#X connect 13 0 7 0;
+#X connect 13 1 20 0;
+#X connect 14 0 12 2;
+#X connect 14 1 20 0;
+#X connect 15 0 12 3;
+#X connect 15 1 20 0;
+#X connect 16 0 12 4;
+#X connect 16 1 20 0;
+#X connect 17 0 18 0;
+#X connect 18 0 11 0;
+#X connect 18 1 19 0;
+#X connect 19 0 17 1;
+#X connect 20 0 17 1;
+#X connect 21 0 11 1;
+#X connect 22 0 12 1;
+#X restore 247 143 pd mouse;
+#X obj -30 350 outlet;
+#X obj 289 287 outlet;
+#X obj 12 270 /;
+#X obj 10 295 * 4;
+#X obj -29 324 scaleXYZ 4 4 4;
+#X obj -29 220 gemhead 1;
+#X obj 523 -231 loadbang;
+#X msg 206 180 1;
+#X obj 97 58 delay 100;
+#X obj 319 -320 inlet mouse_mode;
+#X obj 516 -188 tof/arguments comma;
+#X obj -36 247 t a b;
+#X connect 1 0 11 0;
+#X connect 2 0 13 0;
+#X connect 2 1 5 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 0;
+#X connect 5 0 23 0;
+#X connect 5 1 3 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 8 0 2 0;
+#X connect 9 1 7 0;
+#X connect 9 2 6 0;
+#X connect 10 0 0 0;
+#X connect 10 1 14 1;
+#X connect 10 1 17 0;
+#X connect 10 2 14 2;
+#X connect 10 2 17 1;
+#X connect 11 0 8 0;
+#X connect 11 1 12 0;
+#X connect 11 2 10 1;
+#X connect 12 0 8 0;
+#X connect 13 0 9 0;
+#X connect 13 1 10 0;
+#X connect 14 0 16 0;
+#X connect 17 0 18 0;
+#X connect 18 0 19 1;
+#X connect 19 0 15 0;
+#X connect 20 0 26 0;
+#X connect 21 0 25 0;
+#X connect 22 0 0 0;
+#X connect 23 0 4 0;
+#X connect 24 0 14 3;
+#X connect 25 0 10 1;
+#X connect 26 0 19 0;
+#X connect 26 1 14 0;
diff --git a/tof/getdollarzero-help.pd b/tof/getdollarzero-help.pd
new file mode 100644
index 0000000..04aebab
--- /dev/null
+++ b/tof/getdollarzero-help.pd
@@ -0,0 +1,20 @@
+#N canvas 275 172 587 373 10;
+#X msg 42 193 bang;
+#X obj 41 269 print;
+#X obj 42 231 getdollarzero;
+#X symbolatom 87 268 10 0 0 0 - - -;
+#X obj -1 29 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 4 73 author: mrtoftrash@gmail.com;
+#X text 3 50 tags: initialization patch;
+#X text 4 94 version: 2009-09-23 (release 2: added "root" keyword)
+;
+#X text 204 162 ARGUMENT:;
+#X text 4 28 description: gets the \$0 of a patch.;
+#X text 203 181 float: How much recursion you want (If set to 1 \,
+it will get the parent patch's \$0. If set to 2 \, it will get the
+parent's parent's \$0 \, etc);
+#X text 200 234 root: Get the \$0 of the root patch;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X connect 2 0 3 0;
diff --git a/tof/homea.gif b/tof/homea.gif
new file mode 100644
index 0000000..c216f13
--- /dev/null
+++ b/tof/homea.gif
Binary files differ
diff --git a/tof/homeb.gif b/tof/homeb.gif
new file mode 100644
index 0000000..be83f9d
--- /dev/null
+++ b/tof/homeb.gif
Binary files differ
diff --git a/tof/imagebang-help.pd b/tof/imagebang-help.pd
new file mode 100644
index 0000000..2025814
--- /dev/null
+++ b/tof/imagebang-help.pd
@@ -0,0 +1,48 @@
+#N canvas 285 54 658 621 10;
+#X obj 45 338 print;
+#X obj 45 152 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X text 27 49 [imagebang] only works with gifs;
+#X text 314 97 Arguments:;
+#X text 253 277 <- This [imagebang] was created with the following:
+;
+#X obj 286 341 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 285 362 s \$0pandar;
+#X obj 365 333 r \$0pandas;
+#X obj 366 361 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 42 411 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 42 502 print;
+#X obj 192 416 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 192 389 r \$0homes;
+#X obj 122 394 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 123 416 s \$0homer;
+#X text 112 458 <- This [imagebang] was created with the following:
+;
+#X text 258 299 [tof/imagebang panda.gif pandb.gif \$0pandas \$0pandar]
+;
+#X text 118 480 [tof/imagebang homea.gif homeb.gif \$0homes \$0homer]
+;
+#X text 28 69 based on [image] by ggee and moonlib;
+#X obj 45 177 tof/imagebang panda.gif pandb.gif \$0pandas \$0pandar
+;
+#X obj 42 436 tof/imagebang homea.gif homeb.gif \$0homes \$0homer;
+#X text 26 3 Description: a bang with an image;
+#X text 27 17 Tags: ui;
+#X text 351 116 1) image for the normal state (required);
+#X text 350 133 2) image for the clicked state (required);
+#X text 350 149 3) send name (optionnal);
+#X text 351 165 4) receive name (optionnal);
+#X text 27 31 Contact: mrtoftrash@gmail.com;
+#X connect 1 0 19 0;
+#X connect 5 0 6 0;
+#X connect 7 0 8 0;
+#X connect 9 0 20 0;
+#X connect 12 0 11 0;
+#X connect 13 0 14 0;
+#X connect 19 0 0 0;
+#X connect 20 0 10 0;
diff --git a/tof/increment-help.pd b/tof/increment-help.pd
new file mode 100644
index 0000000..8892e1d
--- /dev/null
+++ b/tof/increment-help.pd
@@ -0,0 +1,42 @@
+#N canvas 1174 80 640 574 10;
+#X obj 22 -23 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 26 15 author: mrtoftrash@gmail.com;
+#X msg 115 181 3;
+#X msg 76 181 6;
+#X text 27 -24 description: increment a number.;
+#X text 28 0 tags: flow counter;
+#X obj 27 120 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 27 279 print;
+#X text 24 82 First inlet:;
+#X obj 38 427 print;
+#X obj 38 317 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X msg 61 345 set 43;
+#X text 160 387 Argument 1: start value (defaults to 0);
+#X obj 166 211 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 27 251 tof/increment;
+#X obj 38 396 tof/increment 10 3;
+#X text 26 30 version: 2009-10-23 (two inlet version);
+#X text 107 345 Set the value;
+#X text 135 145 Second inlet:;
+#X text 150 175 bang: resets to 0;
+#X text 149 162 float: sets value;
+#X text 69 96 bang: outputs and increments the value;
+#X text 70 109 float: sets increment amount and outputs incremented
+value;
+#X text 160 402 Argument 2: incrementation amount (defaults to 1);
+#X msg 51 139 2;
+#X msg 78 367 1;
+#X connect 2 0 14 1;
+#X connect 3 0 14 1;
+#X connect 6 0 14 0;
+#X connect 10 0 15 0;
+#X connect 11 0 15 0;
+#X connect 13 0 14 1;
+#X connect 14 0 7 0;
+#X connect 15 0 9 0;
+#X connect 24 0 14 0;
+#X connect 25 0 15 0;
diff --git a/tof/iterate-help.pd b/tof/iterate-help.pd
new file mode 100644
index 0000000..c5d5be7
--- /dev/null
+++ b/tof/iterate-help.pd
@@ -0,0 +1,61 @@
+#N canvas 1184 0 638 689 10;
+#X obj 12 -33 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 17 1 author: mrtoftrash@gmail.com;
+#X text 17 12 version: 2009-05-07 (initial release);
+#X text 293 244 Optional argument 1: start value;
+#X text 17 -10 tags: stream flow;
+#X obj 51 151 iterate;
+#X obj 51 182 print;
+#X msg 22 116 3;
+#X msg 77 113 6;
+#X obj 313 148 iterate;
+#X obj 386 150 sel 4;
+#X obj 313 191 print;
+#X msg 312 120 6;
+#X text 286 85 Bang: A bang will stop the iteration before it ends.
+;
+#X text 21 85 Float: Iterates that many times.;
+#X obj 35 339 iterate;
+#X obj 35 370 print;
+#X obj 329 369 print;
+#X msg 329 304 4;
+#X obj 329 338 iterate 20 2;
+#X text 36 242 Inlet 2: start value;
+#X msg 34 282 5;
+#X msg 67 284 10;
+#X msg 98 283 3;
+#X msg 110 309 1;
+#X msg 148 311 -1;
+#X msg 361 419 10 100 3;
+#X obj 361 455 iterate;
+#X obj 361 495 print;
+#X obj 361 575 iterate;
+#X obj 361 615 print;
+#X msg 360 539 start 15 \, step -0.5 \, 5;
+#X text 17 -34 description: iterates through numbers (as a "for" loop).
+;
+#X text 35 227 Inlet 1: iterations;
+#X text 89 452 Iterate 10 times from 100 with a step of 3:;
+#X text 89 560 Iterate 5 times from 15 with a step of -0.5:;
+#X text 293 259 Optional argument 2: step value;
+#X text 36 256 Inlet 3: step value;
+#X connect 5 0 6 0;
+#X connect 7 0 5 0;
+#X connect 8 0 5 0;
+#X connect 9 0 11 0;
+#X connect 9 0 10 0;
+#X connect 10 0 9 0;
+#X connect 12 0 9 0;
+#X connect 15 0 16 0;
+#X connect 18 0 19 0;
+#X connect 19 0 17 0;
+#X connect 21 0 15 0;
+#X connect 22 0 15 1;
+#X connect 23 0 15 1;
+#X connect 24 0 15 2;
+#X connect 25 0 15 2;
+#X connect 26 0 27 0;
+#X connect 27 0 28 0;
+#X connect 29 0 30 0;
+#X connect 31 0 29 0;
diff --git a/tof/listUnfold-help.pd b/tof/listUnfold-help.pd
new file mode 100644
index 0000000..ba2085c
--- /dev/null
+++ b/tof/listUnfold-help.pd
@@ -0,0 +1,40 @@
+#N canvas 82 115 833 496 10;
+#X msg 103 285 anything works too;
+#X msg 91 258 symbol test;
+#X obj 62 27 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 67 77 author: mrtoftrash@gmail.com;
+#X obj 100 362 tof/listUnfold;
+#X obj 464 358 tof/listUnfold wait;
+#X obj 493 309 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 67 66 tags: lists;
+#X obj 100 388 print ATOM;
+#X obj 181 389 print INDEX;
+#X obj 464 384 print ATOM;
+#X obj 575 381 print INDEX;
+#X msg 60 229 list a b c d e f g;
+#X msg 464 282 list m n o p q r s t u v;
+#X text 468 263 step 1: add list;
+#X text 513 307 step 2: bang to output each element;
+#X obj 122 313 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 147 312 bang to interrupt output;
+#X text 67 145 listUnfold has two modes:;
+#X text 68 27 description: output the individual elements of a list
+and their indices \, either immediately or on bangs.;
+#X text 67 88 version: 2009-10-06 (added the second mode);
+#X text 56 199 default mode: output everything once it is received.
+;
+#X text 428 196 "wait" or "manually" mode: output one element for every
+bang .;
+#X connect 0 0 4 0;
+#X connect 1 0 4 0;
+#X connect 4 0 8 0;
+#X connect 4 1 9 0;
+#X connect 5 0 10 0;
+#X connect 5 1 11 0;
+#X connect 6 0 5 0;
+#X connect 12 0 4 0;
+#X connect 13 0 5 0;
+#X connect 16 0 4 0;
diff --git a/tof/menubutton-help.pd b/tof/menubutton-help.pd
new file mode 100644
index 0000000..05d464b
--- /dev/null
+++ b/tof/menubutton-help.pd
@@ -0,0 +1,103 @@
+#N canvas 1181 230 1012 664 10;
+#X obj 26 538 tof/menubutton 132 22 \$0s \$0r 1 green red orange purple
+0 \, a \, b \, c \, d \, e \, f \, with spaces;
+#X msg 43 66 add a b c d e f;
+#X msg 28 46 clear;
+#X msg 118 159 saveitems \$1;
+#X obj 118 132 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X floatatom 392 560 5 0 0 0 - - -;
+#X text 71 45 Clear menu items;
+#X text 147 64 Add menu items;
+#X obj 242 540 r \$0s;
+#X obj 392 589 send \$0r;
+#X text 542 335 1: width;
+#X text 542 349 2: height;
+#X text 542 362 3: send name;
+#X text 542 374 4: receive name;
+#X text 139 130 Set the saving of the menu items in the patch. Off
+by default.;
+#X floatatom 188 303 5 0 0 0 - - -;
+#X obj 26 574 unpack f s;
+#X floatatom 26 597 5 0 0 0 - - -;
+#X symbolatom 85 595 10 0 0 0 - - -;
+#X floatatom 243 595 5 0 0 0 - - -;
+#X symbolatom 300 593 10 0 0 0 - - -;
+#X obj 243 564 unpack f s;
+#X msg 189 327 set b;
+#X msg 189 351 set 2;
+#X text 126 196 values can be tk colors(red \, blue \, etc) or html
+colors (#ffffff);
+#X msg 184 275 colors default;
+#X text 125 180 colors: background foreground highlight contour;
+#X msg 126 230 colors green red orange purple;
+#X msg 146 255 colors #000000 #ffffff #ff0000 #3a12ff;
+#X text 145 88 Set its size;
+#X msg 66 89 size 102 32;
+#X text 165 110 Set its size;
+#X msg 86 111 size 132 22;
+#X msg 186 421 align -1;
+#X msg 188 401 align 0;
+#X msg 187 380 align 1;
+#X obj 542 244 cnv 15 400 60 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 547 252 To move the [menubutton] \, switch to edit mode and
+draw a selection rectangle around it. The [menubutton] will temporarly
+be disabled allowing you to drag it.;
+#X obj 540 315 cnv 15 400 15 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X text 543 313 Creation arguments:;
+#X text 542 385 5: save menu items flag;
+#X msg 183 510 add \$1;
+#X obj 183 487 cyclone/tosymbol;
+#X text 543 422 8: highlight color (#000000 html or tk colors);
+#X text 543 411 7: foreground color (#000000 hmtl or tk colors);
+#X text 541 398 6: background color (#000000 html or tk colors);
+#X text 542 435 9: contour color (#000000 html or tk colors);
+#X text 541 448 10: horizontal alignement;
+#X text 537 463 \, : anything after a comma will be parsed as the menu
+items. Each menu item must be separated by a comma.;
+#X text 229 348 Select an item by index without outputing it;
+#X text 242 380 align right;
+#X text 245 398 align center;
+#X text 249 418 align left;
+#X text 228 302 Select and output a menu item by index;
+#X obj 28 9 cnv 15 400 30 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X text 30 8 description: a button with a popup menu;
+#X text 31 21 tags: ui;
+#X msg 183 464 with spaces;
+#X text 180 444 Adding items with spaces;
+#X obj 540 541 cnv 15 400 30 empty empty empty 20 12 0 14 -232576 -66577
+0;
+#X text 544 519 The [menubutton] at left was created with the following:
+;
+#X text 546 539 [tof/menubutton 132 22 \$0s \$0r 1 green red orange
+purple 0 \, a \, b \, c \, d \, e \, f \, with spaces];
+#X text 105 572 output: index name;
+#X text 235 325 Select an item by name without outputing it;
+#X connect 0 0 16 0;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 3 0;
+#X connect 5 0 9 0;
+#X connect 8 0 21 0;
+#X connect 15 0 0 0;
+#X connect 16 0 17 0;
+#X connect 16 1 18 0;
+#X connect 21 0 19 0;
+#X connect 21 1 20 0;
+#X connect 22 0 0 0;
+#X connect 23 0 0 0;
+#X connect 25 0 0 0;
+#X connect 27 0 0 0;
+#X connect 28 0 0 0;
+#X connect 30 0 0 0;
+#X connect 32 0 0 0;
+#X connect 33 0 0 0;
+#X connect 34 0 0 0;
+#X connect 35 0 0 0;
+#X connect 41 0 0 0;
+#X connect 42 0 41 0;
+#X connect 57 0 42 0;
diff --git a/tof/onlyone-help.pd b/tof/onlyone-help.pd
new file mode 100644
index 0000000..e76eea4
--- /dev/null
+++ b/tof/onlyone-help.pd
@@ -0,0 +1,66 @@
+#N canvas 1079 120 620 485 10;
+#X obj 63 213 loadbang;
+#X msg 123 213 set a;
+#X msg 165 214 set b;
+#X msg 208 215 set;
+#X obj 280 215 loadbang;
+#X msg 340 215 set a;
+#X msg 383 217 set b;
+#X msg 425 217 set;
+#X msg 297 306 1;
+#X msg 370 303 0;
+#X msg 66 299 1;
+#X msg 139 296 0;
+#X obj 67 274 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 138 271 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 296 280 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 367 278 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 62 244 tof/onlyone a;
+#X obj 294 251 tof/onlyone b;
+#X obj 39 33 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 44 84 author: mrtoftrash@gmail.com;
+#X text 44 64 tags: initialization control;
+#X text 44 105 version: 2009-10-24;
+#X text 44 33 description: makes sure it is the first or only [onlyone]
+to use that name.;
+#X text 77 399 Outlet 1: bangs if it is the first or only one to use
+that name.;
+#X text 79 431 Outlet 2: bangs if it not the the first and not the
+only one to use that name.;
+#X text 62 139 Try to "set" the name of each [onlyone] to the same
+name and than to different names.;
+#X obj 82 358 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 81 329 metro 500;
+#X obj 330 340 metro 500;
+#X obj 336 368 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 65 171 If both [onlyone] have the same name \, only one metro
+will be active.;
+#X connect 0 0 16 0;
+#X connect 1 0 16 0;
+#X connect 2 0 16 0;
+#X connect 3 0 16 0;
+#X connect 4 0 17 0;
+#X connect 5 0 17 0;
+#X connect 6 0 17 0;
+#X connect 7 0 17 0;
+#X connect 8 0 28 0;
+#X connect 9 0 28 0;
+#X connect 10 0 27 0;
+#X connect 11 0 27 0;
+#X connect 12 0 10 0;
+#X connect 13 0 11 0;
+#X connect 14 0 8 0;
+#X connect 15 0 9 0;
+#X connect 16 0 12 0;
+#X connect 16 1 13 0;
+#X connect 17 0 14 0;
+#X connect 17 1 15 0;
+#X connect 27 0 26 0;
+#X connect 28 0 29 0;
diff --git a/tof/openHelp-help.pd b/tof/openHelp-help.pd
new file mode 100644
index 0000000..a040736
--- /dev/null
+++ b/tof/openHelp-help.pd
@@ -0,0 +1,15 @@
+#N canvas 125 137 619 503 10;
+#X msg 77 213 symbol list;
+#X msg 157 247 symbol until;
+#X obj -1 29 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 4 85 author: mrtoftrash@gmail.com;
+#X msg 178 298 symbol zexy/list2symbol;
+#X text 4 28 description: searches for an external's or an abstraction's
+help file and tries to open it.;
+#X text 4 106 version: 2009-09-25;
+#X text 3 65 tags: file patch;
+#X obj 77 340 tof/openHelp;
+#X connect 0 0 8 0;
+#X connect 1 0 8 0;
+#X connect 4 0 8 0;
diff --git a/tof/panda.gif b/tof/panda.gif
new file mode 100644
index 0000000..17f52e2
--- /dev/null
+++ b/tof/panda.gif
Binary files differ
diff --git a/tof/pandb.gif b/tof/pandb.gif
new file mode 100644
index 0000000..2a0ee9b
--- /dev/null
+++ b/tof/pandb.gif
Binary files differ
diff --git a/tof/param-help.pd b/tof/param-help.pd
new file mode 100644
index 0000000..cd4cfff
--- /dev/null
+++ b/tof/param-help.pd
@@ -0,0 +1,647 @@
+#N canvas 430 490 403 396 10;
+#N canvas 429 334 525 231 /id 0;
+#X text 26 42 Abstraction /id:;
+#X text 63 67 If an abstraction's arguments contains the "/id" keyword
+\, the symbol following the "/id" keyword \, instead of the abstraction's
+name \, will be used to build the path.;
+#X restore 327 340 pd /id;
+#N canvas 1318 214 933 657 /name 0;
+#X floatatom 459 165 5 0 0 0 - - -;
+#X floatatom 459 215 5 0 0 0 - - -;
+#X obj 503 168 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 454 19 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 450 543 nbx: creates a numberbox;
+#X text 450 561 slider min max: creates a slider with the indicated
+minimum and maximum;
+#X text 450 592 bng: creates a bang;
+#X text 450 610 tgl: creates a toggle;
+#X floatatom 452 510 5 0 0 0 - - -;
+#X text 449 526 /g options:;
+#X text 453 43 A param automatically ouputs its value when it is created.
+You can disable this behavior with the "/nlb" (no loadbang) keyword.
+;
+#X text 457 20 /nlb keyword: No loadbang;
+#X obj 453 118 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 455 119 /wfb keyword: Wait for bang;
+#X obj 454 248 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 456 248 /ns keyword: No save;
+#X obj 453 405 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 455 405 /g keyword: GUI options;
+#X obj 455 328 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 457 329 /nps keyword: No preset save;
+#X text 449 268 The param will never be saved.;
+#X text 451 353 The param will never be saved in a preset file.;
+#X text 456 142 The param will only output its contents on a bang.
+;
+#X obj 452 484 tof/param /number 30 /g nbx;
+#X obj 460 192 tof/param /waiting 50 /wfb;
+#X obj 11 285 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 13 286 arguments;
+#X text 10 345 argument 1 symbol: name (must start with a slash);
+#X text 11 362 argument 2 variable: optionnal default value (can be
+anything and of any length);
+#X text 11 393 other arguments: special keywords and options;
+#X text 10 42 A param object creates a storage area for anything. This
+data can be accessed and modified through a unique path.;
+#X obj 12 18 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X obj 13 321 tof/param /name default;
+#X text 12 417 The path to a param starts at the root patch and includes
+the name of each abstraction that was taversed to reach the object.
+The path of the param above is: /name;
+#X text 95 514 <- open me;
+#X obj 536 86 tof/param /not_lb 50 /nlb;
+#X obj 453 293 tof/param /not_saving 50 /ns;
+#X obj 455 377 tof/param /no_presets 67 /nps;
+#X obj 16 548 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 18 549 keywords;
+#X text 19 572 You can use many keywords to configure your params.
+Each keyword starts with a /. You can use as many keywords as you want
+as long at they are not the first argument (that is reserved for the
+name).;
+#X text 452 434 When you create a param \, you can use the "/g" keyword
+to flag the param with gui options that are used by [param gui] to
+automatically build GUIs.;
+#X text 450 628 symbolatom or sym : creates a symbol box;
+#X obj 15 79 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X text 17 80 inlets/outlets;
+#X text 14 104 inlet 1 bang: outputs the value of the param.;
+#X text 14 121 inlet 1 anything: stores the value received and outputs
+it.;
+#X text 13 138 inlet 2 anything: stores the value received.;
+#X text 13 157 outlet 2 anything: the stored value.;
+#X text 11 477 The path to the param "/carrier" in the middle of the
+following abstraction is: /test-param/carrier;
+#X text 14 18 param /name;
+#X obj 16 516 ./test-param;
+#X obj 16 185 cnv 15 300 20 empty empty empty 20 12 0 14 -4032 -66577
+0;
+#X text 18 186 default value;
+#X connect 0 0 24 0;
+#X connect 2 0 24 0;
+#X connect 23 0 8 0;
+#X connect 24 0 1 0;
+#X restore -16 187 pd /name;
+#N canvas 122 440 837 442 custom 0;
+#X obj 17 211 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 19 212 arguments;
+#X obj 18 19 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X text 20 43 Saves and restores any type and quantity of data in a
+param file.;
+#X text 16 235 argument 1 symbol: the name. Must start with a '/'.
+;
+#X obj 18 282 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 20 283 keywords;
+#X text 16 307 There is only one keyword: /nps;
+#X obj 17 335 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 19 336 /nps keyword: No preset save;
+#X text 13 360 The param will never be saved in a preset file.;
+#X obj 17 384 tof/param custom /yogourt /nps;
+#X obj 18 83 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X text 23 83 inlets/outlets;
+#X text 18 109 inlet 1 anything: data to be saved (can be multiple
+messages).;
+#X obj 495 212 list prepend;
+#X text 576 211 Prepend the key to the value;
+#X obj 444 110 t b b;
+#X msg 541 90 clear;
+#X msg 444 139 dump;
+#X text 434 46 In the following example \, [param custom] will save
+and restore the contents of the [cyclone/coll].;
+#X obj 495 185 cyclone/coll;
+#C restore;
+#X text 427 243 When a param save is called \, the [t b b] is banged.
+The message "clear" is stored and "dump" is sent to [cyclone/coll].
+The list builds a "key data" pair out of the dumped data. This pair
+is then also stored.;
+#X text 426 305 When a param load is called \, the stored "clear" message
+is sent to [cyclone/coll] \, clearing its contents. Afterwards. each
+of the stored data pairs is then sent to [cyclone/coll] restoring the
+previous data.;
+#X obj 541 115 param custom /coll;
+#X text 17 160 outlet 2: the data to be restored by a param load.;
+#X text 18 141 outlet 1 bang: bangs when a param save is called.;
+#X text 16 256 other arguments: keywords (see below).;
+#X text 20 19 param custom;
+#X connect 15 0 24 0;
+#X connect 17 0 19 0;
+#X connect 17 1 18 0;
+#X connect 18 0 24 0;
+#X connect 19 0 21 0;
+#X connect 21 0 15 0;
+#X connect 21 1 15 1;
+#X connect 24 0 17 0;
+#X connect 24 1 21 0;
+#X restore -16 208 pd custom;
+#N canvas 222 499 637 424 path 0;
+#X obj 373 67 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 373 115 print;
+#X obj 41 190 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 43 191 arguments;
+#X obj 40 58 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X obj 40 112 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X text 45 112 inlets/outlets;
+#X text 41 82 Outputs the current param path.;
+#X obj 375 180 ./test-param-2;
+#X obj 373 91 tof/param path;
+#X obj 375 152 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 392 64 1) Click here;
+#X text 396 150 2) Click here;
+#X text 40 138 inlet 1 bang: outputs the param path.;
+#X text 40 160 outlet 1 symbol: the param path.;
+#X text 40 214 none.;
+#X text 42 58 param path;
+#X connect 0 0 9 0;
+#X connect 9 0 1 0;
+#X connect 10 0 8 0;
+#X restore -16 229 pd path;
+#N canvas 70 415 866 433 dump 0;
+#X obj 420 258 print;
+#X obj 421 78 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X msg 464 150 guis;
+#X text 444 79 A bang will output all the params and their values.
+;
+#X msg 445 109 symbol /FM_MOD;
+#X text 541 107 A symbol will dump only the params that start with
+that path.;
+#X text 501 147 Guis will output all the optional /g values.;
+#X obj 421 224 tof/param dump;
+#X msg 501 175 guis /FM_MOD;
+#X obj 33 257 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 35 258 arguments;
+#X obj 33 45 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X obj 33 109 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X text 38 109 inlets/outlets;
+#X text 32 281 none.;
+#X text 32 68 Outputs the params and their values or the params and
+their GUI options.;
+#X text 33 135 inlet 1 bang: outputs the all the params and their values.
+;
+#X text 33 152 inlet 1 symbol: outputs the params and their values
+if their names start with this symbol.;
+#X text 33 182 inlet 1 guis: outputs the params and their GUI options
+if their names start with this symbol.;
+#X text 32 216 inlet 1 guis symbol: outputs the params and their GUI
+options if their names start with this symbol.;
+#X text 35 45 param dump;
+#X connect 1 0 7 0;
+#X connect 2 0 7 0;
+#X connect 4 0 7 0;
+#X connect 7 0 0 0;
+#X connect 8 0 7 0;
+#X restore -16 250 pd dump;
+#N canvas 20 346 838 409 file 0;
+#X obj 489 38 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144 -1
+-1 0;
+#X obj 547 151 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144
+-1 -1 0;
+#X obj 464 17 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 521 127 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 489 62 5 0 0 0 - - -;
+#X floatatom 547 173 5 0 0 0 - - -;
+#X obj 464 198 param file;
+#X obj 24 321 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 26 322 arguments;
+#X obj 24 19 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X obj 24 183 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X text 29 183 inlets/outlets;
+#X text 23 345 none.;
+#X text 26 40 Saves/restores params in a param file.;
+#X text 25 98 All params that do not have the "/ns" keyword are saved
+in the "main" param file.;
+#X text 24 133 All params that do not have the "/ns" or "/nps" keywords
+are saved in the "preset" param files.;
+#X text 25 61 There are two types of param file. A "main" param file
+and up to 1000 "preset" param files.;
+#X text 529 60 Save to "preset" file n.;
+#X text 585 172 Restore for "preset" file n.;
+#X text 543 125 Restore from "main" param file.;
+#X text 486 13 Save to "main" param file.;
+#X text 24 209 inlet 1 bang: save to "main" param file.;
+#X text 24 263 inlet 2 bang: restore from "main" param file.;
+#X obj 442 247 cnv 15 300 20 empty empty empty 20 12 0 14 -4032 -66577
+0;
+#X text 444 248 param file names;
+#X text 441 271 All param files are always stored and searched for
+in the same folder as the root patch's folder.;
+#X text 443 305 The "main" param file is named as follows:;
+#X text 622 323 "name of root patch.param";
+#X text 26 280 inlet 2 float: restore from "preset" file n where n
+is a number between 0 and 999;
+#X text 26 228 inlet 1 float: save to "preset" file n where n is a
+number between 0 and 999;
+#X text 581 374 "name of root patch-nnnn.param";
+#X text 444 341 The "preset" param files are named as follows \, where
+nnnn is always four digits:;
+#X text 26 19 param file;
+#X connect 0 0 4 0;
+#X connect 1 0 5 0;
+#X connect 2 0 6 0;
+#X connect 3 0 6 1;
+#X connect 4 0 6 0;
+#X connect 5 0 6 1;
+#X restore -16 271 pd file;
+#N canvas 17 441 981 371 route 0;
+#X obj 33 203 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 35 204 arguments;
+#X obj 33 31 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X obj 33 85 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X text 38 85 inlets/outlets;
+#X text 35 228 none.;
+#X text 38 53 Routes messages to params.;
+#X text 35 31 param route;
+#X text 35 112 inlet 1 anything: the first element of the anything
+determines the target. The rest of the elements of the anything are
+sent the target.;
+#X obj 36 257 cnv 15 300 20 empty empty empty 20 12 0 14 -4032 -66577
+0;
+#X text 38 258 targets;
+#X text 35 160 outlet 1 anything: messages that do not have a valid
+target name or whose target was not found.;
+#X text 34 282 [param route] prepends its own path to the target name.
+This allows the targeting of params with a relative path. Even if the
+paths are relative \, they still need to start with a '/'.;
+#X obj 412 225 ./test-param /id routing;
+#X floatatom 482 292 5 0 0 0 - - -;
+#X floatatom 553 261 5 0 0 0 - - -;
+#X text 566 221 <-There is a [param route] connected to the first inlet
+of this abstraction.;
+#X text 594 259 <-This is connected to a [param /b] inside the abstraction.
+;
+#X text 518 293 <-This is connected to a [param /a] inside the abstraction.
+;
+#X msg 470 187 /b \$1;
+#X msg 418 161 /a \$1;
+#X floatatom 417 137 5 0 0 0 - - -;
+#X floatatom 474 159 5 0 0 0 - - -;
+#X connect 13 1 14 0;
+#X connect 13 2 15 0;
+#X connect 19 0 13 0;
+#X connect 20 0 13 0;
+#X connect 21 0 20 0;
+#X connect 22 0 19 0;
+#X restore -16 292 pd route;
+#N canvas 8 378 991 450 gui 0;
+#X obj 431 21 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 506 75 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 431 110 tof/param gui;
+#X obj 5 219 cnv 15 300 20 empty empty empty 20 12 0 14 -4034 -66577
+0;
+#X text 7 220 arguments;
+#X obj 5 7 cnv 15 300 20 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X obj 5 81 cnv 15 300 20 empty empty empty 20 12 0 14 -260097 -66577
+0;
+#X text 10 81 inlets/outlets;
+#X text 7 244 none.;
+#X obj 8 273 cnv 15 300 20 empty empty empty 20 12 0 14 -4032 -66577
+0;
+#X text 10 274 targets;
+#X text 7 7 param gui;
+#X floatatom 383 238 5 0 0 0 - - -;
+#X obj 375 365 dac~;
+#X obj 423 284 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
+-1 -1 0 1;
+#X msg 383 260 /modulation/index \$1;
+#X msg 420 305 /volume \$1;
+#X obj 529 165 cnv 15 200 20 empty empty /FM_MOD/ 2 12 0 8 -258401
+-262144 0;
+#X obj 529 188 nbx 5 14 -1e+37 1e+37 0 0 /FM_MOD/modulation/freq /FM_MOD/modulation/freq_
+modulation/freq 50 8 0 8 -1 -262144 -1 3 256;
+#X obj 529 206 nbx 5 14 -1e+37 1e+37 0 0 /FM_MOD/modulation/index /FM_MOD/modulation/index_
+modulation/index 50 8 0 8 -1 -262144 -1 20 256;
+#X obj 529 224 hsl 100 15 0 1 0 0 /FM_MOD/volume /FM_MOD/volume_ volume
+105 7 0 8 -1 -262144 -1 0 1;
+#X obj 529 242 hsl 100 15 200 2000 0 0 /FM_MOD/carrier /FM_MOD/carrier_
+carrier 105 7 0 8 -1 -262144 -1 3300 1;
+#X obj 383 330 ./test-param /id FM_MOD /carrier 600;
+#X text 5 107 inlet 1 bang: creates the GUI once and then displays
+the window. All further bangs only display the GUI window without recreating
+its contents.;
+#X text 453 10 Creates the GUI once and then displays the window. All
+further bangs only display the GUI window without recreating its contents.
+;
+#X text 527 72 Creates and displays the window everytime it is banged.
+The content is always up to date \, but this slightly slower.;
+#X text 6 298 [param gui] will build a gui for all the params that
+have GUI options (set with the "/g" keyword) and that are located in
+the same patch or in any of its children.;
+#X text 8 32 Automatically builds a gui for params. The values of the
+GUI elements are always up to date.;
+#X text 1 155 inlet 2 bang: creates and displays the window everytime
+it is banged. This slightly slower \, but it takes into account params
+that were created or destroyed since it was first created.;
+#X text 618 328 <-Click this abstraction's properties menu. The [iemguts/propertybang]
+bangs the [param gui] that creates the GUI window.;
+#X connect 0 0 2 0;
+#X connect 1 0 2 1;
+#X connect 12 0 15 0;
+#X connect 14 0 16 0;
+#X connect 15 0 22 0;
+#X connect 16 0 22 0;
+#X connect 22 0 13 0;
+#X connect 22 0 13 1;
+#X restore -16 313 pd gui;
+#X text 45 183 Defines a parameter to save/restore/route/display.;
+#X text 48 205 Can save/restore any number of things in a param file.
+;
+#X text 48 226 Outputs the current param path.;
+#X text 48 247 Outputs information about the params.;
+#X text 48 268 Saves/restores params in a param file.;
+#X text 47 289 Routes messages to params.;
+#X text 48 310 Automatically builds a gui for params.;
+#X text -17 151 Open the folowing subpatches for more information on
+each class.;
+#X text -17 112 [param] contains multiple classes. The class is selected
+by the value of the first argument.;
+#N canvas 360 337 548 560 anim 0;
+#X obj 172 493 s \$0c;
+#N canvas 393 451 450 300 rgbToNum 0;
+#X obj 241 358 +;
+#X obj 177 430 +;
+#X obj 90 313 * -65536;
+#X obj 196 319 * -256;
+#X obj 310 327 * -1;
+#X obj 177 461 - 1;
+#X obj 184 496 outlet;
+#X obj 85 281 int 0;
+#X obj 196 270 int 0;
+#X obj 343 272 int 0;
+#X obj 166 126 unpack f f f;
+#X obj 66 233 clip 0 255;
+#X obj 228 230 clip 0 255;
+#X obj 329 230 clip 0 255;
+#X obj 165 87 inlet;
+#X connect 0 0 1 1;
+#X connect 1 0 5 0;
+#X connect 2 0 1 0;
+#X connect 3 0 0 0;
+#X connect 4 0 0 1;
+#X connect 5 0 6 0;
+#X connect 7 0 2 0;
+#X connect 8 0 3 0;
+#X connect 9 0 4 0;
+#X connect 10 0 11 0;
+#X connect 10 1 12 0;
+#X connect 10 2 13 0;
+#X connect 11 0 7 0;
+#X connect 12 0 8 0;
+#X connect 13 0 9 0;
+#X connect 14 0 10 0;
+#X restore 171 434 pd rgbToNum;
+#X msg 171 462 color \$1;
+#X obj 137 65 t b b b;
+#X obj 345 14 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#N canvas 0 0 680 639 hsvToRgb 0;
+#X obj 197 94 route 0;
+#X msg 197 66 \$2 \$3 \$1;
+#X obj 241 121 unpack 0 0 0;
+#X text 260 81 svh;
+#X obj 197 38 inlet hsv;
+#X obj 191 676 outlet rgb;
+#X obj 411 159 * 6;
+#X obj 390 206 % 6;
+#X obj 360 183 t f f;
+#X msg 360 159 0;
+#X text 416 206 i;
+#X obj 360 229 -;
+#X obj 241 227 *;
+#X obj 241 188 - 1;
+#X obj 241 208 * -1;
+#X obj 273 340 *;
+#X obj 273 301 - 1;
+#X obj 273 321 * -1;
+#X obj 273 279 *;
+#X obj 360 250 t f f;
+#X obj 390 272 - 1;
+#X obj 390 293 * -1;
+#X obj 312 366 *;
+#X obj 312 327 - 1;
+#X obj 312 347 * -1;
+#X obj 312 305 *;
+#X obj 241 161 t f f f;
+#X obj 248 421 pack 0 0 0 0;
+#N canvas 388 287 646 315 select 0;
+#X obj 290 37 inlet;
+#X obj 16 247 outlet;
+#X obj 92 104 t b l;
+#X obj 125 128 unpack 0 0 0 0;
+#X obj 89 43 inlet p q t v;
+#X obj 92 128 i;
+#X obj 92 151 select 0 1 2 3 4 5;
+#X obj 16 223 pack 0 0 0;
+#X obj 16 203 f;
+#X obj 96 223 pack 0 0 0;
+#X obj 96 203 f;
+#X obj 176 223 pack 0 0 0;
+#X obj 176 203 f;
+#X obj 256 223 pack 0 0 0;
+#X obj 256 203 f;
+#X obj 336 223 pack 0 0 0;
+#X obj 336 203 f;
+#X obj 416 223 pack 0 0 0;
+#X obj 416 203 f;
+#X connect 0 0 5 1;
+#X connect 2 0 5 0;
+#X connect 2 1 3 0;
+#X connect 3 0 7 2;
+#X connect 3 0 9 2;
+#X connect 3 0 12 1;
+#X connect 3 0 14 1;
+#X connect 3 0 15 1;
+#X connect 3 0 17 1;
+#X connect 3 1 10 1;
+#X connect 3 1 13 1;
+#X connect 3 1 17 2;
+#X connect 3 2 7 1;
+#X connect 3 2 11 2;
+#X connect 3 2 16 1;
+#X connect 3 3 8 1;
+#X connect 3 3 9 1;
+#X connect 3 3 11 1;
+#X connect 3 3 13 2;
+#X connect 3 3 15 2;
+#X connect 3 3 18 1;
+#X connect 4 0 2 0;
+#X connect 5 0 6 0;
+#X connect 6 0 8 0;
+#X connect 6 1 10 0;
+#X connect 6 2 12 0;
+#X connect 6 3 14 0;
+#X connect 6 4 16 0;
+#X connect 6 5 18 0;
+#X connect 7 0 1 0;
+#X connect 8 0 7 0;
+#X connect 9 0 1 0;
+#X connect 10 0 9 0;
+#X connect 11 0 1 0;
+#X connect 12 0 11 0;
+#X connect 13 0 1 0;
+#X connect 14 0 13 0;
+#X connect 15 0 1 0;
+#X connect 16 0 15 0;
+#X connect 17 0 1 0;
+#X connect 18 0 17 0;
+#X restore 253 466 pd select;
+#X msg 197 488 \$1 \$1 \$1;
+#X obj 136 447 clip 0 1;
+#X obj 241 141 clip 0 1;
+#X obj 280 183 clip 0 1;
+#X obj 360 119 clip 0 1;
+#X obj 360 139 select 1;
+#X msg 149 367 \$1;
+#X obj 199 383 abs;
+#X obj 238 362 abs;
+#X obj 281 396 abs;
+#X obj 194 546 unpack f f f;
+#X obj 191 577 * 255;
+#X obj 239 576 * 255;
+#X obj 306 577 * 255;
+#X obj 235 630 pack f f f;
+#X obj 196 604 int;
+#X obj 244 603 int;
+#X obj 296 608 int;
+#X connect 0 0 35 0;
+#X connect 0 1 2 0;
+#X connect 1 0 0 0;
+#X connect 2 0 31 0;
+#X connect 2 1 32 0;
+#X connect 2 2 33 0;
+#X connect 4 0 1 0;
+#X connect 6 0 8 0;
+#X connect 7 0 11 1;
+#X connect 7 0 28 1;
+#X connect 8 0 11 0;
+#X connect 8 1 7 0;
+#X connect 9 0 8 0;
+#X connect 11 0 19 0;
+#X connect 12 0 36 0;
+#X connect 13 0 14 0;
+#X connect 14 0 12 0;
+#X connect 15 0 37 0;
+#X connect 16 0 17 0;
+#X connect 17 0 15 0;
+#X connect 18 0 16 0;
+#X connect 19 0 18 1;
+#X connect 19 1 20 0;
+#X connect 20 0 21 0;
+#X connect 21 0 25 1;
+#X connect 22 0 38 0;
+#X connect 23 0 24 0;
+#X connect 24 0 22 0;
+#X connect 25 0 23 0;
+#X connect 26 0 13 0;
+#X connect 26 1 18 0;
+#X connect 26 2 25 0;
+#X connect 27 0 28 0;
+#X connect 28 0 39 0;
+#X connect 29 0 39 0;
+#X connect 30 0 29 0;
+#X connect 31 0 26 0;
+#X connect 32 0 12 1;
+#X connect 32 0 27 3;
+#X connect 32 0 15 1;
+#X connect 32 0 22 1;
+#X connect 33 0 34 0;
+#X connect 34 0 9 0;
+#X connect 34 1 6 0;
+#X connect 35 0 30 0;
+#X connect 36 0 27 0;
+#X connect 37 0 27 1;
+#X connect 38 0 27 2;
+#X connect 39 0 40 0;
+#X connect 39 1 41 0;
+#X connect 39 2 42 0;
+#X connect 40 0 44 0;
+#X connect 41 0 45 0;
+#X connect 42 0 46 0;
+#X connect 43 0 5 0;
+#X connect 44 0 43 0;
+#X connect 45 0 43 1;
+#X connect 46 0 43 2;
+#X restore 172 413 pd hsvToRgb;
+#X obj 35 132 random 1024;
+#X obj 35 170 / 1024;
+#X obj 315 185 / 1024;
+#X obj 314 131 random 512;
+#X obj 313 158 + 512;
+#X obj 147 209 / 1024;
+#X obj 145 182 + 512;
+#X obj 145 154 random 512;
+#X obj 197 46 metro 5000;
+#X obj 177 12 loadbang;
+#X msg 46 226 \$1 5000;
+#X msg 146 235 \$1 5000;
+#X msg 320 254 \$1 5000;
+#X obj 239 361 pack 0.4423 0.87 0.67;
+#X obj 50 258 line 0.44 150;
+#X obj 148 269 line 0.87 150;
+#X obj 320 291 line 0.67 150;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X connect 3 0 6 0;
+#X connect 3 1 13 0;
+#X connect 3 2 9 0;
+#X connect 4 0 14 0;
+#X connect 5 0 1 0;
+#X connect 6 0 7 0;
+#X connect 7 0 16 0;
+#X connect 8 0 18 0;
+#X connect 9 0 10 0;
+#X connect 10 0 8 0;
+#X connect 11 0 17 0;
+#X connect 12 0 11 0;
+#X connect 13 0 12 0;
+#X connect 14 0 3 0;
+#X connect 15 0 14 0;
+#X connect 16 0 20 0;
+#X connect 17 0 21 0;
+#X connect 18 0 22 0;
+#X connect 19 0 5 0;
+#X connect 20 0 19 0;
+#X connect 21 0 19 1;
+#X connect 22 0 19 2;
+#X restore 325 80 pd anim;
+#X obj -23 2 cnv 15 400 100 empty \$0c empty 20 12 0 14 -54577 -262144
+0;
+#X text -18 54 author: mrtoftrash@gmail.com;
+#X text -19 33 tags: state routing;
+#X text -17 1 description: [param] is a state saving and message routing
+system.;
+#X text -19 75 version: 2009-10-27 (de localized release);
+#X text -20 341 Keyword for defining the param path inside abstractions:
+;
diff --git a/tof/path-help.pd b/tof/path-help.pd
new file mode 100644
index 0000000..41eaedc
--- /dev/null
+++ b/tof/path-help.pd
@@ -0,0 +1,94 @@
+#N canvas 0 24 1018 686 10;
+#X obj 47 587 print RESULT;
+#X obj 47 336 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 47 560 path;
+#X obj 32 11 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 37 56 author: mrtoftrash@gmail.com;
+#X text 37 67 version: 2009-06-07 (initial release);
+#X text 72 332 <- a bang will output the root patch's path;
+#X text 191 355 <- Sending a relative path will append that path to
+the root patch's path;
+#X text 106 429 Linux and OS X;
+#X text 113 469 Windows;
+#X obj 544 44 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X text 569 42 <- a bang will output the root patch's path;
+#X obj 570 112 openpanel;
+#X obj 570 92 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X symbolatom 570 134 50 0 0 0 - - -;
+#X symbolatom 544 233 50 0 0 0 - - -;
+#X text 575 60 Anything else will be treated as a path;
+#X obj 544 202 path relative;
+#X text 699 158 <- Relative paths are unchanged;
+#X text 104 416 Absolute paths are unchanged;
+#X obj 545 282 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 545 395 print CURRENT;
+#X obj 545 368 path current;
+#X text 575 282 <- a bang will output the current patch's path;
+#X text 38 11 description: outputs or transform paths.;
+#X text 37 45 tags: file tof;
+#X text 176 162 -- keywords --;
+#X text 710 260 -- current --;
+#X text 675 314 <- Sending a relative path will append that path to
+the current patch's path;
+#X text 685 9 -- relative --;
+#X obj 545 455 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
+-1;
+#X obj 571 523 openpanel;
+#X obj 571 503 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X symbolatom 571 545 50 0 0 0 - - -;
+#X symbolatom 545 634 50 0 0 0 - - -;
+#X text 576 471 Anything else will be treated as a path;
+#X text 698 567 <- Relative paths are unchanged;
+#X text 680 427 -- relative & current --;
+#X obj 545 603 path relative current;
+#X text 570 453 <- a bang will output the current patch's path;
+#X text 591 82 Absolute paths will be made relative to the root patch's
+path;
+#X text 596 494 Absolute paths will be made relative to the current
+patch's path;
+#X msg 593 158 symbol samples/;
+#X msg 573 315 symbol samples/;
+#X msg 594 569 symbol samples/;
+#X msg 88 355 symbol samples/;
+#X msg 107 450 symbol /unchanged/because/of/the/slash/at/the/start
+;
+#X msg 106 489 symbol C:/unchanged/because/of/the/:/as/second/char
+;
+#X msg 106 511 symbol C:/Documents and Settings/tom/My Documents/pd/parent.test.pd
+;
+#X text 148 309 -- default behavior (absolute root) --;
+#X text 27 191 current: use the current patch's path.;
+#X text 26 207 root: use the root patch's path.;
+#X text 24 242 relative: transform absolute paths into relative paths
+;
+#X text 24 255 absolute: transform relative paths into absolute paths
+;
+#X text 29 113 [path] can convert relative paths to absolute paths
+or the other way around.;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X connect 10 0 17 0;
+#X connect 12 0 14 0;
+#X connect 13 0 12 0;
+#X connect 14 0 17 0;
+#X connect 17 0 15 0;
+#X connect 20 0 22 0;
+#X connect 22 0 21 0;
+#X connect 30 0 38 0;
+#X connect 31 0 33 0;
+#X connect 32 0 31 0;
+#X connect 33 0 38 0;
+#X connect 38 0 34 0;
+#X connect 42 0 17 0;
+#X connect 43 0 22 0;
+#X connect 44 0 38 0;
+#X connect 45 0 2 0;
+#X connect 46 0 2 0;
+#X connect 47 0 2 0;
+#X connect 48 0 2 0;
diff --git a/tof/phasorshot~-help.pd b/tof/phasorshot~-help.pd
new file mode 100644
index 0000000..4388aea
--- /dev/null
+++ b/tof/phasorshot~-help.pd
@@ -0,0 +1,70 @@
+#N canvas 396 14 618 599 10;
+#X text 313 159 Arguments:;
+#X obj 63 513 snapshot~;
+#X obj 92 488 metro 100;
+#X obj 92 464 loadbang;
+#X obj 59 551 nbx 10 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
+-1 -262144 -1 0 256;
+#X obj 381 507 soundfiler;
+#X msg 381 469 read -resize \$1 \$2;
+#X obj 381 438 list append \$0table;
+#X obj 381 405 openpanel;
+#X obj 381 381 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 381 533 10 0 0 0 - - -;
+#X obj 244 471 table \$0table;
+#X obj 177 297 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X msg 58 154 0.1;
+#X msg 89 156 -0.1;
+#X msg 128 156 -0.5;
+#X msg 134 250 0.9;
+#X msg 166 247 0;
+#X msg 25 154 1;
+#X obj 148 363 print UPPER;
+#X obj 143 401 print LOWER;
+#X obj 222 496 *~;
+#X obj 220 561 dac~;
+#X obj 221 525 tabread4~ \$0table;
+#X msg 169 156 0.5;
+#X msg 201 249 0.5;
+#X text 60 11 Description: A one shot phasor~.;
+#X text 48 33 phasorshot~ is exactly like a phasor except that you
+can disabling it's looping \, therefore making it a one shot lookup
+signal.;
+#X text 55 80 Of course line~ does something similar \, but with phasorshot~
+you can change the speed DURING the ramp.;
+#X text 33 121 Inlet 1: frequency;
+#X text 159 227 Inlet 2: phasee;
+#X text 212 297 Inlet 3: loop off/on;
+#X text 310 181 1) loop off/on;
+#X msg 183 181 0;
+#X text 174 329 Outlets 2 and 3 bang when the upper (1) or lower (0)
+bound is reached.;
+#X obj 61 338 tof/phasorshot~;
+#X connect 1 0 4 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 5 0 10 0;
+#X connect 5 0 21 1;
+#X connect 6 0 5 0;
+#X connect 7 0 6 0;
+#X connect 8 0 7 0;
+#X connect 9 0 8 0;
+#X connect 12 0 35 2;
+#X connect 13 0 35 0;
+#X connect 14 0 35 0;
+#X connect 15 0 35 0;
+#X connect 16 0 35 1;
+#X connect 17 0 35 1;
+#X connect 18 0 35 0;
+#X connect 21 0 23 0;
+#X connect 23 0 22 0;
+#X connect 23 0 22 1;
+#X connect 24 0 35 0;
+#X connect 25 0 35 1;
+#X connect 33 0 35 0;
+#X connect 35 0 1 0;
+#X connect 35 0 21 0;
+#X connect 35 1 20 0;
+#X connect 35 2 19 0;
diff --git a/tof/pix_film+-help.pd b/tof/pix_film+-help.pd
new file mode 100644
index 0000000..d12c313
--- /dev/null
+++ b/tof/pix_film+-help.pd
@@ -0,0 +1,38 @@
+#N canvas 1447 124 536 537 10;
+#X obj 113 119 openpanel;
+#X obj 112 96 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 333 47 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 54 342 pix_texture;
+#X obj 135 176 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
+1;
+#X floatatom 132 304 5 0 0 0 - - -;
+#X msg 113 144 open \$1;
+#X floatatom 162 210 5 0 0 0 - - -;
+#X obj 333 82 tof/gemwin+;
+#X obj 54 236 tof/pix_film+;
+#X text 200 212 inlet 3 \, float: speed;
+#X text 159 174 inlet 2 \, 0/1: stop/play;
+#X text 167 143 inlet 2 \, open (file): opens the movie file;
+#X obj 54 54 gemhead;
+#X obj 54 382 rectangle 5.333 4;
+#X floatatom 184 264 5 0 0 0 - - -;
+#X text 220 265 outlet 3 \, float: total number of frames;
+#X text 172 300 outlet 2 \, float: current frame;
+#X text 37 -18 Description: A more user friendly movie file player
+for Gem.;
+#X text 37 1 Tags: Gem File;
+#X text 171 380 outlet 1 \, gemlist;
+#X text 107 52 inlet 1 \, gemlist;
+#X connect 0 0 6 0;
+#X connect 1 0 0 0;
+#X connect 2 0 8 0;
+#X connect 3 0 14 0;
+#X connect 4 0 9 1;
+#X connect 6 0 9 1;
+#X connect 7 0 9 2;
+#X connect 9 0 3 0;
+#X connect 9 1 5 0;
+#X connect 9 2 15 0;
+#X connect 13 0 9 0;
diff --git a/tof/pix_film+.pd b/tof/pix_film+.pd
new file mode 100644
index 0000000..0cf416e
--- /dev/null
+++ b/tof/pix_film+.pd
@@ -0,0 +1,101 @@
+#N canvas 1026 52 1022 684 10;
+#X obj 98 32 inlet;
+#X obj 99 574 outlet;
+#X obj 106 119 t a b;
+#X obj 244 -28 inlet;
+#X obj 278 580 outlet frame;
+#X msg 175 121 open \$1;
+#X obj 454 578 outlet length;
+#X obj 417 25 inlet speed;
+#X obj 616 91 loadbang;
+#X obj 617 130 tof/argument 1;
+#X msg 217 141 set -1;
+#X obj 141 253 change -1;
+#X obj 166 69 t a b;
+#X obj 620 202 t b f;
+#X obj 422 99 f 1;
+#X obj 616 282 *;
+#X msg 420 54 1 \$1;
+#X obj 423 79 /;
+#X obj 504 418 / 33.36;
+#X obj 230 10 zexy/relay open;
+#X obj 161 386 t f f;
+#N canvas 0 0 786 535 length&ms/frame 0;
+#X obj 143 139 unpack f f f f;
+#X obj 149 109 t a b;
+#X msg 254 136 29.97;
+#X obj 233 193 f;
+#X obj 368 243 expr 1000/$f1;
+#X obj 305 186 sel -1;
+#X msg 287 214 29.97;
+#X obj 151 58 inlet;
+#X obj 155 167 t f b;
+#X obj 195 363 outlet length;
+#X obj 367 364 outlet ms/frame;
+#X connect 0 0 8 0;
+#X connect 0 3 3 1;
+#X connect 1 0 0 0;
+#X connect 1 1 2 0;
+#X connect 2 0 3 1;
+#X connect 3 0 5 0;
+#X connect 4 0 10 0;
+#X connect 5 0 6 0;
+#X connect 5 1 4 0;
+#X connect 6 0 4 0;
+#X connect 7 0 1 0;
+#X connect 8 0 9 0;
+#X connect 8 1 3 0;
+#X restore 161 330 pd length&ms/frame;
+#X obj 505 345 realtime;
+#X obj 505 294 t b b;
+#X obj 448 456 + 0;
+#X obj 449 484 maxlib/wrap 0 100;
+#X obj 332 66 t f b b;
+#X msg 376 188 0;
+#X obj 224 202 spigot;
+#X obj 94 281 pix_film;
+#X obj 454 530 int;
+#X obj 451 508 t f f;
+#X obj 457 552 t f f;
+#X connect 0 0 2 0;
+#X connect 2 0 29 0;
+#X connect 2 1 28 0;
+#X connect 3 0 19 0;
+#X connect 5 0 29 0;
+#X connect 7 0 16 0;
+#X connect 8 0 9 0;
+#X connect 9 0 5 0;
+#X connect 10 0 11 0;
+#X connect 11 0 29 1;
+#X connect 12 0 5 0;
+#X connect 12 1 10 0;
+#X connect 13 0 14 0;
+#X connect 13 1 15 1;
+#X connect 14 0 15 0;
+#X connect 15 0 18 1;
+#X connect 16 0 17 0;
+#X connect 17 0 14 0;
+#X connect 18 0 24 0;
+#X connect 19 0 12 0;
+#X connect 19 1 26 0;
+#X connect 20 0 6 0;
+#X connect 20 1 25 2;
+#X connect 21 0 20 0;
+#X connect 21 1 13 0;
+#X connect 22 0 18 0;
+#X connect 23 0 22 0;
+#X connect 23 1 22 1;
+#X connect 24 0 25 0;
+#X connect 25 0 31 0;
+#X connect 26 0 28 1;
+#X connect 26 1 22 0;
+#X connect 26 2 27 0;
+#X connect 27 0 24 1;
+#X connect 28 0 23 0;
+#X connect 29 0 1 0;
+#X connect 29 1 21 0;
+#X connect 30 0 32 0;
+#X connect 31 0 30 0;
+#X connect 31 1 24 1;
+#X connect 32 0 4 0;
+#X connect 32 1 11 0;
diff --git a/tof/pmenu-help.pd b/tof/pmenu-help.pd
new file mode 100644
index 0000000..2c28f38
--- /dev/null
+++ b/tof/pmenu-help.pd
@@ -0,0 +1,66 @@
+#N canvas 1074 57 756 631 10;
+#X obj 221 187 key;
+#X msg 126 222 clear;
+#X obj 221 213 sel 65;
+#X text 267 213 <- Shift+A will open the menu;
+#X msg 47 63 add a bb ccc dddd eeeee;
+#X obj 45 498 print;
+#X msg 230 320 2;
+#X msg 261 321 3;
+#X text 201 62 add items;
+#X obj 265 417 r \$0pmenu;
+#X obj 332 422 bng 15 250 50 0 \$0pmenu empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 291 320 -1;
+#X msg 224 287 colors green purple grey;
+#X obj 45 459 tof/pmenu 1 1 black white red;
+#X text 298 536 3: background color (#000000 html or tk colors);
+#X text 296 551 4: foreground color (#000000 hmtl or tk colors);
+#X text 298 566 5: highlight color (#000000 html or tk colors);
+#X text 222 257 values can be tk colors(red \, blue \, etc) or html
+colors (#ffffff);
+#X text 221 241 colors: background foreground highlight;
+#X text 297 507 2: focus the item that was last selected when the menu
+pops. On (1) by default.;
+#X text 296 476 1: display the indicator (the little bullet next to
+item that was last selected). On (1) by default.;
+#X obj 37 18 cnv 15 400 30 empty empty empty 20 12 0 14 -261234 -66577
+0;
+#X obj 300 458 cnv 15 400 15 empty empty empty 20 12 0 14 -257985 -66577
+0;
+#X text 303 456 Creation arguments:;
+#X msg 87 153 add \$1;
+#X obj 87 130 cyclone/tosymbol;
+#X msg 87 107 with spaces;
+#X text 84 87 Adding items with spaces;
+#X obj 113 180 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 132 176 Pop the menu;
+#X text 249 179 You can assign any key to pop the menu (Shift+A) in
+this case.;
+#X text 322 319 Select and output a menu item by index;
+#X msg 276 349 set a;
+#X msg 290 371 symbol a;
+#X text 346 370 Select an item by name and output it;
+#X text 320 349 Select an item by name without outputing it;
+#X text 85 501 Output: index name;
+#X text 354 420 <- you can pop the menu from any gui by sending a bang
+to \$0pmenu (because a receive is associated to it);
+#X text 38 18 Description: pops a menu;
+#X text 40 31 Tags: ui;
+#X connect 0 0 2 0;
+#X connect 1 0 13 0;
+#X connect 2 0 13 0;
+#X connect 4 0 13 0;
+#X connect 6 0 13 0;
+#X connect 7 0 13 0;
+#X connect 9 0 13 0;
+#X connect 11 0 13 0;
+#X connect 12 0 13 0;
+#X connect 13 0 5 0;
+#X connect 24 0 13 0;
+#X connect 25 0 24 0;
+#X connect 26 0 25 0;
+#X connect 28 0 13 0;
+#X connect 32 0 13 0;
+#X connect 33 0 13 0;
diff --git a/tof/streamMinMax-help.pd b/tof/streamMinMax-help.pd
new file mode 100644
index 0000000..dde1a33
--- /dev/null
+++ b/tof/streamMinMax-help.pd
@@ -0,0 +1,28 @@
+#N canvas 425 210 412 446 10;
+#X floatatom 82 146 5 0 0 0 - - -;
+#X obj 199 195 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 118 297 5 0 0 0 minimum - -;
+#X floatatom 188 322 5 0 0 0 maximum - -;
+#X text 216 193 reset;
+#X text 61 124 number stream;
+#X obj 2 -43 cnv 15 400 100 empty empty empty 20 12 0 14 -249661 -66577
+0;
+#X text 7 1 author: mrtoftrash@gmail.com;
+#X text 7 -44 description: outputs the minimum and maximum float of
+a stream of numbers.;
+#X text 7 -10 tags: stream;
+#X text 7 12 version: 2009-05-07 (initial release);
+#X text 210 145 set minimum and maximum;
+#X text 4 74 Argument 2: maximum value at start (defaults to none)
+;
+#X text 4 59 Argument 1: minimum value at start (defaults to none)
+;
+#X msg 168 144 43 90;
+#X obj 9 95 tof/streamMinMax 45 100;
+#X obj 118 267 tof/streamMinMax;
+#X connect 0 0 16 0;
+#X connect 1 0 16 0;
+#X connect 14 0 16 0;
+#X connect 16 0 2 0;
+#X connect 16 1 3 0;
diff --git a/tof/test-argument.pd b/tof/test-argument.pd
new file mode 100644
index 0000000..d227c72
--- /dev/null
+++ b/tof/test-argument.pd
@@ -0,0 +1,30 @@
+#N canvas 336 203 651 389 10;
+#X obj 158 36 inlet;
+#X obj 158 92 t b b b;
+#X text 220 105 first;
+#X text 159 192 second;
+#X text 73 282 third;
+#X obj 158 67 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 210 166 print arg1;
+#X obj 134 246 print arg2;
+#X obj 11 330 print arg3;
+#X obj 210 130 tof/argument 1;
+#X obj 134 213 tof/argument 2 100;
+#X obj 11 303 tof/argument 3 500;
+#X text 204 24 This patch is part of [tof/argument]'s help file.;
+#X text 207 42 Its creation arguments are: a b;
+#X text 305 127 <-Outputs the first patch creation argument: "a";
+#X text 131 300 <- Outputs 500 because there is not third patch argument.
+;
+#X text 257 206 <-Outputs "100" because the type of the default value
+\, a float 100 \, does not match the type of the patch's second argument
+\, a symbol "b".;
+#X connect 0 0 5 0;
+#X connect 1 0 11 0;
+#X connect 1 1 10 0;
+#X connect 1 2 9 0;
+#X connect 5 0 1 0;
+#X connect 9 0 6 0;
+#X connect 10 0 7 0;
+#X connect 11 0 8 0;
diff --git a/tof/test-arguments-all.pd b/tof/test-arguments-all.pd
new file mode 100644
index 0000000..6f4c874
--- /dev/null
+++ b/tof/test-arguments-all.pd
@@ -0,0 +1,9 @@
+#N canvas 402 618 450 300 10;
+#X obj 141 46 inlet;
+#X obj 141 163 print;
+#X obj 143 110 tof/arguments;
+#X obj 143 76 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X connect 0 0 3 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
diff --git a/tof/test-arguments-comma.pd b/tof/test-arguments-comma.pd
new file mode 100644
index 0000000..71afc78
--- /dev/null
+++ b/tof/test-arguments-comma.pd
@@ -0,0 +1,23 @@
+#N canvas 402 618 450 300 10;
+#X obj 140 54 inlet;
+#X obj 143 110 tof/arguments comma;
+#X obj 140 83 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X symbolatom 41 232 10 0 0 0 - - -;
+#X obj 260 257 print;
+#X obj 41 210 symbol;
+#X obj 33 165 route go list;
+#X obj 118 199 unpack f f f;
+#X floatatom 118 231 5 0 0 0 - - -;
+#X floatatom 159 231 5 0 0 0 - - -;
+#X floatatom 203 232 5 0 0 0 - - -;
+#X connect 0 0 2 0;
+#X connect 1 0 4 0;
+#X connect 1 0 6 0;
+#X connect 2 0 1 0;
+#X connect 5 0 3 0;
+#X connect 6 0 5 0;
+#X connect 6 1 7 0;
+#X connect 7 0 8 0;
+#X connect 7 1 9 0;
+#X connect 7 2 10 0;
diff --git a/tof/test-arguments-token.pd b/tof/test-arguments-token.pd
new file mode 100644
index 0000000..89795b1
--- /dev/null
+++ b/tof/test-arguments-token.pd
@@ -0,0 +1,15 @@
+#N canvas 402 618 450 300 10;
+#X obj 141 46 inlet;
+#X obj 144 108 tof/arguments @;
+#X obj 144 157 route @a @c;
+#X floatatom 139 194 5 0 0 0 - - -;
+#X floatatom 186 193 5 0 0 0 - - -;
+#X obj 142 72 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 268 175 print;
+#X connect 0 0 5 0;
+#X connect 1 0 2 0;
+#X connect 1 0 6 0;
+#X connect 2 0 3 0;
+#X connect 2 1 4 0;
+#X connect 5 0 1 0;
diff --git a/tof/test-param-2.pd b/tof/test-param-2.pd
new file mode 100644
index 0000000..b39b6f1
--- /dev/null
+++ b/tof/test-param-2.pd
@@ -0,0 +1,29 @@
+#N canvas 290 157 711 410 10;
+#X text 84 2 This abstraction is an example for the param external.
+;
+#X obj 175 232 *~;
+#X floatatom 175 147 0 0 0 0 - - -;
+#X floatatom 237 200 0 0 0 0 - - -;
+#X text 64 127 frequency;
+#X text 63 114 modulation;
+#X text 278 216 index;
+#X text 280 197 modulation;
+#X obj 175 172 osc~;
+#X obj 163 341 outlet~;
+#X obj 172 99 loadbang;
+#X obj 238 148 loadbang;
+#X obj 174 122 tof/param /freq 3 /g nbx;
+#X obj 237 172 tof/param /index 20 /g nbx;
+#X obj 477 36 inlet;
+#X obj 478 71 tof/param path;
+#X obj 480 98 print path;
+#X connect 1 0 9 0;
+#X connect 2 0 8 0;
+#X connect 3 0 1 1;
+#X connect 8 0 1 0;
+#X connect 10 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 2 0;
+#X connect 13 0 3 0;
+#X connect 14 0 15 0;
+#X connect 15 0 16 0;
diff --git a/tof/test-param.pd b/tof/test-param.pd
new file mode 100644
index 0000000..5b88251
--- /dev/null
+++ b/tof/test-param.pd
@@ -0,0 +1,42 @@
+#N canvas 9 299 932 527 10;
+#X obj 285 477 outlet~;
+#X obj 35 117 inlet;
+#X text 575 26 This abstraction is an example for the param external.
+;
+#X floatatom 283 247 0 0 0 0 - - -;
+#X obj 283 317 +~;
+#X text 213 168 carrier;
+#X text 212 186 frequency;
+#X obj 284 359 osc~;
+#X obj 36 193 print PARAM_NOTFOUND;
+#X obj 283 171 loadbang;
+#X obj 285 428 *~;
+#X obj 375 400 line~;
+#X msg 376 376 \$1 100;
+#X obj 377 325 loadbang;
+#X obj 377 349 tof/param /volume 0 /g slider 0 1;
+#X obj 660 195 iemguts/propertybang;
+#X obj 660 223 tof/param gui;
+#X obj 35 162 tof/param route;
+#X obj 283 202 tof/param /carrier 800 /g slider 200 2000;
+#X obj 383 299 test-param-2 /id modulation;
+#X obj 469 442 tof/param /a;
+#X obj 470 471 outlet;
+#X obj 642 476 outlet;
+#X obj 640 448 tof/param /b;
+#X connect 1 0 17 0;
+#X connect 3 0 4 0;
+#X connect 4 0 7 0;
+#X connect 7 0 10 0;
+#X connect 9 0 18 0;
+#X connect 10 0 0 0;
+#X connect 11 0 10 1;
+#X connect 12 0 11 0;
+#X connect 13 0 14 0;
+#X connect 14 0 12 0;
+#X connect 15 0 16 0;
+#X connect 17 0 8 0;
+#X connect 18 0 3 0;
+#X connect 19 0 4 1;
+#X connect 20 0 21 0;
+#X connect 23 0 22 0;
diff --git a/tof/to_ascii_code-help.pd b/tof/to_ascii_code-help.pd
new file mode 100644
index 0000000..4d49897
--- /dev/null
+++ b/tof/to_ascii_code-help.pd
@@ -0,0 +1,14 @@
+#N canvas 1427 407 571 202 10;
+#X msg 49 60 test;
+#X msg 182 61 1234;
+#X obj 49 112 tof/to_ascii_code 13;
+#X msg 92 60 list abcdef;
+#X obj 49 153 print codes;
+#X text 54 19 Tags: conversion text symbols;
+#X text 55 3 Description: Convert PD messages into ASCII codes;
+#X text 188 111 Optionnal argument: append ASCII code (in this case
+13 \, a carriage return);
+#X connect 0 0 2 0;
+#X connect 1 0 2 0;
+#X connect 2 0 4 0;
+#X connect 3 0 2 0;