Perfect, thank you! On Sun, Jun 11, 2023 at 12:33 PM Jean Abou Samra <[email protected]> wrote:
> Le dimanche 11 juin 2023 à 12:18 -0400, John Asmuth a écrit : > > Hi everyone, I'm trying to draw an up or down arrow next to a chord. This > is common notation in classical guitar for strum direction. > > It seems that the most likely way to make this happen is to use \arpeggio > and set the arpeggio stencil to draw a straight line. I saw > https://lists.gnu.org/archive/html/lilypond-user/2019-12/msg00080.html > that gives some hints about how to do stencils but maybe a more clear > tutorial or set of examples would help. > > Or, perhaps, there's a better way to do this. I am, of course, open to any > suggestion. > > Try something like this? > > \version "2.24.1" > > arrow = > \tweak stencil > #(lambda (grob) > (match-let* > ((staff-space > (ly:staff-symbol-staff-space grob)) > ((and positions (bottom . top)) > (interval-scale (ly:grob-property grob 'positions) > staff-space)) > (dir (ly:grob-property grob 'arpeggio-direction))) > (grob-interpret-markup > grob > #{ > \markup \overlay { > \path #0.3 > #`((moveto ,0 ,bottom) > (lineto ,0 ,top)) > \translate #(cons 0 (interval-index positions dir)) > \general-align #Y #(- dir) > \arrow-head #Y #dir ##t > } > #}))) > \arpeggio > > arrowUp = \tweak arpeggio-direction #UP \arrow > arrowDown = \tweak arpeggio-direction #DOWN \arrow > > { <c' c''>2\arrowUp q\arrowDown } > > Best, > > Jean >
