<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%> Untitled Document

 

 

 

Description

Sound / Max

Serial / Pic Programming

Design & Construction

The Musical Curtain

Images

Things To Remember

 

 
 

 

Sound / Max/Msp

Bird and chime sounds are created using Fiddle Msp Object in Max/Msp which is a graphical programming environment for developing real-time musical applications. MSP connections establish a relationship between objects and that relationship is used to calculate the audio information necessary at a particular instant. The configuration of MSP objects is known as the signal network. Fiddle is a maximum-likelihood pitch detector similar that can also be used to obtain a raw list of sinusoidal components. Bonk performs a bounded-Q analysis of the input signal to obtain onsets of percussion instruments.

Code in text form

  • max v2;
    #N vpatcher 35 44 1065 736;
    #P origin 77 312;
    #P button 655 523 15 0;
    #P button 672 548 15 0;
    #P window setfont "Sans Serif" 9.;
    #P window linecount 1;
    #P message 598 559 29 196617 stop;
    #P newex 620 576 61 196617 delay 5000;
    #P newex 585 536 41 196617 sel 1 0;
    #P newex 583 503 40 196617 change;
    #P newex 587 438 23 196617 abs;
    #P newex 585 480 30 196617 > 10;
    #P number 586 458 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 598 313 27 196617 -;
    #P newex 595 287 27 196617 t i i;
    #P button 548 423 15 0;
    #P button 565 448 15 0;
    #P message 491 459 29 196617 stop;
    #P newex 513 476 61 196617 delay 5000;
    #P newex 478 436 41 196617 sel 1 0;
    #P newex 476 403 40 196617 change;
    #P newex 480 338 23 196617 abs;
    #P newex 478 380 30 196617 > 10;
    #P number 479 358 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 557 312 27 196617 -;
    #P newex 554 286 27 196617 t i i;
    #P button 707 435 15 0;
    #P button 724 460 15 0;
    #P message 650 471 29 196617 stop;
    #P newex 672 488 61 196617 delay 5000;
    #P newex 637 448 41 196617 sel 1 0;
    #P newex 635 415 40 196617 change;
    #P newex 639 350 23 196617 abs;
    #P newex 637 392 30 196617 > 10;
    #P number 638 370 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 633 304 27 196617 -;
    #P newex 630 278 27 196617 t i i;
    #P number 643 254 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P number 605 253 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P number 569 254 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P number 533 252 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P button 526 201 15 0;
    #P newex 546 228 64 196617 unpack i i i i;
    #P newex 549 203 55 196617 zl group 4;
    #P message 906 235 20 196617 10;
    #P newex 902 260 59 196617 pgmout a 5;
    #P button 342 413 15 0;
    #P button 308 411 15 0;
    #P newex 439 619 21 196617 t 0;
    #P newex 324 604 21 196617 t 1;
    #P message 394 447 29 196617 stop;
    #P newex 416 464 61 196617 delay 5000;
    #P newex 381 424 41 196617 sel 1 0;
    #P newex 379 391 40 196617 change;
    #P newex 383 328 23 196617 abs;
    #P newex 381 370 30 196617 > 10;
    #P number 382 348 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 515 308 27 196617 -;
    #P newex 515 282 27 196617 t i i;
    #P toggle 685 277 15 0;
    #P button 694 238 15 0;
    #P message 721 238 28 196617 stop;
    #P slider 767 153 13 51 0 1;
    #P newex 767 214 28 196617 * 40;
    #P number 767 236 33 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 724 281 46 196617 metro 5;
    #P comment 788 263 42 196617 serial in;
    #P message 951 471 18 196617 65;
    #P message 840 518 33 196617 spell;
    #P message 875 518 40 196617 match;
    #P message 917 518 30 196617 vdp;
    #P hidden newex 875 539 64 196617 prepend help;
    #P hidden newex 875 559 45 196617 pcontrol;
    #P number 1136 403 35 9 0 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P message 1136 424 49 196617 chunk \$1;
    #P toggle 983 404 15 0;
    #P message 1033 424 35 196617 getdtr;
    #P message 983 424 38 196617 dtr \$1;
    #P message 860 426 51 196617 getparity;
    #P user umenu 801 403 100 196647 1 64 419 1;
    #X add no;
    #X add odd;
    #X add even;
    #P message 801 424 52 196617 parity \$1;
    #P hidden message 942 312 32 196617 set 8;
    #P hidden message 908 312 32 196617 set 1;
    #P hidden newex 910 288 45 196617 loadbang;
    #P message 1131 367 59 196617 getstopbits;
    #P number 1063 346 35 9 1 2 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P message 1063 367 60 196617 stopbits \$1;
    #P message 987 367 59 196617 getdatabits;
    #P number 919 346 35 9 5 8 3 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P message 919 367 60 196617 databits \$1;
    #P message 853 367 43 196617 getbaud;
    #P user umenu 802 346 100 196647 1 64 362 1;
    #X add 1200;
    #X add 2400;
    #X add 4800;
    #X add 9600;
    #X add 19200;
    #X add 38400;
    #P message 802 367 44 196617 baud \$1;
    #P message 801 314 37 196617 print;
    #P newex 856 484 62 196617 print status;
    #P message 790 285 51 196617 65 84 13;
    #P button 725 316 15 0;
    #P newex 791 459 71 196617 serial b 9600;
    #B color 5;
    #P newex 791 484 53 196617 print data;
    #P toggle 106 209 15 0;
    #P button 98 378 15 0;
    #P newex 134 531 60 196617 noteout a 2;
    #P newex 175 470 62 196617 random 127;
    #P newex 134 491 92 196617 makenote 127 100;
    #P newex 134 468 27 196617 +;
    #P newex 216 405 30 196617 * 12;
    #P message 129 436 20 196617 62;
    #P message 108 436 20 196617 61;
    #P message 88 436 20 196617 59;
    #P message 65 436 20 196617 57;
    #P message 43 436 20 196617 55;
    #P message 22 436 20 196617 53;
    #P message 2 436 20 196617 52;
    #P newex 216 381 50 196617 random 3;
    #P newex 26 406 105 196617 sel 0 1 2 3 4 5 6;
    #P newex 105 341 30 196617 sel 1;
    #P newex 26 381 50 196617 random 7;
    #P number 129 298 52 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 105 316 34 196617 > 950;
    #P newex 105 273 68 196617 random 1000;
    #P newex 105 244 50 196617 metro 10;
    #P comment 187 300 100 196617 Threshold;
    #P newex 392 198 38 196617 * 100;
    #P newex 366 178 115 196617 expr random(48 \\\, 72);
    #P toggle 490 37 15 0;
    #P newex 371 94 115 196617 expr random(48 \\\, 72);
    #P newex 489 57 64 196617 metro 1000;
    #P message 626 139 26 196617 124;
    #P newex 623 167 50 196617 pgmout a;
    #P newex 538 164 60 196617 noteout a 1;
    #P message 631 107 34 196617 1000;
    #P message 562 101 20 196617 64;
    #P number 513 103 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 536 127 67 196617 makenote 60;
    #P newex 715 31 27 196617 +;
    #P newex 713 -29 27 196617 +;
    #P newex 715 -92 27 196617 +;
    #P user umenu 804 -205 39 196647 1 64 -189 1;
    #X add -48;
    #X add -36;
    #X add -24;
    #X add -12;
    #X add 0;
    #X add 12;
    #X add 24;
    #X add 36;
    #X add 48;
    #P newex 722 -164 27 196617 +;
    #P message 436 35 14 196617 5;
    #N vpatcher 165 281 496 580;
    #P outlet 81 264 15 0;
    #P outlet 116 264 15 0;
    #N comlet channel;
    #P inlet 244 33 15 0;
    #N comlet list from fiddle's routed harmonics;
    #P inlet 12 35 15 0;
    #P button 230 170 15 0;
    #P window setfont "Sans Serif" 9.;
    #P window linecount 4;
    #P newex 237 196 50 196617 expr (random(1 \\\, 10)*100);
    #P window linecount 1;
    #P newex 157 253 60 196617 noteout a 1;
    #P newex 157 221 52 196617 makenote;
    #P number 157 198 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P button 75 224 15 0;
    #P newex 75 199 63 196617 select -999;
    #P number 196 198 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P number 75 176 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 93 101 105 196617 zmap 0. 0.2 20 127;
    #P newex 93 132 31 196617 ftom;
    #P flonum 49 101 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P flonum 11 101 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 11 76 64 196617 unpack 0. 0.;
    #P window linecount 0;
    #P comment 33 33 100 196617 list from fiddle~ route;
    #P comment 21 248 85 196617 strip out invalids;
    #P connect 16 0 2 0;
    #P fasten 2 0 3 0 16 97 16 97;
    #P fasten 2 1 4 0 70 97 54 97;
    #P fasten 5 0 7 0 98 161 91 161 91 165 80 165;
    #P connect 7 0 9 0;
    #P fasten 9 0 10 0 80 219 80 219;
    #P fasten 5 0 19 0 98 263 86 263;
    #P connect 4 0 6 0;
    #P fasten 3 0 5 0 16 127 98 127;
    #P fasten 6 0 18 0 98 192 121 192;
    #P connect 9 1 11 0;
    #P fasten 11 0 12 0 162 217 162 217;
    #P connect 12 0 13 0;
    #P fasten 8 0 12 1 201 217 183 217;
    #P connect 12 1 13 1;
    #P fasten 6 0 8 0 98 121 201 121;
    #P connect 14 0 12 2;
    #P fasten 17 0 13 2 249 150 212 150;
    #P fasten 5 0 15 0 98 159 235 159;
    #P fasten 15 0 14 0 235 189 242 189;
    #P pop;
    #P newobj 362 36 69 196617 p interpreter;
    #P newex 239 -214 32 196617 sel 0;
    #P bpatcher 18 46 93 135 0 0 fileHolder.mxb 2;
    #N vpatcher 10 59 610 459;
    #P window setfont "Sans Serif" 9.;
    #P window linecount 1;
    #P message 59 26 14 196617 0;
    #P message 39 26 14 196617 1;
    #P hidden newex 82 78 54 196617 send~ rch;
    #P hidden newex 25 78 52 196617 send~ lch;
    #P message 5 26 28 196617 open;
    #N sfplay~ 2 40320 0 ;
    #P hidden newobj 26 47 80 196617 sfplay~ 2;
    #B color 5;
    #P hidden connect 0 0 2 0;
    #P hidden fasten 1 0 0 0 10 44 31 44;
    #P hidden fasten 4 0 0 0 44 43 31 43;
    #P hidden fasten 5 0 0 0 64 43 31 43;
    #P hidden fasten 0 2 4 0 117 64 117 19 44 19;
    #P hidden connect 0 1 3 0;
    #P pop;
    #BP pop 0;
    #P user meter~ 180 122 260 135 50 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
    #P user meter~ 262 121 342 134 50 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
    #P message 50 -177 14 196617 0;
    #P newex 256 83 68 196617 receive~ rch;
    #P newex 184 84 66 196617 receive~ lch;
    #P newex 1066 -92 51 196617 noteout a;
    #P newex 1032 -129 44 196617 uzi 128;
    #P button 1081 -191 15 0;
    #P number 1113 -129 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 1082 -167 40 196617 uzi 5;
    #P button 1082 64 15 0;
    #P newex 1083 40 44 196617 sel 500;
    #P message 1105 122 20 196617 24;
    #P message 1083 123 20 196617 12;
    #P newex 1083 103 32 196617 sel 0;
    #P newex 1083 83 52 196617 random 2;
    #P newex 1083 143 30 196617 - 12;
    #P button 586 54 15 0;
    #P button 586 -12 15 0;
    #P button 586 -73 15 0;
    #P button 586 -140 15 0;
    #P button 1029 63 15 0;
    #P newex 1029 41 44 196617 sel 500;
    #P message 1051 123 20 196617 24;
    #P message 1029 124 20 196617 12;
    #P newex 1029 104 32 196617 sel 0;
    #P newex 1029 84 52 196617 random 2;
    #P newex 1029 144 30 196617 - 12;
    #P newex 71 -179 27 196617 + 1;
    #P newex 880 18 142 196617 expr (random(1 \\\, 10)*100);
    #P newex 880 -3 142 196617 expr (random(1 \\\, 10)*100);
    #P newex 880 -24 142 196617 expr (random(1 \\\, 10)*100);
    #P newex 880 -45 142 196617 expr (random(1 \\\, 10)*100);
    #P newex 887 -114 50 196617 pgmout a;
    #P newex 887 -145 64 196617 random 128;
    #P button 887 -199 15 0;
    #P number 966 -145 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 887 -175 40 196617 uzi 5;
    #P user meter~ 231 -168 311 -155 50 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
    #P user meter~ 232 -187 312 -174 50 0 168 0 103 103 103 255 153 0 255 0 0 217 217 0 153 186 0 12 3 3 3 3;
    #P newex 793 48 60 196617 noteout a 4;
    #P newex 793 -13 60 196617 noteout a 3;
    #P newex 793 -75 60 196617 noteout a 2;
    #P newex 793 -143 60 196617 noteout a 1;
    #P newex 715 55 52 196617 makenote;
    #P newex 713 -10 52 196617 makenote;
    #P newex 715 -72 52 196617 makenote;
    #P newex 715 -143 52 196617 makenote;
    #P number 715 12 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P number 713 -47 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P number 715 -110 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P number 712 -182 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P button 633 54 15 0;
    #P newex 633 28 63 196617 select -999;
    #P button 633 -12 15 0;
    #P newex 633 -34 63 196617 select -999;
    #P button 633 -73 15 0;
    #P newex 633 -97 63 196617 select -999;
    #P button 633 -140 15 0;
    #P newex 633 -165 63 196617 select -999;
    #P number 754 -166 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P number 586 28 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P number 754 -98 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 438 0 105 196617 zmap 0. 0.2 20 127;
    #P newex 438 -24 31 196617 ftom;
    #P number 586 -34 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P number 754 -36 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 438 -59 105 196617 zmap 0. 0.2 20 127;
    #P newex 438 -81 31 196617 ftom;
    #P number 586 -97 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P number 754 25 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 438 -110 105 196617 zmap 0. 0.2 20 127;
    #P newex 438 -131 31 196617 ftom;
    #P toggle 2 -210 15 0;
    #P newex 215 -147 58 196617 metro 100;
    #P message 245 -63 26 196617 800;
    #P message 215 -62 26 196617 100;
    #P newex 215 -92 32 196617 sel 0;
    #P newex 215 -117 52 196617 random 2;
    #P number 586 -165 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 438 -161 105 196617 zmap 0. 0.2 20 127;
    #P newex 440 -184 31 196617 ftom;
    #P toggle 72 -210 15 0;
    #P flonum 114 -210 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P toggle 204 -203 15 0;
    #P newex 172 -179 31 196617 adc~;
    #P newex 111 -179 46 196617 phasor~;
    #P message 113 -60 44 196617 auto \$1;
    #P toggle 112 -84 15 0;
    #P button 19 -56 15 0;
    #P message 1 -143 73 196617 vibrato 50 0.5;
    #P message 1 -120 84 196617 reattack 100 10;
    #P message 111 -131 94 196617 amp-range 60 100;
    #P newex 84 -154 62 196617 selector~ 2;
    #P flonum 395 -18 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P flonum 357 -18 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 357 -43 64 196617 unpack 0. 0.;
    #P flonum 400 -65 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P flonum 357 -65 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 357 -90 64 196617 unpack 0. 0.;
    #P flonum 397 -113 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P flonum 357 -113 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 357 -138 64 196617 unpack 0. 0.;
    #P flonum 395 -162 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P flonum 357 -162 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 357 -187 64 196617 unpack 0. 0.;
    #P newex 357 -214 79 196617 route 1 2 3 4 5;
    #P flonum 184 14 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P flonum 143 43 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P flonum 98 43 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 98 12 64 196617 unpack 0. 0.;
    #P button 68 11 15 0;
    #P flonum 27 11 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0;
    #P newex 35 -27 194 196617 fiddle~ 1024 1 20 5;
    #P comment 2 122 100 196617 use a file for input;
    #P comment 1025 -209 100 196617 stuck note killer;
    #P window linecount 3;
    #P comment 363 121 100 196617 encapsulated version of any of the above modules;
    #P fasten 210 0 43 0 329 637 -7 637 -7 -221 7 -221;
    #P connect 145 0 147 0;
    #P fasten 42 0 27 0 220 -93 24 -93;
    #P connect 145 1 148 0;
    #P fasten 144 0 143 0 110 369 31 369;
    #P connect 143 0 145 0;
    #P fasten 3 0 4 0 40 0 32 0;
    #P connect 113 0 3 0;
    #P connect 112 0 3 0;
    #P fasten 26 0 3 0 6 -78 40 -78;
    #P fasten 25 0 3 0 6 -66 40 -66;
    #P fasten 29 0 3 0 118 -36 40 -36;
    #P fasten 24 0 3 0 116 -28 40 -28;
    #P fasten 23 0 3 0 89 -82 40 -82;
    #P fasten 27 0 3 0 24 -34 40 -34;
    #P connect 145 2 149 0;
    #P connect 145 3 150 0;
    #P fasten 3 1 5 0 86 0 73 0;
    #P fasten 34 0 88 0 77 -187 76 -187;
    #P fasten 210 0 34 0 329 637 -7 637 -7 -221 77 -221;
    #P fasten 114 0 23 0 55 -158 89 -158;
    #P fasten 88 0 23 0 76 -158 89 -158;
    #P connect 145 4 151 0;
    #P fasten 3 2 6 0 132 1 103 1;
    #P fasten 6 0 7 0 103 36 103 36;
    #P connect 144 0 159 0;
    #P connect 160 0 139 0;
    #P connect 139 0 140 0;
    #P connect 140 0 141 0;
    #P connect 141 0 144 0;
    #P connect 211 0 160 0;
    #P connect 210 0 160 0;
    #P connect 145 5 152 0;
    #P fasten 30 0 23 1 116 -158 115 -158;
    #P fasten 33 0 30 0 119 -187 116 -187;
    #P fasten 28 0 29 0 117 -65 118 -65;
    #P connect 142 0 141 1;
    #P connect 145 6 153 0;
    #P connect 147 0 155 0;
    #P connect 148 0 155 0;
    #P connect 149 0 155 0;
    #P connect 150 0 155 0;
    #P connect 151 0 155 0;
    #P connect 152 0 155 0;
    #P connect 153 0 155 0;
    #P connect 155 0 156 0;
    #P connect 156 0 158 0;
    #P fasten 31 1 23 2 198 -158 141 -158;
    #P fasten 31 0 23 2 177 -158 141 -158;
    #P fasten 6 1 8 0 157 36 148 36;
    #P connect 154 0 155 1;
    #P connect 156 1 158 1;
    #P fasten 32 0 31 0 209 -187 177 -187;
    #P fasten 139 0 157 0 110 267 180 267;
    #P connect 157 0 156 1;
    #P fasten 112 0 116 0 189 111 185 111;
    #P fasten 3 3 9 0 178 2 189 2;
    #P fasten 43 0 42 0 7 -183 220 -183;
    #P fasten 42 0 38 0 220 -124 220 -124;
    #P fasten 38 0 39 0 220 -96 220 -96;
    #P fasten 39 0 40 0 220 -69 220 -69;
    #P fasten 144 0 146 0 110 369 221 369;
    #P connect 146 0 154 0;
    #P connect 31 1 78 0;
    #P connect 31 0 77 0;
    #P connect 43 0 118 0;
    #P connect 34 0 118 0;
    #P connect 32 0 118 0;
    #P fasten 39 1 41 0 242 -69 250 -69;
    #P fasten 113 0 115 0 261 110 267 110;
    #P connect 41 0 42 1;
    #P connect 40 0 42 1;
    #P connect 207 0 212 0;
    #P fasten 229 0 210 0 642 534 329 534;
    #P fasten 251 0 210 0 590 578 329 578;
    #P fasten 240 0 210 0 483 528 329 528;
    #P fasten 207 0 210 0 386 522 329 522;
    #P connect 207 1 213 0;
    #P connect 3 4 10 0;
    #P fasten 10 0 11 0 362 -192 362 -192;
    #P fasten 11 0 12 0 362 -166 362 -166;
    #P fasten 10 1 14 0 375 -168 362 -168;
    #P fasten 14 0 15 0 362 -117 362 -117;
    #P fasten 10 2 17 0 388 -144 362 -144;
    #P fasten 17 0 18 0 362 -69 362 -69;
    #P fasten 10 3 20 0 401 -120 362 -120;
    #P fasten 20 0 21 0 362 -22 362 -22;
    #P fasten 10 4 119 0 414 35 367 35;
    #P connect 133 0 136 0;
    #P connect 133 0 134 0;
    #P connect 204 0 206 0;
    #P connect 203 0 204 0;
    #P connect 206 0 207 0;
    #P connect 205 0 203 0;
    #P connect 202 0 205 0;
    #P connect 136 0 137 0;
    #P connect 207 0 209 0;
    #P fasten 11 1 13 0 416 -166 400 -166;
    #P fasten 20 1 22 0 416 -22 400 -22;
    #P fasten 14 1 16 0 416 -117 402 -117;
    #P fasten 17 1 19 0 416 -69 405 -69;
    #P connect 209 0 208 0;
    #P connect 207 1 208 0;
    #P connect 120 0 119 1;
    #P connect 13 0 36 0;
    #P connect 15 0 44 0;
    #P connect 16 0 45 0;
    #P fasten 18 0 48 0 362 -49 443 -49;
    #P connect 19 0 49 0;
    #P fasten 21 0 52 0 362 1 443 1;
    #P fasten 22 0 53 0 400 -2 443 -2;
    #P fasten 208 0 211 0 421 550 444 550;
    #P fasten 241 0 211 0 518 556 444 556;
    #P fasten 252 0 211 0 625 606 444 606;
    #P fasten 230 0 211 0 677 617 444 617;
    #P fasten 12 0 35 0 362 -143 445 -143;
    #P connect 237 0 239 0;
    #P connect 236 0 237 0;
    #P connect 239 0 240 0;
    #P connect 238 0 236 0;
    #P connect 235 0 238 0;
    #P connect 135 0 133 0;
    #P connect 210 0 135 0;
    #P connect 211 0 135 0;
    #P connect 240 0 242 0;
    #P connect 134 0 127 0;
    #P connect 240 1 241 0;
    #P connect 242 0 241 0;
    #P connect 219 0 201 0;
    #P connect 201 1 202 0;
    #P connect 201 0 202 1;
    #P connect 217 0 219 0;
    #P connect 127 0 126 0;
    #P connect 126 0 130 0;
    #P connect 137 0 133 1;
    #P connect 216 0 217 0;
    #P connect 240 1 244 0;
    #P connect 162 0 216 0;
    #P connect 218 0 216 0;
    #P connect 220 0 234 0;
    #P connect 234 1 235 0;
    #P connect 127 0 128 0;
    #P connect 126 1 130 1;
    #P connect 128 0 126 1;
    #P connect 240 0 243 0;
    #P connect 217 1 220 0;
    #P connect 234 0 235 1;
    #P connect 248 0 250 0;
    #P connect 247 0 248 0;
    #P connect 250 0 251 0;
    #P fasten 35 0 37 0 445 -166 591 -166;
    #P fasten 37 0 96 0 591 -145 591 -145;
    #P fasten 44 0 47 0 443 -112 591 -112;
    #P fasten 47 0 97 0 591 -78 591 -78;
    #P fasten 48 0 51 0 443 -36 591 -36;
    #P fasten 51 0 98 0 591 -16 591 -16;
    #P fasten 52 0 55 0 443 27 591 27;
    #P fasten 55 0 99 0 591 48 591 48;
    #P connect 249 0 247 0;
    #P connect 246 0 249 0;
    #P connect 129 0 126 2;
    #P connect 221 0 245 0;
    #P connect 245 1 246 0;
    #P connect 251 0 253 0;
    #P connect 217 2 221 0;
    #P connect 245 0 246 1;
    #P connect 251 1 252 0;
    #P connect 253 0 252 0;
    #P connect 132 0 131 0;
    #P connect 222 0 223 0;
    #P connect 127 0 129 0;
    #P connect 37 0 57 0;
    #P fasten 57 0 58 0 638 -144 638 -144;
    #P connect 47 0 59 0;
    #P fasten 59 0 60 0 638 -77 638 -77;
    #P connect 51 0 61 0;
    #P fasten 61 0 62 0 638 -15 638 -15;
    #P connect 55 0 63 0;
    #P fasten 63 0 64 0 638 49 638 49;
    #P connect 223 1 224 0;
    #P connect 226 0 228 0;
    #P connect 225 0 226 0;
    #P connect 228 0 229 0;
    #P connect 227 0 225 0;
    #P connect 224 0 227 0;
    #P connect 217 3 222 0;
    #P connect 223 0 224 1;
    #P connect 229 0 231 0;
    #P connect 251 1 255 0;
    #P connect 229 1 230 0;
    #P connect 231 0 230 0;
    #P connect 251 0 254 0;
    #P connect 229 1 233 0;
    #P connect 57 1 65 0;
    #P connect 61 1 67 0;
    #P fasten 67 0 124 0 718 -31 718 -31;
    #P fasten 124 0 71 0 718 -11 718 -11;
    #P fasten 121 0 69 0 727 -145 720 -145;
    #P connect 59 1 66 0;
    #P fasten 66 0 123 0 720 -94 720 -94;
    #P fasten 123 0 70 0 720 -74 720 -74;
    #P connect 63 1 68 0;
    #P fasten 68 0 125 0 720 29 720 29;
    #P fasten 125 0 72 0 720 51 720 51;
    #P fasten 65 0 121 0 717 -166 727 -166;
    #P connect 200 0 194 0;
    #P connect 199 0 194 0;
    #P connect 198 0 194 0;
    #P connect 229 0 232 0;
    #P connect 194 0 163 0;
    #P fasten 122 1 124 1 838 -49 735 -49;
    #P fasten 122 1 123 1 838 -117 737 -117;
    #P fasten 122 1 125 1 838 -54 737 -54;
    #P fasten 50 0 71 1 759 -11 739 -11;
    #P fasten 56 0 69 1 759 -145 741 -145;
    #P fasten 54 0 70 1 759 -73 741 -73;
    #P fasten 46 0 72 1 759 54 741 54;
    #P fasten 122 1 121 1 838 -183 744 -183;
    #P connect 53 0 54 0;
    #P fasten 49 0 50 0 443 -39 759 -39;
    #P fasten 45 0 46 0 443 -34 759 -34;
    #P connect 86 0 71 2;
    #P connect 84 0 69 2;
    #P connect 85 0 70 2;
    #P fasten 87 0 72 2 885 45 762 45;
    #P connect 195 0 194 1;
    #P connect 197 0 196 0;
    #P connect 196 0 195 0;
    #P connect 192 0 162 0;
    #P fasten 163 0 162 0 730 333 796 333;
    #P connect 164 0 162 0;
    #P fasten 166 0 162 0 806 334 796 334;
    #P fasten 167 0 162 0 807 388 796 388;
    #P fasten 169 0 162 0 858 388 796 388;
    #P fasten 170 0 162 0 924 388 796 388;
    #P fasten 172 0 162 0 992 388 796 388;
    #P fasten 175 0 162 0 1136 388 796 388;
    #P fasten 173 0 162 0 1068 388 796 388;
    #P fasten 181 0 162 0 865 442 796 442;
    #P fasten 179 0 162 0 806 442 796 442;
    #P fasten 183 0 162 0 1038 445 796 445;
    #P fasten 182 0 162 0 988 445 796 445;
    #P fasten 185 0 162 0 1141 445 796 445;
    #P connect 162 0 161 0;
    #P connect 69 0 73 0;
    #P connect 70 0 74 0;
    #P connect 71 0 75 0;
    #P connect 72 0 76 0;
    #P connect 100 0 76 0;
    #P connect 180 0 179 0;
    #P hidden connect 177 0 168 0;
    #P fasten 168 1 167 0 897 364 807 364;
    #P connect 69 1 73 1;
    #P connect 70 1 74 1;
    #P connect 71 1 75 1;
    #P connect 72 1 76 1;
    #P connect 162 1 165 0;
    #P hidden connect 189 0 188 0;
    #P hidden connect 191 0 188 0;
    #P hidden connect 190 0 188 0;
    #P hidden connect 188 0 187 0;
    #P fasten 96 0 84 0 591 -115 885 -115;
    #P fasten 97 0 85 0 591 -50 885 -50;
    #P connect 98 0 86 0;
    #P connect 99 0 87 0;
    #P fasten 81 0 79 0 892 -180 892 -180;
    #P fasten 79 0 82 0 892 -152 892 -152;
    #P fasten 82 0 83 0 892 -121 892 -121;
    #P connect 215 0 214 0;
    #P connect 176 0 215 0;
    #P hidden connect 176 0 177 0;
    #P hidden connect 178 0 171 0;
    #P connect 171 0 170 0;
    #P fasten 80 0 83 1 971 -122 932 -122;
    #P hidden fasten 176 0 178 0 915 308 947 308;
    #P fasten 79 2 80 0 922 -152 971 -152;
    #P connect 184 0 182 0;
    #P fasten 94 0 95 0 1034 60 1034 60;
    #P fasten 95 0 90 0 1034 81 1034 81;
    #P fasten 90 0 91 0 1034 102 1034 102;
    #P fasten 91 0 92 0 1034 122 1034 122;
    #P fasten 107 0 110 0 1087 -140 1037 -140;
    #P fasten 93 0 89 1 1056 141 1054 141;
    #P fasten 92 0 89 1 1034 141 1054 141;
    #P fasten 91 1 93 0 1056 122 1056 122;
    #P connect 174 0 173 0;
    #P fasten 110 2 111 0 1071 -102 1071 -102;
    #P fasten 118 0 109 0 244 -193 1086 -193;
    #P fasten 109 0 107 0 1086 -172 1087 -172;
    #P fasten 105 0 106 0 1088 60 1087 60;
    #P fasten 87 0 105 0 885 37 1088 37;
    #P fasten 106 0 101 0 1087 81 1088 81;
    #P fasten 101 0 102 0 1088 101 1088 101;
    #P fasten 102 0 103 0 1088 121 1088 121;
    #P fasten 72 0 100 0 720 142 1088 142;
    #P fasten 108 0 111 1 1118 -103 1091 -103;
    #P fasten 103 0 100 1 1088 140 1108 140;
    #P fasten 104 0 100 1 1110 140 1108 140;
    #P fasten 102 1 104 0 1110 121 1110 121;
    #P fasten 107 2 111 2 1117 -136 1111 -136;
    #P connect 110 0 108 0;
    #P connect 186 0 185 0;
    #P pop;

Code for File Holder

max v2;
#N vpatcher 10 59 610 459;
#P window setfont "Sans Serif" 9.;
#P window linecount 1;
#P message 59 26 14 196617 0;
#P message 39 26 14 196617 1;
#P hidden newex 82 78 54 196617 send~ rch;
#P hidden newex 25 78 52 196617 send~ lch;
#P message 5 26 28 196617 open;
#N sfplay~ 2 40320 0 ;
#P hidden newobj 26 47 80 196617 sfplay~ 2;
#B color 5;
#P hidden connect 0 0 2 0;
#P hidden fasten 1 0 0 0 10 44 31 44;
#P hidden fasten 4 0 0 0 44 43 31 43;
#P hidden fasten 5 0 0 0 64 43 31 43;
#P hidden fasten 0 2 4 0 117 64 117 19 44 19;
#P hidden connect 0 1 3 0;
#P pop;