For some teaching examples I'm making, I'm looking to label slurs and ties. I'd like the label to be placed in the center of the slur automatically, much like LaTeX's midway stipulation. I can move the labels by brute force (as shown below), but is it possible to do it automatically?

\version "2.18.2"

\score {
  \relative c' {
    <c e g>1(_\markup \halign #-7 "X" | % I don't want to have to do that every time!
    <c f a>) |
  \layout { }

enter image description here

1 Answer 1


Here is a starting point.

\version "2.20.0"
#(define ((myCallBack  string) grob)
   (grob-interpret-markup grob
     (if (= (ly:grob-property grob 'direction) 1)
         (markup #:translate '(1 . 3) #:center-column (
                                                        (#:stencil (ly:slur::print grob))))
         (markup  #:center-column (
                                    (#:stencil (ly:slur::print grob))
                                    ( string))))))

  \override Slur #'stencil = #(myCallBack "XX")
  c'2 (  c'' c d'' )

enter image description here

Adapted from https://lists.gnu.org/archive/html/lilypond-user/2009-06/msg00211.html

Your Answer

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

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