Re: making arpeggios with straight lines

2023-06-11 Thread John Asmuth
Perfect, thank you!

On Sun, Jun 11, 2023 at 12:33 PM Jean Abou Samra  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
>
> { 2\arrowUp q\arrowDown }
>
> Best,
>
> Jean
>


Re: making arpeggios with straight lines

2023-06-11 Thread Jean Abou Samra
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

{ 2\arrowUp q\arrowDown }
```

Best,

Jean





signature.asc
Description: This is a digitally signed message part