Am Do., 5. Dez. 2019 um 17:57 Uhr schrieb Paolo Prete <[email protected]>:
>
>
> Hi Thomas.
> Yes, I'm interested. I could not find any snippet for that, nor a 
> corresponding property for "Arpeggio" in the "Lilypond Internals Reference"
> Thanks.
>
> Il giovedì 5 dicembre 2019, 16:22:12 GMT, Thomas Morley 
> <[email protected]> ha scritto:
>
>
> Am Do., 5. Dez. 2019 um 15:07 Uhr schrieb Paolo Pr <[email protected]>:
>
> >
> > (I re-post this because it seems that mails from Yahoo services, like some 
> > of my previous posts, are filtered as spam)
> >
> > Hello,
> >
> > how can I modify the size of the arrow of an \arpeggioArrowUp/Down object?
> >
> > Thanks
>
> >
>
> There is no builtin method to do so.
> You could create your own stencil, though.
>
> Interested in learning howto?
>
>
> Cheers,
>   Harm
>
>

Ok :)
So what do we want?
While applying \arpeggioArrowUp we want the usual arpeggio, but the
added arrow-head should be sized as we want.

Alas, as soon as we set \arpeggioArrowUp the default is there.
Mmhh, what exactly does \arpeggioArrowUp?
Looking into property-init.ly (found by some search-functions of your
editor or some grepping):

arpeggioArrowUp = {
  \revert Arpeggio.stencil
  \revert Arpeggio.X-extent
  \override Arpeggio.arpeggio-direction = #UP
}

Interesting is arpeggio-direction, looks like it triggers the arrowed arpeggio.
Let's proof:

{
  \arpeggioArrowUp
  R1
  \override Arpeggio.arpeggio-direction = #'()
  <b d' f' b'>\arpeggio
}

And indeed the arrow-head is gone.

Now we can recreate the _default_-stencil explicitely, using the
default-stencil, found in IR.
I.e. the procedure ly:arpeggio::print
NB, although we've set \arpeggioArrowUp

{
  \arpeggioArrowUp
  R1
  \override Arpeggio.arpeggio-direction = #'()
  \override Arpeggio.stencil =
  #(lambda (grob)
     (ly:arpeggio::print grob))
  <b d' f' b'>\arpeggio
}

Let us put the arpeggio-direction into the stencil-override for conveniance:

{
  \arpeggioArrowUp
  R1
  \override Arpeggio.stencil =
  #(lambda (grob)
     (ly:grob-set-property! grob 'arpeggio-direction '())
     (ly:arpeggio::print grob))
  <b d' f' b'>\arpeggio
}

Now we only need to add a suitable arrowhead to the stencil and are done.


So I need a little break, I'm cooking right now ;)


Cheers,
  Harm

Reply via email to