changeset 322:dde921ea256b Doxy prerelease

libpd and heavy examples added
author Robert Jack <robert.h.jack@gmail.com>
date Mon, 30 May 2016 12:47:17 +0100
parents 4475c0bc2aaa
children
files projects/heavy/pd/hello-midi-poly/_main.pd projects/heavy/pd/hello-midi-poly/backmain.pd projects/heavy/pd/hello-midi-poly/bela_ctlin.pd projects/heavy/pd/hello-midi-poly/bela_notein.pd projects/heavy/pd/hello-midi-poly/bela_pgmin.pd projects/heavy/pd/hello-midi-poly/countTo.pd projects/heavy/pd/hello-midi-poly/maxArray.pd projects/heavy/pd/hello-midi-poly/mono.pd projects/heavy/pd/hello-midi-poly/voice.pd projects/heavy/pd/midi-poly-fm/_main.pd projects/heavy/pd/midi-poly-fm/backmain.pd projects/heavy/pd/midi-poly-fm/bela_ctlin.pd projects/heavy/pd/midi-poly-fm/bela_notein.pd projects/heavy/pd/midi-poly-fm/bela_pgmin.pd projects/heavy/pd/midi-poly-fm/countTo.pd projects/heavy/pd/midi-poly-fm/maxArray.pd projects/heavy/pd/midi-poly-fm/mono.pd projects/heavy/pd/midi-poly-fm/voice.pd projects/libpd/arp-delay/_main.pd projects/libpd/basicAnalogIn/_main.pd projects/libpd/basicAnalogOut/_main.pd projects/libpd/circularBuffer/_main.pd projects/libpd/envelopeTrigger/_main.pd projects/libpd/hello-midi/_main.pd projects/libpd/hello-midi/backmain.pd projects/libpd/hello-midi/bela_ctlin.pd projects/libpd/hello-midi/bela_notein.pd projects/libpd/hello-midi/bela_pgmin.pd projects/libpd/hello-midi/countTo.pd projects/libpd/hello-midi/maxArray.pd projects/libpd/hello-midi/mono.pd projects/libpd/hello-techno-world/_main.pd projects/libpd/hello-world/_main.pd projects/libpd/karplusStrong/_main.pd projects/libpd/karplusStrong/count.pd projects/libpd/rubberDuckie/_main.pd projects/libpd/samphold/_main.pd projects/libpd/simple-fm/_main.pd projects/libpd/tableScrubbing/_main.pd projects/libpd/tableScrubbing/rt.wav
diffstat 40 files changed, 3566 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/hello-midi-poly/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,125 @@
+#N canvas 39 23 1237 555 10;
+#X text 39 1 Hello world!;
+#X text 182 448 ---------------------------------;
+#X text 182 438 @krighxz / BELA / heavy / 12/2015;
+#X text 206 457 beaglert.cc / enzienaudio.com;
+#X obj 260 83 * 20;
+#X obj 261 112 + 200;
+#X text 673 121 [pgmin];
+#X obj 218 178 * 10;
+#X obj 200 200 + 50;
+#X obj 260 60 bela_ctlin 5 0;
+#X obj 220 151 bela_ctlin 6 0;
+#X text 537 58 [ctlin];
+#X text 332 27 [notein];
+#X text 349 59 <== the bela equivalent of ==>;
+#X text 483 121 <== the bela equivalent of ==>;
+#X obj 405 175 print pgmin;
+#X obj 408 121 bela_pgmin 0;
+#X obj 740 28 bela_notein 0;
+#X obj 740 57 pack 0 0;
+#X obj 740 106 pack 0 0 0;
+#X obj 593 507 dac~ 1 2;
+#X obj 740 84 poly 6 1;
+#X obj 740 128 route 1 2 3 4 5 6, f 36;
+#X obj 646 178 s voice-note-1;
+#X obj 736 178 s voice-note-2;
+#X obj 826 178 s voice-note-3;
+#X obj 916 178 s voice-note-4;
+#X obj 1006 178 s voice-note-5;
+#X obj 1096 178 s voice-note-6;
+#X obj 593 311 catch~ output;
+#X obj 515 244 voice 1;
+#X obj 837 319 s~ harmRatio~;
+#X obj 837 292 adc~ 3;
+#X obj 1116 292 adc~ 6;
+#X obj 1150 21 loadbang;
+#X obj 1150 43 metro 10;
+#X obj 1150 65 s metro;
+#N canvas 0 22 178 130 snapshot 0;
+#X obj 24 20 inlet~;
+#X obj 24 62 snapshot~;
+#X obj 24 84 outlet;
+#X obj 86 29 r metro;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 3 0 1 0;
+#X restore 1036 314 pd snapshot;
+#N canvas 0 22 178 130 snapshot 0;
+#X obj 24 20 inlet~;
+#X obj 24 62 snapshot~;
+#X obj 24 84 outlet;
+#X obj 86 29 r metro;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 3 0 1 0;
+#X restore 944 314 pd snapshot;
+#X obj 944 292 adc~ 4;
+#X obj 1036 292 adc~ 5;
+#X obj 944 336 * 1000;
+#X obj 1036 392 s Q;
+#X obj 944 381 s attack;
+#X obj 1036 336 * 8000;
+#X obj 1036 365 + 200;
+#X obj 1116 379 s~ wobble;
+#X obj 944 358 + 5;
+#X obj 1116 336 *~ 25;
+#X text 611 428 hvtanh;
+#X obj 728 450 delwrite~ delay 1000;
+#X obj 705 372 vd~ delay;
+#X obj 705 344 *~ 1000;
+#X obj 593 389 *~ 0.05;
+#X obj 593 469 +~;
+#X obj 705 394 *~ 0.3;
+#X obj 750 306 lop~ 1;
+#X obj 515 264 voice 2;
+#X obj 515 284 voice 3;
+#X obj 515 304 voice 4;
+#X obj 515 324 voice 5;
+#X obj 515 344 voice 6;
+#X obj 629 334 r Q;
+#X obj 593 360 lop~ 1;
+#X connect 4 0 5 0;
+#X connect 7 0 8 0;
+#X connect 9 0 4 0;
+#X connect 10 0 7 0;
+#X connect 16 0 15 0;
+#X connect 17 0 18 0;
+#X connect 17 1 18 1;
+#X connect 18 0 21 0;
+#X connect 19 0 22 0;
+#X connect 21 0 19 0;
+#X connect 21 1 19 1;
+#X connect 21 2 19 2;
+#X connect 22 0 23 0;
+#X connect 22 1 24 0;
+#X connect 22 2 25 0;
+#X connect 22 3 26 0;
+#X connect 22 4 27 0;
+#X connect 22 5 28 0;
+#X connect 29 0 63 0;
+#X connect 32 0 31 0;
+#X connect 32 0 56 0;
+#X connect 33 0 48 0;
+#X connect 34 0 35 0;
+#X connect 35 0 36 0;
+#X connect 37 0 44 0;
+#X connect 38 0 41 0;
+#X connect 39 0 38 0;
+#X connect 40 0 37 0;
+#X connect 41 0 47 0;
+#X connect 44 0 45 0;
+#X connect 45 0 42 0;
+#X connect 47 0 43 0;
+#X connect 48 0 46 0;
+#X connect 51 0 55 0;
+#X connect 52 0 51 0;
+#X connect 53 0 50 0;
+#X connect 53 0 54 0;
+#X connect 54 0 20 0;
+#X connect 54 0 20 1;
+#X connect 55 0 54 1;
+#X connect 55 0 50 0;
+#X connect 56 0 52 0;
+#X connect 62 0 63 1;
+#X connect 63 0 53 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/hello-midi-poly/backmain.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,79 @@
+#N canvas 85 58 1280 685 10;
+#X obj 19 396 dac~ 1 2;
+#X text 39 1 Hello world!;
+#X text 37 11 ============;
+#X obj 31 353 *~ 0.1;
+#X text 202 448 ---------------------------------;
+#X text 202 438 @krighxz / BELA / heavy / 12/2015;
+#X text 226 457 beaglert.cc / enzienaudio.com;
+#X obj 39 132 mtof;
+#X floatatom 79 59 5 0 0 0 - - -, f 5;
+#X floatatom 122 59 5 0 0 0 - - -, f 5;
+#X floatatom 41 63 5 0 0 0 - - -, f 5;
+#X obj 26 170 phasor~ 440;
+#X text 100 363 (the harsh sound of success);
+#X obj 260 83 * 20;
+#X obj 261 112 + 200;
+#X obj 132 85 loadbang;
+#X msg 131 111 1000;
+#X obj 125 166 sig~;
+#X text 673 121 [pgmin];
+#X obj 218 178 * 10;
+#X obj 30 250 hip~;
+#X obj 26 275 hip~;
+#X obj 20 302 hip~;
+#X obj 19 323 hip~;
+#X obj 87 192 lop~ 4;
+#X obj 152 256 line;
+#X obj 200 200 + 50;
+#X msg 170 227 \$1 200;
+#X msg 93 114 0;
+#X msg 185 112 0;
+#X obj 29 224 vcf~ 4;
+#X obj 70 333 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 42 92 mono;
+#X obj 40 28 bela_notein 0;
+#X obj 260 60 bela_ctlin 5 0;
+#X obj 220 151 bela_ctlin 6 0;
+#X obj 408 121 bela_pgmin 3;
+#X text 537 58 [ctlin];
+#X text 332 27 [notein];
+#X text 140 29 <== the bela equivalent of ==>;
+#X text 349 59 <== the bela equivalent of ==>;
+#X text 483 121 <== the bela equivalent of ==>;
+#X connect 3 0 0 1;
+#X connect 3 0 0 0;
+#X connect 7 0 11 0;
+#X connect 8 0 32 1;
+#X connect 10 0 32 0;
+#X connect 11 0 30 0;
+#X connect 13 0 14 0;
+#X connect 14 0 17 0;
+#X connect 15 0 16 0;
+#X connect 15 0 29 0;
+#X connect 15 0 28 0;
+#X connect 16 0 17 0;
+#X connect 17 0 24 0;
+#X connect 19 0 26 0;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 3 0;
+#X connect 24 0 30 1;
+#X connect 25 0 20 1;
+#X connect 25 0 21 1;
+#X connect 25 0 22 1;
+#X connect 25 0 23 1;
+#X connect 26 0 27 0;
+#X connect 27 0 25 0;
+#X connect 29 0 19 0;
+#X connect 30 0 20 0;
+#X connect 31 0 3 1;
+#X connect 32 0 7 0;
+#X connect 32 1 31 0;
+#X connect 33 0 10 0;
+#X connect 33 1 8 0;
+#X connect 33 2 9 0;
+#X connect 34 0 13 0;
+#X connect 35 0 19 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/hello-midi-poly/bela_ctlin.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,76 @@
+#N canvas 554 204 703 475 10;
+#X obj 53 431 outlet;
+#X obj 108 429 outlet;
+#X obj 99 127 r ctlin;
+#X obj 92 151 unpack f f f;
+#X obj 154 429 outlet;
+#X obj 86 322 spigot;
+#X text 51 450 value;
+#X text 105 450 number;
+#X obj 211 138 loadbang;
+#X obj 177 193 \$1;
+#X obj 126 214 == \$1;
+#X obj 119 299 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 84 349 unpack f f f;
+#X obj 143 247 ||;
+#X obj 177 217 == 0;
+#X text 70 11 Emulates ctlin \, except number of outlets is fixed.
+;
+#X obj 228 247 ||;
+#X obj 262 217 == 0;
+#X obj 212 214 == \$2;
+#X obj 262 193 \$2;
+#X obj 177 277 &&;
+#X obj 211 163 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 173 299 If (inputController==\$1 || \$1==0) && (inputChannel==\$2
+|| \$2==0);
+#X text 197 52 Known issue: trying to select inputController 0 will
+result i accepting all controllers (because a pd external cannot tell
+the difference between \$1 been explicitely set to 0 and the patch
+not having any argument);
+#X text 162 450 channel;
+#X obj 56 192 pack f f f;
+#X obj 80 408 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X floatatom 81 382 5 0 0 0 - - -, f 5;
+#X obj 121 412 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 122 386 5 0 0 0 - - -, f 5;
+#X obj 172 406 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 173 380 5 0 0 0 - - -, f 5;
+#X obj 122 92 s ctlin;
+#X obj 64 29 r bela_ctlin;
+#X connect 2 0 3 0;
+#X connect 3 0 25 0;
+#X connect 3 1 10 0;
+#X connect 3 1 25 1;
+#X connect 3 2 18 0;
+#X connect 3 2 25 2;
+#X connect 5 0 12 0;
+#X connect 8 0 21 0;
+#X connect 9 0 14 0;
+#X connect 10 0 13 0;
+#X connect 11 0 5 1;
+#X connect 12 0 0 0;
+#X connect 12 0 27 0;
+#X connect 12 1 1 0;
+#X connect 12 1 29 0;
+#X connect 12 2 4 0;
+#X connect 12 2 31 0;
+#X connect 13 0 20 0;
+#X connect 14 0 13 1;
+#X connect 16 0 20 1;
+#X connect 17 0 16 1;
+#X connect 18 0 16 0;
+#X connect 19 0 17 0;
+#X connect 20 0 11 0;
+#X connect 21 0 9 0;
+#X connect 21 0 19 0;
+#X connect 25 0 5 0;
+#X connect 27 0 26 0;
+#X connect 29 0 28 0;
+#X connect 31 0 30 0;
+#X connect 33 0 32 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/hello-midi-poly/bela_notein.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,59 @@
+#N canvas 399 23 629 685 10;
+#X obj 94 481 outlet;
+#X obj 165 475 outlet;
+#X obj 141 184 unpack f f f;
+#X obj 221 472 outlet;
+#X obj 143 365 spigot;
+#X obj 268 181 loadbang;
+#X obj 234 236 \$1;
+#X obj 183 257 == \$1;
+#X obj 176 342 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 143 392 unpack f f f;
+#X obj 200 290 ||;
+#X obj 234 260 == 0;
+#X obj 268 206 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 160 65 Emulates notein \, except number of outlets is fixed.
+;
+#X text 92 499 notenumber;
+#X text 161 489 velocity;
+#X text 220 486 channel;
+#X text 229 311 If (inputChannel==\$1 || \$1==0);
+#X obj 115 232 pack f f f;
+#X obj 82 428 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X floatatom 84 410 5 0 0 0 - - -, f 5;
+#X obj 145 448 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 147 430 5 0 0 0 - - -, f 5;
+#X obj 198 451 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 200 433 5 0 0 0 - - -, f 5;
+#X obj 131 112 s notein;
+#X obj 140 149 r notein;
+#X obj 135 84 r bela_notein;
+#X connect 2 0 18 0;
+#X connect 2 1 18 1;
+#X connect 2 2 7 0;
+#X connect 2 2 18 2;
+#X connect 4 0 9 0;
+#X connect 5 0 12 0;
+#X connect 6 0 11 0;
+#X connect 7 0 10 0;
+#X connect 8 0 4 1;
+#X connect 9 0 0 0;
+#X connect 9 0 20 0;
+#X connect 9 1 1 0;
+#X connect 9 1 22 0;
+#X connect 9 2 3 0;
+#X connect 9 2 24 0;
+#X connect 10 0 8 0;
+#X connect 11 0 10 1;
+#X connect 12 0 6 0;
+#X connect 18 0 4 0;
+#X connect 20 0 19 0;
+#X connect 22 0 21 0;
+#X connect 24 0 23 0;
+#X connect 26 0 2 0;
+#X connect 27 0 25 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/hello-midi-poly/bela_pgmin.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,53 @@
+#N canvas 623 197 587 546 10;
+#X obj 73 413 outlet;
+#X obj 174 411 outlet;
+#X obj 106 304 spigot;
+#X obj 197 126 loadbang;
+#X obj 197 175 \$1;
+#X obj 146 196 == \$1;
+#X obj 139 281 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 163 229 ||;
+#X obj 197 199 == 0;
+#X obj 197 151 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 89 111 unpack f f;
+#X obj 106 332 unpack f f;
+#X text 52 436 program number;
+#X text 182 432 channel;
+#X text 193 281 If (channel==\$1 || \$1==0);
+#X text 167 45 emulates pgmin except it always has 2 outlets and requires
+the input parameters to be explicitely set. Set them to 0 to avoid
+filtering;
+#X text 262 132 It'd be nicer with [t l l] but have to compensate for
+the fact that it is not supported by heavy;
+#X obj 77 183 pack f f;
+#X floatatom 72 355 5 0 0 0 - - -, f 5;
+#X obj 63 379 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X floatatom 150 361 5 0 0 0 - - -, f 5;
+#X obj 141 385 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 91 63 s pgmin;
+#X obj 93 87 r pgmin;
+#X obj 89 42 r bela_pgmin;
+#X connect 2 0 11 0;
+#X connect 3 0 9 0;
+#X connect 4 0 8 0;
+#X connect 5 0 7 0;
+#X connect 6 0 2 1;
+#X connect 7 0 6 0;
+#X connect 8 0 7 1;
+#X connect 9 0 4 0;
+#X connect 10 0 17 0;
+#X connect 10 1 5 0;
+#X connect 10 1 17 1;
+#X connect 11 0 0 0;
+#X connect 11 0 18 0;
+#X connect 11 1 1 0;
+#X connect 11 1 20 0;
+#X connect 17 0 2 0;
+#X connect 18 0 19 0;
+#X connect 20 0 21 0;
+#X connect 23 0 10 0;
+#X connect 24 0 22 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/hello-midi-poly/countTo.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,33 @@
+#N canvas 584 255 450 300 10;
+#X obj 65 196 outlet;
+#X obj 98 8 inlet;
+#X text 189 49 counts from 0 to the given number -1;
+#X text 214 95 inlet:N;
+#X text 212 112 outlet: 0 \, 1 \, 2 \, ... \, N-1;
+#X obj 143 61 f;
+#X obj 100 138 spigot;
+#X obj 129 89 <;
+#X obj 129 113 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 95 28 t b f b;
+#X obj 92 74 + 1;
+#X obj 43 73 f;
+#X obj 63 104 t b f f f;
+#X msg 92 53 0;
+#X obj 16 144 delay 0;
+#X connect 1 0 9 0;
+#X connect 5 0 7 1;
+#X connect 6 0 11 0;
+#X connect 7 0 8 0;
+#X connect 8 0 6 1;
+#X connect 9 0 11 0;
+#X connect 9 1 5 0;
+#X connect 9 1 13 0;
+#X connect 10 0 11 1;
+#X connect 11 0 12 0;
+#X connect 12 0 14 0;
+#X connect 12 1 0 0;
+#X connect 12 2 7 0;
+#X connect 12 3 10 0;
+#X connect 13 0 11 1;
+#X connect 14 0 6 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/hello-midi-poly/maxArray.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,67 @@
+#N canvas 464 23 1002 583 10;
+#X obj 224 202 max;
+#X obj 265 200 f;
+#X obj 223 229 change;
+#X obj 223 251 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 223 271 f;
+#X obj 259 323 f;
+#X obj 187 315 f;
+#X obj 268 282 t b b;
+#X obj 183 364 outlet;
+#X obj 269 379 outlet;
+#X obj 179 17 inlet;
+#X obj 225 177 tabread \$1;
+#X obj 230 88 t f f b;
+#X text 376 37 Finds a maximum value in an array;
+#X text 531 112 \$2 arrayLength;
+#X obj 292 10 inlet;
+#X text 425 146 inlets:;
+#X text 473 144 1 bang to find the maximum;
+#X text 475 157 2 arrayLength;
+#X text 407 90 creation arguments: \$1 arrayName;
+#X obj 246 38 \$2;
+#X obj 202 40 bang;
+#X obj 230 65 f;
+#X obj 224 6 loadbang;
+#X text 444 216 outlets: 1 maximum value;
+#X text 498 231 2 index of the maximum value;
+#X msg 276 141 -1e+15;
+#X obj 222 142 t f f f;
+#X floatatom 158 266 5 0 0 0 - - -, f 5;
+#X obj 332 302 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 288 253 select 127;
+#X floatatom 301 324 5 0 0 0 - - -, f 5;
+#X text 362 256 heavy does not support the second inlet of select so
+I have to hard code 127 in here;
+#X obj 223 110 countTo;
+#X connect 0 0 1 0;
+#X connect 0 0 2 0;
+#X connect 0 0 6 1;
+#X connect 0 0 28 0;
+#X connect 1 0 0 1;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 1;
+#X connect 4 0 31 0;
+#X connect 5 0 9 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 7 1 5 0;
+#X connect 10 0 21 0;
+#X connect 11 0 0 0;
+#X connect 12 0 33 0;
+#X connect 12 2 26 0;
+#X connect 15 0 22 1;
+#X connect 20 0 22 1;
+#X connect 21 0 22 0;
+#X connect 22 0 12 0;
+#X connect 23 0 20 0;
+#X connect 26 0 0 1;
+#X connect 27 0 30 0;
+#X connect 27 1 11 0;
+#X connect 27 2 4 1;
+#X connect 30 0 7 0;
+#X connect 30 0 29 0;
+#X connect 33 0 27 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/hello-midi-poly/mono.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,106 @@
+#N canvas 69 182 1020 452 10;
+#N canvas 0 23 450 278 (subpatch) 0;
+#X array \$0-activeNotes 127 float 2;
+#X coords 0 100 127 -1 200 140 1 0 0;
+#X restore 537 25 graph;
+#N canvas 89 91 450 300 resetArray 1;
+#X obj 121 145 tabwrite \$0-activeNotes;
+#X msg 123 115 -0.5;
+#X obj 154 90 t b f;
+#X msg 129 45 128;
+#X obj 103 14 inlet;
+#X text 212 71 countto;
+#X obj 153 69 countTo;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 2 1 0 1;
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 6 0 2 0;
+#X restore 83 49 pd resetArray;
+#X obj 83 3 loadbang;
+#X obj 88 25 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 39 188 maxArray \$0-activeNotes 128;
+#X obj 183 219 f;
+#X obj 39 237 >= 0;
+#X floatatom 148 313 5 0 0 0 - - -, f 5;
+#X obj 70 262 select 1;
+#X obj 366 87 f;
+#X obj 426 60 f;
+#X text 334 39 note;
+#X text 424 16 velocity;
+#X obj 423 87 > 0;
+#X obj 344 281 tabwrite \$0-activeNotes;
+#X obj 330 207 f;
+#X floatatom 303 178 5 0 0 0 - - -, f 5;
+#X obj 265 163 f;
+#X obj 304 150 + 1;
+#X msg 277 130 -1;
+#X msg 371 207 -0.5;
+#X obj 400 116 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 367 137 spigot;
+#X obj 447 134 spigot;
+#X obj 460 86 == 0;
+#X obj 470 109 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 434 163 t b f;
+#X obj 337 60 inlet;
+#X obj 426 32 inlet;
+#X obj 148 350 outlet;
+#X obj 275 89 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 41 163 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 363 172 t b f;
+#X obj 334 240 t b f;
+#X text 578 211 pass in velocity/note pairs (velocity first) and obtain
+as an output the most recent note still active;
+#X text 581 268 outlet 2 gate;
+#X obj 330 366 outlet;
+#X text 583 251 outlet 1 most recent note active (-1 otherwise);
+#X text 155 329 most recent note active;
+#X msg 338 338 0;
+#X msg 378 339 1;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 3 0 19 0;
+#X connect 4 0 6 0;
+#X connect 4 1 5 1;
+#X connect 5 0 7 0;
+#X connect 5 0 40 0;
+#X connect 6 0 8 0;
+#X connect 7 0 29 0;
+#X connect 8 0 5 0;
+#X connect 8 1 39 0;
+#X connect 9 0 22 0;
+#X connect 9 0 23 0;
+#X connect 10 0 13 0;
+#X connect 10 0 24 0;
+#X connect 13 0 21 0;
+#X connect 15 0 33 0;
+#X connect 16 0 15 1;
+#X connect 17 0 18 0;
+#X connect 18 0 16 0;
+#X connect 18 0 17 1;
+#X connect 19 0 17 1;
+#X connect 20 0 33 0;
+#X connect 21 0 22 1;
+#X connect 22 0 32 0;
+#X connect 23 0 26 0;
+#X connect 24 0 25 0;
+#X connect 25 0 23 1;
+#X connect 26 0 20 0;
+#X connect 26 1 14 1;
+#X connect 27 0 9 0;
+#X connect 28 0 10 0;
+#X connect 28 0 30 0;
+#X connect 30 0 17 0;
+#X connect 31 0 4 0;
+#X connect 32 0 15 0;
+#X connect 32 1 14 1;
+#X connect 33 0 31 0;
+#X connect 33 1 14 0;
+#X connect 39 0 36 0;
+#X connect 40 0 36 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/hello-midi-poly/voice.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,32 @@
+#N canvas 4 23 420 529 10;
+#X obj 45 25 r voice-note-\$1;
+#X obj 45 47 unpack 0 0;
+#X obj 45 103 mtof;
+#X obj 111 446 *~;
+#X obj 152 367 / 127;
+#X obj 111 477 throw~ output;
+#X obj 152 419 line~;
+#X obj 152 393 pack 0 0;
+#X obj 59 176 phasor~;
+#X obj 129 176 phasor~;
+#X obj 86 264 +~;
+#X obj 197 367 r attack;
+#X obj 137 115 sig~;
+#X obj 137 137 +~;
+#X obj 171 113 r~ wobble;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 1 1 4 0;
+#X connect 2 0 8 0;
+#X connect 2 0 12 0;
+#X connect 3 0 5 0;
+#X connect 4 0 7 0;
+#X connect 6 0 3 1;
+#X connect 7 0 6 0;
+#X connect 8 0 10 1;
+#X connect 9 0 10 0;
+#X connect 10 0 3 0;
+#X connect 11 0 7 1;
+#X connect 12 0 13 0;
+#X connect 13 0 9 0;
+#X connect 14 0 13 1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/midi-poly-fm/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,175 @@
+#N canvas 4 23 1276 755 10;
+#X text 39 1 Hello world!;
+#X text 182 448 ---------------------------------;
+#X text 182 438 @krighxz / BELA / heavy / 12/2015;
+#X text 206 457 beaglert.cc / enzienaudio.com;
+#X obj 260 83 * 20;
+#X obj 261 112 + 200;
+#X text 673 121 [pgmin];
+#X obj 218 178 * 10;
+#X obj 200 200 + 50;
+#X obj 260 60 bela_ctlin 5 0;
+#X obj 220 151 bela_ctlin 6 0;
+#X text 537 58 [ctlin];
+#X text 332 27 [notein];
+#X text 349 59 <== the bela equivalent of ==>;
+#X text 483 121 <== the bela equivalent of ==>;
+#X obj 405 175 print pgmin;
+#X obj 408 121 bela_pgmin 0;
+#X obj 740 28 bela_notein 0;
+#X obj 740 57 pack 0 0;
+#X obj 740 106 pack 0 0 0;
+#X obj 873 240 unpack 0 0;
+#X obj 873 262 mtof;
+#X obj 873 284 phasor~;
+#X obj 873 361 *~;
+#X obj 923 284 / 127;
+#X obj 873 396 *~ 0.1;
+#X obj 593 507 dac~ 1 2;
+#X obj 963 240 unpack 0 0;
+#X obj 963 262 mtof;
+#X obj 963 284 phasor~;
+#X obj 1013 284 / 127;
+#X obj 1053 240 unpack 0 0;
+#X obj 1053 262 mtof;
+#X obj 1053 284 phasor~;
+#X obj 1103 284 / 127;
+#X obj 1143 240 unpack 0 0;
+#X obj 1143 262 mtof;
+#X obj 1143 284 phasor~;
+#X obj 1193 284 / 127;
+#X obj 888 338 line;
+#X obj 963 361 *~;
+#X obj 978 338 line;
+#X obj 1053 361 *~;
+#X obj 1068 338 line;
+#X obj 1143 361 *~;
+#X obj 1158 338 line;
+#X msg 888 312 \$1 200;
+#X msg 978 312 \$1 200;
+#X msg 1068 312 \$1 200;
+#X msg 1158 312 \$1 200;
+#X obj 740 84 poly 6 1;
+#X obj 740 128 route 1 2 3 4 5 6, f 36;
+#X obj 646 178 s voice-note-1;
+#X obj 736 178 s voice-note-2;
+#X obj 826 178 s voice-note-3;
+#X obj 916 178 s voice-note-4;
+#X obj 1006 178 s voice-note-5;
+#X obj 1096 178 s voice-note-6;
+#X obj 593 367 catch~ output;
+#X obj 593 389 *~ 0.166;
+#X obj 515 244 voice 1;
+#X obj 131 321 s~ harmRatio~;
+#X obj 131 294 adc~ 3;
+#X obj 894 436 adc~ 6;
+#X obj 593 439 *~ 1;
+#X obj 894 523 s Index-range;
+#X obj 814 523 s Index-min;
+#X obj 723 523 s Index-attack;
+#N canvas 0 22 178 130 snapshot 0;
+#X obj 24 20 inlet~;
+#X obj 24 62 snapshot~;
+#X obj 24 84 outlet;
+#X obj 86 29 r metro;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 3 0 1 0;
+#X restore 894 458 pd snapshot;
+#X obj 1150 21 loadbang;
+#X obj 1150 43 metro 10;
+#X obj 1150 65 s metro;
+#N canvas 0 22 178 130 snapshot 0;
+#X obj 24 20 inlet~;
+#X obj 24 62 snapshot~;
+#X obj 24 84 outlet;
+#X obj 86 29 r metro;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 3 0 1 0;
+#X restore 814 458 pd snapshot;
+#N canvas 0 22 178 130 snapshot 0;
+#X obj 24 20 inlet~;
+#X obj 24 62 snapshot~;
+#X obj 24 84 outlet;
+#X obj 86 29 r metro;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X connect 3 0 1 0;
+#X restore 722 458 pd snapshot;
+#X obj 722 436 adc~ 4;
+#X obj 814 436 adc~ 5;
+#X obj 722 480 * 1000;
+#X obj 814 480 * 3;
+#X obj 894 480 * 100;
+#X obj 515 264 voice 2;
+#X obj 515 284 voice 3;
+#X obj 515 304 voice 4;
+#X obj 515 324 voice 5;
+#X obj 515 344 voice 6;
+#X connect 4 0 5 0;
+#X connect 7 0 8 0;
+#X connect 9 0 4 0;
+#X connect 10 0 7 0;
+#X connect 16 0 15 0;
+#X connect 17 0 18 0;
+#X connect 17 1 18 1;
+#X connect 18 0 50 0;
+#X connect 19 0 51 0;
+#X connect 20 0 21 0;
+#X connect 20 1 24 0;
+#X connect 21 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 25 0;
+#X connect 24 0 46 0;
+#X connect 27 0 28 0;
+#X connect 27 1 30 0;
+#X connect 28 0 29 0;
+#X connect 29 0 40 0;
+#X connect 30 0 47 0;
+#X connect 31 0 32 0;
+#X connect 31 1 34 0;
+#X connect 32 0 33 0;
+#X connect 33 0 42 0;
+#X connect 34 0 48 0;
+#X connect 35 0 36 0;
+#X connect 35 1 38 0;
+#X connect 36 0 37 0;
+#X connect 37 0 44 0;
+#X connect 38 0 49 0;
+#X connect 39 0 23 1;
+#X connect 40 0 25 0;
+#X connect 41 0 40 1;
+#X connect 42 0 25 0;
+#X connect 43 0 42 1;
+#X connect 44 0 25 0;
+#X connect 45 0 44 1;
+#X connect 46 0 39 0;
+#X connect 47 0 41 0;
+#X connect 48 0 43 0;
+#X connect 49 0 45 0;
+#X connect 50 0 19 0;
+#X connect 50 1 19 1;
+#X connect 50 2 19 2;
+#X connect 51 0 52 0;
+#X connect 51 1 53 0;
+#X connect 51 2 54 0;
+#X connect 51 3 55 0;
+#X connect 51 4 56 0;
+#X connect 51 5 57 0;
+#X connect 58 0 59 0;
+#X connect 59 0 64 0;
+#X connect 62 0 61 0;
+#X connect 63 0 68 0;
+#X connect 64 0 26 0;
+#X connect 64 0 26 1;
+#X connect 68 0 78 0;
+#X connect 69 0 70 0;
+#X connect 70 0 71 0;
+#X connect 72 0 77 0;
+#X connect 73 0 76 0;
+#X connect 74 0 73 0;
+#X connect 75 0 72 0;
+#X connect 76 0 67 0;
+#X connect 77 0 66 0;
+#X connect 78 0 65 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/midi-poly-fm/backmain.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,79 @@
+#N canvas 85 58 1280 685 10;
+#X obj 19 396 dac~ 1 2;
+#X text 39 1 Hello world!;
+#X text 37 11 ============;
+#X obj 31 353 *~ 0.1;
+#X text 202 448 ---------------------------------;
+#X text 202 438 @krighxz / BELA / heavy / 12/2015;
+#X text 226 457 beaglert.cc / enzienaudio.com;
+#X obj 39 132 mtof;
+#X floatatom 79 59 5 0 0 0 - - -, f 5;
+#X floatatom 122 59 5 0 0 0 - - -, f 5;
+#X floatatom 41 63 5 0 0 0 - - -, f 5;
+#X obj 26 170 phasor~ 440;
+#X text 100 363 (the harsh sound of success);
+#X obj 260 83 * 20;
+#X obj 261 112 + 200;
+#X obj 132 85 loadbang;
+#X msg 131 111 1000;
+#X obj 125 166 sig~;
+#X text 673 121 [pgmin];
+#X obj 218 178 * 10;
+#X obj 30 250 hip~;
+#X obj 26 275 hip~;
+#X obj 20 302 hip~;
+#X obj 19 323 hip~;
+#X obj 87 192 lop~ 4;
+#X obj 152 256 line;
+#X obj 200 200 + 50;
+#X msg 170 227 \$1 200;
+#X msg 93 114 0;
+#X msg 185 112 0;
+#X obj 29 224 vcf~ 4;
+#X obj 70 333 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 42 92 mono;
+#X obj 40 28 bela_notein 0;
+#X obj 260 60 bela_ctlin 5 0;
+#X obj 220 151 bela_ctlin 6 0;
+#X obj 408 121 bela_pgmin 3;
+#X text 537 58 [ctlin];
+#X text 332 27 [notein];
+#X text 140 29 <== the bela equivalent of ==>;
+#X text 349 59 <== the bela equivalent of ==>;
+#X text 483 121 <== the bela equivalent of ==>;
+#X connect 3 0 0 1;
+#X connect 3 0 0 0;
+#X connect 7 0 11 0;
+#X connect 8 0 32 1;
+#X connect 10 0 32 0;
+#X connect 11 0 30 0;
+#X connect 13 0 14 0;
+#X connect 14 0 17 0;
+#X connect 15 0 16 0;
+#X connect 15 0 29 0;
+#X connect 15 0 28 0;
+#X connect 16 0 17 0;
+#X connect 17 0 24 0;
+#X connect 19 0 26 0;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 3 0;
+#X connect 24 0 30 1;
+#X connect 25 0 20 1;
+#X connect 25 0 21 1;
+#X connect 25 0 22 1;
+#X connect 25 0 23 1;
+#X connect 26 0 27 0;
+#X connect 27 0 25 0;
+#X connect 29 0 19 0;
+#X connect 30 0 20 0;
+#X connect 31 0 3 1;
+#X connect 32 0 7 0;
+#X connect 32 1 31 0;
+#X connect 33 0 10 0;
+#X connect 33 1 8 0;
+#X connect 33 2 9 0;
+#X connect 34 0 13 0;
+#X connect 35 0 19 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/midi-poly-fm/bela_ctlin.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,76 @@
+#N canvas 554 204 703 475 10;
+#X obj 53 431 outlet;
+#X obj 108 429 outlet;
+#X obj 99 127 r ctlin;
+#X obj 92 151 unpack f f f;
+#X obj 154 429 outlet;
+#X obj 86 322 spigot;
+#X text 51 450 value;
+#X text 105 450 number;
+#X obj 211 138 loadbang;
+#X obj 177 193 \$1;
+#X obj 126 214 == \$1;
+#X obj 119 299 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 84 349 unpack f f f;
+#X obj 143 247 ||;
+#X obj 177 217 == 0;
+#X text 70 11 Emulates ctlin \, except number of outlets is fixed.
+;
+#X obj 228 247 ||;
+#X obj 262 217 == 0;
+#X obj 212 214 == \$2;
+#X obj 262 193 \$2;
+#X obj 177 277 &&;
+#X obj 211 163 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 173 299 If (inputController==\$1 || \$1==0) && (inputChannel==\$2
+|| \$2==0);
+#X text 197 52 Known issue: trying to select inputController 0 will
+result i accepting all controllers (because a pd external cannot tell
+the difference between \$1 been explicitely set to 0 and the patch
+not having any argument);
+#X text 162 450 channel;
+#X obj 56 192 pack f f f;
+#X obj 80 408 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X floatatom 81 382 5 0 0 0 - - -, f 5;
+#X obj 121 412 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 122 386 5 0 0 0 - - -, f 5;
+#X obj 172 406 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 173 380 5 0 0 0 - - -, f 5;
+#X obj 122 92 s ctlin;
+#X obj 64 29 r bela_ctlin;
+#X connect 2 0 3 0;
+#X connect 3 0 25 0;
+#X connect 3 1 10 0;
+#X connect 3 1 25 1;
+#X connect 3 2 18 0;
+#X connect 3 2 25 2;
+#X connect 5 0 12 0;
+#X connect 8 0 21 0;
+#X connect 9 0 14 0;
+#X connect 10 0 13 0;
+#X connect 11 0 5 1;
+#X connect 12 0 0 0;
+#X connect 12 0 27 0;
+#X connect 12 1 1 0;
+#X connect 12 1 29 0;
+#X connect 12 2 4 0;
+#X connect 12 2 31 0;
+#X connect 13 0 20 0;
+#X connect 14 0 13 1;
+#X connect 16 0 20 1;
+#X connect 17 0 16 1;
+#X connect 18 0 16 0;
+#X connect 19 0 17 0;
+#X connect 20 0 11 0;
+#X connect 21 0 9 0;
+#X connect 21 0 19 0;
+#X connect 25 0 5 0;
+#X connect 27 0 26 0;
+#X connect 29 0 28 0;
+#X connect 31 0 30 0;
+#X connect 33 0 32 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/midi-poly-fm/bela_notein.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,59 @@
+#N canvas 399 23 629 685 10;
+#X obj 94 481 outlet;
+#X obj 165 475 outlet;
+#X obj 141 184 unpack f f f;
+#X obj 221 472 outlet;
+#X obj 143 365 spigot;
+#X obj 268 181 loadbang;
+#X obj 234 236 \$1;
+#X obj 183 257 == \$1;
+#X obj 176 342 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 143 392 unpack f f f;
+#X obj 200 290 ||;
+#X obj 234 260 == 0;
+#X obj 268 206 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 160 65 Emulates notein \, except number of outlets is fixed.
+;
+#X text 92 499 notenumber;
+#X text 161 489 velocity;
+#X text 220 486 channel;
+#X text 229 311 If (inputChannel==\$1 || \$1==0);
+#X obj 115 232 pack f f f;
+#X obj 82 428 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X floatatom 84 410 5 0 0 0 - - -, f 5;
+#X obj 145 448 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 147 430 5 0 0 0 - - -, f 5;
+#X obj 198 451 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 200 433 5 0 0 0 - - -, f 5;
+#X obj 131 112 s notein;
+#X obj 140 149 r notein;
+#X obj 135 84 r bela_notein;
+#X connect 2 0 18 0;
+#X connect 2 1 18 1;
+#X connect 2 2 7 0;
+#X connect 2 2 18 2;
+#X connect 4 0 9 0;
+#X connect 5 0 12 0;
+#X connect 6 0 11 0;
+#X connect 7 0 10 0;
+#X connect 8 0 4 1;
+#X connect 9 0 0 0;
+#X connect 9 0 20 0;
+#X connect 9 1 1 0;
+#X connect 9 1 22 0;
+#X connect 9 2 3 0;
+#X connect 9 2 24 0;
+#X connect 10 0 8 0;
+#X connect 11 0 10 1;
+#X connect 12 0 6 0;
+#X connect 18 0 4 0;
+#X connect 20 0 19 0;
+#X connect 22 0 21 0;
+#X connect 24 0 23 0;
+#X connect 26 0 2 0;
+#X connect 27 0 25 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/midi-poly-fm/bela_pgmin.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,53 @@
+#N canvas 623 197 587 546 10;
+#X obj 73 413 outlet;
+#X obj 174 411 outlet;
+#X obj 106 304 spigot;
+#X obj 197 126 loadbang;
+#X obj 197 175 \$1;
+#X obj 146 196 == \$1;
+#X obj 139 281 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 163 229 ||;
+#X obj 197 199 == 0;
+#X obj 197 151 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 89 111 unpack f f;
+#X obj 106 332 unpack f f;
+#X text 52 436 program number;
+#X text 182 432 channel;
+#X text 193 281 If (channel==\$1 || \$1==0);
+#X text 167 45 emulates pgmin except it always has 2 outlets and requires
+the input parameters to be explicitely set. Set them to 0 to avoid
+filtering;
+#X text 262 132 It'd be nicer with [t l l] but have to compensate for
+the fact that it is not supported by heavy;
+#X obj 77 183 pack f f;
+#X floatatom 72 355 5 0 0 0 - - -, f 5;
+#X obj 63 379 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X floatatom 150 361 5 0 0 0 - - -, f 5;
+#X obj 141 385 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 91 63 s pgmin;
+#X obj 93 87 r pgmin;
+#X obj 89 42 r bela_pgmin;
+#X connect 2 0 11 0;
+#X connect 3 0 9 0;
+#X connect 4 0 8 0;
+#X connect 5 0 7 0;
+#X connect 6 0 2 1;
+#X connect 7 0 6 0;
+#X connect 8 0 7 1;
+#X connect 9 0 4 0;
+#X connect 10 0 17 0;
+#X connect 10 1 5 0;
+#X connect 10 1 17 1;
+#X connect 11 0 0 0;
+#X connect 11 0 18 0;
+#X connect 11 1 1 0;
+#X connect 11 1 20 0;
+#X connect 17 0 2 0;
+#X connect 18 0 19 0;
+#X connect 20 0 21 0;
+#X connect 23 0 10 0;
+#X connect 24 0 22 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/midi-poly-fm/countTo.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,33 @@
+#N canvas 584 255 450 300 10;
+#X obj 65 196 outlet;
+#X obj 98 8 inlet;
+#X text 189 49 counts from 0 to the given number -1;
+#X text 214 95 inlet:N;
+#X text 212 112 outlet: 0 \, 1 \, 2 \, ... \, N-1;
+#X obj 143 61 f;
+#X obj 100 138 spigot;
+#X obj 129 89 <;
+#X obj 129 113 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 95 28 t b f b;
+#X obj 92 74 + 1;
+#X obj 43 73 f;
+#X obj 63 104 t b f f f;
+#X msg 92 53 0;
+#X obj 16 144 delay 0;
+#X connect 1 0 9 0;
+#X connect 5 0 7 1;
+#X connect 6 0 11 0;
+#X connect 7 0 8 0;
+#X connect 8 0 6 1;
+#X connect 9 0 11 0;
+#X connect 9 1 5 0;
+#X connect 9 1 13 0;
+#X connect 10 0 11 1;
+#X connect 11 0 12 0;
+#X connect 12 0 14 0;
+#X connect 12 1 0 0;
+#X connect 12 2 7 0;
+#X connect 12 3 10 0;
+#X connect 13 0 11 1;
+#X connect 14 0 6 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/midi-poly-fm/maxArray.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,67 @@
+#N canvas 464 23 1002 583 10;
+#X obj 224 202 max;
+#X obj 265 200 f;
+#X obj 223 229 change;
+#X obj 223 251 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 223 271 f;
+#X obj 259 323 f;
+#X obj 187 315 f;
+#X obj 268 282 t b b;
+#X obj 183 364 outlet;
+#X obj 269 379 outlet;
+#X obj 179 17 inlet;
+#X obj 225 177 tabread \$1;
+#X obj 230 88 t f f b;
+#X text 376 37 Finds a maximum value in an array;
+#X text 531 112 \$2 arrayLength;
+#X obj 292 10 inlet;
+#X text 425 146 inlets:;
+#X text 473 144 1 bang to find the maximum;
+#X text 475 157 2 arrayLength;
+#X text 407 90 creation arguments: \$1 arrayName;
+#X obj 246 38 \$2;
+#X obj 202 40 bang;
+#X obj 230 65 f;
+#X obj 224 6 loadbang;
+#X text 444 216 outlets: 1 maximum value;
+#X text 498 231 2 index of the maximum value;
+#X msg 276 141 -1e+15;
+#X obj 222 142 t f f f;
+#X floatatom 158 266 5 0 0 0 - - -, f 5;
+#X obj 332 302 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 288 253 select 127;
+#X floatatom 301 324 5 0 0 0 - - -, f 5;
+#X text 362 256 heavy does not support the second inlet of select so
+I have to hard code 127 in here;
+#X obj 223 110 countTo;
+#X connect 0 0 1 0;
+#X connect 0 0 2 0;
+#X connect 0 0 6 1;
+#X connect 0 0 28 0;
+#X connect 1 0 0 1;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 1;
+#X connect 4 0 31 0;
+#X connect 5 0 9 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 7 1 5 0;
+#X connect 10 0 21 0;
+#X connect 11 0 0 0;
+#X connect 12 0 33 0;
+#X connect 12 2 26 0;
+#X connect 15 0 22 1;
+#X connect 20 0 22 1;
+#X connect 21 0 22 0;
+#X connect 22 0 12 0;
+#X connect 23 0 20 0;
+#X connect 26 0 0 1;
+#X connect 27 0 30 0;
+#X connect 27 1 11 0;
+#X connect 27 2 4 1;
+#X connect 30 0 7 0;
+#X connect 30 0 29 0;
+#X connect 33 0 27 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/midi-poly-fm/mono.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,106 @@
+#N canvas 69 182 1020 452 10;
+#N canvas 0 23 450 278 (subpatch) 0;
+#X array \$0-activeNotes 127 float 2;
+#X coords 0 100 127 -1 200 140 1 0 0;
+#X restore 537 25 graph;
+#N canvas 89 91 450 300 resetArray 1;
+#X obj 121 145 tabwrite \$0-activeNotes;
+#X msg 123 115 -0.5;
+#X obj 154 90 t b f;
+#X msg 129 45 128;
+#X obj 103 14 inlet;
+#X text 212 71 countto;
+#X obj 153 69 countTo;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 2 1 0 1;
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 6 0 2 0;
+#X restore 83 49 pd resetArray;
+#X obj 83 3 loadbang;
+#X obj 88 25 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 39 188 maxArray \$0-activeNotes 128;
+#X obj 183 219 f;
+#X obj 39 237 >= 0;
+#X floatatom 148 313 5 0 0 0 - - -, f 5;
+#X obj 70 262 select 1;
+#X obj 366 87 f;
+#X obj 426 60 f;
+#X text 334 39 note;
+#X text 424 16 velocity;
+#X obj 423 87 > 0;
+#X obj 344 281 tabwrite \$0-activeNotes;
+#X obj 330 207 f;
+#X floatatom 303 178 5 0 0 0 - - -, f 5;
+#X obj 265 163 f;
+#X obj 304 150 + 1;
+#X msg 277 130 -1;
+#X msg 371 207 -0.5;
+#X obj 400 116 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 367 137 spigot;
+#X obj 447 134 spigot;
+#X obj 460 86 == 0;
+#X obj 470 109 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 434 163 t b f;
+#X obj 337 60 inlet;
+#X obj 426 32 inlet;
+#X obj 148 350 outlet;
+#X obj 275 89 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 41 163 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 363 172 t b f;
+#X obj 334 240 t b f;
+#X text 578 211 pass in velocity/note pairs (velocity first) and obtain
+as an output the most recent note still active;
+#X text 581 268 outlet 2 gate;
+#X obj 330 366 outlet;
+#X text 583 251 outlet 1 most recent note active (-1 otherwise);
+#X text 155 329 most recent note active;
+#X msg 338 338 0;
+#X msg 378 339 1;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 3 0 19 0;
+#X connect 4 0 6 0;
+#X connect 4 1 5 1;
+#X connect 5 0 7 0;
+#X connect 5 0 40 0;
+#X connect 6 0 8 0;
+#X connect 7 0 29 0;
+#X connect 8 0 5 0;
+#X connect 8 1 39 0;
+#X connect 9 0 22 0;
+#X connect 9 0 23 0;
+#X connect 10 0 13 0;
+#X connect 10 0 24 0;
+#X connect 13 0 21 0;
+#X connect 15 0 33 0;
+#X connect 16 0 15 1;
+#X connect 17 0 18 0;
+#X connect 18 0 16 0;
+#X connect 18 0 17 1;
+#X connect 19 0 17 1;
+#X connect 20 0 33 0;
+#X connect 21 0 22 1;
+#X connect 22 0 32 0;
+#X connect 23 0 26 0;
+#X connect 24 0 25 0;
+#X connect 25 0 23 1;
+#X connect 26 0 20 0;
+#X connect 26 1 14 1;
+#X connect 27 0 9 0;
+#X connect 28 0 10 0;
+#X connect 28 0 30 0;
+#X connect 30 0 17 0;
+#X connect 31 0 4 0;
+#X connect 32 0 15 0;
+#X connect 32 1 14 1;
+#X connect 33 0 31 0;
+#X connect 33 1 14 0;
+#X connect 39 0 36 0;
+#X connect 40 0 36 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/heavy/pd/midi-poly-fm/voice.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,73 @@
+#N canvas 4 23 1276 755 10;
+#X obj 45 25 r voice-note-\$1;
+#X obj 43 306 +~;
+#X obj 116 248 osc~;
+#X obj 116 289 *~;
+#X obj 116 208 *~;
+#X obj 181 230 *~;
+#X obj 43 332 osc~;
+#X obj 45 47 unpack 0 0;
+#X obj 44 159 mtof;
+#X obj 151 386 *~;
+#X obj 192 307 / 127;
+#X obj 151 417 throw~ output;
+#X obj 132 163 r~ harmRatio~;
+#X obj 192 359 line~;
+#X obj 486 85 sel 0;
+#X obj 486 110 t b b;
+#X obj 556 150 t f f;
+#X obj 556 130 / 127;
+#X obj 580 177 r Index-range;
+#X obj 580 197 r Index-min;
+#X obj 580 217 r Index-attack;
+#X obj 549 177 *;
+#X obj 549 197 +;
+#X obj 539 227 pack;
+#X obj 539 249 s \$0-index;
+#X obj 234 178 r \$0-index;
+#X obj 226 203 line~;
+#X msg 414 152 0;
+#X obj 414 174 +;
+#X obj 414 196 pack;
+#X obj 414 218 s \$0-index;
+#X obj 442 175 r Index-min;
+#X obj 447 196 r Index-attack;
+#X obj 237 307 r Index-attack;
+#X obj 192 333 pack 0 0;
+#X connect 0 0 7 0;
+#X connect 1 0 6 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 4 0 5 0;
+#X connect 4 0 2 0;
+#X connect 5 0 3 1;
+#X connect 6 0 9 0;
+#X connect 7 0 8 0;
+#X connect 7 1 10 0;
+#X connect 7 1 14 0;
+#X connect 8 0 4 1;
+#X connect 8 0 1 1;
+#X connect 9 0 11 0;
+#X connect 10 0 34 0;
+#X connect 12 0 4 0;
+#X connect 13 0 9 1;
+#X connect 14 0 15 0;
+#X connect 14 1 17 0;
+#X connect 15 0 27 0;
+#X connect 16 0 21 0;
+#X connect 17 0 16 0;
+#X connect 18 0 21 1;
+#X connect 19 0 22 1;
+#X connect 20 0 23 1;
+#X connect 21 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 24 0;
+#X connect 25 0 26 0;
+#X connect 26 0 5 1;
+#X connect 27 0 28 0;
+#X connect 28 0 29 0;
+#X connect 29 0 30 0;
+#X connect 31 0 28 1;
+#X connect 32 0 29 1;
+#X connect 33 0 34 1;
+#X connect 34 0 13 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/arp-delay/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,156 @@
+#N canvas 4 23 795 528 10;
+#X obj 13 428 +~;
+#X obj 294 268 loadbang;
+#X obj 190 313 line~;
+#X msg 260 358 0.3;
+#X msg 238 291 220;
+#X obj 14 357 *~;
+#X obj 20 34 adc~ 3;
+#X obj 306 356 adc~ 6;
+#X obj 13 453 *~ 0.1;
+#X obj 509 109 f;
+#X obj 537 109 + 1;
+#X obj 508 84 metro 250;
+#X obj 508 18 loadbang;
+#X msg 508 60 1;
+#X msg 539 60 300;
+#X obj 20 134 s tempo;
+#X obj 571 59 r tempo;
+#X obj 509 244 mtof;
+#X obj 110 34 adc~ 4;
+#X text 18 9 tempo;
+#X text 113 10 freq;
+#X obj 509 269 s pitch;
+#X obj 109 151 s freq;
+#X obj 457 182 r freq;
+#X obj 509 131 mod 8;
+#X obj 510 152 select 0 1 2 3 4 5 6 7;
+#X msg 509 182 0;
+#X msg 539 182 3;
+#X msg 725 182 3;
+#X msg 569 182 7;
+#X msg 598 182 12;
+#X msg 629 182 15;
+#X msg 660 182 12;
+#X msg 694 182 7;
+#X obj 509 220 +;
+#X obj 14 255 r pitch;
+#X obj 457 131 s metro;
+#X obj 81 255 r metro;
+#X floatatom 180 88 5 0 0 0 - - -, f 5;
+#X obj 81 312 vline~;
+#X obj 110 88 * 60;
+#X obj 110 119 + 40;
+#X obj 14 285 osc~ 440;
+#X obj 188 423 delwrite~ delay 1000;
+#X obj 190 357 vd~ delay;
+#X msg 190 288 \$1 50;
+#X obj 230 34 adc~ 5;
+#X obj 231 90 * 800;
+#X obj 231 112 + 20;
+#X obj 231 134 s delaytime;
+#X obj 190 254 r delaytime;
+#X obj 188 393 *~;
+#X obj 20 111 + 10;
+#X obj 20 89 * 1000;
+#X msg 81 285 1 10 \, 0 10 100;
+#X text 223 10 delay time;
+#X obj 13 490 dac~ 1 2;
+#X text 304 332 feedback amt;
+#N canvas 0 22 450 300 snapshoter 0;
+#X obj 91 62 inlet~;
+#X obj 181 47 loadbang;
+#X obj 180 74 metro 10;
+#X obj 128 110 snapshot~;
+#X obj 130 149 outlet;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X restore 20 62 pd snapshoter;
+#N canvas 0 22 450 300 snapshoter 0;
+#X obj 91 62 inlet~;
+#X obj 181 47 loadbang;
+#X obj 180 74 metro 10;
+#X obj 128 110 snapshot~;
+#X obj 130 149 outlet;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X restore 110 62 pd snapshoter;
+#N canvas 0 22 450 300 snapshoter 0;
+#X obj 91 62 inlet~;
+#X obj 181 47 loadbang;
+#X obj 180 74 metro 10;
+#X obj 128 110 snapshot~;
+#X obj 130 149 outlet;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X restore 230 62 pd snapshoter;
+#X connect 0 0 8 0;
+#X connect 1 0 3 0;
+#X connect 1 0 4 0;
+#X connect 2 0 44 0;
+#X connect 3 0 51 1;
+#X connect 4 0 45 0;
+#X connect 5 0 0 0;
+#X connect 5 0 43 0;
+#X connect 6 0 58 0;
+#X connect 7 0 51 1;
+#X connect 8 0 56 0;
+#X connect 8 0 56 1;
+#X connect 9 0 10 0;
+#X connect 9 0 24 0;
+#X connect 10 0 9 1;
+#X connect 11 0 9 0;
+#X connect 11 0 36 0;
+#X connect 12 0 13 0;
+#X connect 12 0 14 0;
+#X connect 13 0 11 0;
+#X connect 14 0 11 1;
+#X connect 16 0 11 1;
+#X connect 17 0 21 0;
+#X connect 18 0 59 0;
+#X connect 23 0 34 1;
+#X connect 24 0 25 0;
+#X connect 25 0 26 0;
+#X connect 25 1 27 0;
+#X connect 25 2 29 0;
+#X connect 25 3 30 0;
+#X connect 25 4 31 0;
+#X connect 25 5 32 0;
+#X connect 25 6 33 0;
+#X connect 25 7 28 0;
+#X connect 26 0 34 0;
+#X connect 27 0 34 0;
+#X connect 28 0 34 0;
+#X connect 29 0 34 0;
+#X connect 30 0 34 0;
+#X connect 31 0 34 0;
+#X connect 32 0 34 0;
+#X connect 33 0 34 0;
+#X connect 34 0 17 0;
+#X connect 35 0 42 0;
+#X connect 37 0 54 0;
+#X connect 38 0 22 0;
+#X connect 39 0 5 1;
+#X connect 40 0 41 0;
+#X connect 41 0 22 0;
+#X connect 42 0 5 0;
+#X connect 44 0 0 1;
+#X connect 44 0 51 0;
+#X connect 45 0 2 0;
+#X connect 46 0 60 0;
+#X connect 47 0 48 0;
+#X connect 48 0 49 0;
+#X connect 50 0 45 0;
+#X connect 51 0 43 0;
+#X connect 52 0 15 0;
+#X connect 53 0 52 0;
+#X connect 54 0 39 0;
+#X connect 58 0 53 0;
+#X connect 59 0 40 0;
+#X connect 60 0 47 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/basicAnalogIn/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,30 @@
+#N canvas 203 356 637 339 10;
+#X obj 63 170 osc~ 440;
+#X obj 63 223 dac~;
+#X obj 63 191 *~;
+#X text 440 95 ADC 3: Analog In 0;
+#X text 34 41 Basic analog in (or 'theremin');
+#X text 34 51 ===============================;
+#X text 121 105 << Use first two analog in's;
+#X text 440 49 ADC routing:;
+#X text 440 57 ------------;
+#X text 440 105 ADC 4: Analog In 1;
+#X text 440 115 ADC 5: Analog In 2;
+#X text 440 125 ADC 6: Analog In 3;
+#X text 440 135 ADC 7: Analog In 4;
+#X text 440 145 ADC 8: Analog In 5;
+#X text 440 155 ADC 9: Analog In 6;
+#X text 440 165 ADC 10: Analog In 7;
+#X text 440 75 ADC 1: Audio In L;
+#X text 440 85 ADC 2: Audio In R;
+#X obj 63 149 *~ 880;
+#X obj 63 106 adc~ 3 4;
+#X text 355 277 ---------------------------------;
+#X text 355 267 @krighxz / BELA / heavy / 12/2015;
+#X text 379 286 beaglert.cc / enzienaudio.com;
+#X connect 0 0 2 0;
+#X connect 2 0 1 0;
+#X connect 2 0 1 1;
+#X connect 18 0 0 0;
+#X connect 19 0 18 0;
+#X connect 19 1 2 1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/basicAnalogOut/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,30 @@
+#N canvas 275 504 679 362 10;
+#X text 148 124 << Use first two analog in's;
+#X text 431 57 ------------;
+#X text 44 51 Basic analog out;
+#X text 44 61 ================;
+#X text 431 95 DAC 3: Analog Out 0;
+#X text 431 105 DAC 4: Analog Out 1;
+#X text 431 115 DAC 5: Analog Out 2;
+#X text 431 125 DAC 6: Analog Out 3;
+#X text 431 145 DAC 8: Analog Out 5;
+#X text 431 135 DAC 7: Analog Out 4;
+#X text 431 155 DAC 9: Analog Out 6;
+#X text 431 165 DAC 10: Analog Out 7;
+#X text 431 85 DAC 2: Audio Out R;
+#X text 431 75 DAC 1: Audio Out L;
+#X obj 92 201 *~;
+#X obj 92 159 *~ 10;
+#X obj 92 180 osc~ 1;
+#X obj 35 242 dac~ 1 2 3;
+#X text 143 241 << Output to first analog out;
+#X text 431 49 DAC routing:;
+#X text 432 289 ---------------------------------;
+#X text 432 279 @krighxz / BELA / heavy / 12/2015;
+#X text 456 298 beaglert.cc / enzienaudio.com;
+#X obj 92 125 adc~ 3 4;
+#X connect 14 0 17 2;
+#X connect 15 0 16 0;
+#X connect 16 0 14 0;
+#X connect 23 0 15 0;
+#X connect 23 1 14 1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/circularBuffer/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,79 @@
+#N canvas 436 490 738 494 10;
+#X obj 135 167 loadbang;
+#X msg 135 212 1;
+#X obj 183 234 / 44.1;
+#X obj 135 253 metro;
+#X obj 135 286 f;
+#X obj 160 286 + 64;
+#X obj 160 308 % 65536, f 8;
+#X msg 160 329 start \$1;
+#X obj 160 351 tabwrite~ circbuf;
+#X obj 363 303 - 32768;
+#X obj 363 325 + 65536;
+#X obj 363 347 % 65536;
+#X obj 342 371 +~ 0;
+#X msg 381 236 0;
+#X obj 342 258 phasor~;
+#X obj 342 392 tabread4~ circbuf;
+#X obj 341 415 dac~;
+#N canvas 422 781 312 126 buf 0;
+#N canvas 0 22 450 278 (subpatch) 0;
+#X array circbuf 65536 float 2;
+#X coords 0 1 65535 -1 256 64 1 0 0;
+#X restore 23 28 graph;
+#X restore 129 441 pd buf;
+#X obj 32 101 osc~ 440;
+#X obj 342 213 samplerate~;
+#X obj 134 189 t b b b b;
+#X text 30 82 audio input;
+#X text 219 310 write pointer;
+#X text 412 349 read pointer;
+#X obj 342 282 *~ 16;
+#X obj 342 236 / 16;
+#X obj 183 214 f 16;
+#X obj 363 189 r \$0-blocksize;
+#X obj 204 186 r \$0-blocksize;
+#X obj 394 259 r \$0-blocksize;
+#X obj 390 123 s \$0-blocksize;
+#X text 34 13 VIRTUAL CIRCULAR BUFFER;
+#X text 34 23 =======================;
+#X obj 390 55 loadbang;
+#X msg 390 77 16;
+#X text 517 454 ---------------------------------;
+#X text 517 444 @krighxz / BELA / heavy / 12/2015;
+#X text 541 463 beaglert.cc / enzienaudio.com;
+#X text 426 78 << replace with target blocksize;
+#X text 446 90 BELA default: 16;
+#X text 446 102 PD default: 64;
+#X connect 0 0 20 0;
+#X connect 1 0 3 0;
+#X connect 2 0 3 1;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 5 0 9 0;
+#X connect 6 0 7 0;
+#X connect 6 0 4 1;
+#X connect 7 0 8 0;
+#X connect 9 0 10 0;
+#X connect 10 0 11 0;
+#X connect 11 0 12 1;
+#X connect 12 0 15 0;
+#X connect 13 0 14 1;
+#X connect 14 0 24 0;
+#X connect 15 0 16 0;
+#X connect 15 0 16 1;
+#X connect 18 0 8 0;
+#X connect 19 0 25 0;
+#X connect 20 0 1 0;
+#X connect 20 1 26 0;
+#X connect 20 2 13 0;
+#X connect 20 3 19 0;
+#X connect 24 0 12 0;
+#X connect 25 0 14 0;
+#X connect 26 0 2 0;
+#X connect 27 0 25 1;
+#X connect 28 0 26 1;
+#X connect 29 0 24 1;
+#X connect 33 0 34 0;
+#X connect 34 0 30 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/envelopeTrigger/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,196 @@
+#N canvas 646 209 359 287 10;
+#X obj 28 207 dac~;
+#N canvas 324 380 556 621 env 0;
+#N canvas 886 1001 131 207 >~ 0;
+#X obj 19 -37 -~;
+#X obj 19 -58 min~;
+#X obj 19 26 *~ 1e+37;
+#X obj 19 5 +~ 1e-37;
+#X obj 19 -16 clip~ -1e-37 0;
+#X obj 19 -83 inlet~;
+#X obj 62 -83 inlet~;
+#X obj 19 48 outlet~;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 7 0;
+#X connect 3 0 2 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 6 0 0 1;
+#X connect 6 0 1 1;
+#X restore 199 106 pd >~;
+#X obj 23 173 /~ 44100;
+#X obj 68 153 samplerate~;
+#X obj 68 133 loadbang;
+#X obj 199 128 biquad~ 0 0 -1 1 0;
+#X obj 23 209 rpole~;
+#X obj 23 153 sig~ 1;
+#X obj 226 171 sig~ 0.5;
+#N canvas 0 22 110 231 <~ 0;
+#X obj 11 -41 -~;
+#X obj 11 29 +~ 1e-37;
+#X obj 11 8 clip~ -1e-37 0;
+#X obj 11 -86 inlet~;
+#X obj 55 -85 inlet~;
+#X obj 11 -62 max~;
+#X obj 11 -17 *~ -1;
+#X obj 11 81 outlet~;
+#X obj 11 50 *~ 1e+37;
+#X connect 0 0 6 0;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 0 1;
+#X connect 4 0 5 1;
+#X connect 5 0 0 0;
+#X connect 6 0 2 0;
+#X connect 8 0 7 0;
+#X restore 199 192 pd <~;
+#X text 237 193 (x != x);
+#X obj 23 467 *~;
+#X obj 199 150 *~ -1;
+#X obj 23 331 *~ 512;
+#X obj 23 229 clip~ 0 1;
+#X obj 23 352 tabread4~ env1;
+#X obj 23 310 *~;
+#X obj 199 64 abs~;
+#X obj 199 43 hip~ 1;
+#X obj 199 22 inlet~ excitationSignal;
+#X obj 218 269 sig~ 1;
+#X obj 218 292 /~;
+#X obj 226 86 inlet~ threshold;
+#X obj 262 229 inlet~ envDuration;
+#X obj 38 445 osc~ 220;
+#X obj 38 425 +~ 50;
+#X obj 38 385 *~;
+#X obj 38 405 *~ 1000;
+#X obj 262 269 clip~ 1e-05 100000;
+#X obj 23 487 outlet~;
+#N canvas 0 22 450 278 (subpatch) 0;
+#X array env1 512 float 3;
+#A 0 0 0.0625 0.0883883 0.108253 0.125 0.139754 0.153093 0.165359 0.176777
+0.1875 0.197642 0.207289 0.216506 0.225347 0.233854 0.242061 0.25 0.257694
+0.265165 0.272431 0.279509 0.286411 0.293151 0.299739 0.306186 0.3125
+0.318689 0.32476 0.330719 0.336573 0.342327 0.347985 0.353553 0.359035
+0.364434 0.369755 0.375 0.380173 0.385276 0.390312 0.395285 0.400195
+0.405046 0.40984 0.414578 0.419263 0.423896 0.428478 0.433013 0.4375
+0.441942 0.446339 0.450694 0.455007 0.459279 0.463512 0.467707 0.471865
+0.475986 0.480072 0.484123 0.488141 0.492125 0.496078 0.5 0.503891
+0.507752 0.511585 0.515388 0.519164 0.522913 0.526634 0.53033 0.534
+0.537645 0.541266 0.544862 0.548435 0.551985 0.555512 0.559017 0.5625
+0.565962 0.569402 0.572822 0.576222 0.579601 0.582961 0.586302 0.589624
+0.592927 0.596212 0.599479 0.602728 0.60596 0.609175 0.612372 0.615554
+0.618718 0.621867 0.625 0.628117 0.631219 0.634306 0.637377 0.640434
+0.643477 0.646505 0.649519 0.652519 0.655506 0.658478 0.661438 0.664384
+0.667317 0.670238 0.673146 0.676041 0.678924 0.681795 0.684653 0.6875
+0.690335 0.693159 0.695971 0.698771 0.701561 0.704339 0.707107 0.709864
+0.71261 0.715345 0.71807 0.720785 0.72349 0.726184 0.728869 0.731544
+0.734209 0.736864 0.73951 0.742146 0.744773 0.747391 0.75 0.7526 0.75519
+0.757772 0.760345 0.76291 0.765466 0.768013 0.770552 0.773082 0.775605
+0.778119 0.780625 0.783123 0.785613 0.788095 0.790569 0.793036 0.795495
+0.797947 0.800391 0.802827 0.805256 0.807678 0.810093 0.8125 0.8149
+0.817294 0.81968 0.822059 0.824432 0.826797 0.829156 0.831508 0.833854
+0.836193 0.838525 0.840851 0.843171 0.845484 0.847791 0.850092 0.852386
+0.854675 0.856957 0.859233 0.861503 0.863767 0.866025 0.868278 0.870524
+0.872765 0.875 0.877229 0.879453 0.881671 0.883883 0.88609 0.888292
+0.890488 0.892679 0.894864 0.897044 0.899218 0.901388 0.903552 0.905711
+0.907865 0.910014 0.912157 0.914296 0.91643 0.918559 0.920682 0.922801
+0.924916 0.927025 0.929129 0.931229 0.933324 0.935414 0.9375 0.939581
+0.941657 0.943729 0.945797 0.947859 0.949918 0.951972 0.954021 0.956066
+0.958107 0.960143 0.962175 0.964203 0.966227 0.968246 0.970261 0.972272
+0.974279 0.976281 0.97828 0.980274 0.982265 0.984251 0.986233 0.988212
+0.990186 0.992157 0.994123 0.996086 0.998045 1 0.992172 0.984375 0.976609
+0.968874 0.961169 0.953495 0.945852 0.938239 0.930657 0.923106 0.915586
+0.908097 0.900638 0.89321 0.885813 0.878447 0.871111 0.863806 0.856532
+0.849289 0.842076 0.834894 0.827743 0.820623 0.813533 0.806474 0.799446
+0.792449 0.785483 0.778547 0.771642 0.764767 0.757924 0.751111 0.744329
+0.737578 0.730857 0.724168 0.717509 0.71088 0.704283 0.697716 0.69118
+0.684675 0.678201 0.671757 0.665344 0.658962 0.652611 0.64629 0.64
+0.633741 0.627513 0.621315 0.615148 0.609012 0.602907 0.596832 0.590788
+0.584775 0.578793 0.572841 0.56692 0.56103 0.555171 0.549343 0.543545
+0.537778 0.532041 0.526336 0.520661 0.515017 0.509404 0.503822 0.49827
+0.492749 0.487259 0.481799 0.476371 0.470973 0.465605 0.460269 0.454963
+0.449689 0.444444 0.439231 0.434048 0.428897 0.423775 0.418685 0.413625
+0.408597 0.403599 0.398631 0.393695 0.388789 0.383914 0.37907 0.374256
+0.369473 0.364721 0.36 0.355309 0.35065 0.346021 0.341423 0.336855
+0.332318 0.327812 0.323337 0.318893 0.314479 0.310096 0.305744 0.301423
+0.297132 0.292872 0.288643 0.284444 0.280277 0.27614 0.272034 0.267958
+0.263914 0.2599 0.255917 0.251965 0.248043 0.244152 0.240292 0.236463
+0.232664 0.228897 0.22516 0.221453 0.217778 0.214133 0.210519 0.206936
+0.203383 0.199862 0.196371 0.19291 0.189481 0.186082 0.182714 0.179377
+0.176071 0.172795 0.16955 0.166336 0.163153 0.16 0.156878 0.153787
+0.150727 0.147697 0.144698 0.14173 0.138793 0.135886 0.13301 0.130165
+0.127351 0.124567 0.121815 0.119093 0.116401 0.113741 0.111111 0.108512
+0.105944 0.103406 0.1009 0.0984237 0.0959785 0.093564 0.0911803 0.0888274
+0.0865052 0.0842138 0.0819531 0.0797232 0.077524 0.0753556 0.073218
+0.0711111 0.069035 0.0669896 0.064975 0.0629911 0.0610381 0.0591157
+0.0572241 0.0553633 0.0535332 0.0517339 0.0499654 0.0482276 0.0465206
+0.0448443 0.0431988 0.041584 0.04 0.0384467 0.0369243 0.0354325 0.0339715
+0.0325413 0.0311419 0.0297732 0.0284352 0.027128 0.0258516 0.0246059
+0.023391 0.0222068 0.0210534 0.0199308 0.0188389 0.0177778 0.0167474
+0.0157478 0.0147789 0.0138408 0.0129335 0.0120569 0.0112111 0.010396
+0.00961169 0.00885813 0.00813533 0.00744329 0.00678201 0.00615148 0.00555171
+0.0049827 0.00444444 0.00393695 0.00346021 0.00301423 0.002599 0.00221453
+0.00186082 0.00153787 0.00124567 0.000984237 0.000753556 0.000553633
+0.000384467 0.000246059 0.000138408 6.15148e-05 1.53787e-05 0;
+#X coords 0 1 512 0 512 64 1 0 0;
+#X restore 24 536 graph;
+#X text 244 55 centre signal around zero and take abs value;
+#X text 243 107 if greater than threshold output 1;
+#X text 313 129 differentiator;
+#X text 238 150 (generates impulse on positive trigger (0->1);
+#X text 67 210 signal-rate counter;
+#X text 296 193 -> resets counter by briefly setting;
+#X text 314 204 rpole~ coeff to 0;
+#X text 96 416 kickdrum 101 :P;
+#X text 400 514 pre-generated envelope;
+#X obj 262 249 *~;
+#X text 127 352 << use envelope value for volume and frequency;
+#X connect 0 0 4 0;
+#X connect 1 0 5 0;
+#X connect 2 0 1 1;
+#X connect 3 0 2 0;
+#X connect 4 0 11 0;
+#X connect 5 0 13 0;
+#X connect 6 0 1 0;
+#X connect 7 0 8 1;
+#X connect 8 0 5 1;
+#X connect 10 0 28 0;
+#X connect 11 0 8 0;
+#X connect 12 0 14 0;
+#X connect 13 0 15 0;
+#X connect 14 0 10 0;
+#X connect 14 0 25 0;
+#X connect 14 0 25 1;
+#X connect 15 0 12 0;
+#X connect 16 0 0 0;
+#X connect 17 0 16 0;
+#X connect 18 0 17 0;
+#X connect 19 0 20 0;
+#X connect 20 0 15 1;
+#X connect 21 0 0 1;
+#X connect 22 0 39 0;
+#X connect 22 0 39 1;
+#X connect 23 0 10 1;
+#X connect 24 0 23 0;
+#X connect 25 0 26 0;
+#X connect 26 0 24 0;
+#X connect 27 0 20 1;
+#X connect 39 0 27 0;
+#X restore 28 174 pd env;
+#X obj 79 110 adc~ 9;
+#X obj 129 130 adc~ 10;
+#X text 72 90 piezo input for excitation;
+#X text 123 110 fader 1 sets threshold;
+#X text 183 130 fader 2 sets duration;
+#X text 29 17 SAMPLE-ACCURATE ENVELOPE TRIGGER;
+#X text 29 27 ================================;
+#X obj 28 90 adc~ 8;
+#X text 141 236 ---------------------------------;
+#X text 141 226 @krighxz / BELA / heavy / 12/2015;
+#X text 165 245 beaglert.cc / enzienaudio.com;
+#X connect 1 0 0 0;
+#X connect 1 0 0 1;
+#X connect 2 0 1 1;
+#X connect 3 0 1 2;
+#X connect 9 0 1 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/hello-midi/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,81 @@
+#N canvas 85 58 1280 685 10;
+#X obj 19 396 dac~ 1 2;
+#X text 39 1 Hello world!;
+#X text 37 11 ============;
+#X obj 31 353 *~ 0.1;
+#X text 202 448 ---------------------------------;
+#X text 202 438 @krighxz / BELA / heavy / 12/2015;
+#X text 226 457 beaglert.cc / enzienaudio.com;
+#X obj 39 132 mtof;
+#X floatatom 79 59 5 0 0 0 - - -, f 5;
+#X floatatom 122 59 5 0 0 0 - - -, f 5;
+#X floatatom 41 63 5 0 0 0 - - -, f 5;
+#X obj 26 170 phasor~ 440;
+#X text 100 363 (the harsh sound of success);
+#X obj 260 83 * 20;
+#X obj 261 112 + 200;
+#X obj 132 85 loadbang;
+#X msg 131 111 1000;
+#X obj 125 166 sig~;
+#X text 673 121 [pgmin];
+#X obj 218 178 * 10;
+#X obj 30 250 hip~;
+#X obj 26 275 hip~;
+#X obj 20 302 hip~;
+#X obj 19 323 hip~;
+#X obj 87 192 lop~ 4;
+#X obj 152 256 line;
+#X obj 200 200 + 50;
+#X msg 170 227 \$1 200;
+#X msg 93 114 0;
+#X msg 185 112 0;
+#X obj 29 224 vcf~ 4;
+#X obj 70 333 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 42 92 mono;
+#X obj 40 28 bela_notein 0;
+#X obj 260 60 bela_ctlin 5 0;
+#X obj 220 151 bela_ctlin 6 0;
+#X text 537 58 [ctlin];
+#X text 332 27 [notein];
+#X text 140 29 <== the bela equivalent of ==>;
+#X text 349 59 <== the bela equivalent of ==>;
+#X text 483 121 <== the bela equivalent of ==>;
+#X obj 405 175 print pgmin;
+#X obj 408 121 bela_pgmin 0;
+#X connect 3 0 0 1;
+#X connect 3 0 0 0;
+#X connect 7 0 11 0;
+#X connect 8 0 32 1;
+#X connect 10 0 32 0;
+#X connect 11 0 30 0;
+#X connect 13 0 14 0;
+#X connect 14 0 17 0;
+#X connect 15 0 16 0;
+#X connect 15 0 29 0;
+#X connect 15 0 28 0;
+#X connect 16 0 17 0;
+#X connect 17 0 24 0;
+#X connect 19 0 26 0;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 3 0;
+#X connect 24 0 30 1;
+#X connect 25 0 20 1;
+#X connect 25 0 21 1;
+#X connect 25 0 22 1;
+#X connect 25 0 23 1;
+#X connect 26 0 27 0;
+#X connect 27 0 25 0;
+#X connect 29 0 19 0;
+#X connect 30 0 20 0;
+#X connect 31 0 3 1;
+#X connect 32 0 7 0;
+#X connect 32 1 31 0;
+#X connect 33 0 10 0;
+#X connect 33 1 8 0;
+#X connect 33 2 9 0;
+#X connect 34 0 13 0;
+#X connect 35 0 19 0;
+#X connect 42 0 41 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/hello-midi/backmain.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,79 @@
+#N canvas 85 58 1280 685 10;
+#X obj 19 396 dac~ 1 2;
+#X text 39 1 Hello world!;
+#X text 37 11 ============;
+#X obj 31 353 *~ 0.1;
+#X text 202 448 ---------------------------------;
+#X text 202 438 @krighxz / BELA / heavy / 12/2015;
+#X text 226 457 beaglert.cc / enzienaudio.com;
+#X obj 39 132 mtof;
+#X floatatom 79 59 5 0 0 0 - - -, f 5;
+#X floatatom 122 59 5 0 0 0 - - -, f 5;
+#X floatatom 41 63 5 0 0 0 - - -, f 5;
+#X obj 26 170 phasor~ 440;
+#X text 100 363 (the harsh sound of success);
+#X obj 260 83 * 20;
+#X obj 261 112 + 200;
+#X obj 132 85 loadbang;
+#X msg 131 111 1000;
+#X obj 125 166 sig~;
+#X text 673 121 [pgmin];
+#X obj 218 178 * 10;
+#X obj 30 250 hip~;
+#X obj 26 275 hip~;
+#X obj 20 302 hip~;
+#X obj 19 323 hip~;
+#X obj 87 192 lop~ 4;
+#X obj 152 256 line;
+#X obj 200 200 + 50;
+#X msg 170 227 \$1 200;
+#X msg 93 114 0;
+#X msg 185 112 0;
+#X obj 29 224 vcf~ 4;
+#X obj 70 333 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 42 92 mono;
+#X obj 40 28 bela_notein 0;
+#X obj 260 60 bela_ctlin 5 0;
+#X obj 220 151 bela_ctlin 6 0;
+#X obj 408 121 bela_pgmin 3;
+#X text 537 58 [ctlin];
+#X text 332 27 [notein];
+#X text 140 29 <== the bela equivalent of ==>;
+#X text 349 59 <== the bela equivalent of ==>;
+#X text 483 121 <== the bela equivalent of ==>;
+#X connect 3 0 0 1;
+#X connect 3 0 0 0;
+#X connect 7 0 11 0;
+#X connect 8 0 32 1;
+#X connect 10 0 32 0;
+#X connect 11 0 30 0;
+#X connect 13 0 14 0;
+#X connect 14 0 17 0;
+#X connect 15 0 16 0;
+#X connect 15 0 29 0;
+#X connect 15 0 28 0;
+#X connect 16 0 17 0;
+#X connect 17 0 24 0;
+#X connect 19 0 26 0;
+#X connect 20 0 21 0;
+#X connect 21 0 22 0;
+#X connect 22 0 23 0;
+#X connect 23 0 3 0;
+#X connect 24 0 30 1;
+#X connect 25 0 20 1;
+#X connect 25 0 21 1;
+#X connect 25 0 22 1;
+#X connect 25 0 23 1;
+#X connect 26 0 27 0;
+#X connect 27 0 25 0;
+#X connect 29 0 19 0;
+#X connect 30 0 20 0;
+#X connect 31 0 3 1;
+#X connect 32 0 7 0;
+#X connect 32 1 31 0;
+#X connect 33 0 10 0;
+#X connect 33 1 8 0;
+#X connect 33 2 9 0;
+#X connect 34 0 13 0;
+#X connect 35 0 19 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/hello-midi/bela_ctlin.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,76 @@
+#N canvas 554 204 703 475 10;
+#X obj 53 431 outlet;
+#X obj 108 429 outlet;
+#X obj 99 127 r ctlin;
+#X obj 92 151 unpack f f f;
+#X obj 154 429 outlet;
+#X obj 86 322 spigot;
+#X text 51 450 value;
+#X text 105 450 number;
+#X obj 211 138 loadbang;
+#X obj 177 193 \$1;
+#X obj 126 214 == \$1;
+#X obj 119 299 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 84 349 unpack f f f;
+#X obj 143 247 ||;
+#X obj 177 217 == 0;
+#X text 70 11 Emulates ctlin \, except number of outlets is fixed.
+;
+#X obj 228 247 ||;
+#X obj 262 217 == 0;
+#X obj 212 214 == \$2;
+#X obj 262 193 \$2;
+#X obj 177 277 &&;
+#X obj 211 163 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 173 299 If (inputController==\$1 || \$1==0) && (inputChannel==\$2
+|| \$2==0);
+#X text 197 52 Known issue: trying to select inputController 0 will
+result i accepting all controllers (because a pd external cannot tell
+the difference between \$1 been explicitely set to 0 and the patch
+not having any argument);
+#X text 162 450 channel;
+#X obj 56 192 pack f f f;
+#X obj 80 408 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X floatatom 81 382 5 0 0 0 - - -, f 5;
+#X obj 121 412 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 122 386 5 0 0 0 - - -, f 5;
+#X obj 172 406 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 173 380 5 0 0 0 - - -, f 5;
+#X obj 122 92 s ctlin;
+#X obj 64 29 r bela_ctlin;
+#X connect 2 0 3 0;
+#X connect 3 0 25 0;
+#X connect 3 1 10 0;
+#X connect 3 1 25 1;
+#X connect 3 2 18 0;
+#X connect 3 2 25 2;
+#X connect 5 0 12 0;
+#X connect 8 0 21 0;
+#X connect 9 0 14 0;
+#X connect 10 0 13 0;
+#X connect 11 0 5 1;
+#X connect 12 0 0 0;
+#X connect 12 0 27 0;
+#X connect 12 1 1 0;
+#X connect 12 1 29 0;
+#X connect 12 2 4 0;
+#X connect 12 2 31 0;
+#X connect 13 0 20 0;
+#X connect 14 0 13 1;
+#X connect 16 0 20 1;
+#X connect 17 0 16 1;
+#X connect 18 0 16 0;
+#X connect 19 0 17 0;
+#X connect 20 0 11 0;
+#X connect 21 0 9 0;
+#X connect 21 0 19 0;
+#X connect 25 0 5 0;
+#X connect 27 0 26 0;
+#X connect 29 0 28 0;
+#X connect 31 0 30 0;
+#X connect 33 0 32 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/hello-midi/bela_notein.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,59 @@
+#N canvas 399 23 629 685 10;
+#X obj 94 481 outlet;
+#X obj 165 475 outlet;
+#X obj 141 184 unpack f f f;
+#X obj 221 472 outlet;
+#X obj 143 365 spigot;
+#X obj 268 181 loadbang;
+#X obj 234 236 \$1;
+#X obj 183 257 == \$1;
+#X obj 176 342 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 143 392 unpack f f f;
+#X obj 200 290 ||;
+#X obj 234 260 == 0;
+#X obj 268 206 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X text 160 65 Emulates notein \, except number of outlets is fixed.
+;
+#X text 92 499 notenumber;
+#X text 161 489 velocity;
+#X text 220 486 channel;
+#X text 229 311 If (inputChannel==\$1 || \$1==0);
+#X obj 115 232 pack f f f;
+#X obj 82 428 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X floatatom 84 410 5 0 0 0 - - -, f 5;
+#X obj 145 448 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 147 430 5 0 0 0 - - -, f 5;
+#X obj 198 451 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X floatatom 200 433 5 0 0 0 - - -, f 5;
+#X obj 131 112 s notein;
+#X obj 140 149 r notein;
+#X obj 135 84 r bela_notein;
+#X connect 2 0 18 0;
+#X connect 2 1 18 1;
+#X connect 2 2 7 0;
+#X connect 2 2 18 2;
+#X connect 4 0 9 0;
+#X connect 5 0 12 0;
+#X connect 6 0 11 0;
+#X connect 7 0 10 0;
+#X connect 8 0 4 1;
+#X connect 9 0 0 0;
+#X connect 9 0 20 0;
+#X connect 9 1 1 0;
+#X connect 9 1 22 0;
+#X connect 9 2 3 0;
+#X connect 9 2 24 0;
+#X connect 10 0 8 0;
+#X connect 11 0 10 1;
+#X connect 12 0 6 0;
+#X connect 18 0 4 0;
+#X connect 20 0 19 0;
+#X connect 22 0 21 0;
+#X connect 24 0 23 0;
+#X connect 26 0 2 0;
+#X connect 27 0 25 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/hello-midi/bela_pgmin.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,53 @@
+#N canvas 623 197 587 546 10;
+#X obj 73 413 outlet;
+#X obj 174 411 outlet;
+#X obj 106 304 spigot;
+#X obj 197 126 loadbang;
+#X obj 197 175 \$1;
+#X obj 146 196 == \$1;
+#X obj 139 281 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 163 229 ||;
+#X obj 197 199 == 0;
+#X obj 197 151 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 89 111 unpack f f;
+#X obj 106 332 unpack f f;
+#X text 52 436 program number;
+#X text 182 432 channel;
+#X text 193 281 If (channel==\$1 || \$1==0);
+#X text 167 45 emulates pgmin except it always has 2 outlets and requires
+the input parameters to be explicitely set. Set them to 0 to avoid
+filtering;
+#X text 262 132 It'd be nicer with [t l l] but have to compensate for
+the fact that it is not supported by heavy;
+#X obj 77 183 pack f f;
+#X floatatom 72 355 5 0 0 0 - - -, f 5;
+#X obj 63 379 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X floatatom 150 361 5 0 0 0 - - -, f 5;
+#X obj 141 385 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 91 63 s pgmin;
+#X obj 93 87 r pgmin;
+#X obj 89 42 r bela_pgmin;
+#X connect 2 0 11 0;
+#X connect 3 0 9 0;
+#X connect 4 0 8 0;
+#X connect 5 0 7 0;
+#X connect 6 0 2 1;
+#X connect 7 0 6 0;
+#X connect 8 0 7 1;
+#X connect 9 0 4 0;
+#X connect 10 0 17 0;
+#X connect 10 1 5 0;
+#X connect 10 1 17 1;
+#X connect 11 0 0 0;
+#X connect 11 0 18 0;
+#X connect 11 1 1 0;
+#X connect 11 1 20 0;
+#X connect 17 0 2 0;
+#X connect 18 0 19 0;
+#X connect 20 0 21 0;
+#X connect 23 0 10 0;
+#X connect 24 0 22 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/hello-midi/countTo.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,33 @@
+#N canvas 584 255 450 300 10;
+#X obj 65 196 outlet;
+#X obj 98 8 inlet;
+#X text 189 49 counts from 0 to the given number -1;
+#X text 214 95 inlet:N;
+#X text 212 112 outlet: 0 \, 1 \, 2 \, ... \, N-1;
+#X obj 143 61 f;
+#X obj 100 138 spigot;
+#X obj 129 89 <;
+#X obj 129 113 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 95 28 t b f b;
+#X obj 92 74 + 1;
+#X obj 43 73 f;
+#X obj 63 104 t b f f f;
+#X msg 92 53 0;
+#X obj 16 144 delay 0;
+#X connect 1 0 9 0;
+#X connect 5 0 7 1;
+#X connect 6 0 11 0;
+#X connect 7 0 8 0;
+#X connect 8 0 6 1;
+#X connect 9 0 11 0;
+#X connect 9 1 5 0;
+#X connect 9 1 13 0;
+#X connect 10 0 11 1;
+#X connect 11 0 12 0;
+#X connect 12 0 14 0;
+#X connect 12 1 0 0;
+#X connect 12 2 7 0;
+#X connect 12 3 10 0;
+#X connect 13 0 11 1;
+#X connect 14 0 6 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/hello-midi/maxArray.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,67 @@
+#N canvas 464 23 1002 583 10;
+#X obj 224 202 max;
+#X obj 265 200 f;
+#X obj 223 229 change;
+#X obj 223 251 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 223 271 f;
+#X obj 259 323 f;
+#X obj 187 315 f;
+#X obj 268 282 t b b;
+#X obj 183 364 outlet;
+#X obj 269 379 outlet;
+#X obj 179 17 inlet;
+#X obj 225 177 tabread \$1;
+#X obj 230 88 t f f b;
+#X text 376 37 Finds a maximum value in an array;
+#X text 531 112 \$2 arrayLength;
+#X obj 292 10 inlet;
+#X text 425 146 inlets:;
+#X text 473 144 1 bang to find the maximum;
+#X text 475 157 2 arrayLength;
+#X text 407 90 creation arguments: \$1 arrayName;
+#X obj 246 38 \$2;
+#X obj 202 40 bang;
+#X obj 230 65 f;
+#X obj 224 6 loadbang;
+#X text 444 216 outlets: 1 maximum value;
+#X text 498 231 2 index of the maximum value;
+#X msg 276 141 -1e+15;
+#X obj 222 142 t f f f;
+#X floatatom 158 266 5 0 0 0 - - -, f 5;
+#X obj 332 302 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X obj 288 253 select 127;
+#X floatatom 301 324 5 0 0 0 - - -, f 5;
+#X text 362 256 heavy does not support the second inlet of select so
+I have to hard code 127 in here;
+#X obj 223 110 countTo;
+#X connect 0 0 1 0;
+#X connect 0 0 2 0;
+#X connect 0 0 6 1;
+#X connect 0 0 28 0;
+#X connect 1 0 0 1;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 1;
+#X connect 4 0 31 0;
+#X connect 5 0 9 0;
+#X connect 6 0 8 0;
+#X connect 7 0 6 0;
+#X connect 7 1 5 0;
+#X connect 10 0 21 0;
+#X connect 11 0 0 0;
+#X connect 12 0 33 0;
+#X connect 12 2 26 0;
+#X connect 15 0 22 1;
+#X connect 20 0 22 1;
+#X connect 21 0 22 0;
+#X connect 22 0 12 0;
+#X connect 23 0 20 0;
+#X connect 26 0 0 1;
+#X connect 27 0 30 0;
+#X connect 27 1 11 0;
+#X connect 27 2 4 1;
+#X connect 30 0 7 0;
+#X connect 30 0 29 0;
+#X connect 33 0 27 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/hello-midi/mono.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,106 @@
+#N canvas 69 182 1020 452 10;
+#N canvas 0 23 450 278 (subpatch) 0;
+#X array \$0-activeNotes 127 float 2;
+#X coords 0 100 127 -1 200 140 1 0 0;
+#X restore 537 25 graph;
+#N canvas 89 91 450 300 resetArray 1;
+#X obj 121 145 tabwrite \$0-activeNotes;
+#X msg 123 115 -0.5;
+#X obj 154 90 t b f;
+#X msg 129 45 128;
+#X obj 103 14 inlet;
+#X text 212 71 countto;
+#X obj 153 69 countTo;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 2 1 0 1;
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 6 0 2 0;
+#X restore 83 49 pd resetArray;
+#X obj 83 3 loadbang;
+#X obj 88 25 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 39 188 maxArray \$0-activeNotes 128;
+#X obj 183 219 f;
+#X obj 39 237 >= 0;
+#X floatatom 148 313 5 0 0 0 - - -, f 5;
+#X obj 70 262 select 1;
+#X obj 366 87 f;
+#X obj 426 60 f;
+#X text 334 39 note;
+#X text 424 16 velocity;
+#X obj 423 87 > 0;
+#X obj 344 281 tabwrite \$0-activeNotes;
+#X obj 330 207 f;
+#X floatatom 303 178 5 0 0 0 - - -, f 5;
+#X obj 265 163 f;
+#X obj 304 150 + 1;
+#X msg 277 130 -1;
+#X msg 371 207 -0.5;
+#X obj 400 116 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 367 137 spigot;
+#X obj 447 134 spigot;
+#X obj 460 86 == 0;
+#X obj 470 109 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
+1;
+#X obj 434 163 t b f;
+#X obj 337 60 inlet;
+#X obj 426 32 inlet;
+#X obj 148 350 outlet;
+#X obj 275 89 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 41 163 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X obj 363 172 t b f;
+#X obj 334 240 t b f;
+#X text 578 211 pass in velocity/note pairs (velocity first) and obtain
+as an output the most recent note still active;
+#X text 581 268 outlet 2 gate;
+#X obj 330 366 outlet;
+#X text 583 251 outlet 1 most recent note active (-1 otherwise);
+#X text 155 329 most recent note active;
+#X msg 338 338 0;
+#X msg 378 339 1;
+#X connect 2 0 3 0;
+#X connect 3 0 1 0;
+#X connect 3 0 19 0;
+#X connect 4 0 6 0;
+#X connect 4 1 5 1;
+#X connect 5 0 7 0;
+#X connect 5 0 40 0;
+#X connect 6 0 8 0;
+#X connect 7 0 29 0;
+#X connect 8 0 5 0;
+#X connect 8 1 39 0;
+#X connect 9 0 22 0;
+#X connect 9 0 23 0;
+#X connect 10 0 13 0;
+#X connect 10 0 24 0;
+#X connect 13 0 21 0;
+#X connect 15 0 33 0;
+#X connect 16 0 15 1;
+#X connect 17 0 18 0;
+#X connect 18 0 16 0;
+#X connect 18 0 17 1;
+#X connect 19 0 17 1;
+#X connect 20 0 33 0;
+#X connect 21 0 22 1;
+#X connect 22 0 32 0;
+#X connect 23 0 26 0;
+#X connect 24 0 25 0;
+#X connect 25 0 23 1;
+#X connect 26 0 20 0;
+#X connect 26 1 14 1;
+#X connect 27 0 9 0;
+#X connect 28 0 10 0;
+#X connect 28 0 30 0;
+#X connect 30 0 17 0;
+#X connect 31 0 4 0;
+#X connect 32 0 15 0;
+#X connect 32 1 14 1;
+#X connect 33 0 31 0;
+#X connect 33 1 14 0;
+#X connect 39 0 36 0;
+#X connect 40 0 36 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/hello-techno-world/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,541 @@
+#N canvas 1575 774 1307 981 10;
+#X text 425 48 ├┴┐├┤-├─┤│-┬│--├┤-╠╦╝-║-
+;
+#X text 425 36 ┌┐-┌─┐┌─┐┌─┐┬--┌─┐╦═╗╔╦╗
+;
+#X text 425 57 └─┘└─┘┴-┴└─┘┴─┘└─┘╩╚═-╩-
+;
+#X text 474 76 powered by heavy;
+#X text 420 68 -------------------------;
+#X text 461 101 http://beaglert.cc;
+#X text 172 61 ============;
+#X obj 298 606 phasor~ 5;
+#X obj 207 284 samphold~;
+#X obj 207 259 noise~;
+#X obj 288 276 phasor~ 10;
+#N canvas 0 22 143 172 >~ 0;
+#X obj 18 -59 -~;
+#X obj 18 -80 min~;
+#X obj 18 4 *~ 1e+37;
+#X obj 18 -17 +~ 1e-37;
+#X obj 18 -38 clip~ -1e-37 0;
+#X obj 18 -105 inlet~;
+#X obj 61 -105 inlet~;
+#X obj 18 26 outlet~;
+#X connect 0 0 4 0;
+#X connect 1 0 0 0;
+#X connect 2 0 7 0;
+#X connect 3 0 2 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X connect 6 0 0 1;
+#X connect 6 0 1 1;
+#X restore 298 636 pd >~;
+#X obj 299 730 dac~;
+#X obj 211 313 *~ 0.5;
+#X obj 211 335 +~ 0.5;
+#X obj 211 357 *~ 1000;
+#X obj 298 666 vcf~ 10;
+#X obj 344 418 wrap~;
+#X obj 293 433 -~;
+#N canvas 0 22 450 278 (subpatch) 0;
+#X array midi 127 float 3;
+#A 0 51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435
+51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435
+51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435
+51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435
+51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435
+51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435 51.435
+51.435 50.8 50.8 50.8 50.8 50.8 50.8 50.8 50.8 50.8 50.165 50.165 50.165
+50.165 50.165 50.165 50.165 50.165 50.165 50.165 50.165 50.165 50.165
+50.165 50.165 50.165 50.165 50.165 50.165 50.165 50.165 50.165 50.165
+50.165 50.165 50.165 50.165 50.165 49.53 49.53 49.53 49.53 49.53 48.26
+48.26 48.26 48.26 47.625 47.9425 48.26 48.26 48.26 48.26 48.26 48.26
+48.26 48.26 48.26 48.26 48.26 48.26 48.26 48.26 48.26 48.26 48.26 48.26
+47.625;
+#X coords 0 0 127 127 200 200 1 0 0;
+#X restore 836 39 graph;
+#X obj 293 479 tabread~ midi;
+#X obj 326 513 wrap~;
+#X obj 307 536 -~;
+#X obj 294 364 *~ 127;
+#X obj 294 386 +~ 0;
+#X obj 420 202 sig~;
+#X obj 420 359 wrap~;
+#N canvas 0 22 450 300 <~ 0;
+#X obj 24 -60 -~;
+#X obj 24 10 +~ 1e-37;
+#X obj 24 -11 clip~ -1e-37 0;
+#X obj 24 -105 inlet~;
+#X obj 68 -104 inlet~;
+#X obj 24 -81 max~;
+#X obj 24 -36 *~ -1;
+#X obj 24 62 outlet~;
+#X obj 24 31 *~ 1e+37;
+#X connect 0 0 6 0;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 0 1;
+#X connect 4 0 5 1;
+#X connect 5 0 0 0;
+#X connect 6 0 2 0;
+#X connect 8 0 7 0;
+#X restore 448 428 pd <~;
+#X obj 473 400 sig~ 0.5;
+#X obj 298 578 mtof~;
+#X obj 391 579 +~;
+#X obj 415 545 *~ 1;
+#X obj 709 408 wrap~;
+#N canvas 0 22 450 300 <~ 0;
+#X obj 24 -60 -~;
+#X obj 24 10 +~ 1e-37;
+#X obj 24 -11 clip~ -1e-37 0;
+#X obj 24 -105 inlet~;
+#X obj 68 -104 inlet~;
+#X obj 24 -81 max~;
+#X obj 24 -36 *~ -1;
+#X obj 24 62 outlet~;
+#X obj 24 31 *~ 1e+37;
+#X connect 0 0 6 0;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 0 1;
+#X connect 4 0 5 1;
+#X connect 5 0 0 0;
+#X connect 6 0 2 0;
+#X connect 8 0 7 0;
+#X restore 709 460 pd <~;
+#X obj 734 432 sig~ 0.5;
+#X obj 723 499 rzero~ 1;
+#X obj 548 196 phasor~ 10;
+#X obj 421 264 /~ 44100;
+#N canvas 0 22 450 300 <~ 0;
+#X obj 24 -60 -~;
+#X obj 24 10 +~ 1e-37;
+#X obj 24 -11 clip~ -1e-37 0;
+#X obj 24 -105 inlet~;
+#X obj 68 -104 inlet~;
+#X obj 24 -81 max~;
+#X obj 24 -36 *~ -1;
+#X obj 24 62 outlet~;
+#X obj 24 31 *~ 1e+37;
+#X connect 0 0 6 0;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 0 1;
+#X connect 4 0 5 1;
+#X connect 5 0 0 0;
+#X connect 6 0 2 0;
+#X connect 8 0 7 0;
+#X restore 564 254 pd <~;
+#X msg 340 137 0;
+#X obj 420 329 /~ 128;
+#X obj 699 642 /~ 44100;
+#X obj 698 669 rpole~ 1;
+#X obj 725 549 *~ -1;
+#X obj 725 571 +~ 1;
+#X obj 698 692 +~ 1;
+#X obj 723 521 abs~;
+#X obj 706 744 *~;
+#X obj 697 613 sig~ -10;
+#X obj 699 715 clip~ 0 1;
+#X obj 705 816 osc~;
+#X obj 705 880 dac~;
+#X obj 705 794 *~ 400;
+#X obj 421 291 rpole~ 1;
+#X obj 589 226 sig~ 0.999;
+#X obj 437 225 /~ 128;
+#X text 759 820 kick;
+#X obj 810 429 wrap~;
+#N canvas 0 22 450 300 <~ 0;
+#X obj 24 -60 -~;
+#X obj 24 10 +~ 1e-37;
+#X obj 24 -11 clip~ -1e-37 0;
+#X obj 24 -105 inlet~;
+#X obj 68 -104 inlet~;
+#X obj 24 -81 max~;
+#X obj 24 -36 *~ -1;
+#X obj 24 62 outlet~;
+#X obj 24 31 *~ 1e+37;
+#X connect 0 0 6 0;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 0 1;
+#X connect 4 0 5 1;
+#X connect 5 0 0 0;
+#X connect 6 0 2 0;
+#X connect 8 0 7 0;
+#X restore 810 480 pd <~;
+#X obj 835 452 sig~ 0.5;
+#X obj 824 519 rzero~ 1;
+#X obj 800 662 /~ 44100;
+#X obj 799 689 rpole~ 1;
+#X obj 826 569 *~ -1;
+#X obj 826 591 +~ 1;
+#X obj 799 712 +~ 1;
+#X obj 824 541 abs~;
+#X obj 798 633 sig~ -10;
+#X obj 800 735 clip~ 0 1;
+#X obj 802 904 dac~;
+#X obj 843 771 noise~;
+#X obj 801 791 *~;
+#X obj 800 765 *~;
+#X obj 810 403 +~ 0.25;
+#X obj 922 666 samphold~;
+#X obj 922 645 noise~;
+#X obj 909 432 wrap~;
+#N canvas 0 22 450 300 <~ 0;
+#X obj 24 -60 -~;
+#X obj 24 10 +~ 1e-37;
+#X obj 24 -11 clip~ -1e-37 0;
+#X obj 24 -105 inlet~;
+#X obj 68 -104 inlet~;
+#X obj 24 -81 max~;
+#X obj 24 -36 *~ -1;
+#X obj 24 62 outlet~;
+#X obj 24 31 *~ 1e+37;
+#X connect 0 0 6 0;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 0 1;
+#X connect 4 0 5 1;
+#X connect 5 0 0 0;
+#X connect 6 0 2 0;
+#X connect 8 0 7 0;
+#X restore 909 483 pd <~;
+#X obj 934 455 sig~ 0.5;
+#X obj 923 522 rzero~ 1;
+#X obj 925 572 *~ -1;
+#X obj 925 594 +~ 1;
+#X obj 923 544 abs~;
+#X obj 909 406 +~ 0.25;
+#X obj 957 754 wrap~;
+#X obj 922 778 -~;
+#X obj 922 688 *~ 0.5;
+#X obj 922 710 +~ 0.5;
+#X obj 919 853 /~;
+#X obj 922 800 +~ 1;
+#X obj 810 376 /~;
+#X obj 1025 663 samphold~;
+#X obj 1025 642 noise~;
+#X obj 1060 751 wrap~;
+#X obj 1025 775 -~;
+#X obj 1025 685 *~ 0.5;
+#X obj 1025 707 +~ 0.5;
+#X obj 1022 850 /~;
+#X obj 1025 797 +~ 1;
+#X obj 709 376 /~;
+#X obj 922 732 *~ 2;
+#X obj 919 831 sig~ 8;
+#X obj 298 688 *~ 0.5;
+#X text 858 864 hh;
+#X obj 1022 828 sig~ 8;
+#X obj 606 418 wrap~;
+#N canvas 0 22 450 300 <~ 0;
+#X obj 24 -60 -~;
+#X obj 24 10 +~ 1e-37;
+#X obj 24 -11 clip~ -1e-37 0;
+#X obj 24 -105 inlet~;
+#X obj 68 -104 inlet~;
+#X obj 24 -81 max~;
+#X obj 24 -36 *~ -1;
+#X obj 24 62 outlet~;
+#X obj 24 31 *~ 1e+37;
+#X connect 0 0 6 0;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 0 1;
+#X connect 4 0 5 1;
+#X connect 5 0 0 0;
+#X connect 6 0 2 0;
+#X connect 8 0 7 0;
+#X restore 606 470 pd <~;
+#X obj 631 442 sig~ 0.5;
+#X obj 620 494 rzero~ 1;
+#X obj 596 637 /~ 44100;
+#X obj 595 664 rpole~ 1;
+#X obj 622 544 *~ -1;
+#X obj 622 566 +~ 1;
+#X obj 595 687 +~ 1;
+#X obj 620 516 abs~;
+#X obj 594 608 sig~ -10;
+#X obj 596 710 clip~ 0 1;
+#X obj 602 811 osc~;
+#X obj 602 875 dac~;
+#X obj 606 393 +~ 0.25;
+#X obj 551 781 noise~;
+#X obj 509 801 *~;
+#X obj 9 664 osc~;
+#X obj 57 455 -~;
+#X obj 91 437 wrap~;
+#X obj 10 530 tabread~ midi;
+#X obj 9 797 dac~;
+#X obj 11 621 mtof~;
+#X obj 55 383 phasor~ 10;
+#X obj 57 416 *~ 127;
+#X obj 424 579 s~ midimod1;
+#X obj 148 650 osc~;
+#X obj 149 516 tabread~ midi;
+#X obj 125 789 dac~;
+#X obj 150 607 mtof~;
+#X obj 151 436 wrap~;
+#X obj 152 497 -~;
+#X obj 186 479 wrap~;
+#X obj 151 414 +~ 0.75;
+#X obj 56 345 /~ 8;
+#X obj 11 589 +~;
+#X obj 148 574 +~;
+#X obj 56 557 r~ midimod1;
+#X obj 6 699 *~ 0.1;
+#X obj 145 685 *~ 0.1;
+#X obj 679 206 sig~ 1;
+#X obj 679 228 /~;
+#X obj 679 250 s~ period;
+#X msg 219 150 1 \$1;
+#X obj 219 172 /;
+#X obj 219 194 s _period;
+#X obj 152 458 *~ 122;
+#X obj 287 79 loadbang;
+#X obj 382 670 delread~ _del 100;
+#X obj 382 773 delwrite~ _del 500;
+#X obj 382 616 r _period;
+#X obj 382 638 * 4000;
+#X obj 382 692 lop~ 1000;
+#X obj 382 713 *~ 0.85;
+#X text 656 815 snr;
+#X text 172 51 techno world!;
+#X obj 965 500 sig~ 1;
+#X obj 148 552 +~ 12;
+#X obj 11 567 +~ 12;
+#X msg 287 101 11;
+#X obj 1107 662 samphold~;
+#X obj 1107 641 noise~;
+#X obj 1142 750 wrap~;
+#X obj 1107 774 -~;
+#X obj 1107 684 *~ 0.5;
+#X obj 1107 706 +~ 0.5;
+#X obj 1104 849 /~;
+#X obj 1107 796 +~ 1;
+#X obj 606 371 /~;
+#X obj 909 379 /~ 8;
+#X obj 1107 728 *~ 2;
+#X obj 1025 729 *~ 1;
+#X obj 1104 827 sig~ 16;
+#X obj 801 813 hip~ 18000;
+#X obj 802 837 bp~ 12000 10;
+#X obj 509 823 hip~ 1000;
+#X obj 603 739 *~ 1;
+#X obj 602 789 *~ 300;
+#X obj 602 833 *~ 0.1;
+#X obj 802 862 *~ 0.1;
+#X obj 705 838 *~ 0.333;
+#X connect 7 0 11 0;
+#X connect 8 0 13 0;
+#X connect 9 0 8 0;
+#X connect 10 0 8 1;
+#X connect 11 0 16 0;
+#X connect 13 0 14 0;
+#X connect 14 0 11 1;
+#X connect 14 0 15 0;
+#X connect 14 0 23 0;
+#X connect 15 0 16 1;
+#X connect 16 0 102 0;
+#X connect 16 0 154 0;
+#X connect 17 0 18 1;
+#X connect 18 0 20 0;
+#X connect 20 0 21 0;
+#X connect 20 0 22 0;
+#X connect 21 0 22 1;
+#X connect 22 0 30 0;
+#X connect 23 0 24 0;
+#X connect 24 0 17 0;
+#X connect 24 0 18 0;
+#X connect 25 0 37 0;
+#X connect 25 0 55 0;
+#X connect 25 0 139 0;
+#X connect 25 0 146 1;
+#X connect 26 0 27 0;
+#X connect 27 0 31 0;
+#X connect 28 0 27 1;
+#X connect 29 0 7 0;
+#X connect 30 0 29 0;
+#X connect 31 0 30 1;
+#X connect 31 0 130 0;
+#X connect 32 0 33 0;
+#X connect 33 0 35 0;
+#X connect 34 0 33 1;
+#X connect 35 0 46 0;
+#X connect 36 0 38 0;
+#X connect 37 0 53 0;
+#X connect 38 0 53 1;
+#X connect 39 0 10 1;
+#X connect 39 0 36 1;
+#X connect 39 0 128 1;
+#X connect 40 0 26 0;
+#X connect 41 0 42 0;
+#X connect 42 0 45 0;
+#X connect 43 0 44 0;
+#X connect 44 0 42 1;
+#X connect 45 0 49 0;
+#X connect 46 0 43 0;
+#X connect 47 0 52 0;
+#X connect 48 0 41 0;
+#X connect 49 0 47 1;
+#X connect 49 0 47 0;
+#X connect 50 0 185 0;
+#X connect 52 0 50 0;
+#X connect 53 0 40 0;
+#X connect 53 0 90 0;
+#X connect 53 0 99 0;
+#X connect 53 0 173 0;
+#X connect 53 0 174 0;
+#X connect 54 0 38 1;
+#X connect 55 0 36 0;
+#X connect 57 0 58 0;
+#X connect 58 0 60 0;
+#X connect 59 0 58 1;
+#X connect 60 0 66 0;
+#X connect 61 0 62 0;
+#X connect 62 0 65 0;
+#X connect 63 0 64 0;
+#X connect 64 0 62 1;
+#X connect 65 0 68 0;
+#X connect 66 0 63 0;
+#X connect 67 0 61 0;
+#X connect 68 0 72 0;
+#X connect 68 0 72 1;
+#X connect 70 0 71 1;
+#X connect 71 0 178 0;
+#X connect 72 0 71 0;
+#X connect 73 0 57 0;
+#X connect 74 0 86 0;
+#X connect 75 0 74 0;
+#X connect 76 0 77 0;
+#X connect 77 0 79 0;
+#X connect 78 0 77 1;
+#X connect 79 0 82 0;
+#X connect 80 0 81 0;
+#X connect 81 0 74 1;
+#X connect 81 0 91 1;
+#X connect 81 0 165 1;
+#X connect 82 0 80 0;
+#X connect 83 0 76 0;
+#X connect 84 0 85 1;
+#X connect 85 0 89 0;
+#X connect 86 0 87 0;
+#X connect 87 0 100 0;
+#X connect 88 0 90 1;
+#X connect 89 0 88 1;
+#X connect 90 0 73 0;
+#X connect 91 0 95 0;
+#X connect 92 0 91 0;
+#X connect 93 0 94 1;
+#X connect 94 0 98 0;
+#X connect 95 0 96 0;
+#X connect 96 0 176 0;
+#X connect 97 0 99 1;
+#X connect 98 0 97 1;
+#X connect 99 0 32 0;
+#X connect 100 0 84 0;
+#X connect 100 0 85 0;
+#X connect 101 0 88 0;
+#X connect 102 0 12 0;
+#X connect 102 0 12 1;
+#X connect 104 0 97 0;
+#X connect 105 0 106 0;
+#X connect 106 0 108 0;
+#X connect 107 0 106 1;
+#X connect 108 0 114 0;
+#X connect 109 0 110 0;
+#X connect 110 0 113 0;
+#X connect 111 0 112 0;
+#X connect 112 0 110 1;
+#X connect 113 0 116 0;
+#X connect 114 0 111 0;
+#X connect 115 0 109 0;
+#X connect 116 0 181 0;
+#X connect 117 0 183 0;
+#X connect 119 0 105 0;
+#X connect 120 0 121 1;
+#X connect 121 0 180 0;
+#X connect 122 0 143 0;
+#X connect 123 0 125 0;
+#X connect 124 0 123 1;
+#X connect 125 0 163 0;
+#X connect 127 0 122 0;
+#X connect 128 0 129 0;
+#X connect 128 0 138 0;
+#X connect 129 0 123 0;
+#X connect 129 0 124 0;
+#X connect 131 0 144 0;
+#X connect 132 0 162 0;
+#X connect 134 0 131 0;
+#X connect 135 0 151 0;
+#X connect 136 0 132 0;
+#X connect 137 0 136 1;
+#X connect 138 0 135 0;
+#X connect 139 0 128 0;
+#X connect 140 0 127 0;
+#X connect 141 0 134 0;
+#X connect 142 0 140 1;
+#X connect 142 0 141 1;
+#X connect 143 0 126 0;
+#X connect 143 0 126 1;
+#X connect 144 0 133 0;
+#X connect 144 0 133 1;
+#X connect 145 0 146 0;
+#X connect 146 0 147 0;
+#X connect 148 0 149 0;
+#X connect 149 0 150 0;
+#X connect 151 0 136 0;
+#X connect 151 0 137 0;
+#X connect 152 0 164 0;
+#X connect 152 0 39 0;
+#X connect 153 0 157 0;
+#X connect 155 0 156 0;
+#X connect 156 0 153 0;
+#X connect 157 0 158 0;
+#X connect 158 0 154 0;
+#X connect 158 0 102 0;
+#X connect 161 0 79 1;
+#X connect 161 0 60 1;
+#X connect 161 0 35 1;
+#X connect 161 0 108 1;
+#X connect 162 0 141 0;
+#X connect 163 0 140 0;
+#X connect 164 0 148 0;
+#X connect 164 0 10 0;
+#X connect 164 0 25 0;
+#X connect 165 0 169 0;
+#X connect 166 0 165 0;
+#X connect 167 0 168 1;
+#X connect 168 0 172 0;
+#X connect 169 0 170 0;
+#X connect 170 0 175 0;
+#X connect 171 0 173 1;
+#X connect 172 0 171 1;
+#X connect 173 0 119 0;
+#X connect 174 0 83 0;
+#X connect 175 0 167 0;
+#X connect 175 0 168 0;
+#X connect 176 0 93 0;
+#X connect 176 0 94 0;
+#X connect 177 0 171 0;
+#X connect 178 0 179 0;
+#X connect 179 0 184 0;
+#X connect 180 0 183 0;
+#X connect 181 0 121 0;
+#X connect 181 0 182 0;
+#X connect 182 0 117 0;
+#X connect 183 0 118 0;
+#X connect 183 0 118 1;
+#X connect 184 0 69 0;
+#X connect 184 0 69 1;
+#X connect 185 0 51 0;
+#X connect 185 0 51 1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/hello-world/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,13 @@
+#N canvas 275 573 461 212 10;
+#X obj 39 143 dac~ 1 2;
+#X text 35 32 Hello world!;
+#X text 35 42 ============;
+#X text 95 79 (the sweet sound of success);
+#X obj 39 102 *~ 0.1;
+#X obj 39 81 osc~ 440;
+#X text 238 160 ---------------------------------;
+#X text 238 150 @krighxz / BELA / heavy / 12/2015;
+#X text 262 169 beaglert.cc / enzienaudio.com;
+#X connect 4 0 0 1;
+#X connect 4 0 0 0;
+#X connect 5 0 4 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/karplusStrong/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,240 @@
+#N canvas 440 516 715 490 10;
+#X obj 38 370 dac~ 1 2;
+#X text 470 442 ---------------------------------;
+#X text 470 432 @krighxz / BELA / heavy / 12/2015;
+#X text 494 451 beaglert.cc / enzienaudio.com;
+#X text 33 22 Karplus Strong;
+#X text 33 32 ==============;
+#X obj 38 323 vd~ \$0-wg1;
+#X obj 118 345 lop~ 1000;
+#X obj 118 367 *~ 0.99;
+#X obj 118 389 s~ \$0-fb1;
+#X obj 38 94 adc~ 3;
+#X obj 38 116 hip~ 100;
+#X obj 98 176 r~ \$0-fb1;
+#X obj 38 198 delwrite~ \$0-wg1 100;
+#X obj 38 268 *~;
+#X obj 38 290 *~ 10;
+#X text 99 116 <<< centre (i.e. DC block) signal with high-pass filter
+;
+#X text 100 94 <<< use accelerometer \, piezo or FSR on first analog
+in;
+#X text 105 245 <<< use potentiometer or fader on second analog in
+;
+#X text 100 75 EXCITATION INPUT:;
+#X text 100 225 DELAY PERIOD:;
+#X text 182 365 <<< and decay here [0-0.9999];
+#X text 182 345 <<< set damping here [~100-20000];
+#N canvas 335 566 461 274 gate 0;
+#N canvas 0 22 450 278 (subpatch) 0;
+#X array \$0-xfer 1024 float 3;
+#A 0 0 -0.808242 -0.804734 -0.801234 -0.797741 -0.794256 -0.790778
+-0.787309 -0.783846 -0.780392 -0.776945 -0.773506 -0.770074 -0.76665
+-0.763233 -0.759824 -0.756423 -0.75303 -0.749644 -0.746266 -0.742895
+-0.739532 -0.736176 -0.732829 -0.729488 -0.726156 -0.722831 -0.719514
+-0.716204 -0.712902 -0.709608 -0.706321 -0.703042 -0.69977 -0.696507
+-0.69325 -0.690002 -0.686761 -0.683527 -0.680302 -0.677084 -0.673873
+-0.67067 -0.667475 -0.664288 -0.661108 -0.657935 -0.654771 -0.651614
+-0.648464 -0.645323 -0.642188 -0.639062 -0.635943 -0.632832 -0.629728
+-0.626632 -0.623544 -0.620463 -0.61739 -0.614324 -0.611266 -0.608216
+-0.605174 -0.602139 -0.599111 -0.596092 -0.59308 -0.590075 -0.587078
+-0.584089 -0.581107 -0.578134 -0.575167 -0.572209 -0.569257 -0.566314
+-0.563378 -0.56045 -0.55753 -0.554617 -0.551711 -0.548814 -0.545924
+-0.543041 -0.540167 -0.537299 -0.53444 -0.531588 -0.528744 -0.525907
+-0.523078 -0.520257 -0.517443 -0.514637 -0.511839 -0.509048 -0.506265
+-0.503489 -0.500721 -0.497961 -0.495208 -0.492463 -0.489726 -0.486996
+-0.484274 -0.481559 -0.478852 -0.476153 -0.473461 -0.470777 -0.468101
+-0.465432 -0.462771 -0.460117 -0.457472 -0.454833 -0.452203 -0.44958
+-0.446964 -0.444357 -0.441757 -0.439164 -0.436579 -0.434002 -0.431432
+-0.42887 -0.426316 -0.42377 -0.42123 -0.418699 -0.416175 -0.413659
+-0.41115 -0.40865 -0.406156 -0.403671 -0.401193 -0.398722 -0.396259
+-0.393804 -0.391357 -0.388917 -0.386485 -0.38406 -0.381643 -0.379234
+-0.376832 -0.374438 -0.372051 -0.369673 -0.367301 -0.364938 -0.362582
+-0.360233 -0.357893 -0.35556 -0.353234 -0.350916 -0.348606 -0.346304
+-0.344009 -0.341721 -0.339442 -0.33717 -0.334905 -0.332649 -0.330399
+-0.328158 -0.325924 -0.323698 -0.321479 -0.319268 -0.317065 -0.314869
+-0.312681 -0.3105 -0.308328 -0.306162 -0.304005 -0.301855 -0.299713
+-0.297578 -0.295451 -0.293331 -0.291219 -0.289115 -0.287019 -0.28493
+-0.282848 -0.280775 -0.278709 -0.27665 -0.2746 -0.272556 -0.270521
+-0.268493 -0.266473 -0.26446 -0.262455 -0.260458 -0.258468 -0.256486
+-0.254511 -0.252545 -0.250585 -0.248634 -0.24669 -0.244753 -0.242825
+-0.240904 -0.23899 -0.237084 -0.235186 -0.233296 -0.231413 -0.229537
+-0.22767 -0.22581 -0.223957 -0.222112 -0.220275 -0.218446 -0.216624
+-0.21481 -0.213003 -0.211204 -0.209413 -0.207629 -0.205853 -0.204084
+-0.202323 -0.20057 -0.198824 -0.197086 -0.195356 -0.193633 -0.191918
+-0.190211 -0.188511 -0.186819 -0.185134 -0.183457 -0.181788 -0.180126
+-0.178472 -0.176826 -0.175187 -0.173556 -0.171932 -0.170316 -0.168708
+-0.167108 -0.165515 -0.163929 -0.162351 -0.160781 -0.159219 -0.157664
+-0.156117 -0.154577 -0.153045 -0.151521 -0.150004 -0.148495 -0.146993
+-0.1455 -0.144013 -0.142535 -0.141064 -0.139601 -0.138145 -0.136697
+-0.135256 -0.133824 -0.132398 -0.130981 -0.129571 -0.128169 -0.126774
+-0.125387 -0.124008 -0.122636 -0.121272 -0.119915 -0.118566 -0.117225
+-0.115891 -0.114565 -0.113247 -0.111936 -0.110633 -0.109338 -0.10805
+-0.10677 -0.105497 -0.104232 -0.102975 -0.101725 -0.100483 -0.0992487
+-0.0980219 -0.0968027 -0.0955911 -0.0943872 -0.0931909 -0.0920023 -0.0908212
+-0.0896478 -0.0884821 -0.0873239 -0.0861734 -0.0850305 -0.0838953 -0.0827676
+-0.0816476 -0.0805353 -0.0794305 -0.0783334 -0.077244 -0.0761621 -0.0750879
+-0.0740213 -0.0729623 -0.071911 -0.0708673 -0.0698312 -0.0688028 -0.067782
+-0.0667688 -0.0657632 -0.0647653 -0.063775 -0.0627924 -0.0618173 -0.0608499
+-0.0598901 -0.058938 -0.0579935 -0.0570566 -0.0561273 -0.0552057 -0.0542917
+-0.0533853 -0.0524866 -0.0515955 -0.050712 -0.0498361 -0.0489679 -0.0481073
+-0.0472543 -0.046409 -0.0455713 -0.0447412 -0.0439188 -0.0431039 -0.0422968
+-0.0414972 -0.0407053 -0.039921 -0.0391443 -0.0383752 -0.0376138 -0.03686
+-0.0361139 -0.0353754 -0.0346445 -0.0339212 -0.0332056 -0.0324976 -0.0317972
+-0.0311044 -0.0304193 -0.0297418 -0.029072 -0.0284097 -0.0277551 -0.0271082
+-0.0264688 -0.0258371 -0.025213 -0.0245966 -0.0239877 -0.0233865 -0.022793
+-0.022207 -0.0216287 -0.021058 -0.020495 -0.0199396 -0.0193918 -0.0188516
+-0.0183191 -0.0177942 -0.0172769 -0.0167673 -0.0162653 -0.0157709 -0.0152841
+-0.014805 -0.0143335 -0.0138696 -0.0134134 -0.0129648 -0.0125238 -0.0120905
+-0.0116647 -0.0112466 -0.0108362 -0.0104333 -0.0100381 -0.00965057
+-0.00927063 -0.00889832 -0.00853363 -0.00817657 -0.00782715 -0.00748535
+-0.00715118 -0.00682465 -0.00650574 -0.00619446 -0.00589081 -0.00559479
+-0.0053064 -0.00502563 -0.0047525 -0.004487 -0.00422913 -0.00397888
+-0.00373627 -0.00350128 -0.00327393 -0.0030542 -0.0028421 -0.00263763
+-0.0024408 -0.00225159 -0.00207001 -0.00189606 -0.00172974 -0.00157104
+-0.00141998 -0.00127655 -0.00114075 -0.00101257 -0.000892029 -0.000779114
+-0.000673828 -0.000576172 -0.000486145 -0.000403747 -0.000328979 -0.000261841
+-0.000202332 -0.000150452 -0.000106201 -6.95801e-05 -4.05884e-05 -1.92261e-05
+-5.49316e-06 0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
+-0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
+-0 -0 -0 -0 -0 -0 -0 -0 -0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5.49316e-06
+1.92261e-05 4.05884e-05 6.95801e-05 0.000106201 0.000150452 0.000202332
+0.000261841 0.000328979 0.000403747 0.000486145 0.000576172 0.000673828
+0.000779114 0.000892029 0.00101257 0.00114075 0.00127655 0.00141998
+0.00157104 0.00172974 0.00189606 0.00207001 0.00225159 0.0024408 0.00263763
+0.0028421 0.0030542 0.00327393 0.00350128 0.00373627 0.00397888 0.00422913
+0.004487 0.0047525 0.00502563 0.0053064 0.00559479 0.00589081 0.00619446
+0.00650574 0.00682465 0.00715118 0.00748535 0.00782715 0.00817657 0.00853363
+0.00889832 0.00927063 0.00965057 0.0100381 0.0104333 0.0108362 0.0112466
+0.0116647 0.0120905 0.0125238 0.0129648 0.0134134 0.0138696 0.0143335
+0.014805 0.0152841 0.0157709 0.0162653 0.0167673 0.0172769 0.0177942
+0.0183191 0.0188516 0.0193918 0.0199396 0.020495 0.021058 0.0216287
+0.022207 0.022793 0.0233865 0.0239877 0.0245966 0.025213 0.0258371
+0.0264688 0.0271082 0.0277551 0.0284097 0.029072 0.0297418 0.0304193
+0.0311044 0.0317972 0.0324976 0.0332056 0.0339212 0.0346445 0.0353754
+0.0361139 0.03686 0.0376138 0.0383752 0.0391443 0.039921 0.0407053
+0.0414972 0.0422968 0.0431039 0.0439188 0.0447412 0.0455713 0.046409
+0.0472543 0.0481073 0.0489679 0.0498361 0.050712 0.0515955 0.0524866
+0.0533853 0.0542917 0.0552057 0.0561273 0.0570566 0.0579935 0.058938
+0.0598901 0.0608499 0.0618173 0.0627924 0.063775 0.0647653 0.0657632
+0.0667688 0.067782 0.0688028 0.0698312 0.0708673 0.071911 0.0729623
+0.0740213 0.0750879 0.0761621 0.077244 0.0783334 0.0794305 0.0805353
+0.0816476 0.0827676 0.0838953 0.0850305 0.0861734 0.0873239 0.0884821
+0.0896478 0.0908212 0.0920023 0.0931909 0.0943872 0.0955911 0.0968027
+0.0980219 0.0992487 0.100483 0.101725 0.102975 0.104232 0.105497 0.10677
+0.10805 0.109338 0.110633 0.111936 0.113247 0.114565 0.115891 0.117225
+0.118566 0.119915 0.121272 0.122636 0.124008 0.125387 0.126774 0.128169
+0.129571 0.130981 0.132398 0.133824 0.135256 0.136697 0.138145 0.139601
+0.141064 0.142535 0.144013 0.1455 0.146993 0.148495 0.150004 0.151521
+0.153045 0.154577 0.156117 0.157664 0.159219 0.160781 0.162351 0.163929
+0.165515 0.167108 0.168708 0.170316 0.171932 0.173556 0.175187 0.176826
+0.178472 0.180126 0.181788 0.183457 0.185134 0.186819 0.188511 0.190211
+0.191918 0.193633 0.195356 0.197086 0.198824 0.20057 0.202323 0.204084
+0.205853 0.207629 0.209413 0.211204 0.213003 0.21481 0.216624 0.218446
+0.220275 0.222112 0.223957 0.22581 0.22767 0.229537 0.231413 0.233296
+0.235186 0.237084 0.23899 0.240904 0.242825 0.244753 0.24669 0.248634
+0.250585 0.252545 0.254511 0.256486 0.258468 0.260458 0.262455 0.26446
+0.266473 0.268493 0.270521 0.272556 0.2746 0.27665 0.278709 0.280775
+0.282848 0.28493 0.287019 0.289115 0.291219 0.293331 0.295451 0.297578
+0.299713 0.301855 0.304005 0.306162 0.308328 0.3105 0.312681 0.314869
+0.317065 0.319268 0.321479 0.323698 0.325924 0.328158 0.330399 0.332649
+0.334905 0.33717 0.339442 0.341721 0.344009 0.346304 0.348606 0.350916
+0.353234 0.35556 0.357893 0.360233 0.362582 0.364938 0.367301 0.369673
+0.372051 0.374438 0.376832 0.379234 0.381643 0.38406 0.386485 0.388917
+0.391357 0.393804 0.396259 0.398722 0.401193 0.403671 0.406156 0.40865
+0.41115 0.413659 0.416175 0.418699 0.42123 0.42377 0.426316 0.42887
+0.431432 0.434002 0.436579 0.439164 0.441757 0.444357 0.446964 0.44958
+0.452203 0.454833 0.457472 0.460117 0.462771 0.465432 0.468101 0.470777
+0.473461 0.476153 0.478852 0.481559 0.484274 0.486996 0.489726 0.492463
+0.495208 0.497961 0.500721 0.503489 0.506265 0.509048 0.511839 0.514637
+0.517443 0.520257 0.523078 0.525907 0.528744 0.531588 0.53444 0.537299
+0.540167 0.543041 0.545924 0.548814 0.551711 0.554617 0.55753 0.56045
+0.563378 0.566314 0.569257 0.572209 0.575167 0.578134 0.581107 0.584089
+0.587078 0.590075 0.59308 0.596092 0.599111 0.602139 0.605174 0.608216
+0.611266 0.614324 0.61739 0.620463 0.623544 0.626632 0.629728 0.632832
+0.635943 0.639062 0.642188 0.645323 0.648464 0.651614 0.654771 0.657935
+0.661108 0.664288 0.667475 0.67067 0.673873 0.677084 0.680302 0.683527
+0.686761 0.690002 0.69325 0.696507 0.69977 0.703042 0.706321 0.709608
+0.712902 0.716204 0.719514 0.722831;
+#A 1000 0.726156 0.729488 0.732829 0.736176 0.739532 0.742895 0.746266
+0.749644 0.75303 0.756423 0.759824 0.763233 0.76665 0.770074 0.773506
+0.776945 0.780392 0.783846 0.787309 0.790778 0.794256 0.797741 0.801234
+0.804734;
+#X coords 0 1 1023 -1 200 200 1 0 0;
+#X restore 230 34 graph;
+#X obj 25 27 inlet~;
+#X obj 25 49 clip~ -1 1;
+#X obj 25 71 *~ 512;
+#X obj 25 93 +~ 512;
+#X obj 25 115 tabread4~ \$0-xfer;
+#X obj 25 137 outlet~;
+#N canvas 0 22 334 332 generate-xfer 0;
+#X obj 8 290 tabwrite \$0-xfer;
+#X obj 8 109 / 1024;
+#X obj 8 129 * 2;
+#X obj 8 149 - 1;
+#X obj 8 169 moses 0;
+#X obj 8 191 + 0.1;
+#X obj 8 213 clip -1 0;
+#X obj 68 191 - 0.1;
+#X obj 68 213 clip 0 1;
+#X obj 101 16 inlet threshold;
+#X obj 101 78 count 1024;
+#X obj 128 58 s \$0-thresh;
+#X obj 95 169 r \$0-thresh;
+#X obj 101 38 t b f;
+#X obj 68 236 *;
+#X obj 8 236 *;
+#X obj 8 258 * -1;
+#X text 140 203 <<< deadzone;
+#X text 140 253 <<< smooth by taking exponent;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 4 1 7 0;
+#X connect 5 0 6 0;
+#X connect 6 0 15 0;
+#X connect 6 0 15 1;
+#X connect 7 0 8 0;
+#X connect 8 0 14 0;
+#X connect 8 0 14 1;
+#X connect 9 0 13 0;
+#X connect 10 0 0 1;
+#X connect 10 0 1 0;
+#X connect 12 0 5 1;
+#X connect 12 0 7 1;
+#X connect 13 0 10 0;
+#X connect 13 1 11 0;
+#X connect 14 0 0 0;
+#X connect 15 0 16 0;
+#X connect 16 0 0 0;
+#X restore 26 217 pd generate-xfer;
+#X text 58 196 <<< threshold;
+#X obj 26 173 loadbang;
+#X msg 26 195 0.1;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 4 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 9 0 10 0;
+#X connect 10 0 7 0;
+#X restore 38 137 pd gate;
+#X obj 38 246 adc~ 10;
+#X text 98 137 <<< thresholding to remove any consistent noise in the
+excitation signal;
+#X connect 6 0 7 0;
+#X connect 6 0 0 0;
+#X connect 6 0 0 1;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 10 0 11 0;
+#X connect 11 0 23 0;
+#X connect 12 0 13 0;
+#X connect 14 0 15 0;
+#X connect 15 0 6 0;
+#X connect 23 0 13 0;
+#X connect 24 0 14 0;
+#X connect 24 0 14 1;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/karplusStrong/count.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,30 @@
+#N canvas 592 177 306 227 10;
+#X obj 32 111 f;
+#X obj 57 111 + 1;
+#X obj 57 151 sel 0;
+#X obj 57 171 del 1e-36;
+#X obj 57 131 > 1023;
+#X msg 32 90 0;
+#X obj 19 171 - 1;
+#X obj 19 193 outlet;
+#X obj 90 87 \$1;
+#X obj 90 109 - 1;
+#X obj 90 66 loadbang;
+#X obj 32 48 inlet;
+#X obj 32 69 t b;
+#X text 33 14 temporary replacement for [until] object;
+#X text 67 195 outputs index (0->[N-1]);
+#X connect 0 0 1 0;
+#X connect 1 0 0 1;
+#X connect 1 0 4 0;
+#X connect 1 0 6 0;
+#X connect 2 0 3 0;
+#X connect 3 0 0 0;
+#X connect 4 0 2 0;
+#X connect 5 0 0 0;
+#X connect 6 0 7 0;
+#X connect 8 0 9 0;
+#X connect 9 0 4 1;
+#X connect 10 0 8 0;
+#X connect 11 0 12 0;
+#X connect 12 0 5 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/rubberDuckie/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,247 @@
+#N canvas 275 573 442 207 10;
+#X obj 39 149 dac~ 1 2;
+#X text 218 143 ---------------------------------;
+#X text 218 133 @krighxz / BELA / heavy / 12/2015;
+#X text 242 152 beaglert.cc / enzienaudio.com;
+#X text 35 32 Rubber Duckie;
+#X text 35 42 =============;
+#N canvas 325 86 823 605 duckie 0;
+#X obj 186 510 *~;
+#X obj 306 517 *~;
+#X obj 372 468 noise~;
+#X obj 372 492 bp~ 3000 10;
+#X obj 366 162 abs~;
+#X obj 509 158 sig~ 0;
+#X obj 467 371 +~;
+#X obj 411 210 -~ 0.55;
+#X obj 411 231 /~ 0.2;
+#X obj 411 252 clip~ 0 1;
+#X obj 411 282 *~;
+#X obj 411 308 *~ 1000;
+#X obj 366 334 +~;
+#X obj 366 308 +~ 800;
+#X obj 186 536 *~ 0.2;
+#X obj 366 282 *~ 800;
+#N canvas 568 775 135 226 <~ 0;
+#X obj 20 -43 -~;
+#X obj 20 27 +~ 1e-37;
+#X obj 20 6 clip~ -1e-37 0;
+#X obj 20 -88 inlet~;
+#X obj 64 -87 inlet~;
+#X obj 20 -64 max~;
+#X obj 20 -19 *~ -1;
+#X obj 20 79 outlet~;
+#X obj 20 48 *~ 1e+37;
+#X connect 0 0 6 0;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 0 1;
+#X connect 4 0 5 1;
+#X connect 5 0 0 0;
+#X connect 6 0 2 0;
+#X connect 8 0 7 0;
+#X restore 186 367 pd <~ 0;
+#N canvas 568 775 135 226 <~ 0;
+#X obj 20 -43 -~;
+#X obj 20 27 +~ 1e-37;
+#X obj 20 6 clip~ -1e-37 0;
+#X obj 20 -88 inlet~;
+#X obj 64 -87 inlet~;
+#X obj 20 -64 max~;
+#X obj 20 -19 *~ -1;
+#X obj 20 79 outlet~;
+#X obj 20 48 *~ 1e+37;
+#X connect 0 0 6 0;
+#X connect 1 0 8 0;
+#X connect 2 0 1 0;
+#X connect 3 0 5 0;
+#X connect 4 0 0 1;
+#X connect 4 0 5 1;
+#X connect 5 0 0 0;
+#X connect 6 0 2 0;
+#X connect 8 0 7 0;
+#X restore 482 181 pd <~;
+#X obj 186 428 *~;
+#X obj 225 345 sig~ 1;
+#X obj 186 394 lop~ 10;
+#X text 524 393 << band-limited pulse;
+#X text 10 367 reed stops when overblown >>;
+#X obj 186 460 *~;
+#X obj 186 480 *~;
+#X text 25 470 exp amplitude response >>;
+#X text 537 238 << detune frequency on change of direction;
+#X obj 482 236 *~ -300;
+#X obj 306 485 *~;
+#X obj 306 449 *~ 0.1;
+#X text 448 493 << noise simulates non-oscillating airflow when overblown
+;
+#X obj 186 561 outlet~;
+#N canvas 58 1286 407 525 pulse 0;
+#X obj 83 340 *~;
+#X obj 83 366 *~;
+#X obj 31 366 sig~ 1;
+#X obj 52 419 /~;
+#X obj 67 393 +~;
+#X text 116 366 X^2;
+#X text 97 396 1+X^2;
+#X text 84 421 1/(1+X^2);
+#X obj 83 317 osc~;
+#X obj 167 320 clip~ 0 999999;
+#X obj 52 483 outlet~;
+#X text 271 218 << tweak all this;
+#X text 25 14 based on F04.waveshaping.pulse.pd;
+#X obj 83 84 /~ 2;
+#X obj 167 148 -~;
+#X obj 167 170 /~ 127;
+#X obj 52 452 hip~ 5;
+#X obj 167 202 *~;
+#X obj 167 232 *~;
+#X obj 167 262 *~;
+#X obj 167 294 *~ 1000;
+#X obj 118 125 sig~ 139;
+#X obj 83 58 inlet~;
+#N canvas 331 1377 215 174 _ftom 0;
+#X obj -482 -776 tabread4~ _ftom;
+#X obj -482 -818 /~ 10000;
+#X obj -482 -797 *~ 256;
+#N canvas 0 23 450 278 (subpatch) 0;
+#X array _ftom 256 float 3;
+#A 0 0 27.0762 39.0762 46.0958 51.0762 54.9394 58.0958 60.7645 63.0762
+65.1153 66.9394 68.5894 70.0958 71.4815 72.7645 73.9589 75.0762 76.1258
+77.1153 78.0514 78.9394 79.784 80.5894 81.359 82.0958 82.8025 83.4815
+84.1349 84.7645 85.372 85.9589 86.5266 87.0762 87.609 88.1258 88.6276
+89.1153 89.5897 90.0514 90.5011 90.9394 91.3669 91.784 92.1914 92.5894
+92.9785 93.359 93.7313 94.0958 94.4528 94.8025 95.1453 95.4815 95.8113
+96.1349 96.4525 96.7645 97.0709 97.372 97.6679 97.9589 98.2451 98.5266
+98.8036 99.0762 99.3446 99.609 99.8693 100.126 100.379 100.628 100.873
+101.115 101.354 101.59 101.822 102.051 102.278 102.501 102.722 102.939
+103.154 103.367 103.577 103.784 103.989 104.191 104.392 104.589 104.785
+104.978 105.17 105.359 105.546 105.731 105.914 106.096 106.275 106.453
+106.629 106.803 106.975 107.145 107.314 107.482 107.647 107.811 107.974
+108.135 108.294 108.453 108.609 108.764 108.918 109.071 109.222 109.372
+109.521 109.668 109.814 109.959 110.103 110.245 110.386 110.527 110.666
+110.804 110.94 111.076 111.211 111.345 111.477 111.609 111.74 111.869
+111.998 112.126 112.253 112.379 112.504 112.628 112.751 112.873 112.995
+113.115 113.235 113.354 113.472 113.59 113.706 113.822 113.937 114.051
+114.165 114.278 114.39 114.501 114.612 114.722 114.831 114.939 115.047
+115.154 115.261 115.367 115.472 115.577 115.681 115.784 115.887 115.989
+116.09 116.191 116.292 116.392 116.491 116.589 116.688 116.785 116.882
+116.978 117.074 117.17 117.265 117.359 117.453 117.546 117.639 117.731
+117.823 117.915 118.005 118.096 118.186 118.275 118.364 118.453 118.541
+118.629 118.716 118.803 118.889 118.975 119.06 119.145 119.23 119.314
+119.398 119.482 119.565 119.647 119.729 119.811 119.893 119.974 120.055
+120.135 120.215 120.294 120.374 120.453 120.531 120.609 120.687 120.764
+120.842 120.918 120.995 121.071 121.147 121.222 121.297 121.372 121.446
+121.521 121.594 121.668 121.741 121.814 121.887 121.959 122.031 122.103
+122.174 122.245 122.316 122.386 122.457 122.527 122.596 122.666 122.735
+122.804 122.872 122.94 123.008;
+#X coords 0 127 256 -12 50 50 1 0 0;
+#X restore -546 -793 graph;
+#X obj -482 -838 clip~ 0 10000;
+#X obj -482 -858 inlet~;
+#X obj -482 -755 outlet~;
+#X text -567 -722 shoddy temp replacement for ftom~;
+#X connect 0 0 6 0;
+#X connect 1 0 2 0;
+#X connect 2 0 0 0;
+#X connect 4 0 1 0;
+#X connect 5 0 4 0;
+#X restore 182 125 pd _ftom;
+#X connect 0 0 1 0;
+#X connect 0 0 1 1;
+#X connect 1 0 4 1;
+#X connect 2 0 3 0;
+#X connect 2 0 4 0;
+#X connect 3 0 16 0;
+#X connect 4 0 3 1;
+#X connect 8 0 0 0;
+#X connect 9 0 0 1;
+#X connect 13 0 8 0;
+#X connect 13 0 23 0;
+#X connect 14 0 15 0;
+#X connect 15 0 17 0;
+#X connect 15 0 17 1;
+#X connect 16 0 10 0;
+#X connect 17 0 18 0;
+#X connect 17 0 18 1;
+#X connect 18 0 19 0;
+#X connect 18 0 19 1;
+#X connect 19 0 20 0;
+#X connect 20 0 9 0;
+#X connect 21 0 14 0;
+#X connect 22 0 13 0;
+#X connect 23 0 14 1;
+#X restore 467 394 pd pulse;
+#X obj 366 105 inlet~;
+#X text 295 104 airflow >>;
+#X text 218 118 ('squeeze pressure');
+#X text 13 20 Sound model of a rubber duckie toy;
+#X text 14 51 Hint: use the differential of a continuous signal as
+input for a realistic response;
+#X text 13 29 ==================================;
+#X obj 366 133 lop~ 0.5;
+#X text 423 132 << airflow resistance;
+#X connect 0 0 14 0;
+#X connect 1 0 14 0;
+#X connect 2 0 3 0;
+#X connect 3 0 1 1;
+#X connect 4 0 7 0;
+#X connect 4 0 15 0;
+#X connect 4 0 29 0;
+#X connect 4 0 18 1;
+#X connect 4 0 16 0;
+#X connect 5 0 17 1;
+#X connect 6 0 32 0;
+#X connect 7 0 8 0;
+#X connect 8 0 9 0;
+#X connect 9 0 10 0;
+#X connect 9 0 10 1;
+#X connect 10 0 11 0;
+#X connect 11 0 12 1;
+#X connect 12 0 6 0;
+#X connect 13 0 12 0;
+#X connect 14 0 31 0;
+#X connect 15 0 13 0;
+#X connect 16 0 20 0;
+#X connect 17 0 27 0;
+#X connect 18 0 23 0;
+#X connect 18 0 23 1;
+#X connect 19 0 16 1;
+#X connect 20 0 18 0;
+#X connect 23 0 24 1;
+#X connect 23 0 24 0;
+#X connect 24 0 0 0;
+#X connect 27 0 6 1;
+#X connect 28 0 1 0;
+#X connect 29 0 28 1;
+#X connect 29 0 28 0;
+#X connect 32 0 0 1;
+#X connect 33 0 39 0;
+#X connect 39 0 4 0;
+#X connect 39 0 17 0;
+#X restore 39 127 pd duckie;
+#X obj 39 77 adc~ 10;
+#N canvas 0 22 504 229 differential 0;
+#X obj 27 80 rzero~ 1;
+#X obj 72 57 sig~ 1;
+#X obj 27 152 *~ 44100;
+#X obj 72 131 samplerate~;
+#X obj 72 110 loadbang;
+#X obj 27 25 inlet~;
+#X obj 27 190 outlet~;
+#X text 84 83 y[n] = x[n] - x[n-1];
+#X text 121 57 <<< heavy currently requires signal input to set coefficient
+;
+#X text 91 151 <<< multiply by samplerate to get velocity;
+#X connect 0 0 2 0;
+#X connect 1 0 0 1;
+#X connect 2 0 6 0;
+#X connect 3 0 2 1;
+#X connect 4 0 3 0;
+#X connect 5 0 0 0;
+#X restore 39 101 pd differential;
+#X connect 6 0 0 0;
+#X connect 6 0 0 1;
+#X connect 7 0 8 0;
+#X connect 8 0 6 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/samphold/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,22 @@
+#N canvas 275 504 414 247 10;
+#X obj 55 212 dac~ 1 2;
+#X obj 55 171 *~ 0.1;
+#X obj 55 150 osc~ 440;
+#X obj 55 61 noise~;
+#X obj 55 128 samphold~;
+#X text 51 21 ==================;
+#X text 51 11 Sample and hold FM;
+#X obj 55 85 lop~ 1;
+#X obj 122 107 phasor~ 880;
+#X obj 55 107 *~ 1e+06;
+#X text 193 199 ---------------------------------;
+#X text 193 189 @krighxz / BELA / heavy / 12/2015;
+#X text 217 208 beaglert.cc / enzienaudio.com;
+#X connect 1 0 0 1;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 3 0 7 0;
+#X connect 4 0 2 0;
+#X connect 7 0 9 0;
+#X connect 8 0 4 1;
+#X connect 9 0 4 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/simple-fm/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,42 @@
+#N canvas 275 573 409 282 10;
+#X obj 37 230 dac~ 1 2;
+#X text 175 222 ---------------------------------;
+#X obj 37 102 *~ 1000;
+#X obj 37 199 *~ 0.1;
+#X obj 37 79 adc~ 3;
+#X obj 65 125 adc~ 4;
+#X obj 94 147 adc~ 5;
+#N canvas 81 574 322 252 FMvoice 1;
+#X obj 20 174 +~;
+#X obj 93 116 osc~;
+#X obj 93 157 *~;
+#X obj 93 76 *~;
+#X obj 158 98 *~;
+#X obj 20 225 outlet~;
+#X obj 20 200 osc~;
+#X obj 20 39 inlet~ freq;
+#X obj 108 39 inlet~ harmRatio~;
+#X obj 173 69 inlet~ modIndex~;
+#X connect 0 0 6 0;
+#X connect 1 0 2 0;
+#X connect 2 0 0 1;
+#X connect 3 0 4 0;
+#X connect 3 0 1 0;
+#X connect 4 0 2 1;
+#X connect 6 0 5 0;
+#X connect 7 0 3 0;
+#X connect 7 0 0 0;
+#X connect 8 0 3 1;
+#X connect 9 0 4 1;
+#X restore 37 169 pd FMvoice;
+#X text 33 22 Simple FM;
+#X text 33 32 =========;
+#X text 175 212 @krighxz / BELA / heavy / 12/2015;
+#X text 199 231 beaglert.cc / enzienaudio.com;
+#X connect 2 0 7 0;
+#X connect 3 0 0 1;
+#X connect 3 0 0 0;
+#X connect 4 0 2 0;
+#X connect 5 0 7 1;
+#X connect 6 0 7 2;
+#X connect 7 0 3 0;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/projects/libpd/tableScrubbing/_main.pd	Mon May 30 12:47:17 2016 +0100
@@ -0,0 +1,35 @@
+#N canvas 503 319 861 473 10;
+#N canvas 0 22 450 278 (subpatch) 0;
+#X array exampleTable 65238 float 2;
+#X coords 0 1 65238 -1 200 140 1 0 0;
+#X restore 21 213 graph;
+#X obj 243 329 adc~ 1 2 3;
+#X obj 300 426 dac~;
+#X text 317 264 <<< delete this object before compiling!;
+#X obj 300 392 tabread4~ exampleTable;
+#X msg 243 218 read -resize rt.wav exampleTable;
+#X obj 300 350 lop~ 1;
+#X obj 300 371 *~ 65238;
+#X obj 243 266 soundfiler;
+#X text 489 229 right-click array -> properties -> toggle "save contents"
+;
+#X text 463 216 <<< after loading a file:;
+#X text 17 23 Load sample into table and scrub using analog input;
+#X text 17 33 ===================================================;
+#X text 362 351 <<< avoid zipper noise;
+#X text 362 371 <<< length of sample;
+#X text 317 328 <<< analog input 0 (range 0-1);
+#X text 631 419 ---------------------------------;
+#X text 631 409 @krighxz / BELA / heavy / 12/2015;
+#X text 655 428 beaglert.cc / enzienaudio.com;
+#X text 30 61 N.B. the patch cannot be bigger than 512kb in size \;
+only use this for *very small soundfiles*;
+#X text 29 99 You can modify the render.cpp file to load samples into
+tables using the Heavy API: https://enzienaudio.com/docs/c.html#api-hv-table
+;
+#X connect 1 2 6 0;
+#X connect 4 0 2 0;
+#X connect 4 0 2 1;
+#X connect 5 0 8 0;
+#X connect 6 0 7 0;
+#X connect 7 0 4 0;
Binary file projects/libpd/tableScrubbing/rt.wav has changed