#N canvas 36 68 722 738 12; #X obj 216 145 *~; #X floatatom 216 88 0 0 0; #X obj 297 125 line~; #X floatatom 128 108 0 0 0; #X obj 128 222 cos~; #X obj 128 178 +~; #X floatatom 166 299 0 0 100; #N canvas 159 26 495 270 output 0; #X obj 338 160 t b; #X obj 338 110 f; #X obj 338 60 inlet; #X text 344 29 mute; #X obj 338 185 f; #X msg 425 178 0; #X msg 338 85 bang; #X obj 338 135 moses 1; #X obj 425 153 t b f; #X obj 397 117 moses 1; #X obj 83 148 dbtorms; #X obj 397 92 r master-lvl; #X obj 83 42 r master-lvl; #X obj 338 210 s master-lvl; #X obj 22 182 inlet~; #X obj 199 41 inlet; #X text 199 18 level; #X obj 199 100 s master-lvl; #X msg 96 65 set \$1; #X obj 96 89 outlet; #X msg 214 64 \; pd dsp 1; #X obj 83 194 line~; #X obj 22 212 *~; #X obj 22 241 dac~; #X obj 83 171 pack 0 50; #X text 20 159 audio; #X text 93 110 show level; #X connect 0 0 4 0; #X connect 1 0 7 0; #X connect 2 0 6 0; #X connect 4 0 13 0; #X connect 5 0 13 0; #X connect 6 0 1 0; #X connect 7 0 0 0; #X connect 7 1 8 0; #X connect 8 0 5 0; #X connect 9 1 4 1; #X connect 10 0 24 0; #X connect 11 0 1 1; #X connect 11 0 9 0; #X connect 12 0 10 0; #X connect 12 0 18 0; #X connect 14 0 22 0; #X connect 15 0 17 0; #X connect 15 0 20 0; #X connect 18 0 19 0; #X connect 21 0 22 1; #X connect 22 0 23 0; #X connect 22 0 23 1; #X connect 24 0 21 0; #X restore 128 326 pd output; #X msg 204 299 MUTE; #X obj 216 113 osc~ 0; #X obj 297 99 pack 0 50; #X floatatom 297 46 0 0 0; #X obj 297 73 / 100; #X text 271 8 modulation index; #X text 271 23 in hundredths; #X text 125 65 carrier; #X text 124 83 frequency; #X text 201 64 frequency; #X text 202 47 modulation; #X text 33 119 carrier; #X text 33 134 phase -->; #X text 6 162 phase; #X text 5 177 modulation-->; #X text 12 204 output; #X text 11 221 waveform -->; #X text 527 6 PHASE MODULATION; #X text 417 703 updated for Pd version 0.34; #X text 13 377 Most implementations of "FM" actually use phase \, not frequency \, modulation \, because it extends in a more natural way to "multi-operator FM" with three or more oscillators.; #X text 15 437 To do phase modulation \, we split the "carrier oscillator" into its phase calculation (phasor~) and its waveform lookup (cos~). These together would be equivalent to an osc~ object \, but the "+~" between them adds the modulating oscillator's output to the phase. ; #X text 18 587 The units of the "modulation" index change--it is now dimensionless and relative to the modulation frequency \, and "good" values tend to be between 0 and 1 In this patch it's in hundredths. ; #X text 19 658 We also have to use a line~ to smooth changes in the modulation index \, which wasn't necessary in the previous patch.; #X obj 128 135 phasor~; #X obj 117 557 cos~; #X obj 117 529 phasor~; #X text 60 539 this:; #X text 219 532 is the same; #X text 220 551 as this:; #X obj 335 544 osc~; #X graph graph2 0 -1 440 1 509 330 709 190; #X array phase-out 441 float 1; #A 0 0.43245 0.433463 0.434452 0.435418 0.43636 0.43728 0.438178 0.439056 0.439912 0.440749 0.441567 0.442366 0.443148 0.443912 0.444659 0.445391 0.446107 0.446809 0.447497 0.448172 0.448834 0.449484 0.450122 0.450751 0.451369 0.451978 0.452579 0.453172 0.453758 0.454338 0.454911 0.45548 0.456045 0.456606 0.457164 0.457719 0.458274 0.458827 0.45938 0.459934 0.460489 0.461046 0.461605 0.462168 0.462735 0.463306 0.463883 0.464466 0.465056 0.465654 0.466259 0.466873 0.467497 0.468131 0.468776 0.469433 0.470102 0.470783 0.471479 0.472188 0.472913 0.473653 0.474409 0.475182 0.475973 0.476782 0.477611 0.478459 0.479327 0.480216 0.481127 0.48206 0.483015 0.483994 0.484997 0.486024 0.487077 0.488156 0.48926 0.490392 0.491552 0.49274 0.493957 0.495203 0.496479 0.497785 0.499123 0.500493 0.501896 0.503332 0.504801 0.506304 0.507842 0.509415 0.511023 0.512667 0.514348 0.516066 0.517821 0.519615 0.521447 0.523318 0.525228 0.527179 0.52917 0.531202 0.533275 0.53539 0.537547 0.539747 0.541992 0.54428 0.546613 0.548989 0.551411 0.553877 0.556389 0.558947 0.561551 0.564202 0.5669 0.569645 0.572437 0.575278 0.578166 0.581104 0.58409 0.587125 0.59021 0.593345 0.596529 0.599764 0.603051 0.606389 0.609778 0.613219 0.61671 0.620254 0.62385 0.627497 0.631197 0.634949 0.638754 0.642612 0.646522 0.650486 0.654503 0.658573 0.662696 0.666873 0.671104 -0.324611 -0.320273 -0.315881 -0.311434 -0.306931 -0.302375 -0.297764 -0.2931 -0.288381 -0.283608 -0.278781 -0.2739 -0.268964 -0.263975 -0.258931 -0.253833 -0.248682 -0.243476 -0.238217 -0.232904 -0.227537 -0.222116 -0.216642 -0.211115 -0.205534 -0.1999 -0.194211 -0.18847 -0.182675 -0.176829 -0.170929 -0.164978 -0.158975 -0.152919 -0.146813 -0.140655 -0.134446 -0.128186 -0.121875 -0.115514 -0.109103 -0.102642 -0.0961313 -0.0895714 -0.0829625 -0.0763049 -0.0695988 -0.0628447 -0.056041 -0.0491896 -0.0422913 -0.0353461 -0.0283546 -0.0213171 -0.0142339 -0.00710538 6.80089e-05 0.00728586 0.0145478 0.0218535 0.0292025 0.0365944 0.0440286 0.0515049 0.0590228 0.0665818 0.0741815 0.0818213 0.0895009 0.0972198 0.104978 0.112776 0.120611 0.128484 0.136393 0.144339 0.15232 0.160337 0.168388 0.176473 0.184592 0.192744 0.200929 0.209146 0.217393 0.225672 0.233981 0.24232 0.250688 0.259084 0.267509 0.27596 0.284439 0.292944 0.301475 0.310031 0.318611 0.327215 0.335842 0.344491 0.353162 0.361854 0.370566 0.379298 0.38805 0.39682 0.405608 0.414413 0.423234 0.432072 0.440924 0.449792 0.458673 0.467567 0.476474 0.485394 0.494324 0.503265 0.512216 0.521176 0.530145 0.539121 0.548104 0.557094 0.566089 0.575089 0.584094 0.593102 0.602113 0.611126 0.620141 0.629157 0.638173 0.647189 0.656203 0.665215 0.674225 0.683232 0.692234 0.701231 0.710224 0.71921 0.728189 0.737161 0.746124 0.755079 0.764024 0.772959 0.781884 0.790796 0.799697 0.808584 0.817458 0.826318 0.835162 0.843992 0.852804 0.861601 0.870379 0.879139 0.887879 0.8966 0.905301 0.913981 0.92264 0.931276 0.93989 0.94848 0.957046 0.965588 0.974105 0.982595 0.99106 0.999497 1.00791 1.01629 1.02464 1.03296 1.04126 1.04952 1.05775 1.06595 1.07412 1.08225 1.09035 1.09841 1.10645 1.11444 1.1224 1.13033 1.13822 1.14607 1.15388 1.16166 1.1694 1.17709 1.18475 1.19237 1.19995 1.20749 1.21498 1.22244 1.22985 1.23722 1.24454 1.25182 1.25906 1.26625 1.2734 0.280502 0.287559 0.29457 0.301536 0.308454 0.315325 0.32215 0.328926 0.335655 0.342335 0.348967 0.35555 0.362084 0.368568 0.375003 0.381388 0.387722 0.394004 0.400235 0.406415 0.412544 0.418621 0.424647 0.430621 0.436542 0.442412 0.448228 0.453993 0.459704 0.465363 0.470969 0.476521 0.48202 0.487466 0.492858 0.498196 0.503481 0.508712 0.513889 0.519011 0.524077 0.52909 0.534049 0.538953 0.543804 0.5486 0.553342 0.55803 0.562664 0.567243 0.571769 0.57624 0.580658 0.585021 0.589331 0.593587 0.597789 0.601938 0.606033 0.610075 0.614064 0.617999 0.621879 0.625706 0.629481 0.633203 0.636873 0.640491 0.644057 0.647571 0.651033 0.654445 0.657805 0.661114 0.664372 0.66758 0.670739 0.673847 0.676905 0.679914 0.682875 ; #X array cos-out 441 float 1; #A 0 -0.911256 -0.913872 -0.916365 -0.918789 -0.921097 -0.923342 -0.925486 -0.927564 -0.92956 -0.931483 -0.93335 -0.935129 -0.936867 -0.938528 -0.940137 -0.941707 -0.943197 -0.944657 -0.946072 -0.947426 -0.948755 -0.95004 -0.951276 -0.952491 -0.953672 -0.954806 -0.955924 -0.957024 -0.958071 -0.959106 -0.960132 -0.961119 -0.962086 -0.963047 -0.963993 -0.964903 -0.965811 -0.966718 -0.967595 -0.968461 -0.969329 -0.970192 -0.971025 -0.971863 -0.972707 -0.973527 -0.974343 -0.975168 -0.975986 -0.976786 -0.977597 -0.978414 -0.979202 -0.980003 -0.980816 -0.981596 -0.982391 -0.983194 -0.983968 -0.984757 -0.985543 -0.98631 -0.987093 -0.987851 -0.98861 -0.98937 -0.990102 -0.990852 -0.991557 -0.992275 -0.99296 -0.993642 -0.994295 -0.994935 -0.995544 -0.996137 -0.996687 -0.997227 -0.997705 -0.998173 -0.998575 -0.998944 -0.999273 -0.999527 -0.999743 -0.999894 -0.999966 -0.999981 -0.999927 -0.999765 -0.999526 -0.999202 -0.998785 -0.99824 -0.997586 -0.996816 -0.995923 -0.994897 -0.99373 -0.992413 -0.990934 -0.989283 -0.987458 -0.985449 -0.983247 -0.980843 -0.978222 -0.975372 -0.972288 -0.968961 -0.965377 -0.96153 -0.95741 -0.952995 -0.948265 -0.943231 -0.937881 -0.932182 -0.926128 -0.919728 -0.912938 -0.905762 -0.898197 -0.890198 -0.881799 -0.87293 -0.863637 -0.853855 -0.843612 -0.832873 -0.821629 -0.809886 -0.797593 -0.784764 -0.771394 -0.757466 -0.742953 -0.727864 -0.712189 -0.695918 -0.679041 -0.661549 -0.643437 -0.624697 -0.605324 -0.585314 -0.564664 -0.543374 -0.521441 -0.498869 -0.475658 -0.451811 -0.427334 -0.402219 -0.376482 -0.350131 -0.323174 -0.295626 -0.267508 -0.238824 -0.2096 -0.179853 -0.149603 -0.118875 -0.0876953 -0.0560885 -0.0240874 0.00827867 0.040974 0.0739643 0.107208 0.140666 0.174297 0.208056 0.241893 0.275757 0.309603 0.343385 0.377036 0.410498 0.443712 0.476616 0.509148 0.541242 0.572835 0.603858 0.634244 0.66391 0.692797 0.720837 0.747961 0.774084 0.799131 0.823051 0.845758 0.867169 0.887248 0.90588 0.923037 0.938628 0.952605 0.964885 0.975433 0.984153 0.991037 0.995988 0.998986 0.999997 0.998938 0.995807 0.990576 0.983211 0.973668 0.961961 0.948075 0.932007 0.913757 0.893328 0.87073 0.845995 0.81915 0.790227 0.759268 0.726324 0.691452 0.654714 0.616181 0.57593 0.534037 0.490599 0.445716 0.399491 0.352033 0.303459 0.253886 0.203441 0.152259 0.100478 0.0482368 -0.00432081 -0.057045 -0.109786 -0.162386 -0.214696 -0.266564 -0.317814 -0.368301 -0.417864 -0.466337 -0.513584 -0.559424 -0.603732 -0.646344 -0.687125 -0.725934 -0.762631 -0.797101 -0.829205 -0.858847 -0.8859 -0.91028 -0.931885 -0.950636 -0.966466 -0.97929 -0.989092 -0.995773 -0.999358 -0.999773 -0.997042 -0.991152 -0.982099 -0.969941 -0.954655 -0.936332 -0.915008 -0.890737 -0.863625 -0.833713 -0.801132 -0.765979 -0.728348 -0.688394 -0.646219 -0.601975 -0.555817 -0.507869 -0.45832 -0.407319 -0.355036 -0.301652 -0.247328 -0.192258 -0.136617 -0.0805873 -0.0243537 0.0319027 0.0879985 0.143752 0.198986 0.253526 0.307194 0.359834 0.411262 0.461345 0.509907 0.556823 0.601935 0.645131 0.686266 0.725245 0.761935 0.796272 0.828125 0.857461 0.884158 0.9082 0.929508 0.948044 0.9638 0.976698 0.986778 0.99402 0.998404 0.999981 0.998763 0.994751 0.988022 0.978621 0.966582 0.95197 0.93487 0.915357 0.893512 0.869405 0.843139 0.814817 0.784538 0.752408 0.718535 0.68303 0.646007 0.607581 0.567872 0.526996 0.485074 0.442227 0.398573 0.354231 0.30932 0.263957 0.218256 0.172326 0.126282 0.0802317 0.0342922 -0.0114471 -0.0568861 -0.101931 -0.146492 -0.190474 -0.233802 -0.276394 -0.318171 -0.359072 -0.399015 -0.437958 -0.475821 -0.512573 -0.548149 -0.582512 -0.615632 -0.647446 -0.677951 -0.707119 -0.734897 -0.761296 -0.786293 -0.80988 -0.83204 -0.852773 -0.872085 -0.88998 -0.906462 -0.921542 -0.935229 -0.94754 -0.95849 -0.968102 -0.976397 -0.9834 -0.989136 -0.993613 -0.996882 -0.998976 -0.99993 -0.999748 -0.998484 -0.996188 -0.99286 -0.988563 -0.983336 -0.977186 -0.970195 -0.962347 -0.953732 -0.944344 -0.934249 -0.923482 -0.912051 -0.900028 -0.887441 -0.874296 -0.860659 -0.846562 -0.832035 -0.817101 -0.801792 -0.786149 -0.770201 -0.753977 -0.737507 -0.720826 -0.703952 -0.686912 -0.669731 -0.652436 -0.635043 -0.617572 -0.600055 -0.582513 -0.564966 -0.547418 -0.529898 -0.512429 -0.495016 -0.477676 -0.460438 -0.443287 -0.426265 -0.409364; #X pop; #X obj 251 241 tabwrite~ phase-out; #X obj 251 268 tabwrite~ cos-out; #X msg 251 216 bang; #X text 298 215 <-- graph them; #X text 386 99 <-- change smoothly to avoid clicks; #X connect 0 0 5 1; #X connect 1 0 9 0; #X connect 2 0 0 1; #X connect 3 0 31 0; #X connect 4 0 7 0; #X connect 4 0 40 0; #X connect 5 0 4 0; #X connect 5 0 39 0; #X connect 6 0 7 1; #X connect 7 0 6 0; #X connect 8 0 7 2; #X connect 9 0 0 0; #X connect 10 0 2 0; #X connect 11 0 12 0; #X connect 12 0 10 0; #X connect 31 0 5 0; #X connect 33 0 32 0; #X connect 41 0 39 0; #X connect 41 0 40 0;