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
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to