#N struct template-toplevel float x float y float voiceno array pitch
template-pitch array amp template-amp;
#N struct template-pitch float x float y float w;
#N struct template-amp float x float y float w;
#N canvas 467 44 543 446 12;
#N canvas 565 104 524 166 template-toplevel 0;
#X obj 25 86 plot pitch voiceno 3 10 0;
#X obj 25 113 plot amp 0 3 10 0;
#X obj 25 21 struct template-toplevel float x float y float voiceno
array pitch template-pitch array amp template-amp;
#X obj 27 61 filledpolygon 9 9 0 0 -2 0 2 5 2 5 -2;
#X restore 64 197 pd template-toplevel;
#N canvas 0 0 419 102 template-amp 0;
#X obj 15 41 struct template-amp float x float y float w;
#X restore 64 219 pd template-amp;
#N canvas 42 221 452 87 template-pitch 0;
#X obj 21 29 struct template-pitch float x float y float w;
#X restore 66 242 pd template-pitch;
#N canvas 323 50 551 562 synthesis 0;
#X msg 125 220 next;
#X msg 108 172 traverse pd-data \, next;
#X obj 108 250 pointer template-toplevel;
#X obj 108 273 t p p;
#X obj 108 296 get template-toplevel voiceno;
#X obj 108 325 pack 0 p;
#X obj 108 4 inlet;
#X obj 108 33 route start stop;
#X msg 161 54 \; reset bang;
#X obj 298 30 r reset;
#X obj 152 112 s reset;
#X obj 125 194 r next-evt;
#X obj 108 354 route 0 9 90 900 99 909 990;
#X obj 55 372 voice;
#X obj 55 536 outlet~;
#X msg 298 58 \; reset-stop stop \; time-of-last-evt 0 \; pd-data sort
;
#X obj 372 351 s delay-multiplier;
#X obj 375 276 t b f;
#X msg 372 303 1000;
#X obj 389 327 /;
#X obj 375 250 r tempo;
#X obj 108 90 t b b b;
#X msg 130 136 \; pd-data sort;
#X obj 55 395 voice;
#X obj 55 418 voice;
#X obj 55 441 voice;
#X obj 55 465 voice;
#X obj 55 488 voice;
#X obj 55 511 voice;
#X connect 0 0 2 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 1 5 1;
#X connect 4 0 5 0;
#X connect 5 0 12 0;
#X connect 6 0 7 0;
#X connect 7 0 21 0;
#X connect 7 1 8 0;
#X connect 9 0 15 0;
#X connect 11 0 0 0;
#X connect 12 0 13 1;
#X connect 12 1 23 1;
#X connect 12 2 24 1;
#X connect 12 3 25 1;
#X connect 12 4 26 1;
#X connect 12 5 27 1;
#X connect 12 6 28 1;
#X connect 13 0 23 0;
#X connect 17 0 18 0;
#X connect 17 1 19 1;
#X connect 18 0 19 0;
#X connect 19 0 16 0;
#X connect 20 0 17 0;
#X connect 21 0 1 0;
#X connect 21 1 22 0;
#X connect 21 2 10 0;
#X connect 23 0 24 0;
#X connect 24 0 25 0;
#X connect 25 0 26 0;
#X connect 26 0 27 0;
#X connect 27 0 28 0;
#X connect 28 0 14 0;
#X restore 64 323 pd synthesis;
#X floatatom 278 276 0 0 0 0 - - -;
#X floatatom 92 358 0 0 0 0 - - -;
#N canvas 159 26 495 270 output 0;
#X obj 345 163 t b;
#X obj 345 112 f;
#X obj 345 61 inlet;
#X text 351 30 mute;
#X obj 345 189 f;
#X msg 434 182 0;
#X msg 345 87 bang;
#X obj 345 138 moses 1;
#X obj 434 156 t b f;
#X obj 405 119 moses 1;
#X obj 85 151 dbtorms;
#X obj 405 94 r master-lvl;
#X obj 85 43 r master-lvl;
#X obj 345 214 s master-lvl;
#X obj 22 185 inlet~;
#X obj 203 42 inlet;
#X text 203 18 level;
#X obj 203 102 s master-lvl;
#X msg 98 67 set \$1;
#X obj 98 91 outlet;
#X msg 218 65 \; pd dsp 1;
#X obj 85 198 line~;
#X obj 22 216 *~;
#X obj 22 246 dac~;
#X obj 85 175 pack 0 50;
#X text 20 162 audio;
#X text 95 112 show level;
#X connect 0 0 4 0;
#X connect 1 0 7 0;
#X connect 2 0 6 0;
#X connect 4 0 13 0;
#X connect 5 0 13 0;
#X connect 6 0 1 0;
#X connect 7 0 0 0;
#X connect 7 1 8 0;
#X connect 8 0 5 0;
#X connect 9 1 4 1;
#X connect 10 0 24 0;
#X connect 11 0 1 1;
#X connect 11 0 9 0;
#X connect 12 0 10 0;
#X connect 12 0 18 0;
#X connect 14 0 22 0;
#X connect 15 0 17 0;
#X connect 15 0 20 0;
#X connect 18 0 19 0;
#X connect 21 0 22 1;
#X connect 22 0 23 0;
#X connect 22 0 23 1;
#X connect 24 0 21 0;
#X restore 64 380 pd output;
#X msg 122 358 MUTE;
#X msg 64 296 start;
#X msg 115 296 stop;
#N canvas 22 39 471 498 data 1;
#X scalar template-toplevel 3 86 900 \; 0 0 12 \; 10 0 12 \; \; 0 0
0 \; 10 0 2.5 \; 11 0 0 \; \;;
#X scalar template-toplevel 14 80 990 \; 0 0 12 \; 10 0 12 \; \; 0
0 2.5 \; 10 0 2.5 \; 11 0 0 \; \;;
#X scalar template-toplevel 38 43.25 90 \; 0 65 12 \; 100 10 0 \; 100
10 12 \; 230 50 0 \; 230 10 3 \; 240 60 0 \; 240 25 10 \; 250 60 0
\; 250 37 10 \; 260 65 0.5 \; 285 65 0.5 \; \; 1 0 2 \; 103 0 1 \;
195 0 2 \; 220 0 0.75 \; 225 0 1.25 \; 248 0 2.5 \; 251 0 2.25 \; 255
0 0 \; 256 0 1.5 \; 260 0 0 \; 261 0 2 \; 265 0 0 \; 266 0 2.5 \; 270
0 0 \; 271 0 3 \; 275 0 0 \; \;;
#X scalar template-toplevel 64 80 900 \; 0 5 0.25 \; 60 5 0.25 \; \;
0 0 0 \; 28 -0.25 3.5 \; 58 -0.25 0 \; \;;
#X scalar template-toplevel 142 105 900 \; 0 0 12 \; 70 -20 12 \; \;
0 0 0 \; 10 0 2.5 \; 20 0 0 \; 30 0 0 \; 40 0 2.5 \; 50 0 0 \; 60 0
2.5 \; 70 0 0 \; \;;
#X scalar template-toplevel 319 63.5 909 \; 0 0 12 \; 50 0 12 \; \;
0 0 4 \; 10 0 2.5 \; 50 0 0 \; \;;
#X coords 0 124.5 1 124.25 0 0 0;
#X restore 64 176 pd data;
#N canvas 82 467 332 145 stuff 0;
#X msg 1 101 \; pd-data write xx.txt;
#X msg -3 39 \; pd-data read score.txt;
#X obj 208 7 loadbang;
#X msg 208 34 \; tempo 60;
#X msg 198 101 \; pd-data sort;
#X connect 2 0 3 0;
#X restore 65 264 pd stuff;
#X obj 278 229 r tempo;
#X msg 278 252 set \$1;
#X obj 278 300 s tempo;
#X text 13 4 This patch shows an example of how to use data collections
as musical sequences (with apologies to Yuasa and Stockhausen). Here
the black traces show dynamics and the colored ones show pitch. The
fatness of the pitch traces give bandwidth. Any of the three can change
over the life of the event.;
#X text 160 357 <--- volume in dB;
#X text 13 96 To hear the result \, turn the volume up to 70 or so
(higher if it's not loud enough the first time) and hit "start". You
can set the tempo lower if that helps you follow the "score" the first
couple of times.;
#X text 311 276 <--- tempo;
#X text 256 416 Updated for Pd version 0.36;
#X connect 3 0 6 0;
#X connect 4 0 14 0;
#X connect 5 0 6 1;
#X connect 6 0 5 0;
#X connect 7 0 6 2;
#X connect 8 0 3 0;
#X connect 9 0 3 0;
#X connect 12 0 13 0;
#X connect 13 0 4 0;
