On 22 Sep 2009, at 13:44, Joseph Wakeling wrote:
So I think you need to add a choice of glyph. LilyPond is too
primitive
to treat # and b and other accidentals as operators acting on all
intervals.
Well, the point is that a glyph for 5/4 sharp is nonsensical. A
contemporary music player would be pissed off enough at seeing a
double-sharp in non-tonal music, to say nothing of a 5/4-sharp symbol.
The original staff system is generated by pure fifths and octaves. It
can be recomputed in terms of major M and minor m seconds, which add
one to the scale degree. The sharps and flats alter by the interval M
- m, and do not change the scale degree.
The original staff system is algebraic, and does not subsume any
particular tuning. If one substitutes values for the intervals, then
one has to be careful with that algebraic structure, because it is
still there, but may be hidden by the explicit values.
So you originally had two sharps and transposed up an intermediate
interval, and so that is what you get. The sharp only get the value 1
in E12. But E12 does not respect the scale degrees of the original
staff system.
I think one needs to think through carefully how one wants to
enharmonic
equivalences be applied. It may vary with context. On most
instruments,
it can be used to simplify key signatures. On a harp, it may have
to be
applied note-by-note, as double sharps and flats are not available.
If
the tuning is other than E12, it implies a small slip in pitch.
Yes, that's a good point I hadn't considered. The naturalizeMusic
function serves the harp's needs well, where 3/4-sharps and flats are
not possible. (Was that the motivation for this function?)
So basically we are talking about a 'modulo effect', i.e. to constrain
every accidental to 'modulo a' where a is an alteration: for the harp,
to modulo 1/2, for standard chromatic transposition, to modulo 1.
That might actually be the best way of looking at it -- relative to a
maximum acceptable size of alteration. (Tricky would be
less-than-or-equal-to versus less-than.)
I think that the intervals, at least in E12 are computed internally so
that an octave is 6. Thine if an offset is more than 1, you want to
reduce it, and add 1 to the scale degree. So you should perhaps tweak
the naturalizeMusic to do that instead. Then first transpose and apply
this once afterwards. Just a guess.
Hans
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user