On 22 Sep 2009, at 01:09, Joseph Wakeling wrote:
Currently Lilypond's transposition is tonal only, with the 'smart
transpose' snippet providing a Scheme function to minimise accidental
use. Unfortunately this function is incompatible with quarter-tone
notation.
Discussing with Graham Breed, I got the impression that LilyPond does
it correctly, only that it insists on substituted values for the
intervals.
When transposing, roughly, one transposes intervals and scale degrees
separately. The scale degrees may be identified with the pitch values
of the staff.
Then, on top of that, one may impose enharmonic equivalents with
respect to some tuning system. (E12 is a favorite.)
The attached snippet shows the problem. A quarter-tone
chromatic scale is displayed, first untransposed; then untransposed
and
run through the naturalizeMusic function; then transposed a quarter-
tone
up; then transposed up and run through naturalizeMusic; and finally,
run
through naturalizeMusic and then transposed.
So here you transpose a quarter-tone and a scale degree zero. All note
heads should remain in the same position in the staff; only
accidentals change.
What you see is that
(i) without naturalizeMusic, transposition fails: transposition
alone
leaves the final pitch being 'g+5/4' which has no accidental
I think is just a bug. Somehow the sharp drops out.
(ii) naturalizeMusic saves the transposition, but alters accidentals
which don't need to be altered -- e.g. g-3/4 is transformed to
f+1/4.
Here, the most obvious thing for a machine to do, is to merely impose
E12 enharmonic equivalents in order to minimize the number of
accidentals. So the problem is to figure out a rule for the changes.
Hans
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user