Skip to content
Permalink
809caa0850
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
1997 lines (1997 sloc) 61.3 KB
#N canvas 88 173 1680 980 12;
#X obj 112 997 outlet;
#X obj 53 997 outlet~;
#X text 184 995 Two outlets: the first is an audio outlet (note the
"~") and the second is for data;
#X obj 0 -2 cnv 15 1920 90 empty empty empty 20 12 0 14 -233017 -66577
0;
#X text 9 11 Two inlets: the first is for audio (note the "~") and
the second is for data;
#X obj 19 58 inlet~;
#X obj 79 58 inlet;
#X obj 1030 56 receive hamilr4_tempo;
#X obj 1194 56 receive hamilr4_control;
#X obj 1030 97 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 1194 119 list trim;
#X msg 1194 140 hamilr4 key 1 Meta_L 0;
#X obj 1194 98 list prepend set;
#X text 1030 0 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 62 pd notes;
#X obj 1717 429 channel;
#X obj 1628 886 throw~ main_out_left;
#X obj 1708 850 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 395 pd gate~;
#X obj 1810 380 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 395 pd gate~;
#N canvas 1117 23 693 620 throws 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 obj 73 138 osc~ 240;
#X text 58 79 Mono audio throws for each user;
#X restore 1786 16 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 38 pd tests;
#X text 341 276 More control;
#X text 341 316 More structure... timeline;
#X text 341 236 More cowbell... sounds;
#X text 182 182 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 234 pd more_sounds;
#N canvas 502 23 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 753 45 981 884 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 74 76 77 76 74 77 79 81 88 88 0 82 0 62 0 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 366 216 route hamilr4 obamab;
#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 683 2 0 0;
#X obj 933 761 mouser username;
#X obj 932 904 r username_control;
#X msg 933 976 username mouse 0 683 2 0 0;
#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 Meta_L 0;
#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 Meta_L 0;
#X connect 2 0 4 0;
#X connect 2 0 10 0;
#X connect 3 0 81 0;
#X connect 4 0 3 0;
#X connect 7 0 8 0;
#X connect 7 0 12 0;
#X connect 7 1 11 0;
#X connect 10 0 7 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 13 1 15 0;
#X connect 13 2 16 0;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 21 0 22 0;
#X connect 22 0 33 0;
#X connect 22 1 30 0;
#X connect 22 2 29 0;
#X connect 22 3 27 0;
#X connect 22 4 26 0;
#X connect 23 0 22 0;
#X connect 24 0 22 0;
#X connect 35 0 40 0;
#X connect 37 0 22 0;
#X connect 38 0 22 0;
#X connect 40 0 22 0;
#X connect 42 0 22 0;
#X connect 43 0 42 0;
#X connect 50 0 60 4;
#X connect 54 0 60 2;
#X connect 56 0 60 3;
#X connect 60 0 67 0;
#X connect 61 0 68 0;
#X connect 64 0 60 1;
#X connect 67 0 69 0;
#X connect 68 0 70 0;
#X connect 69 0 59 0;
#X connect 70 0 62 0;
#X connect 71 0 72 0;
#X connect 72 0 73 0;
#X connect 74 0 71 0;
#X connect 74 0 76 0;
#X connect 76 0 77 0;
#X connect 81 0 9 0;
#X restore 221 278 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 320 pd more_structure;
#X obj 738 278 hamilr4_etude_1;
#X obj 1628 429 channel;
#X obj 737 321 throw~ hamilr4_audio_1;
#X obj 1333 271 catch~ monkey;
#X obj 1332 234 throw~ monkey;
#X text 1320 198 AUDIO DATA (~);
#X floatatom 1100 204 5 0 0 0 - - -;
#X floatatom 1101 300 5 0 0 0 - - -;
#X obj 1099 234 send hippo;
#X obj 1099 267 receive hippo;
#X text 1151 198 CONTROL DATA;
#X obj 1242 466 receive bilgeh_control;
#X obj 1239 503 print;
#X obj 277 443 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 215 397 pd data_parsing;
#X obj 580 543 r hamilr4_midi;
#X obj 600 590 list trim;
#X msg 600 611 hamilr4 midi key 1 54 38 0;
#X obj 600 569 list prepend set;
#X obj 580 687 route hamilr4;
#X obj 580 711 route midi;
#X obj 580 755 route key;
#X obj 760 755 route ctl;
#X obj 609 797 list trim;
#X msg 609 818 1 54 38 0;
#X obj 609 776 list prepend set;
#X obj 580 662 list trim;
#X obj 790 797 list trim;
#X msg 790 818 1 58 57 0;
#X obj 790 776 list prepend set;
#X obj 580 849 unpack f f f f;
#X obj 760 849 unpack f f f;
#X floatatom 580 873 5 0 0 0 - - -;
#X floatatom 620 873 5 0 0 0 - - -;
#X floatatom 660 873 5 0 0 0 - - -;
#X floatatom 700 873 5 0 0 0 - - -;
#X floatatom 760 873 5 0 0 0 - - -;
#X floatatom 800 873 5 0 0 0 - - -;
#X floatatom 840 873 5 0 0 0 - - -;
#X text 887 872 Value \, Ctl \, Channel;
#X text 542 493 NEW MIDI PARSING EXAMPLE;
#X obj 1373 57 r hamilr4_midi;
#X obj 1373 118 list trim;
#X msg 1373 139 hamilr4 midi key 1 54 38 0;
#X obj 1373 97 list prepend set;
#X text 325 874 Channel \, Key \, Velocity \, Aftertouch;
#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 31 0;
#X connect 19 0 20 1;
#X connect 19 0 18 1;
#X connect 20 0 15 0;
#X connect 31 0 16 0;
#X connect 31 1 17 0;
#X connect 36 0 38 0;
#X connect 39 0 37 0;
#X connect 41 0 42 0;
#X connect 45 0 48 0;
#X connect 45 0 56 0;
#X connect 46 0 47 0;
#X connect 48 0 46 0;
#X connect 49 0 50 0;
#X connect 50 0 51 0;
#X connect 50 0 52 0;
#X connect 51 0 55 0;
#X connect 51 0 60 0;
#X connect 52 0 59 0;
#X connect 52 0 61 0;
#X connect 53 0 54 0;
#X connect 55 0 53 0;
#X connect 56 0 49 0;
#X connect 57 0 58 0;
#X connect 59 0 57 0;
#X connect 60 0 62 0;
#X connect 60 1 63 0;
#X connect 60 2 64 0;
#X connect 60 3 65 0;
#X connect 61 0 66 0;
#X connect 61 1 67 0;
#X connect 61 2 68 0;
#X connect 71 0 74 0;
#X connect 72 0 73 0;
#X connect 74 0 72 0;
#X coords 0 980 1 979 200 200 0;