Hi Stephan,


What should I do to set a down-arrow to a cross-staff arpeggio? Find below what I've tried so far. Neither (1) nor (2a AND/OR 2b) seem to add an arrow to the lower end of the squiggy line (in the left hand staff).

TIA for your advice

The problem is that, internally, \arpeggioArrowDown does:

    \revert Arpeggio.stencil
    \revert Arpeggio.X-extent
    \override Arpeggio.arpeggio-direction = #DOWN

Of these, only the override actually adds the arrow. But this override happens in the current (Voice) context, and we need to address the PianoStaff context. So, try the following:

          \override PianoStaff.Arpeggio.arpeggio-direction = #DOWN

As an alternative, I posted a brute-force function recently that pushes this kind of override to a different context, but I can't really recommend relying in this mechanism (I'm a bit surprised that it works in your case actually):

forceContext =
#(define-music-function (context-type mus) (symbol? ly:music?)
   (music-map
    (lambda (m)
      (if (eq? (ly:music-property m 'name) 'ContextSpeccedMusic)
          (ly:music-set-property! m 'context-type context-type))
      m)
    mus))

Then you can do \forceContext PianoStaff \arpeggioArrowDown.

Lukas


Reply via email to