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.




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.


Well, I meant the grob type that \once \override is modifying.


Attachment: OpenPGP_signature
Description: OpenPGP digital signature

Reply via email to