Am Mo., 7. Okt. 2024 um 02:42 Uhr schrieb <msk...@ansuz.sooke.bc.ca>: > > I have a volta repeat with two endings. There is a clef change during the > first ending; so at the start of the second ending it's necessary to print > another clef to indicate the clef in force at the start of the ending. > > Lilypond by default will print the new clef before the repeat barline that > separates the first from the second ending. I want it, instead, to print > the clef for the start of the second ending after the barline, so it's > more clearly associated with the second ending. > > This LSR snippet seems to solve that problem: > https://lsr.di.unimi.it/LSR/Item?id=1119 > > It works by putting a grace-note spacer rest at the start of the alternate > ending, putting the clef after the spacer, and then overriding the clef's > extra-spacing-width to make the spacing look right. > > However, I also want to set voltaSpannerDuration (or achieve its effect in > some other way, if necessary), and the grace spacer breaks that; the > ending with the grace spacer seems to ignore voltaSpannerDuration. > > Code showing the problem: > > \new Staff { > \clef bass > e1 | e1 | > \repeat volta 2 { > f1 | f1 | > \set Score.voltaSpannerDuration = #(ly:make-moment 1/1) > \alternative { > \volta 1 { > g1 | \clef treble g'1 | > } > \volta 2 { > \grace s4 > \once \override Staff.Clef.extra-spacing-width = #'(-1.5 . 0) > \clef bass a1 | > \clef treble a'1 | > } > } > } > \fine > } > > With this code the bracket for the first ending covers only one measure, > but the bracket for the second ending covers the entire second ending, two > measures. Commenting out the \grace s4 returns both brackets to the > expected length (one measure), but puts the clef before the barline. > > So, how can I get a clef after the barline and limit the length of the > volta bracket, on the same alternate ending? > > -- > Matthew Skala > msk...@ansuz.sooke.bc.ca People before tribes. > https://ansuz.sooke.bc.ca/ >
\new Staff { \clef bass e1 | e1 | \repeat volta 2 { f1 | f1 | \set Score.voltaSpannerDuration = #(ly:make-moment 1/1) \alternative { \volta 1 { g1 | \clef treble g'1 | } \volta 2 { %\grace s4 \once\override Score.BreakAlignment.break-align-orders = #(make-vector 3 '(left-edge cue-end-clef ambitus breathing-sign staff-bar clef cue-clef key-cancellation key-signature time-signature custos)) \once \override Staff.Clef.extra-spacing-width = #'(-1.5 . 0) \clef bass a1 | \clef treble a'1 | } } } \fine } Cheers, Harm