Menu

#1292 Enhancement: twelve-notation support

Verified
nobody
Enhancement
2011-09-27
2010-10-04
Anonymous
No

Originally created by: *anonymous

Originally created by: v.villenave
Originally owned by: janek.li...@gmail.com

% Feature request by Nikolausius:
http://lists.gnu.org/archive/html/lilypond-user/2010-09/msg00680.html

Here's a link where the differences between several 12-tone notation
systems are shown and the system of J.M. HAuer is being explained:

http://www.klangreihenmusik.at/skriptum-zwoelftonnotenschr-01kl.php3

Werner:
Hauer's invention is the *second* system in the image; the lines
represent the black keys on a piano keyboard.

Neil:
The custom stave can be created by overriding StaffSymbol #'line-positions, then it's just a matter of mapping the notes to the correct positions with a custom layout function (via staffLineLayoutFunction).

It seems to me the only part which LilyPond doesn't support is the special leger lines below the stave: though the middle C superficially looks like a G, it's positioned as if it were an E, but with the first leger missing (so the leger lines continue the line-positioning pattern outside the stave).

Discussion

  • Google Importer

    Google Importer - 2011-05-24

    Originally posted by: piersti...@gmail.com

    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?

     
  • Google Importer

    Google Importer - 2011-09-09

    Originally posted by: piersti...@gmail.com

    I have uploaded a patch which implements this proposal to http://codereview.appspot.com/4974075

     
  • Google Importer

    Google Importer - 2011-09-09

    Originally posted by: percival.music.ca@gmail.com

    (No comment was entered for this change.)

    Labels: Patch-new

     
  • Google Importer

    Google Importer - 2011-09-10

    Originally posted by: pkx1...@gmail.com

    Passes make and reg tests

    Labels: -Patch-new Patch-review

     
  • Google Importer

    Google Importer - 2011-09-14

    Originally posted by: ColinPKC...@gmail.com

    Changes requested; see Rietveld.

    Labels: -Patch-review Patch-needs_work

     
  • Google Importer

    Google Importer - 2011-09-15

    Originally posted by: piersti...@gmail.com

    made requested changes; see Rietveld

     
  • Google Importer

    Google Importer - 2011-09-17

    Originally posted by: pkx1...@gmail.com

    Passes make and reg tests

    (making Janek owner as Piers is not available as an 'Owner')

    Labels: -Patch-needs_work Patch-review
    Owner: janek.li...@gmail.com

     
  • Google Importer

    Google Importer - 2011-09-21

    Originally posted by: ColinPKC...@gmail.com

    (No comment was entered for this change.)

    Labels: -Patch-review Patch-push

     
  • Google Importer

    Google Importer - 2011-09-25

    Originally posted by: janek.li...@gmail.com

    I've pushed patch mentioned in 1193 and closed it, should i close this too?

     
  • Google Importer

    Google Importer - 2011-09-25

    Originally posted by: bordage....@gmail.com

    I guess so. Change the Status for Fixed, remove the tag Patch-push (and the dummy tag Priority-Low) and add the uncommon label fixed_2_15_13.

     
  • Google Importer

    Google Importer - 2011-09-25

    Originally posted by: janek.li...@gmail.com

    pushed [rd10ec4f5a95d5b205da1bd73102697f8cc03b5b6]

    Labels: -Priority-Low -Patch-push fixed_2_15_13
    Status: Fixed

     
  • Google Importer

    Google Importer - 2011-09-27

    Originally posted by: brownian.box@gmail.com

    (No comment was entered for this change.)

    Status: Verified

     
Auth0 Logo