Johannes Waldmann | 21 Aug 15:05 2013
Picon

haskore -> lilypond -> typesetting?

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.
Rustom Mody | 21 Aug 16:46 2013
Picon

Re: haskore -> lilypond -> typesetting?

On Wed, Aug 21, 2013 at 6:35 PM, Johannes Waldmann
<waldmann <at> 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,

I use musescore.
Its got 3 modes on entry
a. clickety-click -- ie mouse
b. keyboard shortcuts
c. midi keyboard

For bulk entry direct entry from a midi keyboard is best
http://musescore.org/en/handbook/note-entry
[Since I am not much of a musician, I usually hover between a and b]

If after that you want the lilypond toolchain, it will export to
lilypond and then use your favorite text editor. [Not sure of the
quality of export]
Sturdy, Ian | 21 Aug 18:14 2013

Re: haskore -> lilypond -> typesetting?

I think the big question is whether you are dealing with music or scores. a .ly file represents not the music,
but the music plus typographic annotations (and I find that even lilypond quite often benefits from
hints). Most gui programs represent scores, but I think lilypond stands alone in that among text formats.
So the question, to me, is whether you need a representation of music, or of a score; if of music, I would
choose an input format other than lilypond (abc recommends itself from my folk-music background), using
an appropriate backend for rudimentary typesetting. But if you need the full layout flexibility, I doubt
you can beat writing straight lilypond: I have yet to see a frontend produce easily hand-edited lilypond
source (which I find very quickly becomes a featureless blob w
 ithout judicious use of whitespace), nor one that exposes the flexibility of the lilypond engine (and I
find lilypond much faster to write than Finale, and little slower than Mozart's superb keyboard entry
(not being a keyboardist, I cannot speak for midi entry)). haskore and hly I would reserve for internal
representations for conversion or transformation programs; I think there are much better alternatives
for human writing.

I would also be careful with excessively "mathematical" representations; before finding lilypond, I had
to discard more than one program for failure to handle irregular meters.

________________________________________
From: Haskell-Cafe [haskell-cafe-bounces <at> haskell.org] on behalf of Rustom Mody [rustompmody <at> gmail.com]
Sent: Wednesday, August 21, 2013 10:46 AM
To: Johannes Waldmann
Cc: Haskell Cafe
Subject: Re: [Haskell-cafe] haskore -> lilypond -> typesetting?
Stephen Tetley | 21 Aug 18:40 2013
Picon

Re: haskore -> lilypond -> typesetting?


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 <at> 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 <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe <at> haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
Al Matthews | 22 Aug 11:16 2013
Picon

Re: haskore -> lilypond -> typesetting?

Abjad, which is a Python library, is probably worth study here for its integration and general re-embrace of Lilypond as a compositional tool.

http://www.projectabjad.org/

Note that in Lilypond one can define a Scheme function over for example a set of notes.

Al Matthews
-- http://fatmilktv.com

On Aug 21, 2013 12:41 PM, "Stephen Tetley" <stephen.tetley <at> gmail.com> wrote:
>
>
> "Here's one I did earlier..."
>
> http://www.flickr.com/photos/44929957 <at> 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 <at> 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 <at> haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe <at> haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>

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

Gmane