|
From: | Stefan Thomas |
Subject: | Re: Microtonal Helmholtz-Ellis notation in Lilypond: fine-tuning |
Date: | Fri, 25 Sep 2009 08:53:39 +0200 |
Stefan Thomas wrote:
Dear Graham,
absolutely, I would like to define a list of notenames, for e.g. pitches
that are about 15cents lower, But I have no idea how to do it, when I use
the HE-font for the accidentals.
For the code I have, pitch names are defined as:
HEPitchNames = #`(
(c . ,(ly:make-pitch -1 0 0))
(g . ,(ly:make-pitch -1 4 10/1023))
(edown . ,(ly:make-pitch -1 2 -75/1096))
(bflatseven . ,(ly:make-pitch -1 6 -162/247))
(d . ,(ly:make-pitch -1 1 20/1023))
and so on.
If you want more pitches, you add them. The parameters are documented for ly:make-pitch under Scheme Functions.This table is different when you use an external font. The relevant table, as I have it, starts like this:
Off course, I had a look in makam.ly
and I found there
makamGlyphs = #`((1 . "accidentals.doublesharp")
(8/9 . "accidentals.sharp.slashslashslash.stemstem")
)
But how could I define a "Helmholtz-Glyph"?
HEStrings = #`(
(0 "\x6e" (0 . 1) (-0.5 . 0.5))
(10/1023 "\x6e" (0 . 0.6) (-0.5 . 0.5))
(-75/1096 "\x6d" (0 . 0.6) (-1.1 . 0.5))
(-162/247 "\x3c\x65" (-2 . 2) (-0.5 . 0.5))
(20/1023 "\x6e" (0 . 0.6) (-1.1 . 0.5))
In each of those lists, the first entry is the alteration in whole tones (1/1 = 200 cents). The second entry is the UTF-8 encoded string to display. The other two pairs are the X- and Y-extents that determine how much space LilyPond allows for the accidentals. We currently don't know how to make sensible guesses for these so they have to be hard coded.
The alteration for very accidental in the first table has to match a row in the second one.
Graham
[Prev in Thread] | Current Thread | [Next in Thread] |