[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Issue 1292 in lilypond: Enhancement: twelve-notation support

From: lilypond
Subject: Re: Issue 1292 in lilypond: Enhancement: twelve-notation support
Date: Tue, 24 May 2011 16:43:59 +0000

Comment #1 on issue 1292 by address@hidden: Enhancement: twelve-notation support

It would be very interesting to be able to play with the ledger lines.

I can imagine to define them like line_positions, but there are some issues:

- ledger lines can go on infinitely in principle, it would be nice to define some sort of cycle. So (0,2) will show a ledger every other note, (1,4,5,8) shows a ledger through each d,g and a. The last number is the same as the first one repeated.

- how do you define when to show them? Some general rules can be set up, but there are probably cases which can't be catched in one set of rules. An alternative would be some function, but I don't know how that would look like.
Some rules could be:
 * don't show ledger if there is already a staff line.
* show all ledgers between the note and the nearest staff line, plus some separately defined offset to show more or less lines. With this offset it can be defined whether there should be one or more extra ledger below a note, or negative for less ledgers.
\override Staff.StaffSymbol #'ledger-extra = #1

- in some notations ledgers are grouped, if one of the ledgers is shown the rest in the group is also shown. Maybe define as a nested array? such as:
 \override Staff.StaffSymbol #'ledger-positions = #'( 1 (4 5) 8)
This way also thick ledgers can be defined by using small spacing: (0 (1.9 2.1) 4) defines an alternating pattern of thin and thick ledgers. Notations like http://musicnotation.org/musicnotations/3lineswholestep.html and http://www.leszer.net/index.php/leszer-notation.html require groups.

With these definitions the system is quite flexible.
Some notations are tricky, like http://musicnotation.org/musicnotations/4lineswholestep.html#Ailler Here the internal ledgers should be defined as group, while the external not. That way there is no real cycle. By defining the cycle big enough the wanted behaviour can be obtained for any sensible music.

Any better suggestions? Things I overlook?
And is anyone with more knowledge about the lilypond internals willing to code this?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]