Skip to content
Permalink
f898313b18
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
1725 lines (1725 sloc) 52.3 KB
#N canvas 0 23 1920 1129 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 1184 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 1184 119 list trim;
#X msg 1184 140 1 2 3 4 5;
#X obj 1184 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.;
#X obj 823 272 osc~ 740;
#X obj 893 272 osc~ 840;
#N canvas 0 23 450 300 notes 0;
#X msg 983 782 masheen_meter_no_text;
#X msg 984 728 \; masheen_meter_no_text scale \$1;
#X msg 984 697 0;
#X msg 985 825 \; foo7_rcv label_pos \$1 \$2;
#X text 701 667 Sends to set properties of meter text:;
#X obj 1265 673 f;
#X msg 1243 652 bang;
#X floatatom 1281 651 3 50 88 0 - - -;
#X floatatom 1316 673 3 0 37 0 - - -;
#X obj 1265 696 pack 0 0;
#X text 1343 673 y-label;
#X text 1309 651 x-label;
#X obj 1285 788 f;
#X msg 1263 767 bang;
#X floatatom 1301 766 3 0 2 0 - - -;
#X floatatom 1336 788 3 8 36 0 - - -;
#X obj 1285 811 pack 0 0;
#X text 1329 766 font;
#X text 1365 788 height;
#X msg 1285 837 \; foo7_rcv label_font \$1 \$2;
#X msg 1265 721 \; foo7_rcv label_po`s \$1 \$2;
#X msg 783 745 \; 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 1628 429 channel;
#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~;
#X obj 1628 328 catch~ hamilr4_audio_1;
#X obj 1717 351 catch~ hamilr4_audio_2;
#N canvas 0 23 450 300 hamilr4_throws 0;
#X obj 77 28 inlet~;
#X obj 77 130 throw~ hamilr4_audio_1;
#X obj 148 103 throw~ hamilr4_audio_2;
#X obj 148 31 inlet~;
#X connect 0 0 1 0;
#X connect 3 0 2 0;
#X restore 817 326 pd hamilr4_throws;
#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 obj 976 312 throw~ bartoa_audio_1;
#X obj 946 342 throw~ deegaj_audio_1;
#X text 268 530 More control;
#X text 268 570 More structure... timeline;
#X text 268 490 More cowbell... sounds;
#X text 242 450 Show off browser examples;
#N canvas 0 23 1056 934 more_sounds 0;
#N canvas 1009 23 483 431 additive-synthesis 0;
#X floatatom 62 46 5 0 0 0 - - -;
#X obj 62 65 mtof;
#X obj 62 110 osc~;
#X obj 118 87 * 2;
#X obj 118 109 osc~;
#X obj 118 131 *~ 0.1;
#X obj 188 109 osc~;
#X obj 188 87 * 3;
#X obj 188 131 *~ 0.2;
#X obj 258 109 osc~;
#X obj 258 87 * 4;
#X obj 258 131 *~ 0.5;
#X obj 118 167 +~;
#X obj 118 189 +~;
#X obj 118 211 *~;
#X obj 62 242 +~;
#X obj 165 213 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X text 197 212 toggle overtones;
#X obj 62 317 *~ 0;
#X floatatom 91 275 5 0 0 0 - - -;
#X obj 91 295 dbtorms;
#X obj 62 357 dac~;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 0 3 0;
#X connect 2 0 15 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 12 0;
#X connect 6 0 8 0;
#X connect 7 0 6 0;
#X connect 8 0 12 1;
#X connect 9 0 11 0;
#X connect 10 0 9 0;
#X connect 11 0 13 1;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 15 1;
#X connect 15 0 18 0;
#X connect 16 0 14 1;
#X connect 18 0 21 0;
#X connect 18 0 21 1;
#X connect 19 0 20 0;
#X connect 20 0 18 1;
#X restore 70 123 pd additive-synthesis;
#N canvas 795 432 573 296 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.906203 0.945681 0.974625 0.992767 0.999878 0.995881 0.980846
0.954886 0.918346 0.871596 0.815169 0.7497 0.675886 0.594584 0.506666
0.413127 0.315002 0.213373 0.10938 0.00416842 -0.101088 -0.205223 -0.307075
-0.405526 -0.49946 -0.587857 -0.669724 -0.744148 -0.810325 -0.867477
-0.915016 -0.952383 -0.979174 -0.995106 -0.99996 -0.993735 -0.976455
-0.948339 -0.909699 -0.860939 -0.802639 -0.735405 -0.660015 -0.577297
-0.48816 -0.393613 -0.294683 -0.192487 -0.0881515 0.0171626 0.122288
0.22605 0.327307 0.424927 0.517826 0.604984 0.685407 0.758234 0.822629
0.877892 0.923416 0.958664 0.983291 0.996974 0.999598 0.991127 0.971633
0.941374 0.900632 0.849906 0.789738 0.720795 0.643863 0.559758 0.469452
0.373927 0.274249 0.17153 0.0669009 -0.0384688 -0.143411 -0.246761
-0.347374 -0.444121 -0.535947 -0.621809 -0.700773 -0.771957 -0.834557
-0.887909 -0.931376 -0.964515 -0.986941 -0.998398 -0.998792 -0.988059
-0.966377 -0.933955 -0.891159 -0.838483;
#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 connect 0 0 1 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 881 23 672 291 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.852727 -0.836889 -0.821051 -0.805213 -0.789375 -0.773537 -0.757699
-0.741861 -0.726023 -0.710185 -0.694347 -0.678509 -0.662671 -0.646833
-0.630995 -0.615157 -0.599319 -0.583481 -0.567643 -0.551805 -0.535967
-0.520129 -0.504291 -0.488453 -0.472615 -0.456777 -0.440939 -0.425101
-0.409263 -0.393425 -0.377587 -0.361749 -0.345911 -0.330073 -0.314235
-0.298397 -0.282559 -0.266721 -0.250883 -0.235045 -0.219207 -0.203369
-0.187531 -0.171693 -0.155855 -0.140017 -0.124179 -0.108341 -0.0925027
-0.0766647 -0.0608267 -0.0449886 -0.0291506 -0.0133126 0.00252545 0.0183635
0.0342014 0.0500394 0.0658774 0.0817155 0.0975535 0.113392 0.12923
0.145068 0.160906 0.176744 0.192582 0.20842 0.224258 0.240096 0.255934
0.271772 0.28761 0.303448 0.319286 0.335124 0.350962 0.3668 0.382638
0.398476 0.414314 0.430152 0.44599 0.461828 0.477666 0.493504 0.509342
0.52518 0.541018 0.556856 0.572694 0.588532 0.60437 0.620208 0.636046
0.651884 0.667722 0.68356 0.699398 0.715236;
#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 connect 0 0 9 0;
#X connect 5 0 0 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 892 23 674 388 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 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 363 307 898 556 karplus_strong 0;
#N canvas 707 129 520 633 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 155 106 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 101 96 589 438 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 81 124 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 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 287 351 847 508 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 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 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 67 667 pd karplus_strong;
#X text 45 646 "Guitar" String model;
#N canvas 693 367 702 345 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.0438968 -0.0380207 -0.0263368 -0.00892826 0.0137533 0.0408958
0.0713557 0.103707 0.136302 0.167342 0.194979 0.217391 0.232877 0.239969
0.237492 0.22464 0.201058 0.166863 0.122662 0.069568 0.00916753 -0.0565287
-0.125145 -0.194034 -0.260373 -0.32127 -0.373909 -0.415654 -0.444151
-0.457494 -0.454285 -0.433707 -0.39562 -0.340582 -0.26984 -0.18533
-0.0896308 0.0141317 0.122369 0.231163 0.336409 0.433946 0.519765 0.59014
0.641763 0.671941 0.6787 0.660859 0.618131 0.551187 0.461617 0.351907
0.225424 0.0862571 -0.0608915 -0.210855 -0.358205 -0.49742 -0.457143
-0.730263 -0.814331 -0.871516 -0.898934 -0.894684 -0.857957 -0.789188
-0.689966 -0.56302 -0.412228 -0.242425 -0.000325814 0.00242221 0.0100181
0.0219885 0.0375392 0.0555981 0.0748697 0.0939012 0.11117 0.125158
0.134437 0.137762 0.134137 0.122883 0.103694 0.0766706 0.0423349 0.00162909
-0.044108 -0.0931874 -0.143625 -0.193235 -0.239707 -0.280703 -0.313991
-0.337528 -0.349556 -0.348723 -0.334151 -0.305486;
#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 204 180 metro 100;
#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 88 148 *~;
#X obj 204 206 tabwrite~ am;
#X text 244 12 Sawtooth wave (modulator);
#X text 84 12 Sine wave (carrier);
#X obj 85 249 output~;
#X connect 0 0 10 0;
#X connect 5 0 0 0;
#X connect 6 0 7 0;
#X connect 7 0 13 0;
#X connect 8 0 11 0;
#X connect 9 0 8 0;
#X connect 10 0 12 0;
#X connect 11 0 12 1;
#X connect 12 0 13 0;
#X connect 12 0 16 0;
#X connect 12 0 16 1;
#X restore 69 203 pd am-synthesis;
#N canvas 730 319 719 507 tremolo 0;
#X obj 88 28 mtof;
#N canvas 0 22 450 278 (subpatch) 0;
#X array tremolo 100 float 1;
#A 0 0.477489 -0.867087 -0.105657 0.91405 -0.287017 -0.792297 0.628067
0.523753 -0.854261 -0.15749 0.92342 -0.239119 -0.822234 0.592914 0.568784
-0.838364 -0.209408 0.929755 -0.18983 -0.84968 0.555332 0.612397 -0.819397
-0.261217 0.932967 -0.139325 -0.87455 0.515397 0.654422 -0.797424 -0.312705
0.933039 -0.0877851 -0.896701 0.473283 0.694641 -0.772498 -0.363683
0.929901 -0.0354023 -0.916026 0.429109 0.732931 -0.744661 -0.41394
0.92359 0.0176301 -0.932423 0.383036 0.769086 -0.714038 -0.463273 0.914053
0.0711135 -0.945792 0.33522 0.802975 -0.680679 -0.511498 0.901324 0.124843
-0.9561 0.285833 0.834429 -0.644722 -0.558402 0.88543 0.178616 -0.963203
0.235059 0.863324 -0.606262 -0.603812 0.866392 0.232227 -0.967127 0.183066
0.889532 -0.565452 -0.647516 0.844276 0.285466 -0.967794 0.130062 0.912902
-0.522416 -0.689373 0.819117 0.338131 -0.965193 0.0762344 0.933378
-0.477302 -0.729178 0.791042 0.390007 -0.959307 0.0217872 0.950808
-0.430287;
#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.916277 0.9171 0.917924 0.918747 0.919562 0.92037 0.921178 0.921986
0.922787 0.92358 0.924373 0.925165 0.925952 0.926729 0.927506 0.928283
0.929056 0.929817 0.930578 0.93134 0.932099 0.932844 0.933589 0.934335
0.935079 0.935808 0.936538 0.937267 0.937997 0.938711 0.939424 0.940137
0.94085 0.94155 0.942247 0.942944 0.943641 0.944326 0.945007 0.945688
0.946369 0.947039 0.947703 0.948368 0.949032 0.949688 0.950336 0.950984
0.951631 0.952272 0.952903 0.953535 0.954166 0.954792 0.955406 0.956021
0.956635 0.957246 0.957844 0.958442 0.95904 0.959635 0.960216 0.960797
0.961378 0.961959 0.962523 0.963087 0.963651 0.964215 0.964763 0.96531
0.965857 0.966403 0.966936 0.967466 0.967996 0.968526 0.969043 0.969556
0.970068 0.970581 0.971083 0.971578 0.972073 0.972569 0.973055 0.973533
0.974011 0.974489 0.974959 0.97542 0.97588 0.976341 0.976796 0.977239
0.977682 0.978125 0.978564 0.97899;
#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.832553 0.8342 0.835847 0.837494 0.839124 0.84074 0.842357 0.843973
0.845575 0.84716 0.848745 0.85033 0.851904 0.853458 0.855012 0.856566
0.858112 0.859635 0.861157 0.862679 0.864197 0.865688 0.867178 0.868669
0.870158 0.871617 0.873076 0.874534 0.875993 0.877421 0.878848 0.880275
0.881701 0.8831 0.884494 0.885889 0.887283 0.888653 0.890014 0.891376
0.892738 0.894078 0.895407 0.896736 0.898064 0.899376 0.900671 0.901967
0.903263 0.904544 0.905807 0.907069 0.908332 0.909583 0.910813 0.912042
0.913271 0.914492 0.915688 0.916884 0.918079 0.919271 0.920432 0.921594
0.922756 0.923917 0.925045 0.926173 0.927301 0.928429 0.929525 0.930619
0.931713 0.932807 0.933873 0.934932 0.935992 0.937051 0.938086 0.939111
0.940136 0.941162 0.942165 0.943156 0.944147 0.945137 0.94611 0.947066
0.948022 0.948977 0.949919 0.95084 0.951761 0.952682 0.953592 0.954478
0.955364 0.95625 0.957128 0.957979;
#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 214 48 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 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 8 0 9 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 restore 72 308 pd tremolo;
#N canvas 224 280 672 404 ring-modulation 0;
#N canvas 0 22 450 278 (subpatch) 0;
#X array ringmod 100 float 1;
#A 0 0.00697309 0.0080427 0.00898856 0.00971218 0.0101787 0.010358
0.0103605 0.0102799 0.0100982 0.0099051 0.00995953 0.0102867 0.0105762
0.01055 0.0100315 0.00914681 0.00811949 0.00684602 0.00563882 0.00505692
0.00456703 0.00342942 0.0018948 0.00076914 0.000330511 -3.0627e-07
-0.000525302 -0.000806251 -0.000700656 -0.000572985 -0.000513335 -0.000353695
-0.000106978 7.05673e-05 0.000157561 0.000260461 0.000443319 0.000666878
0.000878619 0.00116227 0.00158114 0.00185774 0.00185413 0.00182709
0.00205306 0.00264549 0.00324313 0.00336534 0.00325272 0.00332808 0.00325645
0.00266763 0.00192022 0.00166075 0.00171457 0.00144761 0.00129806 0.00205517
0.00322288 0.00400195 0.00433189 0.00431342 0.00417138 0.00409633 0.00391847
0.00361208 0.00343998 0.00325829 0.00275797 0.00207669 0.00149782 0.000957402
0.000241637 -0.000603913 -0.00147417 -0.00229927 -0.00298044 -0.00351139
-0.00391323 -0.00413971 -0.00428569 -0.00440331 -0.00415919 -0.00368657
-0.00355438 -0.00341101 -0.00262832 -0.00179713 -0.00184356 -0.00239185
-0.00256727 -0.00261241 -0.00300987 -0.00318914 -0.00253037 -0.00148808
-0.000983213 -0.0011717 -0.00143969 -0.00143928;
#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 129 osc~;
#X text 157 111 Modulate one audio signal (input from the microphone)
by a second audio signal (output from the osc~ object);
#X obj 85 269 output~;
#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 11 0 12 0;
#X connect 12 0 6 1;
#X restore 72 328 pd ring-modulation;
#N canvas 222 309 914 458 fm-synthesis 0;
#N canvas 0 22 450 278 (subpatch) 0;
#X array fm 100 float 1;
#A 0 -0.997362 -0.978915 -0.943281 -0.891227 -0.823798 -0.742275 -0.648192
-0.543283 -0.429421 -0.308615 -0.182977 -0.0546453 0.0742082 0.201441
0.324981 0.442821 0.553115 0.654145 0.744362 0.82245 0.887289 0.937964
0.973836 0.994502 0.999796 0.989793 0.964804 0.925362 0.872213 0.806296
0.728727 0.640774 0.543836 0.43941 0.32908 0.214499 0.0973331 -0.0207431
-0.13807 -0.253034 -0.36408 -0.469752 -0.568675 -0.659614 -0.741465
-0.813233 -0.874137 -0.923521 -0.960875 -0.985887 -0.998409 -0.998445
-0.986158 -0.961863 -0.926016 -0.879208 -0.822152 -0.755666 -0.680665
-0.598122 -0.509121 -0.414771 -0.316205 -0.214599 -0.111126 -0.00694947
0.0967828 0.198957 0.298506 0.394422 0.485741 0.571602 0.651209 0.723851
0.788898 0.84583 0.89422 0.933738 0.964148 0.985312 0.997166 0.99977
0.993262 0.977861 0.953841 0.921561 0.881481 0.834042 0.779824 0.719376
0.653351 0.582359 0.507104 0.42827 0.346542 0.262628 0.177228 0.0910282
0.00469937 -0.0811051;
#X coords 0 1 99 -1 200 140 1 0 0;
#X restore 267 267 graph;
#X text 239 260 1;
#X text 236 330 0;
#X text 229 399 -1;
#X obj 8 55 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj 94 273 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 94 298 metro 100;
#X text 1 38 Carrier Frequency;
#X obj 5 85 mtof~;
#X text -412 83 * NOTE here we're using "mtof~" not "mtof". The output
from this object is an audio signal not just a float.;
#X obj 94 324 tabwrite~ fm;
#X obj 5 285 osc~;
#X obj 5 233 +~;
#X obj 20 147 osc~;
#X text 59 120 Modulation frequency in Hz;
#X floatatom 20 120 5 0 0 0 - - -;
#X obj 20 207 *~;
#X floatatom 35 179 5 0 0 0 - - -;
#X text 74 180 Modulation amount in Hz;
#X obj 2 334 output~;
#X connect 4 0 8 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 restore 69 223 pd fm-synthesis;
#N canvas 71 97 805 507 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 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 restore 73 394 pd reverb;
#N canvas 875 533 669 485 delay 0;
#X text 270 69 DELAYS;
#X text 269 156 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 0 22 548 248 sample 0;
#N canvas 0 22 450 300 (subpatch) 0;
#X array G01-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 199 read -resize voice.wav G01-tab;
#X connect 1 0 3 0;
#X connect 3 0 2 0;
#X restore 274 414 pd sample;
#X floatatom 59 273 4 0 999 0 - - -;
#X text 102 272 <-- delay time;
#X text 67 307 read from delay line;
#X obj 59 326 delread~ delay1;
#X obj 35 164 tabplay~ G01-tab;
#X obj 35 140 metro 1000;
#X text 61 223 write to delay line;
#X obj 36 352 +~;
#X obj 45 242 delwrite~ delay1 1000;
#X text 269 101 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 268 292 The delread~ object always delays the signal an integer
number of samples and does no interpolation.;
#X text 49 184 test signal to delay;
#X text 269 207 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 135 286 (msec);
#X floatatom 92 108 4 0 0 0 - - -;
#X text 72 33 nonzero number or "bang" to start;
#X msg 36 34 bang;
#X msg 47 64 stop;
#X text 84 64 zero or "stop" to stop;
#X obj 37 380 output~;
#X connect 3 0 6 0;
#X connect 6 0 10 1;
#X connect 7 0 10 0;
#X connect 7 0 11 0;
#X connect 8 0 7 0;
#X connect 10 0 22 0;
#X connect 10 0 22 1;
#X connect 17 0 8 1;
#X connect 19 0 8 0;
#X connect 20 0 8 0;
#X restore 73 417 pd delay;
#X text 45 262 Processing;
#N canvas 42 23 849 464 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 sample-table 44104 float 0;
#X coords 0 1.02 44103 -1.02 200 130 1;
#X restore 549 90 graph;
#X obj 62 193 tabread4~ sample-table;
#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 msg 283 342 read voice.wav sample-table;
#X obj 55 347 output~;
#X connect 0 0 22 0;
#X connect 0 0 22 1;
#X connect 3 0 0 0;
#X connect 4 0 3 0;
#X connect 5 0 7 0;
#X connect 6 0 5 0;
#X connect 7 0 4 0;
#X connect 10 0 21 0;
#X connect 21 0 20 0;
#X restore 54 505 pd file-playback-scratcher;
#N canvas 880 23 497 410 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 157 166 5 0 0 0 - - -;
#X obj 106 247 *~ 1;
#X obj 87 301 output~;
#X connect 0 0 2 0;
#X connect 1 0 2 1;
#X connect 2 0 6 0;
#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 restore 54 527 pd drums-horrible-snare;
#N canvas 1056 23 483 421 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 54 547 pd drums-horrible-kick;
#N canvas 0 177 654 844 horrible-marimba 0;
#X obj 113 480 line~;
#X obj 98 507 *~;
#X obj 111 64 bng 15 250 50 0 empty empty empty 0 -6 0 8 -241291 -1
-1;
#X obj 96 419 osc~;
#X obj 294 278 noise~;
#X obj 352 316 line~;
#X obj 295 370 *~;
#X obj 295 406 lop~ 5000;
#X obj 0 343 line~;
#X obj -47 340 osc~;
#X msg 0 313 1 \, 0 100;
#X floatatom 98 156 3 0 0 0 - - -;
#X floatatom 130 155 3 0 0 0 - - -;
#X obj -47 373 *~;
#X obj -47 310 * 3;
#X obj -47 406 *~ 1;
#X obj 295 465 *~ 0.5;
#X obj 97 201 mtof;
#X msg 352 288 1 \, 0 44;
#X msg 113 451 1 \, 0 400;
#X obj 98 533 *~ 0.4;
#X obj 130 201 * 0.33;
#X obj 130 223 * 0.4;
#X obj 155 64 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X obj -36 63 hsl 128 15 0 127 0 0 empty empty empty -2 -8 0 10 -262144
-1 -1 0 1;
#X text -31 42 Pitch (midi);
#X text 161 42 Velocity (volume);
#X obj 79 677 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 55 569 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 55 589 pd cleaner-horrible-marimba;
#X text 43 481 "Horrible" Instruments;
#N canvas 261 146 695 590 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 74 741 pd bells;
#X text 56 720 Risset "Bells" model;
#N canvas 783 23 503 582 sample-players 0;
#X msg 235 303 voice.wav;
#X floatatom 91 156 0 0 100 0 - - -;
#X text 121 154 <-- read point in 100ths of a second;
#X text 133 168 (range is 0-100.) YOU ONLY HEAR OUTPUT;
#X text 134 184 WHEN THIS IS 0-100 AND ACTIVELY CHANGING.;
#X obj 151 381 output~;
#X floatatom 53 156 5 0 0 0 - - -;
#X obj 16 -5 metro 500;
#X floatatom 67 -28 4 0 0 0 - - -;
#X msg 16 -104 1;
#X text 84 -105 nonzero number or "bang" to start;
#X msg 57 -71 0;
#X msg 48 -104 bang;
#X msg 89 -71 stop;
#X obj 16 18 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X text 126 -71 zero or "stop" to stop;
#X floatatom 53 118 5 0 0 0 - - -;
#X floatatom 16 62 5 0 0 0 - - -;
#X obj 53 62 + 1;
#X obj 78 62 prepend set;
#X floatatom 177 228 0 0 100 0 - - -;
#X floatatom 206 264 0 0 100 0 - - -;
#X text 208 228 <-- width of sample to be read;
#X text 237 264 <-- starting position;
#X text 107 -27 <-- speed;
#N canvas 482 315 805 678 sampler-instance 0;
#X msg 355 385 voice.wav;
#X floatatom 211 238 0 0 100 0 - - -;
#X text 241 236 <-- read point in 100ths of a second;
#X text 253 250 (range is 0-100.) YOU ONLY HEAR OUTPUT;
#X text 254 266 WHEN THIS IS 0-100 AND ACTIVELY CHANGING.;
#X obj 271 463 output~;
#X floatatom 173 238 5 0 0 0 - - -;
#X obj 136 77 metro 500;
#X floatatom 187 54 4 0 0 0 - - -;
#X msg 21 41 1;
#X msg 67 39 0;
#X obj 136 100 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 173 200 5 0 0 0 - - -;
#X floatatom 136 144 5 0 0 0 - - -;
#X obj 173 144 + 1;
#X obj 198 144 prepend set;
#X floatatom 297 310 0 0 100 0 - - -;
#X floatatom 326 356 0 0 100 0 - - -;
#X text 328 310 <-- width of sample to be read;
#X text 357 356 <-- starting position;
#X text 227 55 <-- speed;
#X obj 21 3 inlet;
#X obj 67 4 inlet;
#X obj 187 6 inlet;
#X obj 243 193 inlet;
#X obj 304 286 inlet;
#X obj 354 326 inlet;
#X obj 446 379 inlet;
#X obj 208 466 outlet~;
#X obj 381 445 inlet;
#X obj 268 427 sample-player;
#X connect 0 0 30 3;
#X connect 1 0 30 0;
#X connect 6 0 30 0;
#X connect 7 0 11 0;
#X connect 8 0 7 1;
#X connect 9 0 7 0;
#X connect 10 0 7 0;
#X connect 11 0 13 0;
#X connect 12 0 6 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 14 0 12 0;
#X connect 15 0 13 0;
#X connect 16 0 30 1;
#X connect 17 0 30 2;
#X connect 21 0 9 0;
#X connect 22 0 10 0;
#X connect 23 0 8 0;
#X connect 24 0 1 0;
#X connect 25 0 16 0;
#X connect 26 0 17 0;
#X connect 27 0 0 0;
#X connect 29 0 5 2;
#X connect 30 0 5 0;
#X connect 30 0 5 1;
#X connect 30 0 28 0;
#X restore 281 67 pd sampler-instance;
#X obj 148 345 sample-player;
#X connect 0 0 26 3;
#X connect 1 0 26 0;
#X connect 6 0 26 0;
#X connect 7 0 14 0;
#X connect 8 0 7 1;
#X connect 9 0 7 0;
#X connect 11 0 7 0;
#X connect 12 0 7 0;
#X connect 13 0 7 0;
#X connect 14 0 17 0;
#X connect 16 0 6 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 18 0 16 0;
#X connect 19 0 17 0;
#X connect 20 0 26 1;
#X connect 21 0 26 2;
#X connect 26 0 5 0;
#X connect 26 0 5 1;
#X restore 341 331 pd sample-players;
#N canvas 347 49 578 534 sampler-instance 0;
#X msg 259 315 voice.wav;
#X floatatom 125 206 0 0 100 0 - - -;
#X text 216 158 <-- read point in 100ths of a second;
#X text 228 172 (range is 0-100.) YOU ONLY HEAR OUTPUT;
#X text 229 188 WHEN THIS IS 0-100 AND ACTIVELY CHANGING.;
#X obj 93 429 output~;
#X floatatom 90 207 5 0 0 0 - - -;
#X obj 53 85 metro 500;
#X floatatom 125 59 4 0 0 0 - - -;
#X msg 53 59 1;
#X msg 89 59 0;
#X obj 35 86 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
-1;
#X floatatom 53 113 5 0 0 0 - - -;
#X obj 90 113 + 1;
#X obj 115 113 prepend set;
#X floatatom 209 239 0 0 0 0 - - -;
#X floatatom 253 281 0 0 0 0 - - -;
#X text 253 221 <-- width of sample to be read;
#X text 293 260 <-- starting position;
#X text 158 60 <-- speed;
#X obj 53 39 inlet;
#X obj 89 39 inlet;
#X obj 125 39 inlet;
#X obj 167 161 inlet;
#X obj 209 220 inlet;
#X obj 253 262 inlet;
#X obj 323 315 inlet;
#X obj 30 432 outlet~;
#X obj 373 390 inlet;
#X floatatom 373 413 5 0 0 0 - - -;
#X obj 90 393 sample-player;
#X text 366 314 <-- filename/path;
#X text 418 391 <-- Output volume;
#X connect 0 0 30 3;
#X connect 1 0 30 0;
#X connect 6 0 30 0;
#X connect 7 0 11 0;
#X connect 7 0 12 0;
#X connect 8 0 7 1;
#X connect 9 0 7 0;
#X connect 10 0 7 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 13 0 6 0;
#X connect 14 0 12 0;
#X connect 15 0 30 1;
#X connect 16 0 30 2;
#X connect 20 0 9 0;
#X connect 21 0 10 0;
#X connect 22 0 8 0;
#X connect 23 0 1 0;
#X connect 24 0 15 0;
#X connect 25 0 16 0;
#X connect 26 0 30 3;
#X connect 28 0 29 0;
#X connect 29 0 5 2;
#X connect 30 0 5 0;
#X connect 30 0 5 1;
#X connect 30 0 27 0;
#X restore 503 231 pd sampler-instance;
#X text 429 146 Start Metro;
#X obj 503 148 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 518 127 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X text 444 125 Stop Metro;
#X floatatom 534 104 4 0 0 0 - - -;
#X text 458 104 Metro speed;
#X text 580 128 Metro read point;
#X floatatom 550 127 0 0 99 0 - - -;
#X msg 598 191 voice.wav;
#X floatatom 566 148 0 0 100 0 - - -;
#X floatatom 582 169 0 0 100 0 - - -;
#X text 597 148 <-- width of sample to be read;
#X text 613 169 <-- starting position;
#X text 670 191 Filename;
#X floatatom 614 211 0 0 100 0 - - -;
#X text 643 212 Volume;
#X connect 25 0 23 0;
#X connect 26 0 23 1;
#X connect 28 0 23 2;
#X connect 31 0 23 3;
#X connect 32 0 23 6;
#X connect 33 0 23 4;
#X connect 34 0 23 5;
#X connect 38 0 23 7;
#X restore 155 488 pd more_sounds;
#N canvas 0 23 450 300 more_control 0;
#N canvas 932 23 405 432 keyboard-input 0;
#X obj 57 62 key;
#X floatatom 57 90 3 0 0 0 - - -;
#X floatatom 96 88 3 0 0 0 - - -;
#X obj 96 62 keyup;
#X floatatom 147 88 3 0 0 0 - - -;
#X obj 147 62 keyname;
#X symbolatom 191 89 10 0 0 0 - - -;
#X text -16 -75 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 -24 -8 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 -12 252 select 97;
#X obj -12 283 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 57 253 select 115;
#X obj 57 281 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 57 128 s keypress;
#X obj 58 166 r keypress;
#X obj 58 204 select 119;
#X obj 58 229 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 133 281 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 133 253 select 100;
#X connect 0 0 1 0;
#X connect 1 0 13 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 14 0 9 0;
#X connect 14 0 11 0;
#X connect 14 0 15 0;
#X connect 14 0 18 0;
#X connect 15 0 16 0;
#X connect 18 0 17 0;
#X restore 70 54 pd keyboard-input;
#N canvas 309 359 632 605 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 restore 148 531 pd more_control;
#N canvas 0 23 450 300 more_structure 0;
#X obj 28 50 hamilr4_etude_1 one 2 three;
#X obj 83 156 s bartoa_mute;
#X obj 94 133 s bartoa_solo;
#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 connect 3 0 2 0;
#X connect 4 0 1 0;
#X connect 5 0 6 0;
#X restore 134 574 pd more_structure;
#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 17 0 19 0;
#X connect 17 1 20 0;
#X connect 18 0 19 0;
#X connect 18 1 20 0;
#X connect 21 0 17 0;
#X connect 22 0 23 1;
#X connect 22 0 21 1;
#X connect 23 0 18 0;
#X connect 24 0 21 0;
#X connect 25 0 23 0;