#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;