#N canvas 411 370 602 320 10; #N canvas 352 0 661 675 note 0; #X obj 19 249 drawpolygon 0 1 stem-x 0 stem-x stem-y; #X obj 16 62 filledcurve filled 0 1 -4 0 0 -3 4 0 0 3; #N canvas 330 0 633 666 note-properties 0; #X obj 440 136 pointer; #X msg 440 114 traverse \$1 \, bang; #X obj 440 91 symbol; #X obj 376 223 s \$0-last-note; #X obj 150 24 r \$0-update-note; #X obj 150 53 t b b b b; #X obj 348 29 inlet; #X obj 283 197 outlet; #X obj 346 254 s \$0-update-note; #X obj 348 62 route pointer-to; #X obj 346 193 t f a; #N canvas 436 109 568 587 draw-flag 0; #X obj 332 178 setsize note flags; #X obj 207 314 until; #X obj 208 257 clip 0 4; #X obj 207 282 t f b; #X msg 248 313 0; #X obj 207 340 f 0; #X obj 236 340 + 1; #X obj 322 467 element note flags; #X obj 207 366 t f f; #X obj 207 405 * 4; #X obj 207 458 pack 0 5; #X obj 207 498 set flag y direction; #X msg 245 434 5; #X msg 277 433 -5; #X obj 310 280 moses; #X obj 310 254 get note stem-y; #X obj 310 231 pointer; #X obj 394 363 set note stem-x; #X obj 208 100 get note numflags; #X obj 208 77 pointer; #X obj 426 340 r \$0-last-note; #X obj 346 438 r \$0-last-note; #X obj 245 55 r \$0-last-note; #X obj 355 148 r \$0-last-note; #X obj 354 204 r \$0-last-note; #X obj 208 124 t f b f; #X msg 348 318 3; #X msg 377 318 -3; #X obj 179 23 inlet; #X connect 1 0 5 0; #X connect 2 0 3 0; #X connect 3 0 1 0; #X connect 3 1 4 0; #X connect 4 0 5 1; #X connect 5 0 6 0; #X connect 5 0 8 0; #X connect 6 0 5 1; #X connect 7 0 11 2; #X connect 8 0 9 0; #X connect 8 1 7 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 12 0 10 1; #X connect 13 0 10 1; #X connect 14 0 12 0; #X connect 14 0 26 0; #X connect 14 1 13 0; #X connect 14 1 27 0; #X connect 15 0 14 0; #X connect 16 0 15 0; #X connect 18 0 25 0; #X connect 19 0 18 0; #X connect 20 0 17 1; #X connect 21 0 7 1; #X connect 22 0 19 1; #X connect 23 0 0 1; #X connect 24 0 16 1; #X connect 25 0 2 0; #X connect 25 1 16 0; #X connect 25 2 0 0; #X connect 26 0 9 1; #X connect 26 0 17 0; #X connect 27 0 9 1; #X connect 27 0 17 0; #X connect 28 0 19 0; #X restore 201 91 pd draw-flag; #X obj 283 167 append note x y filled stem-y numflags numdots; #X obj 171 310 pointer; #X obj 171 334 get note numdots; #X obj 219 291 r \$0-last-note; #X obj 195 419 r \$0-numdots; #X obj 179 585 s \$0-update-note; #X obj 207 554 set note dot1 dot2; #X obj 178 460 sel 0 1 2; #X obj 178 533 t b a; #X msg 179 556 0; #X msg 166 491 999 999; #X msg 215 492 0 999; #X msg 259 492 0 0; #X obj 311 528 r \$0-last-note; #X obj 146 404 f; #X obj 135 369 once; #X text 86 362 iemabs:; #X text 10 390 avoids stack overflow; #X connect 0 0 12 6; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 4 0 5 0; #X connect 5 1 27 0; #X connect 5 2 13 0; #X connect 5 3 11 0; #X connect 6 0 9 0; #X connect 9 0 2 0; #X connect 9 1 12 0; #X connect 10 0 8 0; #X connect 10 1 3 0; #X connect 12 0 7 0; #X connect 12 0 10 0; #X connect 13 0 14 0; #X connect 14 0 26 1; #X connect 15 0 13 1; #X connect 16 0 19 0; #X connect 19 0 22 0; #X connect 19 1 23 0; #X connect 19 2 24 0; #X connect 20 0 21 0; #X connect 20 1 18 0; #X connect 21 0 17 0; #X connect 22 0 20 0; #X connect 23 0 20 0; #X connect 24 0 20 0; #X connect 25 0 18 2; #X connect 26 0 19 0; #X connect 27 0 26 0; #X restore 27 440 pd note-properties; #X text 14 280 Note: -v is broken in pd-0.39 \, display won't update until the score subpatch is refreshed e.g. by "vis 0 \, vis 1"; #X obj 303 509 hradio 15 1 0 5 empty empty number_of_flags 0 -6 0 8 -262144 -1 -1 0; #X obj 65 547 set note stem-y; #X floatatom 35 502 5 0 0 2 Stem_heigth - -; #X obj 332 550 set note numflags; #X obj 165 515 r \$0-last-note; #X obj 446 511 r \$0-last-note; #X obj 35 570 s \$0-update-note; #X obj 303 571 s \$0-update-note; #X obj 307 637 set note filled; #X msg 307 615 0; #X msg 335 614 999; #X obj 407 614 r \$0-last-note; #X obj 441 212 f 0; #X obj 465 212 + 1; #X obj 447 234 sel 1; #X msg 492 233 0; #X obj 441 183 t b b; #X obj 441 166 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X text 408 148 update button; #X msg 441 267 \; pd-mydisplay vis \$1; #X obj 448 75 r \$0-update-note; #X obj 448 103 sel 0; #X obj 448 126 spigot; #X obj 479 57 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 ; #X text 392 32 activate if using pd-0.39*; #X text 386 41 * is there a trick for doing it automatically?; #X obj 35 524 t f f; #X text 453 12 auto-update; #X msg 272 530 0; #X obj 306 593 t b; #X obj 303 529 t f f; #X obj 572 504 hradio 15 1 0 3 empty empty number_of_dots -30 -6 0 8 -262144 -1 -1 0; #X obj 21 339 plot -v numflags flags 0 0 stem-x stem-y 0; #X text 152 440 x \, y \, filled \, stem-y \, numflags \, numdots; #X obj 21 15 struct note float x float y float filled float stem-x float stem-y float numflags array flags flag float numdots float dot1 float dot2; #X obj 572 538 s \$0-numdots; #X msg 27 417 pointer-to pd-mydisplay \, 200 100 0 -20 1 1; #X obj 18 87 filledcurve dot1 dot1 1 7 0 7 0; #X obj 19 110 filledcurve dot2 dot2 1 14 0 14 0; #X text 280 328 impossible to add another array cleanly in [struct note] because of this plot \, but no other array is ncessary fortunately. ; #X connect 4 0 34 0; #X connect 6 0 30 0; #X connect 8 0 5 1; #X connect 9 0 7 1; #X connect 13 0 12 0; #X connect 14 0 12 0; #X connect 14 0 33 0; #X connect 15 0 12 1; #X connect 16 0 17 0; #X connect 16 0 18 0; #X connect 16 0 23 0; #X connect 17 0 16 1; #X connect 18 0 19 0; #X connect 19 0 16 1; #X connect 20 0 16 0; #X connect 20 1 16 0; #X connect 21 0 20 0; #X connect 24 0 25 0; #X connect 25 0 26 0; #X connect 26 0 20 0; #X connect 27 0 26 1; #X connect 30 0 10 0; #X connect 30 1 5 0; #X connect 32 0 4 0; #X connect 33 0 32 0; #X connect 34 0 11 0; #X connect 34 1 7 0; #X connect 35 0 39 0; #X connect 40 0 2 0; #X restore 221 58 pd note; #N canvas 0 0 833 641 flag 0; #X obj 81 65 struct flag float y float direction; #X text 354 62 direction should be 5 or -5; #X obj 83 119 drawpolygon 0 2 0 0 6 direction; #X restore 219 85 pd flag; #N canvas 0 0 366 391 mydisplay 0; #X restore 322 158 pd mydisplay; #X msg 192 114 clear; #X obj 219 159 s pd-mydisplay; #X text 78 58 Stuff happens here:; #N canvas 0 0 408 235 dot 0; #X obj 88 53 struct dot; #X obj 88 84 filledpolygon 1 1 2 0 0 0 0; #X restore 278 85 pd dot; #X obj 192 134 t b a; #X msg 192 159 0; #X obj 192 211 s \$0-update; #X connect 3 0 7 0; #X connect 7 0 8 0; #X connect 7 1 4 0; #X connect 8 0 9 0;