aboutsummaryrefslogtreecommitdiff
path: root/instruments/mafm
diff options
context:
space:
mode:
authorFrank Barknecht <fbar@users.sourceforge.net>2004-04-23 16:22:42 +0000
committerFrank Barknecht <fbar@users.sourceforge.net>2004-04-23 16:22:42 +0000
commit35994ca3a4ef6a136a16cac63b4f68540d0434e1 (patch)
treee7eb586c20c9f678abed90c474529e2a21c6e8a8 /instruments/mafm
This commit was generated by cvs2svn to compensate for changes in r1630,svn2git-root
which included commits to RCS files with non-trunk default branches. svn path=/trunk/abstractions/rradical/; revision=1631
Diffstat (limited to 'instruments/mafm')
-rw-r--r--instruments/mafm/MA_FM.pd1249
-rw-r--r--instruments/mafm/dollars.txt152
-rw-r--r--instruments/mafm/mafm.dat80
-rw-r--r--instruments/mafm/tester.pd43
4 files changed, 1524 insertions, 0 deletions
diff --git a/instruments/mafm/MA_FM.pd b/instruments/mafm/MA_FM.pd
new file mode 100644
index 0000000..4d861fd
--- /dev/null
+++ b/instruments/mafm/MA_FM.pd
@@ -0,0 +1,1249 @@
+#N canvas 726 332 249 426 10;
+#X obj 13 239 vsl 15 128 0 1000 0 0 \$0-rAtt_1 \$0-sAtt_1 A 0 -8 1728
+8 -262144 -1 -1 4400 1;
+#X obj 31 239 vsl 15 128 0 1000 0 0 \$0-rRel_1 \$0-sRel_1 R 0 -8 1728
+8 -262144 -1 -1 10500 1;
+#X obj 72 241 vsl 15 128 0 1000 0 0 \$0-rAtt_2 \$0-sAtt_2 A 0 -8 1728
+8 -262144 -1 -1 5600 1;
+#X obj 90 241 vsl 15 128 0 1000 0 0 \$0-rRel_2 \$0-sRel_2 R 0 -8 1728
+8 -262144 -1 -1 600 1;
+#X obj 133 240 vsl 15 128 0 1000 0 0 \$0-rAtt_3 \$0-sAtt_3 A 0 -8 1728
+8 -262144 -1 -1 900 1;
+#X obj 151 240 vsl 15 128 0 1000 0 0 \$0-rRel_3 \$0-sRel_3 R 0 -8 1728
+8 -262144 -1 -1 6800 1;
+#X obj 430 158 s \$0-NoteVel;
+#X obj 415 179 s \$0-NotePitch;
+#X obj 446 137 s \$0-NoteChnl;
+#N canvas 0 0 1054 904 FM_Feedback 0;
+#X obj 181 178 line~;
+#X obj 181 152 pack 0 50;
+#X obj 181 126 / 100;
+#X obj 165 202 *~;
+#X obj 357 177 line~;
+#X obj 357 151 pack 0 50;
+#X obj 357 125 / 100;
+#X obj 341 201 *~;
+#X obj 532 175 line~;
+#X obj 532 149 pack 0 50;
+#X obj 532 123 / 100;
+#X obj 516 199 *~;
+#X obj 165 225 throw~ In_op1;
+#X obj 341 226 throw~ In_op1;
+#X obj 517 225 throw~ In_op1;
+#X obj 110 153 r~ \$0-Out_Op1;
+#X obj 278 134 r~ \$0-Out_Op2;
+#X obj 465 150 r~ \$0-Out_Op3;
+#X obj 110 183 z~ 1;
+#X obj 296 178 z~ 1;
+#X obj 466 176 z~ 1;
+#X obj 165 330 line~;
+#X obj 165 304 pack 0 50;
+#X obj 165 278 / 100;
+#X obj 149 354 *~;
+#X obj 341 329 line~;
+#X obj 341 303 pack 0 50;
+#X obj 341 277 / 100;
+#X obj 325 353 *~;
+#X obj 516 327 line~;
+#X obj 516 301 pack 0 50;
+#X obj 516 275 / 100;
+#X obj 500 351 *~;
+#X obj 94 305 r~ \$0-Out_Op1;
+#X obj 262 286 r~ \$0-Out_Op2;
+#X obj 449 302 r~ \$0-Out_Op3;
+#X obj 94 335 z~ 1;
+#X obj 280 330 z~ 1;
+#X obj 450 328 z~ 1;
+#X obj 152 496 line~;
+#X obj 152 470 pack 0 50;
+#X obj 152 444 / 100;
+#X obj 136 520 *~;
+#X obj 328 495 line~;
+#X obj 328 469 pack 0 50;
+#X obj 328 443 / 100;
+#X obj 312 519 *~;
+#X obj 503 493 line~;
+#X obj 503 467 pack 0 50;
+#X obj 503 441 / 100;
+#X obj 487 517 *~;
+#X obj 79 451 r~ \$0-Out_Op1;
+#X obj 249 452 r~ \$0-Out_Op2;
+#X obj 436 468 r~ \$0-Out_Op3;
+#X obj 267 496 z~ 1;
+#X obj 437 494 z~ 1;
+#X obj 136 543 throw~ In_op3;
+#X obj 311 540 throw~ In_op3;
+#X obj 488 543 throw~ In_op3;
+#X obj 149 377 throw~ In_op2;
+#X obj 325 378 throw~ In_op2;
+#X obj 503 377 throw~ In_op2;
+#X obj 79 477 z~ 1;
+#X obj 152 422 r \$0-op1->op3;
+#X obj 328 419 r \$0-op2->op3;
+#X obj 503 417 r \$0-op3->op3;
+#X obj 165 256 r \$0-op1->op2;
+#X obj 341 253 r \$0-op2->op2;
+#X obj 516 251 r \$0-op3->op2;
+#X obj 181 106 r \$0-op1->op1;
+#X obj 357 103 r \$0-op2->op1;
+#X obj 532 101 r \$0-op3->op1;
+#X connect 0 0 3 1;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 3 0 12 0;
+#X connect 4 0 7 1;
+#X connect 5 0 4 0;
+#X connect 6 0 5 0;
+#X connect 7 0 13 0;
+#X connect 8 0 11 1;
+#X connect 9 0 8 0;
+#X connect 10 0 9 0;
+#X connect 11 0 14 0;
+#X connect 15 0 18 0;
+#X connect 16 0 19 0;
+#X connect 17 0 20 0;
+#X connect 18 0 3 0;
+#X connect 19 0 7 0;
+#X connect 20 0 11 0;
+#X connect 21 0 24 1;
+#X connect 22 0 21 0;
+#X connect 23 0 22 0;
+#X connect 24 0 59 0;
+#X connect 25 0 28 1;
+#X connect 26 0 25 0;
+#X connect 27 0 26 0;
+#X connect 28 0 60 0;
+#X connect 29 0 32 1;
+#X connect 30 0 29 0;
+#X connect 31 0 30 0;
+#X connect 32 0 61 0;
+#X connect 33 0 36 0;
+#X connect 34 0 37 0;
+#X connect 35 0 38 0;
+#X connect 36 0 24 0;
+#X connect 37 0 28 0;
+#X connect 38 0 32 0;
+#X connect 39 0 42 1;
+#X connect 40 0 39 0;
+#X connect 41 0 40 0;
+#X connect 42 0 56 0;
+#X connect 43 0 46 1;
+#X connect 44 0 43 0;
+#X connect 45 0 44 0;
+#X connect 46 0 57 0;
+#X connect 47 0 50 1;
+#X connect 48 0 47 0;
+#X connect 49 0 48 0;
+#X connect 50 0 58 0;
+#X connect 51 0 62 0;
+#X connect 52 0 54 0;
+#X connect 53 0 55 0;
+#X connect 54 0 46 0;
+#X connect 55 0 50 0;
+#X connect 62 0 42 0;
+#X connect 63 0 41 0;
+#X connect 64 0 45 0;
+#X connect 65 0 49 0;
+#X connect 66 0 23 0;
+#X connect 67 0 27 0;
+#X connect 68 0 31 0;
+#X connect 69 0 2 0;
+#X connect 70 0 6 0;
+#X connect 71 0 10 0;
+#X coords 0 0 0.000952381 0.00111111 120 20 0;
+#X restore 739 301 pd FM_Feedback;
+#X obj 414 219 catch~ \$0-out;
+#X obj 0 19 cnv 30 244 180 empty empty empty 20 12 0 14 -166441 -66577
+0;
+#X obj 136 178 cnv 10 40 1 \$0-r_Op1OutCanvash \$0-s_Op1OutCanvash
+empty 20 12 1728 14 -33289 -262144 0;
+#X obj 120 172 cnv 12 38 16 empty \$0-s_Op1OutCanvash empty 4 6 576
+8 -33289 -262144 0;
+#X obj 121 173 nbx 3 14 0 100 0 0 \$0-outAmt_1 \$0-send-outAmt_1 empty
+0 -6 1728 10 -166441 -1 -1 31 256;
+#X obj 78 130 cnv 15 1 50 \$0-r_Op2OutCanvas \$0-s_Op2OutCanvas empty
+20 12 1728 14 -33289 -262144 0;
+#X obj 80 178 cnv 10 40 1 \$0-r_Op2OutCanvash \$0-s_Op2OutCanvash empty
+20 12 1728 14 -33289 -262144 0;
+#X obj 68 172 cnv 12 38 16 empty \$0-s_Op2OutCanvas empty 4 6 576 8
+-33289 -262144 0;
+#X obj 69 173 nbx 3 14 0 100 0 0 \$0-outAmt_2 \$0-send-outAmt_2 empty
+0 -6 1728 10 -166441 -1 -1 84 256;
+#X obj 28 178 cnv 10 40 1 \$0-r_Op3OutCanvash \$0-s_Op3OutCanvash empty
+20 12 1728 14 -166441 -262144 0;
+#X obj 25 30 cnv 12 40 22 empty \$0-s_Op3FBCanvas empty 4 6 576 8 -166441
+-262144 0;
+#X obj 27 32 cnv 12 36 18 empty empty empty 4 6 0 8 -166441 -262144
+0;
+#X obj 13 22 cnv 12 34 16 empty \$0-s_Op3FBCanvas empty 4 6 576 8 -166441
+-262144 0;
+#X obj 14 23 nbx 3 14 0 100 0 0 \$0-op3->op3 \$0-send-op3->op3 empty
+0 -6 1728 8 -166441 -1 -1 0 256;
+#X obj 25 42 cnv 15 1 50 \$0-r_Op3Op2 \$0-s_Op3Op2 empty 20 12 1728
+14 -33289 -262144 0;
+#X obj 177 171 cnv 12 42 18 empty empty empty 4 6 0 8 -1 -66577 0;
+#X obj 179 173 cnv 12 38 14 empty empty Out 10 7 0 8 -195568 -66577
+0;
+#X obj 25 130 cnv 15 1 50 \$0-r_Op3OutCanvas \$0-s_Op3OutCanvas empty
+20 12 1728 14 -166441 -262144 0;
+#X obj 16 172 cnv 12 38 16 empty \$0-s_Op3OutCanvas empty 4 6 576 8
+-166441 -262144 0;
+#X obj 17 173 nbx 3 14 0 100 0 0 \$0-outAmt_3 \$0-send-outAmt_3 empty
+0 -6 1728 10 -166441 -1 -1 0 256;
+#X obj 26 87 cnv 10 40 1 \$0-r_Op3Op2h \$0-s_Op3Op2h empty 20 12 1728
+14 -33289 -262144 0;
+#X obj 28 135 cnv 10 40 1 \$0-r_Op3Op1h \$0-s_Op3Op1h empty 20 12 1728
+14 -166441 -262144 0;
+#X obj 25 82 cnv 15 1 50 \$0-r_Op3Op2_2 \$0-s_Op3Op2_2 empty 20 12
+1728 14 -166441 -262144 0;
+#X obj 15 81 cnv 12 38 16 empty \$0-s_Op3Op2Canvas empty 4 6 576 8
+-33289 -262144 0;
+#X obj 16 82 nbx 3 14 0 100 0 0 \$0-op3->op2 \$0-send-op3->op2 empty
+0 -6 1728 10 -166441 -1 -1 87 256;
+#X obj 15 129 cnv 12 38 16 empty \$0-s_Op3Op1Canvas empty 4 6 576 8
+-166441 -262144 0;
+#X obj 16 130 nbx 3 14 0 100 0 0 \$0-op3->op1 \$0-send-op3->op1 empty
+0 -6 1728 10 -166441 -1 -1 0 256;
+#X obj 88 135 cnv 10 30 1 \$0-r_Op2Op1h \$0-s_Op2Op1h empty 20 12 1728
+14 -166441 -262144 0;
+#X obj 68 129 cnv 12 38 16 empty \$0-s_Op2Op1Canvas empty 4 6 576 8
+-166441 -262144 0;
+#X obj 69 130 nbx 3 14 0 100 0 0 \$0-op2->op1 \$0-send-op2->op1 empty
+0 -6 1728 10 -166441 -1 -1 0 256;
+#X obj 131 81 cnv 15 1 50 \$0-r_Op1Op2 \$0-s_Op1Op2 empty 20 12 1728
+14 -33289 -262144 0;
+#X obj 120 81 cnv 12 38 16 empty \$0-s_Op1Op2Canvas empty 4 6 576 8
+-33289 -262144 0;
+#X obj 121 82 nbx 3 14 0 100 0 0 \$0-op1->op2 \$0-send-op1->op2 empty
+0 -6 1728 10 -166441 -1 -1 12 256;
+#X obj 131 131 cnv 15 1 40 \$0-r_Op1OutCanvas \$0-s_Op1OutCanvas empty
+20 12 1728 14 -33289 -262144 0;
+#X obj 131 118 cnv 12 40 22 empty \$0-s_Op1FBCanvas empty 4 6 576 8
+-33289 -262144 0;
+#X obj 133 120 cnv 12 36 18 empty empty empty 4 6 0 8 -166441 -262144
+0;
+#X obj 119 128 cnv 12 42 18 empty empty empty 4 6 0 8 -1 -66577 0;
+#X obj 121 130 cnv 12 38 14 empty empty Op_1 4 6 0 8 -233017 -66577
+0;
+#X obj 119 110 cnv 12 34 16 empty \$0-s_Op1FBCanvas empty 4 6 576 8
+-33289 -262144 0;
+#X obj 120 111 nbx 3 14 0 100 0 0 \$0-op1->op1 \$0-send-op1->op1 empty
+0 -6 1728 8 -166441 -1 -1 15 256;
+#X obj 78 70 cnv 12 40 22 empty \$0-s_Op2FBCanvas empty 4 6 576 8 -166441
+-262144 0;
+#X obj 80 72 cnv 12 36 18 empty empty empty 4 6 0 8 -166441 -262144
+0;
+#X obj 66 62 cnv 12 34 16 empty \$0-s_Op2FBCanvas empty 4 6 576 8 -166441
+-262144 0;
+#X obj 67 63 nbx 3 14 0 100 0 0 \$0-op2->op2 \$0-send-op2->op2 empty
+0 -6 1728 8 -166441 -1 -1 0 256;
+#X obj 78 82 cnv 15 1 46 \$0-r_Op2Op1 \$0-s_Op2Op1 empty 20 12 1728
+14 -33289 -262144 0;
+#X obj 90 88 cnv 10 30 1 \$0-r_Op1Op2h \$0-s_Op1Op2h empty 20 12 1728
+14 -33289 -262144 0;
+#X obj 66 80 cnv 12 42 18 empty empty empty 4 6 0 8 -1 -66577 0;
+#X obj 68 82 cnv 12 38 14 empty empty Op_2 4 6 0 8 -233017 -66577 0
+;
+#X obj 121 37 cnv 12 38 16 empty \$0-s_Op1Op3Canvas empty 4 6 576 8
+-33289 -262144 0;
+#X obj 131 38 cnv 15 1 42 \$0-r_Op1Op3_1 \$0-s_Op1Op3_1 empty 20 12
+1728 14 -33289 -262144 0;
+#X obj 122 38 nbx 3 14 0 100 0 0 \$0-op1->op3 \$0-send-op1->op3 empty
+0 -6 1728 10 -166441 -1 -1 7 256;
+#X obj 36 42 cnv 10 32 1 \$0-r_Op2Op3h \$0-s_Op2Op3h empty 20 12 1728
+14 -33289 -262144 0;
+#X obj 90 42 cnv 10 30 1 \$0-r_Op1Op3h \$0-s_Op1Op3h empty 20 12 1728
+14 -33289 -262144 0;
+#X obj 68 37 cnv 12 38 16 empty \$0-s_Op2Op3Canvas empty 4 6 576 8
+-166441 -262144 0;
+#X obj 78 37 cnv 15 1 24 \$0-r_Op2Op3 \$0-s_Op2Op3 empty 20 12 1728
+14 -166441 -262144 0;
+#X obj 69 38 nbx 3 14 0 100 0 0 \$0-op2->op3 \$0-send-op2->op3 empty
+0 -6 1728 10 -166441 -1 -1 0 256;
+#X obj 12 40 cnv 12 42 18 empty empty empty 4 6 0 8 -1 -66577 0;
+#X obj 14 42 cnv 12 38 14 empty empty Op_3 4 6 0 8 -233017 -66577 0
+;
+#X obj 178 148 bng 15 250 50 0 \$0-r_RsFB \$0-s_RsFB Reset 0 -6 1728
+8 -262144 -1 -1;
+#N canvas 536 352 858 576 feedbacksReset 0;
+#X obj 215 122 s \$0-send-op1->op1;
+#X obj 327 122 s \$0-send-op2->op1;
+#X obj 440 123 s \$0-send-op3->op1;
+#X obj 224 187 s \$0-send-op3->op3;
+#X obj 336 188 s \$0-send-op3->op2;
+#X obj 210 260 s \$0-send-op1->op3;
+#X obj 322 261 s \$0-send-op2->op2;
+#X obj 439 263 s \$0-send-op1->op2;
+#X obj 556 264 s \$0-send-op2->op3;
+#X obj 197 320 s \$0-send-outAmt_1;
+#X obj 197 349 s \$0-send-outAmt_2;
+#X obj 207 388 s \$0-send-outAmt_3;
+#X obj 421 48 r \$0-r_RsFB;
+#X msg 420 69 0;
+#X connect 12 0 13 0;
+#X connect 13 0 0 0;
+#X connect 13 0 1 0;
+#X connect 13 0 2 0;
+#X connect 13 0 4 0;
+#X connect 13 0 3 0;
+#X connect 13 0 5 0;
+#X connect 13 0 6 0;
+#X connect 13 0 7 0;
+#X connect 13 0 8 0;
+#X connect 13 0 9 0;
+#X connect 13 0 10 0;
+#X connect 13 0 11 0;
+#X restore 739 280 pd feedbacksReset;
+#N canvas 0 0 1267 910 feedback_Matrix_GUI 0;
+#X obj 30 38 moses 1;
+#X msg 30 69 color 1 0;
+#X msg 101 67 color 12 0;
+#X obj 30 97 s \$0-s_Op1FBCanvas;
+#X obj 30 9 r \$0-op1->op1;
+#X obj 173 36 moses 1;
+#X msg 173 67 color 1 0;
+#X msg 244 65 color 12 0;
+#X obj 173 6 r \$0-op2->op2;
+#X obj 173 95 s \$0-s_Op2FBCanvas;
+#X obj 314 34 moses 1;
+#X msg 314 65 color 1 0;
+#X msg 385 63 color 12 0;
+#X obj 314 4 r \$0-op3->op3;
+#X obj 314 93 s \$0-s_Op3FBCanvas;
+#X obj 727 102 s \$0-s_Op1OutCanvas;
+#X obj 607 102 s \$0-s_Op2OutCanvas;
+#X obj 476 102 s \$0-s_Op3OutCanvas;
+#X obj 476 6 r \$0-outAmt_3;
+#X obj 607 6 r \$0-outAmt_2;
+#X obj 727 5 r \$0-outAmt_1;
+#X msg 644 81 color 12 0;
+#X msg 607 59 color 1 0;
+#X obj 607 30 moses 1;
+#X msg 764 80 color 12 0;
+#X msg 727 58 color 1 0;
+#X obj 727 29 moses 1;
+#X msg 513 81 color 12 0;
+#X msg 476 59 color 1 0;
+#X obj 476 30 moses 1;
+#X msg 73 448 color 12 0;
+#X obj 315 526 s \$0-s_Op1OutCanvash;
+#X obj 78 201 r \$0-outAmt_3;
+#X obj 78 225 >= 1;
+#X obj 73 290 spigot;
+#X obj 78 260 t b f;
+#X obj 204 549 s \$0-s_Op2OutCanvash;
+#X obj 73 576 s \$0-s_Op3OutCanvash;
+#X msg 204 448 color 12 0;
+#X obj 209 225 >= 1;
+#X obj 204 290 spigot;
+#X obj 209 260 t b f;
+#X obj 209 201 r \$0-outAmt_2;
+#X msg 315 447 color 12 0;
+#X obj 320 224 >= 1;
+#X obj 315 289 spigot;
+#X obj 320 259 t b f;
+#X obj 320 200 r \$0-outAmt_1;
+#X obj 17 286 == 0;
+#X obj 17 388 spigot;
+#X obj 17 360 t b f;
+#X msg 17 411 color 1 0;
+#X obj 143 316 == 0;
+#X obj 143 363 spigot;
+#X obj 273 295 == 0;
+#X obj 273 342 spigot;
+#X obj 560 187 r \$0-outAmt_3;
+#X obj 597 376 s \$0-s_Op3Op2_2;
+#X obj 784 463 s \$0-s_Op3Op2;
+#X msg 597 332 color 12 0;
+#X msg 524 332 color 1 0;
+#X obj 530 249 == 0;
+#X obj 524 307 spigot;
+#X obj 675 187 r \$0-op3->op1;
+#X obj 530 270 t b f;
+#X obj 560 210 >= 1;
+#X obj 597 281 spigot;
+#X obj 597 245 t b f;
+#X obj 675 218 >= 1;
+#X obj 712 291 spigot;
+#X obj 712 253 t b f;
+#X obj 676 252 == 0;
+#X obj 524 359 spigot;
+#X obj 784 184 r \$0-op3->op2;
+#X obj 582 404 s \$0-s_Op3Op2;
+#X obj 784 216 >= 1;
+#X msg 784 273 color 12 0;
+#X obj 784 254 spigot;
+#X obj 784 235 t b f;
+#X obj 756 309 == 0;
+#X msg 750 429 color 1 0;
+#X obj 750 351 spigot;
+#X obj 756 330 t b f;
+#X obj 750 382 spigot;
+#X obj 750 406 spigot;
+#X obj 883 113 s \$0-s_Op3Op2h;
+#X obj 884 7 r \$0-op3->op2;
+#X msg 920 81 color 12 0;
+#X msg 883 59 color 1 0;
+#X obj 883 30 moses 1;
+#X obj 882 148 s \$0-s_Op3Op2Canvas;
+#X msg 1049 81 color 12 0;
+#X msg 1012 59 color 1 0;
+#X obj 1012 30 moses 1;
+#X obj 1013 7 r \$0-op3->op1;
+#X obj 1012 150 s \$0-s_Op3Op1Canvas;
+#X obj 1014 113 s \$0-s_Op3Op1h;
+#X msg 1318 122 color 12 0;
+#X msg 1281 87 color 1 0;
+#X obj 1281 58 moses 1;
+#X obj 1281 33 r \$0-op2->op3;
+#X obj 1281 151 s \$0-s_Op2Op3Canvas;
+#X obj 143 339 t b f;
+#X obj 273 319 t b f;
+#X msg 167 500 color 1 0;
+#X obj 143 416 spigot;
+#X obj 273 388 spigot;
+#X obj 273 418 spigot;
+#X msg 287 489 color 1 0;
+#X obj 406 598 r \$0-op3->op1;
+#X obj 112 596 r \$0-outAmt_2;
+#X obj 112 803 s \$0-s_Op2Op1;
+#X obj 262 596 r \$0-op2->op1;
+#X obj 262 628 >= 1;
+#X msg 262 705 color 12 0;
+#X obj 262 686 spigot;
+#X obj 262 667 t b f;
+#X obj 112 628 >= 1;
+#X msg 112 705 color 12 0;
+#X obj 112 686 spigot;
+#X obj 112 667 t b f;
+#X obj 262 802 s \$0-s_Op2Op1h;
+#X obj 406 631 >= 1;
+#X msg 406 708 color 12 0;
+#X obj 406 689 spigot;
+#X obj 406 670 t b f;
+#X obj 48 669 == 0;
+#X obj 207 667 == 0;
+#X obj 367 667 == 0;
+#X msg 33 778 color 1 0;
+#X obj 33 731 spigot;
+#X obj 33 755 spigot;
+#X obj 33 704 t b f;
+#X obj 207 697 t b f;
+#X msg 207 779 color 1 0;
+#X obj 207 732 spigot;
+#X obj 207 756 spigot;
+#X obj 366 699 t b f;
+#X obj 1120 638 s \$0-s_Op2Op1Canvas;
+#X obj 1120 520 r \$0-op2->op1;
+#X msg 1157 609 color 12 0;
+#X msg 1120 574 color 1 0;
+#X obj 1120 545 moses 1;
+#X obj 1005 551 r \$0-op1->op2;
+#X msg 1034 633 color 12 0;
+#X msg 1006 604 color 1 0;
+#X obj 1006 575 moses 1;
+#X obj 1005 709 s \$0-s_Op1Op2h;
+#X obj 553 519 r \$0-op1->op3;
+#X obj 766 568 r \$0-op2->op3;
+#X obj 646 518 r \$0-op1->op2;
+#X obj 588 775 s \$0-s_Op1Op2;
+#X obj 1035 679 s \$0-s_Op1Op2Canvas;
+#X msg 908 614 color 12 0;
+#X msg 875 586 color 1 0;
+#X obj 875 557 moses 1;
+#X obj 875 650 s \$0-s_Op1Op3Canvas;
+#X obj 875 532 r \$0-op1->op3;
+#X obj 901 714 s \$0-s_Op1Op3_1;
+#X obj 549 552 >= 1;
+#X msg 549 629 color 12 0;
+#X obj 549 610 spigot;
+#X obj 549 591 t b f;
+#X obj 645 554 >= 1;
+#X msg 645 631 color 12 0;
+#X obj 645 612 spigot;
+#X obj 646 593 t b f;
+#X obj 507 554 == 0;
+#X msg 588 689 color 1 0;
+#X obj 500 611 spigot;
+#X obj 588 666 spigot;
+#X obj 507 580 t b f;
+#X obj 607 582 t b f;
+#X obj 608 561 == 0;
+#X msg 799 650 color 12 0;
+#X msg 766 622 color 1 0;
+#X obj 766 593 moses 1;
+#X obj 764 686 s \$0-s_Op2Op3Canvas;
+#X obj 748 711 s \$0-s_Op2Op3;
+#X obj 1074 461 s \$0-s_Op1Op3h;
+#X obj 931 476 s \$0-s_Op2Op3h;
+#X obj 934 230 r \$0-op2->op3;
+#X obj 931 275 >= 1;
+#X msg 931 352 color 12 0;
+#X obj 931 333 spigot;
+#X obj 931 314 t b f;
+#X obj 1078 237 r \$0-op1->op3;
+#X obj 1074 270 >= 1;
+#X msg 1074 347 color 12 0;
+#X obj 1074 328 spigot;
+#X obj 1074 309 t b f;
+#X obj 1031 299 == 0;
+#X obj 1031 325 t b f;
+#X msg 1031 423 color 1 0;
+#X obj 1029 375 spigot;
+#X obj 885 303 == 0;
+#X obj 885 329 t b f;
+#X obj 883 403 spigot;
+#X msg 948 436 color 1 0;
+#X connect 0 0 1 0;
+#X connect 0 1 2 0;
+#X connect 1 0 3 0;
+#X connect 2 0 3 0;
+#X connect 4 0 0 0;
+#X connect 5 0 6 0;
+#X connect 5 1 7 0;
+#X connect 6 0 9 0;
+#X connect 7 0 9 0;
+#X connect 8 0 5 0;
+#X connect 10 0 11 0;
+#X connect 10 1 12 0;
+#X connect 11 0 14 0;
+#X connect 12 0 14 0;
+#X connect 13 0 10 0;
+#X connect 18 0 29 0;
+#X connect 19 0 23 0;
+#X connect 20 0 26 0;
+#X connect 21 0 16 0;
+#X connect 22 0 16 0;
+#X connect 23 0 22 0;
+#X connect 23 1 21 0;
+#X connect 24 0 15 0;
+#X connect 25 0 15 0;
+#X connect 26 0 25 0;
+#X connect 26 1 24 0;
+#X connect 27 0 17 0;
+#X connect 28 0 17 0;
+#X connect 29 0 28 0;
+#X connect 29 1 27 0;
+#X connect 30 0 31 0;
+#X connect 30 0 36 0;
+#X connect 30 0 37 0;
+#X connect 32 0 33 0;
+#X connect 33 0 35 0;
+#X connect 33 0 48 0;
+#X connect 34 0 30 0;
+#X connect 35 0 34 0;
+#X connect 35 1 34 1;
+#X connect 38 0 31 0;
+#X connect 38 0 36 0;
+#X connect 39 0 41 0;
+#X connect 39 0 52 0;
+#X connect 40 0 38 0;
+#X connect 41 0 40 0;
+#X connect 41 1 40 1;
+#X connect 42 0 39 0;
+#X connect 43 0 31 0;
+#X connect 44 0 46 0;
+#X connect 44 0 54 0;
+#X connect 45 0 43 0;
+#X connect 46 0 45 0;
+#X connect 46 1 45 1;
+#X connect 47 0 44 0;
+#X connect 48 0 50 0;
+#X connect 49 0 51 0;
+#X connect 50 0 49 0;
+#X connect 50 0 53 0;
+#X connect 50 0 55 0;
+#X connect 50 1 49 1;
+#X connect 50 1 105 1;
+#X connect 50 1 107 1;
+#X connect 51 0 37 0;
+#X connect 52 0 102 0;
+#X connect 53 0 105 0;
+#X connect 54 0 103 0;
+#X connect 55 0 106 0;
+#X connect 56 0 65 0;
+#X connect 59 0 57 0;
+#X connect 59 0 74 0;
+#X connect 60 0 72 0;
+#X connect 61 0 64 0;
+#X connect 61 0 82 0;
+#X connect 62 0 60 0;
+#X connect 63 0 68 0;
+#X connect 64 0 62 0;
+#X connect 64 1 62 1;
+#X connect 64 1 83 1;
+#X connect 65 0 67 0;
+#X connect 65 0 61 0;
+#X connect 66 0 59 0;
+#X connect 67 0 66 0;
+#X connect 67 1 66 1;
+#X connect 68 0 70 0;
+#X connect 68 0 71 0;
+#X connect 69 0 59 0;
+#X connect 70 0 69 0;
+#X connect 70 1 69 1;
+#X connect 71 0 72 1;
+#X connect 71 0 64 0;
+#X connect 71 0 84 1;
+#X connect 71 0 82 0;
+#X connect 72 0 57 0;
+#X connect 73 0 75 0;
+#X connect 75 0 78 0;
+#X connect 75 0 79 0;
+#X connect 76 0 58 0;
+#X connect 77 0 76 0;
+#X connect 78 0 77 0;
+#X connect 78 1 77 1;
+#X connect 79 0 82 0;
+#X connect 80 0 58 0;
+#X connect 81 0 83 0;
+#X connect 82 0 81 0;
+#X connect 82 1 81 1;
+#X connect 83 0 84 0;
+#X connect 84 0 80 0;
+#X connect 86 0 89 0;
+#X connect 87 0 85 0;
+#X connect 87 0 90 0;
+#X connect 88 0 85 0;
+#X connect 88 0 90 0;
+#X connect 89 0 88 0;
+#X connect 89 1 87 0;
+#X connect 91 0 95 0;
+#X connect 91 0 96 0;
+#X connect 92 0 95 0;
+#X connect 92 0 96 0;
+#X connect 93 0 92 0;
+#X connect 93 1 91 0;
+#X connect 94 0 93 0;
+#X connect 97 0 101 0;
+#X connect 98 0 101 0;
+#X connect 99 0 98 0;
+#X connect 99 1 97 0;
+#X connect 100 0 99 0;
+#X connect 102 0 53 0;
+#X connect 102 0 55 0;
+#X connect 102 1 53 1;
+#X connect 102 1 106 1;
+#X connect 103 0 55 0;
+#X connect 103 1 55 1;
+#X connect 104 0 36 0;
+#X connect 105 0 104 0;
+#X connect 106 0 107 0;
+#X connect 107 0 108 0;
+#X connect 108 0 31 0;
+#X connect 109 0 122 0;
+#X connect 110 0 117 0;
+#X connect 112 0 113 0;
+#X connect 113 0 116 0;
+#X connect 113 0 127 0;
+#X connect 114 0 111 0;
+#X connect 114 0 121 0;
+#X connect 115 0 114 0;
+#X connect 116 0 115 0;
+#X connect 116 1 115 1;
+#X connect 117 0 120 0;
+#X connect 117 0 126 0;
+#X connect 118 0 111 0;
+#X connect 119 0 118 0;
+#X connect 120 0 119 0;
+#X connect 120 1 119 1;
+#X connect 122 0 125 0;
+#X connect 122 0 128 0;
+#X connect 123 0 121 0;
+#X connect 124 0 123 0;
+#X connect 125 0 124 0;
+#X connect 125 1 124 1;
+#X connect 126 0 132 0;
+#X connect 127 0 133 0;
+#X connect 128 0 137 0;
+#X connect 129 0 111 0;
+#X connect 130 0 131 0;
+#X connect 131 0 129 0;
+#X connect 132 0 130 0;
+#X connect 132 1 130 1;
+#X connect 133 0 130 0;
+#X connect 133 0 135 0;
+#X connect 133 1 131 1;
+#X connect 133 1 135 1;
+#X connect 134 0 121 0;
+#X connect 135 0 136 0;
+#X connect 136 0 134 0;
+#X connect 137 0 135 0;
+#X connect 137 1 136 1;
+#X connect 139 0 142 0;
+#X connect 140 0 138 0;
+#X connect 141 0 138 0;
+#X connect 142 0 141 0;
+#X connect 142 1 140 0;
+#X connect 143 0 146 0;
+#X connect 144 0 147 0;
+#X connect 144 0 152 0;
+#X connect 145 0 147 0;
+#X connect 145 0 152 0;
+#X connect 146 0 145 0;
+#X connect 146 1 144 0;
+#X connect 148 0 159 0;
+#X connect 149 0 176 0;
+#X connect 150 0 163 0;
+#X connect 153 0 156 0;
+#X connect 153 0 158 0;
+#X connect 154 0 156 0;
+#X connect 154 0 158 0;
+#X connect 155 0 154 0;
+#X connect 155 1 153 0;
+#X connect 157 0 155 0;
+#X connect 159 0 162 0;
+#X connect 159 0 167 0;
+#X connect 160 0 151 0;
+#X connect 161 0 160 0;
+#X connect 162 0 161 0;
+#X connect 162 1 161 1;
+#X connect 163 0 166 0;
+#X connect 163 0 173 0;
+#X connect 164 0 151 0;
+#X connect 165 0 164 0;
+#X connect 166 0 165 0;
+#X connect 166 1 165 1;
+#X connect 167 0 171 0;
+#X connect 168 0 151 0;
+#X connect 169 0 170 0;
+#X connect 170 0 168 0;
+#X connect 171 0 169 0;
+#X connect 171 1 169 1;
+#X connect 172 0 169 0;
+#X connect 172 1 170 1;
+#X connect 173 0 172 0;
+#X connect 174 0 177 0;
+#X connect 174 0 178 0;
+#X connect 175 0 177 0;
+#X connect 175 0 178 0;
+#X connect 176 0 175 0;
+#X connect 176 1 174 0;
+#X connect 181 0 182 0;
+#X connect 182 0 185 0;
+#X connect 182 0 195 0;
+#X connect 183 0 180 0;
+#X connect 184 0 183 0;
+#X connect 185 0 184 0;
+#X connect 185 1 184 1;
+#X connect 186 0 187 0;
+#X connect 187 0 190 0;
+#X connect 187 0 191 0;
+#X connect 188 0 179 0;
+#X connect 188 0 180 0;
+#X connect 189 0 188 0;
+#X connect 190 0 189 0;
+#X connect 190 1 189 1;
+#X connect 191 0 192 0;
+#X connect 192 0 194 0;
+#X connect 192 1 194 1;
+#X connect 193 0 179 0;
+#X connect 194 0 193 0;
+#X connect 194 0 197 0;
+#X connect 195 0 196 0;
+#X connect 196 0 194 0;
+#X connect 196 1 197 1;
+#X connect 197 0 198 0;
+#X connect 198 0 180 0;
+#X restore 740 259 pd feedback_Matrix_GUI;
+#N canvas 0 0 452 302 FM_Pitch 0;
+#X floatatom 278 194 5 0 0 0 Op2_Pitch - -;
+#X floatatom 452 182 5 0 0 0 Op3_Pitch - -;
+#X obj 452 129 line;
+#X obj 453 108 pack \$1 f;
+#X obj 454 67 bang;
+#X floatatom 502 67 5 0 0 0 - - -;
+#X obj 453 88 random 500;
+#X obj 279 145 line;
+#X obj 280 124 pack \$1 f;
+#X obj 281 83 bang;
+#X floatatom 378 116 5 0 0 0 - - -;
+#X obj 280 104 random 500;
+#X floatatom 372 92 5 0 0 0 - - -;
+#X floatatom 537 108 5 0 0 0 - - -;
+#X obj 20 70 mtof;
+#X obj 19 238 line;
+#X obj 21 216 pack \$1 f;
+#X obj 21 196 random 500;
+#X obj 21 95 t b f;
+#X floatatom 95 179 5 0 0 0 - - -;
+#X obj 5 269 s \$0-pitch_Op1;
+#X obj 258 238 s \$0-pitch_Op2;
+#X obj 422 221 s \$0-pitch_Op3;
+#X obj 452 47 r \$0-NoteVel;
+#X obj 283 63 r \$0-NoteVel;
+#X obj 35 16 r \$0-NotePitch;
+#X floatatom 126 243 5 0 0 0 - - -;
+#X obj 452 152 + 2000;
+#X obj 76 156 / 5;
+#X obj 38 44 moses 1;
+#X obj 278 171 + 30;
+#X floatatom 239 99 5 0 0 0 - - -;
+#X floatatom 161 102 5 0 0 0 - - -;
+#X connect 2 0 27 0;
+#X connect 3 0 2 0;
+#X connect 4 0 6 0;
+#X connect 5 0 3 1;
+#X connect 6 0 3 0;
+#X connect 7 0 30 0;
+#X connect 8 0 7 0;
+#X connect 9 0 11 0;
+#X connect 10 0 8 1;
+#X connect 11 0 8 0;
+#X connect 12 0 11 1;
+#X connect 13 0 6 1;
+#X connect 13 0 27 1;
+#X connect 14 0 18 0;
+#X connect 14 0 20 0;
+#X connect 15 0 26 0;
+#X connect 16 0 15 0;
+#X connect 17 0 16 0;
+#X connect 18 0 17 0;
+#X connect 18 1 28 0;
+#X connect 19 0 16 1;
+#X connect 23 0 4 0;
+#X connect 23 0 22 0;
+#X connect 24 0 9 0;
+#X connect 24 0 21 0;
+#X connect 25 0 29 0;
+#X connect 27 0 1 0;
+#X connect 28 0 17 1;
+#X connect 29 1 14 0;
+#X connect 29 1 32 0;
+#X connect 30 0 0 0;
+#X restore 740 325 pd FM_Pitch;
+#X obj 768 39 loadbang;
+#X obj 768 77 s \$0-s_RsFB;
+#X text 463 291 And Envelopes (op1 \, op2 \, op3) -->;
+#N canvas 0 0 1102 748 sound-engine 0;
+#X obj 56 190 cos~;
+#X obj 56 166 +~;
+#X obj 56 121 phasor~;
+#X obj 226 191 cos~;
+#X obj 227 171 +~;
+#X obj 228 128 phasor~;
+#X obj 422 190 cos~;
+#X obj 423 170 +~;
+#X obj 424 122 phasor~;
+#X obj 66 242 sig~;
+#X obj 54 269 vcf~;
+#X floatatom 76 215 5 0 0 0 op1_FiltFeq - -;
+#X floatatom 116 224 5 0 0 0 op1_filtQ - -;
+#X obj 235 240 sig~;
+#X obj 226 265 vcf~;
+#X floatatom 235 211 5 0 0 0 op1_FiltFeq - -;
+#X floatatom 295 223 5 0 5 0 op1_filtQ - -;
+#X obj 432 240 sig~;
+#X obj 423 265 vcf~;
+#X floatatom 432 211 5 0 0 0 op1_FiltFeq - -;
+#X floatatom 494 224 5 0 0 0 op1_filtQ - -;
+#X obj 68 141 catch~ In_op1;
+#X obj 240 148 catch~ In_op2;
+#X obj 436 142 catch~ In_op3;
+#X obj 53 399 send~ \$0-Out_Op1;
+#X obj 225 395 send~ \$0-Out_Op2;
+#X obj 422 396 send~ \$0-Out_Op3;
+#N canvas 0 107 1011 691 AD 0;
+#X obj 432 149 inlet;
+#X obj 430 629 outlet~;
+#X obj 597 145 inlet;
+#X obj 818 164 inlet;
+#X obj 432 192 t b f;
+#X obj 432 399 t3_bpe;
+#X obj 432 334 t b b;
+#X obj 432 429 t3_line~ 0;
+#X obj 432 367 f 0.04;
+#X floatatom 469 283 5 0 0 0 - - -;
+#X obj 488 381 pack 0 0 1 1.5 1 0.5 0 1.5;
+#X text 525 268 pre-delay;
+#X floatatom 597 282 5 0 0 0 - - -;
+#X text 653 267 attack;
+#X floatatom 705 281 5 0 0 0 - - -;
+#X text 748 283 Samples;
+#X text 761 266 sustain;
+#X floatatom 818 278 5 0 0 0 - - -;
+#X text 861 280 Samples;
+#X text 874 263 release;
+#X msg 548 412 set _lin;
+#X msg 548 433 set _linsqrt;
+#X msg 548 454 set _sqrt;
+#X msg 548 474 set _sin;
+#X msg 549 495 set _sinhann;
+#X msg 549 517 set _hann;
+#X msg 350 346 stop;
+#X obj 432 534 fade~ _sin;
+#X connect 0 0 4 0;
+#X connect 2 0 12 0;
+#X connect 3 0 17 0;
+#X connect 4 0 6 0;
+#X connect 4 1 14 0;
+#X connect 5 0 7 0;
+#X connect 5 1 7 1;
+#X connect 6 0 8 0;
+#X connect 6 1 10 0;
+#X connect 7 0 27 0;
+#X connect 8 0 5 0;
+#X connect 9 0 8 1;
+#X connect 10 0 5 0;
+#X connect 12 0 10 3;
+#X connect 14 0 10 5;
+#X connect 17 0 10 7;
+#X connect 20 0 27 0;
+#X connect 21 0 27 0;
+#X connect 22 0 27 0;
+#X connect 23 0 27 0;
+#X connect 24 0 27 0;
+#X connect 25 0 27 0;
+#X connect 26 0 5 0;
+#X connect 27 0 1 0;
+#X restore 735 295 pd AD;
+#X floatatom 823 231 5 0 0 0 - - -;
+#X obj 54 317 *~;
+#X obj 226 312 *~;
+#X obj 422 318 *~;
+#X obj 67 291 r~ \$0-env_1;
+#X obj 735 314 s~ \$0-env_1;
+#X obj 824 314 s~ \$0-env_2;
+#X obj 924 315 s~ \$0-env_3;
+#X obj 253 288 r~ \$0-env_2;
+#X obj 457 294 r~ \$0-env_3;
+#X obj 787 169 moses 1;
+#X obj 55 98 sig~;
+#N canvas 0 107 1011 691 AD 0;
+#X obj 432 149 inlet;
+#X obj 430 629 outlet~;
+#X obj 597 145 inlet;
+#X obj 818 164 inlet;
+#X obj 432 192 t b f;
+#X obj 432 399 t3_bpe;
+#X obj 432 334 t b b;
+#X obj 432 429 t3_line~ 0;
+#X obj 432 367 f 0.04;
+#X floatatom 469 283 5 0 0 0 - - -;
+#X obj 488 381 pack 0 0 1 1.5 1 0.5 0 1.5;
+#X text 525 268 pre-delay;
+#X floatatom 597 282 5 0 0 0 - - -;
+#X text 653 267 attack;
+#X floatatom 705 281 5 0 0 0 - - -;
+#X text 748 283 Samples;
+#X text 761 266 sustain;
+#X floatatom 818 278 5 0 0 0 - - -;
+#X text 861 280 Samples;
+#X text 874 263 release;
+#X msg 548 412 set _lin;
+#X msg 548 433 set _linsqrt;
+#X msg 548 454 set _sqrt;
+#X msg 548 474 set _sin;
+#X msg 549 495 set _sinhann;
+#X msg 549 517 set _hann;
+#X msg 350 346 stop;
+#X obj 432 534 fade~ _sin;
+#X connect 0 0 4 0;
+#X connect 2 0 12 0;
+#X connect 3 0 17 0;
+#X connect 4 0 6 0;
+#X connect 4 1 14 0;
+#X connect 5 0 7 0;
+#X connect 5 1 7 1;
+#X connect 6 0 8 0;
+#X connect 6 1 10 0;
+#X connect 7 0 27 0;
+#X connect 8 0 5 0;
+#X connect 9 0 8 1;
+#X connect 10 0 5 0;
+#X connect 12 0 10 3;
+#X connect 14 0 10 5;
+#X connect 17 0 10 7;
+#X connect 20 0 27 0;
+#X connect 21 0 27 0;
+#X connect 22 0 27 0;
+#X connect 23 0 27 0;
+#X connect 24 0 27 0;
+#X connect 25 0 27 0;
+#X connect 26 0 5 0;
+#X connect 27 0 1 0;
+#X restore 824 295 pd AD;
+#X obj 823 211 * 100;
+#X obj 824 190 / 127;
+#N canvas 0 107 1011 691 AD 0;
+#X obj 432 149 inlet;
+#X obj 430 629 outlet~;
+#X obj 597 145 inlet;
+#X obj 818 164 inlet;
+#X obj 432 192 t b f;
+#X obj 432 399 t3_bpe;
+#X obj 432 334 t b b;
+#X obj 432 429 t3_line~ 0;
+#X obj 432 367 f 0.04;
+#X floatatom 469 283 5 0 0 0 - - -;
+#X obj 488 381 pack 0 0 1 1.5 1 0.5 0 1.5;
+#X text 525 268 pre-delay;
+#X floatatom 597 282 5 0 0 0 - - -;
+#X text 653 267 attack;
+#X floatatom 705 281 5 0 0 0 - - -;
+#X text 748 283 Samples;
+#X text 761 266 sustain;
+#X floatatom 818 278 5 0 0 0 - - -;
+#X text 861 280 Samples;
+#X text 874 263 release;
+#X msg 548 412 set _lin;
+#X msg 548 433 set _linsqrt;
+#X msg 548 454 set _sqrt;
+#X msg 548 474 set _sin;
+#X msg 549 495 set _sinhann;
+#X msg 549 517 set _hann;
+#X msg 350 346 stop;
+#X obj 432 534 fade~ _sin;
+#X connect 0 0 4 0;
+#X connect 2 0 12 0;
+#X connect 3 0 17 0;
+#X connect 4 0 6 0;
+#X connect 4 1 14 0;
+#X connect 5 0 7 0;
+#X connect 5 1 7 1;
+#X connect 6 0 8 0;
+#X connect 6 1 10 0;
+#X connect 7 0 27 0;
+#X connect 8 0 5 0;
+#X connect 9 0 8 1;
+#X connect 10 0 5 0;
+#X connect 12 0 10 3;
+#X connect 14 0 10 5;
+#X connect 17 0 10 7;
+#X connect 20 0 27 0;
+#X connect 21 0 27 0;
+#X connect 22 0 27 0;
+#X connect 23 0 27 0;
+#X connect 24 0 27 0;
+#X connect 25 0 27 0;
+#X connect 26 0 5 0;
+#X connect 27 0 1 0;
+#X restore 924 296 pd AD;
+#X obj 747 252 r \$0-rAtt_1;
+#X obj 760 272 r \$0-rRel_1;
+#X obj 836 251 r \$0-rAtt_2;
+#X obj 849 270 r \$0-rRel_2;
+#X obj 936 256 r \$0-rAtt_3;
+#X obj 949 275 r \$0-rRel_3;
+#X obj 116 203 / 100;
+#X obj 55 76 r \$0-pitch_Op1;
+#X obj 227 104 sig~;
+#X obj 227 82 r \$0-pitch_Op2;
+#X obj 424 102 sig~;
+#X obj 424 80 r \$0-pitch_Op3;
+#X obj 787 148 r \$0-NoteVel;
+#X obj 525 292 r \$0-outAmt_3;
+#X obj 510 374 *~;
+#X obj 525 312 / 100;
+#X obj 309 371 *~;
+#X obj 324 312 / 100;
+#X obj 324 289 r \$0-outAmt_2;
+#X obj 112 352 *~;
+#X obj 127 293 / 100;
+#X obj 127 270 r \$0-outAmt_1;
+#X obj 112 374 throw~ \$0-out;
+#X obj 310 392 throw~ \$0-out;
+#X obj 510 396 throw~ \$0-out;
+#X obj 525 333 pack 0 50;
+#X obj 525 353 line~;
+#X obj 324 332 pack 0 50;
+#X obj 324 352 line~;
+#X obj 127 312 pack 0 50;
+#X obj 127 332 line~;
+#X connect 0 0 10 0;
+#X connect 1 0 0 0;
+#X connect 2 0 1 0;
+#X connect 3 0 14 0;
+#X connect 4 0 3 0;
+#X connect 5 0 4 0;
+#X connect 6 0 18 0;
+#X connect 7 0 6 0;
+#X connect 8 0 7 0;
+#X connect 9 0 10 1;
+#X connect 10 0 29 0;
+#X connect 11 0 9 0;
+#X connect 12 0 10 2;
+#X connect 13 0 14 1;
+#X connect 14 0 30 0;
+#X connect 15 0 13 0;
+#X connect 16 0 14 2;
+#X connect 17 0 18 1;
+#X connect 18 0 31 0;
+#X connect 19 0 17 0;
+#X connect 20 0 18 2;
+#X connect 21 0 1 1;
+#X connect 22 0 4 1;
+#X connect 23 0 7 1;
+#X connect 27 0 33 0;
+#X connect 28 0 27 0;
+#X connect 28 0 40 0;
+#X connect 28 0 43 0;
+#X connect 29 0 24 0;
+#X connect 29 0 63 0;
+#X connect 30 0 25 0;
+#X connect 30 0 60 0;
+#X connect 31 0 26 0;
+#X connect 31 0 58 0;
+#X connect 32 0 29 1;
+#X connect 36 0 30 1;
+#X connect 37 0 31 1;
+#X connect 38 1 42 0;
+#X connect 39 0 2 0;
+#X connect 40 0 34 0;
+#X connect 41 0 28 0;
+#X connect 42 0 41 0;
+#X connect 43 0 35 0;
+#X connect 44 0 27 1;
+#X connect 45 0 27 2;
+#X connect 46 0 40 1;
+#X connect 47 0 40 2;
+#X connect 48 0 43 1;
+#X connect 49 0 43 2;
+#X connect 50 0 12 0;
+#X connect 51 0 39 0;
+#X connect 52 0 5 0;
+#X connect 53 0 52 0;
+#X connect 54 0 8 0;
+#X connect 55 0 54 0;
+#X connect 56 0 38 0;
+#X connect 57 0 59 0;
+#X connect 58 0 68 0;
+#X connect 59 0 69 0;
+#X connect 60 0 67 0;
+#X connect 61 0 71 0;
+#X connect 62 0 61 0;
+#X connect 63 0 66 0;
+#X connect 64 0 73 0;
+#X connect 65 0 64 0;
+#X connect 69 0 70 0;
+#X connect 70 0 58 1;
+#X connect 71 0 72 0;
+#X connect 72 0 60 1;
+#X connect 73 0 74 0;
+#X connect 74 0 63 1;
+#X restore 741 236 pd sound-engine;
+#N canvas 384 294 748 517 saves 0;
+#X obj 564 140 originator \$1 \$0;
+#X obj 564 117 r \$0-originator;
+#X obj 56 96 r \$0-outAmt_1;
+#X obj 56 147 s \$0-send-outAmt_1;
+#X obj 191 97 r \$0-outAmt_2;
+#X obj 191 148 s \$0-send-outAmt_2;
+#X obj 328 97 r \$0-outAmt_3;
+#X obj 328 148 s \$0-send-outAmt_3;
+#X text 54 65 OUT AMOUNTS;
+#X text 56 182 ENVELOPES;
+#X obj 57 210 r \$0-rAtt_1;
+#X obj 173 209 r \$0-rAtt_2;
+#X obj 292 208 r \$0-rAtt_3;
+#X obj 58 283 r \$0-rRel_1;
+#X obj 58 308 commun /Rel_1 \$0;
+#X obj 56 121 commun /outAmt_1 \$0;
+#X obj 191 122 commun /outAmt_2 \$0;
+#X obj 328 122 commun /outAmt_3 \$0;
+#X obj 57 234 commun /Att_1 \$0;
+#X obj 173 233 commun /Att_2 \$0;
+#X obj 292 232 commun /Att_3 \$0;
+#X obj 177 283 r \$0-rRel_2;
+#X obj 177 308 commun /Rel_2 \$0;
+#X obj 302 283 r \$0-rRel_3;
+#X obj 302 308 commun /Rel_3 \$0;
+#X obj 600 39 inlet;
+#X obj 58 330 s \$0-sRel_1;
+#X obj 57 257 s \$0-sAtt_1;
+#X obj 173 256 s \$0-sAtt_2;
+#X obj 292 255 s \$0-sAtt_3;
+#X obj 302 330 s \$0-sRel_3;
+#X obj 177 330 s \$0-sRel_2;
+#X obj 600 65 s \$0-originator;
+#X msg 545 217 substate \$1;
+#X obj 545 243 s \$0-originator;
+#X obj 467 223 t b f;
+#X obj 523 178 r \$0-preset-out;
+#X msg 474 248 set;
+#N canvas 358 497 899 308 ops 0;
+#X obj 15 54 commun /op3-op3 \$0;
+#X obj 153 54 commun /op3-op2 \$0;
+#X obj 296 54 commun /op3-op1 \$0;
+#X obj 14 151 commun /op2-op1 \$0;
+#X obj 152 149 commun /op2-op2 \$0;
+#X obj 290 150 commun /op2-op3 \$0;
+#X obj 12 242 commun /op1-op1 \$0;
+#X obj 150 240 commun /op1-op2 \$0;
+#X obj 288 241 commun /op1-op3 \$0;
+#X obj 15 82 s \$0-send-op3->op3;
+#X obj 15 29 r \$0-op3->op3;
+#X obj 153 24 s \$0-send-op3->op2;
+#X obj 153 84 r \$0-op3->op2;
+#X obj 296 26 s \$0-send-op3->op1;
+#X obj 296 84 r \$0-op3->op1;
+#X obj 14 121 s \$0-send-op2->op1;
+#X obj 14 181 r \$0-op2->op1;
+#X obj 152 179 r \$0-op2->op2;
+#X obj 152 119 s \$0-send-op2->op2;
+#X obj 290 120 s \$0-send-op2->op3;
+#X obj 288 211 s \$0-send-op1->op3;
+#X obj 150 210 s \$0-send-op1->op2;
+#X obj 12 212 s \$0-send-op1->op1;
+#X obj 290 180 r \$0-op2->op3;
+#X obj 288 271 r \$0-op1->op3;
+#X obj 150 270 r \$0-op1->op2;
+#X obj 12 272 r \$0-op1->op1;
+#X connect 0 0 9 0;
+#X connect 1 0 11 0;
+#X connect 2 0 13 0;
+#X connect 3 0 15 0;
+#X connect 4 0 18 0;
+#X connect 5 0 19 0;
+#X connect 6 0 22 0;
+#X connect 7 0 21 0;
+#X connect 8 0 20 0;
+#X connect 10 0 0 0;
+#X connect 12 0 1 0;
+#X connect 14 0 2 0;
+#X connect 16 0 3 0;
+#X connect 17 0 4 0;
+#X connect 23 0 5 0;
+#X connect 24 0 8 0;
+#X connect 25 0 7 0;
+#X connect 26 0 6 0;
+#X restore 60 370 pd ops;
+#X connect 1 0 0 0;
+#X connect 2 0 15 0;
+#X connect 4 0 16 0;
+#X connect 6 0 17 0;
+#X connect 10 0 18 0;
+#X connect 11 0 19 0;
+#X connect 12 0 20 0;
+#X connect 13 0 14 0;
+#X connect 14 0 26 0;
+#X connect 15 0 3 0;
+#X connect 16 0 5 0;
+#X connect 17 0 7 0;
+#X connect 18 0 27 0;
+#X connect 19 0 28 0;
+#X connect 20 0 29 0;
+#X connect 21 0 22 0;
+#X connect 22 0 31 0;
+#X connect 23 0 24 0;
+#X connect 24 0 30 0;
+#X connect 25 0 0 1;
+#X connect 33 0 34 0;
+#X connect 35 0 37 0;
+#X connect 35 1 33 0;
+#X connect 36 0 35 0;
+#X connect 37 0 34 0;
+#X restore 741 213 pd saves;
+#X obj 414 239 outlet~;
+#X obj 417 97 inlet;
+#X obj 460 96 inlet;
+#X obj 516 96 inlet;
+#X obj 741 190 inlet;
+#X floatatom 174 237 5 0 0 2 preset #0-preset-in #0-preset-out;
+#X connect 10 0 77 0;
+#X connect 72 0 73 0;
+#X connect 78 0 7 0;
+#X connect 79 0 6 0;
+#X connect 80 0 8 0;
+#X connect 81 0 76 0;
+#X coords 0 0 1 1 248 380 1;
diff --git a/instruments/mafm/dollars.txt b/instruments/mafm/dollars.txt
new file mode 100644
index 0000000..15d7522
--- /dev/null
+++ b/instruments/mafm/dollars.txt
@@ -0,0 +1,152 @@
+#X obj 460 183 vsl 15 128 0 1000 0 0 \$0-rAtt_1 \$0-sAtt_1 A 0 -8 1728
+#X obj 478 183 vsl 15 128 0 1000 0 0 \$0-rRel_1 \$0-sRel_1 R 0 -8 1728
+#X obj 519 185 vsl 15 128 0 1000 0 0 \$0-rAtt_2 \$0-sAtt_2 A 0 -8 1728
+#X obj 537 185 vsl 15 128 0 1000 0 0 \$0-rRel_2 \$0-sRel_2 R 0 -8 1728
+#X obj 580 184 vsl 15 128 0 1000 0 0 \$0-rAtt_3 \$0-sAtt_3 A 0 -8 1728
+#X obj 598 184 vsl 15 128 0 1000 0 0 \$0-rRel_3 \$0-sRel_3 R 0 -8 1728
+#X obj 180 143 s \$0-NoteVel;
+#X obj 165 164 s \$0-NotePitch;
+#X obj 196 122 s \$0-NoteChnl;
+#X obj 152 422 r \$0-op1->op3;
+#X obj 328 419 r \$0-op2->op3;
+#X obj 503 417 r \$0-op3->op3;
+#X obj 165 256 r \$0-op1->op2;
+#X obj 341 253 r \$0-op2->op2;
+#X obj 516 251 r \$0-op3->op2;
+#X obj 181 106 r \$0-op1->op1;
+#X obj 357 103 r \$0-op2->op1;
+#X obj 532 101 r \$0-op3->op1;
+#X obj 578 146 cnv 10 40 1 \$0-r_Op1OutCanvash \$0-s_Op1OutCanvash
+#X obj 562 140 cnv 12 38 16 empty \$0-s_Op1OutCanvash empty 4 6 576
+#X obj 563 141 nbx 3 14 0 100 0 0 \$0-outAmt_1 \$0-send-outAmt_1 empty
+#X obj 520 98 cnv 15 1 50 \$0-r_Op2OutCanvas \$0-s_Op2OutCanvas empty
+#X obj 522 146 cnv 10 40 1 \$0-r_Op2OutCanvash \$0-s_Op2OutCanvash
+#X obj 510 140 cnv 12 38 16 empty \$0-s_Op2OutCanvas empty 4 6 576
+#X obj 511 141 nbx 3 14 0 100 0 0 \$0-outAmt_2 \$0-send-outAmt_2 empty
+#X obj 470 146 cnv 10 40 1 \$0-r_Op3OutCanvash \$0-s_Op3OutCanvash
+#X obj 467 -2 cnv 12 40 22 empty \$0-s_Op3FBCanvas empty 4 6 576 8
+#X obj 455 -10 cnv 12 34 16 empty \$0-s_Op3FBCanvas empty 4 6 576 8
+#X obj 456 -9 nbx 3 14 0 100 0 0 \$0-op3->op3 \$0-send-op3->op3 empty
+#X obj 467 10 cnv 15 1 50 \$0-r_Op3Op2 \$0-s_Op3Op2 empty 20 12 1728
+#X obj 467 98 cnv 15 1 50 \$0-r_Op3OutCanvas \$0-s_Op3OutCanvas empty
+#X obj 458 140 cnv 12 38 16 empty \$0-s_Op3OutCanvas empty 4 6 576
+#X obj 459 141 nbx 3 14 0 100 0 0 \$0-outAmt_3 \$0-send-outAmt_3 empty
+#X obj 468 55 cnv 10 40 1 \$0-r_Op3Op2h \$0-s_Op3Op2h empty 20 12 1728
+#X obj 470 103 cnv 10 40 1 \$0-r_Op3Op1h \$0-s_Op3Op1h empty 20 12
+#X obj 467 50 cnv 15 1 50 \$0-r_Op3Op2_2 \$0-s_Op3Op2_2 empty 20 12
+#X obj 457 49 cnv 12 38 16 empty \$0-s_Op3Op2Canvas empty 4 6 576 8
+#X obj 458 50 nbx 3 14 0 100 0 0 \$0-op3->op2 \$0-send-op3->op2 empty
+#X obj 457 97 cnv 12 38 16 empty \$0-s_Op3Op1Canvas empty 4 6 576 8
+#X obj 458 98 nbx 3 14 0 100 0 0 \$0-op3->op1 \$0-send-op3->op1 empty
+#X obj 530 103 cnv 10 30 1 \$0-r_Op2Op1h \$0-s_Op2Op1h empty 20 12
+#X obj 510 97 cnv 12 38 16 empty \$0-s_Op2Op1Canvas empty 4 6 576 8
+#X obj 511 98 nbx 3 14 0 100 0 0 \$0-op2->op1 \$0-send-op2->op1 empty
+#X obj 573 49 cnv 15 1 50 \$0-r_Op1Op2 \$0-s_Op1Op2 empty 20 12 1728
+#X obj 562 49 cnv 12 38 16 empty \$0-s_Op1Op2Canvas empty 4 6 576 8
+#X obj 563 50 nbx 3 14 0 100 0 0 \$0-op1->op2 \$0-send-op1->op2 empty
+#X obj 573 99 cnv 15 1 40 \$0-r_Op1OutCanvas \$0-s_Op1OutCanvas empty
+#X obj 573 86 cnv 12 40 22 empty \$0-s_Op1FBCanvas empty 4 6 576 8
+#X obj 561 78 cnv 12 34 16 empty \$0-s_Op1FBCanvas empty 4 6 576 8
+#X obj 562 79 nbx 3 14 0 100 0 0 \$0-op1->op1 \$0-send-op1->op1 empty
+#X obj 520 38 cnv 12 40 22 empty \$0-s_Op2FBCanvas empty 4 6 576 8
+#X obj 508 30 cnv 12 34 16 empty \$0-s_Op2FBCanvas empty 4 6 576 8
+#X obj 509 31 nbx 3 14 0 100 0 0 \$0-op2->op2 \$0-send-op2->op2 empty
+#X obj 520 50 cnv 15 1 46 \$0-r_Op2Op1 \$0-s_Op2Op1 empty 20 12 1728
+#X obj 532 56 cnv 10 30 1 \$0-r_Op1Op2h \$0-s_Op1Op2h empty 20 12 1728
+#X obj 563 5 cnv 12 38 16 empty \$0-s_Op1Op3Canvas empty 4 6 576 8
+#X obj 573 6 cnv 15 1 42 \$0-r_Op1Op3_1 \$0-s_Op1Op3_1 empty 20 12
+#X obj 564 6 nbx 3 14 0 100 0 0 \$0-op1->op3 \$0-send-op1->op3 empty
+#X obj 478 10 cnv 10 32 1 \$0-r_Op2Op3h \$0-s_Op2Op3h empty 20 12 1728
+#X obj 532 10 cnv 10 30 1 \$0-r_Op1Op3h \$0-s_Op1Op3h empty 20 12 1728
+#X obj 510 5 cnv 12 38 16 empty \$0-s_Op2Op3Canvas empty 4 6 576 8
+#X obj 520 5 cnv 15 1 24 \$0-r_Op2Op3 \$0-s_Op2Op3 empty 20 12 1728
+#X obj 511 6 nbx 3 14 0 100 0 0 \$0-op2->op3 \$0-send-op2->op3 empty
+#X obj 621 120 bng 15 250 50 0 \$0-r_RsFB \$0-s_RsFB ResetFeedback
+#X obj 215 122 s \$0-send-op1->op1;
+#X obj 327 122 s \$0-send-op2->op1;
+#X obj 440 123 s \$0-send-op3->op1;
+#X obj 224 187 s \$0-send-op3->op3;
+#X obj 336 188 s \$0-send-op3->op2;
+#X obj 210 260 s \$0-send-op1->op3;
+#X obj 322 261 s \$0-send-op2->op2;
+#X obj 439 263 s \$0-send-op1->op2;
+#X obj 556 264 s \$0-send-op2->op3;
+#X obj 197 320 s \$0-send-outAmt_1;
+#X obj 197 349 s \$0-send-outAmt_2;
+#X obj 207 388 s \$0-send-outAmt_3;
+#X obj 421 48 r \$0-r_RsFB;
+#X obj 30 97 s \$0-s_Op1FBCanvas;
+#X obj 30 9 r \$0-op1->op1;
+#X obj 173 6 r \$0-op2->op2;
+#X obj 173 95 s \$0-s_Op2FBCanvas;
+#X obj 314 4 r \$0-op3->op3;
+#X obj 314 93 s \$0-s_Op3FBCanvas;
+#X obj 727 102 s \$0-s_Op1OutCanvas;
+#X obj 607 102 s \$0-s_Op2OutCanvas;
+#X obj 476 102 s \$0-s_Op3OutCanvas;
+#X obj 476 6 r \$0-outAmt_3;
+#X obj 607 6 r \$0-outAmt_2;
+#X obj 727 5 r \$0-outAmt_1;
+#X obj 315 526 s \$0-s_Op1OutCanvash;
+#X obj 78 201 r \$0-outAmt_3;
+#X obj 204 549 s \$0-s_Op2OutCanvash;
+#X obj 73 576 s \$0-s_Op3OutCanvash;
+#X obj 209 201 r \$0-outAmt_2;
+#X obj 320 200 r \$0-outAmt_1;
+#X obj 560 187 r \$0-outAmt_3;
+#X obj 597 376 s \$0-s_Op3Op2_2;
+#X obj 784 463 s \$0-s_Op3Op2;
+#X obj 675 187 r \$0-op3->op1;
+#X obj 784 184 r \$0-op3->op2;
+#X obj 582 404 s \$0-s_Op3Op2;
+#X obj 883 113 s \$0-s_Op3Op2h;
+#X obj 884 7 r \$0-op3->op2;
+#X obj 882 148 s \$0-s_Op3Op2Canvas;
+#X obj 1013 7 r \$0-op3->op1;
+#X obj 1012 150 s \$0-s_Op3Op1Canvas;
+#X obj 1014 113 s \$0-s_Op3Op1h;
+#X obj 1281 33 r \$0-op2->op3;
+#X obj 1281 151 s \$0-s_Op2Op3Canvas;
+#X obj 406 598 r \$0-op3->op1;
+#X obj 112 596 r \$0-outAmt_2;
+#X obj 112 803 s \$0-s_Op2Op1;
+#X obj 262 596 r \$0-op2->op1;
+#X obj 262 802 s \$0-s_Op2Op1h;
+#X obj 1120 638 s \$0-s_Op2Op1Canvas;
+#X obj 1120 520 r \$0-op2->op1;
+#X obj 1005 551 r \$0-op1->op2;
+#X obj 1005 709 s \$0-s_Op1Op2h;
+#X obj 553 519 r \$0-op1->op3;
+#X obj 766 568 r \$0-op2->op3;
+#X obj 646 518 r \$0-op1->op2;
+#X obj 588 775 s \$0-s_Op1Op2;
+#X obj 1035 679 s \$0-s_Op1Op2Canvas;
+#X obj 875 650 s \$0-s_Op1Op3Canvas;
+#X obj 875 532 r \$0-op1->op3;
+#X obj 901 714 s \$0-s_Op1Op3_1;
+#X obj 764 686 s \$0-s_Op2Op3Canvas;
+#X obj 748 711 s \$0-s_Op2Op3;
+#X obj 1074 461 s \$0-s_Op1Op3h;
+#X obj 931 476 s \$0-s_Op2Op3h;
+#X obj 934 230 r \$0-op2->op3;
+#X obj 1078 237 r \$0-op1->op3;
+#X obj 17 258 s \$0-pitch_Op1;
+#X obj 277 214 s \$0-pitch_Op2;
+#X obj 452 200 s \$0-pitch_Op3;
+#X obj 452 47 r \$0-NoteVel;
+#X obj 283 63 r \$0-NoteVel;
+#X obj 35 16 r \$0-NotePitch;
+#X obj 801 87 s \$0-s_RsFB;
+#X obj 747 252 r \$0-rAtt_1;
+#X obj 760 272 r \$0-rRel_1;
+#X obj 836 251 r \$0-rAtt_2;
+#X obj 849 270 r \$0-rRel_2;
+#X obj 936 256 r \$0-rAtt_3;
+#X obj 949 275 r \$0-rRel_3;
+#X obj 55 76 r \$0-pitch_Op1;
+#X obj 227 82 r \$0-pitch_Op2;
+#X obj 424 80 r \$0-pitch_Op3;
+#X obj 787 148 r \$0-NoteVel;
+#X obj 525 292 r \$0-outAmt_3;
+#X obj 324 289 r \$0-outAmt_2;
+#X obj 127 270 r \$0-outAmt_1;
diff --git a/instruments/mafm/mafm.dat b/instruments/mafm/mafm.dat
new file mode 100644
index 0000000..fc5a17c
--- /dev/null
+++ b/instruments/mafm/mafm.dat
@@ -0,0 +1,80 @@
+0 , /outAmt_3 , 0
+0 , /outAmt_2 , 0
+0 , /outAmt_1 , 0
+/fm 4 , /op3-op1 , 0
+/fm 4 , /op1-op1 , 0
+/fm 4 , /Rel_2 , 47.2441
+/fm 4 , /op1-op3 , 0
+/fm 4 , /outAmt_3 , 34
+/fm 4 , /Att_3 , 70.8661
+/fm 4 , /op3-op2 , 0
+/fm 4 , /Rel_1 , 826.772
+/fm 4 , /op2-op1 , 0
+/fm 4 , /op2-op2 , 0
+/fm 4 , /op3-op3 , 0
+/fm 4 , /op2-op3 , 0
+/fm 4 , /op1-op2 , 8
+/fm 4 , /Rel_3 , 314.961
+/fm 4 , /Att_2 , 440.945
+/fm 4 , /outAmt_2 , 46
+/fm 4 , /outAmt_1 , 38
+/fm 0 , /op3-op1 , 0
+/fm 0 , /op1-op1 , 0
+/fm 0 , /Rel_2 , 1000
+/fm 0 , /op1-op3 , 0
+/fm 0 , /outAmt_3 , 0
+/fm 0 , /Att_3 , 291.339
+/fm 0 , /Att_1 , 94.4882
+/fm 0 , /op3-op2 , 0
+/fm 0 , /Rel_1 , 1000
+/fm 0 , /op2-op1 , 0
+/fm 0 , /op2-op2 , 0
+/fm 0 , /op3-op3 , 0
+/fm 0 , /op2-op3 , 0
+/fm 0 , /op1-op2 , 0
+/fm 0 , /Rel_3 , 1000
+/fm 0 , /Att_2 , 456.693
+/fm 0 , /outAmt_2 , 0
+/fm 0 , /outAmt_1 , 0
+/fm 2 , /outAmt_3 , 0
+/fm 2 , /Att_1 , 118.11
+/fm 2 , /op2-op1 , 0
+/fm 2 , /op2-op2 , 0
+/fm 2 , /op3-op3 , 2
+/fm 2 , /op2-op3 , 6
+/fm 2 , /op1-op2 , 40
+/fm 2 , /outAmt_2 , 80
+/fm 2 , /outAmt_1 , 44
+/fm 3 , /op3-op1 , 0
+/fm 3 , /op1-op1 , 0
+/fm 3 , /op1-op3 , 0
+/fm 3 , /outAmt_3 , 0
+/fm 3 , /op3-op2 , 31
+/fm 3 , /op2-op1 , 22
+/fm 3 , /op2-op2 , 0
+/fm 3 , /op3-op3 , 0
+/fm 3 , /op2-op3 , 0
+/fm 3 , /op1-op2 , 0
+/fm 3 , /outAmt_2 , 0
+/fm 3 , /outAmt_1 , 92
+/fm 1 , /op3-op1 , 0
+/fm 1 , /op1-op1 , 0
+/fm 1 , /Rel_2 , 244.094
+/fm 1 , /op1-op3 , 0
+/fm 1 , /outAmt_3 , 100
+/fm 1 , /Att_3 , 275.591
+/fm 1 , /Att_1 , 346.457
+/fm 1 , /op3-op2 , 0
+/fm 1 , /Rel_1 , 708.661
+/fm 1 , /op2-op1 , 0
+/fm 1 , /op2-op2 , 0
+/fm 1 , /op3-op3 , 0
+/fm 1 , /op2-op3 , 0
+/fm 1 , /op1-op2 , 0
+/fm 1 , /Rel_3 , 496.063
+/fm 1 , /Att_2 , 220.472
+/fm 1 , /outAmt_2 , 0
+/fm 1 , /outAmt_1 , 0
+/one 0 , /outAmt_3 , 0
+/one 0 , /outAmt_2 , 0
+/one 0 , /outAmt_1 , 0
diff --git a/instruments/mafm/tester.pd b/instruments/mafm/tester.pd
new file mode 100644
index 0000000..ffc0af6
--- /dev/null
+++ b/instruments/mafm/tester.pd
@@ -0,0 +1,43 @@
+#N canvas 88 129 1018 578 10;
+#X obj 50 46 careGUI;
+#X obj 633 141 MA_FM /fm;
+#X obj 101 439 catch~ out;
+#X obj 84 465 ezdac~;
+#X obj 634 536 throw~ out;
+#X obj 627 44 metro 500;
+#X obj 617 90 makenote 90 300;
+#X obj 626 22 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
+;
+#X msg 621 67 60;
+#X obj 741 62 chordmap 60;
+#X obj 741 21 random 12;
+#X obj 743 43 + 60;
+#X obj 89 243 netcontrol /fm op1-op3;
+#X obj 298 351 sendOSC;
+#X obj 873 115 dumpOSC 3010;
+#X msg 313 314 connect localhost 3010;
+#X msg 354 334 disconnect;
+#X obj 911 168 print OSC;
+#X text 57 24 Click FILE and open mafm.dat \, then RESTORE;
+#X obj 298 242 netcontrol /fm outAmt_2;
+#X obj 745 91 notein;
+#X connect 1 0 4 0;
+#X connect 2 0 3 0;
+#X connect 2 0 3 1;
+#X connect 5 0 8 0;
+#X connect 5 0 10 0;
+#X connect 6 0 1 0;
+#X connect 6 1 1 1;
+#X connect 7 0 5 0;
+#X connect 9 0 6 0;
+#X connect 10 0 11 0;
+#X connect 11 0 9 0;
+#X connect 12 0 13 0;
+#X connect 14 0 1 3;
+#X connect 14 0 17 0;
+#X connect 15 0 13 0;
+#X connect 16 0 13 0;
+#X connect 19 0 13 0;
+#X connect 20 0 1 0;
+#X connect 20 1 1 1;
+#X connect 20 2 1 2;