I still have some considerable way to go before I reach that question, but I'm 
getting there.

Lilypond Directives are like annotations, but green, and above the staff.  I'm 
riding the back of Text::Annotation as far as I can go.  On the UI side, I 
think I'm just going to have "Lilypond Directive" in the text inserter 
dialog, and have the dialog change states to add a combo full of canned 
choices.  If I don't do that, there's a whole lot of parallel infrastructure 
to build to accomplish something very simple, and I got about a quarter of 
the way down that road before deciding it's not worth it having a whole new 
Lilypond Directive Inserter tool.  The whole thing is a hideous kludge 
anyway, after all, so if it looks crappy, well, it *is* crappy.  (And anyway, 
I want to get something working first, and worry about what it looks like 
later.  It's not like I'm going to hold up next month's release with this 
work.)

One of the problems that needs solving though, and one that might require all 
that parallel infrastructure anyway, is where to put these so they wind up in 
a reasonable place within the export stream.  All the text events and marks 
and other whatnots (and I suppose annotations too) always have to be bound to 
a note, but repeats and 1st ending/2nd ending indications and whatforth are 
probably better attached to a barline than a note.

Ideas?

I'm going to do one thing at a time, but once the system of inserting special 
Lilypond directives is in place, there looks to be an awful lot of stuff we 
can use this for.  The notation editor can't display any of it, and people 
who want to hear what it sounds like will have to maintain two parallel sets 
of segments, but it seems possible, at least at this early and optimistic 
stage, to use this as a way to direct the exporter to render lots and lots of 
useful things on paper, and thus dramatically reduce the amount of manual, 
one-way post-processing that must be done on exported .ly files.

(Something else to think about.  Only a half-formed idea, but it seems to me 
if we can have virtual repeat segments on the same track, we ought to be able 
to have some kind of system whereby you can copy a pointer to a master 
segment to another track.  This could make the ugly business of having to 
maintain two sets of segments, one in the right order for audible 
performance, and one in the right order for exported layout, much less 
annoying.  If done properly.  I haven't thought much about the "if done 
properly" side of it yet.  Another thing, it would make it really easy to 
compose a canon.  Paste a "symlink" copy on another track, delayed by two or 
four bars or whatever, and presto, you have a super canon composing tool.  
Who composes canons?  Well, I'm interested in the form, but that's a pretty 
out there feature if composing canons is all it's good for.)

Well, this thing is still building.  Who knows.  I might get somewhere 
interesting before next weekend at this rate.  I hate the fundamental 
crappiness of what I'm doing here, but I like the hope of being able to 
compose with an editor that doesn't totally suck, and still hit a damn button 
and make a piece of paper come out of my printer that says what I need it to 
say, without hand-editing anything.  Hand editing sucks.  I hate markup 
languages with a passion.  (OK, getting hand editing down to the absolute 
bare minimum.  There's probably some middle ground here.  Hand editing is 
still necessary to tweak around Lilypond's own layout problems, and I can't 
see us getting any of this quite far enough advanced to cure that.)

-- 
D. Michael 'Silvan' McIntyre  ----   Silvan <[EMAIL PROTECTED]>
Linux fanatic, and certified Geek;  registered Linux user #243621

Author of Rosegarden Companion http://rosegarden.sourceforge.net/tutorial/


_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to