[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: extraNatural and key changes
From: |
Keith OHara |
Subject: |
Re: extraNatural and key changes |
Date: |
Mon, 13 Dec 2010 22:26:59 +0000 (UTC) |
User-agent: |
Loom/3.14 (http://gmane.org/) |
Neil Puttock <n.puttock <at> gmail.com> writes:
>
> 2009/6/28 David Bobroff <bobroff <at> centrum.is>:
> > When using 'extraNatural = ##f' key cancellations at key changes are not
> > complete. Key signature elements which change between sharp and flat on the
> > same note names are not canceled.
> >
> > Feature?
>
> Yes. It's deliberately set this way in the Key_engraver.
>
After thinking a few months, and reading Kurt Stone's book, I am convinced that
this is a design error.
The logic for printing naturals on notes (check-pitch-against-signature) is re-
implemented in Key_engraver::create_key. The implementations look consistent,
but consistency is not appropriate here.
On notes, we see the extra natural and the new accidental together, and the
natural is very often removed.
In key signatures, we see the naturals as a group and the new signature as a
group, so the extra-ness of the natural is less obvious. The group of naturals,
the key cancellation, is sometimes removed as a group.
These two types of omissions are treated independently in everything I have
read. Lilypond's incomplete key cancellation, demonstrated earlier in the
thread, is *never* used. Therefore, extraNatural=##f as implemented must
always be accompanied by either printKeyCancellation=##f, or a temporary
restoration of extraNatural, for each key change.
Solo piano music especially likes to use 'black' keys like des\major and cis
\minor, where extraNatural=##f is very helpful for brevity, but complete key
cancellations are also helpful when learning a new piece. So I leave the
cancellations in place, toggle extraNatural whenever I remember it, and am
embarrassed when I forget.
Is there any reason that key cancellations should honor extraNatural=#f ?
--
Keith
P.S. I would be easily capable of this patch once I figure out git: four lines
removed from Key_engraver, replaced with a comment that extraNatural is
intentionally ignored, and the removal of the regression test key-signature-
cancellation-extra-natural.ly, and down-grading of issue 1399 to a doc fix.
- Re: extraNatural and key changes,
Keith OHara <=