On Sun, 07 Sep 2014 01:21:58 -0700, <d...@gnu.org> wrote:
But messing up the basic grob definition by fetching internals and meddling through them locally: no.
Well, you say "messing up the basic grob definition" I say "reading the basic definition, and making a local modified copy" We can do in LilyPond code with ly:grob-interfaces, making a copy with one interface removed, and storing the shorter list in the NullVoice context definition with an \override, so the changes to apply to grobs made in this context. LilyPond tries to be robust to grobs different interfaces, by checking has-interface() before using the properties associated with that interface. It turns out that there is a hierarchy in define-event-classes that says all note-events are musical-events and all musical-events are rhythmic-events. Maybe we have assumed that the correspondingly-named interfaces have a corresponding hierarchy. I'll try some other way of telling Accidental_engraver to ignore NullVoice. I'm trying to let people move NullVoice to Staff without reintroducing the known issue of the cancellation accidentals in \new Staff << \new NullVoice {cis dis es fis} \new Voice {r4 c d e } >> _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel