It's possible to draw scores with data structure.
It's not an easy task, but it has a better future than using
single plateform softwares like rosegarden or lillypond.
Some work has been done, and it's in attached file
Alexandre Quessy listes@sourcelibre.com a écrit : Maybe a lylipond interface in Pd would be great ?
It could be edited with denemo, for instance.
Otherwise, with a MIDI file interface, we could use rosegarden.
I have been thinking about this since a long time.
aalex
On 7/10/06, Erich Berger eb@randomseed.org wrote: hi frank,
Or are you more thinking about something like this:
http://smc04.ircam.fr/scm04actes/P3.pdf
right - i m exactly talking about this.
For this Pd's data structures have proven to be quite useful in the
work of for example Orm Finnendahl (e.g. in his composition "grep").
The list archive also has some examples of note symbols realized as
data structures.
thx i ll have a search/look
best
e
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
--
Alexandre Quessy
http://alexandre.quessy.net _______________________________________________
PD-list@iem.at mailing list
UNSUBSCRIBE and account-management ->
http://lists.puredata.info/listinfo/pd-list
---------------------------------
Yahoo! Mail réinvente le mail ! Découvrez le nouveau Yahoo! Mail et son interface révolutionnaire.
#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;