Frédéric Bron <frederic.b...@m4x.org> writes: >> Since the \key command still works at the Staff level (both >> technically in LilyPond and musically, since there's no notation >> available to specify separate key signatures for separate voices >> within a stave), I clearly see it as a bug if the Staff key isn't >> seen by each Voice. > > What if, at the point a voice is instanciated, we automatically set > its key signature to that of its parent staff context. That would > solve this issue.
In general, that is a mistake: accidentals are typeset per staff. Now this is about an accidental-style 'voice for which we have As a result, accidentals from one voice do not get canceled in other voices, which is often an unwanted result: in the following example, it is hard to determine whether the second `a' should be played natural or sharp. The `voice' option should therefore be used only if the voices are to be read solely by individual musicians. If the staff is to be used by one musician (e.g., a conductor or in a piano score) then `modern' or `modern-cautionary' should be used instead. Under this premise, I think it makes sense to inherit the key signature. Now if we have _within_ a voice << { xxx } \\ { yyy } >>, what does this mean? Since the purpose of "voice" accidental style is to write stuff that several different people read, this corresponds to splitting a tenor voice (for example). This means that the split voices should not just inherit the key signature, but also already preexisting accidentals of the "father voice" since obviously the same persons are singing tenor 1 and tenor 2 that have been singing tenor previously. Also, any accidental changes within xxx and yyy need to be consolidated into the following rejoined voice: if there are different accidentals in xxx and yyy for a note, a recurrence of the note after the split needs a cautionary accidental. -- David Kastrup _______________________________________________ bug-lilypond mailing list bug-lilypond@gnu.org http://lists.gnu.org/mailman/listinfo/bug-lilypond