"Omid Mo'menzadeh" <omid.mnza...@gmail.com> writes: > Hello all. > I think I just described the problem in the title, but it only happens if I > have a multi-voice staff, as the following example demonstrates: > > %%% > \version "2.22.1" > \score { > \new Staff << > \set Staff.instrumentName = \markup \bold "Name" > \context Voice = "voice" \relative c'' { \appoggiatura b16 c1 } > >> > } > %%%
You start _simultaneous_ music on a new Staff (that's what <<...>> does). That means that all the parallel music starts on the first beat with the exception of grace notes. The only grace note is b16, and LilyPond needs to create the Staff for placing it anywhere. Then, on the first beat, it typesets both the c1 and executes the \set Staff.instrumentName command which comes too late to affect the Staff that already needed to be created for the sake of the appoggiatura. As Knute stated, for settings supposed to be an unchanging part of some context, it makes more sense to establish them in a \with block rather than inside of the context after it has already started. Instrument names certainly belong in that category. -- David Kastrup