max v2; #N vpatcher 463 45 1074 818; #P window setfont "Sans Serif" 9.; #P window linecount 1; #P message 537 42 14 196617 3; #P message 521 42 14 196617 2; #P message 505 42 14 196617 1; #P number 176 40 35 9 0 0 0 3 0 0 0 221 221 221 222 222 222 0 0 0; #P message 400 392 100 196617 http://rhoadley.net; #P newex 106 64 97 196617 select 32 49 50 51; #P newex 106 40 40 196617 key; #N vpreset 3; #X append 1 2 4 128 197 flonum float 1008. \; 5 277 58 flonum float 790. \; 6 277 121 flonum float 0.19 \; 11 203 185 function clear \; 11 203 185 function add 0. 0. 0 \; 11 203 185 function; #X append 1 2 add 129.468002 19.5 0 \; 11 203 185 function add 610.348511 24. 0 \; 11 203 185 function add 961.760986 0. 0 \; 11 203 185 function domain 1008. \; 11 203 185 function range 0. 24. \; 12 203 311; #X append 1 2 function clear \; 12 203 311 function add 0. 0. 0 \; 12 203 311 function add 83.22937 1. 0 \; 12 203 311 function add 203.449478 0. 0 \; 12 203 311 function add 305.174255 1. 0 \; 12 203 311; #X append 1 2 function add 379.155975 0. 0 \; 12 203 311 function add 471.632935 0.96875 0 \; 12 203 311 function add 508.62384 0. 0 \; 12 203 311 function add 795.302795 1. 0 \; 12 203 311 function add 961.761414 0.; #X append 1 2 0 \; 12 203 311 function domain 1008. \; 12 203 311 function range 0. 1. \;; #X append 2 2 4 128 197 flonum float 2255. \; 5 277 58 flonum float 148. \; 6 277 121 flonum float 0.19 \; 11 203 185 function clear \; 11 203 185 function add 0. 0. 0 \; 11 203 185 function; #X append 2 2 add 289.63327 19.5 0 \; 11 203 185 function add 1365.412354 24. 0 \; 11 203 185 function add 2151.558105 0. 0 \; 11 203 185 function domain 2255. \; 11 203 185 function range 0. 24. \; 12 203 311; #X append 2 2 function clear \; 12 203 311 function add 0. 1. 0 \; 12 203 311 function add 186.192657 1. 0 \; 12 203 311 function add 1324.036499 0.671875 0 \; 12 203 311 function add 1551.605347 0.46875 0 \; 12 203 311; #X append 2 2 function add 2151.56 0. 0 \; 12 203 311 function domain 2255. \; 12 203 311 function range 0. 1. \;; #X append 3 2 4 128 197 flonum float 3571. \; 5 277 58 flonum float 576. \; 6 277 121 flonum float 105. \; 11 203 185 function clear \; 11 203 185 function add 0. 24. 0 \; 11 203 185 function; #X append 3 2 add 655.229187 0. 0 \; 11 203 185 function add 884.559509 24. 0 \; 11 203 185 function add 1277.697266 0. 0 \; 11 203 185 function add 1670.834106 24. 0 \; 11 203 185 function add 2195.017822 0. 0; #X append 3 2 \; 11 203 185 function add 2719.201416 24. 0 \; 11 203 185 function add 3407.190674 0. 0 \; 11 203 185 function domain 3571. \; 11 203 185 function range 0. 24. \; 12 203 311 function clear \;; #X append 3 2 12 203 311 function add 0. 1. 0 \; 12 203 311 function add 294.853119 1. 0 \; 12 203 311 function add 2096.733398 0.671875 0 \; 12 203 311 function add 2457.110352 0.46875 0 \; 12 203 311 function; #X append 3 2 add 3407.193115 0. 0 \; 12 203 311 function domain 3571. \; 12 203 311 function range 0. 1. \;; #P preset 505 67 47 27; #P newex 21 41 48 196617 loadbang; #P message 185 102 37 196617 628.; #P message 121 227 31 196617 0.19; #P message 58 226 31 196617 96.; #P comment 153 484 115 196617 modulator amplitude; #P comment 139 459 113 196617 modulating oscillator; #P window linecount 2; #P comment 105 533 74 196617 carrier oscillator; #P comment 225 302 77 196617 Modulation envelope; #P comment 105 254 77 196617 Harmonicity ratio; #P comment 30 254 74 196617 Carrier frequency; #P window linecount 1; #P newex 143 430 33 196617 *~ 0; #P newex 58 508 43 196617 +~; #P newex 94 404 33 196617 *~ 0; #P newex 94 482 59 196617 *~; #P newex 94 457 43 196617 cycle~; #P newex 58 533 43 196617 cycle~; #P comment 76 557 53 196617 FM signal; #P newex 121 299 32 196617 sig~; #P newex 58 299 32 196617 sig~; #P button 106 162 15 0; #P window linecount 2; #P comment 59 159 38 196617 Play a note; #P window linecount 1; #P message 185 155 80 196617 setdomain \$1; #P user function 311 203 432 292 1 1 0 0; #X frgb 82 82 82; #X brgb 204 204 204; #X rgb2 85 85 85; #X rgb3 255 255 255; #X rgb4 0 0 0; #X rgb5 0 0 0; #X add 0. 1. 0; #X add 51.853195 1. 0; #X add 368.733856 0.671875 0; #X add 432.110138 0.46875 0; #X add 599.192749 0. 0; #X domain 628.; #X range 0. 1.; #X done; #P user function 185 203 306 292 1 1 0 0; #X frgb 82 82 82; #X brgb 204 204 204; #X rgb2 85 85 85; #X rgb3 255 255 255; #X rgb4 0 0 0; #X rgb5 0 0 0; #X add 0. 24. 0; #X add 115.229324 0. 0; #X add 155.559616 24. 0; #X add 224.69725 0. 0; #X add 293.834717 24. 0; #X add 386.01825 0. 0; #X add 478.201752 24. 0; #X add 599.192322 0. 0; #X domain 628.; #X range 0. 24.; #X done; #P user ezdac~ 58 698 102 731 0; #P newex 184 299 38 196617 line~; #P newex 197 647 38 196617 line~; #P newex 58 670 149 196617 *~; #P flonum 121 277 60 9 0. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0; #P flonum 58 277 60 9 0. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0; #P flonum 197 128 60 9 0. 0 1 3 0 0 0 221 221 221 222 222 222 0 0 0; #P window setfont "American Typewriter" 18.; #P window linecount 2; #P comment 399 344 133 199491602 Simple FM Synthesis; #P window setfont "Sans Serif" 9.; #P window linecount 3; #P comment 445 232 100 196617 Overall envelope (shift click to remove points); #P window linecount 1; #P comment 452 102 100 196617 Presets; #P window linecount 4; #P comment 225 35 136 196617 select sends a bang when it receives 32 (space bar) \, 49 (1) \, 50 (2) \, 51 (3) \, and any other key...; #P fasten 34 0 31 0 26 215 63 215; #P connect 31 0 5 0; #P connect 5 0 16 0; #P connect 16 0 23 0; #P connect 23 0 19 0; #P connect 19 0 7 0; #P connect 7 0 10 0; #P connect 21 0 23 1; #P fasten 7 0 10 1 63 693 97 693; #P connect 16 0 22 0; #P connect 22 0 20 0; #P connect 20 0 21 0; #P connect 36 0 37 0; #P connect 37 0 15 0; #P connect 17 0 22 1; #P fasten 34 0 32 0 26 216 126 216; #P connect 32 0 6 0; #P connect 6 0 17 0; #P fasten 22 0 24 0 99 425 148 425; #P connect 24 0 21 1; #P connect 9 0 24 1; #P fasten 36 0 39 0 111 60 170 60 170 34 181 34; #P fasten 11 1 9 0 227 295 189 295; #P fasten 34 0 33 0 26 92 156 92 156 92 190 92; #P connect 33 0 13 0; #P fasten 4 0 13 0 202 149 190 149; #P fasten 15 0 11 0 111 199 190 199; #P connect 13 0 11 0; #P fasten 33 0 4 0 190 124 202 124; #P fasten 12 1 8 0 353 619 202 619; #P connect 8 0 7 1; #P fasten 13 0 12 0 190 199 316 199; #P fasten 15 0 12 0 111 192 316 192; #P fasten 37 1 40 0 132 88 487 88 487 33 510 33; #P fasten 42 0 35 0 542 61 510 61; #P connect 40 0 35 0; #P fasten 41 0 35 0 526 61 510 61; #P fasten 37 2 41 0 153 87 486 87 486 27 526 27; #P fasten 37 3 42 0 174 88 485 88 485 30 542 30; #P pop;