[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: |
Sun, 07 Sep 2014 22:33:58 -0700 |
User-agent: |
Opera Mail/12.16 (Win32) |
On Sun, 07 Sep 2014 01:21:58 -0700, <address@hidden> 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 } >>