#N canvas 18 78 880 448 10; #X obj 465 234 sqrt; #X text 17 71 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 obj 17 123 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 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 73 405 add to global; #X text 72 424 summing bus; #X text 631 12 arguments:; #X text 25 4 s-partial is based on D01.additive.pd but is more generic. Any mistakes are my own!; #X text 605 37 0 name \; 1 amplitude \; 2 relative duration \; 3 relative frequency \; 4 detune; #X obj 17 96 r \$1/trigger; #X obj 17 200 float \$4; #X obj 226 211 float \$3; #X obj 39 226 r \$1/frequency; #X obj 17 279 + \$5; #X obj 249 235 r \$1/duration; #X obj 465 180 float \$2; #X obj 70 377 throw~ \$1/sum; #X obj 14 398 outlet~; #X connect 0 0 8 0; #X connect 3 0 44 0; #X connect 3 0 45 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 12 0; #X connect 9 0 13 0; #X connect 9 1 43 0; #X connect 11 0 9 0; #X connect 11 0 38 0; #X connect 12 0 4 0; #X connect 13 0 39 0; #X connect 14 0 0 0; #X connect 23 0 7 0; #X connect 25 0 41 0; #X connect 26 0 3 0; #X connect 37 0 11 0; #X connect 38 0 25 0; #X connect 39 0 23 0; #X connect 40 0 25 1; #X connect 41 0 26 0; #X connect 42 0 23 1; #X connect 43 0 14 0;