"Here's one I did earlier..."

http://www.flickr.com/photos/44929957@N03/4459628487/lightbox/

This is Haskore implementation of Chick Corea's "Child Song 6" rendered to LilyPond - I don't imagine Mr. Corea's publishers will be sending me a takedown request any time soon.

There's a lot missing from Haskore that is needed to make good scores - the renderer of the above took a lot of effort with metrical grouping but the result is still abysmal.

I doubt mathematics can help (common practice) music typesetting much - Western notation has had a thousand years to develop without the constraint of a regular syntax; so if Lilypond is horrible it is mostly the fault of what it tries to typeset (it does make some unwarranted mistakes like over-restricting the characters it can use for "variable" names and its parenthesizing is horrible).


On 21 August 2013 14:05, Johannes Waldmann <waldmann@imn.htwk-leipzig.de> wrote:
I tried using lilypond ( http://www.lilypond.org/ )
for typesetting of sheet music.

While the output looks nice, the input language IMHO is quite horrible,
because the underlying data/execution model is underspecified.
For some parts, it tries to describe the logical structure of the score;
but for others, the layout; and in addition it has several non-obvious
context-dependencies (but see below), preventing modularity.

Is there a better option? E.g., starting from a clear mathematical model,
as in Haskore, and use lilypond only as a PDF rendering engine?

Do I want hly / hts perhaps?  http://rd.slavepianos.org/?t=hly


As I see it, the main high-level design problem
is that the source language needs partial evaluation annotations
for abstractions applications: sometimes they should be expanded
(for MIDI rendering, always) and sometimes not (in typesetting,
to create repetition marks instead of actually repeating notes).


PS: I agree that some of lilypond's context dependencies
(relative pitch, implicit note length) do really save
large amounts of tedious typing: "c4 e g a c1" is much more economical
than "[c 1 qn, e 1 qn, g 1 qn , a 1 qn, c 2 fn]"
which I guess is the Haskore equivalent.




_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe