lilypond-user
[Top][All Lists]
Advanced

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

Re: Lyrics both above and below the staff with splits?


From: Phil Holmes
Subject: Re: Lyrics both above and below the staff with splits?
Date: Sun, 14 Apr 2013 11:40:06 +0100


How about something like:
 
\version "2.16.0"
{
  <<
    \new Staff = "Song"
    <<
      \new Voice = "Soprano" { s1 | \voiceOne  a'4 b'4 c''4 d''4 | \oneVoice  s1 }
      \new Lyrics \with { alignAboveContext = Song } \lyricsto "Soprano" {  A -- bove the stave }
      \new Voice = "Alto" {  a'4 b'4 c''4 d''4  | \voiceTwo  c'4 d'4 e'4 f'4  | \oneVoice  a'4 b'4 c''4 d''4 }
      \new Lyrics \lyricsto "Alto" { U -- ni -- son words Be -- low the stave U -- ni -- son words }
    >> % Staff end
  >>  % Group end
}

--
Phil Holmes
 
 
----- Original Message -----
Sent: Sunday, April 14, 2013 9:46 AM
Subject: Lyrics both above and below the staff with splits?

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

Attachment: LyricArrangement.png
Description: PNG image


reply via email to

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