6

So I want to write not just at the end of a score, but after it, like the dal segno on this snippet :

enter image description here

I find it really neat, but don't find how to do it. It is not a text script, spanner or mark. It is not an object. So I'm a loss at how to do it.

For now, I just add _"D.S. al Fine" \bar "S-S" at the end of my score, so the dal segno is below the score.

2 Answers 2

10

Here I am overriding the barline stencil:

fancyMarkup = \markup \with-dimensions #'(0 . 0) #'(0 . 0) {
  \raise #-2.5 \center-column { "D.     S." "al" "Fin" }
}

\new StaffGroup <<
  \new Staff { b1 b b b b
               \once \override Staff.BarLine.stencil =
               #(lambda (grob)
                  (ly:stencil-combine-at-edge
                   (ly:bar-line::print grob)
                   X RIGHT
                   (grob-interpret-markup grob fancyMarkup)
                   0))
               \bar "S-S"
               }
  \new Staff { b1 b b b b }
>>

enter image description here

4

To be honest, I don't know an elegant way to do this and I would be very happy to see one. However, in the meantime, you can engrave it with use of a hack like this: lilybin.

What I did there is essentially this: I attach a markup to the last note in the right hand like so:

b-\tweak extra-offset #'(6 . 1.5) _\markup{\with-dimensions #'(0 . 0) #'(0 . 0) \center-column{ "D. S." "al" "Fin" }} \bar "S-S"

The main idea is to take what you want to typeset, which is \center-column{"D. S." "al" "Fin"}, make it take up no space using \with-dimensions #'(0 . 0) #'(0 . 0) ... and put the markup to the right place (found by trial and error) using -\tweak extra-offset #'(X . Y). It's very ugly, but sadly I don't know of anything better and it at least gets the job done.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.