#N canvas 233 179 667 449 12;
#X obj 16 182 osc-voice amp1 pit1;
#X obj 16 206 osc-voice amp2 pit2;
#X obj 16 230 osc-voice amp3 pit3;
#X obj 16 254 osc-voice amp4 pit4;
#X obj 16 278 osc-voice amp5 pit5;
#X obj 16 302 osc-voice amp6 pit6;
#X obj 16 326 osc-voice amp7 pit7;
#X obj 16 350 osc-voice amp8 pit8;
#X obj 464 343 qlist;
#X msg 394 185 stop;
#X msg 524 300 read qlist.txt;
#X obj 524 255 loadbang;
#X text 258 164 start;
#X text 395 161 stop;
#X text 534 279 reread file;
#X msg 467 199 rewind;
#X msg 535 199 next;
#X msg 251 212 tempo 100 \, bang;
#X msg 250 188 tempo 1 \, bang;
#X text 82 11 USING QLIST TO SEQUENCE AN OSCILLATOR BANK;
#X text 479 178 single step;
#X obj 532 392 r #;
#X text 28 49 Here is an eight voice additive synthesis patch controlled
by a qlist. Open a text editor on the file \, "qlist.txt" \, to see
how the oscillators' amplitudes and frequencies are specified. The
abstraction \, "osc-voice" \, shows an effective way to make patches
react to qlists but also to mousing.;
#X text 234 391 this is where qlist comments go:;
#X obj 16 380 output~;
#X text 394 423 updated for Pd version 0.39;
#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 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 24 0;
#X connect 7 0 24 1;
#X connect 9 0 8 0;
#X connect 10 0 8 0;
#X connect 11 0 10 0;
#X connect 15 0 8 0;
#X connect 16 0 8 0;
#X connect 17 0 8 0;
#X connect 18 0 8 0;
