Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
executable file 2744 lines (2744 sloc) 80.1 KB
#N canvas 119 35 1548 973 12;
#X obj 112 990 outlet;
#X obj 53 990 outlet~;
#X text 184 988 Two outlets: the first is an audio outlet (note the
"~") and the second is for data;
#X obj 0 -9 cnv 15 1920 90 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 9 4 Two inlets: the first is for audio (note the "~") and the
second is for data;
#X obj 19 51 inlet~;
#X obj 79 51 inlet;
#X obj 970 49 receive hamilr4_tempo;
#X obj 1134 49 receive hamilr4_control;
#X obj 970 90 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 1134 112 list trim;
#X msg 1134 133 hamilr4 key 1 q 113;
#X obj 1134 91 list prepend set;
#X text 1030 -7 Two named receives \, one for tempo (receives a "bang"
event from the global clock metro) and the other receives a list of
control data... this can be any size.;
#N canvas 0 23 974 416 notes 0;
#X msg 325 209 masheen_meter_no_text;
#X msg 326 155 \; masheen_meter_no_text scale \$1;
#X msg 326 124 0;
#X msg 327 252 \; foo7_rcv label_pos \$1 \$2;
#X text 43 94 Sends to set properties of meter text:;
#X obj 607 100 f;
#X msg 585 79 bang;
#X floatatom 623 78 3 50 88 0 - - -;
#X floatatom 658 100 3 0 37 0 - - -;
#X obj 607 123 pack 0 0;
#X text 685 100 y-label;
#X text 651 78 x-label;
#X obj 627 215 f;
#X msg 605 194 bang;
#X floatatom 643 193 3 0 2 0 - - -;
#X floatatom 678 215 3 8 36 0 - - -;
#X obj 627 238 pack 0 0;
#X text 671 193 font;
#X text 707 215 height;
#X msg 627 264 \; foo7_rcv label_font \$1 \$2;
#X msg 607 148 \; foo7_rcv label_po`s \$1 \$2;
#X msg 125 172 \; foo7_rcv label hello;
#X connect 2 0 1 0;
#X connect 5 0 9 0;
#X connect 6 0 5 0;
#X connect 7 0 5 1;
#X connect 8 0 9 1;
#X connect 9 0 20 0;
#X connect 12 0 16 0;
#X connect 13 0 12 0;
#X connect 14 0 12 1;
#X connect 15 0 16 1;
#X connect 16 0 19 0;
#X restore 1786 55 pd notes;
#X obj 1717 422 channel;
#X obj 1628 879 throw~ main_out_left;
#X obj 1708 843 throw~ main_out_right;
#N canvas 0 23 450 300 gate~ 0;
#X obj 70 51 inlet~;
#X obj 139 51 inlet;
#X obj 70 132 *~;
#X obj 70 156 outlet~;
#X obj 139 80 expr 1 - $f1;
#X obj 140 132 *~;
#X obj 140 156 outlet~;
#X connect 0 0 2 0;
#X connect 0 0 5 0;
#X connect 1 0 4 0;
#X connect 1 0 2 1;
#X connect 2 0 3 0;
#X connect 4 0 5 1;
#X connect 5 0 6 0;
#X restore 1628 388 pd gate~;
#X obj 1810 373 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1;
#N canvas 0 23 450 300 gate~ 0;
#X obj 70 51 inlet~;
#X obj 139 51 inlet;
#X obj 70 132 *~;
#X obj 70 156 outlet~;
#X obj 139 80 expr 1 - $f1;
#X obj 140 132 *~;
#X obj 140 156 outlet~;
#X connect 0 0 2 0;
#X connect 0 0 5 0;
#X connect 1 0 4 0;
#X connect 1 0 2 1;
#X connect 2 0 3 0;
#X connect 4 0 5 1;
#X connect 5 0 6 0;
#X restore 1717 388 pd gate~;
#N canvas 1117 23 693 620 throws 0;
#X obj 73 138 osc~ 240;
#X text 58 79 Mono audio throws for each user;
#X obj 59 541 throw~ bilgeh_audio_1;
#X obj 79 521 throw~ boller_audio_1;
#X obj 99 503 throw~ corres2_audio_1;
#X obj 119 484 throw~ fallit_audio_1;
#X obj 139 465 throw~ golubm_audio_1;
#X obj 159 446 throw~ johnsa23_audio_1;
#X obj 179 427 throw~ krantm_audio_1;
#X obj 199 408 throw~ lillij2_audio_1;
#X obj 219 389 throw~ liuz18_audio_1;
#X obj 239 370 throw~ lockwa_audio_1;
#X obj 259 351 throw~ mcneee_audio_1;
#X obj 279 332 throw~ mejiak_audio_1;
#X obj 298 313 throw~ nelsoc5_audio_1;
#X obj 318 294 throw~ olynia_audio_1;
#X obj 338 275 throw~ paris_audio_1;
#X obj 358 256 throw~ powerj7_audio_1;
#X obj 378 237 throw~ sabary_audio_1;
#X obj 398 218 throw~ smelcg_audio_1;
#X obj 418 199 throw~ stansj_audio_1;
#X obj 438 180 throw~ thompj17_audio_1;
#X obj 458 161 throw~ hamilr4_audio_1;
#X restore 1786 9 pd throws;
#N canvas 298 91 1121 615 tests 0;
#N canvas 1117 23 693 620 throws_mono_test 0;
#X obj 59 541 throw~ bartoa_audio_1;
#X obj 79 522 throw~ deegaj_audio_1;
#X obj 99 503 throw~ houchl_audio_1;
#X obj 119 484 throw~ johnsz2_audio_1;
#X obj 139 465 throw~ martse_audio_1;
#X obj 159 446 throw~ mucelj_audio_1;
#X obj 179 427 throw~ nelsoc5_audio_1;
#X obj 199 408 throw~ nik_audio_1;
#X obj 219 389 throw~ novaa_audio_1;
#X obj 239 370 throw~ ortegm3_audio_1;
#X obj 259 351 throw~ persow_audio_1;
#X obj 279 332 throw~ plancs_audio_1;
#X obj 298 313 throw~ quarlm_audio_1;
#X obj 318 294 throw~ rothgj_audio_1;
#X obj 338 275 throw~ schans2_audio_1;
#X obj 358 256 throw~ sheny13_audio_1;
#X obj 378 237 throw~ smith32_audio_1;
#X obj 398 218 throw~ takakh_audio_1;
#X obj 418 199 throw~ villan2_audio_1;
#X obj 438 180 throw~ zhaox10_audio_1;
#X obj 458 161 throw~ zhuy16_audio_1;
#X text 70 86 Mono audio throws - same signal for each user;
#X obj 67 136 inlet~;
#X connect 22 0 0 0;
#X connect 22 0 1 0;
#X connect 22 0 2 0;
#X connect 22 0 3 0;
#X connect 22 0 4 0;
#X connect 22 0 5 0;
#X connect 22 0 6 0;
#X connect 22 0 7 0;
#X connect 22 0 8 0;
#X connect 22 0 9 0;
#X connect 22 0 10 0;
#X connect 22 0 11 0;
#X connect 22 0 12 0;
#X connect 22 0 13 0;
#X connect 22 0 14 0;
#X connect 22 0 15 0;
#X connect 22 0 16 0;
#X connect 22 0 17 0;
#X connect 22 0 18 0;
#X connect 22 0 19 0;
#X connect 22 0 20 0;
#X restore 46 143 pd throws_mono_test;
#X obj 46 53 osc~ 440;
#X obj 451 125 channel;
#X obj 540 125 channel;
#X text 123 92 Send test signal to all channels;
#X obj 451 552 throw~ main_out_left;
#X obj 540 529 throw~ main_out_right;
#N canvas 0 23 450 300 gate~ 0;
#X obj 70 51 inlet~;
#X obj 139 51 inlet;
#X obj 70 132 *~;
#X obj 70 156 outlet~;
#X obj 139 80 expr 1 - $f1;
#X obj 140 132 *~;
#X obj 140 156 outlet~;
#X connect 0 0 2 0;
#X connect 0 0 5 0;
#X connect 1 0 4 0;
#X connect 1 0 2 1;
#X connect 2 0 3 0;
#X connect 4 0 5 1;
#X connect 5 0 6 0;
#X restore 46 118 pd gate~;
#X obj 99 91 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#N canvas 0 23 450 300 gate~ 0;
#X obj 70 51 inlet~;
#X obj 139 51 inlet;
#X obj 70 132 *~;
#X obj 70 156 outlet~;
#X obj 139 80 expr 1 - $f1;
#X obj 140 132 *~;
#X obj 140 156 outlet~;
#X connect 0 0 2 0;
#X connect 0 0 5 0;
#X connect 1 0 4 0;
#X connect 1 0 2 1;
#X connect 2 0 3 0;
#X connect 4 0 5 1;
#X connect 5 0 6 0;
#X restore 451 91 pd gate~;
#X obj 633 76 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#N canvas 0 23 450 300 gate~ 0;
#X obj 70 51 inlet~;
#X obj 139 51 inlet;
#X obj 70 132 *~;
#X obj 70 156 outlet~;
#X obj 139 80 expr 1 - $f1;
#X obj 140 132 *~;
#X obj 140 156 outlet~;
#X connect 0 0 2 0;
#X connect 0 0 5 0;
#X connect 1 0 4 0;
#X connect 1 0 2 1;
#X connect 2 0 3 0;
#X connect 4 0 5 1;
#X connect 5 0 6 0;
#X restore 540 91 pd gate~;
#X obj 540 59 osc~ 520;
#X obj 451 59 osc~ 420;
#X text 400 29 Send test signal to main outs;
#X connect 1 0 7 0;
#X connect 2 0 5 0;
#X connect 3 0 6 0;
#X connect 7 0 0 0;
#X connect 8 0 7 1;
#X connect 9 0 2 0;
#X connect 10 0 11 1;
#X connect 10 0 9 1;
#X connect 11 0 3 0;
#X connect 12 0 11 0;
#X connect 13 0 9 0;
#X restore 1786 31 pd tests;
#X text 341 269 More control;
#X text 341 309 More structure... timeline;
#X text 341 229 More cowbell... sounds;
#X text 182 175 Show off browser examples;
#N canvas 140 61 1680 980 more_sounds 0;
#N canvas 305 23 1615 993 additive-synthesis 0;
#X floatatom 62 6 5 0 0 0 - - -;
#X obj 62 25 mtof;
#X obj 62 110 osc~;
#X obj 118 47 * 2;
#X obj 118 109 osc~;
#X obj 118 131 *~ 0.1;
#X obj 188 109 osc~;
#X obj 188 47 * 3;
#X obj 258 109 osc~;
#X obj 258 47 * 4;
#X obj 118 167 +~;
#X obj 118 189 +~;
#X obj 118 271 *~;
#X obj 62 302 +~;
#X obj 165 273 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 197 272 toggle overtones;
#X obj 62 377 *~ 0;
#X floatatom 91 335 5 0 0 0 - - -;
#X obj 91 355 dbtorms;
#X obj 62 417 dac~;
#X floatatom 24 48 5 0 0 0 - - -;
#X floatatom 126 70 5 0 0 0 - - -;
#X floatatom 199 70 5 0 0 0 - - -;
#X floatatom 271 71 5 0 0 0 - - -;
#X obj 328 109 osc~;
#X floatatom 341 71 5 0 0 0 - - -;
#X obj 328 47 * 5;
#X obj 388 109 osc~;
#X floatatom 401 71 5 0 0 0 - - -;
#X obj 388 47 * 6;
#X obj 328 131 *~ 0.1;
#X obj 388 131 *~ 0.1;
#X obj 118 212 +~;
#X obj 118 235 +~;
#N canvas 0 23 450 278 (subpatch) 0;
#X array additive_synth_\$0 100 float 1;
#A 0 -0.549057 -0.621213 -0.701247 -0.783802 -0.862955 -0.932925 -0.988611
-1.02615 -1.04345 -1.04032 -1.0185 -0.98155 -0.934458 -0.883027 -0.833321
-0.791035 -0.760806 -0.745727 -0.747093 -0.764174 -0.794271 -0.833118
-0.875223 -0.914452 -0.944706 -0.960539 -0.957658 -0.933386 -0.886926
-0.819365 -0.733527 -0.633749 -0.525321 -0.413985 -0.305413 -0.204647
-0.115662 -0.0410925 0.0179356 0.0617808 0.0921202 0.111653 0.12373
0.131954 0.139782 0.150199 0.165465 0.187013 0.21544 0.250584 0.291731
0.337875 0.387909 0.440877 0.496156 0.553496 0.612973 0.674985 0.739975
0.808207 0.879616 0.953549 1.02861 1.10266 1.17292 1.23605 1.28846
1.32676 1.34798 1.34993 1.33166 1.29349 1.23708 1.16546 1.08271 0.993632
0.903294 0.816597 0.737722 0.669728 0.614328 0.571634 0.540185 0.517205
0.498868 0.480753 0.458417 0.427897 0.386171 0.331561 0.263965 0.184863
0.0971969 0.00506856 -0.0867277 -0.173249 -0.249954 -0.313245 -0.360882
-0.392279;
#X coords 0 1 99 -1 200 140 1 0 0;
#X restore 571 223 graph;
#X text 543 216 1;
#X text 540 286 0;
#X text 533 355 -1;
#X obj 344 314 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 344 339 metro 100;
#X obj 318 367 tabwrite~ additive_synth_\$0;
#X text 100 27 Midi to Frequency converter;
#X text 101 7 MIDI NOTE 60 = Middle C on a piano;
#X msg 162 344 0;
#X msg 20 10 60;
#X obj 119 307 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 188 131 *~ 0.1;
#X obj 258 131 *~ 0.1;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 0 3 0;
#X connect 1 0 20 0;
#X connect 1 0 7 0;
#X connect 1 0 9 0;
#X connect 1 0 26 0;
#X connect 1 0 29 0;
#X connect 2 0 13 0;
#X connect 3 0 4 0;
#X connect 3 0 21 0;
#X connect 4 0 5 0;
#X connect 5 0 10 0;
#X connect 6 0 46 0;
#X connect 7 0 6 0;
#X connect 7 0 22 0;
#X connect 8 0 47 0;
#X connect 9 0 8 0;
#X connect 9 0 23 0;
#X connect 10 0 11 0;
#X connect 11 0 32 0;
#X connect 12 0 13 1;
#X connect 13 0 16 0;
#X connect 13 0 40 0;
#X connect 14 0 12 1;
#X connect 16 0 19 0;
#X connect 16 0 19 1;
#X connect 17 0 18 0;
#X connect 18 0 16 1;
#X connect 24 0 30 0;
#X connect 26 0 24 0;
#X connect 26 0 25 0;
#X connect 27 0 31 0;
#X connect 29 0 27 0;
#X connect 29 0 28 0;
#X connect 30 0 32 1;
#X connect 31 0 33 1;
#X connect 32 0 33 0;
#X connect 33 0 12 0;
#X connect 38 0 39 0;
#X connect 39 0 40 0;
#X connect 43 0 18 0;
#X connect 44 0 0 0;
#X connect 45 0 17 0;
#X connect 46 0 10 1;
#X connect 47 0 11 1;
#X restore 70 123 pd additive-synthesis;
#N canvas 414 199 1436 733 sine-wave-oscillator 0;
#X obj 88 59 mtof;
#X obj 88 81 osc~;
#X obj 181 122 tabwrite~ sine;
#N canvas 0 22 450 278 (subpatch) 0;
#X array sine 100 float 1;
#A 0 -0.779677 -0.567846 -0.308507 -0.0233615 0.263741 0.528775 0.749581
0.907656 0.9898 0.989152 0.90572 0.746528 0.524886 0.259314 -0.0279455
-0.31287 -0.571611 -0.782537 -0.927995 -0.995797 -0.980303 -0.882788
-0.711407 -0.480519 -0.209421 0.0791956 0.361189 0.61296 0.813446 0.945891
0.999178 0.968879 0.857538 0.674427 0.434903 0.158995 -0.13022 -0.408538
-0.652684 -0.842206 -0.961279 -0.999932 -0.954907 -0.830007 -0.635662
-0.388128 -0.108129 0.18092 0.454829 0.690693 0.868763 0.974145 0.998045
0.938427 0.800303 0.595234 0.340349 0.0569966 -0.231128 -0.499909 -0.726869
-0.893028 -0.984447 -0.99352 -0.919477 -0.768487 -0.553217 -0.291659
-0.00569774 0.280739 0.54369 0.761145 0.914934 0.992165 0.986386 0.8981
0.73466 0.50976 0.242216 -0.0455989 -0.329595 -0.586026 -0.79341 -0.934423
-0.997273 -0.976657 -0.874347 -0.698892 -0.464948 -0.192115 0.0967936
0.377601 0.626822 0.8236 0.951462 0.999736 0.964363 0.848303 0.661285
0.41893;
#X coords 0 1 99 -1 200 140 1 0 0;
#X restore 433 97 graph;
#X text 405 90 1;
#X text 402 160 0;
#X text 395 229 -1;
#X obj 91 29 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 207 69 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 207 94 metro 100;
#X text 293 31 MIDI note values (0-127);
#X obj 81 179 output~;
#X floatatom 157 59 5 0 0 0 - - -;
#X connect 0 0 1 0;
#X connect 0 0 12 0;
#X connect 1 0 2 0;
#X connect 1 0 11 0;
#X connect 1 0 11 1;
#X connect 7 0 0 0;
#X connect 8 0 9 0;
#X connect 9 0 2 0;
#X restore 70 143 pd sine-wave-oscillator;
#N canvas 342 23 1380 650 sawtooth-oscillator 0;
#X obj 88 59 mtof;
#N canvas 0 22 450 278 (subpatch) 0;
#X array sawtooth 100 float 1;
#A 0 0.110755 0.112376 0.113996 0.115617 0.117237 0.118858 0.120478
0.122098 0.123719 0.125339 0.12696 0.12858 0.130201 0.131821 0.133442
0.135062 0.136683 0.138303 0.139923 0.141544 0.143164 0.144785 0.146405
0.148026 0.149646 0.151267 0.152887 0.154508 0.156128 0.157748 0.159369
0.160989 0.16261 0.16423 0.165851 0.167471 0.169092 0.170712 0.172333
0.173953 0.175573 0.177194 0.178814 0.180435 0.182055 0.183676 0.185296
0.186917 0.188537 0.190157 0.191778 0.193398 0.195019 0.196639 0.19826
0.19988 0.201501 0.203121 0.204741 0.206362 0.207982 0.209603 0.211223
0.212844 0.214464 0.216085 0.217705 0.219326 0.220946 0.222566 0.224187
0.225807 0.227428 0.229048 0.230669 0.232289 0.23391 0.23553 0.237151
0.238771 0.240391 0.242012 0.243632 0.245253 0.246873 0.248494 0.250114
0.251735 0.253355 0.254976 0.256596 0.258217 0.259837 0.261457 0.263078
0.264698 0.266319 0.267939 0.26956 0.27118;
#X coords 0 1 99 -1 200 140 1 0 0;
#X restore 433 97 graph;
#X text 405 90 1;
#X text 402 160 0;
#X text 395 229 -1;
#X obj 91 29 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 206 119 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 206 144 metro 100;
#X text 293 31 MIDI note values (0-127);
#X obj 88 92 phasor~;
#X obj 206 185 tabwrite~ sawtooth;
#X obj 88 126 *~ 2;
#X obj 88 148 -~ 1;
#X obj 88 214 output~;
#X text 149 90 Sawtooth;
#X floatatom 133 56 5 0 0 0 - - -;
#X floatatom 43 91 5 0 0 0 - - -;
#X connect 0 0 9 0;
#X connect 0 0 16 0;
#X connect 5 0 0 0;
#X connect 5 0 15 0;
#X connect 6 0 7 0;
#X connect 7 0 10 0;
#X connect 9 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 10 0;
#X connect 12 0 13 0;
#X connect 12 0 13 1;
#X restore 70 163 pd sawtooth-oscillator;
#N canvas 393 100 1341 774 square-oscillator 0;
#X obj 94 121 mtof;
#N canvas 0 22 450 278 (subpatch) 0;
#X array square 100 float 1;
#A 0 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 0.98 0.98 0.98 0.98 0.98 0.98
0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98
0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98
0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98 0.98
0.98 0.98 0.98 0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98
-0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98
-0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98
-0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98 -0.98;
#X coords 0 1 99 -1 200 140 1 0 0;
#X restore 438 189 graph;
#X text 410 182 1;
#X text 407 252 0;
#X text 400 321 -1;
#X obj 97 91 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 267 226 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 267 251 metro 100;
#X text 298 93 MIDI note values (0-127);
#X obj 267 292 tabwrite~ square;
#X obj 94 145 phasor~;
#X obj 94 172 expr~ $v1 > 0.5;
#X text 91 5 Create a square wave by checking to see if the output
of the Sawtooth Wave object [phasor~] is greater than 0.5. If it is
\, the Expression object [expr~] outputs a 1 \, otherwise it outputs
a zero. This creates the "high" (1) and "low" (0) states of the square
wave \, as you can see in the graph.;
#X obj 94 218 *~ 2;
#X obj 94 240 -~ 1;
#X obj 160 217 *~ 1.96;
#X obj 160 239 -~ 0.98;
#X obj 94 306 output~;
#X text 211 172 O or a 1;
#X connect 0 0 10 0;
#X connect 5 0 0 0;
#X connect 6 0 7 0;
#X connect 7 0 9 0;
#X connect 10 0 11 0;
#X connect 11 0 13 0;
#X connect 11 0 15 0;
#X connect 13 0 14 0;
#X connect 14 0 17 0;
#X connect 14 0 17 1;
#X connect 15 0 16 0;
#X connect 16 0 9 0;
#X restore 70 183 pd square-oscillator;
#X text 55 99 Basic Synthesis Examples;
#N canvas 140 23 1359 853 karplus_strong 0;
#N canvas 747 160 706 668 strummer 0;
#X obj 110 36 inlet;
#X obj 247 15 inlet;
#X text 290 37 strum speed inlet and default value;
#X obj 72 582 outlet;
#X obj 124 585 outlet;
#X obj 172 591 outlet;
#X obj 217 591 outlet;
#X obj 263 591 outlet;
#X obj 310 591 outlet;
#X obj 110 62 metro 250;
#X obj 110 89 i 0;
#X obj 110 114 + 1;
#X obj 110 315 route 0 1 2 3 4 5 6 7;
#X obj 110 143 % 8;
#X obj 139 89 i;
#X obj 154 195 == 0;
#X obj 110 166 t f f;
#X obj 154 218 route 1;
#X obj 110 357 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 247 71 s \$0-strum_speed;
#X obj 272 353 r \$0-strum_speed;
#X obj 183 520 i 52;
#X obj 109 465 i 40;
#X obj 148 483 i 49;
#X obj 218 538 i 55;
#X obj 257 543 i 59;
#X obj 293 563 i 64;
#N canvas 135 554 857 446 chords 0;
#X obj 249 26 inlet;
#X obj 82 265 outlet;
#X obj 132 265 outlet;
#X obj 180 264 outlet;
#X obj 227 265 outlet;
#X obj 276 266 outlet;
#X obj 330 266 outlet;
#X obj 144 201 unpack f f f f f f;
#X msg 202 125 40 45 52 57 61 64;
#X msg 326 126 43 47 52 55 59 67;
#X msg 78 125 40 47 52 55 59 64;
#X obj 249 52 random 4;
#X obj 250 80 route 0 1 2 3;
#X msg 451 124 42 47 54 59 62 64;
#X text 348 50 randomly choose one of four chords \, and output the
midi pitches for each of the six strings.;
#X msg 593 199 40 64 67 71;
#X connect 0 0 11 0;
#X connect 7 0 1 0;
#X connect 7 1 2 0;
#X connect 7 2 3 0;
#X connect 7 3 4 0;
#X connect 7 4 5 0;
#X connect 7 5 6 0;
#X connect 8 0 7 0;
#X connect 9 0 7 0;
#X connect 10 0 7 0;
#X connect 11 0 12 0;
#X connect 12 0 10 0;
#X connect 12 1 8 0;
#X connect 12 2 9 0;
#X connect 12 3 13 0;
#X connect 13 0 7 0;
#X restore 28 320 pd chords;
#X text 152 162 Generate a simple 8 note strum pattern;
#X text 209 220 Every 8 notes \, randomly change chords;
#X obj 247 39 i 15;
#X obj 148 415 del 15;
#X obj 183 437 del 15;
#X obj 218 458 del 15;
#X obj 257 480 del 15;
#X obj 293 512 del 15;
#X connect 0 0 9 0;
#X connect 1 0 30 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 13 0;
#X connect 12 0 18 0;
#X connect 12 3 18 0;
#X connect 12 5 18 0;
#X connect 12 7 18 0;
#X connect 13 0 14 0;
#X connect 13 0 16 0;
#X connect 14 0 10 1;
#X connect 15 0 17 0;
#X connect 16 0 12 0;
#X connect 16 1 15 0;
#X connect 17 0 27 0;
#X connect 18 0 22 0;
#X connect 18 0 31 0;
#X connect 20 0 31 1;
#X connect 20 0 32 1;
#X connect 20 0 33 1;
#X connect 20 0 34 1;
#X connect 20 0 35 1;
#X connect 21 0 5 0;
#X connect 22 0 3 0;
#X connect 23 0 4 0;
#X connect 24 0 6 0;
#X connect 25 0 7 0;
#X connect 26 0 8 0;
#X connect 27 0 22 0;
#X connect 27 1 23 0;
#X connect 27 2 21 0;
#X connect 27 3 24 0;
#X connect 27 4 25 0;
#X connect 27 5 26 0;
#X connect 30 0 19 0;
#X connect 31 0 23 0;
#X connect 31 0 32 0;
#X connect 32 0 21 0;
#X connect 32 0 33 0;
#X connect 33 0 24 0;
#X connect 33 0 34 0;
#X connect 34 0 25 0;
#X connect 34 0 35 0;
#X connect 35 0 26 0;
#X restore 334 153 pd strummer;
#X obj 496 187 hsl 180 15 1 40 0 0 empty \$0-width_ctrl width -2 -8
1 10 -262144 -1 -1 3213 1;
#X obj 495 218 hsl 180 15 0.9 0.999 0 0 empty \$0-decay_ctrl decay
-2 -8 1 10 -262144 -1 -1 17177 1;
#X obj 495 248 hsl 180 15 100 8000 0 0 empty \$0-cutoff_ctrl cutoff
-2 -8 1 10 -262144 -1 -1 12689 1;
#N canvas 3 23 1459 835 plucked_instrument 0;
#X obj 22 63 inlet;
#X obj 92 60 inlet;
#X obj 175 60 inlet;
#X obj 241 59 inlet;
#X obj 311 60 inlet;
#X obj 374 63 inlet;
#X obj 473 65 inlet;
#X obj 515 65 inlet;
#X obj 557 65 inlet;
#X text 17 16 6 inlets representing the six strings of our instrument.
A midi note integer message to any inlet excites that particular string
at the specified pitch.;
#X text 469 46 Width \, decay \, and cutoff inlets;
#X obj 21 165 karpluck~;
#X obj 21 373 outlet~;
#X obj 21 349 *~ 0.25;
#X obj 473 128 s \$0-width;
#X obj 516 107 s \$0-decay;
#X obj 557 87 s \$0-cutoff;
#X obj 106 87 r \$0-width;
#X obj 188 89 r \$0-decay;
#X obj 264 90 r \$0-cutoff;
#X obj 92 181 karpluck~;
#X obj 175 203 karpluck~;
#X obj 241 224 karpluck~;
#X obj 309 233 karpluck~;
#X obj 374 264 karpluck~;
#X text 334 112 comment;
#X text 73 343 scale the output down by approx 12dB to avoid clipping
;
#X text 509 273 Karplus-Strong;
#X text 510 312 Synthesis Toolkit (STK);
#X connect 0 0 11 0;
#X connect 1 0 20 0;
#X connect 2 0 21 0;
#X connect 3 0 22 0;
#X connect 4 0 23 0;
#X connect 5 0 24 0;
#X connect 6 0 14 0;
#X connect 7 0 15 0;
#X connect 8 0 16 0;
#X connect 11 0 13 0;
#X connect 13 0 12 0;
#X connect 17 0 11 1;
#X connect 17 0 20 1;
#X connect 17 0 21 1;
#X connect 17 0 22 1;
#X connect 17 0 23 1;
#X connect 17 0 24 1;
#X connect 18 0 11 2;
#X connect 18 0 20 2;
#X connect 18 0 21 2;
#X connect 18 0 22 2;
#X connect 18 0 23 2;
#X connect 18 0 24 2;
#X connect 19 0 11 3;
#X connect 19 0 20 3;
#X connect 19 0 22 3;
#X connect 19 0 21 3;
#X connect 19 0 23 3;
#X connect 19 0 24 3;
#X connect 20 0 13 0;
#X connect 21 0 13 0;
#X connect 22 0 13 0;
#X connect 23 0 13 0;
#X connect 24 0 13 0;
#X restore 329 281 pd plucked_instrument;
#X obj 411 118 hsl 180 15 1 250 0 0 empty \$0-strum_speed_ctrl strum_speed
-2 -8 1 10 -262144 -1 -1 503 1;
#X obj 334 118 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 786 117 loadbang;
#X msg 781 147 0.995;
#X msg 824 147 5700;
#X obj 751 241 s \$0-width_ctrl;
#X obj 781 217 s \$0-decay_ctrl;
#X obj 824 196 s \$0-cutoff_ctrl;
#X text 83 112 Click here to start strummer -->;
#X msg 751 147 8;
#X obj 857 173 s \$0-strum_speed_ctrl;
#X msg 864 148 8;
#X obj 329 342 outlet~;
#X text 94 426 Karplus-Strong algorithm - physical model of a string
;
#X connect 0 0 4 0;
#X connect 0 1 4 1;
#X connect 0 2 4 2;
#X connect 0 3 4 3;
#X connect 0 4 4 4;
#X connect 0 5 4 5;
#X connect 1 0 4 6;
#X connect 2 0 4 7;
#X connect 3 0 4 8;
#X connect 4 0 17 0;
#X connect 5 0 0 1;
#X connect 6 0 0 0;
#X connect 7 0 14 0;
#X connect 7 0 8 0;
#X connect 7 0 9 0;
#X connect 7 0 16 0;
#X connect 8 0 11 0;
#X connect 9 0 12 0;
#X connect 14 0 10 0;
#X connect 16 0 15 0;
#X restore 381 288 pd karplus_strong;
#X text 359 267 "Guitar" String model;
#N canvas 600 107 1371 827 am-synthesis 0;
#X obj 88 48 mtof;
#N canvas 0 22 450 278 (subpatch) 0;
#X array am 100 float 1;
#A 0 -0.159757 -0.1875 -0.215125 -0.242606 -0.2699 -0.296992 -0.323849
-0.350435 -0.376733 -0.402704 -0.428323 -0.453572 -0.478402 -0.502804
-0.526752 -0.550197 -0.57314 -0.595545 -0.617376 -0.638631 -0.659265
-0.679262 -0.698614 -0.717265 -0.735224 -0.752468 -0.76895 -0.784683
-0.799633 -0.813775 -0.827117 -0.839611 -0.85126 -0.862064 -0.871964
-0.880991 -0.889123 -0.896324 -0.902622 -0.907981 -0.912396 -0.915883
-0.918397 -0.919961 -0.92058 -0.920204 -0.91888 -0.916591 -0.913317
-0.909094 -0.903896 -0.897732 -0.890629 -0.882548 -0.87353 -0.863585
-0.852682 -0.840873 -0.82815 -0.814514 -0.800004 -0.784604 -0.768342
-0.751247 -0.733297 -0.714543 -0.694998 -0.674655 -0.653567 -0.631736
-0.60918 -0.585939 -0.562012 -0.537438 -0.512248 -0.486439 -0.460064
-0.433142 -0.405688 -0.377747 -0.349337 -0.320486 -0.291232 -0.261593
-0.231607 -0.201307 -0.170713 -0.139868 -0.108798 -0.0775358 -0.0461155
-0.0145678 0.0170732 0.0487755 0.080504 0.112227 0.143913 0.175522
0.207028 0.238394;
#X coords 0 1 99 -1 200 140 1 0 0;
#X restore 433 97 graph;
#X text 405 90 1;
#X text 402 160 0;
#X text 395 229 -1;
#X obj 91 29 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 204 155 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 248 48 mtof;
#X obj 251 29 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 88 68 osc~;
#X obj 248 68 phasor~;
#X obj 204 206 tabwrite~ am;
#X text 288 14 Sawtooth wave (modulator);
#X text 84 12 Sine wave (carrier);
#X obj 85 249 output~;
#X floatatom 19 61 5 0 0 0 - - -;
#X floatatom 318 63 5 0 0 0 - - -;
#X msg 245 5 1;
#X obj 88 148 *~;
#X floatatom 182 56 5 0 0 0 - - -;
#X msg 160 86 8;
#X floatatom 308 95 5 0 0 0 - - -;
#X obj 204 180 metro 10;
#X connect 0 0 9 0;
#X connect 0 0 15 0;
#X connect 5 0 0 0;
#X connect 6 0 22 0;
#X connect 7 0 10 0;
#X connect 7 0 21 0;
#X connect 8 0 7 0;
#X connect 8 0 16 0;
#X connect 9 0 18 0;
#X connect 10 0 18 1;
#X connect 17 0 8 0;
#X connect 18 0 11 0;
#X connect 18 0 14 0;
#X connect 18 0 14 1;
#X connect 19 0 10 0;
#X connect 20 0 19 0;
#X connect 22 0 11 0;
#X restore 70 203 pd am-synthesis;
#N canvas 34 70 719 731 tremolo 0;
#X obj 88 28 mtof;
#N canvas 0 22 450 278 (subpatch) 0;
#X array tremolo 100 float 1;
#A 0 -0.00800669 -0.00853675 -0.00842516 -0.00817408 -0.00853675 -0.00848096
-0.00878783 -0.0092621 -0.0092342 -0.00959687 -0.00945738 -0.00962477
-0.00962477 -0.00968056 -0.00934579 -0.0100432 -0.00998744 -0.0092342
-0.00942948 -0.00945738 -0.00962477 -0.00945738 -0.00984795 -0.0100711
-0.0100153 -0.0105454 -0.010657 -0.0104896 -0.0105733 -0.010657 -0.0107965
-0.0107407 -0.0105454 -0.0107407 -0.0106291 -0.010378 -0.0106291 -0.0105175
-0.0102664 -0.0102664 -0.0108523 -0.0103222 -0.010657 -0.0111313 -0.0111034
-0.0111313 -0.0108244 -0.0110476 -0.0111313 -0.0116055 -0.0115776 -0.0111592
-0.0115776 -0.0119124 -0.0119124 -0.0112149 -0.0115776 -0.0114102 -0.0115218
-0.0114939 -0.0112707 -0.0114381 -0.0115497 -0.0114381 -0.0115776 -0.0114939
-0.0122751 -0.0118287 -0.0121077 -0.0121356 -0.0120519 -0.012554 -0.0126935
-0.0122193 -0.0124983 -0.0124146 -0.0122751 -0.0122193 -0.0119682 -0.0124704
-0.0124983 -0.0120798 -0.0119124 -0.0123867 -0.012554 -0.0119124 -0.0121077
-0.0119682 -0.0122751 -0.0127493 -0.0121356 -0.0119403 -0.0121914 -0.0118008
-0.0118845 -0.0121356 -0.0122472 -0.0122193 -0.0119403 -0.0120519;
#X coords 0 1 99 -1 200 140 1 0 0;
#X restore 61 356 graph;
#X text 33 349 1;
#X text 30 419 0;
#X text 23 488 -1;
#X obj 91 9 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 244 155 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 244 180 metro 100;
#X obj 88 48 osc~;
#X obj 88 168 *~;
#N canvas 0 22 450 278 (subpatch) 0;
#X array osc_adjusted 100 float 1;
#A 0 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158
0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158
0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158
0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158
0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158
0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158
0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158
0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158
0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158
0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158
0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158
0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158 0.914158
0.914158 0.914158 0.914158 0.914158 0.914158;
#X coords 0 1 99 -1 200 140 1 0 0;
#X restore 271 356 graph;
#N canvas 0 22 450 278 (subpatch) 0;
#X array osc_unadjusted 100 float 1;
#A 0 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316
0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316
0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316
0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316
0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316
0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316
0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316
0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316
0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316
0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316
0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316
0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316 0.828316
0.828316 0.828316 0.828316 0.828316 0.828316;
#X coords 0 1 99 -1 200 140 1 0 0;
#X restore 481 356 graph;
#X obj 204 236 tabwrite~ osc_adjusted;
#X floatatom 213 49 5 0 0 0 - - -;
#X obj 214 70 osc~;
#X obj 103 107 +~ 1;
#X obj 103 129 *~ 0.5;
#X obj 214 206 tabwrite~ osc_unadjusted;
#X obj 194 266 tabwrite~ tremolo;
#X text 84 -8 Sine wave;
#X obj 85 269 output~;
#X obj 53 50 adc~;
#X obj 39 127 gate~;
#X connect 0 0 8 0;
#X connect 5 0 0 0;
#X connect 6 0 7 0;
#X connect 7 0 12 0;
#X connect 7 0 17 0;
#X connect 7 0 18 0;
#X connect 9 0 18 0;
#X connect 9 0 20 0;
#X connect 9 0 20 1;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 14 0 17 0;
#X connect 15 0 16 0;
#X connect 16 0 9 1;
#X connect 16 0 12 0;
#X connect 21 0 9 0;
#X restore 70 286 pd tremolo;
#N canvas 37 117 1360 740 ring-modulation 0;
#N canvas 0 22 450 278 (subpatch) 0;
#X array ringmod 100 float 1;
#A 0 -0.00741483 -0.00711032 -0.00719827 -0.00692073 -0.00681419 -0.00682853
-0.00641129 -0.00604545 -0.00577737 -0.00588849 -0.00569321 -0.00547622
-0.00516827 -0.00490929 -0.00474435 -0.00458075 -0.00394271 -0.00373958
-0.00369521 -0.00351733 -0.003297 -0.00338677 -0.00343142 -0.00310579
-0.00308612 -0.00293755 -0.00279064 -0.00247592 -0.00227021 -0.00221306
-0.00209423 -0.0019973 -0.00184013 -0.00184731 -0.00177352 -0.00144044
-0.00117162 -0.00120225 -0.000977952 -0.000795748 -0.000596964 -0.000152839
-0.000416936 -0.000338365 0.000223719 -0.000110929 5.49953e-05 0.000399855
0.000486467 0.000339325 0.000495596 0.000473587 0.000417109 0.000688737
0.000852817 0.00076022 0.000786327 0.000960847 0.000902088 0.000795573
0.000916 0.000970105 0.00108579 0.000871804 0.00137055 0.00127932 0.00105422
0.00120605 0.00135411 0.00138192 0.00139432 0.00124971 0.00143084 0.00159316
0.00140894 0.00167445 0.001626 0.00151242 0.00164778 0.00142048 0.00127454
0.00143069 0.00137331 0.00147404 0.00157109 0.00153556 0.0015003 0.00143129
0.00139718 0.00153933 0.00136234 0.00125424 0.00129522 0.00136475 0.00113866
0.0011969 0.0010871 0.00117103 0.00128814 0.00130814;
#X coords 0 1 99 -1 200 140 1 0 0;
#X restore 339 181 graph;
#X text 311 174 1;
#X text 308 244 0;
#X text 301 313 -1;
#X obj 166 168 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 166 193 metro 100;
#X obj 88 168 *~;
#X obj 88 48 adc~;
#X text 65 21 microphone input;
#X obj 166 227 tabwrite~ ringmod;
#X obj 106 83 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 103 107 mtof;
#X obj 103 139 osc~;
#X text 192 113 Modulate one audio signal (input from the microphone)
by a second audio signal (output from the osc~ object);
#X obj 85 269 output~;
#X floatatom 141 107 5 0 0 0 - - -;
#X floatatom 141 137 5 0 0 0 - - -;
#X connect 4 0 5 0;
#X connect 5 0 9 0;
#X connect 6 0 9 0;
#X connect 6 0 14 0;
#X connect 6 0 14 1;
#X connect 7 0 6 0;
#X connect 10 0 11 0;
#X connect 10 0 15 0;
#X connect 11 0 12 0;
#X connect 11 0 16 0;
#X connect 12 0 6 1;
#X restore 70 306 pd ring-modulation;
#N canvas 355 23 1734 1062 fm-synthesis 0;
#N canvas 0 22 450 278 (subpatch) 0;
#X array fm 100 float 1;
#A 0 -0.231013 -0.114072 0.00538361 0.125641 0.244907 0.361338 0.473078
0.578287 0.67518 0.762066 0.837379 0.89969 0.947789 0.980705 0.997639
0.998177 0.982076 0.949501 0.9008 0.83674 0.758303 0.666757 0.563658
0.45075 0.329978 0.203459 0.0734057 -0.0579014 -0.188151 -0.315067
-0.43643 -0.550144 -0.654278 -0.747063 -0.826985 -0.892783 -0.943419
-0.97823 -0.996736 -0.998871 -0.984764 -0.954876 -0.909931 -0.850865
-0.77884 -0.695228 -0.601535 -0.499393 -0.39052 -0.276687 -0.159681
-0.041281 0.076777 0.192832 0.305314 0.412772 0.513895 0.60749 0.69256
0.768253 0.833887 0.888945 0.933083 0.966074 0.987911 0.998688 0.998615
0.988051 0.967453 0.937351 0.898348 0.851143 0.796456 0.735054 0.66774
0.595324 0.518586 0.438366 0.355423 0.270548 0.184478 0.0979191 0.0115476
-0.0739998 -0.158129 -0.240286 -0.319964 -0.396705 -0.470084 -0.539714
-0.605282 -0.666454 -0.723009 -0.774698 -0.821341 -0.862792 -0.898917
-0.929599 -0.954789 -0.974438;
#X coords 0 1 99 -1 200 140 1 0 0;
#X restore 344 265 graph;
#X text 316 258 1;
#X text 313 328 0;
#X text 306 397 -1;
#X obj 85 53 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 171 271 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 171 296 metro 100;
#X text 78 36 Carrier Frequency;
#X obj 82 83 mtof~;
#X text 91 462 * NOTE here we're using "mtof~" not "mtof". The output
from this object is an audio signal not just a float.;
#X obj 171 322 tabwrite~ fm;
#X obj 82 283 osc~;
#X obj 82 231 +~;
#X obj 97 145 osc~;
#X text 136 118 Modulation frequency in Hz;
#X floatatom 97 118 5 0 0 0 - - -;
#X obj 97 205 *~;
#X floatatom 112 177 5 0 0 0 - - -;
#X text 151 178 Modulation amount in Hz;
#X obj 79 332 output~;
#X text 425 30 The Synthesis of Complex Audio Spectra by Means of Frequency
Modulation;
#X text 423 73 JOHN M. CHOWNING (first published: J. M. Chowning. The
Synthesis of Complex Audio Spectra by Means of Frequency Modulation.
J. Audio Eng. Soc. 21 \, 7 \, 1973.);
#X text 422 143 https://ccrma.stanford.edu/sites/default/files/user/jc/fm_synthesispaper-2.pdf
;
#X floatatom 21 80 5 0 0 0 - - -;
#X obj 21 102 mtof;
#X floatatom 21 125 5 0 0 0 - - -;
#X connect 4 0 8 0;
#X connect 4 0 23 0;
#X connect 5 0 6 0;
#X connect 6 0 10 0;
#X connect 8 0 12 0;
#X connect 11 0 10 0;
#X connect 11 0 19 0;
#X connect 11 0 19 1;
#X connect 12 0 11 0;
#X connect 13 0 16 0;
#X connect 15 0 13 0;
#X connect 16 0 12 1;
#X connect 17 0 16 1;
#X connect 23 0 24 0;
#X connect 24 0 25 0;
#X restore 70 223 pd fm-synthesis;
#N canvas 0 23 1920 1129 reverb 0;
#X floatatom 200 230 0 0 120 0 - - -;
#N canvas 0 22 539 448 tests 0;
#X obj 67 33 inlet;
#X obj 309 189 inlet;
#X obj 235 207 line~;
#X obj 235 230 cos~;
#X obj 235 68 loadbang;
#X msg 235 91 -0.25;
#X obj 235 276 *~;
#X obj 186 309 hip~ 5;
#X floatatom 308 218 0 0 0 0 - - -;
#X obj 308 264 osc~ 440;
#X obj 308 241 mtof;
#X obj 235 253 *~ 0.1;
#X obj 308 299 *~;
#X obj 326 325 *~;
#X obj 292 330 *~;
#X msg 279 150 -0.25 \, 0.25 \$1;
#X obj 41 148 biquad~ 0 0 1 -1 0;
#X obj 63 70 t b;
#X obj 104 72 del 3;
#X obj 57 101 1;
#X obj 96 101 0;
#X obj 41 355 outlet~;
#X obj 279 126 inlet;
#X obj 51 192 *~;
#X connect 0 0 17 0;
#X connect 1 0 8 0;
#X connect 2 0 3 0;
#X connect 3 0 11 0;
#X connect 4 0 5 0;
#X connect 5 0 2 0;
#X connect 6 0 7 0;
#X connect 7 0 21 0;
#X connect 8 0 10 0;
#X connect 9 0 6 1;
#X connect 9 0 12 0;
#X connect 9 0 12 1;
#X connect 9 0 13 0;
#X connect 10 0 9 0;
#X connect 11 0 6 0;
#X connect 12 0 13 1;
#X connect 12 0 6 1;
#X connect 12 0 14 0;
#X connect 12 0 14 1;
#X connect 13 0 6 1;
#X connect 14 0 6 1;
#X connect 15 0 2 0;
#X connect 16 0 23 0;
#X connect 17 0 18 0;
#X connect 17 0 19 0;
#X connect 18 0 20 0;
#X connect 19 0 16 0;
#X connect 19 0 23 1;
#X connect 20 0 16 0;
#X connect 20 0 23 1;
#X connect 22 0 15 0;
#X connect 23 0 21 0;
#X restore 117 189 pd tests;
#X msg 156 70 10;
#X msg 154 97 20;
#X msg 153 125 100;
#X msg 152 150 500;
#X obj 117 50 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 137 44 impulse;
#X floatatom 197 162 0 0 0 0 - - -;
#X text 236 131 tone;
#X text 235 147 pitch;
#X text 241 230 level \, dB;
#X floatatom 235 252 0 0 100 0 - - -;
#X text 276 252 liveness \, 0-100;
#X floatatom 270 276 4 0 5000 0 - - -;
#X floatatom 305 299 0 0 100 0 - - -;
#X text 318 274 crossover frequency \, Hz.;
#X text 341 301 HF damping \, percent;
#X text 195 70 tone;
#X text 196 87 bursts;
#X text 232 165 (60 for;
#X text 215 185 middle C);
#X obj 130 325 rev3~ 100 90 3000 20;
#X text 364 22 REV3~ - hard-core \, 2-in \, 4-out reverberator;
#X text 337 74 The creation arguments (level \, liveness \, crossover
frequency \, HF damping) may also be supplied in four inlets as shown.
The "liveness" (actually the internal feedback percentage) should be
100 for infinite reverb \, 90 for longish \, and 80 for short. The
crossover frequency and HF damping work together: at frequencies above
crossover \, the feedback is diminished by the "damping" as a percentage.
So zero HF damping means equal reverb time at all frequencies \, and
100% damping means almost nothing above the crossover frequency gets
through.;
#X text 337 47 (A more expensive \, presumably better \, one than rev2~.)
;
#X obj 39 191 inlet~;
#X obj 115 393 output~;
#X obj 55 149 adc~;
#X connect 0 0 22 2;
#X connect 1 0 22 0;
#X connect 1 0 27 0;
#X connect 2 0 1 1;
#X connect 3 0 1 1;
#X connect 4 0 1 1;
#X connect 5 0 1 1;
#X connect 6 0 1 0;
#X connect 8 0 1 2;
#X connect 12 0 22 3;
#X connect 14 0 22 4;
#X connect 15 0 22 5;
#X connect 22 0 27 0;
#X connect 22 1 27 1;
#X connect 26 0 22 0;
#X connect 26 0 27 0;
#X connect 28 0 22 0;
#X restore 70 326 pd reverb;
#N canvas 287 23 1131 785 delay 0;
#X text 328 88 DELAYS;
#X text 327 175 The delwrite~ object creates the delay line \; you
give it a name and a size in milliseconds. Each delwrite~ should have
a different name.;
#N canvas 678 444 548 248 sample 0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array delay-tab 62079 float 0;
#X coords 0 1 62078 -1 200 140 1;
#X restore 100 20 graph;
#X obj 61 176 loadbang;
#X obj 60 221 soundfiler;
#X msg 61 198 read -resize voice.wav delay-tab;
#X connect 1 0 3 0;
#X connect 3 0 2 0;
#X restore 332 433 pd sample;
#X floatatom 117 292 4 0 999 0 - - -;
#X text 160 291 <-- delay time;
#X text 125 326 read from delay line;
#X obj 117 345 delread~ delay1;
#X obj 93 159 metro 1000;
#X text 119 242 write to delay line;
#X obj 94 371 +~;
#X obj 103 261 delwrite~ delay1 1000;
#X text 327 120 You can delay a signal using the delwrite~ and delread~
objects. In this example \, a sample loops continuously and is added
to a delayed copy of itself.;
#X text 326 311 The delread~ object always delays the signal an integer
number of samples and does no interpolation.;
#X text 107 203 test signal to delay;
#X text 327 226 Delread~'s arguments are the name of a delwrite (of
which there should be exactly one) and an optional delay time in milliseconds
between 0 and the length of the delay line. Each delwrite~ may have
as many delread~s as you wish \, which can then function as multiple
delay taps.;
#X text 193 305 (msec);
#X floatatom 150 127 4 0 0 0 - - -;
#X text 130 52 nonzero number or "bang" to start;
#X msg 94 53 bang;
#X msg 105 83 stop;
#X text 142 83 zero or "stop" to stop;
#X obj 95 399 output~;
#X msg 55 156 bang;
#X obj 93 183 tabplay~ delay-tab;
#X connect 3 0 6 0;
#X connect 6 0 9 1;
#X connect 7 0 23 0;
#X connect 9 0 21 0;
#X connect 9 0 21 1;
#X connect 16 0 7 1;
#X connect 18 0 7 0;
#X connect 19 0 7 0;
#X connect 22 0 23 0;
#X connect 23 0 9 0;
#X connect 23 0 10 0;
#X restore 70 346 pd delay;
#X text 45 262 Processing;
#N canvas 0 23 1920 1129 file-playback-scratcher 0;
#X obj 62 225 hip~ 5;
#X text 121 227 high pass filter to cut DC;
#N canvas 0 22 450 300 (subpatch) 0;
#X array scratcher-table 44104 float 0;
#X coords 0 1.02 44103 -1.02 200 130 1 0 0;
#X restore 549 90 graph;
#X obj 62 158 line~;
#X obj 62 109 * 441;
#X floatatom 62 55 0 0 100 0 - - -;
#X obj 62 133 pack 0 100;
#X text 97 56 <-- read point in 100ths of a second;
#X text 119 109 convert to SAMPLES (441 samples in 0.01 sec);
#X obj 283 318 loadbang;
#X text 271 182 read from the table;
#X text 262 200 (the input is the index in samples);
#X text 555 243 (one second plus three extra;
#X text 557 262 for 4-point interpolation);
#X text 263 387 message to read a soundfile into the table (automatically
sent when you load this patch by the "loadbang" object.);
#X text 109 158 convert smoothly to audio signal;
#X text 109 70 (range is 0-100.) YOU ONLY HEAR OUTPUT;
#X text 110 86 WHEN THIS IS 0-100 AND ACTIVELY CHANGING.;
#X text 548 221 --- 44103 samples ---;
#X obj 283 367 soundfiler;
#X obj 55 342 output~;
#X msg 283 342 read voice.wav scratcher-table;
#X obj 62 193 tabread4~ scratcher-table;
#X connect 0 0 20 0;
#X connect 0 0 20 1;
#X connect 3 0 22 0;
#X connect 4 0 6 0;
#X connect 5 0 4 0;
#X connect 6 0 3 0;
#X connect 9 0 21 0;
#X connect 21 0 19 0;
#X connect 22 0 0 0;
#X restore 58 453 pd file-playback-scratcher;
#N canvas 372 32 851 837 drums-horrible-snare 0;
#X obj 106 98 noise~;
#X obj 163 98 line~;
#X obj 106 152 *~;
#X obj 135 220 hsl 128 15 0 1 0 0 empty empty Volume_0-1 -2 -6 0 8
-262144 -1 -1 0 1;
#X msg 163 70 1 \, 0 50;
#X obj 163 32 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1
-1;
#X obj 106 188 lop~ 400;
#X floatatom 159 164 5 0 0 0 - - -;
#X obj 106 247 *~ 1;
#X obj 87 301 output~;
#X text 15 97 White noise;
#X text 170 188 Low-pass filter;
#X obj 121 7 metro 200;
#X obj 81 12 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X connect 0 0 2 0;
#X connect 1 0 2 1;
#X connect 2 0 6 0;
#X connect 3 0 8 1;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X connect 6 0 8 0;
#X connect 7 0 6 1;
#X connect 8 0 9 0;
#X connect 8 0 9 1;
#X connect 12 0 5 0;
#X connect 13 0 12 0;
#X restore 368 128 pd drums-horrible-snare;
#N canvas 310 103 839 822 drums-horrible-kick 0;
#X obj 209 153 line~;
#X obj 82 222 *~;
#X obj 118 235 hsl 128 15 0 1 0 0 empty empty Volume_0-1 -2 -6 0 8
-262144 -1 -1 0 1;
#X msg 209 129 1 \, 0 50;
#X obj 152 44 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1
-1;
#X obj 82 191 osc~;
#X obj 82 153 line~;
#X msg 82 130 220 \, 50 20;
#X msg 164 130 0.5;
#X obj 82 265 *~ 1.3;
#X text 71 54 comment;
#X obj 61 320 output~;
#X connect 0 0 1 1;
#X connect 1 0 9 0;
#X connect 2 0 9 1;
#X connect 3 0 0 0;
#X connect 4 0 3 0;
#X connect 4 0 7 0;
#X connect 4 0 8 0;
#X connect 5 0 1 0;
#X connect 6 0 5 0;
#X connect 7 0 6 0;
#X connect 8 0 5 1;
#X connect 9 0 11 0;
#X connect 9 0 11 1;
#X restore 368 148 pd drums-horrible-kick;
#N canvas 75 23 1264 1129 horrible-marimba 0;
#X obj 245 457 line~;
#X obj 230 484 *~;
#X obj 243 41 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1
-1;
#X obj 228 396 osc~;
#X obj 426 255 noise~;
#X obj 484 293 line~;
#X obj 427 347 *~;
#X obj 427 383 lop~ 5000;
#X obj 132 320 line~;
#X obj 85 317 osc~;
#X msg 132 290 1 \, 0 100;
#X floatatom 230 133 3 0 0 0 - - -;
#X floatatom 262 132 3 0 0 0 - - -;
#X obj 85 350 *~;
#X obj 85 287 * 3;
#X obj 85 383 *~ 1;
#X obj 427 442 *~ 0.5;
#X obj 229 178 mtof;
#X msg 484 265 1 \, 0 44;
#X msg 245 428 1 \, 0 400;
#X obj 230 510 *~ 0.4;
#X obj 262 178 * 0.33;
#X obj 262 200 * 0.4;
#X obj 287 41 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 96 40 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X text 101 19 Pitch (midi);
#X text 293 19 Velocity (volume);
#X obj 211 654 output~;
#X connect 0 0 1 1;
#X connect 1 0 20 0;
#X connect 2 0 19 0;
#X connect 2 0 10 0;
#X connect 2 0 18 0;
#X connect 2 0 12 0;
#X connect 2 0 11 0;
#X connect 3 0 1 0;
#X connect 4 0 6 0;
#X connect 5 0 6 1;
#X connect 6 0 7 0;
#X connect 7 0 16 0;
#X connect 8 0 13 1;
#X connect 9 0 13 0;
#X connect 10 0 8 0;
#X connect 11 0 17 0;
#X connect 12 0 21 0;
#X connect 13 0 15 0;
#X connect 14 0 9 0;
#X connect 15 0 27 0;
#X connect 16 0 27 0;
#X connect 17 0 3 0;
#X connect 17 0 14 0;
#X connect 18 0 5 0;
#X connect 19 0 0 0;
#X connect 20 0 27 1;
#X connect 20 0 27 0;
#X connect 21 0 22 0;
#X connect 22 0 20 1;
#X connect 22 0 15 1;
#X connect 22 0 16 1;
#X connect 23 0 12 0;
#X connect 24 0 11 0;
#X restore 368 168 pd horrible-marimba;
#N canvas 653 23 576 695 cleaner-horrible-marimba 0;
#X obj -1022 66 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291
-1 -1;
#X floatatom -1035 158 3 0 0 0 - - -;
#X floatatom -1003 159 3 0 0 0 - - -;
#X obj -1036 193 mtof;
#X obj -1003 193 * 0.33;
#X obj -1003 215 * 0.4;
#X obj -985 32 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj -1144 32 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X text -1139 11 Pitch (midi);
#X text -979 10 Velocity (volume);
#N canvas 953 518 450 300 noise-component 0;
#X obj 397 10 inlet;
#X obj 311 10 inlet;
#X obj 254 279 outlet~;
#X obj 252 46 noise~;
#X obj 311 103 line~;
#X obj 254 157 *~;
#X obj 254 193 lop~ 5000;
#X obj 254 252 *~ 0.5;
#X msg 311 75 1 \, 0 44;
#X connect 0 0 7 1;
#X connect 1 0 8 0;
#X connect 3 0 5 0;
#X connect 4 0 5 1;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 2 0;
#X connect 8 0 4 0;
#X restore -920 477 pd noise-component;
#N canvas 161 521 450 300 harmonic-osc 0;
#X obj -981 91 line~;
#X obj -1038 92 osc~;
#X msg -981 61 1 \, 0 100;
#X obj -1038 141 *~;
#X obj -1038 61 * 3;
#X obj -1038 174 *~ 1;
#X obj -1039 8 inlet;
#X obj -981 9 inlet;
#X obj -834 14 inlet;
#X obj -1038 210 outlet~;
#X connect 0 0 3 1;
#X connect 1 0 3 0;
#X connect 2 0 0 0;
#X connect 3 0 5 0;
#X connect 4 0 1 0;
#X connect 5 0 9 0;
#X connect 6 0 4 0;
#X connect 7 0 2 0;
#X connect 8 0 5 1;
#X restore -1213 458 pd harmonic-osc;
#N canvas 193 491 450 300 fundamental 0;
#X obj -250 32 inlet;
#X obj -232 141 line~;
#X obj -247 168 *~;
#X obj -249 80 osc~;
#X msg -232 112 1 \, 0 400;
#X obj -247 194 *~ 0.4;
#X obj -144 39 inlet;
#X obj -94 40 inlet;
#X obj -247 249 outlet~;
#X connect 0 0 3 0;
#X connect 1 0 2 1;
#X connect 2 0 5 0;
#X connect 3 0 2 0;
#X connect 4 0 1 0;
#X connect 5 0 8 0;
#X connect 6 0 4 0;
#X connect 7 0 5 1;
#X restore -1037 414 pd fundamental;
#X obj -971 158 s play-bang;
#X obj -1170 389 r play-bang;
#X obj -1035 272 s play-freq;
#X obj -1213 358 r play-freq;
#X obj -997 359 r play-bang;
#X obj -920 437 r play-bang;
#X obj -1036 335 r play-freq;
#X obj -815 436 r play-vol;
#X obj -1003 251 s play-vol;
#X obj -956 384 r play-vol;
#X obj -1126 419 r play-vol;
#X obj -1048 578 output~;
#X connect 0 0 2 0;
#X connect 0 0 1 0;
#X connect 0 0 13 0;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 3 0 15 0;
#X connect 4 0 5 0;
#X connect 5 0 21 0;
#X connect 6 0 2 0;
#X connect 7 0 1 0;
#X connect 7 0 0 0;
#X connect 10 0 24 1;
#X connect 11 0 24 0;
#X connect 12 0 24 0;
#X connect 12 0 24 1;
#X connect 14 0 11 1;
#X connect 16 0 11 0;
#X connect 17 0 12 1;
#X connect 18 0 10 0;
#X connect 19 0 12 0;
#X connect 20 0 10 1;
#X connect 22 0 12 2;
#X connect 23 0 11 2;
#X restore 368 188 pd cleaner-horrible-marimba;
#X text 357 102 "Horrible" Instruments;
#N canvas 422 160 927 717 bells 0;
#X obj 47 459 catch~ sum;
#X obj 359 284 s frequency;
#X obj 473 284 s duration;
#X floatatom 473 234 0 0 0 0 - - -;
#X obj 473 259 * 100;
#X obj 359 259 mtof;
#X floatatom 359 234 0 0 0 0 - - -;
#X text 92 17 ADDITIVE SYNTHESIS;
#X text 511 224 duration in tenths;
#X text 513 240 of a second;
#X text 397 233 pitch;
#X text 443 528 updated for Pd version 0.37;
#X text 36 93 Partial takes as arguments an amplitude \, a relative
frequency \, a detuning frequency \, and a relative duration. You set
absolute duration and pitch using the controls below. Hit the trigger
to make sound.;
#X obj 46 174 partial 1 1 0.56 0;
#X text 37 41 This patch demonstrates using an abstraction \, "partial"
\, to make a simple additive synthesis instrument originally from Jean-Claude
Risset.;
#X obj 359 179 loadbang;
#X msg 359 202 72;
#X msg 473 204 40;
#X obj 362 332 bng 25 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 395 334 <-- click to play a note;
#X obj 362 368 s trigger;
#X obj 46 199 partial 0.67 0.9 0.56 1;
#X obj 46 224 partial 1 0.65 0.92 0;
#X obj 46 249 partial 1.8 0.55 0.92 1.7;
#X obj 46 274 partial 2.67 0.325 1.19 0;
#X obj 46 299 partial 1.67 0.35 1.7 0;
#X obj 46 324 partial 1.46 0.25 2 0;
#X obj 46 349 partial 1.33 0.2 2.74 0;
#X obj 46 374 partial 1.33 0.15 3 0;
#X obj 46 399 partial 1 0.1 3.76 0;
#X obj 46 424 partial 1.33 0.075 4.07 0;
#X obj 456 138 inlet;
#X obj 529 140 inlet;
#X obj 308 309 inlet;
#X text 445 118 Midi Pitch;
#X text 525 105 duration in tenths;
#X text 527 121 of a second;
#X obj 47 498 output~;
#X connect 0 0 37 0;
#X connect 0 0 37 1;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X connect 5 0 1 0;
#X connect 6 0 5 0;
#X connect 15 0 16 0;
#X connect 15 0 17 0;
#X connect 16 0 6 0;
#X connect 17 0 3 0;
#X connect 18 0 20 0;
#X connect 31 0 6 0;
#X connect 32 0 3 0;
#X connect 33 0 18 0;
#X restore 388 362 pd bells;
#X text 370 341 Risset "Bells" model;
#N canvas 586 95 567 604 play_soundfile 0;
#X obj 13 22 loadbang;
#X obj 13 71 soundfiler;
#N canvas 0 22 450 300 (subpatch) 0;
#X array player-table-1 44104 float 0;
#X coords 0 1.02 44103 -1.02 200 130 1 0 0;
#X restore 328 22 graph;
#X text 334 175 (one second plus three extra;
#X text 336 194 for 4-point interpolation);
#X text 327 153 --- 44103 samples ---;
#X obj 15 379 dac~ 1;
#X obj 15 335 *~;
#X obj 33 307 line~;
#X msg 47 283 0 100;
#X text 64 380 audio output;
#X obj 15 357 hip~ 5;
#X obj 13 134 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 35 133 0;
#X msg 69 133 0 22500;
#X msg 129 133 22500;
#X msg 33 261 0.5 100;
#X obj 33 239 loadbang;
#X msg 176 133 22500 10000;
#X obj 47 512 readsf~;
#X obj 93 553 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X msg 47 445 1;
#X msg 17 445 0;
#X obj 47 536 dac~;
#X text 35 419 Play file from disk;
#X obj 15 177 tabplay~ player-table-1;
#X msg 13 46 read voice.wav player-table-1;
#X msg 57 479 open voice.wav;
#X obj 215 176 r playme;
#X connect 0 0 26 0;
#X connect 7 0 11 0;
#X connect 8 0 7 1;
#X connect 9 0 8 0;
#X connect 11 0 6 0;
#X connect 12 0 25 0;
#X connect 13 0 25 0;
#X connect 14 0 25 0;
#X connect 15 0 25 0;
#X connect 16 0 8 0;
#X connect 17 0 16 0;
#X connect 18 0 25 0;
#X connect 19 0 23 0;
#X connect 19 1 20 0;
#X connect 21 0 19 0;
#X connect 22 0 19 0;
#X connect 25 0 7 0;
#X connect 26 0 1 0;
#X connect 27 0 19 0;
#X connect 28 0 12 0;
#X restore 58 433 pd play_soundfile;
#X text 40 400 File Playback;
#X obj 939 672 dac~;
#X text 847 194 microphone;
#X obj 940 245 channel;
#N canvas 0 23 914 497 stuff 0;
#X text 868 46 WELCOME TO THE MASHEEN;
#X text 822 104 Today we're going to learn some techniques to make
more interesting sounds;
#X text 822 167 Not that our;
#X obj 916 167 osc~ 440;
#X text 989 167 isn't super interesting...;
#X text 1186 168 (even spelled correctly);
#X text 825 237 But we need a few more skillz to fall back on if our
goal is to make some good music \, no?;
#X text 823 309 I thought so;
#X text 824 465 That aside...;
#X text 824 507 I should probably get started now... thanks Pink Floyd
for the dramatic intro.;
#X text 828 578 https://www.youtube.com/watch?v=lt-udg9zQSE;
#X text 826 369 On our left we see a bunch of pd modules \; these are
actually all in the MASHEEN project \, available in the hamilr4.pd
patch;
#X text 927 404 comment;
#X restore 1857 1102 pd stuff;
#X text 75 367 "Run Like Hell" - Pink Floyd;
#X obj 939 193 adc~;
#X obj 539 336 throw~ hamilr4_audio_1;
#X connect 5 0 30 0;
#X connect 26 0 24 0;
#X connect 26 1 24 1;
#X restore 228 227 pd more_sounds;
#N canvas 253 126 1418 980 more_control 0;
#N canvas 545 23 1259 1129 keyboard-input 0;
#X obj 121 157 key;
#X floatatom 121 185 3 0 0 0 - - -;
#X floatatom 160 183 3 0 0 0 - - -;
#X obj 160 157 keyup;
#X floatatom 211 183 3 0 0 0 - - -;
#X obj 211 157 keyname;
#X symbolatom 257 184 10 0 0 0 - - -;
#X text 48 20 Key and keyup report the (system dependent) numbers of
"printing" keys of the keyboard. Keyname gives the symbolic name of
the key \, with a 1 or 0 if it's up or down \, and works with non-printing
keys like shift or "F1".;
#X text 40 87 Caveat -- this only works if Pd actually gets the key
events which can depend on the stacking order of windows and/or the
pointer location \, depending on the system.;
#X obj 52 318 select 97;
#X obj 52 349 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 121 318 select 115;
#X obj 121 346 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 273 318 select 119;
#X obj 273 343 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 197 346 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 197 318 select 100;
#X text 49 400 ASCII - different on different operating systems;
#X obj 53 379 s playme;
#X obj 160 215 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 121 215 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 337 185 symbol;
#X connect 0 0 1 0;
#X connect 1 0 13 0;
#X connect 1 0 9 0;
#X connect 1 0 16 0;
#X connect 1 0 11 0;
#X connect 1 0 20 0;
#X connect 2 0 19 0;
#X connect 3 0 2 0;
#X connect 5 0 4 0;
#X connect 5 1 6 0;
#X connect 9 0 10 0;
#X connect 11 0 12 0;
#X connect 13 0 14 0;
#X connect 16 0 15 0;
#X restore 69 65 pd keyboard-input;
#N canvas -9 6 1588 1160 sequences 0;
#X obj 79 59 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X obj 79 87 metro 250;
#X obj 79 115 f;
#X obj 106 114 + 1;
#X obj 79 142 mod 16;
#X obj 92 173 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256;
#X obj 79 226 + 1;
#X obj 79 278 int;
#X obj 79 304 mtof;
#X obj 92 332 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256;
#X obj 79 368 phasor~;
#X obj 79 195 tabread melody;
#N canvas 0 22 1652 1321 (subpatch) 0;
#X array melody 16 float 1;
#A 0 60 62 64 65 67 69 71 72 72 72 67 69 71 72 72 72;
#X coords 0 127 15 0 200 140 1 0 0;
#X restore 213 68 graph;
#X obj 110 228 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-262144 -1 -1 0 256;
#X msg 213 231 \; melody 0 60 62 64 65 67 69 71 72 72 72 67 69 71 72
72 72;
#X msg 213 271 \; melody 0 74 76 77 76 74 77 79 81 88 88 0 82 0 62
0;
#X obj 79 408 output~;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 0 4 0;
#X connect 3 0 2 1;
#X connect 4 0 5 0;
#X connect 4 0 11 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X connect 10 0 16 0;
#X connect 10 0 16 1;
#X connect 11 0 6 0;
#X connect 11 0 13 0;
#X restore 70 32 pd sequences;
#X obj 68 175 receive hamilr4_control;
#X obj 68 238 list trim;
#X obj 68 217 list prepend set;
#X obj 66 392 mouse_osx;
#X text 36 102 KEYBOARD CONTROLLER;
#X obj 325 245 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 68 288 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 366 193 list trim;
#X obj 443 264 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 366 239 route key;
#X obj 366 285 unpack f s f;
#X floatatom 366 322 5 0 0 0 - - -;
#X symbolatom 407 323 10 0 0 0 - - -;
#X floatatom 447 349 5 0 0 0 - - -;
#X obj 447 371 mtof;
#X floatatom 447 394 5 0 0 0 - - -;
#X obj 447 420 osc~;
#X obj 447 453 throw~ hamilr4_audio_1;
#X msg 219 895 poll;
#X obj 209 932 cyclone/mousestate, f 39;
#X msg 209 867 nopoll;
#X obj 177 890 bng 18 250 50 0 empty empty empty 17 7 0 10 -228856
-1 -1;
#X text 437 975 delta y;
#X obj 440 957 nbx 4 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-228856 -1 -1 0 256;
#X obj 382 957 nbx 4 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-228856 -1 -1 0 256;
#X text 379 974 delta x;
#X obj 324 957 nbx 4 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-228856 -1 -1 0 256;
#X obj 266 957 nbx 4 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10
-228856 -1 -1 0 256;
#X text 267 974 x pos;
#X text 327 974 y pos;
#X obj 209 955 tgl 18 0 empty empty empty 17 7 0 10 -228856 -1 -1 0
1;
#X text 200 974 click;
#X obj 272 877 tgl 15 0 empty empty empty 17 7 0 10 -228856 -1 -1 0
1;
#X text 290 877 polling on/off with [metro];
#X msg 137 892 zero;
#X msg 95 892 reset;
#X text 41 573 CYCLONE LIBRARY MOUSESTATE - WINDOWS AND OSX VERSION
;
#X obj 271 900 metro 50;
#X text 78 668 Mode 0 (default) uses "screen-relative coordinates"
\, where (0 \, 0) is the top left corner of the primary display.;
#X msg 144 866 mode \$1;
#X obj 144 810 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -228856
-1 -1 1;
#X text 167 809 mode 0: screen relative;
#X text 167 824 mode 1: patch relative;
#X text 167 839 mode 2: front-most patch relative;
#X text 76 621 There are 3 different modes in [mousestate] that define
what the coordinate (0 \, 0) of the (x \, y) position point is in relation
to.;
#X text 78 704 Mode 1 uses "patch-relative coordinates" \, where (0
\, 0) is the top left corner of the patch area where the object is.
;
#X text 78 743 Mode 2 uses "front-most patch-relative coordinates"
\, where (0 \, 0) is the top left corner of the front patch - try by
selectring the parent patch for example.;
#X obj 1035 664 vradio 15 1 0 3 empty empty empty 0 -8 0 10 -228856
-1 -1 0;
#X text 1058 663 mode 0: screen relative;
#X text 1058 678 mode 1: patch relative;
#X text 1058 693 mode 2: front-most patch relative;
#X obj 933 699 tgl 15 0 empty empty empty 17 7 0 10 -228856 -1 -1 0
1;
#X text 731 697 polling on/off with [metro];
#X floatatom 984 666 5 0 0 0 - - -;
#X text 777 666 Polling speed (50ms default);
#X text 732 849 outputs list of all values;
#X msg 933 849 username mouse 0 705 75 -5 -2;
#X obj 933 761 mouser username;
#X obj 932 904 r username_control;
#X msg 933 976 username mouse 0 705 75 -5 -2;
#X text 33 363 MOUSE CONTROLLER - SIMPLE OSX VERSION;
#X obj 933 728 tgl 15 0 empty empty empty 17 7 0 10 -228856 -1 -1 0
1;
#X text 772 726 polling on/off toggle;
#X text 600 760 open inlet for messages to cyclone/mousestate;
#X obj 933 788 list prepend set;
#X obj 932 928 list prepend set;
#X obj 933 812 list trim;
#X obj 933 952 list trim;
#X obj 937 221 list prepend set;
#X obj 937 245 list trim;
#X msg 937 269 hamilr4 key 1 q 113;
#X obj 800 100 r hamilr4_control;
#X text 753 61 Listen for user on/off keyboard output control messages
/ prefixed with "onoff";
#X obj 779 163 route onoff;
#X obj 779 187 print;
#X obj 69 121 keycontrol _hamilr4;
#X text 493 422 connect to hear;
#X text 215 117 Put your username here to send all keystroke messages
to your [r username_control] receive - remove "_" to see messages sent
to "hamilr4_control";
#X msg 68 259 hamilr4 key 1 q 113;
#X obj 366 216 route hamilr4 obamab;
#X connect 2 0 4 0;
#X connect 2 0 9 0;
#X connect 3 0 80 0;
#X connect 4 0 3 0;
#X connect 9 0 81 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 12 1 14 0;
#X connect 12 2 15 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 20 0 21 0;
#X connect 21 0 32 0;
#X connect 21 1 29 0;
#X connect 21 2 28 0;
#X connect 21 3 26 0;
#X connect 21 4 25 0;
#X connect 22 0 21 0;
#X connect 23 0 21 0;
#X connect 34 0 39 0;
#X connect 36 0 21 0;
#X connect 37 0 21 0;
#X connect 39 0 21 0;
#X connect 41 0 21 0;
#X connect 42 0 41 0;
#X connect 49 0 59 4;
#X connect 53 0 59 2;
#X connect 55 0 59 3;
#X connect 59 0 66 0;
#X connect 60 0 67 0;
#X connect 63 0 59 1;
#X connect 66 0 68 0;
#X connect 67 0 69 0;
#X connect 68 0 58 0;
#X connect 69 0 61 0;
#X connect 70 0 71 0;
#X connect 71 0 72 0;
#X connect 73 0 70 0;
#X connect 73 0 75 0;
#X connect 75 0 76 0;
#X connect 80 0 8 0;
#X connect 81 0 7 0;
#X connect 81 0 11 0;
#X connect 81 1 10 0;
#X restore 221 271 pd more_control;
#N canvas 0 23 450 300 more_structure 0;
#X obj 28 50 hamilr4_etude_1 one 2 three;
#X obj 103 101 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 83 101 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 241 116 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 185 454 450 300 solo_mute 0;
#X obj 196 106 print;
#X obj 197 31 inlet;
#X obj 252 71 f \$1;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X restore 228 153 pd solo_mute 1 2 3;
#X obj 93 133 s hamilr4_solo;
#X obj 83 156 s hamilr4_mute;
#X connect 1 0 5 0;
#X connect 2 0 6 0;
#X connect 3 0 4 0;
#X restore 207 313 pd more_structure;
#X obj 1628 422 channel;
#X obj 519 689 catch~ monkey;
#X obj 518 652 throw~ monkey;
#X text 506 616 AUDIO DATA (~);
#X floatatom 286 622 5 0 0 0 - - -;
#X floatatom 287 718 5 0 0 0 - - -;
#X obj 285 652 send hippo;
#X obj 285 685 receive hippo;
#X text 337 616 CONTROL DATA;
#X obj 274 567 class_3;
#N canvas 0 23 960 1031 data_parsing 0;
#X obj 259 124 textfile;
#X obj 259 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 259 56 vuzi 20;
#X msg 359 106 read classlist.txt;
#X msg 335 82 rewind;
#X obj 313 27 t b b b;
#X obj 39 65 getClassNames;
#X obj 57 40 loadbang;
#X obj 39 41 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 39 88 pack s f;
#X msg 39 111 \$1 student_\$2;
#X obj 39 179 s;
#X obj 167 353 r student_1;
#X obj 39 134 unpack s s;
#X msg 167 376 set \$1;
#X msg 167 399 bilgeh;
#X msg 218 275 \; channelstrip_1 label test;
#X floatatom 244 320 5 0 0 2 - channelstrip_1 -;
#X symbolatom 155 252 10 0 0 0 - - -;
#X obj 106 179 print;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 2 0;
#X connect 5 1 4 0;
#X connect 5 2 3 0;
#X connect 6 0 9 0;
#X connect 6 1 9 1;
#X connect 7 0 6 0;
#X connect 8 0 6 0;
#X connect 9 0 10 0;
#X connect 10 0 13 0;
#X connect 10 0 19 0;
#X connect 12 0 14 0;
#X connect 13 0 11 0;
#X connect 13 1 11 1;
#X connect 14 0 15 0;
#X connect 14 0 18 0;
#X restore 219 400 pd data_parsing;
#X obj 1373 50 r hamilr4_midi;
#X obj 1373 111 list trim;
#X msg 1373 132 hamilr4 midi key 1 0 127 0;
#X obj 1373 90 list prepend set;
#X obj 79 106 switch~;
#X obj 79 83 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
;
#X text 138 106 Disable audio just for this subpatch;
#N canvas 16 51 1662 961 midi 0;
#X obj 1257 232 bng 15 250 50 0 empty empty empty 0 -6 0 10 -228856
-1 -1;
#X obj 1015 158 bng 22 250 50 0 empty bng_play empty 17 7 0 10 -216373
-66577 -1;
#X obj 1059 234 midiout;
#X text 977 160 Play;
#X obj 1015 234 print;
#X msg 1051 162 stop;
#X text 1278 233 <= when finished;
#X obj 1008 831 cyclone/seq Flying_Monkey_Redux.mid;
#X obj 1250 867 bng 15 250 50 0 empty empty empty 0 -6 0 10 -228856
-1 -1;
#X obj 1008 793 bng 22 250 50 0 empty bng_play empty 17 7 0 10 -216373
-66577 -1;
#X obj 1052 869 midiout;
#X text 970 795 Play;
#X obj 1008 869 print;
#X msg 1034 793 stop;
#X text 1271 868 <= when finished;
#X obj 1015 196 cyclone/seq Simple_Scale.mid;
#X obj 1119 234 s midifile_output;
#X obj 1016 292 r midifile_output;
#X obj 1098 412 print;
#X obj 1016 371 route 144;
#X obj 1016 411 unpack f f;
#X floatatom 1016 441 5 0 0 0 - - -;
#X floatatom 1083 435 5 0 0 0 - - -;
#X obj 1016 468 mtof;
#X floatatom 1016 492 5 0 0 0 - - -;
#X obj 1016 515 osc~;
#X obj 1016 629 dac~;
#X obj 1016 559 *~;
#X obj 1063 518 line~;
#X obj 1083 458 / 127;
#X obj 1097 899 s midifile_output;
#X obj 559 160 r hamilr4_midi;
#X obj 579 207 list trim;
#X msg 579 228 hamilr4 midi key 1 0 127 0;
#X obj 579 186 list prepend set;
#X obj 559 304 route hamilr4;
#X obj 559 328 route midi;
#X obj 559 372 route key;
#X obj 739 372 route ctl;
#X obj 588 414 list trim;
#X msg 588 435 1 0 127 0;
#X obj 588 393 list prepend set;
#X obj 559 279 list trim;
#X obj 769 414 list trim;
#X msg 769 435 57 5 1;
#X obj 769 393 list prepend set;
#X obj 559 466 unpack f f f f;
#X obj 739 466 unpack f f f;
#X floatatom 559 490 5 0 0 0 - - -;
#X floatatom 599 490 5 0 0 0 - - -;
#X floatatom 639 490 5 0 0 0 - - -;
#X floatatom 679 490 5 0 0 0 - - -;
#X floatatom 739 490 5 0 0 0 - - -;
#X floatatom 779 490 5 0 0 0 - - -;
#X floatatom 819 490 5 0 0 0 - - -;
#X text 738 518 Value \, Ctl \, Channel;
#X text 521 110 NEW MIDI PARSING EXAMPLE;
#X text 475 516 Channel \, Key \, Velocity \, Aftertouch;
#X text 1006 112 MIDI FILE INPUT;
#X text 1237 195 SINGLE MIDI TRACK;
#X text 1276 830 MULTIPLE MIDI TRACKS;
#N canvas 0 23 1652 1130 (subpatch) 0;
#X array midi_scale_pitch 50 float 1;
#A 0 72 72 69 69 71 60 62 62 64 64 65 65 67 67 69 69 71 71 72 72 72
72 71 71 69 69 67 67 65 65 64 64 62 62 60 60 60 62 62 64 64 65 65 67
67 69 69 71 71 72;
#X coords 0 127 49 0 200 140 1 0 0;
#X restore 1208 619 graph;
#X obj 1343 485 i;
#X obj 1373 486 + 1;
#X obj 1311 453 t f b;
#X msg 1362 454 0;
#X floatatom 1343 533 5 0 0 0 - - -;
#X obj 1213 561 tabwrite midi_scale_pitch;
#X obj 1343 509 % 50;
#N canvas 0 23 1652 1130 (subpatch) 0;
#X array midi_scale_velocity 50 float 1;
#A 0 0 80 80 0 80 0 80 0 80 0 80 0 80 0 80 0 80 0 80 0 80 0 80 0 80
0 80 0 80 0 80 0 80 0 80 0 0 80 0 80 0 80 0 80 0 80 0 80 0 80;
#X coords 0 127 49 0 200 140 1 0 0;
#X restore 1428 619 graph;
#X obj 1543 485 i;
#X obj 1573 486 + 1;
#X obj 1511 453 t f b;
#X msg 1562 454 0;
#X floatatom 1543 533 5 0 0 0 - - -;
#X obj 1543 509 % 50;
#X obj 1413 561 tabwrite midi_scale_velocity;
#X text 1135 324 144 60 80;
#X text 971 372 60 80;
#X msg 1095 383 60 80;
#X msg 1083 484 \$1 10;
#X obj 1016 583 *~ 0.1;
#X obj 1191 488 i;
#X obj 1221 489 + 1;
#X obj 1191 512 % 2;
#X obj 1162 463 t f b;
#X floatatom 1191 536 5 0 0 0 - - -;
#X obj 1163 426 select 0;
#X floatatom 1132 513 5 0 0 0 - - -;
#X msg 1132 536 set \$1;
#X floatatom 1132 600 5 0 0 0 - - -;
#X obj 1132 626 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 1149 562 select 0;
#X obj 1173 588 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X floatatom 1157 628 5 0 0 0 - - -;
#X obj 968 679 expr;
#N canvas 0 50 1065 764 everyothernote 0;
#X obj 245 161 i;
#X obj 275 162 + 1;
#X obj 245 185 % 2;
#X obj 216 136 t f b;
#X floatatom 245 209 5 0 0 0 - - -;
#X obj 217 99 select 0;
#X floatatom 186 186 5 0 0 0 - - -;
#X msg 186 209 set \$1;
#X floatatom 186 273 5 0 0 0 - - -;
#X obj 186 299 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 203 235 select 0;
#X obj 227 261 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X floatatom 211 301 5 0 0 0 - - -;
#X obj 164 33 inlet;
#X obj 262 42 inlet;
#X obj 211 324 outlet;
#X connect 0 0 1 0;
#X connect 0 0 2 0;
#X connect 1 0 0 1;
#X connect 2 0 4 0;
#X connect 3 1 0 0;
#X connect 4 0 10 0;
#X connect 5 1 3 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 8 0 12 0;
#X connect 10 0 8 0;
#X connect 10 0 11 0;
#X connect 12 0 15 0;
#X connect 13 0 6 0;
#X connect 14 0 5 0;
#X restore 1063 683 pd everyothernote;
#X floatatom 1063 707 5 0 0 0 - - -;
#X obj 940 354 print;
#X obj 1016 323 cyclone/thresh 5;
#X text 467 620 144 60 0 176 121 0 192 0 176 7 100 176 10 64 176 91
0 176 93 0 144 60 80;
#X obj 530 724 list split 20;
#X msg 464 666 144 60 0 176 121 0 192 0 176 7 100 176 10 64 176 91
0 176 93 0 144 60 80;
#X obj 530 811 print left;
#X obj 635 793 print right;
#X obj 628 849 route 144;
#X obj 628 873 unpack f f;
#X floatatom 628 917 5 0 0 0 - - -;
#X floatatom 669 917 5 0 0 0 - - -;
#N canvas 0 23 1226 895 multichannel_midi_file_reader 0;
#X obj 27 80 bng 22 250 50 0 empty bng_play empty 17 7 0 10 -216373
-66577 -1;
#X msg 63 84 stop;
#X obj 27 118 cyclone/seq Everything_Stays.mid;
#X obj 27 142 cyclone/thresh 10;
#X obj 27 220 route 144 145 146 147 148 149 150 151 152 153 154 155
156 157 158 159;
#X obj 423 258 route 176 192;
#X obj 50 614 s noteOn_voice_1;
#X obj 75 593 s noteOn_voice_2;
#X obj 98 572 s noteOn_voice_3;
#X obj 122 551 s noteOn_voice_4;
#X obj 146 530 s noteOn_voice_5;
#X obj 170 509 s noteOn_voice_6;
#X obj 194 488 s noteOn_voice_7;
#X obj 218 467 s noteOn_voice_8;
#X obj 242 446 s noteOn_voice_9;
#X obj 265 425 s noteOn_voice_10;
#X obj 289 404 s noteOn_voice_11;
#X obj 313 383 s noteOn_voice_12;
#X obj 337 362 s noteOn_voice_13;
#X obj 361 341 s noteOn_voice_14;
#X obj 385 320 s noteOn_voice_15;
#X obj 409 299 s noteOn_voice_16;
#X obj 28 635 s noteOn_allVoices;
#X obj 566 214 r noteOn_allVoices;
#X obj 566 238 route 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16;
#N canvas -11 98 1943 765 process_note_on 0;
#X msg 135 177 1;
#X obj 103 151 t l b;
#X obj 103 208 list prepend;
#X obj 193 151 t l b;
#X obj 193 208 list prepend;
#X msg 225 177 2;
#X obj 283 151 t l b;
#X obj 283 208 list prepend;
#X obj 373 151 t l b;
#X obj 373 208 list prepend;
#X msg 315 177 3;
#X msg 405 177 4;
#X obj 463 151 t l b;
#X obj 463 208 list prepend;
#X obj 553 151 t l b;
#X obj 553 208 list prepend;
#X obj 643 151 t l b;
#X obj 643 208 list prepend;
#X obj 733 151 t l b;
#X obj 733 208 list prepend;
#X msg 495 177 5;
#X msg 585 177 6;
#X msg 675 177 7;
#X msg 765 177 8;
#X obj 823 151 t l b;
#X obj 823 208 list prepend;
#X obj 913 151 t l b;
#X obj 913 209 list prepend;
#X obj 1003 151 t l b;
#X obj 1003 208 list prepend;
#X obj 1093 151 t l b;
#X obj 1093 208 list prepend;
#X obj 1183 151 t l b;
#X obj 1183 208 list prepend;
#X obj 1273 151 t l b;
#X obj 1273 208 list prepend;
#X obj 1363 151 t l b;
#X obj 1363 208 list prepend;
#X obj 1453 151 t l b;
#X obj 1453 208 list prepend;
#X msg 855 177 9;
#X msg 945 177 10;
#X msg 1035 177 11;
#X msg 1125 177 12;
#X msg 1215 177 13;
#X msg 1305 177 14;
#X msg 1395 177 15;
#X msg 1485 177 16;
#X obj 103 62 inlet;
#X obj 193 62 inlet;
#X obj 283 62 inlet;
#X obj 373 62 inlet;
#X obj 463 62 inlet;
#X obj 553 62 inlet;
#X obj 643 62 inlet;
#X obj 733 62 inlet;
#X obj 823 62 inlet;
#X obj 913 62 inlet;
#X obj 1003 62 inlet;
#X obj 1093 62 inlet;
#X obj 1183 62 inlet;
#X obj 1273 62 inlet;
#X obj 1363 62 inlet;
#X obj 1453 62 inlet;
#X obj 103 232 outlet;
#X obj 193 232 outlet;
#X obj 283 232 outlet;
#X obj 373 232 outlet;
#X obj 463 232 outlet;
#X obj 553 232 outlet;
#X obj 643 232 outlet;
#X obj 733 232 outlet;
#X obj 823 232 outlet;
#X obj 913 232 outlet;
#X obj 1003 232 outlet;
#X obj 1093 232 outlet;
#X obj 1183 232 outlet;
#X obj 1273 232 outlet;
#X obj 1363 232 outlet;
#X obj 1453 232 outlet;
#X obj 37 227 outlet;
#X connect 0 0 2 1;
#X connect 1 0 2 0;
#X connect 1 1 0 0;
#X connect 2 0 80 0;
#X connect 2 0 64 0;
#X connect 3 0 4 0;
#X connect 3 1 5 0;
#X connect 4 0 65 0;
#X connect 4 0 80 0;
#X connect 5 0 4 1;
#X connect 6 0 7 0;
#X connect 6 1 10 0;
#X connect 7 0 66 0;
#X connect 7 0 80 0;
#X connect 8 0 9 0;
#X connect 8 1 11 0;
#X connect 9 0 67 0;
#X connect 9 0 80 0;
#X connect 10 0 7 1;
#X connect 11 0 9 1;
#X connect 12 0 13 0;
#X connect 12 1 20 0;
#X connect 13 0 68 0;
#X connect 13 0 80 0;
#X connect 14 0 15 0;
#X connect 14 1 21 0;
#X connect 15 0 69 0;
#X connect 15 0 80 0;
#X connect 16 0 17 0;
#X connect 16 1 22 0;
#X connect 17 0 70 0;
#X connect 17 0 80 0;
#X connect 18 0 19 0;
#X connect 18 1 23 0;
#X connect 19 0 71 0;
#X connect 19 0 80 0;
#X connect 20 0 13 1;
#X connect 21 0 15 1;
#X connect 22 0 17 1;
#X connect 23 0 19 1;
#X connect 24 0 25 0;
#X connect 24 1 40 0;
#X connect 25 0 72 0;
#X connect 25 0 80 0;
#X connect 26 0 27 0;
#X connect 26 1 41 0;
#X connect 27 0 73 0;
#X connect 27 0 80 0;
#X connect 28 0 29 0;
#X connect 28 1 42 0;
#X connect 29 0 74 0;
#X connect 29 0 80 0;
#X connect 30 0 31 0;
#X connect 30 1 43 0;
#X connect 31 0 75 0;
#X connect 31 0 80 0;
#X connect 32 0 33 0;
#X connect 32 1 44 0;
#X connect 33 0 76 0;
#X connect 33 0 80 0;
#X connect 34 0 35 0;
#X connect 34 1 45 0;
#X connect 35 0 77 0;
#X connect 35 0 80 0;
#X connect 36 0 37 0;
#X connect 36 1 46 0;
#X connect 37 0 78 0;
#X connect 37 0 80 0;
#X connect 38 0 39 0;
#X connect 38 1 47 0;
#X connect 39 0 79 0;
#X connect 39 0 80 0;
#X connect 40 0 25 1;
#X connect 41 0 27 1;
#X connect 42 0 29 1;
#X connect 43 0 31 1;
#X connect 44 0 33 1;
#X connect 45 0 35 1;
#X connect 46 0 37 1;
#X connect 47 0 39 1;
#X connect 48 0 1 0;
#X connect 49 0 3 0;
#X connect 50 0 6 0;
#X connect 51 0 8 0;
#X connect 52 0 12 0;
#X connect 53 0 14 0;
#X connect 54 0 16 0;
#X connect 55 0 18 0;
#X connect 56 0 24 0;
#X connect 57 0 26 0;
#X connect 58 0 28 0;
#X connect 59 0 30 0;
#X connect 60 0 32 0;
#X connect 61 0 34 0;
#X connect 62 0 36 0;
#X connect 63 0 38 0;
#X restore 27 268 pd process_note_on ....................................
;
#X obj 566 432 unpack f f;
#X floatatom 566 456 5 0 0 0 - - -;
#X floatatom 606 456 5 0 0 0 - - -;
#X obj 585 382 unpack f f;
#X floatatom 585 406 5 0 0 0 - - -;
#X floatatom 625 406 5 0 0 0 - - -;
#X obj 604 332 unpack f f;
#X floatatom 604 356 5 0 0 0 - - -;
#X floatatom 644 356 5 0 0 0 - - -;
#X obj 623 282 unpack f f;
#X floatatom 623 306 5 0 0 0 - - -;
#X floatatom 663 306 5 0 0 0 - - -;
#X obj 676 432 unpack f f;
#X floatatom 676 456 5 0 0 0 - - -;
#X floatatom 716 456 5 0 0 0 - - -;
#X obj 695 382 unpack f f;
#X floatatom 695 406 5 0 0 0 - - -;
#X floatatom 735 406 5 0 0 0 - - -;
#X obj 714 332 unpack f f;
#X floatatom 714 356 5 0 0 0 - - -;
#X floatatom 754 356 5 0 0 0 - - -;
#X obj 733 282 unpack f f;
#X floatatom 733 306 5 0 0 0 - - -;
#X floatatom 773 306 5 0 0 0 - - -;
#X obj 776 432 unpack f f;
#X floatatom 776 456 5 0 0 0 - - -;
#X floatatom 816 456 5 0 0 0 - - -;
#X obj 795 382 unpack f f;
#X floatatom 795 406 5 0 0 0 - - -;
#X floatatom 835 406 5 0 0 0 - - -;
#X obj 814 332 unpack f f;
#X floatatom 814 356 5 0 0 0 - - -;
#X floatatom 854 356 5 0 0 0 - - -;
#X obj 833 282 unpack f f;
#X floatatom 833 306 5 0 0 0 - - -;
#X floatatom 873 306 5 0 0 0 - - -;
#X obj 886 432 unpack f f;
#X floatatom 886 456 5 0 0 0 - - -;
#X floatatom 926 456 5 0 0 0 - - -;
#X obj 905 382 unpack f f;
#X floatatom 905 406 5 0 0 0 - - -;
#X floatatom 945 406 5 0 0 0 - - -;
#X obj 924 332 unpack f f;
#X floatatom 924 356 5 0 0 0 - - -;
#X floatatom 964 356 5 0 0 0 - - -;
#X obj 943 282 unpack f f;
#X floatatom 943 306 5 0 0 0 - - -;
#X floatatom 983 306 5 0 0 0 - - -;
#X obj 566 548 unpack f f;
#X floatatom 566 572 5 0 0 0 - - -;
#X floatatom 606 572 5 0 0 0 - - -;
#X obj 566 499 r noteOn_voice_1;
#X obj 566 523 route 1;
#X obj 686 548 unpack f f;
#X floatatom 686 572 5 0 0 0 - - -;
#X floatatom 726 572 5 0 0 0 - - -;
#X obj 686 499 r noteOn_voice_4;
#X obj 686 523 route 4;
#X obj 566 668 unpack f f;
#X floatatom 566 692 5 0 0 0 - - -;
#X floatatom 606 692 5 0 0 0 - - -;
#X obj 686 668 unpack f f;
#X floatatom 686 692 5 0 0 0 - - -;
#X floatatom 726 692 5 0 0 0 - - -;
#X obj 566 619 r noteOn_voice_7;
#X obj 566 643 route 7;
#X obj 686 619 r noteOn_voice_11;
#X obj 686 643 route 11;
#X obj 52 195 print;
#N canvas 0 50 1160 725 myosc 0;
#X obj 46 87 osc~;
#X obj 46 111 *~;
#X obj 102 87 line~;
#X obj 46 135 outlet~;
#X msg 102 59 \$1 10;
#X obj 46 31 inlet;
#X obj 102 31 inlet;
#X obj 46 59 mtof;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 1 1;
#X connect 4 0 2 0;
#X connect 5 0 7 0;
#X connect 6 0 4 0;
#X connect 7 0 0 0;
#X restore 566 721 pd myosc;
#N canvas 0 50 450 300 myosc 0;
#X obj 1040 299 osc~;
#X obj 1040 323 *~;
#X obj 1096 299 line~;
#X obj 1040 347 outlet~;
#X msg 1096 271 \$1 10;
#X obj 1040 243 inlet;
#X obj 1096 243 inlet;
#X obj 1040 267 mtof;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 1 1;
#X connect 4 0 2 0;
#X connect 5 0 7 0;
#X connect 6 0 4 0;
#X connect 7 0 0 0;
#X restore 686 721 pd myosc;
#N canvas 0 50 450 300 myosc 0;
#X obj 1040 299 osc~;
#X obj 1040 323 *~;
#X obj 1096 299 line~;
#X obj 1040 347 outlet~;
#X msg 1096 271 \$1 10;
#X obj 1040 243 inlet;
#X obj 1096 243 inlet;
#X obj 1040 267 mtof;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 1 1;
#X connect 4 0 2 0;
#X connect 5 0 7 0;
#X connect 6 0 4 0;
#X connect 7 0 0 0;
#X restore 566 594 pd myosc;
#N canvas 0 50 450 300 myosc 0;
#X obj 1040 299 osc~;
#X obj 1040 323 *~;
#X obj 1096 299 line~;
#X obj 1040 347 outlet~;
#X msg 1096 271 \$1 10;
#X obj 1040 243 inlet;
#X obj 1096 243 inlet;
#X obj 1040 267 mtof;
#X connect 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 1 1;
#X connect 4 0 2 0;
#X connect 5 0 7 0;
#X connect 6 0 4 0;
#X connect 7 0 0 0;
#X restore 686 594 pd myosc;
#N canvas 1030 260 1197 970 get_all_notes 0;
#X obj 255 398 list store;
#X msg 85 155 get 0 3;
#X msg 95 176 get 3 3;
#X msg 105 197 get 6 3;
#X msg 114 218 get 9 3;
#X msg 125 239 get 12 3;
#X msg 135 260 get 15 3;
#X msg 145 281 get 18 3;
#X msg 155 302 get 21 3;
#X msg 185 154 get 24 3;
#X msg 195 175 get 27 3;
#X msg 205 196 get 30 3;
#X msg 214 217 get 33 3;
#X msg 225 238 get 36 3;
#X msg 235 259 get 39 3;
#X msg 245 280 get 42 3;
#X msg 255 301 get 45 3;
#X obj 79 106 t b b b b b b b b b b b b b b b b;
#X obj 290 46 t b l;
#X obj 290 21 inlet;
#X obj 255 428 outlet;
#X connect 0 0 20 0;
#X connect 1 0 0 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X connect 9 0 0 0;
#X connect 10 0 0 0;
#X connect 11 0 0 0;
#X connect 12 0 0 0;
#X connect 13 0 0 0;
#X connect 14 0 0 0;
#X connect 15 0 0 0;
#X connect 16 0 0 0;
#X connect 17 0 16 0;
#X connect 17 1 15 0;
#X connect 17 2 14 0;
#X connect 17 3 13 0;
#X connect 17 4 12 0;
#X connect 17 5 11 0;
#X connect 17 6 10 0;
#X connect 17 7 9 0;
#X connect 17 8 8 0;
#X connect 17 9 7 0;
#X connect 17 10 6 0;
#X connect 17 11 5 0;
#X connect 17 12 4 0;
#X connect 17 13 3 0;
#X connect 17 14 2 0;
#X connect 17 15 1 0;
#X connect 18 0 17 0;
#X connect 18 1 0 1;
#X connect 19 0 18 0;
#X restore 27 167 pd get_all_notes;
#X obj 362 792 *~ 0.2;
#X obj 362 826 throw~ hamilr4_audio_1;
#X connect 0 0 2 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 99 0;
#X connect 4 0 25 0;
#X connect 4 1 25 1;
#X connect 4 2 25 2;
#X connect 4 3 25 3;
#X connect 4 4 25 4;
#X connect 4 5 25 5;
#X connect 4 6 25 6;
#X connect 4 7 25 7;
#X connect 4 8 25 8;
#X connect 4 9 25 9;
#X connect 4 10 25 10;
#X connect 4 11 25 11;
#X connect 4 12 25 12;
#X connect 4 13 25 13;
#X connect 4 14 25 14;
#X connect 4 15 25 15;
#X connect 4 16 5 0;
#X connect 23 0 24 0;
#X connect 24 0 26 0;
#X connect 24 1 29 0;
#X connect 24 2 32 0;
#X connect 24 3 35 0;
#X connect 24 4 38 0;
#X connect 24 5 41 0;
#X connect 24 6 44 0;
#X connect 24 7 47 0;
#X connect 24 8 50 0;
#X connect 24 9 53 0;
#X connect 24 10 56 0;
#X connect 24 11 59 0;
#X connect 24 12 62 0;
#X connect 24 13 65 0;
#X connect 24 14 68 0;
#X connect 24 15 71 0;
#X connect 25 0 22 0;
#X connect 25 1 6 0;
#X connect 25 2 7 0;
#X connect 25 3 8 0;
#X connect 25 4 9 0;
#X connect 25 5 10 0;
#X connect 25 6 11 0;
#X connect 25 7 12 0;
#X connect 25 8 13 0;
#X connect 25 9 14 0;
#X connect 25 10 15 0;
#X connect 25 11 16 0;
#X connect 25 12 17 0;
#X connect 25 13 18 0;
#X connect 25 14 19 0;
#X connect 25 15 20 0;
#X connect 25 16 21 0;
#X connect 26 0 27 0;
#X connect 26 1 28 0;
#X connect 29 0 30 0;
#X connect 29 1 31 0;
#X connect 32 0 33 0;
#X connect 32 1 34 0;
#X connect 35 0 36 0;
#X connect 35 1 37 0;
#X connect 38 0 39 0;
#X connect 38 1 40 0;
#X connect 41 0 42 0;
#X connect 41 1 43 0;
#X connect 44 0 45 0;
#X connect 44 1 46 0;
#X connect 47 0 48 0;
#X connect 47 1 49 0;
#X connect 50 0 51 0;
#X connect 50 1 52 0;
#X connect 53 0 54 0;
#X connect 53 1 55 0;
#X connect 56 0 57 0;
#X connect 56 1 58 0;
#X connect 59 0 60 0;
#X connect 59 1 61 0;
#X connect 62 0 63 0;
#X connect 62 1 64 0;
#X connect 65 0 66 0;
#X connect 65 1 67 0;
#X connect 68 0 69 0;
#X connect 68 1 70 0;
#X connect 71 0 72 0;
#X connect 71 1 73 0;
#X connect 74 0 75 0;
#X connect 74 1 76 0;
#X connect 75 0 97 0;
#X connect 76 0 97 1;
#X connect 77 0 78 0;
#X connect 78 0 74 0;
#X connect 79 0 80 0;
#X connect 79 1 81 0;
#X connect 80 0 98 0;
#X connect 81 0 98 1;
#X connect 82 0 83 0;
#X connect 83 0 79 0;
#X connect 84 0 85 0;
#X connect 84 1 86 0;
#X connect 85 0 95 0;
#X connect 86 0 95 1;
#X connect 87 0 88 0;
#X connect 87 1 89 0;
#X connect 88 0 96 0;
#X connect 89 0 96 1;
#X connect 90 0 91 0;
#X connect 91 0 84 0;
#X connect 92 0 93 0;
#X connect 93 0 87 0;
#X connect 95 0 100 0;
#X connect 96 0 100 0;
#X connect 97 0 100 0;
#X connect 98 0 100 0;
#X connect 99 0 4 0;
#X connect 99 0 94 0;
#X connect 100 0 101 0;
#X restore 103 123 pd multichannel_midi_file_reader;
#X obj 102 102 multichannel_midifile;
#X text 105 69 MULTI-STAFF MIDI FILE PARSER;
#X connect 0 0 1 0;
#X connect 1 0 15 0;
#X connect 5 0 15 0;
#X connect 7 0 12 0;
#X connect 7 0 10 0;
#X connect 7 0 30 0;
#X connect 7 1 8 0;
#X connect 9 0 7 0;
#X connect 13 0 7 0;
#X connect 15 0 2 0;
#X connect 15 0 16 0;
#X connect 15 1 0 0;
#X connect 15 1 16 0;
#X connect 17 0 99 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 20 1 22 0;
#X connect 21 0 23 0;
#X connect 21 0 64 0;
#X connect 21 0 88 0;
#X connect 21 0 96 0;
#X connect 22 0 29 0;
#X connect 22 0 72 0;
#X connect 22 0 87 0;
#X connect 22 0 96 1;
#X connect 23 0 24 0;
#X connect 24 0 25 0;
#X connect 25 0 27 0;
#X connect 27 0 81 0;
#X connect 28 0 27 1;
#X connect 29 0 80 0;
#X connect 31 0 34 0;
#X connect 31 0 42 0;
#X connect 32 0 33 0;
#X connect 34 0 32 0;
#X connect 35 0 36 0;
#X connect 36 0 37 0;
#X connect 36 0 38 0;
#X connect 37 0 41 0;
#X connect 37 0 46 0;
#X connect 38 0 45 0;
#X connect 38 0 47 0;
#X connect 39 0 40 0;
#X connect 41 0 39 0;
#X connect 42 0 35 0;
#X connect 43 0 44 0;
#X connect 45 0 43 0;
#X connect 46 0 48 0;
#X connect 46 1 49 0;
#X connect 46 2 50 0;
#X connect 46 3 51 0;
#X connect 47 0 52 0;
#X connect 47 1 53 0;
#X connect 47 2 54 0;
#X connect 62 0 63 0;
#X connect 62 0 68 0;
#X connect 63 0 62 1;
#X connect 64 0 67 0;
#X connect 64 1 62 0;
#X connect 65 0 62 1;
#X connect 66 0 67 1;
#X connect 68 0 66 0;
#X connect 70 0 71 0;
#X connect 70 0 75 0;
#X connect 71 0 70 1;
#X connect 72 0 76 0;
#X connect 72 1 70 0;
#X connect 73 0 70 1;
#X connect 74 0 76 1;
#X connect 75 0 74 0;
#X connect 80 0 28 0;
#X connect 82 0 83 0;
#X connect 82 0 84 0;
#X connect 83 0 82 1;
#X connect 84 0 86 0;
#X connect 85 1 82 0;
#X connect 86 0 92 0;
#X connect 87 1 85 0;
#X connect 88 0 89 0;
#X connect 89 0 90 0;
#X connect 90 0 91 0;
#X connect 90 0 94 0;
#X connect 92 0 90 0;
#X connect 92 0 93 0;
#X connect 96 0 97 0;
#X connect 99 0 19 0;
#X connect 99 0 98 0;
#X connect 101 0 103 0;
#X connect 101 0 105 0;
#X connect 101 1 104 0;
#X connect 101 1 105 0;
#X connect 102 0 101 0;
#X connect 105 0 106 0;
#X connect 106 0 107 0;
#X connect 106 1 108 0;
#X restore 276 354 pd midi;
#X text 342 353 More MIDI...;
#X text 343 398 More Data...;
#N canvas 0 23 765 247 more_networking 0;
#X obj 153 115 conway;
#X text 143 75 Darius Smith's OSC "The Game Of Life" audio code;
#X text 223 109 To use \, launch the python Conway's Game of Life app
in the conwayOSC folder in the masheen folder;
#X restore 199 440 pd more_networking;
#X text 346 442 More Networking...;
#X connect 6 0 46 0;
#X connect 7 0 9 0;
#X connect 8 0 12 0;
#X connect 10 0 11 0;
#X connect 12 0 10 0;
#X connect 15 0 16 0;
#X connect 15 1 17 0;
#X connect 18 0 30 0;
#X connect 19 0 20 1;
#X connect 19 0 18 1;
#X connect 20 0 15 0;
#X connect 30 0 16 0;
#X connect 30 1 17 0;
#X connect 34 0 36 0;
#X connect 37 0 35 0;
#X connect 41 0 44 0;
#X connect 42 0 43 0;
#X connect 44 0 42 0;
#X connect 46 0 45 0;
#X coords 0 973 1 972 200 200 0;