lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Two arpeggio lines (up and down) next to each other


From: Lukas-Fabian Moser
Subject: Re: Two arpeggio lines (up and down) next to each other
Date: Tue, 12 Oct 2021 12:21:08 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.13.0


Jean Abou Samra knew how to fix that behaviour of arpeggios, so here's a (I hope) working solution:

It seems we can continue this game of "LilyPond experts explain how to do things and I only have to post the resulting, ever simpler examples" for some time. :-)

Harm pointed out in https://gitlab.com/lilypond/lilypond/-/issues/6193#note_701181244 that it suffices to do:

\version "2.22"

arpeggioUpDown = {
  \override Arpeggio.stencil =
  #(lambda (grob)
     (let ((one #f) (two #f) (combined-stencil #f))
       (ly:grob-set-property! grob 'arpeggio-direction UP)
       (set! one (ly:arpeggio::print grob))
       (ly:grob-set-property! grob 'arpeggio-direction DOWN)
       (set! two (ly:arpeggio::print grob))
       (set! combined-stencil
             (ly:stencil-add
              one
              (ly:stencil-translate-axis two 1.25 X)))
       (ly:grob-set-property!
        grob 'X-extent
        (ly:stencil-extent combined-stencil X))
       (ly:pointer-group-interface::add-grob
        (ly:grob-parent grob X) 'elements grob)
       combined-stencil))
  \override Arpeggio.direction = #RIGHT
}

{
  \once \arpeggioUpDown
  <c' e' g' c''>\arpeggio
  c'
}

Lukas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]