#N canvas 520 54 688 657 12;
#X declare -stdpath ./;
#X obj 55 377 osc~;
#X obj 55 407 *~;
#X obj 107 381 line~;
#X obj 55 352 line~;
#X obj 197 487 osc~;
#X obj 250 515 *~;
#X obj 268 398 line~;
#X obj 197 398 line~;
#X obj 197 345 sqrt;
#X obj 197 371 sqrt;
#X obj 268 345 sqrt;
#X obj 268 371 sqrt;
#X obj 197 430 *~;
#X obj 197 460 *~;
#X obj 268 430 *~;
#X obj 268 459 *~;
#X obj 197 320 unpack;
#X obj 268 320 unpack;
#X obj 55 327 r freq;
#X obj 107 357 r amp;
#X obj 197 295 r freq;
#X obj 268 295 r amp;
#X msg 375 304 \; amp 0 5000 \;;
#X msg 375 259 \; amp 1 5000 \;;
#X msg 511 304 \; amp 0 1000 \;;
#X msg 511 259 \; amp 1 1000 \;;
#X msg 376 364 \; freq 1760 5000 \;;
#X msg 377 411 \; freq 55 5000 \;;
#X msg 512 364 \; freq 1760 1000 \;;
#X msg 515 411 \; freq 55 1000 \;;
#X text 79 26 QUARTIC AND LINEAR ENVELOPES COMPARED;
#X obj 381 460 loadbang;
#X msg 381 488 \; amp 1 \; freq 1760;
#X text 56 297 LINEAR;
#X text 202 268 QUARTIC;
#X obj 55 446 output~;
#X obj 250 558 output~;
#X text 75 141 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 text 418 577 updated for Pd version 0.37;
#X text 75 61 This patch has two sine wave oscillators \, one with linear envelopes \, the other with quartic ones which sound 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 obj 510 22 declare -stdpath ./;
#X connect 0 0 1 0;
#X connect 1 0 35 0;
#X connect 2 0 1 1;
#X connect 3 0 0 0;
#X connect 4 0 5 0;
#X connect 5 0 36 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 3 0;
#X connect 19 0 2 0;
#X connect 20 0 16 0;
#X connect 21 0 17 0;
#X connect 31 0 32 0;
