#N canvas 415 23 775 676 12;
#X obj 175 371 line~;
#X obj 354 422 line~;
#X obj 305 527 *~;
#X obj 374 213 r \$1;
#X obj 354 300 dbtorms;
#X obj 374 239 t l b, f 8;
#X obj 354 396 pack;
#X obj 458 265 30;
#X obj 175 267 unpack;
#X obj 175 241 r \$2;
#X obj 175 451 osc~;
#X obj 175 293 mtof;
#X obj 354 326 sqrt;
#X obj 354 352 sqrt;
#X obj 175 319 sqrt;
#X obj 175 345 sqrt;
#X obj 175 399 *~;
#X obj 175 425 *~;
#X obj 354 448 *~;
#X obj 353 476 *~;
#X obj 189 523 inlet~;
#X obj 189 617 outlet~;
#X obj 189 569 +~;
#X floatatom 285 326 0 0 0 0 - - -;
#X msg 285 300 set \$1;
#X obj 285 352 s \$1;
#X floatatom 108 317 0 0 0 0 - - -;
#X msg 108 291 set \$1;
#X obj 108 343 s \$2;
#X text 361 186 amplitude;
#X text 169 214 pitch;
#X text 34 61 The amplitude and pitch are controlled by quartic envelopes
as in the previous example. Here we introduce two new features. First
\, there are number boxes to show the most recent targets for amplitude
and frequency \, which you can also use to change the values. Also
\, if amplitude gets a message without an explicit time value \, we
supply a default of "30"., f 52;
#X text 425 80 Other small differences from the previous patch: pitch
and amplitude are now in MIDI and dB \, and there's a summing bus arrangement
(the inlet~ \, +~ \, and outlet~)., f 45;
#X text 47 280 see or;
#X text 47 298 change;
#X text 235 309 and;
#X text 489 264 "30" is short for "float 30." This is;
#X text 496 282 more CPU efficient than a message.;
#X text 404 387 The "pack" always gets a 30 \, but if you send a pair
of numbers to amplitude \, the second one overrides the 30, f 27;
#X text 450 234 first bang the "30" \, then pass the list on;
#X text 47 317 pitch =>;
#X text 235 326 amp =>;
#X obj 374 265 unpack f f;
#X text 39 20 This abstraction is used in patch D13.additive.qlist.pd.
;
#X connect 0 0 16 0;
#X connect 0 0 16 1;
#X connect 1 0 18 0;
#X connect 1 0 18 1;
#X connect 2 0 22 1;
#X connect 3 0 5 0;
#X connect 4 0 12 0;
#X connect 5 0 42 0;
#X connect 5 1 7 0;
#X connect 6 0 1 0;
#X connect 7 0 6 1;
#X connect 8 0 11 0;
#X connect 8 0 27 0;
#X connect 8 1 0 1;
#X connect 9 0 8 0;
#X connect 10 0 2 0;
#X connect 11 0 14 0;
#X connect 12 0 13 0;
#X connect 13 0 6 0;
#X connect 14 0 15 0;
#X connect 15 0 0 0;
#X connect 16 0 17 0;
#X connect 16 0 17 1;
#X connect 17 0 10 0;
#X connect 18 0 19 0;
#X connect 18 0 19 1;
#X connect 19 0 2 1;
#X connect 20 0 22 0;
#X connect 22 0 21 0;
#X connect 23 0 25 0;
#X connect 24 0 23 0;
#X connect 26 0 28 0;
#X connect 27 0 26 0;
#X connect 42 0 4 0;
#X connect 42 0 24 0;
#X connect 42 1 6 1;
