#N canvas 433 111 448 519 10;
#N canvas 158 4 781 654 16x 0;
#X obj 69 345 *~ 0.064;
#X obj 69 368 rpole~ 0.93538;
#X obj 69 391 *~ 0.00431;
#X obj 69 414 cpole~ 0.96559 0.05592;
#X obj 69 440 cpole~ 0.96559 -0.05592;
#X obj 69 463 *~ 0.125;
#X obj 69 486 rzero~ -1;
#X obj 69 509 rzero~ -1;
#X obj 69 532 rzero~ -1;
#X obj 63 97 phasor~;
#X obj 69 566 outlet~;
#X obj 86 151 wrap~;
#X obj 86 127 -~;
#X obj 86 175 *~;
#X obj 63 204 +~;
#X obj 271 156 phasor~;
#X obj 294 210 wrap~;
#X obj 294 186 -~;
#X obj 294 234 *~;
#X obj 271 263 +~;
#X obj 64 271 +~;
#X obj 457 31 block~ 1024 1 16;
#X obj 62 29 inlet;
#X obj 250 34 r osc-params;
#X obj 250 57 unpack 0 0 0 0 0 0;
#X obj 272 100 *~;
#X obj 272 128 +~;
#X msg 341 338 \; osc-params 0.5 -0.5 0.5 0.5 1 0.5;
#X obj 341 312 loadbang;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 4 1;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 10 0;
#X connect 9 0 12 0;
#X connect 9 0 14 0;
#X connect 11 0 13 0;
#X connect 12 0 11 0;
#X connect 13 0 14 1;
#X connect 14 0 20 0;
#X connect 15 0 17 0;
#X connect 15 0 19 0;
#X connect 16 0 18 0;
#X connect 17 0 16 0;
#X connect 18 0 19 1;
#X connect 19 0 20 1;
#X connect 20 0 0 0;
#X connect 22 0 9 0;
#X connect 22 0 25 0;
#X connect 23 0 24 0;
#X connect 24 0 12 1;
#X connect 24 1 13 1;
#X connect 24 2 17 1;
#X connect 24 3 18 1;
#X connect 24 4 25 1;
#X connect 24 5 26 1;
#X connect 25 0 26 0;
#X connect 26 0 15 0;
#X connect 28 0 27 0;
#X restore 22 189 pd 16x;
#X obj 25 284 output~;
#X obj 133 161 *~;
#X obj 132 131 +~ 0.2;
#X obj 132 185 *~ 2000;
#X obj 89 250 *~;
#X obj 24 247 *~;
#X obj 22 151 mtof;
#X obj 22 42 r \$0-note;
#X obj 22 91 makenote 1;
#X obj 344 170 + 20;
#X obj 344 122 metro 300;
#X obj 344 100 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
1;
#X obj 344 221 s \$0-note;
#X obj 344 145 random 70;
#X obj 23 221 vcf~ 3;
#X floatatom 209 141 3 0 0 0 - - -, f 3;
#X floatatom 209 186 7 0 0 0 - - -, f 7;
#X obj 209 162 mtof;
#X obj 89 225 adsr 2 30 200 50 500;
#X obj 132 106 adsr 1 10 200 50 500;
#X obj 344 195 pack 0 200;
#X obj 22 121 poly 1 1;
#X obj 22 65 unpack;
#X floatatom 395 100 3 0 0 0 - - -, f 3;
#X floatatom 401 174 3 0 0 0 - - -, f 3;
#X text 22 343 Now that we can make reasonably high-quality classic
waveforms using upsampling \, we combine an upsampled oscillator with
a "vcf" filter and ADSR generators to control the filter resonant frequency
and the amplitude to make the classic subtractive synthesis sound.
Send an "s \$0-note" object a (pitch \, duration) pair to play a note.
(Classic VC synths did not have velocity sensitive keyboards!) You
can add controls to change the parameters of the ADSR envelopes and/or
the vcf~ "Q" parameter. THe oscillators' waveforms and tuning relationship
is controlled by other parameters set within the "pd 16x" window.;
#X obj 1 1 cnv 15 445 20 empty \$0-pddp.cnv.header the_classic_subtractive_synth_sound
20 10 1 18 -261139 -33289 0;
#X obj 407 2 pddp/pddplink http://puredata.info/dev/pddp -text pddp
;
#X obj 1 497 cnv 15 445 20 empty \$0-pddp.cnv.footer empty 20 12 0
14 -233017 -33289 0;
#N canvas 44 246 494 284 META 0;
#X text 12 125 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 105 AUTHOR Miller Puckette;
#X text 12 85 LIBRARY PDDP;
#X text 12 5 GENRE tutorial;
#X text 12 45 LICENSE SIBSD;
#X text 12 145 HELP_PATCH_AUTHORS Updated for release 0.39. Jonathan
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
#X text 12 25 KEYWORDS signal;
#X text 12 65 DESCRIPTION the classic subtractive synth sound;
#X restore 392 499 pd META;
#N canvas 13 202 428 190 References 0;
#X obj 1 1 cnv 15 425 20 empty \$0-pddp.cnv.subheading empty 3 12 0
14 -261139 -33289 0;
#X text 7 2 classic subtractive synth- Related Help Documents;
#X text 19 37 Links:;
#X restore 103 499 pd References;
#X obj 6 499 pddp/pddplink ../5.reference/pddp/help.pd -text help;
#X connect 0 0 15 0;
#X connect 2 0 4 0;
#X connect 3 0 2 0;
#X connect 3 0 2 1;
#X connect 4 0 15 1;
#X connect 5 0 6 1;
#X connect 6 0 1 0;
#X connect 6 0 1 1;
#X connect 7 0 0 0;
#X connect 8 0 23 0;
#X connect 9 0 22 0;
#X connect 9 1 22 1;
#X connect 10 0 21 0;
#X connect 11 0 14 0;
#X connect 12 0 11 0;
#X connect 14 0 10 0;
#X connect 15 0 6 0;
#X connect 16 0 18 0;
#X connect 17 0 4 1;
#X connect 18 0 17 0;
#X connect 19 0 5 0;
#X connect 19 0 5 1;
#X connect 20 0 3 0;
#X connect 21 0 13 0;
#X connect 22 1 7 0;
#X connect 22 2 20 0;
#X connect 22 2 19 0;
#X connect 23 0 9 0;
#X connect 23 1 9 2;
#X connect 24 0 11 1;
#X connect 25 0 21 1;
