#N canvas 439 152 649 445 12; #X obj 495 257 sqrt; #X text 78 85 trigger; #X msg 82 143 bang; #X obj 81 211 * \$2; #X text 126 210 relative frequency; #X obj 83 340 *~; #X obj 262 307 line~; #X obj 262 335 *~; #X obj 260 364 *~; #X obj 264 229 float; #X msg 264 280 0 \$1; #X obj 494 280 sqrt; #X obj 82 110 r trigger; #X obj 495 232 float \$1; #X obj 294 206 r duration; #X obj 81 179 float; #X obj 126 180 r frequency; #X text 497 199 amplitude; #X obj 83 311 osc~ 0; #X obj 278 168 t b b; #X obj 81 238 + \$3; #X text 119 240 detune; #X obj 264 255 * \$4; #X text 306 256 relative duration; #X text 106 6 partial - arguments: amplitude \, frequency \, detune \, duration; #X obj 83 367 throw~ sum; #X text 74 35 This patch is used as an abstraction in 15.additive.pd; #X connect 0 0 11 0; #X connect 2 0 15 0; #X connect 2 0 19 0; #X connect 3 0 20 0; #X connect 5 0 25 0; #X connect 6 0 7 0; #X connect 6 0 7 1; #X connect 7 0 8 0; #X connect 7 0 8 1; #X connect 8 0 5 1; #X connect 9 0 22 0; #X connect 10 0 6 0; #X connect 11 0 6 0; #X connect 12 0 2 0; #X connect 13 0 0 0; #X connect 14 0 9 1; #X connect 15 0 3 0; #X connect 16 0 15 1; #X connect 18 0 5 0; #X connect 19 0 9 0; #X connect 19 1 13 0; #X connect 20 0 18 0; #X connect 22 0 10 0;