lilypond-user
[Top][All Lists]
Advanced

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

Re: Song: multiple verses and refrain


From: Mats Bengtsson
Subject: Re: Song: multiple verses and refrain
Date: Mon, 8 Jul 2024 23:12:39 +0200
User-agent: Mozilla Thunderbird


On 2024-07-08 21:40, Raphael Mankin wrote:
An alternative to the already proposed solutions is to name the Lyrics context that you want to keep, and then reuse it for the refrain:

\version "2.24.3"

melody = { \relative c'
           \repeat volta 3 { a b c d e f g a }
}
verseA = \lyricmode {  This is verse one }
verseB = \lyricmode {  This is verse two }
verseC = \lyricmode {  This is verse three }
chorusWords = \lyricmode {  This is the chorus }

\score {
   \new Staff {
     \melody
     \addlyrics {
       \repeat volta 3 {
         <<
           \new Lyrics = mainlyrics \verseA
           \new Lyrics \verseB
           \new Lyrics \verseC
         >>
         \context Lyrics = mainlyrics \chorusWords
       }
     }
   }
   \layout { }
}

    /Mats


Now that is much neater, but can  it be modified for the case where the refrain precedes the verse, e.g. Satie's "Je Te Veux"?

Maybe these tricks should go into the docs.

The general principle of naming and resuming contexts is described in https://lilypond.org/doc/v2.24/Documentation/notation/creating-and-referencing-contexts and some additional bells and whistles are brought up in https://lilypond.org/doc/v2.24/Documentation/notation/keeping-contexts-alive

Here's a modified version of the above example with the refrain coming before the verses.

\version "2.24.3"

melody = { \relative c'
          \repeat volta 3 { a b c d e f g a }
}
verseA = \lyricmode {  This is verse one }
verseB = \lyricmode {  This is verse two }
verseC = \lyricmode {  This is verse three }
chorusWords = \lyricmode {  This is the chorus }

\score {
  \new Staff {
    \melody
    \addlyrics {
      \new Lyrics = mainlyrics \chorusWords
      \repeat volta 3 {
        <<
          \context Lyrics = mainlyrics \verseA
          \new Lyrics \verseB
          \new Lyrics \verseC
        >>
      }
    }
  }
  \layout { }
}

   /Mats


reply via email to

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