J08.classicsynth.pd 4.5 KB
Newer Older
1
#N canvas 334 41 448 519 10;
Miller Puckette's avatar
Miller Puckette committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
#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;
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
#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
Miller Puckette's avatar
Miller Puckette committed
95 96 97 98 99 100
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
101
the vcf~ "Q" parameter. The oscillators' waveforms and tuning relationship
Miller Puckette's avatar
Miller Puckette committed
102
is controlled by other parameters set within the "pd 16x" window.;
103 104 105 106 107 108 109
#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;
110 111 112 113 114
#X text 12 105 WEBSITE http://crca.ucsd.edu/~msp/;
#X text 12 85 AUTHOR Miller Puckette;
#X text 12 65 LIBRARY PDDP;
#X text 12 25 LICENSE SIBSD;
#X text 12 125 HELP_PATCH_AUTHORS Updated for release 0.39. Jonathan
115 116
Wilkes revised the patch to conform to the PDDP template for Pd version
0.42.;
117 118
#X text 12 45 DESCRIPTION the classic subtractive synth sound;
#X text 12 5 KEYWORDS signal tutorial;
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
#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;