#N canvas 131 52 921 585 12; #X obj 12 219 r trigger; #X obj 12 437 *~; #X obj 12 330 *~ 0.01; #X obj 12 365 *~; #X obj 12 395 *~; #X obj 59 359 r pitch; #X obj 59 409 mtof; #X floatatom 59 384 4 0 0 0 - - -; #X floatatom 36 271 4 0 0 0 - - -; #X obj 36 246 r level; #X floatatom 110 271 4 0 0 0 - - -; #X obj 110 246 r attack; #X floatatom 195 271 4 0 0 0 - - -; #X obj 195 246 r decay; #X floatatom 270 271 4 0 0 0 - - -; #X floatatom 364 271 4 0 0 0 - - -; #X obj 270 246 r sustain; #X obj 364 246 r release; #X obj 499 158 r note; #X msg 500 236 \; trigger 1; #X obj 602 225 del; #X msg 602 247 \; trigger 0; #X obj 14 166 qlist; #X obj 14 7 r qlist; #X msg 35 34 bang; #X msg 35 59 rewind; #X obj 42 88 r tempo; #X floatatom 42 113 4 0 0 0 - - -; #X msg 42 138 tempo \$1; #X obj 499 201 t b f; #X obj 550 198 s pitch; #X obj 624 176 r duration; #X floatatom 624 201 4 0 0 0 - - -; #X floatatom 499 181 4 0 0 0 - - -; #X obj 268 319 r trigger; #X floatatom 294 375 4 0 0 0 - - -; #X floatatom 366 405 4 0 0 0 - - -; #X floatatom 456 405 4 0 0 0 - - -; #X floatatom 542 405 4 0 0 0 - - -; #X floatatom 638 405 4 0 0 0 - - -; #X obj 294 350 r level2; #X obj 366 380 r attack2; #X obj 456 380 r decay2; #X obj 542 380 r sustain2; #X obj 638 380 r release2; #X obj 59 434 tabosc4~ array1; #X floatatom 218 365 4 0 0 0 - - -; #X obj 12 481 vcf~; #X floatatom 119 487 4 0 0 0 - - -; #X obj 119 462 r q; #X obj 12 305 adsr 0 0 0 0 0; #X obj 268 443 adsr 0 0 0 0 0; #X obj 294 400 / 69.23; #X obj 218 390 mtof; #X obj 218 415 sqrt; #X obj 218 440 sqrt; #X obj 176 335 r filter; #X obj 219 493 *~; #X obj 219 518 *~; #X obj 268 468 +~ 1; #X obj 218 465 *~; #X text 118 214 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 graph2 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 134 560 pd otherstuff; #X text 87 33 <--start loop; #X text 104 61 <--stop loop; #X text 90 113 <--set tempo; #X text 257 562 <--loadbangs and table; #X msg 447 517 \; qlist read qlist2.txt; #X text 441 493 click to reload qlist2.txt; #X obj 12 509 output~; #X text 229 19 This is an analog-synth sound made using a wavetable oscillator and a "vcf~' object. Unkike the "floyd" example earlier \, we use a qlist object to do the sequencing. This can also be adapted to make a keyboard synth.; #X text 227 85 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.; #X text 667 551 updated for Pd version 0.39; #X text 379 305 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.; #X text 231 1 ANALOG_STYLE SYNTH USING QLIST; #X connect 0 0 50 0; #X connect 1 0 47 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 45 0; #X connect 7 0 6 0; #X connect 8 0 50 1; #X connect 9 0 8 0; #X connect 10 0 50 2; #X connect 11 0 10 0; #X connect 12 0 50 3; #X connect 13 0 12 0; #X connect 14 0 50 4; #X connect 15 0 50 5; #X connect 16 0 14 0; #X connect 17 0 15 0; #X connect 18 0 33 0; #X connect 20 0 21 0; #X connect 23 0 22 0; #X connect 24 0 22 0; #X connect 25 0 22 0; #X connect 26 0 27 0; #X connect 27 0 28 0; #X connect 28 0 22 0; #X connect 29 0 20 0; #X connect 29 0 19 0; #X connect 29 1 30 0; #X connect 31 0 32 0; #X connect 32 0 20 1; #X connect 33 0 29 0; #X connect 34 0 51 0; #X connect 35 0 52 0; #X connect 36 0 51 2; #X connect 37 0 51 3; #X connect 38 0 51 4; #X connect 39 0 51 5; #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 39 0; #X connect 45 0 1 1; #X connect 46 0 53 0; #X connect 47 0 69 0; #X connect 47 0 69 1; #X connect 48 0 47 2; #X connect 49 0 48 0; #X connect 50 0 2 0; #X connect 51 0 59 0; #X connect 52 0 51 1; #X connect 53 0 54 0; #X connect 54 0 55 0; #X connect 55 0 60 0; #X connect 56 0 46 0; #X connect 57 0 58 0; #X connect 57 0 58 1; #X connect 58 0 47 1; #X connect 59 0 60 1; #X connect 60 0 57 0; #X connect 60 0 57 1;