Jean Abou Samra <j...@abou-samra.fr> writes: > Le 07/01/2023 à 17:58, David Kastrup a écrit : >>> 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. > > OK, that is an interesting idea, although I would personally find ... > > >> With that interpretation, \once \override Staff.NoteHead.color would >> color _all_ grace notes. > > > ... this somewhat confusing. > > > >> 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. > > > > That would presumably lead to > > { > \once \override NoteHead.color = ... > \once \override Staff.NoteHead.color = ... > ... > } > > getting the events reordered so that the Staff.NoteHead override > starts before graces and the NoteHead one starts after, which I > would definitely find surprising. > > > Either way, stuff like > > > \version "2.24.0" > > articulations = { > <>\< \after 8 \! s4 > } > > \new Voice << > { \grace b8 c'8 d'8 } > \articulations >>> > > > would have its output changed in a way that I would consider > unwanted.
Well, this was sort of saying that there may be no silver bullet, but we may have to pick between chrome and aluminum ones. Sometimes there is a solution that blends better into human expectations than strict logic. -- David Kastrup