#N canvas 184 126 784 591 12;
#X obj 230 101 f;
#X obj 264 77 + 1;
#X obj 264 101 mod 11;
#N canvas 0 0 450 300 (subpatch) 0;
#X array E07 11 float 2;
#X coords 0 96 11 36 100 160 1;
#X restore 528 15 graph;
#X floatatom 320 53 0 10 999 0 - - -;
#X obj 230 173 mtof;
#X msg 26 92 1;
#X obj 27 217 *~;
#X obj 27 267 cos~;
#X obj 27 292 hip~ 5;
#X obj 27 244 +~ 0.1;
#X floatatom 61 144 0 0 0 0 - - -;
#X floatatom 166 145 0 0 200 0 - - -;
#X floatatom 96 144 0 0 999 0 - - -;
#X floatatom 131 144 0 0 999 0 - - -;
#X msg 112 267 0;
#X msg 112 245 0.1;
#X msg 112 289 0.25;
#X text 68 108 ADSR controls;
#X text 106 125 A;
#X text 141 125 D;
#X text 176 125 S;
#X floatatom 320 77 0 1 11 0 - - -;
#X text 354 79 <--increment;
#X text 355 56 <--msec;
#X obj 26 193 *~ 0.01;
#X obj 230 29 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1
;
#X obj 27 321 output~;
#X text 527 562 updated for Pd version 0.37;
#X obj 26 170 adsr 70 10 90 50 500;
#X obj 230 150 +;
#X floatatom 265 150 0 -48 120 0 - - -;
#X text 299 152 <--transpose;
#N canvas 61 76 538 208 make-table 0;
#X obj 38 71 loadbang;
#X text 16 11 This patch loads a sequence of pitches into E07. The
values are floating-point \, so we could use microtones (60.5 \, for
example) if we wish.;
#X msg 38 99 \; E07 0 54 55 57 63 61 67 71 57 70 61 63 \; E07 yticks
36 12 1 \; E07 ylabel 12 36 48 60 72 84 96;
#X connect 0 0 2 0;
#X restore 527 195 pd make-table;
#X obj 176 50 sel 0;
#X msg 26 69 0;
#X text 48 125 level;
#X obj 230 53 metro 130;
#X obj 60 217 osc~;
#X text 111 225 symmetry;
#X text 157 265 even;
#X text 165 288 odd;
#X text 147 244 mixed;
#X obj 230 126 tabread E07;
#X text 253 26 <--ON/OFF;
#X text 238 232 This patch uses a stepping sequencer to control a waveshaping
instrument. A metronome (metro 130) drives a counter (f \, +1 \, and
mod 11) which counts repeatedly through 11 values which are read from
the stored table (tabread E07). The values may be read in sequence
\, by twos or threes \, etc. \, according to the "increment" parameter.
;
#X text 239 328 The metronome also triggers an ADSR envelope \, whose
parameters may also be changed using the "level" \, "A" \, "D" \, and
"S" controls.;
#X text 142 5 SEQUENCED WAVESHAPING SYNTHESIZER;
#X text 240 380 The synthesis (osc~ \, *~ \, +~ 0.1 \, cos~) is a very
simple application of the waveshaping technique. The oscillator (whose
amplitude depends on the ADSR generator) is used as an index into the
"cos~" wavetable. An additional offset ("symmetry") controls how the
oscillator's waveform is centered on the wavetable. If the offset is
zero \, the oscillator reads into the (even) cosine function (producing
only even harmonics). If the offset is 0.25 \, we read 1/4 wave into
the cosine function: the result is an odd function and we get odd harmonics.
Between the two we get mixtures of even and odd.;
#X connect 0 0 1 0;
#X connect 0 0 43 0;
#X connect 1 0 2 0;
#X connect 2 0 0 1;
#X connect 4 0 37 1;
#X connect 5 0 38 0;
#X connect 6 0 29 0;
#X connect 7 0 10 0;
#X connect 8 0 9 0;
#X connect 9 0 27 0;
#X connect 9 0 27 1;
#X connect 10 0 8 0;
#X connect 11 0 29 1;
#X connect 12 0 29 4;
#X connect 13 0 29 2;
#X connect 14 0 29 3;
#X connect 15 0 10 1;
#X connect 16 0 10 1;
#X connect 17 0 10 1;
#X connect 22 0 1 1;
#X connect 25 0 7 0;
#X connect 26 0 34 0;
#X connect 26 0 37 0;
#X connect 29 0 25 0;
#X connect 30 0 5 0;
#X connect 31 0 30 1;
#X connect 34 0 35 0;
#X connect 35 0 29 0;
#X connect 37 0 0 0;
#X connect 37 0 6 0;
#X connect 38 0 7 1;
#X connect 43 0 30 0;
