#N canvas 500 48 613 599 12;
#X declare -stdpath ./;
#X floatatom 306 395 5 0 0 0 - dur - 0;
#X floatatom 251 395 5 0 0 0 - pitch - 0;
#X text 208 396 pitch;
#X obj 197 507 output~;
#X obj 118 302 bng 19 250 50 0 empty empty empty 0 -6 0 8 #dfdfdf #000000 #000000;
#X obj 410 519 declare -stdpath ./;
#X msg 118 334 all bang;
#X obj 197 466 clone 11 partial;
#X msg 251 430 all \$1;
#X msg 306 430 all \$1;
#X obj 422 330 text define -k partials;
#A set 0 1 1 0.56 0 \; 1 0.67 0.9 0.56 1 \; 2 1 0.65 0.92 0 \; 3 1.8 0.55 0.92 1.7 \; 4 2.67 0.32 1.19 0 \; 5 1.67 0.35 1.7 0 \; 6 1.46 0.25 2 0 \; 7 1.33 0.2 2.74 0 \; 8 1.33 0.15 3 0 \; 9 1 0.1 3.76 0 \; 10 1.33 0.075 4.07 0;
#X obj 197 350 text sequence partials;
#X msg 197 314 line 0 \, bang;
#X text 53 302 play -->;
#X obj 306 250 loadbang;
#X text 36 75 This patch demonstrates using an abstraction \, [partial] \, to make a simple additive synthesis instrument originally from Jean-Claude Risset., f 78;
#X text 36 115 We use [clone] to create 11 copies of the abstraction and send list messages from a [text] object whose arguments are: instance number \, amplitude \, relative duration \, relative frequency and detuning frequency - click [text define] to see this. The usage of [text] is merely cosmetical as it's less polluted than using many messages in a message box. All the messages in [text define] are "dumped" with [text sequence]. You set absolute duration and pitch using the number box controls below. Click the bang to make sound., f 78;
#X text 446 306 click to open:;
#X obj 139 23 cnv 5 5 25 empty empty Additive\ Synthesis 15 13 0 16 #dfdfdf #202020 0;
#X text 351 395 duration (ms);
#X msg 306 286 \; pitch 72 \; dur 4000;
#X connect 0 0 9 0;
#X connect 1 0 8 0;
#X connect 4 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 3 0;
#X connect 8 0 7 1;
#X connect 9 0 7 2;
#X connect 11 0 7 0;
#X connect 12 0 11 0;
#X connect 14 0 12 0;
#X connect 14 0 20 0;
