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
>

Reply via email to