lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Simplify the NullVoice context (issue 117050043 by address@hidden)


From: Keith OHara
Subject: Re: Simplify the NullVoice context (issue 117050043 by address@hidden)
Date: Mon, 08 Sep 2014 21:41:52 -0700
User-agent: Opera Mail/12.16 (Win32)

On Mon, 08 Sep 2014 16:28:24 -0700, Dan Eble <address@hidden> wrote:

How about placing the voices inside a VoiceGroup context, moving the 
Accidental_engraver there, and leaving the NullVoice outside, like in my recent 
partcombine experiments?


Usually, accidentals are reported up the context hierarchy.
We can do things like this
    %% Cautionary accidentals to cancel accidentals anywhere on the score
     \set Score.localAlterations = #'()
     \set Score.autoCautionaries   % 0 -> current measure only
         = #`(Score ,(make-accidental-rule 'any-octave 0))

If reports of accidentals do not penetrate your VoiceGroup, it would be an 
exception to the general rule.  I think it might be because localAlterations is 
not initialized in VoiceGroup.


Another quick way to hide pitches from the Accidental_engraver note-heads is to 
set NoteHead.style=#'harmonic and Staff.harmonicAccidentals=##f

I am leaning toward generalizing that mechanism so that any voice could say "I 
should not have any accidentals printed".  Then the Accidental_engraver handles 
things consistently: it knows that it generated no accidentals reports no accidentals for 
cancellation.


On the other hand, maybe it is better to put NullVoice at the Score level, and 
let people, like you, who want the unprinted pitches to be logically associated 
with the Staff, move NullVoice on their own.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]