Hi David (et al.), >> In that case, the NoteHead one has no effect, because \once applies to >> the next time step only, and the next time step is for a grace note >> another voice. > > The recovery action of \once should likely occur after the next _local_ > timestep. > >> Do they occur after? In that case, the TimeSignature one has no >> effect, because the TimeSignature grob was created before the graces. >> The latter is the currently chosen interpretation. > > With that interpretation, \once \override Staff.NoteHead.color would > color _all_ grace notes. An alternative would be to try to involve > \context ... constructs in the grace fixup decisions, in which case > NoteHead.color and Staff.NoteHead.color would lead to different timings > of the result. > >> So what do you do for an arbitrary \once \override? Especially if >> there is a Scheme engraver that might decide to create this grob at >> any time? > > \once \override is not a grob.
It appears that David is saying exactly what I’m suggesting [separating grobs from zero-duration events, eliminating context-bleed, etc.], the only exception being the order of operations (pre-grace or post-grace). If David’s approach *does* “map well into code intended for computers”, I could care less about the actual order of operations that Lilypond takes. Cheers, Kieren.