diff --git a/hamilr4.pd b/hamilr4.pd index 1053d12..70ad3af 100644 --- a/hamilr4.pd +++ b/hamilr4.pd @@ -251,6 +251,193 @@ control data... this can be any size.; #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; @@ -476,15 +663,1052 @@ at the specified pitch.; #X connect 9 0 12 0; #X connect 14 0 10 0; #X connect 16 0 15 0; -#X restore 516 291 pd karplus_strong; -#X text 494 270 "Guitar" String model; -#X obj 516 315 throw~ hamilr4_audio_1; -#X obj 908 603 s bartoa_mute; -#X obj 919 580 s bartoa_solo; -#X obj 928 548 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 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 908 548 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 +#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; @@ -499,6 +1723,3 @@ at the specified pitch.; #X connect 23 0 18 0; #X connect 24 0 21 0; #X connect 25 0 23 0; -#X connect 31 0 33 0; -#X connect 36 0 35 0; -#X connect 37 0 34 0; diff --git a/hamilr4_etude_1.pd b/hamilr4_etude_1.pd new file mode 100644 index 0000000..d9d443c --- /dev/null +++ b/hamilr4_etude_1.pd @@ -0,0 +1,17 @@ +#N canvas 0 23 573 657 12; +#X msg 104 55 bang; +#X obj 62 108 symbol \$1; +#X obj 156 104 f \$2; +#X obj 62 84 t b b; +#X obj 61 131 pack symbol float; +#X msg 61 157 six \$1 \$2; +#X obj 61 184 print; +#X obj 61 29 inlet; +#X connect 0 0 3 0; +#X connect 1 0 4 0; +#X connect 2 0 4 1; +#X connect 3 0 1 0; +#X connect 3 1 2 0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 7 0 3 0; diff --git a/masheen.pd b/masheen.pd index 466d456..def0b48 100644 --- a/masheen.pd +++ b/masheen.pd @@ -66,7 +66,7 @@ #X obj 354 199 metro 500; #X obj 354 220 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; -#X obj 354 182 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 +#X obj 354 182 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 658 82 send hamilr4_control; #X msg 657 25 1 2 3 4 5; @@ -141,6 +141,7 @@ the outlet for now.; #X obj 514 87 r global_tempo_ms; #X obj 414 57 r global_tempo_bpm; #X obj 354 33 r global_tempo_onoff; +#X floatatom 612 183 5 0 0 0 - - -; #X connect 20 0 21 0; #X connect 21 0 19 0; #X connect 22 0 20 0; diff --git a/output~.pd b/output~.pd new file mode 100755 index 0000000..a916414 --- /dev/null +++ b/output~.pd @@ -0,0 +1,69 @@ +#N canvas 0 22 615 578 12; +#X obj 353 490 t b; +#X obj 353 437 f; +#X obj 353 515 f; +#X msg 467 514 0; +#X obj 353 467 moses 1; +#X obj 467 486 t b f; +#X obj 433 447 moses 1; +#X obj 29 97 dbtorms; +#X obj 85 170 inlet~; +#X msg 299 310 \; pd dsp 1; +#X obj 29 170 line~; +#X obj 64 242 *~; +#X obj 64 272 dac~; +#X obj 29 127 pack 0 50; +#X text 121 146 audio in; +#X text 138 464 test if less than 1 -->; +#X text 104 491 if true convert to bang -->; +#X text 100 96 <-- convert from dB to linear units; +#X floatatom 323 219 3 0 100 0 dB - -; +#X obj 350 240 bng 15 250 50 0 empty empty mute -38 7 0 12 -262144 +-1 -1; +#X text 118 126 <-- make a ramp to avoid clicks or zipper noise; +#X obj 148 170 inlet~; +#X obj 154 241 *~; +#X text 373 378 MUTE logic:; +#X obj 323 174 r \$0-master-lvl; +#X obj 353 541 s \$0-master-lvl; +#X obj 323 279 s \$0-master-out; +#X obj 29 71 r \$0-master-out; +#X obj 433 418 r \$0-master-out; +#X text 60 10 Level control abstraction \, used in many of the Pd example +patches. The "level" and "mute" controls show up on the parent \, calling +patch.; +#X text 66 517 previous nonzero master-lvl -->; +#X text 138 421 recall previous; +#X text 138 439 value of master-lvl -->; +#X text 39 319 automatically start DSP -->; +#X obj 85 192 hip~ 3; +#X obj 147 192 hip~ 3; +#X obj 281 174 inlet; +#X text 278 152 volume; +#X connect 0 0 2 0; +#X connect 1 0 4 0; +#X connect 2 0 25 0; +#X connect 3 0 25 0; +#X connect 4 0 0 0; +#X connect 4 1 5 0; +#X connect 5 0 3 0; +#X connect 6 1 2 1; +#X connect 7 0 13 0; +#X connect 8 0 34 0; +#X connect 10 0 22 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 13 0 10 0; +#X connect 18 0 9 0; +#X connect 18 0 26 0; +#X connect 19 0 1 0; +#X connect 21 0 35 0; +#X connect 22 0 12 1; +#X connect 24 0 18 0; +#X connect 27 0 7 0; +#X connect 28 0 1 1; +#X connect 28 0 6 0; +#X connect 34 0 11 1; +#X connect 35 0 22 1; +#X connect 36 0 18 0; +#X coords 0 0 1 1 65 55 1 300 200; diff --git a/partial.pd b/partial.pd new file mode 100755 index 0000000..03bb925 --- /dev/null +++ b/partial.pd @@ -0,0 +1,76 @@ +#N canvas 18 78 880 448 12; +#X obj 465 234 sqrt; +#X text 17 88 trigger; +#X text 33 175 relative frequency; +#X obj 17 341 *~; +#X obj 227 322 line~; +#X obj 227 349 *~; +#X obj 227 376 *~; +#X msg 227 285 0 \$1; +#X obj 465 261 sqrt; +#X obj 17 113 r trigger; +#X obj 465 180 float \$1; +#X obj 249 235 r duration; +#X obj 39 226 r frequency; +#X obj 227 158 t b b; +#X text 303 209 relative duration; +#X obj 17 368 throw~ sum; +#X obj 17 140 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 465 288 \$1 5; +#X obj 227 185 del 5; +#X obj 465 207 * 0.1; +#X obj 17 279 + \$4; +#X text 550 178 get amplitude from argument 1; +#X text 524 206 normalize to 0.1; +#X text 516 233 take fourth root (square root twice); +#X text 544 250 because we'll raise line~ output to; +#X text 543 267 fourth power; +#X text 515 292 attack time 5 msec; +#X text 280 184 decay after 5 msec; +#X text 469 157 attack; +#X obj 226 211 float \$2; +#X obj 227 258 *; +#X text 264 258 actual duration; +#X obj 17 200 float \$3; +#X obj 17 252 *; +#X obj 17 314 osc~; +#X text 49 252 times global freq.; +#X text 60 279 plus detune; +#X text 271 285 decay msg to line~; +#X text 266 350 raise to fourth power for; +#X text 267 368 natural-sounding decay shape; +#X text 20 396 add to global; +#X text 19 415 summing bus; +#X text 21 45 This patch is used as an abstraction in the additive +synthesis example \, D06.additive.pd; +#X text 25 4 partial -- sinusoidal partial for additive synthesis; +#X text 631 12 arguments:; +#X text 605 37 1 amplitude \; 2 relative duration \; 3 relative frequency +\; 4 detune; +#X connect 0 0 8 0; +#X connect 3 0 15 0; +#X connect 4 0 5 0; +#X connect 4 0 5 1; +#X connect 5 0 6 0; +#X connect 5 0 6 1; +#X connect 6 0 3 1; +#X connect 7 0 4 0; +#X connect 8 0 17 0; +#X connect 9 0 16 0; +#X connect 10 0 19 0; +#X connect 11 0 30 1; +#X connect 12 0 33 1; +#X connect 13 0 18 0; +#X connect 13 1 10 0; +#X connect 16 0 13 0; +#X connect 16 0 32 0; +#X connect 17 0 4 0; +#X connect 18 0 29 0; +#X connect 19 0 0 0; +#X connect 20 0 34 0; +#X connect 29 0 30 0; +#X connect 30 0 7 0; +#X connect 32 0 33 0; +#X connect 33 0 20 0; +#X connect 34 0 3 0; diff --git a/sample-player.pd b/sample-player.pd new file mode 100755 index 0000000..8f0d358 --- /dev/null +++ b/sample-player.pd @@ -0,0 +1,109 @@ +#N canvas 177 182 999 656 10; +#X obj 58 278 hip~ 5; +#X text -119 277 high pass filter to cut DC; +#N canvas 0 22 450 300 (subpatch) 0; +#X array \$0-sample 62079 float 0; +#X coords 0 1.02 62078 -1.02 200 130 1; +#X restore -80 408 graph; +#X obj 58 211 line~; +#X floatatom 57 75 0 0 0 0 - - -; +#X text -214 162 convert to SAMPLES (441 samples in 0.01 sec); +#X text -80 241 read from the table; +#X text -170 255 (the input is the index in samples); +#X text -74 561 (one second plus three extra; +#X text -72 580 for 4-point interpolation); +#X text 424 310 message to read a soundfile into the table (automatically +sent when you load this patch by the "loadbang" object.); +#X text -145 210 convert smoothly to audio signal; +#X text -211 87 (range is 0-100.) YOU ONLY HEAR OUTPUT; +#X text -210 103 WHEN THIS IS 0-100 AND ACTIVELY CHANGING.; +#X text -81 539 --- 44103 samples ---; +#X obj 444 290 soundfiler; +#X obj 58 310 outlet~; +#X obj 58 246 tabread4~ \$0-sample; +#X obj 483 47 inlet; +#X obj 444 192 prepend; +#X obj 444 102 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 57 22 inlet; +#X obj 393 233 print; +#X obj 444 122 f \$0; +#X msg 444 147 \$1-sample; +#X floatatom 16 21 5 0 0 0 - - -; +#X obj 97 22 inlet; +#X floatatom 97 45 0 0 0 0 - - -; +#X obj 57 48 % 100; +#X obj 137 22 inlet; +#X obj 57 102 + 0; +#X floatatom 57 135 0 0 0 0 - - -; +#X floatatom 82 102 5 0 0 0 - - -; +#X obj 483 85 prepend read -resize; +#X obj 194 89 soundfile_info; +#X obj 194 64 prepend read; +#X msg 194 113 \$3; +#X text 225 112 length of loaded file (samples); +#X floatatom 208 140 5 0 0 0 - - -; +#X obj 195 178 / 100; +#X floatatom 207 223 5 0 0 0 - - -; +#X text -223 73 read point in 100ths of a second; +#X obj 193 304 snapshot~; +#X floatatom 193 332 15 0 0 0 - - -; +#X obj 194 276 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 +-1 -1; +#X obj 193 377 print; +#X obj 273 187 / 100; +#X obj 273 216 * 1; +#X text 314 186 calc percentage; +#X text 314 198 of file length; +#X floatatom 280 254 5 0 0 0 - - -; +#X obj 58 162 * 441; +#X obj 58 186 pack 0 100; +#X obj 289 396 % 44100; +#X floatatom 289 422 15 0 0 0 - - -; +#X obj 328 369 * 441; +#X obj 234 505 sig~; +#X obj 283 459 sig~; +#X connect 0 0 16 0; +#X connect 3 0 42 0; +#X connect 3 0 17 0; +#X connect 4 0 30 0; +#X connect 17 0 0 0; +#X connect 18 0 33 0; +#X connect 18 0 35 0; +#X connect 19 0 22 0; +#X connect 19 0 15 0; +#X connect 20 0 23 0; +#X connect 21 0 28 0; +#X connect 23 0 24 0; +#X connect 24 0 19 0; +#X connect 25 0 28 0; +#X connect 26 0 27 0; +#X connect 27 0 28 1; +#X connect 27 0 55 0; +#X connect 28 0 4 0; +#X connect 29 0 30 1; +#X connect 30 0 31 0; +#X connect 31 0 51 0; +#X connect 32 0 30 1; +#X connect 33 0 19 1; +#X connect 33 0 20 0; +#X connect 34 0 36 0; +#X connect 35 0 34 0; +#X connect 36 0 38 0; +#X connect 36 0 39 0; +#X connect 38 0 46 0; +#X connect 39 0 27 0; +#X connect 39 0 40 0; +#X connect 42 0 43 0; +#X connect 43 0 45 0; +#X connect 43 0 53 0; +#X connect 44 0 42 0; +#X connect 46 0 47 0; +#X connect 47 0 50 0; +#X connect 51 0 52 0; +#X connect 52 0 3 0; +#X connect 52 0 44 0; +#X connect 53 0 54 0; +#X connect 54 0 45 0; +#X connect 54 0 57 0; +#X connect 55 0 53 1; diff --git a/test.pd b/test.pd new file mode 100644 index 0000000..436454b --- /dev/null +++ b/test.pd @@ -0,0 +1,6 @@ +#N canvas 0 23 450 300 12; +#X obj 37 37 inlet; +#X obj 37 61 f \$1; +#X obj 37 85 print; +#X connect 0 0 1 0; +#X connect 1 0 2 0; diff --git a/voice.wav b/voice.wav new file mode 100755 index 0000000..8b7f1ac Binary files /dev/null and b/voice.wav differ