lilypond-user
[Top][All Lists]
Advanced

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

Re: Is a cross-staff chord with ties possible in lilypond?


From: Jay Anderson
Subject: Re: Is a cross-staff chord with ties possible in lilypond?
Date: Wed, 20 Apr 2011 21:47:13 -0700

On Wed, Apr 20, 2011 at 5:47 PM, Helge Hafting <address@hidden> wrote:
> I am trying to enter a piece by Grieg, which contains the attached
> interesting construct.
>
> The manual shows how to write out an arpeggio like this,
> using a set of consecutive notes all tied to a chord.
>
> Unfortunately, these consecutive notes also cross from the lower to the
> upper staff.
> They have a common beam, so one voice jumps from one staff to another. So
> far, so good. But tieing to the cross-staff chord that follows doesn't work.
>
> A cross-staff chord must be entered in two voices, because you can't switch
> staff
> _inside_ a chord. (I tried, it was a syntax error.)
>
> But ties seems to work in the same voice only. So I can make the lower ties
> work, but not also the upper ones.
>
> Is this possible, or is there currently a limitation of lilypond?
>
> If there is a solution, I hope it also works for the midi output. So simply
> forcing some curved lines is not a good or complete solution.

Yes, it's possible (and to work with midi too), but it can get
complicated. Below is pretty close (without dynamics, articulations,
arpeggios, etc.).
- Cross staff chords aren't really a limitation of lilypond. They're
mostly just awkward to work with because, as you said, you must enter
them in separate voices and manually lengthen the stem (and remove
flags for shorter durations).
- Ties across voices aren't possible. You can fake them by hiding
identical tied notes in the other voice.

-----Jay

\version "2.13.59"

\score
{
  \new PianoStaff
  <<
    \new Staff=top \relative c''
    {
      \clef treble
      \time 3/4
      <<
        {\voiceOne f2.~ | f4.}
        \new Voice {s8*5 \set tieWaitForNote = ##t \hideNotes dis,16~
gis~ \unHideNotes | \voiceTwo <dis gis>2.}
      >>
    }
    \new Staff=bot \relative c
    {
      \clef bass
      <<
        {\stemDown <b f' b>4. \stemNeutral}
        \new Voice
        {
          \change Staff=top
          \once \override Stem #'cross-staff = ##t
          \once \override Stem #'length = #12
          \stemDown
          <dis' f b>4.
        }
      >>
      \set tieWaitForNote = ##t
      \override Beam #'auto-knee-gap = #3
      e,,16~ b'~ e~ gis~ \change Staff=top dis' gis |
      \change Staff=bot
      <gis, e b e,>2. |
    }
  >>
}



reply via email to

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