aboutsummaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorLuke Iannini <lukeiannini@users.sourceforge.net>2008-02-08 09:51:34 +0000
committerLuke Iannini <lukeiannini@users.sourceforge.net>2008-02-08 09:51:34 +0000
commit6f03ce6f2bee8102babead9adc06b3551acac85c (patch)
treedd46d2e055eda6b10a3753c9cf63425a1f285f77 /core
initial import from my personal svnsvn2git-root
svn path=/trunk/abstractions/senderfruit/; revision=9380
Diffstat (limited to 'core')
-rw-r--r--core/SOSCroute-help.pd30
-rw-r--r--core/SOSCroute.pd57
-rw-r--r--core/audiotis.pd40
-rw-r--r--core/clearconsole.pd17
-rw-r--r--core/color.hsl2rgb.pd159
-rw-r--r--core/color.random-dark-light18.pd46
-rw-r--r--core/color.random-dark-light24.pd46
-rw-r--r--core/color.rgb2pd18.pd18
-rw-r--r--core/color.rgb2pd24.pd27
-rw-r--r--core/cursormon.pd18
-rw-r--r--core/deeprouteOSC.pd92
-rw-r--r--core/eqpowmix~.pd56
-rw-r--r--core/hotpack.pd173
-rw-r--r--core/keynamedown.pd16
-rw-r--r--core/list-remove-help.pd21
-rw-r--r--core/list-remove.pd30
-rw-r--r--core/list-swap-help.pd21
-rw-r--r--core/list-swap.pd24
-rw-r--r--core/menubar.pd42
-rw-r--r--core/pcount.pd26
-rw-r--r--core/round.pd19
-rw-r--r--core/s2l-explode.pd10
-rw-r--r--core/sft.rgb.pd156
-rw-r--r--core/sft.rtkeep.pd13
-rw-r--r--core/sft.seqnames.pd31
-rw-r--r--core/sft.sig.pd12
-rw-r--r--core/trimdirs.pd63
-rw-r--r--core/troute-help.pd47
-rw-r--r--core/troute.pd248
-rw-r--r--core/untilb-help.pd13
-rw-r--r--core/untilb.pd27
31 files changed, 1598 insertions, 0 deletions
diff --git a/core/SOSCroute-help.pd b/core/SOSCroute-help.pd
new file mode 100644
index 0000000..d51a417
--- /dev/null
+++ b/core/SOSCroute-help.pd
@@ -0,0 +1,30 @@
+#N canvas 707 400 454 373 10;
+#X msg 262 44 /otherthang;
+#X msg 23 18 /mythang 100;
+#X msg 58 39 /otherthang ohyeah;
+#X floatatom 93 186 5 0 0 0 - - -;
+#X symbolatom 136 186 10 0 0 0 - - -;
+#X obj 103 145 list;
+#X obj 224 144 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 71 145 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X text 290 317 SOSCroute 0.1;
+#X text 290 333 2007 Luke Iannini;
+#X obj 103 101 SOSCroute /mythang;
+#X text 8 215 SOSCroute is the same as OSCroute \, but with one addition:
+it has a right-inlet for changing the route.;
+#X obj 302 101 OSCroute /onlythang;
+#X text 9 262 For 0.1 \, that addition comes with the subtraction of
+using multiple arguments for multiple routes (that's harder : ) ).
+;
+#X msg 245 24 /mythang;
+#X connect 0 0 10 1;
+#X connect 1 0 10 0;
+#X connect 2 0 10 0;
+#X connect 5 0 4 0;
+#X connect 5 0 3 0;
+#X connect 10 0 5 0;
+#X connect 10 0 7 0;
+#X connect 10 1 6 0;
+#X connect 14 0 10 1;
diff --git a/core/SOSCroute.pd b/core/SOSCroute.pd
new file mode 100644
index 0000000..e9279eb
--- /dev/null
+++ b/core/SOSCroute.pd
@@ -0,0 +1,57 @@
+#N canvas 192 314 908 508 10;
+#X obj 301 159 \$0;
+#X obj 267 261 \$0;
+#X obj 43 33 inlet;
+#X obj 43 67 s \$0-inlet;
+#X obj 363 424 s pd-\$0OSCroute;
+#N canvas 279 88 285 163 \$0OSCroute 1;
+#X restore 45 240 pd \$0OSCroute;
+#X obj 37 442 outlet;
+#X msg 284 234 obj 20 50 OSCroute \$1;
+#X msg 301 186 obj 20 20 r \$1-inlet;
+#X msg 319 134 clear;
+#X obj 233 45 list append \$1;
+#X obj 391 35 inlet;
+#X obj 391 61 list;
+#X obj 233 77 t b b b a b b;
+#X msg 267 287 obj 20 80 s \$1-outlet1;
+#X obj 37 414 r \$0-outlet1;
+#X obj 192 414 r \$0-outlet2;
+#X obj 192 443 outlet;
+#X msg 233 376 connect 0 0 1 0 \, connect 1 0 2 0 \, connect 1 1 3
+0;
+#X obj 250 321 \$0;
+#X msg 250 347 obj 160 100 s \$1-outlet2;
+#X obj 487 35 loadbang;
+#X obj 487 59 list append \$2;
+#X obj 487 81 sel 0;
+#X obj 485 144 print SOSCroute;
+#X msg 485 111 Sorry - SOSCroute currently only supports one argument!
+;
+#X obj 233 12 initbang;
+#X connect 0 0 8 0;
+#X connect 1 0 14 0;
+#X connect 2 0 3 0;
+#X connect 7 0 4 0;
+#X connect 8 0 4 0;
+#X connect 9 0 4 0;
+#X connect 10 0 13 0;
+#X connect 11 0 12 0;
+#X connect 12 0 13 0;
+#X connect 13 0 18 0;
+#X connect 13 1 19 0;
+#X connect 13 2 1 0;
+#X connect 13 3 7 0;
+#X connect 13 4 0 0;
+#X connect 13 5 9 0;
+#X connect 14 0 4 0;
+#X connect 15 0 6 0;
+#X connect 16 0 17 0;
+#X connect 18 0 4 0;
+#X connect 19 0 20 0;
+#X connect 20 0 4 0;
+#X connect 21 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 1 25 0;
+#X connect 25 0 24 0;
+#X connect 26 0 10 0;
diff --git a/core/audiotis.pd b/core/audiotis.pd
new file mode 100644
index 0000000..bf08310
--- /dev/null
+++ b/core/audiotis.pd
@@ -0,0 +1,40 @@
+#N canvas 615 28 193 280 10;
+#X obj 25 88 snapshot~;
+#X obj 13 18 loadbang;
+#X obj 112 112 hradio 15 1 0 2 \$0nullS \$0nullR empty 0 -8 0 10 -262144
+-4160 -1 0;
+#X obj 25 202 sel 1;
+#X obj 25 237 f;
+#X obj 55 238 + 1;
+#X obj 103 139 hradio 8 1 0 6 \$0nullS \$0nullR empty 0 -8 0 10 -261234
+-1 -1 0;
+#X obj 88 239 mod 6;
+#X obj 123 128 bng 9 250 50 0 \$0nulls \$0nullr empty 17 7 0 10 -260097
+-1 -1;
+#X obj 80 9 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 25 62 noise~;
+#X obj 25 110 change;
+#X obj 13 40 metro 250;
+#X obj 25 132 t b;
+#X obj 25 172 f;
+#X obj 51 172 + 1;
+#X obj 77 172 mod 2;
+#X connect 0 0 11 0;
+#X connect 1 0 12 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 7 0;
+#X connect 7 0 4 1;
+#X connect 9 0 12 0;
+#X connect 10 0 0 0;
+#X connect 11 0 13 0;
+#X connect 12 0 0 0;
+#X connect 13 0 14 0;
+#X connect 14 0 3 0;
+#X connect 14 0 15 0;
+#X connect 14 0 2 0;
+#X connect 15 0 16 0;
+#X connect 16 0 14 1;
+#X coords 0 -1 1 1 54 60 2 100 100;
diff --git a/core/clearconsole.pd b/core/clearconsole.pd
new file mode 100644
index 0000000..90b4184
--- /dev/null
+++ b/core/clearconsole.pd
@@ -0,0 +1,17 @@
+#N canvas 765 341 576 286 10;
+#X obj 150 100 cnv 19 19 19 empty empty empty 20 12 0 14 -115257 -66577
+0;
+#X obj 66 168 print;
+#X msg 66 81 30;
+#X obj 66 110 until;
+#X obj 66 44 loadbang;
+#X obj 152 102 bng 15 250 50 0 \$0 \$0r empty 0 -6 0 8 -259744 -154956
+-1;
+#X msg 66 139 ....................((&&&&&&&&&&&&&))......................
+;
+#X connect 2 0 3 0;
+#X connect 3 0 6 0;
+#X connect 4 0 2 0;
+#X connect 5 0 2 0;
+#X connect 6 0 1 0;
+#X coords 0 -1 1 1 19 19 2 150 100;
diff --git a/core/color.hsl2rgb.pd b/core/color.hsl2rgb.pd
new file mode 100644
index 0000000..a29d2f8
--- /dev/null
+++ b/core/color.hsl2rgb.pd
@@ -0,0 +1,159 @@
+#N canvas 662 22 695 753 10;
+#X obj 121 143 moses 0.5;
+#X obj 190 79 v \$0h;
+#X obj 224 79 v \$0s;
+#X obj 259 79 v \$0l;
+#X obj 190 40 unpack f f f;
+#X obj 121 110 v \$0l;
+#X obj 181 293 v \$0q;
+#X obj 121 229 *;
+#X obj 148 212 + 1;
+#X obj 148 188 v \$0s;
+#X obj 121 166 t f b;
+#X obj 251 214 *;
+#X obj 256 184 v \$0s;
+#X obj 216 251 -;
+#X obj 216 215 +;
+#X obj 217 160 t f f b;
+#X obj 51 119 v \$0l;
+#X obj 51 144 * 2;
+#X obj 51 168 t f b;
+#X obj 66 194 v \$0q;
+#X obj 51 221 -;
+#X obj 51 244 v \$0p;
+#X obj 34 17 inlet;
+#X obj 34 274 v \$0h;
+#X obj 34 332 + 0.33333;
+#X obj 34 305 t f f f;
+#X obj 73 361 - 0.33333;
+#X obj 34 76 t b b b a;
+#X obj 34 395 pack f f f;
+#X obj 34 424 list-map;
+#X obj 34 505 list-map;
+#X obj 315 482 moses 0.5;
+#X obj 315 515 t b;
+#X obj 315 546 v \$0q;
+#X obj 167 657 +;
+#X obj 182 635 v \$0p;
+#X obj 167 606 t f b;
+#X obj 222 562 v \$0q;
+#X obj 261 562 v \$0p;
+#X obj 167 505 * 6;
+#X obj 167 529 t f b b;
+#X obj 167 482 moses 0.166667;
+#X obj 222 589 -;
+#X obj 167 572 *;
+#X obj 167 683 s \$0colorCalced;
+#X obj 315 571 s \$0colorCalced;
+#X obj 437 482 moses 0.666667;
+#X obj 437 687 +;
+#X obj 452 665 v \$0p;
+#X obj 437 636 t f b;
+#X obj 492 592 v \$0q;
+#X obj 531 592 v \$0p;
+#X obj 437 535 * 6;
+#X obj 437 559 t f b b;
+#X obj 492 619 -;
+#X obj 437 602 *;
+#X obj 437 713 s \$0colorCalced;
+#X obj 437 509 expr 0.666667 - $f1;
+#X obj 582 481 t b;
+#X obj 582 537 s \$0colorCalced;
+#X obj 582 512 v \$0p;
+#X obj 79 459 r \$0colorCalced;
+#X obj 34 717 outlet;
+#N canvas 0 22 182 204 restrict 0;
+#X obj 25 26 inlet;
+#X obj 25 162 outlet;
+#X obj 91 98 div 1;
+#X obj 64 119 -;
+#X obj 64 74 t f f;
+#X obj 25 48 moses 0;
+#X obj 25 97 + 1;
+#X connect 0 0 5 0;
+#X connect 2 0 3 1;
+#X connect 3 0 1 0;
+#X connect 4 0 3 0;
+#X connect 4 1 2 0;
+#X connect 5 0 6 0;
+#X connect 5 1 4 0;
+#X connect 6 0 1 0;
+#X restore 97 424 pd restrict;
+#X connect 0 0 10 0;
+#X connect 0 1 15 0;
+#X connect 4 0 1 0;
+#X connect 4 1 2 0;
+#X connect 4 2 3 0;
+#X connect 5 0 0 0;
+#X connect 7 0 6 0;
+#X connect 8 0 7 1;
+#X connect 9 0 8 0;
+#X connect 10 0 7 0;
+#X connect 10 1 9 0;
+#X connect 11 0 13 1;
+#X connect 12 0 11 1;
+#X connect 12 0 14 1;
+#X connect 13 0 6 0;
+#X connect 14 0 13 0;
+#X connect 15 0 14 0;
+#X connect 15 1 11 0;
+#X connect 15 2 12 0;
+#X connect 16 0 17 0;
+#X connect 17 0 18 0;
+#X connect 18 0 20 0;
+#X connect 18 1 19 0;
+#X connect 19 0 20 1;
+#X connect 20 0 21 0;
+#X connect 22 0 27 0;
+#X connect 23 0 25 0;
+#X connect 24 0 28 0;
+#X connect 25 0 24 0;
+#X connect 25 1 28 1;
+#X connect 25 2 26 0;
+#X connect 26 0 28 2;
+#X connect 27 0 23 0;
+#X connect 27 1 16 0;
+#X connect 27 2 5 0;
+#X connect 27 3 4 0;
+#X connect 28 0 29 0;
+#X connect 29 0 30 0;
+#X connect 29 1 63 0;
+#X connect 30 0 62 0;
+#X connect 30 1 41 0;
+#X connect 31 0 32 0;
+#X connect 31 1 46 0;
+#X connect 32 0 33 0;
+#X connect 33 0 45 0;
+#X connect 34 0 44 0;
+#X connect 35 0 34 1;
+#X connect 36 0 34 0;
+#X connect 36 1 35 0;
+#X connect 37 0 42 0;
+#X connect 38 0 42 1;
+#X connect 39 0 40 0;
+#X connect 40 0 43 0;
+#X connect 40 1 37 0;
+#X connect 40 2 38 0;
+#X connect 41 0 39 0;
+#X connect 41 1 31 0;
+#X connect 42 0 43 1;
+#X connect 43 0 36 0;
+#X connect 46 0 57 0;
+#X connect 46 1 58 0;
+#X connect 47 0 56 0;
+#X connect 48 0 47 1;
+#X connect 49 0 47 0;
+#X connect 49 1 48 0;
+#X connect 50 0 54 0;
+#X connect 51 0 54 1;
+#X connect 52 0 53 0;
+#X connect 53 0 55 0;
+#X connect 53 1 50 0;
+#X connect 53 2 51 0;
+#X connect 54 0 55 1;
+#X connect 55 0 49 0;
+#X connect 57 0 52 0;
+#X connect 58 0 60 0;
+#X connect 60 0 59 0;
+#X connect 61 0 30 1;
+#X connect 63 0 29 1;
diff --git a/core/color.random-dark-light18.pd b/core/color.random-dark-light18.pd
new file mode 100644
index 0000000..9b34c7f
--- /dev/null
+++ b/core/color.random-dark-light18.pd
@@ -0,0 +1,46 @@
+#N canvas 231 105 422 404 10;
+#X obj 76 184 pack f f f;
+#X obj 133 47 t b b b;
+#X obj 185 184 pack f f f;
+#X obj 76 365 outlet;
+#X obj 185 365 outlet;
+#X obj 133 21 inlet;
+#X obj 76 85 random 1000;
+#X obj 185 230 list-map;
+#X obj 241 230 / 1000;
+#X obj 76 230 list-map;
+#X obj 132 230 / 1000;
+#X obj 76 267 color.hsl2rgb;
+#X obj 185 267 color.hsl2rgb;
+#X obj 185 321 color.rgb2pd18;
+#X obj 76 321 color.rgb2pd18;
+#X obj 76 122 t a a;
+#X obj 318 85 random 100;
+#X obj 318 147 + 100;
+#X obj 318 115 + 600;
+#X obj 152 100 float_argument \$1 900;
+#X connect 0 0 9 0;
+#X connect 1 0 6 0;
+#X connect 1 1 19 0;
+#X connect 1 2 16 0;
+#X connect 2 0 7 0;
+#X connect 5 0 1 0;
+#X connect 6 0 15 0;
+#X connect 7 0 12 0;
+#X connect 7 1 8 0;
+#X connect 8 0 7 1;
+#X connect 9 0 11 0;
+#X connect 9 1 10 0;
+#X connect 10 0 9 1;
+#X connect 11 0 14 0;
+#X connect 12 0 13 0;
+#X connect 13 0 4 0;
+#X connect 14 0 3 0;
+#X connect 15 0 0 0;
+#X connect 15 1 2 0;
+#X connect 16 0 18 0;
+#X connect 17 0 2 2;
+#X connect 18 0 0 2;
+#X connect 18 0 17 0;
+#X connect 19 0 2 1;
+#X connect 19 0 0 1;
diff --git a/core/color.random-dark-light24.pd b/core/color.random-dark-light24.pd
new file mode 100644
index 0000000..d287876
--- /dev/null
+++ b/core/color.random-dark-light24.pd
@@ -0,0 +1,46 @@
+#N canvas 231 105 359 415 10;
+#X obj 76 184 pack f f f;
+#X obj 76 57 t b b b;
+#X obj 185 184 pack f f f;
+#X obj 76 365 outlet;
+#X obj 185 365 outlet;
+#X obj 76 21 inlet;
+#X obj 76 85 random 1000;
+#X obj 152 85 random 1000;
+#X obj 228 83 random 200;
+#X obj 228 116 + 600;
+#X obj 242 152 + 200;
+#X obj 185 230 list-map;
+#X obj 241 230 / 1000;
+#X obj 76 230 list-map;
+#X obj 132 230 / 1000;
+#X obj 76 267 color.hsl2rgb;
+#X obj 76 321 color.rgb2pd24;
+#X obj 185 321 color.rgb2pd24;
+#X obj 185 267 color.hsl2rgb;
+#X obj 76 122 t a a;
+#X connect 0 0 13 0;
+#X connect 1 0 6 0;
+#X connect 1 1 7 0;
+#X connect 1 2 8 0;
+#X connect 2 0 11 0;
+#X connect 5 0 1 0;
+#X connect 6 0 19 0;
+#X connect 7 0 0 1;
+#X connect 7 0 2 1;
+#X connect 8 0 9 0;
+#X connect 9 0 0 2;
+#X connect 9 0 10 0;
+#X connect 10 0 2 2;
+#X connect 11 0 18 0;
+#X connect 11 1 12 0;
+#X connect 12 0 11 1;
+#X connect 13 0 15 0;
+#X connect 13 1 14 0;
+#X connect 14 0 13 1;
+#X connect 15 0 16 0;
+#X connect 16 0 3 0;
+#X connect 17 0 4 0;
+#X connect 18 0 17 0;
+#X connect 19 0 0 0;
+#X connect 19 1 2 0;
diff --git a/core/color.rgb2pd18.pd b/core/color.rgb2pd18.pd
new file mode 100644
index 0000000..e5c1809
--- /dev/null
+++ b/core/color.rgb2pd18.pd
@@ -0,0 +1,18 @@
+#N canvas 373 62 364 212 10;
+#X obj 46 77 unpack f f f;
+#X obj 46 48 inlet;
+#X obj 46 173 outlet;
+#X obj 46 109 * 63;
+#X obj 155 109 * 63;
+#X obj 265 109 * 63;
+#X text 296 110 2^6;
+#X obj 46 141 expr -4096 * $i1 - 64 * $i2 - $i3 -1 \;;
+#X text 80 156 2^12 (18-6);
+#X connect 0 0 3 0;
+#X connect 0 1 4 0;
+#X connect 0 2 5 0;
+#X connect 1 0 0 0;
+#X connect 3 0 7 0;
+#X connect 4 0 7 1;
+#X connect 5 0 7 2;
+#X connect 7 0 2 0;
diff --git a/core/color.rgb2pd24.pd b/core/color.rgb2pd24.pd
new file mode 100644
index 0000000..2115f38
--- /dev/null
+++ b/core/color.rgb2pd24.pd
@@ -0,0 +1,27 @@
+#N canvas 553 56 206 305 10;
+#X obj 43 76 unpack f f f;
+#X obj 43 150 * -65536;
+#X obj 92 104 * -1;
+#X obj 43 197 +;
+#X obj 77 180 +;
+#X obj 43 227 - 1;
+#X obj 43 260 outlet;
+#X obj 43 11 inlet;
+#X obj 77 129 * -256;
+#X obj 43 38 list-map;
+#X obj 107 27 * 255;
+#X obj 107 49 int;
+#X connect 0 0 1 0;
+#X connect 0 1 8 0;
+#X connect 0 2 2 0;
+#X connect 1 0 3 0;
+#X connect 2 0 4 1;
+#X connect 3 0 5 0;
+#X connect 4 0 3 1;
+#X connect 5 0 6 0;
+#X connect 7 0 9 0;
+#X connect 8 0 4 0;
+#X connect 9 0 0 0;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 0;
diff --git a/core/cursormon.pd b/core/cursormon.pd
new file mode 100644
index 0000000..a90591d
--- /dev/null
+++ b/core/cursormon.pd
@@ -0,0 +1,18 @@
+#N canvas 854 281 450 300 10;
+#X obj 107 91 route motion;
+#X msg 65 40 capture 1;
+#X obj 65 17 loadbang;
+#X floatatom 102 202 5 0 0 0 - - -;
+#X obj 107 118 unpack f f f;
+#X floatatom 141 202 5 0 0 0 - - -;
+#X floatatom 181 202 5 0 0 0 - - -;
+#X text 221 13 make a cursor icon for the GOP;
+#X obj 65 62 tot .parent;
+#X connect 0 0 4 0;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 4 0 3 0;
+#X connect 4 1 5 0;
+#X connect 4 2 6 0;
+#X connect 8 2 0 0;
+#X coords 0 -1 1 1 115 20 2 100 200;
diff --git a/core/deeprouteOSC.pd b/core/deeprouteOSC.pd
new file mode 100644
index 0000000..2051389
--- /dev/null
+++ b/core/deeprouteOSC.pd
@@ -0,0 +1,92 @@
+#N canvas 368 88 717 584 10;
+#X obj 401 113 symbol2list /;
+#X obj 440 364 s2l-explode;
+#X obj 440 385 list prepend /;
+#X obj 440 406 list-l2s;
+#X msg 377 489 obj 30 \$1 mrpeach/routeOSC \$2;
+#X obj 377 466 list append;
+#X obj 527 19 namecanvas \$0self;
+#X obj 377 533 s \$0self;
+#X obj 377 364 f;
+#X obj 401 242 list split 1;
+#X obj 401 209 list;
+#X obj 401 175 t b a;
+#X obj 401 283 t b b a;
+#X obj 358 243 b;
+#X obj 377 415 * 30;
+#X obj 403 364 + 1;
+#X obj 259 460 pack f f;
+#X msg 259 489 connect \$1 0 \$2 0;
+#X msg 496 243 0;
+#X msg 482 156 obj 30 20 inlet;
+#X obj 401 139 t a b b;
+#X obj 482 179 s \$0self;
+#X obj 590 460 + 30;
+#X obj 590 439 f;
+#X msg 590 489 obj 30 \$1 outlet;
+#X obj 390 442 s \$0y;
+#X obj 605 418 r \$0y;
+#X obj 335 398 + 2;
+#X obj 227 335 r \$0out;
+#X obj 227 360 f;
+#X obj 259 407 t a a;
+#X obj 259 381 t a a;
+#X obj 227 381 + 1;
+#X obj 563 360 t b b;
+#X obj 563 386 s \$0out;
+#X obj 401 46 list append \$1;
+#X obj 401 69 sel 0;
+#X obj 401 23 initbang;
+#X msg 319 86 symbol /null;
+#X obj 259 433 + 41;
+#X obj 292 433 + 42;
+#X connect 0 0 20 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 5 1;
+#X connect 4 0 7 0;
+#X connect 5 0 4 0;
+#X connect 8 0 15 0;
+#X connect 8 0 29 1;
+#X connect 8 0 31 0;
+#X connect 9 0 12 0;
+#X connect 9 1 10 1;
+#X connect 9 2 33 0;
+#X connect 10 0 9 0;
+#X connect 11 0 10 0;
+#X connect 11 1 10 1;
+#X connect 12 0 13 0;
+#X connect 12 1 8 0;
+#X connect 12 2 1 0;
+#X connect 13 0 10 0;
+#X connect 14 0 5 0;
+#X connect 14 0 25 0;
+#X connect 15 0 8 1;
+#X connect 16 0 17 0;
+#X connect 17 0 7 0;
+#X connect 18 0 8 1;
+#X connect 19 0 21 0;
+#X connect 20 0 11 0;
+#X connect 20 1 18 0;
+#X connect 20 2 19 0;
+#X connect 22 0 24 0;
+#X connect 23 0 22 0;
+#X connect 24 0 7 0;
+#X connect 26 0 23 1;
+#X connect 27 0 14 0;
+#X connect 28 0 29 0;
+#X connect 29 0 32 0;
+#X connect 30 0 39 0;
+#X connect 30 1 40 0;
+#X connect 31 0 30 0;
+#X connect 31 1 27 0;
+#X connect 32 0 30 0;
+#X connect 33 0 34 0;
+#X connect 33 1 23 0;
+#X connect 35 0 36 0;
+#X connect 36 0 38 0;
+#X connect 36 1 0 0;
+#X connect 37 0 35 0;
+#X connect 38 0 0 0;
+#X connect 39 0 16 0;
+#X connect 40 0 16 1;
diff --git a/core/eqpowmix~.pd b/core/eqpowmix~.pd
new file mode 100644
index 0000000..1da8135
--- /dev/null
+++ b/core/eqpowmix~.pd
@@ -0,0 +1,56 @@
+#N canvas 259 345 452 502 10;
+#X obj 308 42 inlet;
+#X obj 57 174 expr cos($f1 * 3.14159 / 2);
+#X obj 247 175 expr sin($f1 * 3.14159 / 2);
+#X obj 308 108 clip 0 1;
+#X obj 42 312 *~;
+#X obj 232 311 *~;
+#X obj 247 287 line~;
+#X obj 57 287 line~;
+#X obj 247 206 t f b;
+#X obj 247 248 pack f f;
+#X msg 247 268 \$1 \$2;
+#X obj 57 206 t f b;
+#X obj 84 227 f;
+#X obj 57 248 pack f f;
+#X msg 57 268 \$1 \$2;
+#X obj 99 206 r \$0block-ms;
+#X obj 274 227 f;
+#X obj 289 206 r \$0block-ms;
+#X obj 42 43 inlet~;
+#X obj 232 41 inlet~;
+#X obj 141 414 outlet~;
+#X text 24 457 equal power 2-channel mixer \, based on HCS's pan_core~/equal_power_pan~
+;
+#X obj 356 42 loadbang;
+#X msg 356 62 0.5;
+#X obj 310 319 loadbang;
+#X obj 310 351 blocksize_in_ms;
+#X obj 310 385 s \$0block-ms;
+#X connect 0 0 3 0;
+#X connect 1 0 11 0;
+#X connect 2 0 8 0;
+#X connect 3 0 1 0;
+#X connect 3 0 2 0;
+#X connect 4 0 20 0;
+#X connect 5 0 20 0;
+#X connect 6 0 5 1;
+#X connect 7 0 4 1;
+#X connect 8 0 9 0;
+#X connect 8 1 16 0;
+#X connect 9 0 10 0;
+#X connect 10 0 6 0;
+#X connect 11 0 13 0;
+#X connect 11 1 12 0;
+#X connect 12 0 13 1;
+#X connect 13 0 14 0;
+#X connect 14 0 7 0;
+#X connect 15 0 12 1;
+#X connect 16 0 9 1;
+#X connect 17 0 16 1;
+#X connect 18 0 4 0;
+#X connect 19 0 5 0;
+#X connect 22 0 23 0;
+#X connect 23 0 3 0;
+#X connect 24 0 25 0;
+#X connect 25 0 26 0;
diff --git a/core/hotpack.pd b/core/hotpack.pd
new file mode 100644
index 0000000..7625535
--- /dev/null
+++ b/core/hotpack.pd
@@ -0,0 +1,173 @@
+#N canvas 4 22 859 425 10;
+#N canvas 1321 240 446 500 builder 1;
+#X obj -315 22 initbang;
+#X obj -288 219 s \$0self;
+#X obj -279 128 s \$0inlets;
+#X obj -315 172 list trim;
+#X obj -315 194 t b a;
+#X obj -300 244 r \$0inlets;
+#X obj -93 80 t a b;
+#X obj -315 270 f;
+#X obj -315 318 until;
+#X obj -315 294 t a b;
+#X msg -278 294 0;
+#X obj -250 294 s \$0reset;
+#X obj -300 343 r \$0reset;
+#X obj -315 368 f;
+#X obj -283 369 + 1;
+#X obj -315 45 t b b;
+#X obj -244 53 v \$0objects;
+#X obj -315 403 sel 0;
+#X obj -315 453 s \$0makeFirstInlet;
+#X obj -288 428 s \$0makeRestOfInlets;
+#X text -133 180 25;
+#X obj -315 149 list prepend obj 10 100 pack;
+#X obj -19 145 v \$0objects;
+#X msg -93 50 s s s s s;
+#X msg -66 109 5;
+#X msg -17 110 4;
+#X msg -274 46 4;
+#X obj -244 76 s \$0packObjID;
+#X obj -315 111 dollarg;
+#X connect 0 0 15 0;
+#X connect 3 0 4 0;
+#X connect 4 0 7 0;
+#X connect 4 1 1 0;
+#X connect 5 0 7 1;
+#X connect 6 0 21 0;
+#X connect 6 1 24 0;
+#X connect 6 1 25 0;
+#X connect 7 0 9 0;
+#X connect 8 0 13 0;
+#X connect 9 0 8 0;
+#X connect 9 1 10 0;
+#X connect 10 0 11 0;
+#X connect 12 0 13 1;
+#X connect 13 0 14 0;
+#X connect 13 0 17 0;
+#X connect 14 0 13 1;
+#X connect 15 0 28 0;
+#X connect 15 1 26 0;
+#X connect 17 0 18 0;
+#X connect 17 1 19 0;
+#X connect 21 0 3 0;
+#X connect 23 0 6 0;
+#X connect 24 0 2 0;
+#X connect 25 0 22 0;
+#X connect 26 0 16 0;
+#X connect 26 0 27 0;
+#X connect 28 0 21 0;
+#X connect 28 1 2 0;
+#X restore 14 315 pd builder;
+#N canvas 469 248 424 330 firstinlet 0;
+#X obj 131 92 s \$0self;
+#X obj 194 19 pack f f;
+#X obj 239 -3 + 1;
+#X obj 194 -40 t a a;
+#X msg 194 57 connect \$2 0 \$1 0;
+#X obj 144 -81 v \$0objects;
+#X obj 144 -158 r \$0makeFirstInlet;
+#X msg 275 -91 obj 10 10 inlet;
+#X obj 117 -81 + 2;
+#X msg 286 -70 obj 10 160 outlet;
+#X obj 275 -47 s \$0self;
+#X obj 144 -130 t b b b;
+#X msg 15 58 connect \$1 0 \$2 0;
+#X obj 60 -14 + 2;
+#X obj 15 13 pack f f;
+#X obj 144 -57 t a a;
+#X obj 15 -40 t a a;
+#X connect 1 0 4 0;
+#X connect 2 0 1 1;
+#X connect 3 0 1 0;
+#X connect 3 1 2 0;
+#X connect 4 0 0 0;
+#X connect 5 0 8 0;
+#X connect 5 0 15 0;
+#X connect 6 0 11 0;
+#X connect 7 0 10 0;
+#X connect 8 0 5 0;
+#X connect 9 0 10 0;
+#X connect 11 0 5 0;
+#X connect 11 1 9 0;
+#X connect 11 2 7 0;
+#X connect 12 0 0 0;
+#X connect 13 0 14 1;
+#X connect 14 0 12 0;
+#X connect 15 0 16 0;
+#X connect 15 1 3 0;
+#X connect 16 0 14 0;
+#X connect 16 1 13 0;
+#X restore 14 338 pd firstinlet;
+#N canvas 394 97 493 684 restofinlets 0;
+#X msg 213 232 obj \$1 10 inlet;
+#X obj 186 295 s \$0self;
+#X msg 186 261 obj \$1 30 t b a;
+#X obj 186 199 t a a;
+#X obj 147 53 r \$0makeRestOfInlets;
+#X obj 186 103 * 40;
+#X obj 186 131 + 10;
+#X text 219 106 width of inlet object;
+#X text 218 130 x offset;
+#X obj 86 131 v \$0objects;
+#X obj 58 131 + 2;
+#X obj 166 375 v \$0objects;
+#X obj 147 77 t b a a;
+#X obj 166 325 t b a;
+#X obj 193 350 s \$0inletIndex;
+#X obj 166 410 t a a a;
+#X obj 364 500 + 1;
+#X obj 364 461 t a a;
+#X msg 364 554 connect \$1 0 \$2 0;
+#X obj 364 526 pack f f;
+#X obj 409 500 + 2;
+#X obj 185 483 + 2;
+#X obj 80 513 r \$0inletIndex;
+#X obj 23 460 + 2;
+#X obj 185 619 s \$0self;
+#X obj 185 536 pack f f;
+#X obj 185 453 t a b;
+#X obj 212 504 f;
+#X msg 185 565 connect \$1 0 \$2 0;
+#X obj 23 536 pack f f f;
+#X msg 23 567 connect \$1 1 \$2 \$3;
+#X obj 227 481 r \$0packObjID;
+#X obj 51 492 r \$0packObjID;
+#X connect 0 0 1 0;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 3 1 0 0;
+#X connect 4 0 12 0;
+#X connect 5 0 6 0;
+#X connect 6 0 3 0;
+#X connect 9 0 10 0;
+#X connect 10 0 9 0;
+#X connect 11 0 15 0;
+#X connect 12 0 9 0;
+#X connect 12 1 13 0;
+#X connect 12 2 5 0;
+#X connect 13 0 11 0;
+#X connect 13 1 14 0;
+#X connect 15 0 23 0;
+#X connect 15 1 26 0;
+#X connect 15 2 17 0;
+#X connect 16 0 19 0;
+#X connect 17 0 16 0;
+#X connect 17 1 20 0;
+#X connect 18 0 24 0;
+#X connect 19 0 18 0;
+#X connect 20 0 19 1;
+#X connect 21 0 25 0;
+#X connect 22 0 29 2;
+#X connect 23 0 29 0;
+#X connect 25 0 28 0;
+#X connect 26 0 21 0;
+#X connect 26 1 27 0;
+#X connect 27 0 25 1;
+#X connect 28 0 24 0;
+#X connect 29 0 30 0;
+#X connect 30 0 24 0;
+#X connect 31 0 27 1;
+#X connect 32 0 29 1;
+#X restore 14 361 pd restofinlets;
+#X obj 14 384 namecanvas \$0self;
diff --git a/core/keynamedown.pd b/core/keynamedown.pd
new file mode 100644
index 0000000..61a3f8f
--- /dev/null
+++ b/core/keynamedown.pd
@@ -0,0 +1,16 @@
+#N canvas 688 107 173 195 10;
+#X obj 26 17 keyname;
+#X obj 26 120 spigot;
+#X msg 85 89 1;
+#X msg 45 89 0;
+#X obj 26 64 sel 1 0;
+#X obj 85 64 sel \$1;
+#X obj 26 152 outlet;
+#X connect 0 0 4 0;
+#X connect 0 1 5 0;
+#X connect 1 0 6 0;
+#X connect 2 0 1 1;
+#X connect 3 0 1 1;
+#X connect 4 0 1 0;
+#X connect 4 1 3 0;
+#X connect 5 0 2 0;
diff --git a/core/list-remove-help.pd b/core/list-remove-help.pd
new file mode 100644
index 0000000..a2f23b9
--- /dev/null
+++ b/core/list-remove-help.pd
@@ -0,0 +1,21 @@
+#N canvas 558 452 463 332 10;
+#X obj 201 141 hradio 15 1 0 8 empty empty POS_(zero-based) 0 -6 0
+8 -262144 -1 -1 1;
+#X floatatom 201 161 5 0 0 0 - - -;
+#X msg 151 109 0 1 2 3 4;
+#X obj 151 227 print;
+#X text 36 51 Negative POS counts from the end of the list.;
+#X text 35 26 list-remove: remove (n) elements at position POS from
+list.;
+#X text 36 72 Arguments: POS to begin removal \, number of elements
+to remove.;
+#X floatatom 251 176 5 0 0 0 - - -;
+#X text 290 176 # of elements;
+#X obj 151 197 list-remove 2 2;
+#X text 235 304 list-remove 2007 Luke Iannini;
+#X text 5 276 helpfile based on list-abs by Frank Barknecht;
+#X connect 0 0 1 0;
+#X connect 1 0 9 1;
+#X connect 2 0 9 0;
+#X connect 7 0 9 2;
+#X connect 9 0 3 0;
diff --git a/core/list-remove.pd b/core/list-remove.pd
new file mode 100644
index 0000000..9f9f31f
--- /dev/null
+++ b/core/list-remove.pd
@@ -0,0 +1,30 @@
+#N canvas 611 258 453 367 10;
+#X obj 69 177 list split \$1;
+#X obj 173 178 list split;
+#X obj 238 125 \$1;
+#X obj 238 151 + \$2;
+#X obj 263 125 loadbang;
+#X obj 238 69 inlet;
+#X obj 357 16 inlet;
+#X obj 357 72 t b f;
+#X obj 69 18 inlet;
+#X obj 69 48 t a a;
+#X obj 69 237 list append;
+#X obj 69 280 outlet;
+#X obj 238 221 b;
+#X connect 0 0 10 0;
+#X connect 1 1 10 1;
+#X connect 1 2 12 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 1;
+#X connect 4 0 2 0;
+#X connect 5 0 2 0;
+#X connect 5 0 0 1;
+#X connect 6 0 7 0;
+#X connect 7 0 2 0;
+#X connect 7 1 3 1;
+#X connect 8 0 9 0;
+#X connect 9 0 0 0;
+#X connect 9 1 1 0;
+#X connect 10 0 11 0;
+#X connect 12 0 10 1;
diff --git a/core/list-swap-help.pd b/core/list-swap-help.pd
new file mode 100644
index 0000000..41c9917
--- /dev/null
+++ b/core/list-swap-help.pd
@@ -0,0 +1,21 @@
+#N canvas 123 502 452 313 10;
+#X msg 79 125 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15;
+#X msg 43 70 doodle doddle deedle;
+#X obj 43 189 list-swap 2;
+#X obj 43 258 print Swapped;
+#X text 78 108 List you'd like altered;
+#X text 43 54 Replacement items;
+#X obj 115 154 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144
+-1 -1 0;
+#X floatatom 115 173 5 0 0 0 - - -;
+#X text 156 173 Position to begin writing;
+#X text 18 13 List-swap: overwrite a portion of a list with another
+list.;
+#X text 101 208 Argument is default position;
+#X text 315 287 2007 Luke Iannini;
+#X text 3 293 Built on list-insert by Frank Barknecht;
+#X connect 0 0 2 1;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 6 0 7 0;
+#X connect 7 0 2 2;
diff --git a/core/list-swap.pd b/core/list-swap.pd
new file mode 100644
index 0000000..cdf573e
--- /dev/null
+++ b/core/list-swap.pd
@@ -0,0 +1,24 @@
+#N canvas 514 190 357 287 10;
+#X obj 101 25 inlet;
+#X obj 100 193 list-insert;
+#X obj 145 92 list;
+#X obj 217 24 inlet;
+#X obj 168 24 inlet;
+#X obj 217 112 \$1;
+#X obj 100 228 outlet;
+#X obj 101 53 t a b b a;
+#X obj 246 112 list length;
+#X obj 145 162 list-remove;
+#X connect 0 0 7 0;
+#X connect 1 0 6 0;
+#X connect 2 0 9 0;
+#X connect 3 0 5 0;
+#X connect 4 0 2 1;
+#X connect 5 0 1 1;
+#X connect 5 0 9 1;
+#X connect 7 0 1 0;
+#X connect 7 1 2 0;
+#X connect 7 2 5 0;
+#X connect 7 3 8 0;
+#X connect 8 0 9 2;
+#X connect 9 0 1 2;
diff --git a/core/menubar.pd b/core/menubar.pd
new file mode 100644
index 0000000..4dae3cb
--- /dev/null
+++ b/core/menubar.pd
@@ -0,0 +1,42 @@
+#N canvas 713 295 450 300 10;
+#X msg 64 137 open \$1;
+#X obj 64 167 popen;
+#X obj 103 18 bng 15 250 50 0 \$0reveal \$0revealR Reveal 17 7 0 10
+-2112 -262144 -1;
+#X obj 64 80 r \$0reveal;
+#X obj 160 18 bng 15 250 50 0 \$0edit \$0editR Edit 17 7 0 10 -139998
+-262144 -1;
+#X obj 284 110 getdir 1;
+#X obj 284 163 list2symbol /;
+#X obj 284 75 t b b;
+#X obj 347 110 getpatchname 1;
+#X obj 284 133 list append;
+#X obj 284 51 loadbang;
+#X obj 284 195 s \$0fullFile;
+#X obj 364 195 s \$0file;
+#X obj 233 196 s \$0dir;
+#X obj 64 110 list;
+#X obj 95 110 r \$0dir;
+#X obj 144 167 popen;
+#X obj 144 110 list;
+#X obj 144 80 r \$0edit;
+#X obj 175 110 r \$0fullFile;
+#X msg 144 137 mate \$1;
+#X connect 0 0 1 0;
+#X connect 3 0 14 0;
+#X connect 5 0 9 0;
+#X connect 5 0 13 0;
+#X connect 6 0 11 0;
+#X connect 7 0 5 0;
+#X connect 7 1 8 0;
+#X connect 8 0 9 1;
+#X connect 8 0 12 0;
+#X connect 9 0 6 0;
+#X connect 10 0 7 0;
+#X connect 14 0 0 0;
+#X connect 15 0 14 1;
+#X connect 17 0 20 0;
+#X connect 18 0 17 0;
+#X connect 19 0 17 1;
+#X connect 20 0 16 0;
+#X coords 0 -1 1 1 102 21 2 100 15;
diff --git a/core/pcount.pd b/core/pcount.pd
new file mode 100644
index 0000000..a6ee2f6
--- /dev/null
+++ b/core/pcount.pd
@@ -0,0 +1,26 @@
+#N canvas 731 546 353 279 10;
+#X obj 78 24 inlet;
+#X obj 63 144 f 0;
+#X msg 78 108 0;
+#X obj 63 246 outlet;
+#X obj 78 66 route reset;
+#X obj 241 20 inlet;
+#X obj 52 108 b;
+#X obj 159 24 inlet;
+#X obj 138 144 + \$1;
+#X obj 208 144 mod \$2;
+#X obj 171 111 init 1;
+#X obj 257 111 init 1e+21;
+#X connect 0 0 4 0;
+#X connect 1 0 3 0;
+#X connect 1 0 8 0;
+#X connect 2 0 1 1;
+#X connect 4 0 2 0;
+#X connect 4 1 6 0;
+#X connect 5 0 9 1;
+#X connect 6 0 1 0;
+#X connect 7 0 8 1;
+#X connect 8 0 9 0;
+#X connect 9 0 1 1;
+#X connect 10 0 8 1;
+#X connect 11 0 9 1;
diff --git a/core/round.pd b/core/round.pd
new file mode 100644
index 0000000..9fe87d3
--- /dev/null
+++ b/core/round.pd
@@ -0,0 +1,19 @@
+#N canvas 550 22 215 243 10;
+#X obj 65 61 int;
+#X obj 50 100 -;
+#X obj 50 132 > 0.5;
+#X obj 26 166 +;
+#X obj 26 100 f;
+#X obj 26 30 t b a a;
+#X obj 26 192 outlet;
+#X obj 26 6 inlet;
+#X connect 0 0 1 1;
+#X connect 0 0 4 1;
+#X connect 1 0 2 0;
+#X connect 2 0 3 1;
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 5 1 1 0;
+#X connect 5 2 0 0;
+#X connect 7 0 5 0;
diff --git a/core/s2l-explode.pd b/core/s2l-explode.pd
new file mode 100644
index 0000000..385d58f
--- /dev/null
+++ b/core/s2l-explode.pd
@@ -0,0 +1,10 @@
+#N canvas 583 307 229 180 10;
+#X obj 46 92 symbol2list;
+#X obj 109 41 loadbang;
+#X msg 109 67 symbol;
+#X obj 46 41 inlet;
+#X obj 46 125 outlet;
+#X connect 0 0 4 0;
+#X connect 1 0 2 0;
+#X connect 2 0 0 1;
+#X connect 3 0 0 0;
diff --git a/core/sft.rgb.pd b/core/sft.rgb.pd
new file mode 100644
index 0000000..480db7c
--- /dev/null
+++ b/core/sft.rgb.pd
@@ -0,0 +1,156 @@
+#N canvas 185 89 559 602 10;
+#X obj 30 183 cnv 15 18 15 empty \$0dispcol1 empty 20 12 0 14 -128992
+-262144 0;
+#X obj 218 73 * -65536;
+#X obj 281 73 * -256;
+#X obj 351 73 * -1;
+#X obj 351 98 t b f;
+#X obj 281 130 +;
+#X obj 281 161 t b f;
+#X obj 282 194 +;
+#X obj 282 221 - 1;
+#X obj 282 252 list prepend;
+#X obj 282 276 list trim;
+#X obj 282 301 route 0 1 2;
+#X obj 282 388 f;
+#X obj 310 388 f;
+#X obj 338 388 f;
+#X obj 351 336 t b b f;
+#X obj 287 336 t b f b;
+#X obj 225 337 t f b b;
+#X obj 279 473 pack f f f;
+#X obj 279 500 list prepend color;
+#X obj 30 116 vsl 15 60 0 255 0 0 \$0red \$0redR empty 0 -8 0 8 -258049
+-1 -1 2938 1;
+#X obj 50 116 vsl 15 60 0 255 0 0 \$0green \$0greenR empty 0 -8 0 8
+-4033 -1 -1 2938 1;
+#X obj 70 116 vsl 15 60 0 255 0 0 \$0blue \$0blueR empty 0 -8 0 8 -64
+-1 -1 2938 1;
+#X obj 279 526 list trim;
+#X obj 52 100 hradio 10 1 0 3 \$0layer \$0layerr back 0 -4 0 8 -1 -262144
+-1 0;
+#X obj 361 224 r \$0layer;
+#X obj 218 47 int;
+#X obj 281 47 int;
+#X obj 351 48 int;
+#X obj 218 21 r \$0red;
+#X obj 281 21 r \$0green;
+#X obj 351 21 r \$0blue;
+#X obj 30 95 bng 15 250 50 0 \$0nullS \$0nullR empty 0 -6 0 8 -260033
+-1 -1;
+#X obj 35 288 r \$0layer;
+#X obj 35 313 sel 0 1 2;
+#X msg 35 396 back;
+#X msg 55 376 front;
+#X msg 73 356 label;
+#X obj 36 434 list prepend label;
+#X obj 36 478 s \$0layerr;
+#X obj 36 457 list trim;
+#X obj 279 552 outlet;
+#X msg 205 421 color \$1;
+#X msg 294 422 color \$1;
+#X obj 205 442 s \$0dispcol1;
+#X obj 295 442 s \$0dispcol2;
+#X msg 384 422 color \$1;
+#X obj 385 442 s \$0dispcol3;
+#X obj 49 183 cnv 15 18 15 empty \$0dispcol2 empty 20 12 0 14 -1 -262144
+0;
+#X obj 68 183 cnv 15 18 15 empty \$0dispcol3 empty 20 12 0 14 -1 -262144
+0;
+#X obj 421 500 list prepend set;
+#X obj 421 526 list trim;
+#X obj 421 552 outlet;
+#N canvas 1016 679 458 308 init 0;
+#X obj 130 260 s \$0layer;
+#X msg 100 207 0;
+#X msg 130 207 1;
+#X msg 161 207 2;
+#X msg 232 191 0;
+#X obj 232 226 s \$0redR;
+#X obj 232 244 s \$0greenR;
+#X obj 232 262 s \$0blueR;
+#X msg 202 191 127;
+#X obj 89 57 t b b b b b b;
+#X obj 89 33 loadbang;
+#X connect 1 0 0 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 5 0;
+#X connect 4 0 6 0;
+#X connect 4 0 7 0;
+#X connect 8 0 5 0;
+#X connect 8 0 6 0;
+#X connect 8 0 7 0;
+#X connect 9 0 8 0;
+#X connect 9 1 1 0;
+#X connect 9 2 4 0;
+#X connect 9 3 2 0;
+#X connect 9 4 4 0;
+#X connect 9 5 3 0;
+#X connect 10 0 9 0;
+#X restore 81 536 pd init;
+#X obj 30 26 inlet;
+#X obj 30 51 unpack f f f;
+#X connect 1 0 7 0;
+#X connect 2 0 5 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 5 1;
+#X connect 5 0 6 0;
+#X connect 6 0 7 0;
+#X connect 6 1 7 1;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 17 0;
+#X connect 11 1 16 0;
+#X connect 11 2 15 0;
+#X connect 12 0 18 0;
+#X connect 12 0 42 0;
+#X connect 13 0 18 1;
+#X connect 13 0 43 0;
+#X connect 14 0 18 2;
+#X connect 14 0 46 0;
+#X connect 15 0 12 0;
+#X connect 15 1 13 0;
+#X connect 15 2 14 0;
+#X connect 16 0 12 0;
+#X connect 16 1 13 0;
+#X connect 16 2 14 0;
+#X connect 17 0 12 0;
+#X connect 17 1 13 0;
+#X connect 17 2 14 0;
+#X connect 18 0 19 0;
+#X connect 19 0 23 0;
+#X connect 19 0 50 0;
+#X connect 23 0 41 0;
+#X connect 25 0 9 1;
+#X connect 26 0 1 0;
+#X connect 27 0 2 0;
+#X connect 28 0 3 0;
+#X connect 29 0 26 0;
+#X connect 30 0 27 0;
+#X connect 31 0 28 0;
+#X connect 32 0 20 0;
+#X connect 32 0 21 0;
+#X connect 32 0 22 0;
+#X connect 33 0 34 0;
+#X connect 34 0 35 0;
+#X connect 34 1 36 0;
+#X connect 34 2 37 0;
+#X connect 35 0 38 0;
+#X connect 36 0 38 0;
+#X connect 37 0 38 0;
+#X connect 38 0 40 0;
+#X connect 40 0 39 0;
+#X connect 42 0 44 0;
+#X connect 43 0 45 0;
+#X connect 46 0 47 0;
+#X connect 50 0 51 0;
+#X connect 51 0 52 0;
+#X connect 54 0 55 0;
+#X connect 55 0 20 0;
+#X connect 55 1 21 0;
+#X connect 55 2 22 0;
+#X coords 0 -1 1 1 56 120 1 30 80;
diff --git a/core/sft.rtkeep.pd b/core/sft.rtkeep.pd
new file mode 100644
index 0000000..2958112
--- /dev/null
+++ b/core/sft.rtkeep.pd
@@ -0,0 +1,13 @@
+#N canvas 0 22 470 320 10;
+#X obj 143 99 inlet;
+#X obj 144 124 route \$1;
+#X obj 143 205 pack;
+#X obj 143 152 t b f;
+#X obj 143 178 f \$1;
+#X obj 144 234 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 2 0 5 0;
+#X connect 3 0 4 0;
+#X connect 3 1 2 1;
+#X connect 4 0 2 0;
diff --git a/core/sft.seqnames.pd b/core/sft.seqnames.pd
new file mode 100644
index 0000000..94ca588
--- /dev/null
+++ b/core/sft.seqnames.pd
@@ -0,0 +1,31 @@
+#N canvas 946 730 291 366 10;
+#X obj 79 121 list append \$1;
+#X obj 160 74 inlet;
+#X obj 15 6 inlet;
+#X obj 142 190 f;
+#X obj 178 190 + 1;
+#X msg 157 162 0;
+#X obj 84 71 sel reset;
+#X obj 79 226 list append;
+#X obj 79 152 t a b;
+#X obj 79 310 outlet;
+#X msg 79 253 \$1\$2;
+#X obj 15 71 route bang;
+#X obj 15 38 list;
+#X obj 79 281 list;
+#X connect 0 0 8 0;
+#X connect 1 0 0 1;
+#X connect 2 0 12 0;
+#X connect 3 0 4 0;
+#X connect 3 0 7 1;
+#X connect 4 0 3 1;
+#X connect 5 0 3 1;
+#X connect 6 0 5 0;
+#X connect 7 0 10 0;
+#X connect 8 0 7 0;
+#X connect 8 1 3 0;
+#X connect 10 0 13 0;
+#X connect 11 0 0 0;
+#X connect 11 1 6 0;
+#X connect 12 0 11 0;
+#X connect 13 0 9 0;
diff --git a/core/sft.sig.pd b/core/sft.sig.pd
new file mode 100644
index 0000000..121d411
--- /dev/null
+++ b/core/sft.sig.pd
@@ -0,0 +1,12 @@
+#N canvas 0 22 454 304 10;
+#X obj 92 97 snapshot~;
+#X obj 103 42 loadbang;
+#X obj 103 70 metro 50;
+#X obj 92 14 inlet~;
+#X obj 102 124 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
+-44926 -1 -1 0.694145 256;
+#X connect 0 0 4 0;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X coords 0 -1 1 1 58 40 1 100 100;
diff --git a/core/trimdirs.pd b/core/trimdirs.pd
new file mode 100644
index 0000000..4a9c804
--- /dev/null
+++ b/core/trimdirs.pd
@@ -0,0 +1,63 @@
+#N canvas 694 125 474 478 10;
+#X obj 185 137 symbol2list /;
+#X obj 185 176 list-splat -1;
+#X obj 156 282 list2symbol /;
+#X obj 185 202 list split 1;
+#X obj 21 181 symbol2list;
+#X obj 21 208 list prepend /;
+#X obj 21 272 list2symbol;
+#X msg 84 160 symbol;
+#X obj 84 139 loadbang;
+#X msg 84 250 symbol;
+#X obj 84 229 loadbang;
+#X obj 156 251 list append;
+#X obj 344 54 \$1;
+#X obj 344 31 loadbang;
+#X obj 344 109 * -1;
+#X obj 402 21 inlet;
+#X obj 185 20 inlet;
+#X text 32 376 Trims the last [n] directories from the end of a path.
+;
+#X text 33 390 With [trimdirs 1] \, /Users/Me/Pd/Synths becomes /Users/Me/Pd
+;
+#X text 32 404 Handles spaces just fine.;
+#X text 357 434 Luke Iannini 2008;
+#X text 357 446 proyekto.net;
+#X obj 156 343 outlet;
+#X obj 344 137 sel 0;
+#X obj 185 87 demultiplex;
+#X obj 371 159 t a b;
+#X msg 376 198 1;
+#X msg 344 198 0;
+#X obj 185 110 s \$0passthrough;
+#X obj 170 314 r \$0passthrough;
+#X obj 344 82 abs;
+#X text 32 418 No/0 argument passes input through unchanged;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 2 0 22 0;
+#X connect 3 0 4 0;
+#X connect 3 1 11 1;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 11 0;
+#X connect 7 0 4 1;
+#X connect 8 0 7 0;
+#X connect 9 0 6 1;
+#X connect 10 0 9 0;
+#X connect 11 0 2 0;
+#X connect 12 0 30 0;
+#X connect 13 0 12 0;
+#X connect 14 0 23 0;
+#X connect 15 0 30 0;
+#X connect 16 0 24 0;
+#X connect 23 0 27 0;
+#X connect 23 1 25 0;
+#X connect 24 0 28 0;
+#X connect 24 1 0 0;
+#X connect 25 0 1 1;
+#X connect 25 1 26 0;
+#X connect 26 0 24 1;
+#X connect 27 0 24 1;
+#X connect 29 0 22 0;
+#X connect 30 0 14 0;
diff --git a/core/troute-help.pd b/core/troute-help.pd
new file mode 100644
index 0000000..027205c
--- /dev/null
+++ b/core/troute-help.pd
@@ -0,0 +1,47 @@
+#N canvas 285 348 468 386 10;
+#X msg 288 85 list j f g;
+#X msg 51 51 f;
+#X msg 138 51 g;
+#X msg 216 51 r;
+#X msg 257 51 o;
+#X msg 96 51 i;
+#X msg 176 51 a;
+#X text 321 353 2007 Luke Iannini;
+#X obj 111 188 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 141 188 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 171 188 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 201 188 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 288 211 list a r o;
+#X obj 119 125 troute e l o;
+#X text 13 10 troute 0.1;
+#X text 21 247 A seTtable route. A list in the right inlet will change
+the elements that route will react to. (Se)troute can add outlets to
+itself to accomadate longer argument lists \, but it cannot subtract
+them due to limitations in Pure Data. The utility of that is arguable
+\, anyways (since you can just change the actual arguments).;
+#X msg 288 106 list f i g;
+#X msg 288 127 list f o g;
+#X msg 288 148 list r a g;
+#X msg 288 169 list f i r;
+#X msg 288 190 list r i f;
+#X connect 0 0 13 1;
+#X connect 1 0 13 0;
+#X connect 2 0 13 0;
+#X connect 3 0 13 0;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
+#X connect 6 0 13 0;
+#X connect 12 0 13 1;
+#X connect 13 0 8 0;
+#X connect 13 1 9 0;
+#X connect 13 2 10 0;
+#X connect 13 3 11 0;
+#X connect 16 0 13 1;
+#X connect 17 0 13 1;
+#X connect 18 0 13 1;
+#X connect 19 0 13 1;
+#X connect 20 0 13 1;
diff --git a/core/troute.pd b/core/troute.pd
new file mode 100644
index 0000000..d10175a
--- /dev/null
+++ b/core/troute.pd
@@ -0,0 +1,248 @@
+#N canvas 360 268 1084 595 10;
+#N canvas 122 62 399 252 \$0canvas 0;
+#X obj 0 20 r 1253-inlet0;
+#X obj 0 50 route j f g;
+#X obj 0 100 s 1253-outlet0;
+#X obj 150 100 s 1253-outlet1;
+#X obj 300 100 s 1253-outlet2;
+#X obj 450 100 s 1253-outlet3;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 1 1 3 0;
+#X connect 1 2 4 0;
+#X connect 1 3 5 0;
+#X restore 441 15 pd \$0canvas;
+#X obj 271 103 s \$0totalArgs;
+#X obj 480 92 t a a;
+#X obj 510 116 list length;
+#X obj 20 9 namecanvas \$0self;
+#X obj 510 137 s \$0totalArgs;
+#X obj 227 152 t b b a;
+#N canvas 518 172 903 672 connections 0;
+#X obj 362 60 inlet;
+#X msg 609 107 connect 0 0 1 0;
+#X obj 609 135 s pd-\$0canvas;
+#X msg 384 472 connect 1 \$1 \$2 0;
+#X obj 384 320 f;
+#X obj 414 320 + 1;
+#X obj 384 217 until;
+#X obj 384 179 f;
+#X obj 456 408 + 2;
+#X obj 384 441 list append;
+#X obj 384 504 s pd-\$0canvas;
+#X obj 215 505 s \$0self;
+#X obj 215 391 list append;
+#X msg 215 471 connect \$1 0 \$2 0;
+#X obj 400 251 r \$0reset;
+#X obj 287 360 + 1;
+#X obj 215 323 * 2;
+#X obj 215 344 t f f;
+#X obj 362 91 t b b b;
+#X obj 384 352 t f f;
+#X obj 216 295 f;
+#X obj 246 295 + 1;
+#X obj 216 192 until;
+#X obj 216 134 f;
+#X obj 232 111 r \$0checkedArgs;
+#X obj 215 429 list-apply + 21;
+#X obj 232 242 r \$0resetIfLess;
+#X obj 400 149 r \$0totalOuts;
+#X connect 0 0 18 0;
+#X connect 1 0 2 0;
+#X connect 3 0 10 0;
+#X connect 4 0 5 0;
+#X connect 4 0 19 0;
+#X connect 5 0 4 1;
+#X connect 6 0 4 0;
+#X connect 7 0 6 0;
+#X connect 8 0 9 1;
+#X connect 9 0 3 0;
+#X connect 12 0 25 0;
+#X connect 13 0 11 0;
+#X connect 14 0 4 1;
+#X connect 15 0 12 1;
+#X connect 16 0 17 0;
+#X connect 17 0 12 0;
+#X connect 17 1 15 0;
+#X connect 18 0 23 0;
+#X connect 18 1 7 0;
+#X connect 18 2 1 0;
+#X connect 19 0 9 0;
+#X connect 19 1 8 0;
+#X connect 20 0 21 0;
+#X connect 20 0 16 0;
+#X connect 21 0 20 1;
+#X connect 22 0 20 0;
+#X connect 23 0 22 0;
+#X connect 24 0 23 1;
+#X connect 25 0 13 0;
+#X connect 26 0 20 1;
+#X connect 27 0 7 1;
+#X restore 227 236 pd connections;
+#X obj 227 63 dollarg;
+#N canvas 906 445 436 308 initialSetup 0;
+#X obj 53 9 inlet;
+#X msg 97 71 0;
+#X obj 137 87 s \$0reset;
+#X obj 75 98 \$0;
+#X obj 75 153 s pd-\$0canvas;
+#X obj 53 230 s pd-\$0canvas;
+#X obj 53 178 list prepend obj 0 50 route;
+#X obj 53 204 list trim;
+#X obj 53 47 t a b b;
+#X msg 285 53 clear;
+#X obj 285 25 r \$0reset;
+#X obj 285 82 s pd-\$0canvas;
+#X msg 75 125 obj 0 20 r \$1-inlet0;
+#X obj 284 145 r \$0reset;
+#X obj 300 191 r \$0lessThan;
+#X obj 284 216 f;
+#X obj 284 168 t b;
+#X obj 284 240 sel 1;
+#X obj 284 285 s \$0resetIfLess;
+#X msg 284 262 0;
+#X connect 0 0 8 0;
+#X connect 1 0 2 0;
+#X connect 3 0 12 0;
+#X connect 6 0 7 0;
+#X connect 7 0 5 0;
+#X connect 8 0 6 0;
+#X connect 8 1 3 0;
+#X connect 8 2 1 0;
+#X connect 9 0 11 0;
+#X connect 10 0 9 0;
+#X connect 12 0 4 0;
+#X connect 13 0 16 0;
+#X connect 14 0 15 1;
+#X connect 15 0 17 0;
+#X connect 16 0 15 0;
+#X connect 17 0 19 0;
+#X connect 19 0 18 0;
+#X restore 271 181 pd initialSetup;
+#N canvas 328 204 574 524 addOutlets 0;
+#X obj 54 18 inlet;
+#X obj 54 279 * 150;
+#X obj 54 144 until;
+#X obj 54 207 f;
+#X obj 87 207 + 1;
+#X obj 70 170 r \$0reset;
+#X msg 54 390 obj \$1 100 s \$2-outlet\$3;
+#X obj 54 301 list append \$0;
+#X obj 54 363 list append;
+#X obj 54 426 s pd-\$0canvas;
+#X obj 54 242 t a a;
+#X obj 54 120 f;
+#N canvas 392 28 506 356 selfhelp 0;
+#X obj 90 28 inlet;
+#X obj 120 210 s \$0self;
+#X obj 90 132 t a a;
+#X obj 127 65 r \$0lessThan;
+#X obj 90 107 spigot;
+#X obj 127 85 invert;
+#X msg 120 171 obj \$1 475 r \$2-outlet\$3;
+#X msg 90 240 obj \$1 500 outlet;
+#X connect 0 0 4 0;
+#X connect 2 0 7 0;
+#X connect 2 1 6 0;
+#X connect 3 0 5 0;
+#X connect 4 0 2 0;
+#X connect 5 0 4 1;
+#X connect 6 0 1 0;
+#X connect 7 0 1 0;
+#X restore 274 425 pd selfhelp;
+#X obj 274 299 * 150;
+#X obj 274 227 f;
+#X obj 307 227 + 1;
+#X obj 274 321 list append \$0;
+#X obj 274 383 list append;
+#X obj 274 262 t a a;
+#X obj 54 42 t b b;
+#X obj 274 118 until;
+#X obj 274 58 f;
+#X obj 290 34 r \$0checkedArgs;
+#X obj 70 76 r \$0totalOuts;
+#X obj 290 180 r \$0resetIfLess;
+#X connect 0 0 19 0;
+#X connect 1 0 7 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 3 0 10 0;
+#X connect 4 0 3 1;
+#X connect 5 0 3 1;
+#X connect 6 0 9 0;
+#X connect 7 0 8 0;
+#X connect 8 0 6 0;
+#X connect 10 0 1 0;
+#X connect 10 1 8 1;
+#X connect 11 0 2 0;
+#X connect 13 0 16 0;
+#X connect 14 0 15 0;
+#X connect 14 0 18 0;
+#X connect 15 0 14 1;
+#X connect 16 0 17 0;
+#X connect 17 0 12 0;
+#X connect 18 0 13 0;
+#X connect 18 1 17 1;
+#X connect 19 0 11 0;
+#X connect 19 1 21 0;
+#X connect 20 0 14 0;
+#X connect 21 0 20 0;
+#X connect 22 0 21 1;
+#X connect 23 0 11 1;
+#X connect 24 0 14 1;
+#X restore 249 210 pd addOutlets;
+#N canvas 228 24 433 398 checkArgs 0;
+#X obj 131 114 >;
+#X obj 183 114 f;
+#X obj 131 65 t f f;
+#X obj 131 149 sel 1;
+#X obj 183 149 t f f;
+#X obj 213 188 -;
+#X obj 37 130 invert;
+#X obj 37 162 s \$0lessThan;
+#X obj 161 313 f;
+#X obj 161 179 t b;
+#X obj 161 344 s \$0checkedArgs;
+#X obj 213 223 s \$0checkedArgs;
+#X obj 131 14 r \$0totalOuts;
+#X obj 177 278 r \$0totalOuts;
+#X connect 0 0 3 0;
+#X connect 0 0 6 0;
+#X connect 1 0 0 1;
+#X connect 1 0 4 0;
+#X connect 2 0 0 0;
+#X connect 2 1 1 1;
+#X connect 3 0 1 0;
+#X connect 3 1 9 0;
+#X connect 4 0 5 1;
+#X connect 4 1 5 0;
+#X connect 5 0 11 0;
+#X connect 6 0 7 0;
+#X connect 8 0 10 0;
+#X connect 9 0 8 0;
+#X connect 12 0 2 0;
+#X connect 13 0 8 1;
+#X restore 271 124 pd checkArgs;
+#X obj 21 49 inlet;
+#X obj 21 87 s \$0-inlet0;
+#X obj 480 44 inlet;
+#X obj 480 165 s \$0-inlet1;
+#X obj 144 87 r \$0-inlet1;
+#X obj 479 208 r \$0totalArgs;
+#X obj 479 252 s \$0totalOuts;
+#X obj 479 230 + 1;
+#X obj 227 39 initbang;
+#X connect 2 0 15 0;
+#X connect 2 1 3 0;
+#X connect 3 0 5 0;
+#X connect 6 0 7 0;
+#X connect 6 1 10 0;
+#X connect 6 2 9 0;
+#X connect 8 0 6 0;
+#X connect 8 1 1 0;
+#X connect 12 0 13 0;
+#X connect 14 0 2 0;
+#X connect 16 0 6 0;
+#X connect 17 0 19 0;
+#X connect 19 0 18 0;
+#X connect 20 0 8 0;
diff --git a/core/untilb-help.pd b/core/untilb-help.pd
new file mode 100644
index 0000000..959995f
--- /dev/null
+++ b/core/untilb-help.pd
@@ -0,0 +1,13 @@
+#N canvas 267 484 347 246 10;
+#X obj 18 113 untilb;
+#X msg 18 51 10;
+#X obj 51 172 print DONE?;
+#X msg 51 143 Done.;
+#X text 48 88 Right inlet is the same as regular until;
+#X obj 18 204 print BangingAlong;
+#X text 11 6 untilb - A version of until that outputs a bang upon completion
+;
+#X connect 0 0 5 0;
+#X connect 0 1 3 0;
+#X connect 1 0 0 0;
+#X connect 3 0 2 0;
diff --git a/core/untilb.pd b/core/untilb.pd
new file mode 100644
index 0000000..d03365f
--- /dev/null
+++ b/core/untilb.pd
@@ -0,0 +1,27 @@
+#N canvas 735 427 250 282 10;
+#X obj 138 204 f;
+#X obj 166 204 + 1;
+#X obj 28 152 t b b;
+#X obj 110 204 sel;
+#X msg 153 150 0;
+#X obj 28 63 t a a b;
+#X obj 125 150 - 1;
+#X obj 55 238 outlet;
+#X obj 110 238 outlet;
+#X obj 28 122 until;
+#X obj 170 22 inlet;
+#X obj 28 23 inlet;
+#X connect 0 0 1 0;
+#X connect 0 0 3 0;
+#X connect 1 0 0 1;
+#X connect 2 0 0 0;
+#X connect 2 1 7 0;
+#X connect 3 0 8 0;
+#X connect 4 0 0 1;
+#X connect 5 0 9 0;
+#X connect 5 1 6 0;
+#X connect 5 2 4 0;
+#X connect 6 0 3 1;
+#X connect 9 0 2 0;
+#X connect 10 0 9 1;
+#X connect 11 0 5 0;