I did a bit more with Lilypond export last night.  It's still
not _quite_ there -- the usual glazunov.rg test generally
works fine except that the bars with tuplets in them are being
shortened.  The marks-on-chords bug is fixed, and grace notes
should be working now too.  Lyrics aren't quite right, and
triangle noteheads look pretty weird.  I still have testing to
do with files that started out with performance timings, and
I haven't tested compatibility with older versions of Lilypond
than the nearly-1.8 I have installed.

I've got to say though, putting a printout straight from RG
next to the same piece from Lilypond: god damn, the Lilypond
output is good.  There's just no comparison, and it's highly
unlikely there ever really will be.  That's partly because we
take certain rendering decisions deliberately based on wanting
to make things distinguishable at a screen resolution: e.g.
we draw flat ties and curved slurs, whereas Lilypond makes
them both curved but places ties closer to the noteheads; and
we leave much more space between the staffs because we never
know when someone might want to insert notes in there.  But
mostly Lilypond is just better.  It does a better job of
making marks visible against the staff.  It does a better job
of placing dynamic text (not perfect, but better).  It does a
much better job of drawing slurs and the vertical placement
of beams and a much much better job of getting the relative
darknesses of notes, staff and dynamics right, and a much much
much better job of placing the brackets for tuplet groups.

And while Lilypond's horizontal layout _looks_ a bit more
naive than Rosegarden's, it's usually more effective (and so
probably is much cleverer, in fact).  Rosegarden goes too
over-the-top in trying to even up the spacings in bars with
a mixture of long and short notes, meaning notes in separate
staffs usually don't line up well: we don't really have any
mechanism for keeping events in multiple staffs in check,
besides aligning the bar lines.

I did notice a couple of things Rosegarden does better:
keeping slurs out of the way of tenuto marks, and drawing
very short hairpins (although I should probably have re-coded
those to give Lilypond a hand).  Occasionally we make a better
decision on stem direction, especially with slurs around.
The extra space between staffs means things like slurs are
less likely to interfere with hairpins.  And of course, we
can learn from a lot of the ways in which Lilypond does it
better now.

Even so the message is pretty clear: drafts from RG if you
like, but final copy from Lilypond.  I think to that end we
ought to keep the best possible Lilypond export as a high
priority, as there's evidently a synergy (I speak Marketing!)
there.

One other thing -- I've switched over the Lilypond pitch
printing code to use the Pitch class.  It still calculates
the pitch using the big old function as well though, and it
prints a warning if the two pitch texts don't match.  So if
you run a Lilypond output and see messages to stderr like

WARNING: LilypondExporter::convertPitchToLilyNote: ces != c

(presumably most likely with different pitches than ces and
c of course), _please_ let me know.


Chris



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Rosegarden-devel mailing list
[EMAIL PROTECTED] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to