Hello,

I am trying to notate a guitar bend & release (half tone) on a single note in standard notation (not tablature).

I managed to draw two curves using \path and \arrow-head with \rotate inside a \markup \overlay, but I cannot get the arrow heads to align precisely with the endpoints of the curves. The rotation offset makes exact positioning very difficult.

Here is my current attempt:

\version "2.24.4"

bendRelease =
#(define-music-function (note) (ly:music?)
  #{
    \once \override TextScript.outside-staff-priority = #50
    \once \override TextScript.padding = #0.5
    $note
    ^\markup {
      \overlay {
        \translate #'(1.45 . 2.5)
        \fontsize #-7 "1/2"
        \path #0.1
        #'((moveto 0 0)
           (curveto 0.2 0.5 0.8 2 1.2 2.5))
        \path #0.1
        #'((moveto 1.8 2.5)
           (curveto 2.2 2 2.8 0.5 3 0))
        \translate #'(1.15 . 2.45)
        \rotate #-45
        \arrow-head #Y #UP ##f
        \translate #'(2.95 . 0.05)
        \rotate #45
        \arrow-head #Y #DOWN ##f
      }
    }
  #})

\score {
  \new Staff {
    \clef treble
    \time 4/4
    \bendRelease cis''4
    d''4 e''4 f''4 |
  }
}

My questions are:
1. Is there a cleaner way to attach arrow heads precisely to the endpoints of a \path curve? 2. Is there an existing snippet on LSR or OpenLilyLib that handles guitar bend & release notation in standard staff (not TabStaff)? 3. Would a Scheme-level stencil approach give better control over arrow placement?

Thanks in advance for any advice.

Best regards


Reply via email to