bug-lilypond
[Top][All Lists]
Advanced

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

Re: Cross-voice arpeggios do not respect arpeggio types


From: Thomas Morley
Subject: Re: Cross-voice arpeggios do not respect arpeggio types
Date: Sat, 29 Mar 2014 12:59:16 +0100

2014-03-29 11:20 GMT+01:00 Phil Holmes <address@hidden>:
>
> "Ole V. Villumsen" <address@hidden> wrote in message
> news:address@hidden
>
>>> I'm not top posting.
>>
>>
>> The arpeggio types described in NR 1.3.3 including bracketed arpeggios
>> cannot be produced accross staves. When I specify \set
>> PianoStaff.connectArpeggios = ##t with either of \arpeggioArrowUp,
>> \arpeggioArrowDown, \arpeggioBracket, \arpeggioParenthesis and
>> \arpeggioParenthesisDashed, a normal arpeggio line is always printed,
>> i.e.,
>> the type specified is ignored.
>
>
> This is a documented limitation:
>
> "Known issues and warnings:
> [...]
> The parenthesis-style arpeggio brackets do not work for cross-staff
> arpeggios."
>
> --
> Phil Holmes

Hi Ole,

as Phil pointed out there is a limitation for parenthesis-style
arpeggio, though, have a look in property-init.ly.

You'll see sth like:
arpeggioBracket = {
  \revert Arpeggio.X-extent
  \override Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
}
I.e. no context is specified, meaning it works on voice-level only.
If you want to make it work at Staff or PianoStaff level c/p the
definition into your file and insert the correct context into it:
arpeggioBracket = {
    \revert PianoStaff.Arpeggio.X-extent
  \override PianoStaff.Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
}
Or create a music-function. Sth at the lines of:
arpeggioBracket =
#(define-music-function (parser location ctx)(string?)
#{
    \revert $ctx .Arpeggio.X-extent
  \override $ctx .Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
#})


EXAMPLES:

\version "2.18.0"

arpeggioNormal = {
  \revert PianoStaff.Arpeggio.stencil
  \revert PianoStaff.Arpeggio.X-extent
  \revert PianoStaff.Arpeggio.arpeggio-direction
  \revert PianoStaff.Arpeggio.dash-definition
}

arpeggioBracket = {
    \revert PianoStaff.Arpeggio.X-extent
  \override PianoStaff.Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
}

arpeggioBracket =
#(define-music-function (parser location ctx)(string?)
#{
    \revert $ctx .Arpeggio.X-extent
  \override $ctx .Arpeggio.stencil = #ly:arpeggio::brew-chord-bracket
#})

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

\new Staff = rh \with { \consists "Span_arpeggio_engraver" } {
  \set Staff.connectArpeggios = ##t
  \arpeggioBracket Staff
  << { g'\arpeggio } \\ { c'\arpeggio } >>
}

\version "2.18.0"

\new PianoStaff \relative c'' <<
  \set PianoStaff.connectArpeggios = ##t
  \new Staff {
    \arpeggioArrowUp
    <e, c>4\arpeggio
    \arpeggioArrowDown
    <e c>4\arpeggio
    \arpeggioBracket PianoStaff
    <e c>4\arpeggio
    \arpeggioNormal
    <e c>4\arpeggio
  }
  \new Staff {
    \clef bass
    <g, c,>4\arpeggio
    <g c,>4\arpeggio
    <g c,>4\arpeggio
    <g c,>4\arpeggio
  }
>>

HTH,
  Harm



reply via email to

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