> Summary: { \key c \minor \transpose gis as { es } } produces feses in
> output. I think it would be better if it outputted es.
> I have a piece written in es minor, which contains a lot of sharps and
> naturals (along with passages of flat notes). I'd like to "transpose it
> enharmonically" so that sharp notes become flat notes a scale step above,
> natural notes become double-flatted notes, but regular passages of flat
> notes aren't affected. \transpose gis as works for this with one exception:
> it produces ceses and feses everywhere instead of bes and es (which would
> fit the key signature better). This disturbs the harmonic structure: when a
> passage like this { \key es \minor as' bes' des'' bes' ges' es' as' as' } is
> transposed, most flat notes aren't affected (because \transpose doesn't
> create triple flats), but some are - and intervals change, for example first
> one changes from major second to diminished third.
> I tried using \naturalizeMusic from NR 1.1.2 on it, but this results in
> problems in other places (because \naturalizeMusic ignores key signature).
> I think it would be good to either modify \transpose function, or add a
> function which is similar to \transpose, so that described results can be
> acheived.
> What do you think?
I think that
- \transpose does the theoretically right thing
and should keep ignoring enharmony
- \naturalizeMusic is far closer to your needs, it just have to be enhanced
to know the key in the spirit of modal transposition - it may even have a
parameter for the enharmonic interval (diminished second as default).
if I have time (and that's quite a big if) I'll mock up something.
> I searched for transpose in sources and checked all results that were not
> docs and regtests, but my scheme reading skills are too low: i cannot
> identify where it is defined (i have an impression that it's definition
> isn't all in one place). Please give me some pointers.
it's implemented in C++
(Pitch::transpose and ly_transpose_key_alist in music-scheme.cc).
p
_______________________________________________
lilypond-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-devel