#N canvas 520 54 686 681 12;
#X declare -stdpath ./;
#X obj 65 380 osc~;
#X obj 65 420 *~;
#X obj 117 384 line~;
#X obj 65 355 line~;
#X obj 207 516 osc~;
#X obj 260 549 *~;
#X obj 278 427 line~;
#X obj 207 427 line~;
#X obj 207 374 sqrt;
#X obj 207 400 sqrt;
#X obj 278 374 sqrt;
#X obj 278 400 sqrt;
#X obj 207 459 *~;
#X obj 207 489 *~;
#X obj 278 459 *~;
#X obj 278 488 *~;
#X obj 207 349 unpack;
#X obj 278 349 unpack;
#X obj 65 294 r freq;
#X obj 117 330 r amp;
#X obj 207 294 r freq;
#X obj 278 294 r amp;
#X obj 472 528 loadbang;
#X text 66 270 LINEAR;
#X text 212 270 QUARTIC;
#X obj 65 459 output~;
#X obj 260 581 output~;
#X obj 65 577 declare -stdpath ./;
#X text 100 145 In the quartic example \, for both the amplitude and the frequency \, we have to take the fourth root of the target value (which we get by taking square root twice.) Then we raise the [line~] output to the fourth power by squaring twice (the [*~] objects \, whose left and right inlets are the same.) The cost is mostly that of the four additional [*~] objects., f 68;
#X msg 507 342 \; amp 0 1000 \;;
#X msg 371 342 \; amp 0 5000 \;;
#X msg 371 297 \; amp 1 5000 \;;
#X msg 507 297 \; amp 0.5 1000 \;;
#X msg 507 402 \; freq 1760 5000;
#X msg 371 402 \; freq 880 1000;
#X msg 371 445 \; freq 220 1000;
#X msg 508 445 \; freq 110 5000;
#X obj 68 17 cnv 5 5 25 empty empty Quartic\ and\ Linear\ Envelopes\ Compared 15 13 0 16 #dfdfdf #202020 0;
#X text 100 65 This patch has two sine wave oscillators \, one with linear envelopes \, the other with quartic ones which sounds more uniform. The message boxes sweep the amplitude and frequency up and down. You can compare the two to see that quartic-shaped changes sound more uniform than linear ones., f 68;
#X msg 472 556 \; amp 1 \; freq 220;
#X floatatom 117 357 5 0 0 0 - - - 0;
#X floatatom 65 322 5 0 0 0 - - - 0;
#X floatatom 278 322 5 0 0 0 - - - 0;
#X floatatom 207 322 5 0 0 0 - - - 0;
#X connect 0 0 1 0;
#X connect 1 0 25 0;
#X connect 2 0 1 1;
#X connect 3 0 0 0;
#X connect 4 0 5 0;
#X connect 5 0 26 0;
#X connect 6 0 14 0;
#X connect 6 0 14 1;
#X connect 7 0 12 0;
#X connect 7 0 12 1;
#X connect 8 0 9 0;
#X connect 9 0 7 0;
#X connect 10 0 11 0;
#X connect 11 0 6 0;
#X connect 12 0 13 0;
#X connect 12 0 13 1;
#X connect 13 0 4 0;
#X connect 14 0 15 0;
#X connect 14 0 15 1;
#X connect 15 0 5 1;
#X connect 16 0 8 0;
#X connect 16 1 7 1;
#X connect 17 0 10 0;
#X connect 17 1 6 1;
#X connect 18 0 41 0;
#X connect 19 0 40 0;
#X connect 20 0 43 0;
#X connect 21 0 42 0;
#X connect 22 0 39 0;
#X connect 40 0 2 0;
#X connect 41 0 3 0;
#X connect 42 0 17 0;
#X connect 43 0 16 0;
