1

In context, the collision looks like this:

Collision

Here's a minimum example that appears to reproduce the problem:

\version "2.22.1"

rh=\relative c'' {\key des \major
    <g g'>4.( <e e'>8 <f f'>4) <ges aes c ges'>\arpeggio \ff |
}

lh=\relative c {\clef "bass" \key des \major
    << {
        e,16( g bes c) e,( g bes c) f,( a c f,) <aes c>4\arpeggio |
    } \\ {
        e4 e f ees\arpeggio |
    }>>
}

\score
{
    <<
        \new PianoStaff \with {connectArpeggios = ##t} <<
            \new Staff = "up" \rh
            \new Staff = "down" \lh
        >>
    >>
}

which yields:

Minimum Example

How do I create space to the left of the arpeggio object? I've tried \overrideing properties, but none of them have ANY effect on the arpeggio object at all. Adding \override Arpeggio.direction = #UP before the music in rh doesn't produce any compilation errors, but also doesn't change the arpeggio object. Same with \override Arpeggio.padding = #3. \override Arpeggio.positions = #( 3 . 5 ) fails with compile error "Wrong number of arguments to 3" (how many arguments does 3 expect?).

Obviously I'm clueless about Lilypond syntax (still). How do I fix the arpeggio collision? Also, please provide general comments on how to interact with lilypond objects.

1 Answer 1

2

The reason the \overrides don't work is because you failed to place them on every instance of the \arpeggio object. When using connectArpeggios event, it is necessary to apply the override to ALL the \arpeggio statements in the score:

\version "2.22.1"

rh=\relative c'' {\key des \major
\override Arpeggio.padding = #3
    <g g'>4.( <e e'>8 <f f'>4) \override Arpeggio.padding = #3 <ges aes c ges'>\arpeggio \ff |
}

lh=\relative c {\clef "bass" \key des \major
    << {
        e,16( g bes c) e,( g bes c) f,( a c f,) \override Arpeggio.padding = #3 <aes c>4\arpeggio |
    } \\ {
        e4 e f \override Arpeggio.padding = #3 ees\arpeggio |
    }>>
}

\score
{
    <<
        \new PianoStaff \with {connectArpeggios = ##t} <<
            \new Staff = "up" \rh
            \new Staff = "down" \lh
        >>
    >>
}

yields:

Corrected Collision

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.