#N canvas 377 29 843 687 12;
#X declare -stdpath ./;
#X obj 30 250 r trigger;
#X obj 30 471 *~;
#X obj 30 364 *~ 0.01;
#X obj 30 399 *~;
#X obj 30 429 *~;
#X obj 77 393 r pitch;
#X obj 77 443 mtof;
#X floatatom 77 418 4 0 0 0 - - - 0;
#X floatatom 49 305 4 0 0 0 - - - 0;
#X obj 49 280 r level;
#X floatatom 112 305 4 0 0 0 - - - 0;
#X obj 112 280 r attack;
#X floatatom 180 305 4 0 0 0 - - - 0;
#X obj 180 280 r decay;
#X floatatom 244 305 4 0 0 0 - - - 0;
#X floatatom 320 305 4 0 0 0 - - - 0;
#X obj 244 280 r sustain;
#X obj 320 280 r release;
#X obj 481 186 r note;
#X msg 481 275 \; trigger 1;
#X msg 577 289 \; trigger 0;
#X obj 50 174 qlist;
#X obj 50 15 r qlist;
#X msg 62 42 bang;
#X msg 68 67 rewind;
#X obj 78 96 r tempo;
#X floatatom 78 121 4 0 0 0 - - - 0;
#X msg 78 146 tempo \$1;
#X obj 481 233 t b f;
#X obj 539 229 s pitch;
#X obj 609 214 r duration;
#X floatatom 609 239 4 0 0 0 - - - 0;
#X floatatom 481 209 4 0 0 0 - - - 0;
#X obj 286 347 r trigger;
#X floatatom 305 403 4 0 0 0 - - - 0;
#X floatatom 365 433 4 0 0 0 - - - 0;
#X floatatom 455 433 4 0 0 0 - - - 0;
#X floatatom 541 433 4 0 0 0 - - - 0;
#X floatatom 637 433 4 0 0 0 - - - 0;
#X obj 305 378 r level2;
#X obj 365 408 r attack2;
#X obj 455 408 r decay2;
#X obj 541 408 r sustain2;
#X obj 637 408 r release2;
#X obj 77 468 tabosc4~ array1;
#X floatatom 236 393 4 0 0 0 - - - 0;
#X obj 225 576 vcf~;
#X floatatom 329 528 4 0 0 0 - - - 0;
#X obj 329 503 r q;
#X obj 286 471 adsr 0 0 0 0 0;
#X obj 305 428 / 69.23;
#X obj 236 418 mtof;
#X obj 236 443 sqrt;
#X obj 236 468 sqrt;
#X obj 194 363 r filter;
#X obj 237 521 *~;
#X obj 237 546 *~;
#X obj 286 496 +~ 1;
#X obj 236 493 *~;
#X text 107 250 ADSR for amplitude:;
#N canvas 0 258 703 380 otherstuff 0;
#X obj 289 86 loadbang;
#X obj 418 85 loadbang;
#N canvas 0 0 450 300 (subpatch) 0;
#X array array1 67 float 1;
#A 0 0 0 0 0 0.714286 0.742857 0.757143 0.771429 0.778571 0.785714
0.785714 0.785714 0.785714 0.790476 0.795238 0.614286 0.585714 0.442857
0.271429 -0.128571 -0.142857 -0.157143 -0.171429 -0.642857 -0.528571
-0.614286 -0.685714 -0.828571 -0.828571 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0.557143 0.571429 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0;
#X coords 0 1 66 -1 200 140 1;
#X restore 62 81 graph;
#X msg 418 115 \; qlist read qlist2.txt;
#X msg 289 111 \; level 100 \; attack 20 \; decay 300 \; sustain 70
\; release 300 \; duration 300 \; pitch 72 \; filter 38 \; level2 49
\; attack2 19 \; decay2 300 \; sustain2 17 \; release2 700 \; q 3 \;
tempo 4;
#X connect 0 0 4 0;
#X connect 1 0 3 0;
#X restore 492 482 pd otherstuff;
#X msg 149 196 \; qlist read qlist2.txt;
#X obj 208 615 output~;
#X text 240 112 The qlist reads the file \, "qlist2.txt" \, which contains
four "note" messages and a message at the end that restarts the qlist
at the beginning. The "note" messages are translated into a pitch change
and triggers for the ADSRs., f 77;
#X text 392 338 ADSR for filter. Here \, it works better to make the
envelope modify a constant "filter pitch"--so the "filter" receive
gets the "mtof" treatment and the ADSR is an offset in halftones.,
f 50;
#X text 323 17 ANALOG_STYLE SYNTH USING QLIST;
#X text 594 481 <= loadbangs and table;
#X text 100 41 <= start loop;
#X text 117 67 <= stop loop;
#X text 118 121 <= set tempo;
#X obj 30 338 adsr 0 0 0 0 0;
#X obj 613 14 declare -stdpath ./;
#X obj 577 264 delay;
#X text 309 202 reload qlist2.txt;
#X text 240 60 This is an analog-synth sound made using a wavetable
oscillator and a [vcf~] object. Unlike the "floyd" example earlier
\, we use a qlist object to do the sequencing. This can also be adapted
to make a keyboard synth., f 77;
#X msg 337 594 line 0 \, auto;
#X text 585 588 click to open:, f 8;
#X obj 337 568 r text;
#X obj 629 605 text define -k seq2;
#A set note 36 \; 1000 note 34 \; 1000 note 33 \; 1000 note 31 \; 1000
text bang \;;
#X obj 337 633 text sequence seq2 -g;
#X text 603 645 updated for Pd version 0.52;
#X msg 293 593 stop;
#X msg 438 601 tempo \$1 permsec;
#X obj 438 551 r tempo;
#X floatatom 438 576 4 0 0 0 - - - 0;
#X text 521 540 You can also use the more modern [text] object as previsously
mentioned., f 39;
#X connect 0 0 70 0;
#X connect 1 0 46 0;
#X connect 2 0 3 0;
#X connect 2 0 3 1;
#X connect 3 0 4 0;
#X connect 3 0 4 1;
#X connect 4 0 1 0;
#X connect 5 0 7 0;
#X connect 6 0 44 0;
#X connect 7 0 6 0;
#X connect 8 0 70 1;
#X connect 9 0 8 0;
#X connect 10 0 70 2;
#X connect 11 0 10 0;
#X connect 12 0 70 3;
#X connect 13 0 12 0;
#X connect 14 0 70 4;
#X connect 15 0 70 5;
#X connect 16 0 14 0;
#X connect 17 0 15 0;
#X connect 18 0 32 0;
#X connect 22 0 21 0;
#X connect 23 0 21 0;
#X connect 24 0 21 0;
#X connect 25 0 26 0;
#X connect 26 0 27 0;
#X connect 27 0 21 0;
#X connect 28 0 19 0;
#X connect 28 0 72 0;
#X connect 28 1 29 0;
#X connect 30 0 31 0;
#X connect 31 0 72 1;
#X connect 32 0 28 0;
#X connect 33 0 49 0;
#X connect 34 0 50 0;
#X connect 35 0 49 2;
#X connect 36 0 49 3;
#X connect 37 0 49 4;
#X connect 38 0 49 5;
#X connect 39 0 34 0;
#X connect 40 0 35 0;
#X connect 41 0 36 0;
#X connect 42 0 37 0;
#X connect 43 0 38 0;
#X connect 44 0 1 1;
#X connect 45 0 51 0;
#X connect 46 0 62 0;
#X connect 46 0 62 1;
#X connect 47 0 46 2;
#X connect 48 0 47 0;
#X connect 49 0 57 0;
#X connect 50 0 49 1;
#X connect 51 0 52 0;
#X connect 52 0 53 0;
#X connect 53 0 58 0;
#X connect 54 0 45 0;
#X connect 55 0 56 0;
#X connect 55 0 56 1;
#X connect 56 0 46 1;
#X connect 57 0 58 1;
#X connect 58 0 55 0;
#X connect 58 0 55 1;
#X connect 70 0 2 0;
#X connect 72 0 20 0;
#X connect 75 0 79 0;
#X connect 77 0 75 0;
#X connect 81 0 79 0;
#X connect 82 0 79 0;
#X connect 83 0 84 0;
#X connect 84 0 82 0;
