#N struct S1 float x float y float z array data-S1 dot; #N struct dot float x float y float z; #N canvas 1002 446 773 538 10; #N canvas 149 115 645 578 score 1; #X scalar S1 100 0 0 \; 163 163 0 \; 161 84 0 \; 79 69 0 \; 140 44 0 \; 202 29 0 \; 232 15 0 \; 215 133 0 \; 262 228 0 \; 212 344 0 \; 109 320 0 \; \;; #X scalar S1 100 0 0 \; 373 158 0 \; 346 119 0 \; 288 46 0 \; 295 283 0 \; 205 285 0 \; 135 191 0 \; 33 221 0 \; 78 276 0 \; 123 279 0 \; 97 386 0 \; \;; #X restore 47 32 pd score; #N canvas 828 129 357 125 dot 1; #X obj 37 62 filledcurve 333 333 1 0 -5 0 5 10 5 10 -5; #X obj 43 39 struct dot float x float y; #X restore 50 212 pd dot; #N canvas 238 565 450 300 S1 1; #X obj 48 130 plot data-S1 90 5 15 0 15; #X obj 41 64 struct S1 float x float y float z array data-S1 dot; #X restore 118 135 pd S1; #X obj 372 77 pointer; #X msg 284 78 100; #X msg 372 56 traverse pd-score \, bang; #X msg 287 159 10; #X obj 410 159 pointer; #X obj 288 245 s pd-score; #X msg 288 223 clear; #X msg 410 131 traverse pd-score \, next; #X obj 287 182 setsize S1 data-S1; #X obj 241 344 pointer; #X msg 246 311 traverse pd-score \, next; #X floatatom 220 452 5 0 0 0 - - -, f 5; #X floatatom 295 455 5 0 0 0 - - -, f 5; #X msg 337 344 next; #X obj 284 100 append S1 x y z; #X obj 223 402 get S1 x y z; #X floatatom 345 452 5 0 0 0 - - -, f 5; #N canvas 984 100 873 296 S2 1; #X obj 66 118 filledpolygon 9 9 0 0 -10 0 10 5 10 5 -10; #X obj 65 160 plot pitch voiceno 3 10 0; #X obj 87 204 plot amp 0 3 10 0; #X obj 60 58 struct template-toplevel float x float y float voiceno array pitch template pitch array amp template-amp; #X restore 57 305 pd S2; #X connect 3 0 17 3; #X connect 4 0 17 0; #X connect 5 0 3 0; #X connect 6 0 11 0; #X connect 7 0 11 1; #X connect 9 0 8 0; #X connect 10 0 7 0; #X connect 12 0 18 0; #X connect 13 0 12 0; #X connect 16 0 12 0; #X connect 18 0 14 0; #X connect 18 1 15 0; #X connect 18 2 19 0;