aboutsummaryrefslogtreecommitdiff
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
initial import from my personal svnsvn2git-root
svn path=/trunk/abstractions/senderfruit/; revision=9380
-rw-r--r--controctopus/cc-learner.pd146
-rw-r--r--controctopus/constrain-help.pd34
-rw-r--r--controctopus/controctopus-help.pd72
-rw-r--r--controctopus/controctopus-multi-help.pd17
-rw-r--r--controctopus/midi-tentacle-multi.pd254
-rw-r--r--controctopus/midi-tentacle.pd272
-rw-r--r--controctopus/note-learner.pd222
-rw-r--r--controctopus/octomother-help.pd15
-rw-r--r--controctopus/octomother-multi.pd86
-rw-r--r--controctopus/octomother.pd86
-rw-r--r--controctopus/rchannel-multi.pd33
-rw-r--r--controctopus/rchannel.pd24
-rw-r--r--controctopus/tentacle-pager.pd131
-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
-rw-r--r--nsend/nr-help.pd148
-rw-r--r--nsend/nr.pd156
-rw-r--r--nsend/nreceive-help.pd148
-rw-r--r--nsend/nreceive-receiver.pd4
-rw-r--r--nsend/nreceive.pd156
-rw-r--r--nsend/ns-help.pd148
-rw-r--r--nsend/ns.pd156
-rw-r--r--nsend/nsend-help.pd148
-rw-r--r--nsend/nsend-sender.pd4
-rw-r--r--nsend/nsend.pd156
-rw-r--r--pdsvn/pdsvn.pd795
-rw-r--r--pdsvn/pdsvndir.pd1089
-rw-r--r--semento/polaroid-help.pd75
-rw-r--r--semento/polaroid.pd186
-rw-r--r--semento/sft.careGUI-help.pd46
-rw-r--r--semento/sft.careGUI.pd131
-rw-r--r--semento/sft.commun.ez.pd18
-rw-r--r--semento/sft.commun.pd35
-rw-r--r--semento/sft.commun.sc-help.pd31
-rw-r--r--semento/sft.commun.sc.ez.pd13
-rw-r--r--semento/sft.commun.sc.pd132
-rw-r--r--semento/sft.commun.x-help.pd17
-rw-r--r--semento/sft.commun.x.pd13
-rw-r--r--semento/sft.originator.pd265
-rw-r--r--semento/sft.rradical.state.pd220
69 files changed, 7280 insertions, 0 deletions
diff --git a/controctopus/cc-learner.pd b/controctopus/cc-learner.pd
new file mode 100644
index 0000000..7e692d4
--- /dev/null
+++ b/controctopus/cc-learner.pd
@@ -0,0 +1,146 @@
+#N canvas 730 32 629 668 10;
+#X obj 60 46 nbx 3 14 0 127 0 1 \$0-ccNumber \$0-ccNumberLearn CC 42
+8 0 11 -194624 -1 -1 1 256;
+#X obj 63 64 bng 13 250 50 0 \$0-learnOn \$0nullR empty 0 -6 0 8 -259541
+-1 -1;
+#X obj 353 200 r \$0-ccNumber;
+#X obj 81 67 bng 8 250 50 0 empty \$0lite1 empty 0 -6 0 8 -1 -262085
+-1;
+#X obj 92 67 bng 8 250 50 0 empty \$0lite2 empty 0 -6 0 8 -1 -262085
+-1;
+#X obj 103 67 bng 8 250 50 0 empty \$0lite3 empty 0 -6 0 8 -1 -262085
+-1;
+#X obj 300 -1 ctlin;
+#X obj 60 81 nbx 2 14 1 64 0 0 \$0devNo \$1/devNo Dev 32 8 0 11 -110565
+-1 -1 1 256;
+#X obj 315 181 spigot;
+#X obj 300 257 spigot;
+#X obj 268 181 / 127;
+#N canvas 0 22 458 308 midiLearn 0;
+#X obj 217 143 inlet;
+#X obj 162 38 r \$0-learnOn;
+#X obj 217 177 spigot;
+#X obj 74 188 metro 250;
+#X obj 58 221 count 3;
+#X obj 29 126 t b b;
+#X msg 29 189 reset;
+#X obj 217 199 s \$0-ccNumberLearn;
+#X obj 162 75 pipe 1000;
+#X msg 255 74 1;
+#X msg 274 118 0;
+#X msg 74 150 0;
+#X msg 106 150 1;
+#X obj 58 251 sel 0 1 2;
+#X obj 58 281 s \$0lite1;
+#X obj 138 281 s \$0lite2;
+#X obj 218 281 s \$0lite3;
+#X connect 0 0 2 0;
+#X connect 1 0 8 0;
+#X connect 1 0 9 0;
+#X connect 1 0 12 0;
+#X connect 2 0 7 0;
+#X connect 3 0 4 0;
+#X connect 4 0 13 0;
+#X connect 5 0 6 0;
+#X connect 5 1 11 0;
+#X connect 6 0 4 0;
+#X connect 8 0 5 0;
+#X connect 8 0 10 0;
+#X connect 9 0 2 1;
+#X connect 10 0 2 1;
+#X connect 11 0 3 0;
+#X connect 12 0 3 0;
+#X connect 13 0 14 0;
+#X connect 13 1 15 0;
+#X connect 13 2 16 0;
+#X restore 178 180 pd midiLearn;
+#X obj 337 229 ==;
+#X obj 352 101 div 16;
+#X obj 352 161 ==;
+#X obj 368 139 r \$0devNo;
+#X obj 443 115 mod 16;
+#X obj 413 85 t f f;
+#X obj 349 566 list append;
+#X obj 333 611 s;
+#X obj 443 135 s \$0channel;
+#X msg 224 287 set \$1;
+#X obj 300 365 s \$0data;
+#X obj 210 467 r \$0data;
+#X obj 333 431 r \$0data;
+#X obj 493 17 loadbang;
+#X msg 493 39 1;
+#X obj 391 544 t b f;
+#X obj 391 522 r \$0channel;
+#X obj 352 120 + 1;
+#X obj 349 500 list append \$2;
+#X obj 10 570 r \$1/getControls;
+#X obj 10 620 s \$1/controlsList;
+#X obj 10 594 list append \$2;
+#X obj 224 307 s \$1\$2/GUIR;
+#X obj 210 567 s \$1\$2;
+#X obj 224 338 r \$1\$2/GUI;
+#X msg 349 587 symbol \$1\$2/Ch\$3;
+#X obj 349 478 list append \$1;
+#X text 208 594 Omni;
+#X obj 10 492 r \$1/setChannel;
+#X obj 10 517 s \$0channel;
+#X obj 51 31 cnv 12 75 12 empty empty \$2 2 7 0 11 -83692 -262144 0
+;
+#X obj 32 129 sft.commun \$2-cc \$0;
+#X obj 32 151 sft.commun \$2-device \$0;
+#X obj 315 98 t a;
+#X obj 268 98 t a;
+#X obj 352 69 t a;
+#X obj 198 1 r sft.ctlin;
+#X obj 198 28 unpack f f f;
+#X obj 493 65 s \$0channel;
+#X obj 222 493 outlet;
+#X obj 39 327 sft.originator \$1 \$0;
+#X obj 51 98 cnv 10 75 10 empty empty \$1 1 6 0 8 -66577 -171136 0
+;
+#X connect 0 0 43 0;
+#X connect 2 0 12 1;
+#X connect 6 0 46 0;
+#X connect 6 1 45 0;
+#X connect 6 2 47 0;
+#X connect 7 0 44 0;
+#X connect 8 0 12 0;
+#X connect 9 0 21 0;
+#X connect 9 0 22 0;
+#X connect 10 0 9 0;
+#X connect 12 0 9 1;
+#X connect 13 0 29 0;
+#X connect 14 0 8 1;
+#X connect 15 0 14 1;
+#X connect 16 0 20 0;
+#X connect 17 0 13 0;
+#X connect 17 1 16 0;
+#X connect 18 0 37 0;
+#X connect 21 0 34 0;
+#X connect 23 0 35 0;
+#X connect 23 0 51 0;
+#X connect 24 0 19 0;
+#X connect 25 0 26 0;
+#X connect 26 0 50 0;
+#X connect 27 0 38 0;
+#X connect 27 1 18 1;
+#X connect 28 0 27 0;
+#X connect 29 0 14 0;
+#X connect 30 0 18 0;
+#X connect 31 0 33 0;
+#X connect 33 0 32 0;
+#X connect 36 0 22 0;
+#X connect 37 0 19 1;
+#X connect 38 0 30 0;
+#X connect 40 0 41 0;
+#X connect 43 0 0 0;
+#X connect 44 0 7 0;
+#X connect 45 0 11 0;
+#X connect 45 0 8 0;
+#X connect 46 0 10 0;
+#X connect 47 0 17 0;
+#X connect 48 0 49 0;
+#X connect 49 0 46 0;
+#X connect 49 1 45 0;
+#X connect 49 2 47 0;
+#X coords 0 -1 1 1 77 79 2 50 30;
diff --git a/controctopus/constrain-help.pd b/controctopus/constrain-help.pd
new file mode 100644
index 0000000..ed0f0ae
--- /dev/null
+++ b/controctopus/constrain-help.pd
@@ -0,0 +1,34 @@
+#N canvas 392 32 609 332 10;
+#X obj 183 92 sft.fxs.zxh /main /zxhA;
+#X obj 28 103 s PDOSC;
+#X msg 28 78 /main/zhzxh \$1;
+#X obj 31 33 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
+-1 -1 0 1;
+#X obj 28 253 s PDOSC;
+#X obj 31 183 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
+-1 -1 0 1;
+#X msg 28 228 /main/zhzxh-normalized \$1;
+#X obj 268 173 s PDOSC;
+#X obj 271 63 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
+-1 -1 2100 1;
+#X obj 268 126 hotpack f f;
+#X obj 271 93 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144
+-1 -1 7100 1;
+#X obj 267 206 r PDOSC;
+#X obj 267 275 prepent set;
+#X msg 267 296 413.386 1397.64;
+#X text 36 54 Deprecated;
+#X text 37 206 For 0-1 control;
+#X msg 268 148 /main/zxhA-zhzxhness-constrain \$1 \$2;
+#X obj 267 245 deeprouteOSC /main/zxhA-zhzxhness-constrained-to;
+#X connect 2 0 1 0;
+#X connect 3 0 2 0;
+#X connect 5 0 6 0;
+#X connect 6 0 4 0;
+#X connect 8 0 9 0;
+#X connect 9 0 16 0;
+#X connect 10 0 9 1;
+#X connect 11 0 17 0;
+#X connect 12 0 13 0;
+#X connect 16 0 7 0;
+#X connect 17 0 12 0;
diff --git a/controctopus/controctopus-help.pd b/controctopus/controctopus-help.pd
new file mode 100644
index 0000000..83a61fb
--- /dev/null
+++ b/controctopus/controctopus-help.pd
@@ -0,0 +1,72 @@
+#N canvas 154 46 1116 743 10;
+#X obj 66 220 midi-tentacle /uc33 /Knob1 /modular;
+#X obj 67 12 cnv 15 340 170 empty empty Virtual_UC-33 20 12 0 14 -233017
+-66577 0;
+#X floatatom 310 148 5 0 0 0 - - -;
+#X obj 284 33 vsl 15 128 0 1 0 0 /uc33/Slider1/GUI /uc33/Slider1/GUIR
+Slider1 0 -9 0 10 -1 -159808 -1 0 1;
+#X obj 85 80 knob 32 32 0 1 0 0 /uc33/Knob1/GUI /uc33/Knob1/GUIR Knob1
+0 -8 193 11 -262144 -159808 -1 0 1;
+#X floatatom 128 148 5 0 0 0 - - -;
+#X obj 72 365 cnv 15 320 300 empty empty littlesynth-A 20 12 0 14 -232576
+-66577 0;
+#X obj 157 456 hsl 128 20 0 5000 0 0 \$0release \$0releaseR release
+-2 -8 0 10 -203904 -1 -1 0 1;
+#X obj 195 502 r \$0release;
+#X obj 108 502 r \$0filterCut;
+#X obj 157 416 hsl 128 20 0 20000 0 0 \$0filterCut \$0filterCutR filter-cutoff
+-2 -8 0 10 -261234 -1 -1 0 1;
+#N canvas 0 22 450 300 littlesynthA 0;
+#X obj 49 37 inlet;
+#X obj 191 39 inlet;
+#X restore 108 556 pd littlesynthA;
+#X text 412 82 "Dev" is the device number \, as defined in the Pd MIDI
+preferences;
+#X text 443 231 "Omni" means the midi-tentacle will receive all channels
+and transmit to only one OSC address. "Ch.#" means the midi-tentacle
+will receive each channel and transmit it to an independently assigned
+OSC address. You can think of the radiobuttons as "pages"[1] - flip
+through them with the tentacle-pager:;
+#X text 435 358 [1] Though "Omni" is a special page that necessarily
+blocks all other channels (but they'll still remember their settings!)
+;
+#X obj 540 307 tentacle-pager /uc33;
+#X obj 245 220 midi-tentacle /uc33 /Slider1 /modular;
+#X obj 535 433 polaroid /uc33 \$0A;
+#X obj 518 505 sft.originator /uc33 \$0A;
+#X obj 76 622 sft.commun.sc.ez \$0B /littlesynthA filterCut 0 20000
+;
+#X obj 76 642 sft.commun.sc.ez \$0B /littlesynthA release 0 5000;
+#X obj 76 602 sft.originator /modular \$0B;
+#X text 668 495 [2];
+#X obj -303 -19 cnv 15 300 30 empty empty Controctopus_Basic_Overview
+20 12 0 14 -1721 -262144 0;
+#X text 431 661 [2] please disregard the \$0A and \$0B \, they're just
+to allow me to show everything in one patch;
+#X obj 261 557 polaroid /modular \$0B;
+#X text -298 44 1);
+#X text -298 208 2);
+#X text -296 361 3);
+#X text -297 385 That should do it.;
+#X text 439 529 Use [polaroid] to save controller maps separately from
+patch presets \, or [careGUI] to save everything together.;
+#X text -298 230 First \, click any of the yellow "get" buttons to
+populate the midi-tentacle's popup with all controllable parameters
+under the parent you specified (here \, it's /modular);
+#X obj 128 57 cc-learner /uc33 /Knob1;
+#X obj 310 57 cc-learner /uc33 /Slider1;
+#X text -295 11 2008 Luke Iannini \, proyekto.net tag sndrft;
+#X text -298 64 Set CC number of the MIDI controller you'd like cc-learner
+to represent \, or click the red button to "Learn" the controller (click
+\, then move the physical control);
+#X text 64 304 called [midi-tentacle /uc33 /Knob1 /modular];
+#X text 69 183 called [cc-learner /uc33 /Knob1];
+#X text 413 129 The pdgui knobs and sliders work like virtual versions
+of your hardware (helpful for testing). Look at their properties to
+see how they interface with cc-learner.;
+#X text 64 324 "/modular" is the group (as defined by sft.originator)
+that I want to address;
+#X connect 8 0 11 1;
+#X connect 9 0 11 0;
+#X connect 32 0 5 0;
+#X connect 33 0 2 0;
diff --git a/controctopus/controctopus-multi-help.pd b/controctopus/controctopus-multi-help.pd
new file mode 100644
index 0000000..a14ba7b
--- /dev/null
+++ b/controctopus/controctopus-multi-help.pd
@@ -0,0 +1,17 @@
+#N canvas 137 140 680 506 10;
+#X obj 112 93 hradio 15 1 0 8 empty empty empty 0 -8 0 10 -262144 -1
+-1 0;
+#X obj 112 112 + 1;
+#X obj 112 133 s /uc33/demux;
+#X obj 101 205 midi-tentacle-multi /uc33 /Knob1 /drummr;
+#X obj 32 385 sft.originator /drummr1 \$0A;
+#X obj 32 405 sft.commun.sc.ez \$0A /noiseA filterCut 0 20000;
+#X obj 32 425 sft.commun.sc.ez \$0A /noiseA release 0 5000;
+#X obj 329 385 sft.originator /drummr2 \$0B;
+#X obj 329 405 sft.commun.sc.ez \$0B /noiseA filterCut 0 20000;
+#X obj 329 425 sft.commun.sc.ez \$0B /noiseA release 0 5000;
+#X text 289 200 midi-tentacle-multi allows you to address multiple
+identical sequentially-named groups \, like /synthsystem1 \, /synthsystem2
+\, ... /synthsystemn.;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
diff --git a/controctopus/midi-tentacle-multi.pd b/controctopus/midi-tentacle-multi.pd
new file mode 100644
index 0000000..b2214ab
--- /dev/null
+++ b/controctopus/midi-tentacle-multi.pd
@@ -0,0 +1,254 @@
+#N canvas 568 138 575 657 10;
+#X obj 141 91 cnv 15 158 78 empty empty \$1\$2->\$3 4 14 0 10 -86277
+-260097 0;
+#X obj 145 118 popup 150 25 #ee0000 $#++#$~~~~~> /littlesynthA-filterCut
+/littlesynthA-release /littlesynthA-filterCut /littlesynthA-release
+/littlesynthA-filterCut /littlesynthA-release /littlesynthA-filterCut
+/littlesynthA-release /littlesynthA-filterCut /littlesynthA-release
+/littlesynthA-filterCut /littlesynthA-release /littlesynthA-filterCut
+/littlesynthA-release /littlesynthA-filterCut /littlesynthA-release
+/littlesynthA-filterCut /littlesynthA-release;
+#X obj 145 2 r sft.paramList;
+#X obj 65 56 r \$0popup;
+#X obj 203 508 s PDOSC;
+#X obj 203 480 prepent;
+#X obj 152 146 hradio 10 1 0 8 \$0chRow1 \$0chRow1R empty 0 -8 0 10
+-118016 -62784 -166441 0;
+#X obj 152 156 hradio 10 1 0 8 \$0chRow2 \$0chRow2R empty 0 -8 0 10
+-118016 -118016 -166441 0;
+#N canvas 674 341 593 450 2RowRadio 0;
+#X obj 27 287 r \$0chRow1;
+#X obj 277 287 r \$0chRow2;
+#X obj 27 377 s \$0chRow1R;
+#X obj 277 378 s \$0chRow2R;
+#X obj 297 73 r \$0chRow1;
+#X obj 397 73 r \$0chRow2;
+#X obj 349 179 s \$0channel;
+#X obj 25 1 r \$0channelR;
+#X obj 25 57 moses 9;
+#X obj 69 80 - 9;
+#X obj 25 124 s \$0chRow1R;
+#X obj 69 102 s \$0chRow2R;
+#X obj 25 89 - 1;
+#X obj 25 30 clip 1 16;
+#X obj 397 107 + 8;
+#X obj 297 106 + 0;
+#X obj 349 207 r \$0channel;
+#X msg 349 250 label Ch.\$1;
+#X obj 349 272 s \$0channelDisp;
+#X obj 349 228 + 1;
+#X obj 452 189 s \$0channelSet;
+#X obj 349 150 t a a;
+#X obj 452 166 + 1;
+#X msg 27 315 color -7.39328e+06 18 1;
+#X msg 27 348 color -7.39328e+06 -7.39328e+06 1;
+#X msg 277 315 color -7.39328e+06 18 1;
+#X msg 277 348 color -7.39328e+06 -7.39328e+06 1;
+#X connect 0 0 23 0;
+#X connect 0 0 24 0;
+#X connect 1 0 25 0;
+#X connect 1 0 26 0;
+#X connect 4 0 15 0;
+#X connect 5 0 14 0;
+#X connect 7 0 13 0;
+#X connect 8 0 12 0;
+#X connect 8 1 9 0;
+#X connect 9 0 11 0;
+#X connect 12 0 10 0;
+#X connect 13 0 8 0;
+#X connect 14 0 21 0;
+#X connect 15 0 21 0;
+#X connect 16 0 19 0;
+#X connect 17 0 18 0;
+#X connect 19 0 17 0;
+#X connect 21 0 6 0;
+#X connect 21 1 22 0;
+#X connect 22 0 20 0;
+#X connect 23 0 2 0;
+#X connect 24 0 3 0;
+#X connect 25 0 3 0;
+#X connect 26 0 2 0;
+#X restore 31 383 pd 2RowRadio;
+#X obj 235 149 cnv 15 37 15 empty \$0channelDisp Ch.1 2 7 0 10 -49933
+-204544 0;
+#N canvas 259 247 494 344 init 0;
+#X obj 41 141 s \$0assgnList;
+#X msg 41 119 a b c d e f g h i j k l m n o p;
+#X msg 288 122 1;
+#X obj 288 143 s \$0channelR;
+#X msg 160 243 options;
+#X obj 160 265 s \$0popup;
+#X obj 41 97 initbang;
+#X obj 288 101 initbang;
+#X obj 160 187 initbang;
+#X msg 160 209 bgcolour #ee0000;
+#X msg 160 226 name $#++#$~~~~~>;
+#X connect 1 0 0 0;
+#X connect 2 0 3 0;
+#X connect 4 0 5 0;
+#X connect 6 0 1 0;
+#X connect 7 0 2 0;
+#X connect 8 0 10 0;
+#X connect 8 0 4 0;
+#X connect 8 0 9 0;
+#X connect 9 0 5 0;
+#X connect 10 0 5 0;
+#X restore 31 361 pd init;
+#X obj 288 187 s \$0popOut;
+#X obj 288 64 r \$0setPopup;
+#N canvas 667 135 255 293 memento 0;
+#X obj 14 10 sft.originator \$1 \$0;
+#X obj 14 55 r \$0assgnList;
+#X obj 14 109 s \$0assgnList;
+#X obj 15 175 r \$0params;
+#X obj 15 259 s \$0popup;
+#X obj 14 82 sft.commun \$2-assignments \$0;
+#X obj 15 207 sft.commun \$2-parameters \$0;
+#X obj 15 231 list trim;
+#X connect 1 0 5 0;
+#X connect 3 0 6 0;
+#X connect 5 0 2 0;
+#X connect 6 0 7 0;
+#X connect 7 0 4 0;
+#X restore 31 339 pd memento;
+#X obj 156 69 s \$0params;
+#N canvas 55 208 632 552 listops 0;
+#X obj 35 207 list-idx;
+#X obj 35 119 r \$0channel;
+#X obj 35 182 list;
+#X obj 35 143 t b f;
+#X obj 402 256 list-delete;
+#X obj 330 355 list-insert;
+#X obj 474 230 r \$0channel;
+#X obj 366 301 r \$0channel;
+#X obj 402 209 list;
+#X obj 425 186 r \$0assgnList;
+#X obj 330 193 t a b;
+#X obj 330 381 s \$0assgnList;
+#X obj 88 166 r \$0assgnList;
+#X obj 330 161 r \$0popOut;
+#X text 43 239 don't set the placeholders (see init);
+#X obj 35 284 route a b c d;
+#X obj 35 323 route e f g h;
+#X obj 35 363 route i j k l;
+#X obj 35 403 route m n o p;
+#X obj 35 256 list trim;
+#X obj 35 483 s \$0setPopup;
+#X obj 35 443 list;
+#X obj 142 379 s \$0popup;
+#X msg 142 357 name $#++#$;
+#X connect 0 0 19 0;
+#X connect 1 0 3 0;
+#X connect 2 0 0 0;
+#X connect 3 0 2 0;
+#X connect 3 1 0 1;
+#X connect 4 0 5 2;
+#X connect 5 0 11 0;
+#X connect 6 0 4 1;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 8 1;
+#X connect 10 0 5 0;
+#X connect 10 1 8 0;
+#X connect 12 0 2 1;
+#X connect 13 0 10 0;
+#X connect 15 0 23 0;
+#X connect 15 1 23 0;
+#X connect 15 2 23 0;
+#X connect 15 3 23 0;
+#X connect 15 4 16 0;
+#X connect 16 0 23 0;
+#X connect 16 1 23 0;
+#X connect 16 2 23 0;
+#X connect 16 3 23 0;
+#X connect 16 4 17 0;
+#X connect 17 0 23 0;
+#X connect 17 1 23 0;
+#X connect 17 2 23 0;
+#X connect 17 3 23 0;
+#X connect 17 4 18 0;
+#X connect 18 0 23 0;
+#X connect 18 1 23 0;
+#X connect 18 2 23 0;
+#X connect 18 3 23 0;
+#X connect 18 4 21 0;
+#X connect 19 0 15 0;
+#X connect 21 0 20 0;
+#X connect 23 0 22 0;
+#X restore 31 315 pd listops;
+#X obj 145 187 route bang;
+#N canvas 713 160 242 368 16channelOuts 0;
+#X obj 18 23 rchannel-multi \$0 \$1 \$2 \$3 \$4 1;
+#X obj 18 43 rchannel-multi \$0 \$1 \$2 \$3 \$4 2;
+#X obj 18 63 rchannel-multi \$0 \$1 \$2 \$3 \$4 3;
+#X obj 18 83 rchannel-multi \$0 \$1 \$2 \$3 \$4 4;
+#X obj 18 103 rchannel-multi \$0 \$1 \$2 \$3 \$4 5;
+#X obj 18 123 rchannel-multi \$0 \$1 \$2 \$3 \$4 6;
+#X obj 18 143 rchannel-multi \$0 \$1 \$2 \$3 \$4 7;
+#X obj 18 163 rchannel-multi \$0 \$1 \$2 \$3 \$4 8;
+#X obj 18 183 rchannel-multi \$0 \$1 \$2 \$3 \$4 9;
+#X obj 18 203 rchannel-multi \$0 \$1 \$2 \$3 \$4 10;
+#X obj 18 223 rchannel-multi \$0 \$1 \$2 \$3 \$4 11;
+#X obj 18 263 rchannel-multi \$0 \$1 \$2 \$3 \$4 13;
+#X obj 18 283 rchannel-multi \$0 \$1 \$2 \$3 \$4 14;
+#X obj 18 303 rchannel-multi \$0 \$1 \$2 \$3 \$4 15;
+#X obj 18 323 rchannel-multi \$0 \$1 \$2 \$3 \$4 16;
+#X obj 18 243 rchannel-multi \$0 \$1 \$2 \$3 \$4 12;
+#X restore 31 293 pd 16channelOuts;
+#X obj 11 433 r \$1/gotoChannel;
+#X obj 11 458 s \$0channelR;
+#X obj 145 24 list-extend;
+#X obj 145 45 prepent options;
+#X obj 281 151 bng 8 250 50 0 \$0getParams \$0getParamsR get 0 12 1
+7 -249808 -1 -262144;
+#X obj 11 507 r \$0getParams;
+#X obj 203 433 r \$1\$2;
+#X obj 26 550 loadbang;
+#X obj 26 573 list append \$3 1;
+#X obj 341 364 t b a;
+#X obj 287 395 symbol /none;
+#X obj 341 343 r \$1/demux;
+#X obj 287 418 list prepend 1;
+#X obj 287 439 list prepend \$3;
+#X msg 287 463 \$1\$2\$3;
+#X obj 287 283 r \$0popOut;
+#X obj 387 439 s \$0demuxDisplay;
+#X obj 280 96 cnv 15 15 15 empty \$0demuxDisplay 1 1 9 0 11 -261234
+-33289 0;
+#X obj 387 395 list-l2s;
+#X obj 387 418 prepent label;
+#X obj 11 620 s;
+#X msg 26 597 symbol \$1\$2/getParams;
+#X obj 11 530 t b b;
+#X obj 231 23 r \$1/clearParams;
+#X obj 49 530 s \$1/clearParams;
+#X connect 1 0 16 0;
+#X connect 1 1 11 0;
+#X connect 2 0 20 0;
+#X connect 3 0 1 0;
+#X connect 5 0 4 0;
+#X connect 12 0 1 1;
+#X connect 18 0 19 0;
+#X connect 20 0 21 0;
+#X connect 21 0 1 0;
+#X connect 21 0 14 0;
+#X connect 23 0 40 0;
+#X connect 24 0 5 0;
+#X connect 25 0 26 0;
+#X connect 26 0 39 0;
+#X connect 27 0 28 0;
+#X connect 27 1 30 1;
+#X connect 27 1 36 0;
+#X connect 28 0 30 0;
+#X connect 29 0 27 0;
+#X connect 30 0 31 0;
+#X connect 31 0 32 0;
+#X connect 32 0 5 1;
+#X connect 33 0 28 0;
+#X connect 36 0 37 0;
+#X connect 37 0 34 0;
+#X connect 39 0 38 1;
+#X connect 40 0 38 0;
+#X connect 40 1 42 0;
+#X connect 41 0 20 1;
+#X coords 0 -1 1 1 160 80 2 140 90;
diff --git a/controctopus/midi-tentacle.pd b/controctopus/midi-tentacle.pd
new file mode 100644
index 0000000..60244ba
--- /dev/null
+++ b/controctopus/midi-tentacle.pd
@@ -0,0 +1,272 @@
+#N canvas 228 148 514 657 10;
+#X obj 141 91 cnv 15 158 78 empty empty \$1\$2->\$3 4 14 0 10 -86277
+-260097 0;
+#X obj 145 118 popup 150 25 #ee0000 No-Destination;
+#X obj 65 56 r \$0popup;
+#X obj 203 508 s PDOSC;
+#X obj 203 480 prepent;
+#X obj 157 146 hradio 10 1 0 8 \$0chRow1 \$0chRow1R empty 0 -8 0 10
+-118016 -62784 -166441 1;
+#X obj 157 156 hradio 10 1 0 8 \$0chRow2 \$0chRow2R empty 0 -8 0 10
+-118016 -118016 -166441 7;
+#X obj 240 149 cnv 15 37 15 empty \$0channelDisp Ch.2 2 7 0 10 -66577
+-225280 0;
+#N canvas 259 247 494 344 init 0;
+#X obj 41 141 s \$0assgnList;
+#X obj 288 143 s \$0channelR;
+#X msg 160 243 options;
+#X obj 160 265 s \$0popup;
+#X obj 41 97 initbang;
+#X obj 288 101 initbang;
+#X obj 160 187 initbang;
+#X msg 160 209 bgcolour #ee0000;
+#X msg 160 226 name $#++#$~~~~~>;
+#X msg 41 119 a b c d e f g h i j k l m n o p q;
+#X msg 288 122 0;
+#X connect 2 0 3 0;
+#X connect 4 0 9 0;
+#X connect 5 0 10 0;
+#X connect 6 0 8 0;
+#X connect 6 0 2 0;
+#X connect 6 0 7 0;
+#X connect 7 0 3 0;
+#X connect 8 0 3 0;
+#X connect 9 0 0 0;
+#X connect 10 0 1 0;
+#X restore 31 361 pd init;
+#X obj 338 283 r \$0popOut;
+#X obj 288 187 s \$0popOut;
+#X obj 288 64 r \$0setPopup;
+#N canvas 667 135 255 293 memento 0;
+#X obj 14 55 r \$0assgnList;
+#X obj 14 109 s \$0assgnList;
+#X obj 15 175 r \$0params;
+#X obj 15 259 s \$0popup;
+#X obj 14 82 sft.commun \$2-assignments \$0;
+#X obj 15 207 sft.commun \$2-parameters \$0;
+#X obj 15 231 list trim;
+#X obj 14 10 sft.originator \$1 \$0;
+#X connect 0 0 4 0;
+#X connect 2 0 5 0;
+#X connect 4 0 1 0;
+#X connect 5 0 6 0;
+#X connect 6 0 3 0;
+#X restore 31 339 pd memento;
+#X obj 156 69 s \$0params;
+#N canvas 738 69 632 552 listops 0;
+#X obj 35 207 list-idx;
+#X obj 35 119 r \$0channel;
+#X obj 35 182 list;
+#X obj 35 143 t b f;
+#X obj 393 257 list-delete;
+#X obj 330 355 list-insert;
+#X obj 424 231 r \$0channel;
+#X obj 361 301 r \$0channel;
+#X obj 393 210 list;
+#X obj 414 187 r \$0assgnList;
+#X obj 330 193 t a b;
+#X obj 330 381 s \$0assgnList;
+#X obj 88 165 r \$0assgnList;
+#X obj 330 161 r \$0popOut;
+#X text 43 239 don't set the placeholders (see init);
+#X obj 35 284 route a b c d;
+#X obj 35 323 route e f g h;
+#X obj 35 363 route i j k l;
+#X obj 35 403 route m n o p;
+#X obj 35 256 list trim;
+#X obj 35 504 s \$0setPopup;
+#X obj 35 464 list;
+#X obj 142 379 s \$0popup;
+#X obj 35 437 route q;
+#X msg 142 357 name No-Destination;
+#X connect 0 0 19 0;
+#X connect 1 0 3 0;
+#X connect 2 0 0 0;
+#X connect 3 0 2 0;
+#X connect 3 1 0 1;
+#X connect 4 0 5 2;
+#X connect 5 0 11 0;
+#X connect 6 0 4 1;
+#X connect 7 0 5 1;
+#X connect 8 0 4 0;
+#X connect 9 0 8 1;
+#X connect 10 0 5 0;
+#X connect 10 1 8 0;
+#X connect 12 0 2 1;
+#X connect 13 0 10 0;
+#X connect 15 0 24 0;
+#X connect 15 1 24 0;
+#X connect 15 2 24 0;
+#X connect 15 3 24 0;
+#X connect 15 4 16 0;
+#X connect 16 0 24 0;
+#X connect 16 1 24 0;
+#X connect 16 2 24 0;
+#X connect 16 3 24 0;
+#X connect 16 4 17 0;
+#X connect 17 0 24 0;
+#X connect 17 1 24 0;
+#X connect 17 2 24 0;
+#X connect 17 3 24 0;
+#X connect 17 4 18 0;
+#X connect 18 0 24 0;
+#X connect 18 1 24 0;
+#X connect 18 2 24 0;
+#X connect 18 3 24 0;
+#X connect 18 4 23 0;
+#X connect 19 0 15 0;
+#X connect 21 0 20 0;
+#X connect 23 0 24 0;
+#X connect 23 1 21 0;
+#X connect 24 0 22 0;
+#X restore 31 315 pd listops;
+#X obj 145 187 route bang;
+#X obj 31 478 s \$0channelR;
+#X obj 145 24 list-extend;
+#X obj 145 45 prepent options;
+#X obj 283 151 bng 8 250 50 0 \$0getParams \$0getParamsR get 0 12 1
+7 -249808 -1 -262144;
+#X obj 31 527 r \$0getParams;
+#X obj 203 353 r \$1\$2;
+#X obj 338 439 list prepend \$3;
+#X msg 338 463 \$1\$2;
+#N canvas 713 160 242 368 16channelOuts 0;
+#X obj 18 23 rchannel \$0 \$1 \$2 \$3 \$4 1;
+#X obj 18 43 rchannel \$0 \$1 \$2 \$3 \$4 2;
+#X obj 18 63 rchannel \$0 \$1 \$2 \$3 \$4 3;
+#X obj 18 83 rchannel \$0 \$1 \$2 \$3 \$4 4;
+#X obj 18 103 rchannel \$0 \$1 \$2 \$3 \$4 5;
+#X obj 18 123 rchannel \$0 \$1 \$2 \$3 \$4 6;
+#X obj 18 143 rchannel \$0 \$1 \$2 \$3 \$4 7;
+#X obj 18 163 rchannel \$0 \$1 \$2 \$3 \$4 8;
+#X obj 18 183 rchannel \$0 \$1 \$2 \$3 \$4 9;
+#X obj 18 203 rchannel \$0 \$1 \$2 \$3 \$4 10;
+#X obj 18 223 rchannel \$0 \$1 \$2 \$3 \$4 11;
+#X obj 18 263 rchannel \$0 \$1 \$2 \$3 \$4 13;
+#X obj 18 283 rchannel \$0 \$1 \$2 \$3 \$4 14;
+#X obj 18 303 rchannel \$0 \$1 \$2 \$3 \$4 15;
+#X obj 18 323 rchannel \$0 \$1 \$2 \$3 \$4 16;
+#X obj 18 243 rchannel \$0 \$1 \$2 \$3 \$4 12;
+#X restore 31 293 pd 16channelOuts;
+#X obj 31 620 s \$3/getParams;
+#X obj 31 573 t b b;
+#X obj 220 24 r \$1/clearParams;
+#X obj 73 573 s \$1/clearParams;
+#X obj 145 150 hradio 12 1 0 1 \$0chRow0 \$0chRow0R empty 0 -8 0 10
+-166441 -166441 -166441 0;
+#X obj 203 442 spigot 0;
+#N canvas 0 65 921 562 3RowRadio 0;
+#X obj 258 324 r \$0chRow1;
+#X obj 508 334 r \$0chRow2;
+#X obj 258 454 s \$0chRow1R;
+#X obj 508 455 s \$0chRow2R;
+#X obj 297 53 r \$0chRow1;
+#X obj 397 53 r \$0chRow2;
+#X obj 368 189 s \$0channel;
+#X obj 25 1 r \$0channelR;
+#X obj 64 77 moses 9;
+#X obj 108 100 - 9;
+#X obj 64 144 s \$0chRow1R;
+#X obj 108 122 s \$0chRow2R;
+#X obj 64 109 - 1;
+#X obj 397 87 + 8;
+#X obj 297 86 + 0;
+#X obj 379 235 r \$0channel;
+#X msg 452 280 label Ch.\$1;
+#X obj 379 302 s \$0channelDisp;
+#X obj 433 167 s \$0channelSet;
+#X msg 258 372 color -7.39328e+06 18 1;
+#X msg 268 395 color -7.39328e+06 -7.39328e+06 1;
+#X msg 508 372 color -7.39328e+06 18 1;
+#X msg 518 395 color -7.39328e+06 -7.39328e+06 1;
+#X obj 349 128 + 1;
+#X obj 379 258 sel 0;
+#X msg 379 280 label Omni;
+#X obj 217 53 r \$0chRow0;
+#X obj 28 334 r \$0chRow0;
+#X obj 25 54 moses 1;
+#X obj 25 166 s \$0chRow0R;
+#X obj 28 454 s \$0chRow0R;
+#X msg 284 419 color 1 1 1;
+#X msg 38 395 color 1 1 1;
+#X msg 534 419 color 1 1 1;
+#X obj 288 167 == 0;
+#X obj 288 189 s \$0omni;
+#X obj 349 150 t a a a;
+#X obj 559 199 r \$0omni;
+#X obj 559 222 sel 0 1;
+#X obj 559 282 s \$0channelDisp;
+#X msg 559 250 color 2 7;
+#X msg 623 250 color 2 14;
+#X msg 28 372 color 14 18 1;
+#X connect 0 0 19 0;
+#X connect 0 0 20 0;
+#X connect 0 0 31 0;
+#X connect 1 0 21 0;
+#X connect 1 0 22 0;
+#X connect 1 0 33 0;
+#X connect 4 0 14 0;
+#X connect 5 0 13 0;
+#X connect 7 0 28 0;
+#X connect 8 0 12 0;
+#X connect 8 1 9 0;
+#X connect 9 0 11 0;
+#X connect 12 0 10 0;
+#X connect 13 0 23 0;
+#X connect 14 0 23 0;
+#X connect 15 0 24 0;
+#X connect 16 0 17 0;
+#X connect 19 0 2 0;
+#X connect 20 0 3 0;
+#X connect 21 0 3 0;
+#X connect 22 0 2 0;
+#X connect 23 0 36 0;
+#X connect 24 0 25 0;
+#X connect 24 1 16 0;
+#X connect 25 0 17 0;
+#X connect 26 0 36 0;
+#X connect 27 0 42 0;
+#X connect 27 0 32 0;
+#X connect 28 0 29 0;
+#X connect 28 1 8 0;
+#X connect 31 0 30 0;
+#X connect 32 0 2 0;
+#X connect 32 0 3 0;
+#X connect 33 0 30 0;
+#X connect 34 0 35 0;
+#X connect 36 0 34 0;
+#X connect 36 1 6 0;
+#X connect 36 2 18 0;
+#X connect 37 0 38 0;
+#X connect 38 0 40 0;
+#X connect 38 1 41 0;
+#X connect 40 0 39 0;
+#X connect 41 0 39 0;
+#X connect 42 0 30 0;
+#X restore 31 383 pd 3RowRadio;
+#X obj 248 403 r \$0omni;
+#X obj 31 433 r \$1/showChannel;
+#X obj 145 2 r \$3/paramsList;
+#X obj 31 456 clip 0 16;
+#X connect 1 0 15 0;
+#X connect 1 1 10 0;
+#X connect 2 0 1 0;
+#X connect 4 0 3 0;
+#X connect 9 0 22 0;
+#X connect 11 0 1 1;
+#X connect 17 0 18 0;
+#X connect 18 0 1 0;
+#X connect 18 0 13 0;
+#X connect 20 0 26 0;
+#X connect 21 0 30 0;
+#X connect 22 0 23 0;
+#X connect 23 0 4 1;
+#X connect 26 0 25 0;
+#X connect 26 1 28 0;
+#X connect 27 0 17 1;
+#X connect 30 0 4 0;
+#X connect 32 0 30 1;
+#X connect 33 0 35 0;
+#X connect 34 0 17 0;
+#X connect 35 0 16 0;
+#X coords 0 -1 1 1 160 80 2 140 90;
diff --git a/controctopus/note-learner.pd b/controctopus/note-learner.pd
new file mode 100644
index 0000000..0509556
--- /dev/null
+++ b/controctopus/note-learner.pd
@@ -0,0 +1,222 @@
+#N canvas 198 173 1083 643 10;
+#X obj 358 266 select;
+#X obj 388 327 f;
+#X msg 358 327 1;
+#X obj 358 359 pack;
+#X obj 358 297 t b b;
+#X msg 238 311 set \$1;
+#X obj 102 293 nbx 2 14 1 128 0 0 \$0-padNumber \$0-padNumberR Pad
+32 7 0 11 -154432 -1 -1 1 256;
+#X obj 102 276 nbx 2 14 0 127 0 0 \$0-noteNumber \$0-noteNumberLearn
+Note 32 7 0 11 -260624 -1 -1 0 256;
+#X obj 442 375 outlet;
+#X obj 137 263 bng 13 250 50 0 \$0-learnOn empty empty 0 -6 0 8 -259541
+-1 -1;
+#X obj 103 265 bng 8 250 50 0 empty empty empty 0 -6 0 8 -1 -262085
+-1;
+#X obj 114 265 bng 8 250 50 0 empty empty empty 0 -6 0 8 -1 -262085
+-1;
+#X obj 125 265 bng 8 250 50 0 empty empty empty 0 -6 0 8 -1 -262085
+-1;
+#X obj 412 250 r \$0-noteNumber;
+#X obj 238 286 r \$0-padNumber;
+#X obj 358 229 spigot;
+#X obj 152 263 nbx 2 13 1 64 0 0 \$0devNo \$1/devNo empty 0 -6 0 10
+-110565 -1 -1 1 256;
+#X msg 733 461 1;
+#X obj 733 493 pack;
+#X msg 792 445 set \$1;
+#X obj 804 337 r \$0-noteNumber;
+#X obj 792 421 r \$0-padNumber;
+#X obj 758 314 spigot;
+#X obj 722 62 polytouchin;
+#X obj 722 383 spigot;
+#X obj 733 435 t b f;
+#X obj 41 470 sft.originator \$1 \$0;
+#X obj 405 457 list;
+#X obj 398 386 t b l;
+#X obj 405 480 list trim;
+#X obj 405 432 r \$1/bangr;
+#X obj 398 410 s \$1/bang;
+#X obj 227 434 s lastPad;
+#X obj 41 411 sft.instance lnote;
+#X obj 41 436 s \$0-padNumberR;
+#X obj 722 284 / 127;
+#X obj 404 302 / 127;
+#X obj 227 407 spigot;
+#X obj 264 382 r lastPadTgl;
+#N canvas 73 463 470 331 midiLearn 0;
+#X text 288 89 Route Number;
+#X obj 24 18 r \$0-learnOn;
+#X obj 230 119 spigot;
+#X obj 267 95 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X obj 24 170 metro 250;
+#X obj 24 198 count 3;
+#X obj 24 227 route 0 1 2;
+#X obj 73 80 t b b;
+#X obj 24 145 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
+;
+#X msg 73 141 reset;
+#X text 337 62 Learn Time-Window;
+#X obj 230 141 s \$0-noteNumberLearn;
+#X obj 267 62 pipe 1000;
+#X obj 24 300 outlet;
+#X obj 48 280 outlet;
+#X obj 72 260 outlet;
+#X obj 230 14 inlet;
+#X connect 1 0 3 0;
+#X connect 1 0 8 0;
+#X connect 1 0 12 0;
+#X connect 2 0 11 0;
+#X connect 3 0 2 1;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 13 0;
+#X connect 6 1 14 0;
+#X connect 6 2 15 0;
+#X connect 7 0 9 0;
+#X connect 7 1 8 0;
+#X connect 8 0 4 0;
+#X connect 9 0 5 0;
+#X connect 12 0 3 0;
+#X connect 12 0 7 0;
+#X connect 16 0 2 0;
+#X restore 75 164 pd midiLearn;
+#X obj 336 106 t a;
+#X obj 365 106 t a;
+#X obj 395 106 t a;
+#X obj 347 55 notein;
+#X text 351 17 Intercepts for looping back MIDI (e.g. from sft.schoen)
+;
+#X obj 758 353 ==;
+#X obj 358 592 s;
+#X msg 374 570 symbol /sfs\$1/note/in;
+#X obj 374 547 r \$0-padNumber;
+#X obj 738 547 r \$0-padNumber;
+#X obj 722 590 s;
+#X msg 738 568 symbol /sfs\$1/polytouch/in;
+#X obj 395 138 div 16;
+#X obj 395 198 ==;
+#X obj 411 176 r \$0devNo;
+#X obj 486 152 mod 16;
+#X obj 456 122 t f f;
+#X obj 486 172 s \$0channel;
+#X obj 579 134 loadbang;
+#X msg 579 156 1;
+#X obj 395 157 + 1;
+#X obj 795 224 div 16;
+#X obj 795 284 ==;
+#X obj 811 262 r \$0devNo;
+#X obj 886 238 mod 16;
+#X obj 856 208 t f f;
+#X obj 886 258 s \$0channel;
+#X obj 979 220 loadbang;
+#X msg 979 242 1;
+#X obj 795 243 + 1;
+#X obj 405 504 s \$1\$2/note;
+#X obj 733 522 s \$1\$2/tch;
+#X obj 42 316 sft.commun \$2-channel \$0;
+#X obj 42 334 sft.commun \$2-note \$0;
+#X obj 42 352 sft.commun \$2-pad \$0;
+#X obj 722 166 t a;
+#X obj 758 166 t a;
+#X obj 794 166 t a;
+#X obj 722 408 t a;
+#X obj 418 327 sel 0;
+#X obj 459 327 s \$0polyRelay;
+#X obj 625 383 r \$0polyRelay;
+#X text 532 345 Relay initial velocity;
+#X text 532 361 to polytouch to remove;
+#X text 532 377 delay;
+#X obj 230 56 nr sft.notein 3;
+#X obj 814 62 nr sft.polytouchin 3;
+#X connect 0 0 4 0;
+#X connect 1 0 3 1;
+#X connect 1 0 79 0;
+#X connect 2 0 3 0;
+#X connect 2 0 37 0;
+#X connect 3 0 8 0;
+#X connect 3 0 28 0;
+#X connect 3 0 46 0;
+#X connect 4 0 2 0;
+#X connect 4 1 1 0;
+#X connect 5 0 2 0;
+#X connect 6 0 74 0;
+#X connect 7 0 73 0;
+#X connect 13 0 0 1;
+#X connect 14 0 5 0;
+#X connect 15 0 0 0;
+#X connect 16 0 72 0;
+#X connect 17 0 18 0;
+#X connect 18 0 71 0;
+#X connect 19 0 17 0;
+#X connect 20 0 45 1;
+#X connect 21 0 19 0;
+#X connect 22 0 45 0;
+#X connect 23 0 75 0;
+#X connect 23 1 76 0;
+#X connect 23 2 77 0;
+#X connect 24 0 78 0;
+#X connect 25 0 17 0;
+#X connect 25 1 18 1;
+#X connect 27 0 29 0;
+#X connect 28 0 31 0;
+#X connect 28 1 27 1;
+#X connect 29 0 70 0;
+#X connect 30 0 27 0;
+#X connect 33 0 34 0;
+#X connect 35 0 24 0;
+#X connect 36 0 1 1;
+#X connect 37 0 32 0;
+#X connect 38 0 37 1;
+#X connect 39 0 10 0;
+#X connect 39 1 11 0;
+#X connect 39 2 12 0;
+#X connect 40 0 15 0;
+#X connect 40 0 39 0;
+#X connect 41 0 36 0;
+#X connect 42 0 56 0;
+#X connect 43 0 40 0;
+#X connect 43 1 41 0;
+#X connect 43 2 42 0;
+#X connect 45 0 24 1;
+#X connect 47 0 46 1;
+#X connect 48 0 47 0;
+#X connect 49 0 51 0;
+#X connect 51 0 50 1;
+#X connect 52 0 60 0;
+#X connect 53 0 15 1;
+#X connect 54 0 53 1;
+#X connect 55 0 57 0;
+#X connect 56 0 52 0;
+#X connect 56 1 55 0;
+#X connect 58 0 59 0;
+#X connect 59 0 57 0;
+#X connect 60 0 53 0;
+#X connect 61 0 69 0;
+#X connect 62 0 22 1;
+#X connect 63 0 62 1;
+#X connect 64 0 66 0;
+#X connect 65 0 61 0;
+#X connect 65 1 64 0;
+#X connect 67 0 68 0;
+#X connect 68 0 66 0;
+#X connect 69 0 62 0;
+#X connect 72 0 16 0;
+#X connect 73 0 7 0;
+#X connect 74 0 6 0;
+#X connect 75 0 35 0;
+#X connect 76 0 22 0;
+#X connect 77 0 65 0;
+#X connect 78 0 25 0;
+#X connect 78 0 50 0;
+#X connect 79 1 80 0;
+#X connect 81 0 78 0;
+#X connect 85 0 40 0;
+#X connect 85 1 41 0;
+#X connect 85 2 42 0;
+#X connect 86 0 75 0;
+#X connect 86 1 76 0;
+#X connect 86 2 77 0;
+#X coords 0 -1 1 1 81 60 1 100 250;
diff --git a/controctopus/octomother-help.pd b/controctopus/octomother-help.pd
new file mode 100644
index 0000000..e36c00c
--- /dev/null
+++ b/controctopus/octomother-help.pd
@@ -0,0 +1,15 @@
+#N canvas 334 339 595 363 10;
+#X obj 20 178 octomother /uc33 /modular;
+#X obj 184 61 cc-learner /uc33 /Knob1;
+#X obj 275 60 cc-learner /uc33 /Knob2;
+#X obj 362 60 cc-learner /uc33 /Knob3;
+#X text 19 249 call like [octomother /uc33 /modular];
+#X text 8 8 Octomother generates a set of midi-tentacles automatically
+from a set of already-defined cc-learners.;
+#X obj 332 339 pddplink http://proyekto.net;
+#X text 272 326 2008 Luke Iannini \, tag sndrft;
+#X obj 450 60 cc-learner /uc33 /Knob4;
+#X obj 184 146 cc-learner /uc33 /Slider1;
+#X obj 274 146 cc-learner /uc33 /Slider2;
+#X obj 362 146 cc-learner /uc33 /Slider3;
+#X obj 450 146 cc-learner /uc33 /Slider4;
diff --git a/controctopus/octomother-multi.pd b/controctopus/octomother-multi.pd
new file mode 100644
index 0000000..409aaf9
--- /dev/null
+++ b/controctopus/octomother-multi.pd
@@ -0,0 +1,86 @@
+#N canvas 719 217 501 444 10;
+#X msg 35 269 obj \$1 \$2 midi-tentacle-multi \$3 \$4;
+#X obj 35 84 r \$1/controlsList;
+#X obj 35 110 list prepend \$1;
+#X obj 35 243 list prepend;
+#X obj 114 218 r \$0x;
+#X obj 35 195 list prepend;
+#X obj 114 171 r \$0y;
+#X obj 35 136 t a b;
+#X obj 251 71 f 0;
+#X obj 251 146 s \$0y;
+#X obj 283 71 + 1;
+#X obj 251 274 f 0;
+#X obj 283 274 + 1;
+#X obj 251 329 s \$0x;
+#X obj 79 136 s \$0count;
+#X obj 251 42 r \$0count;
+#X obj 251 243 r \$0count;
+#X obj 251 96 div 8;
+#X obj 315 274 mod 8;
+#N canvas 50 247 1320 500 \$0controls 0;
+#X restore 148 10 pd \$0controls;
+#X obj 339 311 loadbang;
+#X msg 339 338 clear;
+#X obj 339 362 s pd-\$0controls;
+#X obj 251 303 * 160;
+#X obj 251 120 * 80;
+#X msg 359 211 vis 1;
+#X obj 359 236 s pd-\$0controls;
+#X obj 182 219 s \$1/getControls;
+#X obj 359 189 r \$0show;
+#X obj 182 187 r \$0getControls;
+#X obj 35 295 list append \$2;
+#X obj 35 317 list trim;
+#X obj 35 340 s pd-\$0controls;
+#X obj 301 101 cnv 15 15 15 empty empty O 2 7 0 14 -231960 -66577 0
+;
+#X obj 312 101 cnv 15 15 15 empty empty C 2 7 0 14 -181753 -66577 0
+;
+#X obj 323 101 cnv 15 15 15 empty empty T 2 7 0 14 -232778 -66577 0
+;
+#X obj 334 101 cnv 15 15 15 empty empty O 2 7 0 14 -36361 -66577 0
+;
+#X obj 345 101 cnv 15 15 15 empty empty M 2 7 0 14 -32312 -66577 0
+;
+#X obj 356 101 cnv 15 15 15 empty empty O 2 7 0 14 -230614 -66577 0
+;
+#X obj 367 101 cnv 15 15 15 empty empty M 2 7 0 14 -230961 -66577 0
+;
+#X obj 378 101 cnv 14 14 15 empty empty empty 2 7 0 14 -221241 -66577
+0;
+#X obj 301 114 cnv 15 91 45 empty empty \$1 2 7 0 11 -20537 -150464
+0;
+#X obj 303 143 bng 15 250 50 0 \$0show \$0showR Show 17 7 0 11 -174336
+-1 -183899;
+#X obj 303 126 bng 15 250 50 0 \$0getControls \$0getControlsR Generate
+17 7 0 11 -49136 -1 -239456;
+#X connect 0 0 30 0;
+#X connect 1 0 2 0;
+#X connect 2 0 7 0;
+#X connect 3 0 0 0;
+#X connect 4 0 3 1;
+#X connect 5 0 3 0;
+#X connect 6 0 5 1;
+#X connect 7 0 5 0;
+#X connect 7 1 14 0;
+#X connect 8 0 10 0;
+#X connect 8 0 17 0;
+#X connect 10 0 8 1;
+#X connect 11 0 12 0;
+#X connect 11 0 23 0;
+#X connect 12 0 18 0;
+#X connect 15 0 8 0;
+#X connect 16 0 11 0;
+#X connect 17 0 24 0;
+#X connect 18 0 11 1;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 23 0 13 0;
+#X connect 24 0 9 0;
+#X connect 25 0 26 0;
+#X connect 28 0 25 0;
+#X connect 29 0 27 0;
+#X connect 30 0 31 0;
+#X connect 31 0 32 0;
+#X coords 0 -1 1 1 93 60 2 300 100;
diff --git a/controctopus/octomother.pd b/controctopus/octomother.pd
new file mode 100644
index 0000000..d69c2b7
--- /dev/null
+++ b/controctopus/octomother.pd
@@ -0,0 +1,86 @@
+#N canvas 719 217 501 444 10;
+#X obj 35 84 r \$1/controlsList;
+#X obj 35 110 list prepend \$1;
+#X obj 35 243 list prepend;
+#X obj 114 218 r \$0x;
+#X obj 35 195 list prepend;
+#X obj 114 171 r \$0y;
+#X obj 35 136 t a b;
+#X obj 251 71 f 0;
+#X obj 251 146 s \$0y;
+#X obj 283 71 + 1;
+#X obj 251 274 f 0;
+#X obj 283 274 + 1;
+#X obj 251 329 s \$0x;
+#X obj 79 136 s \$0count;
+#X obj 251 42 r \$0count;
+#X obj 251 243 r \$0count;
+#X obj 251 96 div 8;
+#X obj 315 274 mod 8;
+#N canvas 50 247 1320 500 \$0controls 0;
+#X restore 148 10 pd \$0controls;
+#X obj 35 340 s pd-\$0controls;
+#X obj 339 311 loadbang;
+#X msg 339 338 clear;
+#X obj 339 362 s pd-\$0controls;
+#X obj 251 303 * 160;
+#X obj 251 120 * 80;
+#X msg 359 211 vis 1;
+#X obj 359 236 s pd-\$0controls;
+#X obj 182 219 s \$1/getControls;
+#X obj 301 101 cnv 15 15 15 empty empty O 2 7 0 14 -231960 -66577 0
+;
+#X obj 312 101 cnv 15 15 15 empty empty C 2 7 0 14 -181753 -66577 0
+;
+#X obj 323 101 cnv 15 15 15 empty empty T 2 7 0 14 -232778 -66577 0
+;
+#X obj 334 101 cnv 15 15 15 empty empty O 2 7 0 14 -36361 -66577 0
+;
+#X obj 345 101 cnv 15 15 15 empty empty M 2 7 0 14 -32312 -66577 0
+;
+#X obj 356 101 cnv 15 15 15 empty empty O 2 7 0 14 -230614 -66577 0
+;
+#X obj 367 101 cnv 15 15 15 empty empty M 2 7 0 14 -230961 -66577 0
+;
+#X obj 378 101 cnv 14 14 15 empty empty empty 2 7 0 14 -221241 -66577
+0;
+#X obj 301 114 cnv 15 91 45 empty empty \$1 2 7 0 11 -20537 -150464
+0;
+#X obj 303 143 bng 15 250 50 0 \$0show \$0showR Show 17 7 0 11 -174336
+-1 -183899;
+#X obj 303 126 bng 15 250 50 0 \$0getControls \$0getControlsR Generate
+17 7 0 11 -49136 -1 -239456;
+#X obj 359 189 r \$0show;
+#X obj 182 187 r \$0getControls;
+#X msg 35 269 obj \$1 \$2 midi-tentacle \$3 \$4;
+#X obj 35 295 list append \$2;
+#X obj 35 317 list trim;
+#X connect 0 0 1 0;
+#X connect 1 0 6 0;
+#X connect 2 0 41 0;
+#X connect 3 0 2 1;
+#X connect 4 0 2 0;
+#X connect 5 0 4 1;
+#X connect 6 0 4 0;
+#X connect 6 1 13 0;
+#X connect 7 0 9 0;
+#X connect 7 0 16 0;
+#X connect 9 0 7 1;
+#X connect 10 0 11 0;
+#X connect 10 0 23 0;
+#X connect 11 0 17 0;
+#X connect 14 0 7 0;
+#X connect 15 0 10 0;
+#X connect 16 0 24 0;
+#X connect 17 0 10 1;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 23 0 12 0;
+#X connect 24 0 8 0;
+#X connect 25 0 26 0;
+#X connect 39 0 25 0;
+#X connect 40 0 27 0;
+#X connect 41 0 42 0;
+#X connect 42 0 43 0;
+#X connect 43 0 19 0;
+#X coords 0 -1 1 1 93 60 2 300 100;
diff --git a/controctopus/rchannel-multi.pd b/controctopus/rchannel-multi.pd
new file mode 100644
index 0000000..bf114e2
--- /dev/null
+++ b/controctopus/rchannel-multi.pd
@@ -0,0 +1,33 @@
+#N canvas 587 243 295 434 10;
+#X obj 66 355 prepent;
+#X obj 66 387 s PDOSC;
+#X obj 135 81 r \$1popOut;
+#X obj 180 112 r \$1channelSet;
+#X obj 189 222 t b a;
+#X obj 135 253 symbol /none;
+#X obj 135 276 list prepend 1;
+#X msg 135 321 \$1\$2\$3;
+#X obj 180 134 == \$5;
+#X obj 66 48 r \$2\$3/Ch\$5;
+#X obj 135 297 list prepend \$4;
+#X obj 189 201 r \$2/demux;
+#X obj 135 176 spigot 0;
+#X obj 66 176 spigot 1;
+#X obj 80 112 r \$1omni;
+#X obj 80 134 == 0;
+#X connect 0 0 1 0;
+#X connect 2 0 12 0;
+#X connect 3 0 8 0;
+#X connect 4 0 5 0;
+#X connect 4 1 6 1;
+#X connect 5 0 6 0;
+#X connect 6 0 10 0;
+#X connect 7 0 0 1;
+#X connect 8 0 12 1;
+#X connect 9 0 13 0;
+#X connect 10 0 7 0;
+#X connect 11 0 4 0;
+#X connect 12 0 5 0;
+#X connect 13 0 0 0;
+#X connect 14 0 15 0;
+#X connect 15 0 13 1;
diff --git a/controctopus/rchannel.pd b/controctopus/rchannel.pd
new file mode 100644
index 0000000..0e545db
--- /dev/null
+++ b/controctopus/rchannel.pd
@@ -0,0 +1,24 @@
+#N canvas 233 249 288 411 10;
+#X obj 66 325 prepent;
+#X obj 66 357 s PDOSC;
+#X obj 135 81 r \$1popOut;
+#X obj 180 112 r \$1channelSet;
+#X obj 180 134 == \$5;
+#X obj 66 48 r \$2\$3/Ch\$5;
+#X msg 135 295 \$1\$2;
+#X obj 135 271 list prepend \$4;
+#X obj 135 176 spigot 0;
+#X obj 66 176 spigot 1;
+#X obj 79 112 r \$1omni;
+#X obj 79 134 == 0;
+#X connect 0 0 1 0;
+#X connect 2 0 8 0;
+#X connect 3 0 4 0;
+#X connect 4 0 8 1;
+#X connect 5 0 9 0;
+#X connect 6 0 0 1;
+#X connect 7 0 6 0;
+#X connect 8 0 7 0;
+#X connect 9 0 0 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 1;
diff --git a/controctopus/tentacle-pager.pd b/controctopus/tentacle-pager.pd
new file mode 100644
index 0000000..ef1f107
--- /dev/null
+++ b/controctopus/tentacle-pager.pd
@@ -0,0 +1,131 @@
+#N canvas 605 66 239 173 10;
+#N canvas 895 383 458 308 logic 0;
+#X obj 309 120 r \$0channel;
+#X obj 202 38 r \$0next;
+#X obj 100 38 r \$0prev;
+#X obj 115 70 r \$0channel;
+#X obj 100 99 f 1;
+#X obj 202 99 f 1;
+#X obj 202 126 + 1;
+#X obj 100 126 - 1;
+#X obj 152 252 s \$0channelR;
+#X obj 217 70 r \$0channel;
+#X obj 152 225 + 1;
+#X obj 309 143 s \$1/showChannel;
+#X obj 152 178 - 1;
+#X obj 152 200 mod 16;
+#X connect 0 0 11 0;
+#X connect 1 0 5 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 7 0;
+#X connect 5 0 6 0;
+#X connect 6 0 12 0;
+#X connect 7 0 12 0;
+#X connect 9 0 5 1;
+#X connect 10 0 8 0;
+#X connect 12 0 13 0;
+#X connect 13 0 10 0;
+#X restore 138 146 pd logic;
+#X obj 35 44 hradio 10 1 0 8 \$0chRow1 \$0chRow1R empty 0 -8 0 10 -118016
+-62784 -166441 1;
+#X obj 35 54 hradio 10 1 0 8 \$0chRow2 \$0chRow2R empty 0 -8 0 10 -118016
+-118016 -166441 7;
+#N canvas 340 243 921 562 3RowRadio 0;
+#X obj 258 324 r \$0chRow1;
+#X obj 508 334 r \$0chRow2;
+#X obj 258 454 s \$0chRow1R;
+#X obj 508 455 s \$0chRow2R;
+#X obj 297 53 r \$0chRow1;
+#X obj 397 53 r \$0chRow2;
+#X obj 368 189 s \$0channel;
+#X obj 25 1 r \$0channelR;
+#X obj 64 77 moses 9;
+#X obj 103 100 - 9;
+#X obj 64 144 s \$0chRow1R;
+#X obj 103 122 s \$0chRow2R;
+#X obj 64 109 - 1;
+#X obj 572 116 r \$0channel;
+#X msg 645 159 label Ch.\$1;
+#X obj 572 181 s \$0channelDisp;
+#X obj 433 167 s \$0channelSet;
+#X msg 258 372 color -7.39328e+06 18 1;
+#X msg 268 395 color -7.39328e+06 -7.39328e+06 1;
+#X msg 508 372 color -7.39328e+06 18 1;
+#X msg 518 395 color -7.39328e+06 -7.39328e+06 1;
+#X obj 349 128 + 1;
+#X obj 572 137 sel 0;
+#X msg 572 159 label Omni;
+#X obj 217 53 r \$0chRow0;
+#X obj 28 334 r \$0chRow0;
+#X obj 25 54 moses 1;
+#X obj 25 166 s \$0chRow0R;
+#X obj 28 454 s \$0chRow0R;
+#X msg 284 419 color 1 1 1;
+#X msg 38 395 color 1 1 1;
+#X msg 534 419 color 1 1 1;
+#X obj 288 167 == 0;
+#X obj 288 189 s \$0omni;
+#X obj 349 150 t a a a;
+#X obj 752 98 r \$0omni;
+#X obj 752 121 sel 0 1;
+#X obj 752 181 s \$0channelDisp;
+#X msg 752 149 color 2 7;
+#X msg 816 149 color 2 14;
+#X msg 28 372 color 14 18 1;
+#X obj 297 86 + 0;
+#X obj 397 87 + 8;
+#X connect 0 0 17 0;
+#X connect 0 0 18 0;
+#X connect 0 0 29 0;
+#X connect 1 0 19 0;
+#X connect 1 0 20 0;
+#X connect 1 0 31 0;
+#X connect 4 0 41 0;
+#X connect 5 0 42 0;
+#X connect 7 0 26 0;
+#X connect 8 0 12 0;
+#X connect 8 1 9 0;
+#X connect 9 0 11 0;
+#X connect 12 0 10 0;
+#X connect 13 0 22 0;
+#X connect 14 0 15 0;
+#X connect 17 0 2 0;
+#X connect 18 0 3 0;
+#X connect 19 0 3 0;
+#X connect 20 0 2 0;
+#X connect 21 0 34 0;
+#X connect 22 0 23 0;
+#X connect 22 1 14 0;
+#X connect 23 0 15 0;
+#X connect 24 0 34 0;
+#X connect 25 0 40 0;
+#X connect 25 0 30 0;
+#X connect 26 0 27 0;
+#X connect 26 1 8 0;
+#X connect 29 0 28 0;
+#X connect 30 0 2 0;
+#X connect 30 0 3 0;
+#X connect 31 0 28 0;
+#X connect 32 0 33 0;
+#X connect 34 0 32 0;
+#X connect 34 1 6 0;
+#X connect 34 2 16 0;
+#X connect 35 0 36 0;
+#X connect 36 0 38 0;
+#X connect 36 1 39 0;
+#X connect 38 0 37 0;
+#X connect 39 0 37 0;
+#X connect 40 0 28 0;
+#X connect 41 0 21 0;
+#X connect 42 0 21 0;
+#X restore 138 123 pd 3RowRadio;
+#X obj 23 48 hradio 12 1 0 1 \$0chRow0 \$0chRow0R empty 0 -8 0 10 -166441
+-166441 -166441 0;
+#X obj 22 24 cnv 12 40 12 empty empty \$1 1 6 0 8 -262144 -66577 0
+;
+#X obj 78 23 bng 15 250 50 0 \$0next \$0nextR > 5 8 1 11 -261441 -1
+-1;
+#X obj 57 23 bng 15 250 50 0 \$0prev \$0prevR < 5 8 1 11 -261441 -1
+-1;
+#X coords 0 -1 1 1 98 47 2 20 20;
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;
diff --git a/nsend/nr-help.pd b/nsend/nr-help.pd
new file mode 100644
index 0000000..112f448
--- /dev/null
+++ b/nsend/nr-help.pd
@@ -0,0 +1,148 @@
+#N canvas 694 249 699 631 10;
+#X obj 45 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 72 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 99 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 126 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 19 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 45 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 72 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 99 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 126 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 19 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 44 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 71 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 98 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 125 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 18 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 282 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 307 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 331 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 258 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 284 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 311 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 338 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 258 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 526 109 symbol ham;
+#X symbolatom 528 333 15 0 0 0 - - -;
+#X floatatom 513 354 5 0 0 0 - - -;
+#X floatatom 514 92 5 0 0 0 - - -;
+#X msg 538 130 set test;
+#X msg 550 154 list 4 5 6 7 9;
+#X msg 543 310 test;
+#X text 15 513 Internally \, the sends and receives are named thusly
+\, so you can take advantage of that if you like.;
+#X text 554 581 Luke Iannini \, 2007;
+#X obj 16 597 nr;
+#X obj 49 597 ns;
+#X text 78 598 Abbreviations.;
+#X text 20 8 [nsend] and [nreceive] -- send groups of messages conveniently
+;
+#X msg 16 543 \; lists0 33 \; lists1 symbol this-works-too;
+#X msg 366 102 sendB;
+#X msg 366 78 sendA;
+#X msg 365 286 sendA;
+#X msg 365 308 sendB;
+#X obj 281 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 308 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 335 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 255 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 19 181 nreceive \$0nutter 5;
+#X obj 18 260 nreceive \$0nutter 5;
+#X obj 513 233 nreceive lists 8;
+#X obj 258 218 nreceive sendA 4;
+#X obj 255 332 nreceive sendB 4;
+#X obj 19 150 nsend \$0nutter 5;
+#X obj 514 202 nsend lists 8;
+#X obj 258 155 nsend sendA 4;
+#X msg 366 125 sendC;
+#X msg 366 171 sendC;
+#X msg 366 192 sendA;
+#X msg 579 308 4 5 6 7 9;
+#X obj 554 595 pddplink http://proyekto.net;
+#X obj 579 261 list prepend set;
+#X text 249 418 are reassignable through the;
+#X text 250 431 rightmost or only inlet for;
+#X text 249 445 nsend and nreceive \, respectively;
+#X text 249 405 Both nsends and nreceives;
+#X text 12 445 With no second argument \, nsend;
+#X text 12 458 and nreceive will default to;
+#X obj 20 402 nsend \$0abc;
+#X obj 99 402 nreceive \$0abc;
+#X floatatom 20 380 5 0 0 0 - - -;
+#X floatatom 99 425 5 0 0 0 - - -;
+#X obj 579 283 list trim;
+#X text 510 388 All datatypes work.;
+#X text 12 472 default behavior.;
+#X connect 0 0 50 1;
+#X connect 1 0 50 2;
+#X connect 2 0 50 3;
+#X connect 3 0 50 4;
+#X connect 4 0 50 0;
+#X connect 15 0 52 1;
+#X connect 16 0 52 2;
+#X connect 17 0 52 3;
+#X connect 18 0 52 0;
+#X connect 23 0 51 1;
+#X connect 26 0 51 0;
+#X connect 27 0 51 2;
+#X connect 28 0 51 7;
+#X connect 37 0 52 4;
+#X connect 38 0 52 4;
+#X connect 39 0 49 0;
+#X connect 40 0 49 0;
+#X connect 45 0 9 0;
+#X connect 45 1 5 0;
+#X connect 45 2 6 0;
+#X connect 45 3 7 0;
+#X connect 45 4 8 0;
+#X connect 46 0 14 0;
+#X connect 46 1 10 0;
+#X connect 46 2 11 0;
+#X connect 46 3 12 0;
+#X connect 46 4 13 0;
+#X connect 47 0 25 0;
+#X connect 47 1 24 0;
+#X connect 47 2 29 0;
+#X connect 47 7 58 0;
+#X connect 48 0 22 0;
+#X connect 48 1 19 0;
+#X connect 48 2 20 0;
+#X connect 48 3 21 0;
+#X connect 49 0 44 0;
+#X connect 49 1 41 0;
+#X connect 49 2 42 0;
+#X connect 49 3 43 0;
+#X connect 53 0 52 4;
+#X connect 54 0 48 0;
+#X connect 55 0 48 0;
+#X connect 58 0 69 0;
+#X connect 66 0 68 0;
+#X connect 67 0 65 0;
+#X connect 69 0 56 0;
diff --git a/nsend/nr.pd b/nsend/nr.pd
new file mode 100644
index 0000000..df43f33
--- /dev/null
+++ b/nsend/nr.pd
@@ -0,0 +1,156 @@
+#N canvas 911 22 1013 626 10;
+#X obj 154 60 \$2;
+#X obj 154 152 until;
+#X obj 154 178 t b b b b;
+#X obj 510 358 v \$0x;
+#X obj 496 381 v \$0cnt;
+#X obj 152 259 v \$0x;
+#X obj 313 310 v \$0x;
+#X obj 352 254 v \$0cnt;
+#X obj 313 226 t b b b;
+#X obj 313 388 s \$0self;
+#X obj 539 43 namecanvas \$0self;
+#X obj 14 463 s \$0self;
+#X obj 14 312 * 2;
+#X obj 14 360 t f f;
+#X obj 14 407 pack f f;
+#X obj 59 377 + 1;
+#X obj 152 303 s \$0self;
+#X msg 14 435 connect \$1 0 \$2 0;
+#X obj 14 225 v \$0cnt;
+#X obj 154 7 initbang;
+#X obj 14 279 abs;
+#X obj 537 195 - 1;
+#X obj 332 281 \$0;
+#X obj 313 335 pack f f f;
+#X msg 804 278 clear;
+#X obj 694 245 \$2;
+#X obj 694 318 until;
+#X obj 694 268 sel 0;
+#X msg 694 291 1;
+#X obj 758 394 f 0;
+#X obj 786 394 + 1;
+#X obj 758 429 * 15;
+#X obj 694 480 pack f f f s;
+#X obj 717 396 \$0;
+#X obj 694 354 t b b b b;
+#X obj 694 446 f;
+#X msg 773 302 0;
+#X obj 694 208 t b b b a;
+#X obj 892 225 t a;
+#X obj 829 394 list append;
+#X obj 859 14 inlet;
+#X obj 859 39 list;
+#X obj 154 33 t b b;
+#X obj 510 219 * 100;
+#X obj 510 243 t f b;
+#X obj 537 291 * 100;
+#X obj 510 331 -;
+#X obj 537 314 - 500;
+#N canvas 1194 177 440 379 \$0receivers 0;
+#X restore 859 114 pd \$0receivers;
+#X obj 859 62 s \$0receivename;
+#X obj 694 180 r \$0receivename;
+#X msg 694 520 obj 50 \$1 nreceive-receiver \$2 \$3 \$4;
+#X obj 694 552 s pd-\$0receivers;
+#X msg 313 362 obj \$1 500 r \$2receive\$3;
+#X msg 152 280 obj \$1 550 outlet;
+#X obj 370 310 - 1;
+#X obj 154 83 sel 0;
+#X msg 154 106 1;
+#X obj 194 130 s \$0n;
+#X obj 154 130 t a a;
+#X obj 41 251 r \$0n;
+#X obj 511 171 r \$0n;
+#X obj 564 268 r \$0n;
+#X obj 537 268 f;
+#X obj 496 195 f;
+#X obj 14 251 -;
+#X obj 804 301 s pd-\$0receivers;
+#X obj 298 50 list append \$1;
+#X obj 298 72 sel 0;
+#X msg 298 94 symbol noname;
+#X obj 298 117 s \$0receivename;
+#X obj 14 336 + 72;
+#X connect 0 0 56 0;
+#X connect 1 0 2 0;
+#X connect 2 0 18 0;
+#X connect 2 1 5 0;
+#X connect 2 2 8 0;
+#X connect 2 3 64 0;
+#X connect 5 0 54 0;
+#X connect 6 0 23 0;
+#X connect 7 0 55 0;
+#X connect 8 0 6 0;
+#X connect 8 1 22 0;
+#X connect 8 2 7 0;
+#X connect 12 0 71 0;
+#X connect 13 0 14 0;
+#X connect 13 1 15 0;
+#X connect 14 0 17 0;
+#X connect 15 0 14 1;
+#X connect 17 0 11 0;
+#X connect 18 0 65 0;
+#X connect 19 0 42 0;
+#X connect 20 0 12 0;
+#X connect 21 0 64 1;
+#X connect 22 0 23 1;
+#X connect 23 0 53 0;
+#X connect 24 0 66 0;
+#X connect 25 0 27 0;
+#X connect 26 0 34 0;
+#X connect 27 0 28 0;
+#X connect 27 1 26 0;
+#X connect 28 0 26 0;
+#X connect 29 0 30 0;
+#X connect 29 0 31 0;
+#X connect 29 0 32 2;
+#X connect 30 0 29 1;
+#X connect 31 0 35 1;
+#X connect 32 0 51 0;
+#X connect 33 0 32 1;
+#X connect 34 0 35 0;
+#X connect 34 1 33 0;
+#X connect 34 2 29 0;
+#X connect 34 3 39 0;
+#X connect 35 0 32 0;
+#X connect 36 0 29 1;
+#X connect 37 0 25 0;
+#X connect 37 1 36 0;
+#X connect 37 2 24 0;
+#X connect 37 3 38 0;
+#X connect 38 0 39 1;
+#X connect 39 0 32 3;
+#X connect 40 0 41 0;
+#X connect 41 0 49 0;
+#X connect 42 0 0 0;
+#X connect 42 1 67 0;
+#X connect 43 0 44 0;
+#X connect 44 0 46 0;
+#X connect 44 1 63 0;
+#X connect 45 0 47 0;
+#X connect 46 0 3 0;
+#X connect 47 0 46 1;
+#X connect 50 0 37 0;
+#X connect 51 0 52 0;
+#X connect 53 0 9 0;
+#X connect 54 0 16 0;
+#X connect 55 0 23 2;
+#X connect 56 0 57 0;
+#X connect 56 1 59 0;
+#X connect 57 0 59 0;
+#X connect 59 0 1 0;
+#X connect 59 1 58 0;
+#X connect 60 0 65 1;
+#X connect 61 0 64 1;
+#X connect 62 0 63 1;
+#X connect 63 0 45 0;
+#X connect 64 0 4 0;
+#X connect 64 0 21 0;
+#X connect 64 0 43 0;
+#X connect 65 0 20 0;
+#X connect 67 0 68 0;
+#X connect 68 0 69 0;
+#X connect 68 1 70 0;
+#X connect 69 0 70 0;
+#X connect 71 0 13 0;
diff --git a/nsend/nreceive-help.pd b/nsend/nreceive-help.pd
new file mode 100644
index 0000000..112f448
--- /dev/null
+++ b/nsend/nreceive-help.pd
@@ -0,0 +1,148 @@
+#N canvas 694 249 699 631 10;
+#X obj 45 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 72 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 99 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 126 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 19 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 45 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 72 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 99 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 126 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 19 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 44 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 71 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 98 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 125 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 18 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 282 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 307 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 331 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 258 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 284 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 311 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 338 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 258 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 526 109 symbol ham;
+#X symbolatom 528 333 15 0 0 0 - - -;
+#X floatatom 513 354 5 0 0 0 - - -;
+#X floatatom 514 92 5 0 0 0 - - -;
+#X msg 538 130 set test;
+#X msg 550 154 list 4 5 6 7 9;
+#X msg 543 310 test;
+#X text 15 513 Internally \, the sends and receives are named thusly
+\, so you can take advantage of that if you like.;
+#X text 554 581 Luke Iannini \, 2007;
+#X obj 16 597 nr;
+#X obj 49 597 ns;
+#X text 78 598 Abbreviations.;
+#X text 20 8 [nsend] and [nreceive] -- send groups of messages conveniently
+;
+#X msg 16 543 \; lists0 33 \; lists1 symbol this-works-too;
+#X msg 366 102 sendB;
+#X msg 366 78 sendA;
+#X msg 365 286 sendA;
+#X msg 365 308 sendB;
+#X obj 281 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 308 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 335 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 255 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 19 181 nreceive \$0nutter 5;
+#X obj 18 260 nreceive \$0nutter 5;
+#X obj 513 233 nreceive lists 8;
+#X obj 258 218 nreceive sendA 4;
+#X obj 255 332 nreceive sendB 4;
+#X obj 19 150 nsend \$0nutter 5;
+#X obj 514 202 nsend lists 8;
+#X obj 258 155 nsend sendA 4;
+#X msg 366 125 sendC;
+#X msg 366 171 sendC;
+#X msg 366 192 sendA;
+#X msg 579 308 4 5 6 7 9;
+#X obj 554 595 pddplink http://proyekto.net;
+#X obj 579 261 list prepend set;
+#X text 249 418 are reassignable through the;
+#X text 250 431 rightmost or only inlet for;
+#X text 249 445 nsend and nreceive \, respectively;
+#X text 249 405 Both nsends and nreceives;
+#X text 12 445 With no second argument \, nsend;
+#X text 12 458 and nreceive will default to;
+#X obj 20 402 nsend \$0abc;
+#X obj 99 402 nreceive \$0abc;
+#X floatatom 20 380 5 0 0 0 - - -;
+#X floatatom 99 425 5 0 0 0 - - -;
+#X obj 579 283 list trim;
+#X text 510 388 All datatypes work.;
+#X text 12 472 default behavior.;
+#X connect 0 0 50 1;
+#X connect 1 0 50 2;
+#X connect 2 0 50 3;
+#X connect 3 0 50 4;
+#X connect 4 0 50 0;
+#X connect 15 0 52 1;
+#X connect 16 0 52 2;
+#X connect 17 0 52 3;
+#X connect 18 0 52 0;
+#X connect 23 0 51 1;
+#X connect 26 0 51 0;
+#X connect 27 0 51 2;
+#X connect 28 0 51 7;
+#X connect 37 0 52 4;
+#X connect 38 0 52 4;
+#X connect 39 0 49 0;
+#X connect 40 0 49 0;
+#X connect 45 0 9 0;
+#X connect 45 1 5 0;
+#X connect 45 2 6 0;
+#X connect 45 3 7 0;
+#X connect 45 4 8 0;
+#X connect 46 0 14 0;
+#X connect 46 1 10 0;
+#X connect 46 2 11 0;
+#X connect 46 3 12 0;
+#X connect 46 4 13 0;
+#X connect 47 0 25 0;
+#X connect 47 1 24 0;
+#X connect 47 2 29 0;
+#X connect 47 7 58 0;
+#X connect 48 0 22 0;
+#X connect 48 1 19 0;
+#X connect 48 2 20 0;
+#X connect 48 3 21 0;
+#X connect 49 0 44 0;
+#X connect 49 1 41 0;
+#X connect 49 2 42 0;
+#X connect 49 3 43 0;
+#X connect 53 0 52 4;
+#X connect 54 0 48 0;
+#X connect 55 0 48 0;
+#X connect 58 0 69 0;
+#X connect 66 0 68 0;
+#X connect 67 0 65 0;
+#X connect 69 0 56 0;
diff --git a/nsend/nreceive-receiver.pd b/nsend/nreceive-receiver.pd
new file mode 100644
index 0000000..8831b8b
--- /dev/null
+++ b/nsend/nreceive-receiver.pd
@@ -0,0 +1,4 @@
+#N canvas 1372 824 125 105 10;
+#X obj 19 18 r \$3\$2;
+#X obj 19 67 s \$1receive\$2;
+#X connect 0 0 1 0;
diff --git a/nsend/nreceive.pd b/nsend/nreceive.pd
new file mode 100644
index 0000000..df43f33
--- /dev/null
+++ b/nsend/nreceive.pd
@@ -0,0 +1,156 @@
+#N canvas 911 22 1013 626 10;
+#X obj 154 60 \$2;
+#X obj 154 152 until;
+#X obj 154 178 t b b b b;
+#X obj 510 358 v \$0x;
+#X obj 496 381 v \$0cnt;
+#X obj 152 259 v \$0x;
+#X obj 313 310 v \$0x;
+#X obj 352 254 v \$0cnt;
+#X obj 313 226 t b b b;
+#X obj 313 388 s \$0self;
+#X obj 539 43 namecanvas \$0self;
+#X obj 14 463 s \$0self;
+#X obj 14 312 * 2;
+#X obj 14 360 t f f;
+#X obj 14 407 pack f f;
+#X obj 59 377 + 1;
+#X obj 152 303 s \$0self;
+#X msg 14 435 connect \$1 0 \$2 0;
+#X obj 14 225 v \$0cnt;
+#X obj 154 7 initbang;
+#X obj 14 279 abs;
+#X obj 537 195 - 1;
+#X obj 332 281 \$0;
+#X obj 313 335 pack f f f;
+#X msg 804 278 clear;
+#X obj 694 245 \$2;
+#X obj 694 318 until;
+#X obj 694 268 sel 0;
+#X msg 694 291 1;
+#X obj 758 394 f 0;
+#X obj 786 394 + 1;
+#X obj 758 429 * 15;
+#X obj 694 480 pack f f f s;
+#X obj 717 396 \$0;
+#X obj 694 354 t b b b b;
+#X obj 694 446 f;
+#X msg 773 302 0;
+#X obj 694 208 t b b b a;
+#X obj 892 225 t a;
+#X obj 829 394 list append;
+#X obj 859 14 inlet;
+#X obj 859 39 list;
+#X obj 154 33 t b b;
+#X obj 510 219 * 100;
+#X obj 510 243 t f b;
+#X obj 537 291 * 100;
+#X obj 510 331 -;
+#X obj 537 314 - 500;
+#N canvas 1194 177 440 379 \$0receivers 0;
+#X restore 859 114 pd \$0receivers;
+#X obj 859 62 s \$0receivename;
+#X obj 694 180 r \$0receivename;
+#X msg 694 520 obj 50 \$1 nreceive-receiver \$2 \$3 \$4;
+#X obj 694 552 s pd-\$0receivers;
+#X msg 313 362 obj \$1 500 r \$2receive\$3;
+#X msg 152 280 obj \$1 550 outlet;
+#X obj 370 310 - 1;
+#X obj 154 83 sel 0;
+#X msg 154 106 1;
+#X obj 194 130 s \$0n;
+#X obj 154 130 t a a;
+#X obj 41 251 r \$0n;
+#X obj 511 171 r \$0n;
+#X obj 564 268 r \$0n;
+#X obj 537 268 f;
+#X obj 496 195 f;
+#X obj 14 251 -;
+#X obj 804 301 s pd-\$0receivers;
+#X obj 298 50 list append \$1;
+#X obj 298 72 sel 0;
+#X msg 298 94 symbol noname;
+#X obj 298 117 s \$0receivename;
+#X obj 14 336 + 72;
+#X connect 0 0 56 0;
+#X connect 1 0 2 0;
+#X connect 2 0 18 0;
+#X connect 2 1 5 0;
+#X connect 2 2 8 0;
+#X connect 2 3 64 0;
+#X connect 5 0 54 0;
+#X connect 6 0 23 0;
+#X connect 7 0 55 0;
+#X connect 8 0 6 0;
+#X connect 8 1 22 0;
+#X connect 8 2 7 0;
+#X connect 12 0 71 0;
+#X connect 13 0 14 0;
+#X connect 13 1 15 0;
+#X connect 14 0 17 0;
+#X connect 15 0 14 1;
+#X connect 17 0 11 0;
+#X connect 18 0 65 0;
+#X connect 19 0 42 0;
+#X connect 20 0 12 0;
+#X connect 21 0 64 1;
+#X connect 22 0 23 1;
+#X connect 23 0 53 0;
+#X connect 24 0 66 0;
+#X connect 25 0 27 0;
+#X connect 26 0 34 0;
+#X connect 27 0 28 0;
+#X connect 27 1 26 0;
+#X connect 28 0 26 0;
+#X connect 29 0 30 0;
+#X connect 29 0 31 0;
+#X connect 29 0 32 2;
+#X connect 30 0 29 1;
+#X connect 31 0 35 1;
+#X connect 32 0 51 0;
+#X connect 33 0 32 1;
+#X connect 34 0 35 0;
+#X connect 34 1 33 0;
+#X connect 34 2 29 0;
+#X connect 34 3 39 0;
+#X connect 35 0 32 0;
+#X connect 36 0 29 1;
+#X connect 37 0 25 0;
+#X connect 37 1 36 0;
+#X connect 37 2 24 0;
+#X connect 37 3 38 0;
+#X connect 38 0 39 1;
+#X connect 39 0 32 3;
+#X connect 40 0 41 0;
+#X connect 41 0 49 0;
+#X connect 42 0 0 0;
+#X connect 42 1 67 0;
+#X connect 43 0 44 0;
+#X connect 44 0 46 0;
+#X connect 44 1 63 0;
+#X connect 45 0 47 0;
+#X connect 46 0 3 0;
+#X connect 47 0 46 1;
+#X connect 50 0 37 0;
+#X connect 51 0 52 0;
+#X connect 53 0 9 0;
+#X connect 54 0 16 0;
+#X connect 55 0 23 2;
+#X connect 56 0 57 0;
+#X connect 56 1 59 0;
+#X connect 57 0 59 0;
+#X connect 59 0 1 0;
+#X connect 59 1 58 0;
+#X connect 60 0 65 1;
+#X connect 61 0 64 1;
+#X connect 62 0 63 1;
+#X connect 63 0 45 0;
+#X connect 64 0 4 0;
+#X connect 64 0 21 0;
+#X connect 64 0 43 0;
+#X connect 65 0 20 0;
+#X connect 67 0 68 0;
+#X connect 68 0 69 0;
+#X connect 68 1 70 0;
+#X connect 69 0 70 0;
+#X connect 71 0 13 0;
diff --git a/nsend/ns-help.pd b/nsend/ns-help.pd
new file mode 100644
index 0000000..112f448
--- /dev/null
+++ b/nsend/ns-help.pd
@@ -0,0 +1,148 @@
+#N canvas 694 249 699 631 10;
+#X obj 45 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 72 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 99 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 126 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 19 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 45 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 72 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 99 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 126 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 19 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 44 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 71 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 98 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 125 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 18 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 282 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 307 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 331 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 258 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 284 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 311 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 338 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 258 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 526 109 symbol ham;
+#X symbolatom 528 333 15 0 0 0 - - -;
+#X floatatom 513 354 5 0 0 0 - - -;
+#X floatatom 514 92 5 0 0 0 - - -;
+#X msg 538 130 set test;
+#X msg 550 154 list 4 5 6 7 9;
+#X msg 543 310 test;
+#X text 15 513 Internally \, the sends and receives are named thusly
+\, so you can take advantage of that if you like.;
+#X text 554 581 Luke Iannini \, 2007;
+#X obj 16 597 nr;
+#X obj 49 597 ns;
+#X text 78 598 Abbreviations.;
+#X text 20 8 [nsend] and [nreceive] -- send groups of messages conveniently
+;
+#X msg 16 543 \; lists0 33 \; lists1 symbol this-works-too;
+#X msg 366 102 sendB;
+#X msg 366 78 sendA;
+#X msg 365 286 sendA;
+#X msg 365 308 sendB;
+#X obj 281 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 308 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 335 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 255 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 19 181 nreceive \$0nutter 5;
+#X obj 18 260 nreceive \$0nutter 5;
+#X obj 513 233 nreceive lists 8;
+#X obj 258 218 nreceive sendA 4;
+#X obj 255 332 nreceive sendB 4;
+#X obj 19 150 nsend \$0nutter 5;
+#X obj 514 202 nsend lists 8;
+#X obj 258 155 nsend sendA 4;
+#X msg 366 125 sendC;
+#X msg 366 171 sendC;
+#X msg 366 192 sendA;
+#X msg 579 308 4 5 6 7 9;
+#X obj 554 595 pddplink http://proyekto.net;
+#X obj 579 261 list prepend set;
+#X text 249 418 are reassignable through the;
+#X text 250 431 rightmost or only inlet for;
+#X text 249 445 nsend and nreceive \, respectively;
+#X text 249 405 Both nsends and nreceives;
+#X text 12 445 With no second argument \, nsend;
+#X text 12 458 and nreceive will default to;
+#X obj 20 402 nsend \$0abc;
+#X obj 99 402 nreceive \$0abc;
+#X floatatom 20 380 5 0 0 0 - - -;
+#X floatatom 99 425 5 0 0 0 - - -;
+#X obj 579 283 list trim;
+#X text 510 388 All datatypes work.;
+#X text 12 472 default behavior.;
+#X connect 0 0 50 1;
+#X connect 1 0 50 2;
+#X connect 2 0 50 3;
+#X connect 3 0 50 4;
+#X connect 4 0 50 0;
+#X connect 15 0 52 1;
+#X connect 16 0 52 2;
+#X connect 17 0 52 3;
+#X connect 18 0 52 0;
+#X connect 23 0 51 1;
+#X connect 26 0 51 0;
+#X connect 27 0 51 2;
+#X connect 28 0 51 7;
+#X connect 37 0 52 4;
+#X connect 38 0 52 4;
+#X connect 39 0 49 0;
+#X connect 40 0 49 0;
+#X connect 45 0 9 0;
+#X connect 45 1 5 0;
+#X connect 45 2 6 0;
+#X connect 45 3 7 0;
+#X connect 45 4 8 0;
+#X connect 46 0 14 0;
+#X connect 46 1 10 0;
+#X connect 46 2 11 0;
+#X connect 46 3 12 0;
+#X connect 46 4 13 0;
+#X connect 47 0 25 0;
+#X connect 47 1 24 0;
+#X connect 47 2 29 0;
+#X connect 47 7 58 0;
+#X connect 48 0 22 0;
+#X connect 48 1 19 0;
+#X connect 48 2 20 0;
+#X connect 48 3 21 0;
+#X connect 49 0 44 0;
+#X connect 49 1 41 0;
+#X connect 49 2 42 0;
+#X connect 49 3 43 0;
+#X connect 53 0 52 4;
+#X connect 54 0 48 0;
+#X connect 55 0 48 0;
+#X connect 58 0 69 0;
+#X connect 66 0 68 0;
+#X connect 67 0 65 0;
+#X connect 69 0 56 0;
diff --git a/nsend/ns.pd b/nsend/ns.pd
new file mode 100644
index 0000000..3280803
--- /dev/null
+++ b/nsend/ns.pd
@@ -0,0 +1,156 @@
+#N canvas 75 22 986 619 10;
+#X obj 154 60 \$2;
+#X obj 154 153 until;
+#X obj 154 179 t b b b b;
+#X obj 510 359 v \$0x;
+#X obj 496 382 v \$0cnt;
+#X obj 342 251 v \$0x;
+#X obj 173 310 v \$0x;
+#X obj 212 254 v \$0cnt;
+#X obj 173 226 t b b b;
+#X obj 173 388 s \$0self;
+#X obj 539 43 namecanvas \$0self;
+#X obj 14 463 s \$0self;
+#X obj 14 312 * 2;
+#X obj 14 360 t f f;
+#X obj 14 407 pack f f;
+#X obj 59 377 + 1;
+#X obj 342 295 s \$0self;
+#X msg 14 435 connect \$1 0 \$2 0;
+#X obj 14 225 v \$0cnt;
+#X msg 342 273 obj \$1 500 inlet;
+#X obj 154 7 initbang;
+#X obj 154 83 sel 0;
+#X msg 154 106 1;
+#X obj 14 279 abs;
+#X obj 537 196 - 1;
+#X obj 192 281 \$0;
+#X obj 173 335 pack f f f;
+#X msg 173 362 obj \$1 550 s \$2send\$3;
+#X msg 804 278 clear;
+#X obj 694 245 \$2;
+#X obj 694 318 until;
+#X obj 694 268 sel 0;
+#X msg 694 291 1;
+#X msg 694 520 obj 50 \$1 nsend-sender \$2 \$3 \$4;
+#X obj 758 394 f 0;
+#X obj 786 394 + 1;
+#X obj 758 429 * 15;
+#X obj 694 480 pack f f f s;
+#X obj 717 396 \$0;
+#X obj 694 354 t b b b b;
+#X obj 694 446 f;
+#X msg 773 302 0;
+#X obj 694 208 t b b b a;
+#X obj 892 225 t a;
+#X obj 829 394 list append;
+#X obj 694 180 r \$0sendname;
+#X obj 859 14 inlet;
+#X obj 859 39 list;
+#X obj 859 62 s \$0sendname;
+#X obj 288 117 s \$0sendname;
+#X obj 154 33 t b b;
+#X obj 288 50 list append \$1;
+#N canvas 1194 177 440 379 \$0senders 1;
+#X restore 859 114 pd \$0senders;
+#X obj 694 552 s pd-\$0senders;
+#X obj 510 220 * 100;
+#X obj 510 244 t f b;
+#X obj 537 292 * 100;
+#X obj 510 332 -;
+#X obj 537 315 - 500;
+#X obj 230 311 - 1;
+#X obj 194 130 s \$0n;
+#X obj 154 130 t a a;
+#X obj 42 251 r \$0n;
+#X obj 14 251 -;
+#X obj 511 172 r \$0n;
+#X obj 496 196 f;
+#X obj 563 269 r \$0n;
+#X obj 537 269 f;
+#X obj 804 301 s pd-\$0senders;
+#X obj 288 72 sel 0;
+#X msg 288 94 symbol noname;
+#X obj 14 336 + 72;
+#X connect 0 0 21 0;
+#X connect 1 0 2 0;
+#X connect 2 0 18 0;
+#X connect 2 1 8 0;
+#X connect 2 2 5 0;
+#X connect 2 3 65 0;
+#X connect 5 0 19 0;
+#X connect 6 0 26 0;
+#X connect 7 0 59 0;
+#X connect 8 0 6 0;
+#X connect 8 1 25 0;
+#X connect 8 2 7 0;
+#X connect 12 0 71 0;
+#X connect 13 0 14 0;
+#X connect 13 1 15 0;
+#X connect 14 0 17 0;
+#X connect 15 0 14 1;
+#X connect 17 0 11 0;
+#X connect 18 0 63 0;
+#X connect 19 0 16 0;
+#X connect 20 0 50 0;
+#X connect 21 0 22 0;
+#X connect 21 1 61 0;
+#X connect 22 0 61 0;
+#X connect 23 0 12 0;
+#X connect 24 0 65 1;
+#X connect 25 0 26 1;
+#X connect 26 0 27 0;
+#X connect 27 0 9 0;
+#X connect 28 0 68 0;
+#X connect 29 0 31 0;
+#X connect 30 0 39 0;
+#X connect 31 0 32 0;
+#X connect 31 1 30 0;
+#X connect 32 0 30 0;
+#X connect 33 0 53 0;
+#X connect 34 0 35 0;
+#X connect 34 0 36 0;
+#X connect 34 0 37 2;
+#X connect 35 0 34 1;
+#X connect 36 0 40 1;
+#X connect 37 0 33 0;
+#X connect 38 0 37 1;
+#X connect 39 0 40 0;
+#X connect 39 1 38 0;
+#X connect 39 2 34 0;
+#X connect 39 3 44 0;
+#X connect 40 0 37 0;
+#X connect 41 0 34 1;
+#X connect 42 0 29 0;
+#X connect 42 1 41 0;
+#X connect 42 2 28 0;
+#X connect 42 3 43 0;
+#X connect 43 0 44 1;
+#X connect 44 0 37 3;
+#X connect 45 0 42 0;
+#X connect 46 0 47 0;
+#X connect 47 0 48 0;
+#X connect 50 0 0 0;
+#X connect 50 1 51 0;
+#X connect 51 0 69 0;
+#X connect 54 0 55 0;
+#X connect 55 0 57 0;
+#X connect 55 1 67 0;
+#X connect 56 0 58 0;
+#X connect 57 0 3 0;
+#X connect 58 0 57 1;
+#X connect 59 0 26 2;
+#X connect 61 0 1 0;
+#X connect 61 1 60 0;
+#X connect 62 0 63 1;
+#X connect 63 0 23 0;
+#X connect 64 0 65 1;
+#X connect 65 0 4 0;
+#X connect 65 0 24 0;
+#X connect 65 0 54 0;
+#X connect 66 0 67 1;
+#X connect 67 0 56 0;
+#X connect 69 0 70 0;
+#X connect 69 1 49 0;
+#X connect 70 0 49 0;
+#X connect 71 0 13 0;
diff --git a/nsend/nsend-help.pd b/nsend/nsend-help.pd
new file mode 100644
index 0000000..112f448
--- /dev/null
+++ b/nsend/nsend-help.pd
@@ -0,0 +1,148 @@
+#N canvas 694 249 699 631 10;
+#X obj 45 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 72 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 99 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 126 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 19 99 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 45 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 72 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 99 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 126 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 19 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 44 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 71 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 98 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 125 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 18 308 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 282 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 307 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 331 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 258 104 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 284 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 311 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 338 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 258 266 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 526 109 symbol ham;
+#X symbolatom 528 333 15 0 0 0 - - -;
+#X floatatom 513 354 5 0 0 0 - - -;
+#X floatatom 514 92 5 0 0 0 - - -;
+#X msg 538 130 set test;
+#X msg 550 154 list 4 5 6 7 9;
+#X msg 543 310 test;
+#X text 15 513 Internally \, the sends and receives are named thusly
+\, so you can take advantage of that if you like.;
+#X text 554 581 Luke Iannini \, 2007;
+#X obj 16 597 nr;
+#X obj 49 597 ns;
+#X text 78 598 Abbreviations.;
+#X text 20 8 [nsend] and [nreceive] -- send groups of messages conveniently
+;
+#X msg 16 543 \; lists0 33 \; lists1 symbol this-works-too;
+#X msg 366 102 sendB;
+#X msg 366 78 sendA;
+#X msg 365 286 sendA;
+#X msg 365 308 sendB;
+#X obj 281 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 308 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 335 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 255 374 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 19 181 nreceive \$0nutter 5;
+#X obj 18 260 nreceive \$0nutter 5;
+#X obj 513 233 nreceive lists 8;
+#X obj 258 218 nreceive sendA 4;
+#X obj 255 332 nreceive sendB 4;
+#X obj 19 150 nsend \$0nutter 5;
+#X obj 514 202 nsend lists 8;
+#X obj 258 155 nsend sendA 4;
+#X msg 366 125 sendC;
+#X msg 366 171 sendC;
+#X msg 366 192 sendA;
+#X msg 579 308 4 5 6 7 9;
+#X obj 554 595 pddplink http://proyekto.net;
+#X obj 579 261 list prepend set;
+#X text 249 418 are reassignable through the;
+#X text 250 431 rightmost or only inlet for;
+#X text 249 445 nsend and nreceive \, respectively;
+#X text 249 405 Both nsends and nreceives;
+#X text 12 445 With no second argument \, nsend;
+#X text 12 458 and nreceive will default to;
+#X obj 20 402 nsend \$0abc;
+#X obj 99 402 nreceive \$0abc;
+#X floatatom 20 380 5 0 0 0 - - -;
+#X floatatom 99 425 5 0 0 0 - - -;
+#X obj 579 283 list trim;
+#X text 510 388 All datatypes work.;
+#X text 12 472 default behavior.;
+#X connect 0 0 50 1;
+#X connect 1 0 50 2;
+#X connect 2 0 50 3;
+#X connect 3 0 50 4;
+#X connect 4 0 50 0;
+#X connect 15 0 52 1;
+#X connect 16 0 52 2;
+#X connect 17 0 52 3;
+#X connect 18 0 52 0;
+#X connect 23 0 51 1;
+#X connect 26 0 51 0;
+#X connect 27 0 51 2;
+#X connect 28 0 51 7;
+#X connect 37 0 52 4;
+#X connect 38 0 52 4;
+#X connect 39 0 49 0;
+#X connect 40 0 49 0;
+#X connect 45 0 9 0;
+#X connect 45 1 5 0;
+#X connect 45 2 6 0;
+#X connect 45 3 7 0;
+#X connect 45 4 8 0;
+#X connect 46 0 14 0;
+#X connect 46 1 10 0;
+#X connect 46 2 11 0;
+#X connect 46 3 12 0;
+#X connect 46 4 13 0;
+#X connect 47 0 25 0;
+#X connect 47 1 24 0;
+#X connect 47 2 29 0;
+#X connect 47 7 58 0;
+#X connect 48 0 22 0;
+#X connect 48 1 19 0;
+#X connect 48 2 20 0;
+#X connect 48 3 21 0;
+#X connect 49 0 44 0;
+#X connect 49 1 41 0;
+#X connect 49 2 42 0;
+#X connect 49 3 43 0;
+#X connect 53 0 52 4;
+#X connect 54 0 48 0;
+#X connect 55 0 48 0;
+#X connect 58 0 69 0;
+#X connect 66 0 68 0;
+#X connect 67 0 65 0;
+#X connect 69 0 56 0;
diff --git a/nsend/nsend-sender.pd b/nsend/nsend-sender.pd
new file mode 100644
index 0000000..b3094ee
--- /dev/null
+++ b/nsend/nsend-sender.pd
@@ -0,0 +1,4 @@
+#N canvas 1517 823 127 108 10;
+#X obj 19 17 r \$1send\$2;
+#X obj 19 67 s \$3\$2;
+#X connect 0 0 1 0;
diff --git a/nsend/nsend.pd b/nsend/nsend.pd
new file mode 100644
index 0000000..3280803
--- /dev/null
+++ b/nsend/nsend.pd
@@ -0,0 +1,156 @@
+#N canvas 75 22 986 619 10;
+#X obj 154 60 \$2;
+#X obj 154 153 until;
+#X obj 154 179 t b b b b;
+#X obj 510 359 v \$0x;
+#X obj 496 382 v \$0cnt;
+#X obj 342 251 v \$0x;
+#X obj 173 310 v \$0x;
+#X obj 212 254 v \$0cnt;
+#X obj 173 226 t b b b;
+#X obj 173 388 s \$0self;
+#X obj 539 43 namecanvas \$0self;
+#X obj 14 463 s \$0self;
+#X obj 14 312 * 2;
+#X obj 14 360 t f f;
+#X obj 14 407 pack f f;
+#X obj 59 377 + 1;
+#X obj 342 295 s \$0self;
+#X msg 14 435 connect \$1 0 \$2 0;
+#X obj 14 225 v \$0cnt;
+#X msg 342 273 obj \$1 500 inlet;
+#X obj 154 7 initbang;
+#X obj 154 83 sel 0;
+#X msg 154 106 1;
+#X obj 14 279 abs;
+#X obj 537 196 - 1;
+#X obj 192 281 \$0;
+#X obj 173 335 pack f f f;
+#X msg 173 362 obj \$1 550 s \$2send\$3;
+#X msg 804 278 clear;
+#X obj 694 245 \$2;
+#X obj 694 318 until;
+#X obj 694 268 sel 0;
+#X msg 694 291 1;
+#X msg 694 520 obj 50 \$1 nsend-sender \$2 \$3 \$4;
+#X obj 758 394 f 0;
+#X obj 786 394 + 1;
+#X obj 758 429 * 15;
+#X obj 694 480 pack f f f s;
+#X obj 717 396 \$0;
+#X obj 694 354 t b b b b;
+#X obj 694 446 f;
+#X msg 773 302 0;
+#X obj 694 208 t b b b a;
+#X obj 892 225 t a;
+#X obj 829 394 list append;
+#X obj 694 180 r \$0sendname;
+#X obj 859 14 inlet;
+#X obj 859 39 list;
+#X obj 859 62 s \$0sendname;
+#X obj 288 117 s \$0sendname;
+#X obj 154 33 t b b;
+#X obj 288 50 list append \$1;
+#N canvas 1194 177 440 379 \$0senders 1;
+#X restore 859 114 pd \$0senders;
+#X obj 694 552 s pd-\$0senders;
+#X obj 510 220 * 100;
+#X obj 510 244 t f b;
+#X obj 537 292 * 100;
+#X obj 510 332 -;
+#X obj 537 315 - 500;
+#X obj 230 311 - 1;
+#X obj 194 130 s \$0n;
+#X obj 154 130 t a a;
+#X obj 42 251 r \$0n;
+#X obj 14 251 -;
+#X obj 511 172 r \$0n;
+#X obj 496 196 f;
+#X obj 563 269 r \$0n;
+#X obj 537 269 f;
+#X obj 804 301 s pd-\$0senders;
+#X obj 288 72 sel 0;
+#X msg 288 94 symbol noname;
+#X obj 14 336 + 72;
+#X connect 0 0 21 0;
+#X connect 1 0 2 0;
+#X connect 2 0 18 0;
+#X connect 2 1 8 0;
+#X connect 2 2 5 0;
+#X connect 2 3 65 0;
+#X connect 5 0 19 0;
+#X connect 6 0 26 0;
+#X connect 7 0 59 0;
+#X connect 8 0 6 0;
+#X connect 8 1 25 0;
+#X connect 8 2 7 0;
+#X connect 12 0 71 0;
+#X connect 13 0 14 0;
+#X connect 13 1 15 0;
+#X connect 14 0 17 0;
+#X connect 15 0 14 1;
+#X connect 17 0 11 0;
+#X connect 18 0 63 0;
+#X connect 19 0 16 0;
+#X connect 20 0 50 0;
+#X connect 21 0 22 0;
+#X connect 21 1 61 0;
+#X connect 22 0 61 0;
+#X connect 23 0 12 0;
+#X connect 24 0 65 1;
+#X connect 25 0 26 1;
+#X connect 26 0 27 0;
+#X connect 27 0 9 0;
+#X connect 28 0 68 0;
+#X connect 29 0 31 0;
+#X connect 30 0 39 0;
+#X connect 31 0 32 0;
+#X connect 31 1 30 0;
+#X connect 32 0 30 0;
+#X connect 33 0 53 0;
+#X connect 34 0 35 0;
+#X connect 34 0 36 0;
+#X connect 34 0 37 2;
+#X connect 35 0 34 1;
+#X connect 36 0 40 1;
+#X connect 37 0 33 0;
+#X connect 38 0 37 1;
+#X connect 39 0 40 0;
+#X connect 39 1 38 0;
+#X connect 39 2 34 0;
+#X connect 39 3 44 0;
+#X connect 40 0 37 0;
+#X connect 41 0 34 1;
+#X connect 42 0 29 0;
+#X connect 42 1 41 0;
+#X connect 42 2 28 0;
+#X connect 42 3 43 0;
+#X connect 43 0 44 1;
+#X connect 44 0 37 3;
+#X connect 45 0 42 0;
+#X connect 46 0 47 0;
+#X connect 47 0 48 0;
+#X connect 50 0 0 0;
+#X connect 50 1 51 0;
+#X connect 51 0 69 0;
+#X connect 54 0 55 0;
+#X connect 55 0 57 0;
+#X connect 55 1 67 0;
+#X connect 56 0 58 0;
+#X connect 57 0 3 0;
+#X connect 58 0 57 1;
+#X connect 59 0 26 2;
+#X connect 61 0 1 0;
+#X connect 61 1 60 0;
+#X connect 62 0 63 1;
+#X connect 63 0 23 0;
+#X connect 64 0 65 1;
+#X connect 65 0 4 0;
+#X connect 65 0 24 0;
+#X connect 65 0 54 0;
+#X connect 66 0 67 1;
+#X connect 67 0 56 0;
+#X connect 69 0 70 0;
+#X connect 69 1 49 0;
+#X connect 70 0 49 0;
+#X connect 71 0 13 0;
diff --git a/pdsvn/pdsvn.pd b/pdsvn/pdsvn.pd
new file mode 100644
index 0000000..9cad15a
--- /dev/null
+++ b/pdsvn/pdsvn.pd
@@ -0,0 +1,795 @@
+#N canvas 470 116 841 688 10;
+#X obj 488 77 getpatchname 1;
+#X obj 425 77 getdir 1;
+#X obj 425 103 list append;
+#X obj 405 21 loadbang;
+#X obj 425 128 list2symbol /;
+#X obj 43 14 cnv 16 60 16 empty \$0svndisplay Zen 3 9 0 8 -228992 -1
+0;
+#X obj 20 156 list;
+#X obj 41 131 r \$0parentFile;
+#X obj 20 201 list trim;
+#X obj 20 345 list split 1;
+#X obj 425 152 s \$0parentFile;
+#X obj 20 493 s \$0svndisplay;
+#X obj 13 35 bng 12 250 50 0 \$0diff \$0diffR Diff 14 7 0 8 -260097
+-1 -1;
+#X obj 238 73 list;
+#X obj 259 48 r \$0parentFile;
+#X obj 238 118 list trim;
+#X obj 238 21 r \$0diff;
+#X obj 238 98 list prepend svn diff;
+#X obj 238 169 print DIFF;
+#X obj 405 44 t b b b;
+#X obj 405 178 s \$0status;
+#X obj 20 82 r \$0status;
+#X obj 81 35 bng 12 250 50 0 \$0commit \$0commitR ci 14 7 0 8 -4032
+-1 -1;
+#X obj 236 222 r \$0commit;
+#N canvas 1039 176 401 328 \$0commitWindow 0;
+#X obj 29 235 cnv 15 150 60 empty empty empty 20 12 0 14 -204786 -66577
+0;
+#X obj 38 246 cnv 15 30 40 empty empty empty 20 12 0 14 -1 -66577 0
+;
+#X obj 48 256 bng 20 250 50 0 \$0confirmCommit \$0confirmCommitR empty
+14 7 0 8 -4032 -13381 -1;
+#X obj 69 247 cnv 15 100 40 empty empty OMMIT 0 20 0 30 -262144 -66577
+0;
+#X obj 218 235 cnv 15 150 60 empty empty empty 20 12 0 14 -204786 -66577
+0;
+#X obj 227 247 cnv 15 30 40 empty empty empty 20 12 0 14 -1 -66577
+0;
+#X obj 237 257 bng 20 250 50 0 \$0cancelCommit \$0cancelCommitR empty
+14 7 0 8 -191407 -1 -1;
+#X obj 258 247 cnv 15 100 40 empty empty ANCEL 0 20 0 30 -262144 -66577
+0;
+#X obj 192 284 bng 12 250 50 0 \$0diff \$0diffR Diff -2 18 0 8 -260097
+-1 -1;
+#X obj 29 26 tkwidgets/text 340 184 0;
+#X obj 29 8 r \$0getLogMessage;
+#X obj 29 8 cnv 17 339 17 empty empty empty 20 12 0 14 -261234 -66577
+0;
+#X obj 29 210 s \$0logPrepare;
+#X obj 29 210 cnv 17 339 17 empty empty empty 20 12 0 14 -261234 -66577
+0;
+#X obj 119 56;
+#X connect 9 0 12 0;
+#X connect 10 0 9 0;
+#X restore 11 58 pd \$0commitWindow;
+#X msg 236 246 vis 1;
+#X msg 20 473 label Modified \, color 16 -1;
+#X msg 310 245 vis 0;
+#X obj 310 222 r \$0cancelCommit;
+#X obj 453 213 r \$0confirmCommit;
+#X obj 236 271 s pd-\$0commitWindow;
+#X obj 20 385 sel M ? A C;
+#X msg 51 433 label Added \, color 17 -1;
+#X msg 67 413 label Conflict \, color 13 -1;
+#X msg 35 453 label Unversioned \, color 5 -1;
+#X obj 453 327 list;
+#X obj 483 327 r \$0parentFile;
+#X obj 453 442 list trim;
+#X obj 453 377 list append -m;
+#X obj 453 421 list append;
+#X obj 467 489 print SVNCommit;
+#X obj 453 243 s \$0getLogMessage;
+#X obj 631 81 list;
+#X obj 652 56 r \$0parentFile;
+#X obj 631 126 list trim;
+#X obj 631 29 r \$0add;
+#X obj 631 106 list prepend svn add;
+#X msg 627 284 capture 1;
+#X obj 669 334 route menusave;
+#X obj 627 258 loadbang;
+#X obj 50 35 bng 12 250 50 0 \$0add \$0addR Add 14 7 0 8 -155243 -1
+-1;
+#X obj 13 13 bng 16 250 50 0 \$0status \$0statusR st 18 9 0 8 -262144
+-1 -1;
+#X obj 13 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 28 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 13 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 26 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 27 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 28 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 23 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 24 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 20 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 21 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 22 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 23 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 18 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 19 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 20 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 21 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 16 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 17 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 18 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 14 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 15 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 16 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 17 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 14 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 15 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 16 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 17 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 18 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 19 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 20 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 21 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 22 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 23 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 24 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 26 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 27 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 28 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 13 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 18 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 19 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 20 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 21 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 22 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 23 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 24 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 26 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 27 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 28 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 13 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 26 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 27 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 28 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 26 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 27 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 23 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 24 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 20 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 21 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 22 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 23 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 24 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 18 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 19 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 20 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 15 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 16 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 17 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 18 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 14 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 15 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 658 188 print SVNAdd;
+#X msg 631 438 label Checking... \, color 1 -1;
+#X obj 631 464 s \$0svndisplay;
+#X obj 631 412 r \$0status;
+#N canvas 314 368 289 111 dependencies 0;
+#X text 12 9 Toxy;
+#X text 12 24 Zexy;
+#X text 12 53 getpatchname with parent access modification;
+#X text 12 68 popen;
+#X text 12 38 getdir;
+#X text 12 83 tkwidgets/text;
+#X restore 718 18 pd dependencies;
+#N canvas 283 676 385 456 enquote-log 0;
+#X obj 39 52 s \$0getLogMessage;
+#X obj 39 30 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 112 196 list split 1;
+#X obj 266 230 list-splat -1;
+#X obj 112 379 list append;
+#X obj 112 336 list append;
+#X text 165 105 Quotes the entered log message;
+#X obj 112 407 outlet;
+#X obj 49 77 inlet;
+#X msg 112 281 "\$1;
+#X msg 303 277 \$1";
+#X obj 76 123 list length;
+#X obj 49 101 t a a;
+#X obj 49 160 demultiplex;
+#X msg 49 219 "\$1";
+#X obj 112 140 != 1;
+#X connect 1 0 0 0;
+#X connect 2 0 9 0;
+#X connect 2 1 3 0;
+#X connect 3 0 5 1;
+#X connect 3 1 10 0;
+#X connect 4 0 7 0;
+#X connect 5 0 4 0;
+#X connect 8 0 12 0;
+#X connect 9 0 5 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 0;
+#X connect 12 0 13 0;
+#X connect 12 1 11 0;
+#X connect 13 0 14 0;
+#X connect 13 1 2 0;
+#X connect 14 0 7 0;
+#X connect 15 0 13 1;
+#X restore 267 411 pd enquote-log;
+#X obj 267 385 r \$0logPrepare;
+#X obj 267 438 s \$0logMessage;
+#X obj 627 310 tot .parent;
+#X obj 20 222 popen;
+#X obj 453 463 popen;
+#X obj 631 147 popen;
+#X obj 20 321 symbol2list;
+#X obj 59 223 print SVNStatus;
+#X obj 453 352 list prepend svn ci;
+#X obj 453 514 symbol2list;
+#X msg 480 601 clear;
+#X obj 480 625 s \$0getLogMessage;
+#X obj 370 597 s \$0status;
+#X obj 20 181 list prepend svn st;
+#X msg 121 345 label Zen \, color 8 -1;
+#X obj 74 272 spigot 1;
+#X msg 47 296 0;
+#X obj 47 243 t b b;
+#X msg 119 244 1;
+#X obj 20 273 t a b;
+#X text 96 295 ^^ voodoo for svn's silent "no changes" and popen's
+left-to-right behavior;
+#X obj 453 537 list split 1;
+#X obj 453 559 sel Committed;
+#X obj 453 580 t b b;
+#N canvas 0 22 450 300 remotelogmessagesconcept 0;
+#X obj 95 -107 r svn;
+#X obj 95 -57 list append >>>;
+#X obj 95 -9 list append;
+#X obj 177 -9 t a;
+#X obj 74 19 list;
+#X obj 74 -111 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 87 41 print log;
+#X obj 95 -83 route clearlog;
+#X obj 158 -32 b;
+#X msg 74 67 TODO to commit-log text widget;
+#X text 41 -189 Haven't quite figured this out yet. Might make an [svnlog]
+object...;
+#X connect 0 0 7 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 0 4 1;
+#X connect 3 0 2 1;
+#X connect 4 0 9 0;
+#X connect 4 0 6 0;
+#X connect 5 0 4 0;
+#X connect 7 0 8 0;
+#X connect 7 1 1 0;
+#X connect 8 0 2 1;
+#X restore 631 521 pd remotelogmessagesconcept;
+#X obj 453 303 t b a;
+#X obj 453 275 r \$0logMessage;
+#X obj 669 359 s \$0status;
+#X obj 631 208 s \$0status;
+#X obj 631 168 t b a;
+#X obj 238 139 popen;
+#X obj 56 638 s \$0addR;
+#X msg 21 583 pos 50 35;
+#X msg 91 583 pos 150 35;
+#X obj 27 365 s \$0addable?;
+#X obj 21 553 sel ?;
+#X obj 21 532 r \$0addable?;
+#X connect 0 0 2 1;
+#X connect 1 0 2 0;
+#X connect 2 0 4 0;
+#X connect 3 0 19 0;
+#X connect 4 0 10 0;
+#X connect 6 0 327 0;
+#X connect 7 0 6 1;
+#X connect 8 0 317 0;
+#X connect 9 0 31 0;
+#X connect 9 0 348 0;
+#X connect 13 0 17 0;
+#X connect 14 0 13 1;
+#X connect 15 0 344 0;
+#X connect 16 0 13 0;
+#X connect 17 0 15 0;
+#X connect 19 0 20 0;
+#X connect 19 1 1 0;
+#X connect 19 2 0 0;
+#X connect 21 0 6 0;
+#X connect 23 0 25 0;
+#X connect 25 0 30 0;
+#X connect 26 0 11 0;
+#X connect 27 0 30 0;
+#X connect 28 0 27 0;
+#X connect 29 0 41 0;
+#X connect 31 0 26 0;
+#X connect 31 1 34 0;
+#X connect 31 2 32 0;
+#X connect 31 3 33 0;
+#X connect 32 0 11 0;
+#X connect 33 0 11 0;
+#X connect 34 0 11 0;
+#X connect 35 0 322 0;
+#X connect 36 0 35 1;
+#X connect 37 0 318 0;
+#X connect 38 0 39 0;
+#X connect 39 0 37 0;
+#X connect 42 0 46 0;
+#X connect 43 0 42 1;
+#X connect 44 0 319 0;
+#X connect 45 0 42 0;
+#X connect 46 0 44 0;
+#X connect 47 0 316 0;
+#X connect 48 0 341 0;
+#X connect 49 0 47 0;
+#X connect 309 0 310 0;
+#X connect 311 0 309 0;
+#X connect 313 0 315 0;
+#X connect 314 0 313 0;
+#X connect 316 2 48 0;
+#X connect 317 0 321 0;
+#X connect 317 0 333 0;
+#X connect 317 1 331 0;
+#X connect 318 0 323 0;
+#X connect 318 0 40 0;
+#X connect 319 0 343 0;
+#X connect 320 0 9 0;
+#X connect 322 0 38 0;
+#X connect 323 0 335 0;
+#X connect 324 0 325 0;
+#X connect 327 0 8 0;
+#X connect 328 0 11 0;
+#X connect 329 0 328 0;
+#X connect 330 0 329 1;
+#X connect 331 0 332 0;
+#X connect 331 1 329 0;
+#X connect 332 0 329 1;
+#X connect 333 0 320 0;
+#X connect 333 1 330 0;
+#X connect 335 0 336 0;
+#X connect 336 0 337 0;
+#X connect 337 0 326 0;
+#X connect 337 1 324 0;
+#X connect 339 0 35 0;
+#X connect 339 1 39 1;
+#X connect 340 0 339 0;
+#X connect 343 0 342 0;
+#X connect 343 1 308 0;
+#X connect 344 0 18 0;
+#X connect 346 0 345 0;
+#X connect 347 0 345 0;
+#X connect 349 0 346 0;
+#X connect 349 1 347 0;
+#X connect 350 0 349 0;
+#X coords 0 -1 1 1 96 40 2 10 10;
diff --git a/pdsvn/pdsvndir.pd b/pdsvn/pdsvndir.pd
new file mode 100644
index 0000000..aa8e1a7
--- /dev/null
+++ b/pdsvn/pdsvndir.pd
@@ -0,0 +1,1089 @@
+#N canvas 559 22 841 688 10;
+#X obj 432 88 getdir 1;
+#X obj 405 21 loadbang;
+#X obj 43 14 cnv 16 60 16 empty \$0svndisplay Modified 3 9 0 8 -24198
+-1 0;
+#X obj 20 156 list;
+#X obj 20 201 list trim;
+#X obj 20 345 list split 1;
+#X obj 20 493 s \$0svndisplay;
+#X obj 13 35 bng 12 250 50 0 \$0diff \$0diffR Diff 14 7 0 8 -260097
+-1 -1;
+#X obj 238 73 list;
+#X obj 238 118 list trim;
+#X obj 238 21 r \$0diff;
+#X obj 238 98 list prepend svn diff;
+#X obj 238 169 print DIFF;
+#X obj 405 168 s \$0status;
+#X obj 20 72 r \$0status;
+#X obj 81 35 bng 12 250 50 0 \$0commit \$0commitR ci 14 7 0 8 -4032
+-1 -1;
+#X obj 25 604 r \$0commit;
+#N canvas 1039 176 401 328 \$0commitWindow 0;
+#X obj 29 235 cnv 15 150 60 empty empty empty 20 12 0 14 -204786 -66577
+0;
+#X obj 38 246 cnv 15 30 40 empty empty empty 20 12 0 14 -1 -66577 0
+;
+#X obj 48 256 bng 20 250 50 0 \$0confirmCommit \$0confirmCommitR empty
+14 7 0 8 -4032 -13381 -1;
+#X obj 69 247 cnv 15 100 40 empty empty OMMIT 0 20 0 30 -262144 -66577
+0;
+#X obj 218 235 cnv 15 150 60 empty empty empty 20 12 0 14 -204786 -66577
+0;
+#X obj 227 247 cnv 15 30 40 empty empty empty 20 12 0 14 -1 -66577
+0;
+#X obj 237 257 bng 20 250 50 0 \$0cancelCommit \$0cancelCommitR empty
+14 7 0 8 -191407 -1 -1;
+#X obj 258 247 cnv 15 100 40 empty empty ANCEL 0 20 0 30 -262144 -66577
+0;
+#X obj 192 284 bng 12 250 50 0 \$0diff \$0diffR Diff -2 18 0 8 -260097
+-1 -1;
+#X obj 29 26 tkwidgets/text 340 184 0;
+#X obj 29 8 r \$0getLogMessage;
+#X obj 29 8 cnv 17 339 17 empty empty empty 20 12 0 14 -261234 -66577
+0;
+#X obj 29 210 s \$0logPrepare;
+#X obj 29 210 cnv 17 339 17 empty empty empty 20 12 0 14 -261234 -66577
+0;
+#X obj 119 56;
+#X connect 9 0 12 0;
+#X connect 10 0 9 0;
+#X restore 112 11 pd \$0commitWindow;
+#X msg 25 628 vis 1;
+#X msg 20 473 label Modified \, color 16 -1;
+#X msg 99 627 vis 0;
+#X obj 99 604 r \$0cancelCommit;
+#X obj 453 219 r \$0confirmCommit;
+#X obj 25 653 s pd-\$0commitWindow;
+#X obj 20 365 sel M ? A C;
+#X msg 51 433 label Added \, color 17 -1;
+#X msg 67 413 label Conflict \, color 13 -1;
+#X msg 35 453 label Unversioned \, color 5 -1;
+#X obj 453 327 list;
+#X obj 453 442 list trim;
+#X obj 453 377 list append -m;
+#X obj 453 421 list append;
+#X obj 467 489 print SVNCommit;
+#X obj 453 243 s \$0getLogMessage;
+#X obj 661 71 list;
+#X obj 661 116 list trim;
+#X obj 661 19 r \$0add;
+#X obj 661 96 list prepend svn add;
+#X msg 637 294 capture 1;
+#X obj 679 344 route menusave;
+#X obj 637 268 loadbang;
+#X obj 13 13 bng 16 250 50 0 \$0status \$0statusR st 18 9 0 8 -262144
+-1 -1;
+#X obj 13 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 28 13 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 13 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 26 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 27 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 28 14 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 23 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 24 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 15 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 20 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 21 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 22 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 23 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 16 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 18 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 19 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 20 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 21 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 17 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 16 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 17 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 18 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 18 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 14 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 15 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 16 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 17 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 19 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 14 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 15 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 16 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 17 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 18 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 19 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 20 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 21 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 22 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 23 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 24 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 26 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 27 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 28 20 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 13 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 18 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 19 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 20 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 21 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 22 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 23 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 24 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 26 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 27 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 28 21 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 13 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 26 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 27 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 28 22 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 26 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 27 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 23 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 23 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 24 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 25 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 24 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 20 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 21 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 22 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 23 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 24 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 25 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 15 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 18 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 19 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 20 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 26 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 14 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 15 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 16 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 17 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 18 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 27 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 13 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 14 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -262144
+-262144 0;
+#X obj 15 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 16 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 17 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 18 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 19 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 20 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 21 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 22 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 23 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 24 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 25 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 26 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 27 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 28 28 cnv 1 1 1 empty jibberishhhh empty 20 12 0 14 -62784 -262144
+0;
+#X obj 688 178 print SVNAdd;
+#X msg 631 438 label Checking... \, color 1 -1;
+#X obj 631 464 s \$0svndisplay;
+#X obj 631 412 r \$0status;
+#N canvas 314 368 289 111 dependencies 0;
+#X text 12 9 Toxy;
+#X text 12 24 Zexy;
+#X text 12 53 getpatchname with parent access modification;
+#X text 12 68 popen;
+#X text 12 38 getdir;
+#X text 12 83 tkwidgets/text;
+#X restore 718 19 pd dependencies;
+#N canvas 283 676 385 456 enquote-log 0;
+#X obj 39 52 s \$0getLogMessage;
+#X obj 39 30 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 112 196 list split 1;
+#X obj 266 230 list-splat -1;
+#X obj 112 379 list append;
+#X obj 112 336 list append;
+#X text 165 105 Quotes the entered log message;
+#X obj 112 407 outlet;
+#X obj 49 77 inlet;
+#X msg 112 281 "\$1;
+#X msg 303 277 \$1";
+#X obj 76 123 list length;
+#X obj 49 101 t a a;
+#X obj 49 160 demultiplex;
+#X msg 49 219 "\$1";
+#X obj 112 140 != 1;
+#X connect 1 0 0 0;
+#X connect 2 0 9 0;
+#X connect 2 1 3 0;
+#X connect 3 0 5 1;
+#X connect 3 1 10 0;
+#X connect 4 0 7 0;
+#X connect 5 0 4 0;
+#X connect 8 0 12 0;
+#X connect 9 0 5 0;
+#X connect 10 0 4 1;
+#X connect 11 0 15 0;
+#X connect 12 0 13 0;
+#X connect 12 1 11 0;
+#X connect 13 0 14 0;
+#X connect 13 1 2 0;
+#X connect 14 0 7 0;
+#X connect 15 0 13 1;
+#X restore 226 625 pd enquote-log;
+#X obj 226 599 r \$0logPrepare;
+#X obj 226 652 s \$0logMessage;
+#X obj 637 320 tot .parent;
+#X obj 20 222 popen;
+#X obj 453 463 popen;
+#X obj 661 137 popen;
+#X obj 20 321 symbol2list;
+#X obj 453 352 list prepend svn ci;
+#X obj 453 514 symbol2list;
+#X msg 480 601 clear;
+#X obj 480 625 s \$0getLogMessage;
+#X obj 370 597 s \$0status;
+#X obj 20 181 list prepend svn st;
+#X msg 121 345 label Zen \, color 8 -1;
+#X obj 74 272 spigot 1;
+#X msg 47 296 0;
+#X obj 47 243 t b b;
+#X msg 119 244 1;
+#X obj 20 273 t a b;
+#X text 104 288 ^^ voodoo for svn's silent "no changes" and popen's
+left-to-right behavior;
+#X obj 453 537 list split 1;
+#X obj 453 559 sel Committed;
+#X obj 453 580 t b b;
+#N canvas 0 22 450 300 remotelogmessagesconcept 0;
+#X obj 25 -87 r svn;
+#X obj 25 -37 list append >>>;
+#X obj 25 11 list append;
+#X obj 107 11 t a;
+#X obj 4 39 list;
+#X obj 4 -91 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 17 61 print log;
+#X obj 25 -63 route clearlog;
+#X obj 88 -12 b;
+#X msg 4 87 TODO to commit-log text widget;
+#X text 41 -189 Haven't quite figured this out yet. Might make an [svnlog]
+object...;
+#X text 41 -160 The idea is to be able to beam messages to the log
+from whereever you happen to be working.;
+#X text 41 -131 Need two ways \, one for patch-local beaming and one
+for "project" beaming (pdsvn-dir);
+#X connect 0 0 7 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 0 4 1;
+#X connect 3 0 2 1;
+#X connect 4 0 9 0;
+#X connect 4 0 6 0;
+#X connect 5 0 4 0;
+#X connect 7 0 8 0;
+#X connect 7 1 1 0;
+#X connect 8 0 2 1;
+#X restore 631 521 pd remotelogmessagesconcept;
+#X obj 453 303 t b a;
+#X obj 453 275 r \$0logMessage;
+#X obj 679 369 s \$0status;
+#X obj 661 198 s \$0status;
+#X obj 661 158 t b a;
+#X obj 483 327 r \$0parentDir;
+#X obj 432 142 s \$0parentDir;
+#X obj 259 48 r \$0parentDir;
+#X obj 238 141 popen;
+#X floatatom 43 32 2 0 0 0 - #0upDirsR #0upDirs;
+#X obj 432 114 trimdirs;
+#X obj 498 44 t b a;
+#X obj 498 21 r \$0upDirs;
+#X obj 41 131 r \$0parentDir;
+#X obj 682 46 r \$0unversionedFile;
+#N canvas 460 273 437 532 \$0statusWindow 0;
+#X obj 10 30 bng 17 250 50 0 13909add0 13909null Add 2 -6 0 8 -146753
+-1 -1;
+#X msg 40 30 ? /Users/LukeIannini/PureData/sft/Works/ Ribbon .app
+;
+#X obj 10 60 bng 17 250 50 0 13909add1 13909null Add 2 -6 0 8 -146753
+-1 -1;
+#X msg 40 60 ? /Users/LukeIannini/PureData/sft/Works/Icon;
+#X msg 40 90 M /Users/LukeIannini/PureData/sft/Works/Bathyscaphe16.pd
+;
+#X restore 112 31 pd \$0statusWindow;
+#N canvas 600 206 773 589 liststatus 0;
+#X obj 28 91 r \$0SVNStatus;
+#X obj 28 70 print SVNStatus;
+#X obj 203 37 r \$0clearStatusWindow;
+#X msg 244 54 clear;
+#X obj 244 77 s pd-\$0statusWindow;
+#X msg 203 64 0;
+#X obj 97 166 f;
+#X obj 125 166 + 1;
+#X obj 28 332 list prepend;
+#X obj 28 543 s pd-\$0statusWindow;
+#X obj 97 249 +;
+#X obj 123 249 r \$0yOffset;
+#X obj 28 122 t a b a;
+#X obj 78 122 s \$0process;
+#X obj 505 43 r \$0process;
+#X obj 505 73 s2l-explode;
+#X obj 584 116 list length;
+#X obj 203 97 s \$0listStatusReset;
+#X obj 112 145 r \$0listStatusReset;
+#X obj 584 226 f;
+#X obj 612 226 +;
+#X obj 584 174 * 15;
+#X obj 631 195 r \$0listStatusReset;
+#X obj 584 262 s \$0yOffset;
+#X obj 505 99 t a a;
+#X msg 28 357 msg 40 \$1 \$2;
+#X obj 584 195 t b a;
+#X obj 584 139 div 61;
+#X obj 97 208 * 30;
+#X obj 97 228 + 30;
+#X msg 137 491 obj 10 \$1 bng 17 250 50 0 \$2add\$3 \$2null Add 2 -6
+0 8 -146753 -1 -1;
+#X obj 145 191 s \$0index;
+#X obj 149 339 r \$0index;
+#X obj 137 363 list append;
+#X obj 137 317 list append \$0;
+#X obj 137 292 spigot;
+#X obj 170 269 r \$0unversioned?;
+#X obj 455 133 list split 1;
+#X obj 395 183 sel ?;
+#X msg 395 206 1;
+#X msg 422 206 0;
+#X obj 395 240 s \$0unversioned?;
+#X obj 526 411 list trim;
+#X obj 526 391 list prepend svn add;
+#X obj 553 473 print SVNAdd;
+#X obj 526 432 popen;
+#X obj 526 493 s \$0status;
+#X obj 526 453 t b a;
+#N canvas 202 112 718 723 \$0add-receivers 0;
+#X obj 0 0 r 13909add0;
+#X obj 20 20 r 13909filename0;
+#X obj 0 40 list;
+#X obj 0 60 s 13909fileAdder;
+#X obj 20 20 r 13909add1;
+#X obj 40 40 r 13909filename1;
+#X obj 20 60 list;
+#X obj 20 80 s 13909fileAdder;
+#X obj 40 40 r 13909add2;
+#X obj 60 60 r 13909filename2;
+#X obj 40 80 list;
+#X obj 40 100 s 13909fileAdder;
+#X connect 0 0 2 0;
+#X connect 1 0 2 1;
+#X connect 2 0 3 0;
+#X connect 4 0 6 0;
+#X connect 5 0 6 1;
+#X connect 6 0 7 0;
+#X connect 8 0 10 0;
+#X connect 9 0 10 1;
+#X connect 10 0 11 0;
+#X restore 27 41 pd \$0add-receivers;
+#X obj 283 54 s pd-\$0add-receivers;
+#X obj 489 171 list split 6;
+#X obj 172 390 t b a;
+#X obj 172 456 s;
+#X obj 172 425 list;
+#X msg 234 407 symbol \$2filename\$3;
+#X obj 526 360 r \$0fileAdder;
+#N canvas 22 237 843 570 buildreceivers 0;
+#X msg 695 413 obj \$1 \$2 r \$3add\$4;
+#X msg 495 412 obj \$1 \$2 r \$3filename\$4;
+#X msg 375 411 obj \$1 \$2 list;
+#X obj 472 526 s pd-\$0add-receivers;
+#X msg 219 411 obj \$1 \$2 s \$3fileAdder;
+#X obj 611 180 list append;
+#X obj 309 141 list append \$0;
+#X obj 611 209 t a a;
+#X obj 309 163 t a b a;
+#X msg 79 171 connect \$1 0 \$2 0;
+#X obj 79 125 + 0;
+#X obj 109 125 + 2;
+#X obj 79 149 pack f f;
+#X obj 63 240 pack f f;
+#X msg 33 352 connect \$1 0 \$2 0;
+#X obj 33 330 pack f f;
+#X obj 63 306 + 3;
+#X msg 63 262 connect \$1 0 \$2 1;
+#X obj 79 102 t a a;
+#X obj 63 193 t a a;
+#X obj 33 283 t a a;
+#X obj 551 51 * 20;
+#X obj 33 70 * 4;
+#X obj 256 16 s \$0prep;
+#X obj 674 157 r \$0prep;
+#X obj 551 27 r \$0prep;
+#X obj 564 359 + 20;
+#X obj 551 76 s \$0xPos;
+#X obj 219 383 list prepend;
+#X obj 243 361 r \$0xPos;
+#X obj 219 339 list prepend;
+#X obj 375 382 list prepend;
+#X obj 399 360 r \$0xPos;
+#X obj 375 338 list prepend;
+#X obj 397 267 r \$0prep;
+#X obj 495 382 list prepend;
+#X obj 507 360 r \$0xPos;
+#X obj 495 338 list prepend;
+#X obj 517 267 r \$0prep;
+#X obj 695 382 list prepend;
+#X obj 719 360 r \$0xPos;
+#X obj 695 338 list prepend;
+#X obj 717 267 r \$0prep;
+#X obj 717 310 * 20;
+#X obj 517 310 * 20;
+#X obj 241 311 * 20;
+#X obj 397 310 * 20;
+#X obj 397 289 + 2;
+#X obj 517 289 + 1;
+#X obj 241 290 + 3;
+#X obj 241 268 r \$0prep;
+#X obj 32 392 s pd-\$0add-receivers;
+#X obj 63 216 + 1;
+#X obj 93 216 + 2;
+#X obj 33 306 + 2;
+#X obj 206 16 t a b a;
+#X obj 219 239 list append;
+#X obj 282 215 r \$0prep;
+#X obj 206 -3 r \$0buildIndex;
+#X connect 0 0 3 0;
+#X connect 1 0 3 0;
+#X connect 2 0 3 0;
+#X connect 4 0 3 0;
+#X connect 5 0 7 0;
+#X connect 6 0 8 0;
+#X connect 7 0 37 0;
+#X connect 7 1 41 0;
+#X connect 8 0 56 0;
+#X connect 8 1 33 0;
+#X connect 8 2 5 0;
+#X connect 9 0 51 0;
+#X connect 10 0 12 0;
+#X connect 11 0 12 1;
+#X connect 12 0 9 0;
+#X connect 13 0 17 0;
+#X connect 14 0 51 0;
+#X connect 15 0 14 0;
+#X connect 16 0 15 1;
+#X connect 17 0 51 0;
+#X connect 18 0 10 0;
+#X connect 18 1 11 0;
+#X connect 19 0 52 0;
+#X connect 19 1 53 0;
+#X connect 20 0 54 0;
+#X connect 20 1 16 0;
+#X connect 21 0 27 0;
+#X connect 22 0 18 0;
+#X connect 22 0 19 0;
+#X connect 22 0 20 0;
+#X connect 24 0 5 1;
+#X connect 25 0 21 0;
+#X connect 26 0 35 1;
+#X connect 28 0 4 0;
+#X connect 29 0 28 1;
+#X connect 30 0 28 0;
+#X connect 31 0 2 0;
+#X connect 32 0 31 1;
+#X connect 33 0 31 0;
+#X connect 34 0 47 0;
+#X connect 35 0 1 0;
+#X connect 36 0 26 0;
+#X connect 37 0 35 0;
+#X connect 38 0 48 0;
+#X connect 39 0 0 0;
+#X connect 40 0 39 1;
+#X connect 41 0 39 0;
+#X connect 42 0 43 0;
+#X connect 43 0 41 1;
+#X connect 44 0 37 1;
+#X connect 45 0 30 1;
+#X connect 46 0 33 1;
+#X connect 47 0 46 0;
+#X connect 48 0 44 0;
+#X connect 49 0 45 0;
+#X connect 50 0 49 0;
+#X connect 52 0 13 0;
+#X connect 53 0 13 1;
+#X connect 54 0 15 0;
+#X connect 55 0 22 0;
+#X connect 55 1 6 0;
+#X connect 55 2 23 0;
+#X connect 56 0 30 0;
+#X connect 57 0 56 1;
+#X connect 58 0 55 0;
+#X restore 27 21 pd buildreceivers;
+#X obj 489 197 list-l2s;
+#X obj 145 210 s \$0buildIndex;
+#X obj 234 441 print sender;
+#X obj 97 186 t a a;
+#X obj 489 218 s \$0filename;
+#X obj 231 379 r \$0filename;
+#X connect 0 0 1 0;
+#X connect 0 0 12 0;
+#X connect 2 0 3 0;
+#X connect 2 0 5 0;
+#X connect 3 0 4 0;
+#X connect 3 0 49 0;
+#X connect 5 0 17 0;
+#X connect 6 0 7 0;
+#X connect 6 0 60 0;
+#X connect 7 0 6 1;
+#X connect 8 0 25 0;
+#X connect 10 0 8 1;
+#X connect 10 0 35 0;
+#X connect 11 0 10 1;
+#X connect 12 0 8 0;
+#X connect 12 1 6 0;
+#X connect 12 2 13 0;
+#X connect 14 0 15 0;
+#X connect 15 0 24 0;
+#X connect 16 0 27 0;
+#X connect 18 0 6 1;
+#X connect 19 0 20 0;
+#X connect 19 0 23 0;
+#X connect 20 0 19 1;
+#X connect 21 0 26 0;
+#X connect 22 0 19 1;
+#X connect 24 0 37 0;
+#X connect 24 1 16 0;
+#X connect 25 0 9 0;
+#X connect 26 0 19 0;
+#X connect 26 1 20 1;
+#X connect 27 0 21 0;
+#X connect 28 0 29 0;
+#X connect 29 0 10 0;
+#X connect 30 0 9 0;
+#X connect 32 0 33 1;
+#X connect 33 0 30 0;
+#X connect 33 0 51 0;
+#X connect 34 0 33 0;
+#X connect 35 0 34 0;
+#X connect 36 0 35 1;
+#X connect 37 0 38 0;
+#X connect 37 1 50 0;
+#X connect 38 0 39 0;
+#X connect 38 1 40 0;
+#X connect 39 0 41 0;
+#X connect 40 0 41 0;
+#X connect 42 0 45 0;
+#X connect 43 0 42 0;
+#X connect 45 0 47 0;
+#X connect 47 0 46 0;
+#X connect 47 1 44 0;
+#X connect 50 1 57 0;
+#X connect 51 0 53 0;
+#X connect 51 1 54 0;
+#X connect 53 0 52 0;
+#X connect 54 0 52 1;
+#X connect 54 0 59 0;
+#X connect 55 0 43 0;
+#X connect 57 0 61 0;
+#X connect 60 0 28 0;
+#X connect 60 1 31 0;
+#X connect 60 1 58 0;
+#X connect 62 0 53 1;
+#X restore 277 472 pd liststatus;
+#X obj 59 223 s \$0SVNStatus;
+#X obj 20 99 t b b;
+#X obj 59 99 s \$0clearStatusWindow;
+#X obj 60 35 bng 12 250 50 0 \$0openStatus \$0openStatusR s 14 7 0
+8 -204800 -1 -1;
+#X obj 25 536 r \$0openStatus;
+#X msg 25 558 vis 1;
+#X obj 25 581 s pd-\$0statusWindow;
+#X obj 405 44 t b b b;
+#X obj 514 88 \$1;
+#X obj 514 112 s \$0upDirsR;
+#X connect 0 0 338 0;
+#X connect 1 0 352 0;
+#X connect 3 0 316 0;
+#X connect 4 0 307 0;
+#X connect 5 0 24 0;
+#X connect 8 0 11 0;
+#X connect 9 0 336 0;
+#X connect 10 0 8 0;
+#X connect 11 0 9 0;
+#X connect 14 0 346 0;
+#X connect 16 0 18 0;
+#X connect 18 0 23 0;
+#X connect 19 0 6 0;
+#X connect 20 0 23 0;
+#X connect 21 0 20 0;
+#X connect 22 0 33 0;
+#X connect 24 0 19 0;
+#X connect 24 1 27 0;
+#X connect 24 2 25 0;
+#X connect 24 3 26 0;
+#X connect 25 0 6 0;
+#X connect 26 0 6 0;
+#X connect 27 0 6 0;
+#X connect 28 0 311 0;
+#X connect 29 0 308 0;
+#X connect 30 0 31 0;
+#X connect 31 0 29 0;
+#X connect 34 0 37 0;
+#X connect 35 0 309 0;
+#X connect 36 0 34 0;
+#X connect 37 0 35 0;
+#X connect 38 0 306 0;
+#X connect 39 0 330 0;
+#X connect 40 0 38 0;
+#X connect 299 0 300 0;
+#X connect 301 0 299 0;
+#X connect 303 0 305 0;
+#X connect 304 0 303 0;
+#X connect 306 2 39 0;
+#X connect 307 0 322 0;
+#X connect 307 0 345 0;
+#X connect 307 1 320 0;
+#X connect 308 0 312 0;
+#X connect 308 0 32 0;
+#X connect 309 0 332 0;
+#X connect 310 0 5 0;
+#X connect 311 0 30 0;
+#X connect 312 0 324 0;
+#X connect 313 0 314 0;
+#X connect 316 0 4 0;
+#X connect 317 0 6 0;
+#X connect 318 0 317 0;
+#X connect 319 0 318 1;
+#X connect 320 0 321 0;
+#X connect 320 1 318 0;
+#X connect 321 0 318 1;
+#X connect 322 0 310 0;
+#X connect 322 1 319 0;
+#X connect 324 0 325 0;
+#X connect 325 0 326 0;
+#X connect 326 0 315 0;
+#X connect 326 1 313 0;
+#X connect 328 0 28 0;
+#X connect 328 1 31 1;
+#X connect 329 0 328 0;
+#X connect 332 0 331 0;
+#X connect 332 1 298 0;
+#X connect 333 0 28 1;
+#X connect 335 0 8 1;
+#X connect 336 0 12 0;
+#X connect 338 0 334 0;
+#X connect 339 0 0 0;
+#X connect 339 1 338 1;
+#X connect 340 0 339 0;
+#X connect 341 0 3 1;
+#X connect 342 0 34 1;
+#X connect 346 0 3 0;
+#X connect 346 1 347 0;
+#X connect 349 0 350 0;
+#X connect 350 0 351 0;
+#X connect 352 0 13 0;
+#X connect 352 1 0 0;
+#X connect 352 2 353 0;
+#X connect 353 0 354 0;
+#X coords 0 -1 1 1 96 40 2 10 10;
diff --git a/semento/polaroid-help.pd b/semento/polaroid-help.pd
new file mode 100644
index 0000000..502c2ad
--- /dev/null
+++ b/semento/polaroid-help.pd
@@ -0,0 +1,75 @@
+#N canvas 182 36 657 763 10;
+#X obj 196 452 s \$0polaroid;
+#X msg 35 85 saveas;
+#X msg 84 85 load;
+#X msg 121 85 save;
+#X msg 158 85 restore;
+#X msg 130 410 saveas;
+#X msg 179 410 load;
+#X msg 216 410 save;
+#X msg 253 410 restore;
+#X msg 267 193 SetAFileFirst!;
+#X obj 292 309 bng 8 250 50 0 \$0restore \$0nullS empty 17 7 0 10 -258177
+-1 -1;
+#X obj 282 309 bng 8 250 50 0 \$0save \$0nullS empty 17 7 0 10 -4062
+-1 -1;
+#X obj 287 319 bng 8 250 50 0 \$0makeDefault \$0nullS empty 17 7 0
+10 -228742 -1 -1;
+#X text 307 305 Restores from currently selected file;
+#X text 129 327 Sets the selected file as this patch's "default" \,
+via a cross-connected messagebox (as shown);
+#X obj -2 8 cnv 15 430 50 empty empty Polaroid 20 12 0 16 -204352 -66577
+0;
+#X text 16 27 for Memento;
+#X text -61 305 Saves local state to the currently selected file;
+#X obj 33 247 bng 13 250 50 0 \$0saveLocalFile \$0saveLocalFileR SaveTo
+15 8 0 8 -1988 -1 -1;
+#X obj 33 270 bng 13 250 50 0 \$0loadLocalFile \$0loadLocalFileR Load
+15 8 0 8 -155777 -1 -1;
+#X text 85 246 Choose a file \, and save local state to it immediately
+;
+#X text 85 269 Choose a file \, and load a local state from it immediately
+;
+#X text 247 41 Local state saving device;
+#X obj -52 373 bng 8 250 50 0 \$0copy \$0copyR empty 17 7 0 10 -159808
+-1 -1;
+#X obj 238 374 bng 8 250 50 0 \$0paste \$0pasteR empty 17 7 0 10 -260097
+-1 -1;
+#X text -43 370 Copies local state to a temporary file;
+#X text 247 371 Pastes a local state from that temporary file;
+#X obj 136 177 polaroid \$1 \$0;
+#X msg 212 85 copy;
+#X msg 248 85 paste;
+#X text -5 509 Polaroid requires a "group" and \$0 as its arguments.
+These are required for communication with both originator and the \$0polaroid
+receiver.;
+#X text 87 467 Polaroid also has a built-in receiver \, for use without
+the GUI.;
+#X text -2 639 If you have multiple copies of a child abstraction \,
+give it a second argument like "/A" or "/B" \, then prepend its [commun]s
+with \$2 \, like [commun \$2-envelopeAttack \$0];
+#X text -1 687 Important: OSC routes can and must have (only) one slash
+in them \, meaning the "/A" and \$2-envelopeAttack above was deliberate.
+Using \$2/envelopeAttack will not work \, nor will just "A".;
+#X text 64 387 (works across all patches in the same "group" \, or
+\$1);
+#X text -3 559 The so called "group" is a common originator name among
+all of your abstractions. This is typically the first argument. If
+your rradical abstractions are all children of a parent abstraction
+\, it is convenient to use "\$1" for all of their first arguments \,
+and then define that globally in the first argument of your parent
+abstraction.;
+#X text 441 724 Luke Iannini \, 2008;
+#X text 441 738 proyekto.net tag sndrft;
+#X connect 1 0 27 0;
+#X connect 2 0 27 0;
+#X connect 3 0 27 0;
+#X connect 4 0 27 0;
+#X connect 5 0 0 0;
+#X connect 6 0 0 0;
+#X connect 7 0 0 0;
+#X connect 8 0 0 0;
+#X connect 9 0 27 1;
+#X connect 27 1 9 0;
+#X connect 28 0 27 0;
+#X connect 29 0 27 0;
diff --git a/semento/polaroid.pd b/semento/polaroid.pd
new file mode 100644
index 0000000..9b4f35e
--- /dev/null
+++ b/semento/polaroid.pd
@@ -0,0 +1,186 @@
+#N canvas 361 200 341 279 10;
+#X obj 14 41 bng 13 250 50 0 \$0saveLocalFile \$0saveLocalFileR SaveTo
+15 8 0 8 -1988 -1 -1;
+#X obj 59 41 bng 13 250 50 0 \$0loadLocalFile \$0loadLocalFileR Load
+15 8 0 8 -155777 -1 -1;
+#X obj 11 25 cnv 13 114 13 empty empty empty 2 8 0 8 -1024 -66577 0
+;
+#X obj 13 27 cnv 9 110 9 empty \$0localFilenameR test 1 6 0 8 -262144
+-1 0;
+#X obj 17 117 inlet;
+#X obj 158 116 inlet;
+#X obj 111 43 bng 8 250 50 0 \$0load \$0nullS empty 17 7 0 10 -258177
+-1 -1;
+#X obj 101 43 bng 8 250 50 0 \$0save \$0nullR empty 17 7 0 10 -4062
+-1 -1;
+#X obj 158 170 outlet;
+#X obj 106 53 bng 8 250 50 0 \$0makeDefault \$0nullS empty 17 7 0 10
+-228742 -1 -1;
+#X obj 17 171 outlet null;
+#N canvas 186 394 339 332 messages 0;
+#X obj 17 29 inlet;
+#X obj 17 265 s \$0saveLocalFileR;
+#X obj 54 246 s \$0loadLocalFileR;
+#X obj 92 227 s \$0save;
+#X obj 17 130 sel saveas load save restore copy paste;
+#X obj 17 65 symbol;
+#X obj 171 187 s \$0copyR;
+#X obj 209 163 s \$0pasteR;
+#X obj 34 98 r \$2polaroid;
+#X obj 130 208 s \$0load;
+#X connect 0 0 5 0;
+#X connect 4 0 1 0;
+#X connect 4 1 2 0;
+#X connect 4 2 3 0;
+#X connect 4 3 9 0;
+#X connect 4 4 6 0;
+#X connect 4 5 7 0;
+#X connect 5 0 4 0;
+#X connect 8 0 4 0;
+#X restore 17 144 pd messages;
+#N canvas 655 133 358 405 defaulter 0;
+#X obj 58 14 inlet;
+#X obj 58 318 outlet;
+#X obj 58 59 symbol;
+#X obj 25 193 loadbang;
+#X msg 58 280 set \$1;
+#X obj 95 236 r \$0fileName;
+#X obj 58 260 symbol;
+#X obj 58 215 r \$0makeDefault;
+#X obj 25 173 s \$0localFilenameR;
+#X obj 58 133 s \$2-localSave;
+#X msg 58 80 lddir \$1;
+#X obj 120 271 loadbang;
+#X msg 120 294 symbol SetAFileFirst!;
+#X msg 101 106 setsub 0;
+#X obj 58 106 t b a;
+#X obj 168 106 s \$1-localSetsub;
+#X obj 106 59 s \$0def;
+#X msg 25 152 label Default--->;
+#X connect 0 0 2 0;
+#X connect 2 0 10 0;
+#X connect 2 0 17 0;
+#X connect 2 0 16 0;
+#X connect 3 0 1 0;
+#X connect 4 0 1 0;
+#X connect 5 0 6 1;
+#X connect 6 0 4 0;
+#X connect 7 0 6 0;
+#X connect 10 0 14 0;
+#X connect 11 0 12 0;
+#X connect 12 0 6 1;
+#X connect 13 0 15 0;
+#X connect 14 0 13 0;
+#X connect 14 1 9 0;
+#X connect 17 0 8 0;
+#X restore 158 143 pd defaulter;
+#X obj 16 56 bng 8 250 50 0 \$0copy \$0copyR Copy 9 5 0 8 -159808 -1
+-1;
+#X obj 61 56 bng 8 250 50 0 \$0paste \$0pasteR Paste 9 5 0 8 -260097
+-1 -1;
+#N canvas 616 178 817 648 logic 1;
+#X obj 574 324 s \$0localFilenameR;
+#X obj 68 21 r \$0saveLocalFile;
+#X obj 309 23 r \$0loadLocalFile;
+#X obj 68 94 savepanel;
+#X obj 309 83 openpanel;
+#X msg 574 301 label \$1;
+#X obj 574 204 symbol2list;
+#X obj 574 254 list append >;
+#X obj 574 278 list-l2s;
+#X msg 600 204 symbol;
+#X obj 600 183 loadbang;
+#X obj 78 118 s \$0fileName;
+#X obj 574 137 r \$0fileName;
+#X obj 68 223 symbol;
+#X obj 309 213 symbol;
+#X obj 81 177 r \$0save;
+#X obj 323 168 r \$0load;
+#X obj 28 476 r \$0copy;
+#X obj 470 466 r \$0paste;
+#X obj 309 264 t b a;
+#X msg 309 318 setsub 0;
+#X obj 309 340 s \$1-localSetsub;
+#X obj 28 573 s \$2-localSave;
+#X obj 497 544 s \$2-localSave;
+#X obj 68 301 s \$2-localSave;
+#X obj 470 520 t b a;
+#X msg 470 564 setsub 0;
+#X obj 470 586 s \$1-localSetsub;
+#X msg 470 490 lddir /tmp/polaroidTemp;
+#X msg 28 549 svdir /tmp/polaroidTemp;
+#X msg 68 251 svdir \$1;
+#X msg 309 241 lddir \$1;
+#X obj 574 228 list split 21;
+#X obj 574 98 s \$0localFilenameR;
+#X obj 574 22 loadbang;
+#X msg 574 75 label ChooseAFile..;
+#X obj 58 520 s SAVE_PREP;
+#X obj 28 498 t b b;
+#X obj 98 73 s SAVE_PREP;
+#X obj 68 52 t b b;
+#X obj 574 160 ggee/stripdir;
+#X obj 105 198 r \$0def;
+#X obj 346 188 r \$0def;
+#X obj 154 263 print SavedTo;
+#X obj 154 239 list trim;
+#X obj 402 229 list trim;
+#X obj 402 253 print Loaded;
+#X obj 339 290 s \$2-localSave;
+#X obj 321 109 s \$0fileName;
+#X obj 574 49 spigot 1;
+#X msg 653 33 0;
+#X text 636 50 ^ Don't Override;
+#X obj 653 6 r \$0def;
+#X connect 1 0 39 0;
+#X connect 2 0 4 0;
+#X connect 3 0 11 0;
+#X connect 3 0 13 0;
+#X connect 4 0 14 0;
+#X connect 4 0 48 0;
+#X connect 5 0 0 0;
+#X connect 6 0 32 0;
+#X connect 7 0 8 0;
+#X connect 8 0 5 0;
+#X connect 9 0 6 1;
+#X connect 10 0 9 0;
+#X connect 12 0 40 0;
+#X connect 13 0 30 0;
+#X connect 13 0 44 0;
+#X connect 14 0 31 0;
+#X connect 14 0 45 0;
+#X connect 15 0 13 0;
+#X connect 16 0 14 0;
+#X connect 17 0 37 0;
+#X connect 18 0 28 0;
+#X connect 19 0 20 0;
+#X connect 19 1 47 0;
+#X connect 20 0 21 0;
+#X connect 25 0 26 0;
+#X connect 25 1 23 0;
+#X connect 26 0 27 0;
+#X connect 28 0 25 0;
+#X connect 29 0 22 0;
+#X connect 30 0 24 0;
+#X connect 31 0 19 0;
+#X connect 32 0 7 0;
+#X connect 32 2 8 0;
+#X connect 34 0 49 0;
+#X connect 35 0 33 0;
+#X connect 37 0 29 0;
+#X connect 37 1 36 0;
+#X connect 39 0 3 0;
+#X connect 39 1 38 0;
+#X connect 40 0 6 0;
+#X connect 41 0 13 1;
+#X connect 42 0 14 1;
+#X connect 44 0 43 0;
+#X connect 45 0 46 0;
+#X connect 49 0 35 0;
+#X connect 50 0 49 1;
+#X connect 52 0 50 0;
+#X restore 167 41 pd logic;
+#X connect 4 0 11 0;
+#X connect 5 0 12 0;
+#X connect 12 0 8 0;
+#X coords 0 -1 1 1 116 57 1 10 10;
diff --git a/semento/sft.careGUI-help.pd b/semento/sft.careGUI-help.pd
new file mode 100644
index 0000000..dd06e39
--- /dev/null
+++ b/semento/sft.careGUI-help.pd
@@ -0,0 +1,46 @@
+#N canvas 338 180 531 595 10;
+#X obj 109 86 sft.careGUI;
+#X obj 30 371 bng 15 250 50 0 \$0print empty Print 0 -6 0 8 -211762
+-1 -1;
+#X obj 68 306 bng 25 250 50 0 \$0restore \$0restoreR Restore 0 -6 0
+8 -233729 -1 -1;
+#X obj 30 306 bng 25 250 50 0 \$0save \$0saveR Save 0 -6 0 8 -40133
+-1 -1;
+#X obj 30 422 bng 20 250 50 0 \$0load empty Load 0 -6 0 8 -211157 -1
+-1;
+#X obj 60 422 bng 20 250 50 0 \$0saveAs empty SaveAs 0 -6 0 8 -113396
+-1 -1;
+#X obj 30 475 bng 15 250 50 0 \$0reset empty Reset 0 -6 0 8 -189876
+-1 -1;
+#X obj 30 250 hradio 10 1 0 8 \$0preset \$0presetR Preset 0 -6 0 8
+-129999 -1 -1 0;
+#X symbolatom 30 206 14 0 0 0 - #0fileName #0nullS;
+#X obj 30 260 hradio 10 1 0 8 \$0edit \$0editR empty 0 -6 0 8 -129264
+-1 -1 0;
+#X text 139 473 Resets the pool. Currently not implemented.;
+#X text 135 206 Displays the currently selected data file.;
+#X text 137 419 Set a file to Load or Save to. These do not actually
+move any data \, they simply choose the file to be operated upon.;
+#X text 137 370 Prints the full contents of the RRADICAL pool.;
+#X text 136 291 Save to \, or restore from \, the currently selected
+data file. These are "greyed out" until a file is set.;
+#X text 135 234 Loads a global substate (preset) setting into all rradical
+patches. The bottom radio only sets the substate to operate on \, without
+first loading its previous contents;
+#X obj 141 326 cnv 19 19 19 empty empty ! 5 7 0 14 -1 -1 0;
+#X obj 143 328 cnv 15 15 15 empty empty ! 5 7 0 14 -261761 -1 0;
+#X text 163 321 Warning! "Restore" will also load the first preset
+of all open patches.;
+#X obj 29 509 r SAVE_PREP;
+#X obj 29 540 bng 15 250 50 0 empty empty empty 0 -6 0 10 -262144 -1
+-1;
+#X text 140 503 This is a bang sent by sft.careGUI (and [polaroid])
+just before saving \, to allow preparations for the save event. For
+example \, one could use it to dump an array into a list into a commun
+object so that it could be saved when the save message arrives.;
+#X obj 4 6 cnv 15 430 50 empty empty sft.careGUI 20 12 0 16 -204352
+-66577 0;
+#X text 22 25 for Memento;
+#X text 367 559 Luke Iannini \, 2007;
+#X text 311 37 Memento control GUI;
+#X connect 19 0 20 0;
diff --git a/semento/sft.careGUI.pd b/semento/sft.careGUI.pd
new file mode 100644
index 0000000..cb5378f
--- /dev/null
+++ b/semento/sft.careGUI.pd
@@ -0,0 +1,131 @@
+#N canvas 956 305 601 476 10;
+#X obj 206 356 caretaker \$1;
+#X obj 63 62 bng 15 250 50 0 \$0print empty Print 0 -6 0 8 -211762
+-1 -1;
+#X obj 92 52 bng 25 250 50 0 \$0restore \$0restoreR ^^^^^ 0 -6 0 8
+-233017 -1 -1;
+#X obj 24 52 bng 25 250 50 0 \$0save \$0saveR ^^^^^ 0 -6 0 8 -233017
+-1 -1;
+#X obj 131 57 bng 20 250 50 0 \$0load empty Load 0 -6 0 8 -211157 -1
+-1;
+#X obj 161 57 bng 20 250 50 0 \$0saveAs empty SaveAs 0 -6 0 8 -113396
+-1 -1;
+#X obj 194 62 bng 15 250 50 0 \$0reset empty Reset 0 -6 0 8 -189876
+-1 -1;
+#X obj 18 127 r \$0save;
+#X obj 96 127 r \$0print;
+#X obj 167 127 r \$0restore;
+#X obj 307 97 r \$0load;
+#X obj 435 97 r \$0saveAs;
+#X obj 484 235 r \$0reset;
+#X msg 18 232 save RRADICAL;
+#X msg 96 198 print;
+#X msg 167 209 load RRADICAL;
+#X obj 130 23 hradio 10 1 0 8 \$0preset \$0presetR Preset 0 -6 0 8
+-129999 -1 -1 0;
+#X obj 435 187 savepanel;
+#X obj 307 187 openpanel;
+#X msg 484 264 reset;
+#X msg 346 242 file \$1;
+#X msg 22 320 setsub 0;
+#X obj 22 425 s SET_ALL_RRADICALS;
+#X obj 18 198 t b b;
+#X obj 45 97 s SAVE_PREP;
+#X symbolatom 22 24 14 0 0 0 - #0fileName #0nullS;
+#X obj 346 310 s \$0fileName;
+#X obj 346 333 loadbang;
+#X msg 346 356 symbol ChooseAFile...;
+#X obj 130 33 hradio 10 1 0 8 \$0edit \$0editR empty 0 -6 0 8 -129264
+-1 -1 0;
+#X obj 50 356 r \$0preset;
+#X obj 244 17 r \$0preset;
+#X msg 244 38 set \$1;
+#X obj 244 60 s \$0editR;
+#X msg 50 378 setsub \$1;
+#X msg 118 378 substate \$1;
+#X obj 118 357 r \$0edit;
+#X obj 167 232 t b b a;
+#X obj 167 274 outlet;
+#X obj 346 286 ggee/stripdir;
+#X obj 325 142 stat;
+#X obj 348 163 route error;
+#X obj 321 163 t b;
+#X msg 307 116 symbol Presets;
+#X obj 453 142 stat;
+#X obj 476 163 route error;
+#X obj 449 163 t b;
+#X msg 435 116 symbol Presets;
+#X obj 167 173 spigot;
+#N canvas 1244 68 458 308 enablebuttons 0;
+#X obj 38 82 inlet;
+#X obj 38 105 t b;
+#X obj 38 271 s \$0saveR;
+#X obj 75 207 s \$0restoreR;
+#X obj 170 25 loadbang;
+#X obj 143 109 s \$0saveR;
+#X obj 212 109 s \$0restoreR;
+#X msg 170 58 color 10 -1 -1 \, label ^^^^^;
+#X msg 38 238 color -2.54338e+06 -1 -1 \, label Save;
+#X msg 75 178 color -1.50121e+07 -1 -1 \, label Restore;
+#X msg 77 129 1;
+#X obj 77 151 s \$0buttonBlock;
+#X connect 0 0 1 0;
+#X connect 1 0 8 0;
+#X connect 1 0 9 0;
+#X connect 1 0 10 0;
+#X connect 4 0 7 0;
+#X connect 7 0 5 0;
+#X connect 7 0 6 0;
+#X connect 8 0 2 0;
+#X connect 9 0 3 0;
+#X connect 10 0 11 0;
+#X restore 346 264 pd enablebuttons;
+#X obj 200 150 r \$0buttonBlock;
+#X obj 18 173 spigot;
+#X obj 51 150 r \$0buttonBlock;
+#X connect 7 0 51 0;
+#X connect 8 0 14 0;
+#X connect 9 0 48 0;
+#X connect 10 0 43 0;
+#X connect 11 0 47 0;
+#X connect 12 0 19 0;
+#X connect 13 0 0 0;
+#X connect 14 0 0 0;
+#X connect 15 0 37 0;
+#X connect 17 0 20 0;
+#X connect 17 0 39 0;
+#X connect 18 0 20 0;
+#X connect 18 0 39 0;
+#X connect 19 0 0 0;
+#X connect 20 0 0 0;
+#X connect 20 0 49 0;
+#X connect 21 0 22 0;
+#X connect 23 0 13 0;
+#X connect 23 1 24 0;
+#X connect 27 0 28 0;
+#X connect 28 0 26 0;
+#X connect 30 0 34 0;
+#X connect 31 0 32 0;
+#X connect 32 0 33 0;
+#X connect 34 0 22 0;
+#X connect 35 0 22 0;
+#X connect 36 0 35 0;
+#X connect 37 0 38 0;
+#X connect 37 1 21 0;
+#X connect 37 2 0 0;
+#X connect 39 0 26 0;
+#X connect 40 1 41 0;
+#X connect 41 0 42 0;
+#X connect 42 0 18 0;
+#X connect 43 0 40 0;
+#X connect 43 0 18 0;
+#X connect 44 1 45 0;
+#X connect 45 0 46 0;
+#X connect 46 0 17 0;
+#X connect 47 0 44 0;
+#X connect 47 0 17 0;
+#X connect 48 0 15 0;
+#X connect 50 0 48 1;
+#X connect 51 0 23 0;
+#X connect 52 0 51 1;
+#X coords 0 -1 1 1 200 70 1 20 10;
diff --git a/semento/sft.commun.ez.pd b/semento/sft.commun.ez.pd
new file mode 100644
index 0000000..2a202f2
--- /dev/null
+++ b/semento/sft.commun.ez.pd
@@ -0,0 +1,18 @@
+#N canvas 32 487 626 210 10;
+#X obj 21 62 sft.commun \$2-\$3 \$1;
+#X obj 21 28 r \$1\$3;
+#X obj 21 92 s \$1\$3R;
+#X text 154 18 Use like sft.commun.ez \$0 "uniqueID" paramName;
+#X text 154 34 UniqueID is a /ID used to allow multiple units of one
+type;
+#X text 174 53 e.g. sft.cfm /sfs1 /busA /unitA = unitA is the uniqueID
+;
+#X text 205 68 thus you'd call as sft.commun.ez \$0 \$3 paramName;
+#X text 157 123 paramName is mapped to the local xers* that would usually
+be defined in the GUIcontrol. So a paramName of "baseFreq" will result
+in "\$0baseFreq" and "\$0baseFreqR" \, which is 99% of cases.;
+#X text 158 89 paramName is of course the parameter name \, but it
+also gets mapped to the commun as uniqueID-paramName.;
+#X text 434 183 *xers: [send]ers/[receive]rs;
+#X connect 0 0 2 0;
+#X connect 1 0 0 0;
diff --git a/semento/sft.commun.pd b/semento/sft.commun.pd
new file mode 100644
index 0000000..a623e69
--- /dev/null
+++ b/semento/sft.commun.pd
@@ -0,0 +1,35 @@
+#N canvas 560 190 666 338 10;
+#X obj 162 41 inlet;
+#X obj 161 260 outlet;
+#X obj 161 158 r \$2-in;
+#X obj 161 208 route \$1;
+#X text 22 282 Read \$2-OSC (== \$0-OSC) \, filter by argument \$1
+;
+#X obj 162 99 s \$2-RRADICAL-MEMENTO;
+#X text 95 123 RRADICAL_MEMENTO is also in originator;
+#X obj 49 183 r \$2-RRADICAL-OSC;
+#X obj 299 164 r \$2/listParams;
+#X obj 299 221 list append \$1;
+#X obj 162 72 prepent \$1;
+#X obj 161 233 list;
+#X obj 299 194 spigot 1;
+#X obj 429 106 loadbang;
+#X obj 429 154 sel hide;
+#X msg 429 177 0;
+#X obj 429 129 list append \$3;
+#X obj 49 207 deeprouteOSC \$1;
+#X obj 299 251 s \$2/returnParams;
+#X connect 0 0 10 0;
+#X connect 2 0 3 0;
+#X connect 3 0 11 0;
+#X connect 7 0 17 0;
+#X connect 8 0 12 0;
+#X connect 9 0 18 0;
+#X connect 10 0 5 0;
+#X connect 11 0 1 0;
+#X connect 12 0 9 0;
+#X connect 13 0 16 0;
+#X connect 14 0 15 0;
+#X connect 15 0 12 1;
+#X connect 16 0 14 0;
+#X connect 17 0 11 0;
diff --git a/semento/sft.commun.sc-help.pd b/semento/sft.commun.sc-help.pd
new file mode 100644
index 0000000..d77ac90
--- /dev/null
+++ b/semento/sft.commun.sc-help.pd
@@ -0,0 +1,31 @@
+#N canvas 731 31 580 522 10;
+#X text 234 238 Inlet 2 changes the lower scaling bound;
+#X text 326 278 Inlet 3 changes the upper scaling bound;
+#X floatatom 235 253 5 0 0 0 - - -;
+#X floatatom 330 294 5 0 0 0 - - -;
+#X floatatom 141 223 5 0 0 0 - - -;
+#X floatatom 141 353 5 0 0 0 - - -;
+#X text 13 77 Obviously \, don't use this for communs that are meant
+to store symbolic or list data (use regular sft.commun for that). (That
+is \, only use this for OSC-control-intended stuff);
+#X text 139 206 Inlet 1 is the standard commun input;
+#X text 194 344 Argument 5 and 6 can be "round" and/or "hide" (the
+order doesn't matter).;
+#X text 454 497 2008 Luke Iannini;
+#X text 10 494 Originally based on [commun-scale] by Frank Barknecht
+;
+#X obj 141 317 sft.commun.sc \$0 /parameter 5 37;
+#X text 13 26 Use sft.commun.sc(ale) so that 0-1 values coming out
+of OSC stuff (like Controctopus) can be rescaled appropriately.;
+#X text 194 374 "hide" hides the parameter from Controctopus sniffing
+(useful to pare down the options to just the most interesting inputs).
+;
+#X text 194 416 "round" rounds up from 0.5 increments so that an integer
+is always output (useful for communs connected to v/hdials and toggles).
+;
+#X text 14 145 sft.commun.sc's first and second args are swapped from
+sft.commun (i.e. \$0 and /parametername);
+#X connect 2 0 11 1;
+#X connect 3 0 11 2;
+#X connect 4 0 11 0;
+#X connect 11 0 5 0;
diff --git a/semento/sft.commun.sc.ez.pd b/semento/sft.commun.sc.ez.pd
new file mode 100644
index 0000000..50efdd9
--- /dev/null
+++ b/semento/sft.commun.sc.ez.pd
@@ -0,0 +1,13 @@
+#N canvas 33 512 438 278 10;
+#X obj 106 66 r \$1\$3;
+#X obj 106 125 s \$1\$3R;
+#X text 47 201 \$3 is like /chptrA. In Bathyscaphe that's \$3 \, in
+FXS it's \$2.;
+#X text 47 231 Receives from \$0paramName and sends to \$0paramNameR
+;
+#X text 46 183 [sft.commun.sc.ez \$0 \$3 paramName 0 5000 btn* hide*]
+;
+#X text 46 250 *optional;
+#X obj 106 96 sft.commun.sc \$1 \$2/\$3 \$4 \$5 \$6 \$7;
+#X connect 0 0 6 0;
+#X connect 6 0 1 0;
diff --git a/semento/sft.commun.sc.pd b/semento/sft.commun.sc.pd
new file mode 100644
index 0000000..7864b93
--- /dev/null
+++ b/semento/sft.commun.sc.pd
@@ -0,0 +1,132 @@
+#N canvas 405 191 1017 621 10;
+#X obj 12 11 inlet;
+#X obj 111 584 outlet;
+#X text 5 93 RRADICAL_MEMENTO is also in originator;
+#X obj 111 557 list;
+#X obj 750 392 spigot 1;
+#X msg 880 375 0;
+#X obj 520 166 unpack f f;
+#X text 629 515 Have an [OSCroute \$1-normalized] and leave the regular
+[OSCroute \$1] directly connected. Yes. Do that after this is confirmed
+working!;
+#X obj 191 335 expr_scale 0 1 \$3 \$4;
+#X obj 254 388 expr_scale 0 1 \$3 \$4;
+#X obj 241 473 hotpack f f;
+#X obj 766 26 loadbang;
+#X msg 766 127 1;
+#X obj -24 509 demultiplex;
+#X obj 39 534 round;
+#X obj 73 482 expr_scale 0 1 \$3 \$4;
+#X obj 156 11 inlet;
+#X obj 286 11 inlet;
+#X text 628 559 Use to constrain input to a smaller subset of the full
+range. Input as relative to 0-1. Reports back what the result will
+be when scaled fully;
+#X obj 156 59 s \$0boundLowFull;
+#X obj 286 59 s \$0boundHighFull;
+#X obj 520 210 s \$0constrainLow;
+#X obj 577 188 s \$0constrainHigh;
+#X obj 281 227 r \$0boundLowFull;
+#X obj 331 248 r \$0boundHighFull;
+#X obj 191 306 r \$0constrainLow;
+#X obj 254 357 r \$0constrainHigh;
+#X obj 456 30 loadbang;
+#X msg 456 55 0 1;
+#X obj 331 273 t b a;
+#X obj 281 273 t b a;
+#X obj 520 125 list;
+#X obj 571 125 t a a;
+#X obj 520 97 route get;
+#X obj 241 497 t a a;
+#X text 318 466 Allows one to replace the scaled output with something
+prettier;
+#X text 502 274 Used to recall the 0-1 ranged constraint;
+#X obj 766 102 sel round hide;
+#X obj 766 149 s \$0round?;
+#X obj 0 483 r \$0round?;
+#X obj -24 534 t a;
+#X obj 766 78 list-drip;
+#X obj 835 149 s \$0hide?;
+#X obj 766 53 list append \$5 \$6;
+#X obj 880 352 r \$0hide?;
+#X text 38 193 Read \$1-OSC (== \$0-OSC) \, filter by argument \$2
+;
+#X obj 153 171 deeprouteOSC \$2-normalized;
+#X obj 30 172 deeprouteOSC \$2;
+#X obj 30 148 r \$1-RRADICAL-OSC;
+#X obj 153 148 r \$1-RRADICAL-OSC;
+#X obj 12 42 prepent \$2;
+#X obj 12 69 s \$1-RRADICAL-MEMENTO;
+#X obj 520 30 r \$1-RRADICAL-OSC;
+#X obj 520 53 routeOSC \$2-constrain;
+#X obj 504 234 prepent \$2-constrained-to-0-1;
+#X obj 504 255 s \$1-COMMUN-RESPONSE;
+#X obj 750 362 r \$1/listParams;
+#X obj 750 449 s \$1/returnParams;
+#X obj 295 497 s \$1\$2/constraint/lookup/call;
+#X obj 295 517 r \$1\$2/constraint/lookup/response;
+#X obj 268 559 prepent \$2-constrained-to;
+#X obj 268 580 s \$1-COMMUN-RESPONSE;
+#X obj 111 532 route \$2;
+#X obj 111 505 r \$1-in;
+#X obj 750 419 list append \$2;
+#X connect 0 0 50 0;
+#X connect 3 0 1 0;
+#X connect 4 0 64 0;
+#X connect 5 0 4 1;
+#X connect 6 0 21 0;
+#X connect 6 1 22 0;
+#X connect 8 0 10 0;
+#X connect 8 0 15 3;
+#X connect 9 0 10 1;
+#X connect 9 0 15 4;
+#X connect 10 0 34 0;
+#X connect 11 0 43 0;
+#X connect 12 0 38 0;
+#X connect 13 0 40 0;
+#X connect 13 1 14 0;
+#X connect 14 0 40 0;
+#X connect 15 0 13 0;
+#X connect 16 0 19 0;
+#X connect 17 0 20 0;
+#X connect 23 0 30 0;
+#X connect 24 0 29 0;
+#X connect 25 0 8 0;
+#X connect 26 0 9 0;
+#X connect 27 0 28 0;
+#X connect 28 0 6 0;
+#X connect 29 0 9 0;
+#X connect 29 1 9 4;
+#X connect 29 1 8 4;
+#X connect 30 0 8 0;
+#X connect 30 1 9 3;
+#X connect 30 1 8 3;
+#X connect 31 0 6 0;
+#X connect 31 0 54 0;
+#X connect 32 0 6 0;
+#X connect 32 1 31 1;
+#X connect 33 0 31 0;
+#X connect 33 1 32 0;
+#X connect 34 0 58 0;
+#X connect 34 1 60 0;
+#X connect 37 0 12 0;
+#X connect 37 1 42 0;
+#X connect 39 0 13 1;
+#X connect 40 0 3 0;
+#X connect 41 0 37 0;
+#X connect 43 0 41 0;
+#X connect 44 0 5 0;
+#X connect 46 0 15 0;
+#X connect 47 0 15 0;
+#X connect 48 0 47 0;
+#X connect 49 0 46 0;
+#X connect 50 0 51 0;
+#X connect 52 0 53 0;
+#X connect 53 0 33 0;
+#X connect 54 0 55 0;
+#X connect 56 0 4 0;
+#X connect 59 0 60 0;
+#X connect 60 0 61 0;
+#X connect 62 0 3 0;
+#X connect 63 0 62 0;
+#X connect 64 0 57 0;
diff --git a/semento/sft.commun.x-help.pd b/semento/sft.commun.x-help.pd
new file mode 100644
index 0000000..e5ad3fd
--- /dev/null
+++ b/semento/sft.commun.x-help.pd
@@ -0,0 +1,17 @@
+#N canvas 797 415 454 304 10;
+#X text 25 26 sft.commun.x - Make a control visible to the OSC system
+of Memento \, without state-saving.;
+#X text 25 62 Mostly this is for buttons \, but could also work for
+other controls whose state is transient in nature.;
+#X obj 24 219 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 110 277 sft.originator /system1 \$0;
+#X obj 24 143 sft.commun.x /button1 \$0;
+#X msg 229 133 /system1/button1 bang;
+#X obj 229 159 s PDOSC;
+#X obj 229 239 s /system1/OSC;
+#X msg 229 211 /button1 bang;
+#X text 250 184 Or;
+#X connect 4 0 2 0;
+#X connect 5 0 6 0;
+#X connect 8 0 7 0;
diff --git a/semento/sft.commun.x.pd b/semento/sft.commun.x.pd
new file mode 100644
index 0000000..7324c9f
--- /dev/null
+++ b/semento/sft.commun.x.pd
@@ -0,0 +1,13 @@
+#N canvas 921 437 386 156 10;
+#X obj 202 38 r \$2/listParams;
+#X obj 202 65 list append \$1;
+#X obj 24 107 outlet;
+#X obj 24 30 r \$2-RRADICAL-OSC;
+#X obj 24 80 list;
+#X obj 24 54 deeprouteOSC \$1;
+#X obj 202 95 s \$2/returnParams;
+#X connect 0 0 1 0;
+#X connect 1 0 6 0;
+#X connect 3 0 5 0;
+#X connect 4 0 2 0;
+#X connect 5 0 4 0;
diff --git a/semento/sft.originator.pd b/semento/sft.originator.pd
new file mode 100644
index 0000000..579b6da
--- /dev/null
+++ b/semento/sft.originator.pd
@@ -0,0 +1,265 @@
+#N canvas 210 71 1030 697 10;
+#X text 425 22 responsibilities:;
+#X text 98 10 ORIGINATOR (the mixing engineer);
+#X text 447 59 * set memento (restore settings from photo);
+#X text 448 40 * create memento (take photo);
+#N canvas 76 23 720 450 createMemento 0;
+#X obj 48 84 inlet;
+#X obj 97 117 symbol \$1;
+#X obj 97 90 loadbang;
+#X obj 97 150 s \$0-memento;
+#X text 75 49 \$1 is the default name of the memento \, that this originator
+creates \, but it can be changed later.;
+#X obj 74 179 outlet;
+#X text 292 108 What is a memento?;
+#X text 275 121 a memento is a directory in a global (data)pool;
+#X obj 305 139 r \$0-memento;
+#X msg 309 180 state \$1;
+#X obj 319 213 s \$0-pool;
+#X connect 0 0 1 0;
+#X connect 1 0 3 0;
+#X connect 1 0 5 0;
+#X connect 2 0 1 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X restore 122 321 pd createMemento;
+#X obj 122 104 inlet;
+#N canvas 600 185 664 406 setMemento 0;
+#X text 238 12 setMemento is responsible for restoring all registered
+variables.;
+#X obj 64 26 inlet;
+#X obj 109 286 outlet;
+#X obj 109 249 r \$0-restore;
+#X msg 64 126 getall;
+#X obj 64 183 s \$0-pool;
+#N canvas 468 415 450 300 change2substate 0;
+#X obj 92 39 inlet;
+#X obj 113 198 outlet;
+#X obj 185 93 r \$0-memento;
+#X obj 280 93 r \$0-substate;
+#X obj 113 144 pack s s 0;
+#X obj 92 93 symbol chdir;
+#X obj 92 67 t b;
+#X obj 113 167 route list;
+#X text 218 163 un-list again;
+#X connect 0 0 6 0;
+#X connect 2 0 4 1;
+#X connect 3 0 4 2;
+#X connect 4 0 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 5 0;
+#X connect 7 0 1 0;
+#X restore 131 127 pd change2substate;
+#X text 186 104 change to dir memento substate;
+#X obj 64 52 t b b b;
+#X obj 130 75 s \$0-set-ON;
+#X connect 1 0 8 0;
+#X connect 3 0 2 0;
+#X connect 4 0 5 0;
+#X connect 6 0 5 0;
+#X connect 8 0 4 0;
+#X connect 8 1 6 0;
+#X connect 8 2 9 0;
+#X restore 256 446 pd setMemento;
+#X text 431 90 What is a memento?;
+#X text 463 111 a memento is a directory in a global (data)pool;
+#X text 432 135 What is a state?;
+#X obj 563 328 r \$0-pool;
+#X symbolatom 691 374 10 0 0 3 memento - -;
+#X msg 170 103 create help;
+#X msg 261 103 set memento;
+#X obj 777 348 inlet;
+#X obj 178 297 s \$0-substate;
+#X obj 828 482 r \$0-substate;
+#X msg 828 511 substate \$1;
+#X msg 99 471 copy;
+#X msg 210 472 paste;
+#X obj 134 514 s \$0-pool;
+#X obj 309 341 symbol;
+#X obj 156 440 t b b;
+#X obj 563 460 s \$2-in;
+#X obj 197 418 r \$0-set;
+#X obj 148 472 s \$0-set;
+#X obj 828 540 s \$0-pool;
+#X obj 225 274 s \$0-pool;
+#X text 819 348 OSC inlet;
+#X text 462 154 a state is the content of a memento subdirectory named
+by a number.;
+#X obj 535 273 r \$2-RRADICAL-MEMENTO;
+#X text 443 248 \$2-RRADICAL-MEMENTO is sent by commun objects;
+#X obj 777 413 s \$2-RRADICAL-OSC;
+#X obj 385 520 outlet;
+#N canvas 468 415 450 300 ch2subs 0;
+#X obj 92 39 inlet;
+#X obj 113 198 outlet;
+#X obj 185 93 r \$0-memento;
+#X obj 280 93 r \$0-substate;
+#X obj 113 144 pack s s 0;
+#X obj 92 67 t b;
+#X obj 113 167 route list;
+#X text 218 163 un-list again;
+#X obj 92 94 symbol chdir;
+#X connect 0 0 5 0;
+#X connect 2 0 4 1;
+#X connect 3 0 4 2;
+#X connect 4 0 6 0;
+#X connect 5 0 8 0;
+#X connect 6 0 1 0;
+#X connect 8 0 4 0;
+#X restore 255 252 pd ch2subs;
+#X obj 225 230 t a b;
+#X obj 563 382 spigot;
+#X obj 448 520 spigot;
+#N canvas 548 386 450 300 tgl 0;
+#X obj 155 198 outlet;
+#X obj 240 198 outlet;
+#X msg 151 120 0;
+#X msg 184 120 1;
+#X msg 233 120 0;
+#X msg 266 120 1;
+#X obj 295 55 r \$0-set-ON;
+#X obj 292 85 loadbang;
+#X obj 185 65 r \$0-get-ON;
+#X text 20 7 This tgl is to prevent some loops when using get and set.
+;
+#X connect 2 0 0 0;
+#X connect 3 0 0 0;
+#X connect 4 0 1 0;
+#X connect 5 0 1 0;
+#X connect 6 0 2 0;
+#X connect 6 0 5 0;
+#X connect 7 0 5 0;
+#X connect 7 0 2 0;
+#X connect 8 0 3 0;
+#X connect 8 0 4 0;
+#X restore 486 348 pd tgl;
+#X obj 235 177 t a b;
+#X obj 287 175 s \$0-get-ON;
+#X obj 385 493 spigot;
+#X obj 448 544 outlet;
+#X text 353 541 Value outlet;
+#X text 494 545 Value/Key outlet;
+#X obj 370 228 s \$0-substate;
+#X obj 340 203 t b f;
+#X obj 23 316 s \$0-pool;
+#X obj 646 494 outlet;
+#X text 641 515 OSC outlet;
+#X obj 637 461 OSCprepend \$1;
+#X msg 720 487 setsub \$1;
+#X obj 720 547 s \$0-setsub;
+#X obj 173 77 r \$0-setsub;
+#X obj 161 378 select copy paste set;
+#X obj 122 132 route create substate get setsub;
+#X obj 340 251 s \$0-set;
+#X obj 25 261 symbol;
+#X obj 101 267 symbol;
+#X obj 12 220 t b a;
+#X msg 12 360 set;
+#X text 12 382 after loadx \, set;
+#X obj 12 77 r SET_ALL_RRADICALS;
+#X obj 818 245 r \$0-substate;
+#X text 795 218 \$2 == \$0 parent;
+#X msg 818 270 set \$1;
+#X obj 818 298 s \$2-parentstate;
+#X msg 745 513 /preset \$1;
+#X obj 563 351 sft.rradical.state \$1;
+#X obj 262 77 r \$2-localSave;
+#X text 14 47 global send to do something crazy with!;
+#X obj 262 56 r \$1-localSetsub;
+#X obj 22 197 route lddir svdir;
+#X msg 23 285 lddir \$1;
+#X msg 102 289 svdir \$1;
+#X obj 884 377 r \$1/OSC;
+#X obj 731 308 r PDOSC;
+#X obj 77 580 r \$1/getParams;
+#X obj 77 619 s \$2/listParams;
+#X text 85 599 Dispatch to sft.communs;
+#X obj 563 419 prepent RRADICAL.dummy;
+#X obj 535 300 prepent set;
+#X obj 448 493 prepent RRADICAL.dummy;
+#X obj 235 196 prepent get;
+#X obj 816 32 r \$2-COMMUN-RESPONSE;
+#X obj 816 86 s PDOSC;
+#X obj 816 60 OSCprepend \$1;
+#X obj 764 437 routeOSC /preset /substate;
+#X obj 777 377 deeprouteOSC \$1;
+#X obj 247 579 r \$2/returnParams;
+#X obj 247 619 s \$1/paramsList;
+#X connect 5 0 55 0;
+#X connect 10 0 68 0;
+#X connect 11 0 50 1;
+#X connect 12 0 55 0;
+#X connect 13 0 55 0;
+#X connect 14 0 88 0;
+#X connect 16 0 17 0;
+#X connect 16 0 67 0;
+#X connect 17 0 26 0;
+#X connect 18 0 20 0;
+#X connect 19 0 20 0;
+#X connect 21 0 54 0;
+#X connect 22 0 25 0;
+#X connect 22 1 19 0;
+#X connect 24 0 6 0;
+#X connect 30 0 50 0;
+#X connect 30 0 81 0;
+#X connect 34 0 27 0;
+#X connect 35 0 27 0;
+#X connect 35 1 34 0;
+#X connect 36 0 80 0;
+#X connect 37 0 42 0;
+#X connect 38 0 37 1;
+#X connect 38 0 41 1;
+#X connect 38 1 36 1;
+#X connect 39 0 83 0;
+#X connect 39 1 40 0;
+#X connect 41 0 33 0;
+#X connect 46 0 56 0;
+#X connect 46 1 45 0;
+#X connect 50 0 48 0;
+#X connect 51 0 52 0;
+#X connect 53 0 55 0;
+#X connect 54 0 18 0;
+#X connect 54 1 22 0;
+#X connect 54 2 6 0;
+#X connect 55 0 4 0;
+#X connect 55 1 15 0;
+#X connect 55 2 39 0;
+#X connect 55 3 46 0;
+#X connect 55 4 21 0;
+#X connect 55 4 72 0;
+#X connect 57 0 73 0;
+#X connect 58 0 74 0;
+#X connect 59 0 60 0;
+#X connect 59 1 57 0;
+#X connect 60 0 21 0;
+#X connect 62 0 55 0;
+#X connect 63 0 65 0;
+#X connect 65 0 66 0;
+#X connect 67 0 50 0;
+#X connect 68 0 36 0;
+#X connect 68 0 41 0;
+#X connect 68 0 82 0;
+#X connect 68 1 80 1;
+#X connect 68 1 82 1;
+#X connect 68 2 11 0;
+#X connect 69 0 55 0;
+#X connect 71 0 55 0;
+#X connect 72 0 59 0;
+#X connect 72 1 58 0;
+#X connect 73 0 47 0;
+#X connect 74 0 47 0;
+#X connect 75 0 32 0;
+#X connect 75 0 87 0;
+#X connect 76 0 88 0;
+#X connect 77 0 78 0;
+#X connect 80 0 23 0;
+#X connect 81 0 68 0;
+#X connect 82 0 37 0;
+#X connect 83 0 35 0;
+#X connect 84 0 86 0;
+#X connect 86 0 85 0;
+#X connect 87 0 51 0;
+#X connect 87 1 51 0;
+#X connect 88 0 32 0;
+#X connect 88 0 87 0;
+#X connect 89 0 90 0;
diff --git a/semento/sft.rradical.state.pd b/semento/sft.rradical.state.pd
new file mode 100644
index 0000000..a7f7b2a
--- /dev/null
+++ b/semento/sft.rradical.state.pd
@@ -0,0 +1,220 @@
+#N canvas 33 22 1040 638 10;
+#X obj 108 454 outlet;
+#X obj 87 475 outlet;
+#X obj 173 410 print attr;
+#X obj 87 380 pool RRADICAL;
+#X obj 205 46 inlet;
+#X obj 42 331 r \$0-pool;
+#X obj 356 373 s \$0-pool;
+#X obj 205 124 symbol \$1;
+#X obj 134 29 loadbang;
+#X msg 255 278 getdir;
+#X obj 130 433 outlet;
+#X obj 457 313 prepend get;
+#X msg 306 160 getall;
+#X obj 386 228 s \$0-substate;
+#X obj 356 203 t b f;
+#X msg 121 318 echodir \$1;
+#X obj 121 291 tgl 15 1 empty empty empty 0 -6 0 8 -262144 -1 -1 1
+1;
+#X msg 118 347 getdir;
+#X msg 137 79 bang;
+#X msg 508 190 copyall;
+#X msg 565 190 paste;
+#X obj 532 223 s \$0-pool;
+#X obj 508 136 symbol;
+#N canvas 468 415 458 308 mkchange2substate 0;
+#X obj 92 39 inlet;
+#X obj 111 224 outlet;
+#X obj 198 93 r \$0-memento;
+#X obj 293 93 r \$0-substate;
+#X obj 111 150 pack s s 0;
+#X obj 92 93 symbol mkchdir;
+#X obj 92 67 t b;
+#X obj 111 180 route list;
+#X text 204 180 Un-List it again;
+#X connect 0 0 6 0;
+#X connect 2 0 4 1;
+#X connect 3 0 4 2;
+#X connect 4 0 7 0;
+#X connect 5 0 4 0;
+#X connect 6 0 5 0;
+#X connect 7 0 1 0;
+#X restore 356 274 pd mkchange2substate;
+#X obj 205 160 t b b s;
+#X obj 249 209 s \$0-memento;
+#X obj 17 525 print pool;
+#X obj 205 84 route state getstate getall substate set get;
+#X obj 508 160 select copy paste;
+#X obj 698 550 s \$0-pool;
+#X obj 17 544 print svld;
+#X obj 601 373 symbol;
+#X obj 793 377 symbol;
+#X obj 17 563 print currentDir;
+#X msg 191 349 printroot;
+#N canvas 468 415 478 328 mkchange2tmp 0;
+#X obj 92 39 inlet;
+#X obj 111 224 outlet;
+#X obj 198 93 r \$0-memento;
+#X obj 92 93 symbol mkchdir;
+#X obj 92 67 t b;
+#X obj 111 180 route list;
+#X text 204 180 Un-List it again;
+#X msg 296 94 symbol tmp;
+#X obj 111 150 pack s s s;
+#X obj 296 66 loadbang;
+#X msg 167 37 bang;
+#X connect 0 0 4 0;
+#X connect 2 0 8 1;
+#X connect 3 0 8 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 7 0 8 2;
+#X connect 8 0 5 0;
+#X connect 9 0 7 0;
+#X connect 10 0 4 0;
+#X restore 623 347 pd mkchange2tmp;
+#N canvas 1317 161 462 312 mkchange2substate 0;
+#X obj 92 39 inlet;
+#X obj 111 224 outlet;
+#X obj 198 93 r \$0-memento;
+#X obj 293 93 r \$0-substate;
+#X obj 111 150 pack s s 0;
+#X obj 92 93 symbol mkchdir;
+#X obj 111 180 route list;
+#X text 204 180 Un-List it again;
+#X text 195 29 change back to substate dir;
+#X obj 92 67 t b b;
+#X msg 38 98 clrclip;
+#X connect 0 0 9 0;
+#X connect 2 0 4 1;
+#X connect 3 0 4 2;
+#X connect 4 0 6 0;
+#X connect 5 0 4 0;
+#X connect 6 0 1 0;
+#X connect 9 0 10 0;
+#X connect 9 1 5 0;
+#X connect 10 0 1 0;
+#X restore 771 424 pd mkchange2substate;
+#X obj 579 325 t b a b;
+#N canvas 405 362 623 338 sub2tmp 0;
+#X obj 121 12 inlet;
+#X obj 111 224 outlet;
+#X obj 198 93 r \$0-memento;
+#X obj 92 93 symbol mkchdir;
+#X obj 111 180 route list;
+#X text 204 180 Un-List it again;
+#X msg 36 91 paste;
+#X obj 121 40 t b b b;
+#X msg 406 90 copyall;
+#X text 189 8 copies data from current dir \, changes to "tmp" dir
+\, pastes data.;
+#X obj 293 93 symbol tmp;
+#X msg 294 47 bang;
+#X obj 359 47 loadbang;
+#X obj 111 150 pack s s s;
+#X connect 0 0 7 0;
+#X connect 2 0 13 1;
+#X connect 3 0 13 0;
+#X connect 4 0 1 0;
+#X connect 6 0 1 0;
+#X connect 7 0 6 0;
+#X connect 7 1 3 0;
+#X connect 7 2 8 0;
+#X connect 8 0 1 0;
+#X connect 10 0 13 2;
+#X connect 11 0 10 0;
+#X connect 12 0 10 0;
+#X connect 13 0 4 0;
+#X restore 815 348 pd sub2tmp;
+#X obj 771 324 t b a b;
+#X msg 536 357 bang;
+#X obj 17 582 print currentCommand;
+#X obj 661 100 t a;
+#N canvas 757 334 643 358 tmp2sub+abs1 0;
+#X obj 121 12 inlet;
+#X obj 181 257 outlet;
+#X obj 268 126 r \$0-memento;
+#X obj 363 126 r \$0-substate;
+#X obj 181 183 pack s s 0;
+#X obj 162 126 symbol mkchdir;
+#X obj 181 213 route list;
+#X text 274 213 Un-List it again;
+#X msg 106 124 paste;
+#X msg 476 123 copyall;
+#X obj 121 40 t b b b b;
+#X msg 35 125 absdir 1;
+#X text 191 19 copies data from "tmp" dir \, changes to current substate
+\, pastes data \, returns to absolute directory mode.;
+#X connect 0 0 10 0;
+#X connect 2 0 4 1;
+#X connect 3 0 4 2;
+#X connect 4 0 6 0;
+#X connect 5 0 4 0;
+#X connect 6 0 1 0;
+#X connect 8 0 1 0;
+#X connect 9 0 1 0;
+#X connect 10 0 11 0;
+#X connect 10 1 8 0;
+#X connect 10 2 5 0;
+#X connect 10 3 9 0;
+#X connect 11 0 1 0;
+#X restore 579 417 pd tmp2sub+abs1;
+#X obj 661 293 route lddir svdir;
+#X msg 793 398 absdir 0 \, svdir \$1 \, absdir 1;
+#X msg 601 393 absdir 0 \, lddir \$1;
+#X obj 407 160 prepent set;
+#X connect 3 0 1 0;
+#X connect 3 1 0 0;
+#X connect 3 2 10 0;
+#X connect 3 4 2 0;
+#X connect 4 0 27 0;
+#X connect 5 0 3 0;
+#X connect 7 0 24 0;
+#X connect 8 0 7 0;
+#X connect 9 0 6 0;
+#X connect 11 0 6 0;
+#X connect 12 0 6 0;
+#X connect 14 0 23 0;
+#X connect 14 1 13 0;
+#X connect 15 0 3 0;
+#X connect 16 0 15 0;
+#X connect 17 0 3 0;
+#X connect 18 0 7 0;
+#X connect 19 0 21 0;
+#X connect 20 0 21 0;
+#X connect 22 0 28 0;
+#X connect 23 0 6 0;
+#X connect 24 0 9 0;
+#X connect 24 1 23 0;
+#X connect 24 2 25 0;
+#X connect 27 0 7 0;
+#X connect 27 1 9 0;
+#X connect 27 2 12 0;
+#X connect 27 3 14 0;
+#X connect 27 4 47 0;
+#X connect 27 5 11 0;
+#X connect 27 6 22 0;
+#X connect 27 6 42 0;
+#X connect 28 0 19 0;
+#X connect 28 1 20 0;
+#X connect 31 0 46 0;
+#X connect 32 0 45 0;
+#X connect 34 0 3 0;
+#X connect 35 0 29 0;
+#X connect 36 0 29 0;
+#X connect 37 0 43 0;
+#X connect 37 1 31 0;
+#X connect 37 2 35 0;
+#X connect 38 0 29 0;
+#X connect 39 0 36 0;
+#X connect 39 1 32 0;
+#X connect 39 2 38 0;
+#X connect 40 0 31 0;
+#X connect 42 0 44 0;
+#X connect 43 0 29 0;
+#X connect 44 0 37 0;
+#X connect 44 1 39 0;
+#X connect 45 0 29 0;
+#X connect 46 0 29 0;
+#X connect 47 0 6 0;