lilypond-user
[Top][All Lists]
Advanced

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

Lyrics both above and below the staff with splits?


From: Avi Drissman
Subject: Lyrics both above and below the staff with splits?
Date: Sun, 14 Apr 2013 04:46:37 -0400

I'm trying to type up a vocal piece. At several places, the part splits (with completely different notes, rhythms, and lyrics), and returns to unison. During the splits, I'd like the lyrics to go above the staff for the high part, and below the staff for the low part.

At first, I split using:

<< { ..notes.. } \\ { ..notes.. } >>

When you do that, though, you get no lyrics. Bummer. So I started explicitly specifying the second voice:

  ..notes.. << { \voiceOne ..high notes.. }
    \new Voice { \voiceTwo ..low notes.. } >> \oneVoice ..notes..

Better, as you get your lyrics, but not ideal: the lyrics are attached to high notes and are printed below the staff.

Next attempt: explicitly name the voice. I went a little unorthodox here, making the upper voice the new voice and making the lower voice continue the original:

  << \new Voice = "altoone" { \voiceOne ..notes.. }
    { \voiceTwo ..notes.. } >> \oneVoice

and added on the lyrics to that part:

    \new Staff = "alto" <<
      \new Voice = "alto" <<
        \global
        \altonotes
      >>
      \lyricsto "alto" \new Lyrics \altowords
      \lyricsto "altoone" \new Lyrics \with { alignAboveContext = alto } \altoonewords
      \set Staff.instrumentName = A
    >>

which worked well. Awesome! But doing it a second time didn't get me lyrics on the second split:

  ..notes..
  << \new Voice = "altoone" { \voiceOne ..notes.. }
    { \voiceTwo ..notes.. } >> \oneVoice
  ..notes..
  << \new Voice = "altoone" { \voiceOne ..notes.. }
    { \voiceTwo ..notes.. } >> \oneVoice
  ..notes..

The first instance of "altoone" was decorated with lyrics, but the second instance didn't get any. So I thought that perhaps I needed to name the voices differently:

  ..notes..
  << \new Voice = "altoonei" { \voiceOne ..notes.. }
    { \voiceTwo ..notes.. } >> \oneVoice
  ..notes..
  << \new Voice = "altooneii" { \voiceOne ..notes.. }
    { \voiceTwo ..notes.. } >> \oneVoice
  ..notes..

    \new Staff = "alto" <<
      \new Voice = "alto" <<
        \global
        \altonotes
      >>
      \lyricsto "alto" \new Lyrics \altowords
      \lyricsto "altoonei" \new Lyrics \with { alignAboveContext = alto } \altooneiwords
      \lyricsto "altooneii" \new Lyrics \with { alignAboveContext = alto } \altooneiiwords
      \set Staff.instrumentName = A
    >>

But that doesn't work, as "altoonei" and "altooneii" are positioned at different heights. I want one consistent position for all of the lyrics above the staff.

I'm stuck at this point, and am out of ideas. Any suggestions?

Thanks,

Avi

reply via email to

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