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](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
signature.asc
Description: This is a digitally signed message part
