@node Vocal music
@section Vocal music
-@c TODO: inspirational headword
+@lilypondfile[quote]{vocal-headword.ly}
This section explains how to typeset vocal music, and make sure
that the lyrics will be aligned with the notes of their melody.
* Manual syllable durations::
* Multiple syllables to one note::
* Multiple notes to one syllable::
-* Skipping notes::
* Extenders and hyphens::
@end menu
@cindex lyrics, entering
@cindex entering lyrics
+@cindex formatting in lyrics
+@cindex lyrics, formatting
@cindex punctuation in lyrics
@cindex lyrics punctuation
@cindex spaces in lyrics
@c " to balance double quotes for not-so-bright context-sensitive editors
+Great control over the appearance of lyrics comes from using
+@code{\markup} inside the lyrics themselves. For explanation of many
+options, see @ref{Formatting text}.
+
+@snippets
+
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{formatting-lyrics-syllables.ly}
+
+
@seealso
Learning Manual:
@rlearning{Songs}.
Notation Reference:
@ref{Automatic syllable durations},
@ref{Fonts},
+@ref{Formatting text},
@ref{Input modes},
@ref{Manual syllable durations},
@ref{Text encoding}.
Internals Reference:
@rinternals{LyricText}.
+Snippets:
+@rlsr{Text}
@node Aligning lyrics to a melody
@unnumberedsubsubsec Aligning lyrics to a melody
quotes or use a @code{_} character. Alternatively, you can use
code the tilde symbol (@code{~}) to get a lyric tie. The lyric
tie is implemented with the Unicode character U+203F, so be
-sure to have a font (like DejaVuLGC) installed that includes this
-glyph.
+sure to use a font for this glyph which actually contains it.
+Freely available fonts with a lyric tie are, for example,
+`FreeSerif' (a Times clone), `DejaVuSans' (but not
+`DejaVuSerif'), or `TeXGyreSchola' (a Century Schoolbook
+clone).
@lilypond[quote,ragged-right,verbatim]
{
It is possible to have ties, slurs and manual beams in the melody
without their indicating melismata. To do this, set
-@code{melismaBusyProperties} and indicate the melismata with single
-underscores in the lyrics, one underscore for each extra note:
+@code{melismaBusyProperties}:
@lilypond[relative=1,verbatim,quote]
<<
\time 3/4
\set melismaBusyProperties = #'()
c4 d ( e )
- g8 [ f ] f4( e)
- d e ~ e
+ g8 [ f ] f4 ~ f
}
\new Lyrics \lyricsto "melody" {
- Ky -- _ _ _ _ ri -- _ _ e __ _
+ Ky -- ri -- e e -- le -- i -- son
}
>>
@end lilypond
Other settings for @code{melismaBusyProperties} can be used to
-include or exclude ties, slurs, and beams from the automatic
-detection of melismata; see @code{melismaBusyProperties} in
-@rinternals{Tunable context properties}.
+selectively include or exclude ties, slurs, and beams from the
+automatic detection of melismata; see @code{melismaBusyProperties}
+in @rinternals{Tunable context properties}.
+
+Alternatively, if all melismata indications are to be ignored,
+@code{ignoreMelismata} may be set true;
+see @ref{Stanzas with different rhythms}.
+
+If a melisma is required during a passage in which
+@code{melismaBusyProperties} is active, it may be indicated by
+placing a single underscore in the lyrics for each note which
+should be included in the melisma:
+
+@lilypond[relative=1,verbatim,quote]
+<<
+ \new Voice = "melody" {
+ \time 3/4
+ \set melismaBusyProperties = #'()
+ c4 d ( e )
+ g8 [ f ] ~ f4 ~ f
+ }
+ \new Lyrics \lyricsto "melody" {
+ Ky -- ri -- _ e __ _ _ _
+ }
+>>
+@end lilypond
+
@predefined
Notation Reference:
@ref{Aligning lyrics to a melody},
@ref{Automatic syllable durations},
-@ref{Setting automatic beam behavior}.
+@ref{Setting automatic beam behavior},
+@ref{Stanzas with different rhythms}.
Internals Reference:
@rinternals{Tunable context properties}.
Extender lines under melismata are not created automatically; they
must be inserted manually with a double underscore.
-@node Skipping notes
-@unnumberedsubsubsec Skipping notes
-
-Making a lyric line run slower than the melody can be achieved by
-inserting @code{\skip}s into the lyrics. For every @code{\skip},
-the text will be delayed by another note. The @code{\skip} command
-must be followed by a valid duration, but this is ignored when
-@code{\skip} is used in lyrics which derive their durations from the
-notes in an associated melody through @code{\addlyrics} or
-@code{\lyricsto}.
-
-@lilypond[verbatim,ragged-right,quote]
-\relative c' { c c g' }
-\addlyrics {
- twin -- \skip 4
- kle
-}
-@end lilypond
-
@node Extenders and hyphens
@unnumberedsubsubsec Extenders and hyphens
@end lilypond
Lyrics may be positioned above the staff using one of
-two methods. The simplest is to use the same syntax as
-above and explicitly specify the position of the lyrics:
+two methods. The simplest (and preferred) method
+is to use the same syntax as above and explicitly
+specify the position of the lyrics:
@lilypond[quote,verbatim]
\score {
@lilypond[quote,verbatim]
\score {
<<
- \new Lyrics = "lyrics"
+ \new Lyrics = "lyrics" \with {
+ % lyrics above a staff should have this override
+ \override VerticalAxisGroup #'staff-affinity = #DOWN
+ }
\new Staff {
\new Voice = "melody" {
\relative c'' { c4 c c c }
}
}
\new Lyrics = "sopranos"
- \new Lyrics = "contraltos"
+ \new Lyrics = "contraltos" \with {
+ % lyrics above a staff should have this override
+ \override VerticalAxisGroup #'staff-affinity = #DOWN
+ }
\new Staff {
\new Voice = "contraltos" {
\relative c'' { a4 a a a }
elaborating these examples, or by examining the
@rlearning{Vocal ensembles} templates in the Learning Manual.
+@snippets
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{lyrics-old-spacing-settings.ly}
+
@seealso
Learning Manual:
@rlearning{Vocal ensembles}.
@c TODO: move to LSR -vv
-Checking to make sure that text scripts and lyrics are within the
-margins is a relatively large computational task. To speed up processing,
-LilyPond does not perform such calculations by default; to enable it, use
+Checking to make sure that text scripts and lyrics are within the margins
+required additional calculations. To speed up processing slighty, this
+feature can be disabled:
@example
-\override Score.PaperColumn #'keep-inside-line = ##t
+\override Score.PaperColumn #'keep-inside-line = ##f
@end example
To make lyrics avoid bar lines as well, use
}
@end lilypond
-@cindex lyric skip
-@funindex \skip
-
When the words to a repeated volta section are different, the words
-to each repeat must be entered in separate @code{Lyrics} contexts.
-Earlier unrepeated sections must be skipped in the second and
-subsequent repeats. The easiest way to skip several notes is to
-use @code{\repeat unfold} around the @code{\skip} command.
-
-Note: do not use an underscore, @code{_}, to skip notes in this
-particular case. As this syntax indicates a melisma, it will cause
-the preceding syllable to be left-aligned.
-
-@warning{The @code{@bs{}skip} command must be followed by a number,
-but this number is ignored in lyrics which derive their durations
-from the notes in an associated melody through @code{\addlyrics} or
-@code{\lyricsto}. Each @code{@bs{}skip} skips a single note of any
-value, irrespective of the value of the following number.}
+to each repeat must be entered in separate @code{Lyrics} contexts,
+correctly nested in parallel sections:
@lilypond[verbatim,quote]
\score {
}
}
}
- \new Lyrics {
- \lyricsto "melody" {
- Not re -- peat -- ed.
- The first time words.
- }
- }
- \new Lyrics {
- \lyricsto "melody" {
- % skip 4 notes of any duration
- \repeat unfold 4 { \skip 1 }
- Sec -- ond time words.
- }
+ \new Lyrics \lyricsto "melody" {
+ Not re -- peat -- ed.
+ <<
+ { The first time words. }
+ \new Lyrics {
+ \set associatedVoice = "melody"
+ Sec -- ond time words.
+ }
+ >>
}
>>
}
@end lilypond
-@cindex lyrics, repeating with a temporary voice
+More verses may be added in a similar way:
-An alternative way, which avoids skips and having to count notes,
-is to use a temporary voice for the repeated section. This may be
-preferable if the earlier sections are still subject to change. A
-temporary voice can be inserted anywhere in the main music stream
-in parallel with it, as shown below, but it may be necessary to
-keep the main voice alive in complex scores when using this
-technique; see @ref{Keeping contexts alive}.
-
-@lilypond[verbatim,quote,ragged-right]
+@lilypond[verbatim,quote]
\score {
<<
\new Staff {
\new Voice = "singleVoice" {
- \relative c'' { a4 a a a }
- \new Voice = "repeatVoice" {
- \relative c'' \repeat volta 3 { b4 b b b }
- }
- \relative c'' { c4 c c c }
- }
- }
- \new Lyrics <<
- \lyricsto "singleVoice" {
- Not re -- peat -- ed.
- The end sec -- tion.
- }
- \lyricsto "repeatVoice" {
- The first time words.
- }
- >>
- \new Lyrics {
- \lyricsto "repeatVoice" {
- Sec -- ond time words.
+ \relative c'' {
+ a4 a a a
+ \repeat volta 3 { b4 b b b }
+ c4 c c c
+ }
}
}
- \new Lyrics {
- \lyricsto "repeatVoice" {
- The third time words.
- }
+ \new Lyrics \lyricsto "singleVoice" {
+ Not re -- peat -- ed.
+ <<
+ { The first time words. }
+ \new Lyrics {
+ \set associatedVoice = "singleVoice"
+ Sec -- ond time words.
+ }
+ \new Lyrics {
+ \set associatedVoice = "singleVoice"
+ The third time words.
+ }
+ >>
+ The end sec -- tion.
}
>>
}
@end lilypond
-@c TODO lowering a common line of lyrics
+
+@c TODO positioning a common line of lyrics
@subheading Repeats with alternative endings
}
@end lilypond
+@funindex \skip
+@cindex skipping notes in lyrics
+@cindex lyrics, skipping notes
+
But when the repeated section has different words, a repeat
construct cannot be used around the words and @code{\skip} commands
-have to be inserted manually as described in the previous section to
-skip over the notes in the alternative sections which do not apply.
+have to be inserted manually to skip over the notes in the
+alternative sections which do not apply.
+
+Note: do not use an underscore, @code{_}, to skip notes -- an
+underscore indicates a melisma, causing the preceding syllable
+to be left-aligned.
+
+@warning{The @code{@bs{}skip} command must be followed by a number,
+but this number is ignored in lyrics which derive their durations
+from the notes in an associated melody through @code{\addlyrics} or
+@code{\lyricsto}. Each @code{@bs{}skip} skips a single note of any
+value, irrespective of the value of the following number.}
@lilypond[verbatim,quote,ragged-right]
\score {