Am 28.07.2014 21:47, schrieb Marten:
Dear all,

Trying to typeset a song I am faced with the following problem for which I
can;t find a solution in the manual or snippet repository. I kindly request
your help.

I'm typesetting a song with one staff, where the refrain comes first and
spans multiple lines of notes; after that come 3 stanzas. I'd like the song
text to be placed under the stanza melody, but I don't want to add empty
lines to the refrain. I'm looking for a solution with one \score block. Can
this be done?

In a sketch:

=====several notes, line 1 =====
Text to refrain, line 1
=====several notes, line 2 =====
Text to refrain, line 2
=====several notes, line 3 =====
Text to stanza 1, line 3
Text to stanza 2, line 3
Text to stanza 3, line 3
=====several notes, line 4 =====
Text to stanza 1, line 4
Text to stanza 2, line 4
Text to stanza 3, line 4

To me it would seem logical to change the name of the Voice in line 3, and
the associate the lyrics of the stanzas with the voice name in line 3. But
I don't knwo how to do this.

Hello Marten,

I agree that LilyPond does not have a satisfying interface for such situations (i.e. any situation with repeats, which get different text on different times, or with changing number of stanzas, as in your example). I’ve made three examples which should do what you want, the first two are similar, the third isn’t. Explanations are in the code, and more to be found in the learning manual <http://lilypond.org/doc/v2.18/Documentation/learning/songs> and notation reference <http://lilypond.org/doc/v2.18/Documentation/notation/vocal-music>.

Hope that helps,
Simon
\version "2.19.8"
#(set-default-paper-size "a6" 'landscape)

% here, lyric syllables are automatically assigned to notes
% by \lyricsto

% the refrain text is written next to the second stanza
% in order to be vertically centered if there is no
% line break at the beginning of the stanza

% in the other stanzas, the refrain must be skipped
% by one underscore per missing syllable

melody = \relative { \time 3/4 c'4 d e f2. d4 e f g2. \break
                     bes4 a g f( g8 f) e[( d]) g4( e) d c2. }
stanzaOne = \lyricmode { _ _ _ _ _ _ _ _
                         \set stanza = "1."
                         This is the text of stan -- za one }
stanzaTwo = \lyricmode { This is the text of the re -- frain.
                         \set stanza = "2."
                         This is the text of stan -- za two. }
stanzaThree = \lyricmode { _ _ _ _ _ _ _ _ 
                         \set stanza = "3."
                           This is the text of stan -- za three. }

\score {
  <<
    \new Voice = "melody" \melody
    \new Lyrics \lyricsto "melody" \stanzaOne
    \new Lyrics \lyricsto "melody" \stanzaTwo
    \new Lyrics \lyricsto "melody" \stanzaThree
  >>
}
\version "2.19.8"
#(set-default-paper-size "a6" 'landscape)

% here, the lyric syllable durations are manually entered and
% \lyricsto avoided. This allows skipping the refrain more easily.

melody = \relative { \time 3/4 c'4 d e f2. d4 e f g2. \break
                     bes4 a g f( g8 f) e[( d]) g4( e) d c2. }
stanzaOne = \lyricmode { \skip 2.*4
                         \set stanza = "1."
                         This4 is the text2 of4 stan2 -- za4 one. }
stanzaTwo = \lyricmode { This4 is the text2. of4 the re -- frain.2.
                         \set stanza = "2."
                         This4 is the text2 of4 stan2 -- za4 two. }
stanzaThree = \lyricmode { \skip 2.*4
                         \set stanza = "3."
                         This4 is the text2 of4 stan2 -- za4 three. }

\score {
  <<
    \new Voice \melody
    \new Lyrics \stanzaOne
    \new Lyrics \stanzaTwo
    \new Lyrics \stanzaThree
  >>
}
\version "2.19.8"
#(set-default-paper-size "a6" 'landscape)

% This is an entirely different layout and slightly more elegant, I think.
% Here, new contexts are created in parallel to the music at the point
% where the stanzas begin.

refrain = \lyricmode { \set stanza = "1.–3."
                       This4 is the text2. of4 the re -- frain.2. }
stanzaOne = \lyricmode { \set stanza = "1."
                         This4 is the text2 __ of4 stan2 -- za4 one. }
stanzaTwo = \lyricmode { \set stanza = "2."
                         This4 is the text2 __ of4 stan2 -- za4 two. }
stanzaThree = \lyricmode { \set stanza = "3."
                           This4 is the text2 __ of4 stan2 -- za4 three. }
melody = \relative { \time 3/4 c'4 d e f2. d4 e f g2. \break
                     << \new Lyrics \stanzaOne
                        \new Lyrics \stanzaTwo
                        \new Lyrics \stanzaThree
                        { bes4 a g f( g8 f) e[( d]) g4( e) d c2. } >> }

\score {
  <<
    \new Voice \melody
    \new Lyrics \refrain
  >>
}
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to