[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Arrow on cross-staves arpeggio
From: |
David Nalesnik |
Subject: |
Re: Arrow on cross-staves arpeggio |
Date: |
Thu, 19 Jan 2017 11:02:36 -0600 |
Hi David,
On Thu, Jan 19, 2017 at 4:10 AM, David Sumbler <address@hidden> wrote:
> On Wed, 2017-01-18 at 15:07 -0600, David Nalesnik wrote:
>> arpeggioArrowUp will apply to a bottom context. Rewriting its
>> definition (in ly/property-init.ly) will work here:
>>
>> arpeggioArrowUp = {
>> \revert PianoStaff.Arpeggio.stencil
>> \revert PianoStaff.Arpeggio.X-extent
>> \override PianoStaff.Arpeggio.arpeggio-direction = #UP
>> }
>>
>> Hope this helps--
>> David
>
> It definitely helps! Thank you.
>
> For my better understanding, could you explain exactly what is
> happening here?
>
> I take it that \arpeggioArrowUp applies to a Voice context, and that
> somehow setting PianoStaff.connectArpeggios to #t doesn't alter this
> fact.
Yes, the definition of arpeggioArrowUp in ly/property-init.ly doesn't
specify a context, so we fall back on Voice:
arpeggioArpeggioUp = {
\revert Arpeggio.stencil
\revert Arpeggio.X-extent
\override Arpeggio.arpeggio-direction = #UP
}
>
> But I don't understand what the 2 \reverts are doing in the new
> definition. What are they reverting to? Perhaps #f and 0
> respectively?
They are there because of possible interactions with other
arpeggio[...] commands. For example, arpeggioBracket overrides
Arpeggio.stencil, and arpeggioParenthesis overrides both
Arpeggio.stencil and Arpeggio.X-extent.
>
> In the light of your reply I have now altered my file, and after a bit
> of experimentation I find that all I need is:
> \set PianoStaff.connectArpeggios = ##t
> \override PianoStaff.Arpeggio.arpeggio-direction = #UP
> and then
> \revert PianoStaff.Arpeggio.arpeggio-direction
> when I no longer require the arrow (which is after the first
> arpeggiando in this case).
Or just \once \override.
Yeah, for a one-off this is all you need!
Best,
David N