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