#N canvas 383 128 668 446 10;
#X obj 128 392 dac~;
#X obj 50 25 notein;
#X text 94 25 MIDI in;
#X obj 50 52 mtof;
#X obj 146 52 / 127;
#X msg 280 323 \; pd dsp 1;
#X text 81 53 frequency;
#X msg 280 357 \; pd dsp 0;
#X text 478 61 select pulse carrier;
#X text 277 200 inlets:;
#X text 182 53 amplitude;
#X text 276 256 arguments:;
#X text 287 285 2: number of voices;
#X text 288 212 left - note frequency...initiates attack;
#X text 223 398 Phil Stone - http://pkstonemusic.com;
#X text 288 225 center - note amplitude (0.0 - 1.0);
#X text 288 238 right - OSC inlet;
#X text 280 14 OSC parameter addressing (won't change visual controls
or affect state-saving):;
#X obj 243 51 r \$0-OSC;
#X obj 418 63 s \$0-OSC;
#X msg 418 37 /test/osc/carrier/wave 3;
#X text 287 271 1: synth name (used for OSC and state-saving);
#X text 186 21 Version 2;
#X obj 50 79 polywavesynth test 32 1;
#X text 287 299 3: voice stealing 0-off 1-on;
#X text 279 83 You can change any of the other 19 parameters (or trigger
notes) with similar messages. Just be aware that most parameters will
only affect voices triggered by subsequent attacks. The exception is
parameters under /global in the OSC tree -- those parameters (currently
just /pitchbend and /allNotesOff) are sent live to all voices used
by this synth.;
#X connect 1 0 3 0;
#X connect 1 1 4 0;
#X connect 3 0 23 0;
#X connect 4 0 23 1;
#X connect 18 0 23 2;
#X connect 20 0 19 0;
#X connect 23 0 0 0;
#X connect 23 1 0 1;
