#N canvas 230 322 1023 640 10; #X obj 465 234 sqrt; #X text 97 87 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 227 158 t b b; #X text 303 209 relative duration; #X msg 465 288 \$1 5; #X obj 227 185 del 5; #X obj 465 207 * 0.1; #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 227 258 *; #X text 264 258 actual duration; #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 obj 15 105 inlet; #X obj 937 205 inlet; #X obj 15 154 outlet; #X obj 96 133 t b b; #X obj 17 368 throw~ \$3-dsp; #X obj 33 224 r \$3-freq; #X obj 653 426 list split 1; #X obj 610 403 list split \$1; #X obj 610 331 r \$3-partial-freq; #X obj 781 27 r \$3-partial-amp; #X obj 824 117 list split 1; #X obj 781 94 list split \$1; #X floatatom 709 454 5 0 0 0 - - -; #X floatatom 878 144 5 0 0 0 - - -; #X obj 258 526 list split 1; #X obj 215 503 list split \$1; #X floatatom 314 554 5 0 0 0 - - -; #X obj 215 431 r \$3-detune; #X obj 424 535 list split 1; #X obj 381 512 list split \$1; #X floatatom 480 563 5 0 0 0 - - -; #X obj 381 440 r \$3-duration; #X obj 17 200 float; #X obj 226 211 float; #X obj 465 180 float; #X obj 17 279 + 0; #X obj 249 235 r \$3-global-duration; #X floatatom 402 268 5 0 0 0 - - -; #X obj 96 106 r \$3-trigger; #X connect 0 0 8 0; #X connect 3 0 41 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 11 0; #X connect 9 0 12 0; #X connect 9 1 61 0; #X connect 11 0 4 0; #X connect 12 0 60 0; #X connect 13 0 0 0; #X connect 22 0 7 0; #X connect 24 0 62 0; #X connect 25 0 3 0; #X connect 40 1 9 0; #X connect 40 1 59 0; #X connect 42 0 24 1; #X connect 43 0 49 0; #X connect 43 0 59 1; #X connect 44 1 43 0; #X connect 45 0 44 0; #X connect 46 0 48 0; #X connect 47 0 50 0; #X connect 47 0 61 1; #X connect 48 1 47 0; #X connect 51 0 53 0; #X connect 51 0 62 1; #X connect 52 1 51 0; #X connect 54 0 52 0; #X connect 55 0 57 0; #X connect 55 0 60 1; #X connect 56 1 55 0; #X connect 58 0 56 0; #X connect 59 0 24 0; #X connect 60 0 22 0; #X connect 61 0 13 0; #X connect 62 0 25 0; #X connect 63 0 22 1; #X connect 63 0 64 0; #X connect 65 0 40 0;