version that you are working on. See TRANSLATION for details.
@end ignore
-@c \version "2.11.38"
+@c \version "2.11.57"
@node Vocal music
@section Vocal music
-Since LilyPond input files are text, there are two issues to
-consider when working with vocal music:
+@c TODO: CLARIFY
+@c TODO: delete this comment block
+@c http://code.google.com/p/lilypond/issues/detail?id=248
+@c Done, see @node Lyrics independent of notes ----FV
+
+@c http://code.google.com/p/lilypond/issues/detail?id=329
+@c Done, see @node Working with lyrics and variables ----FV
+
+@c partially done, needs improvement, see Switching to an alternative melody ----FV
+@ignore
+
+> I think the issue here is that changing the associatedVoice
+> happens one step
+> later than expected. I could be wrong, but I don't think this
+> is obviously
+> documented.
+
+If you read section "Switching the melody associated with a lyrics
+line"
+it indeed says "Again, the command must be one syllable too
+early,..."!
+One problem with the current formulation is that the "Again"
+refers to what's described 2 subsections earlier in "Lyrics to
+multiple notes of a melisma", which isn't obvious unless you have
+read all the sections
+sequentially.
+
+
+@c Done in @node Extenders and hyphens ---FV
+@c also done (duplicated) in @node Multiple notes to one syllable --FV
+I don't know who's working on the vocal music right now, but I
+found something that should be clarified in NR 2.1.2.4.
+
+It should be made clear that __ is used to crate a lyric extender,
+and _ is used to add a note to a melisma, so both __ and _ are
+used. The example shows it, but there is no description of the
+lyrics extender in this section.
+@end ignore
+
+
+Since LilyPond input files are text, there are two issues to consider
+when working with vocal music:
@itemize
@item
-Song texts must be entered as text, not notes. For example, the
-input@tie{}@code{d} should be interpreted as a one letter syllable, not the
-note@tie{}D.
+Song texts must be interpreted as text, not notes. For example, the
+input@tie{}@code{d} should be interpreted as a one letter syllable,
+not the note@tie{}D.
@item
Song texts must be aligned with the notes of their melody.
@end itemize
-There are a few different ways to define lyrics; we shall begin
-by examining the simplest method, and gradually increase complexity.
+To address the first issue, the fundamental method is the special mode
+opened by @code{\lyricmode} that interprets its contents as text.
+This mode is implicit by some abbreviated methods, as we will see.
+
+Aligning of text with melodies can be made automatically, but if you
+specify the durations of the syllables it can also be made manually.
+Lyrics aligning and typesetting are prepared with the help of skips,
+hyphens and extender lines.
+
+All these methods and their combinations lead to a few different ways
+to define lyrics; we shall begin by examining the simplest method, and
+gradually increase complexity.
@menu
* Common notation for vocals::
* Stanzas::
@end menu
-@snippets
-
-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
-
-@example
-\override Score.PaperColumn #'keep-inside-line = ##t
-@end example
-
-To make lyrics avoid bar lines as well, use
-
-@example
-\layout @{
- \context @{
- \Lyrics
- \consists "Bar_engraver"
- \consists "Separating_line_group_engraver"
- \override BarLine #'transparent = ##t
- @}
-@}
-@end example
@node Common notation for vocals
@subsection Common notation for vocals
@lilypond[ragged-right,verbatim,fragment,quote]
\time 3/4
-\relative { c2 e4 g2. }
+\relative c' { c2 e4 g2. }
\addlyrics { play the game }
@end lilypond
@lilypond[ragged-right,verbatim,fragment,quote]
\time 3/4
-\relative { c2 e4 g2. }
+\relative c' { c2 e4 g2. }
\addlyrics { play the game }
\addlyrics { speel het spel }
\addlyrics { joue le jeu }
surround them with quotes or use a @code{_} character, to get spaces
between syllables, or use tilde symbol (@code{~}) to get a lyric tie.
-@lilypond[quote,relative=2,ragged-right,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
\time 3/4
-\relative { c2 e4 g2 e4 }
+\relative c' { c2 e4 g2 e4 }
\addlyrics { gran- de_a- mi- go }
\addlyrics { pu- "ro y ho-" nes- to }
\addlyrics { pu- ro~y~ho- nes- to }
To enter lyrics with characters from non-English languages, or with
accented and special characters (such as the heart symbol or slanted quotes),
simply insert the characters directly into the input file and save
-it with utf-8 encoding. See @ref{Text encoding}, for more info.
-
-FIXME: quotes.
+it with UTF-8 encoding. See @ref{Text encoding}, for more info.
@lilypond[quote,ragged-right,fragment,verbatim]
-\relative { e4 f e d e f e2 }
-\addlyrics { He said: ââ\82¬Å\93Let my peo ple goââ\82¬Â\9d. }
+\relative c' { e4 f e d e f e2 }
+\addlyrics { He said: â\80\9cLet my peo ple goâ\80\9d. }
@end lilypond
To use normal quotes in lyrics, add a backslash before the
@seealso
-Internals Reference: @internalsref{LyricText}, @internalsref{LyricSpace}.
+Internals Reference:
+@rinternals{LyricText},
+@rinternals{LyricSpace}.
@node Working with lyrics and variables
@subsubsection Working with lyrics and variables
>>
@end example
+@ignore
+
+http://code.google.com/p/lilypond/issues/detail?id=329
+The problem cannot be reproduced.
+The following has no sense, because the issue seems to be fixed.
+A comment is in tracker waiting for response ---FV
+
+
+Be careful when defining a variable with lyrics that creates a new
+context, for example, using the deprecated @code{\lyrics} command. See
+the next erroneous example:
+
+@example
+words = \lyrics{ %warning: this creates a new context
+ one two
+}
+<<
+ \new Voice = "sop" { c1 }
+ \new Lyrics \lyricsto "sop" { \words }
+ \new Voice = "alt" { c2 c }
+ \new Lyrics \lyricsto "alt" { \words }
+>>
+@end example
+
+the problem is that \lyricsto will try to connect the "sop" melody with the context
+created by "\new Lyrics".
+
+Then \lyrics in \words creates another context, and the original "\new Lyrics" one
+remains empty.
+
+@end ignore
+
@seealso
@c TODO: document \new Staff << Voice \lyricsto >> bug
-Internals Reference: @internalsref{LyricCombineMusic},
-@internalsref{Lyrics}.
+Internals Reference:
+@rinternals{LyricCombineMusic},
+@rinternals{Lyrics}.
@node Aligning lyrics to a melody
Lyrics are printed by interpreting them in the context called
-@internalsref{Lyrics}.
+@rinternals{Lyrics}.
@example
\new Lyrics \lyricmode @dots{}
@end example
This aligns the lyrics to the
-notes of the @internalsref{Voice} context called @var{name}, which must
+notes of the @rinternals{Voice} context called @var{name}, which must
already exist. Therefore normally the @code{Voice} is specified first, and
then the lyrics are specified with @code{\lyricsto}. The command
@code{\lyricsto} switches to @code{\lyricmode} mode automatically, so the
\time 2/4
c4 b8. a16 g4. f8 e4 d c2
}
+
+% not recommended: left aligns syllables
\new Lyrics \lyricmode { Joy4 to8. the16 world!4. the8 Lord4 is come.2 }
+
+% wrong: durations needed
\new Lyrics \lyricmode { Joy to the earth! the Sa -- viour reigns. }
+
+%correct
\new Lyrics \lyricsto "one" { No more let sins and sor -- rows grow. }
>>
@end lilypond
@noindent
The value of the property (here: @code{"lala"}) should be the name of
-a @internalsref{Voice} context. Without this setting, extender lines
+a @rinternals{Voice} context. Without this setting, extender lines
will not be formatted properly.
Here is an example demonstrating manual lyric durations,
@seealso
-Internals Reference: @internalsref{Lyrics}.
+Internals Reference:
+@rinternals{Lyrics}.
@node Multiple syllables to one note
sure to have a font (Like DejaVuLGC) installed that includes this
glyph.}.
-@lilypond[quote,relative=2,ragged-right,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
\time 3/4
-\relative { c2 e4 g2 e4 }
+\relative c' { c2 e4 g2 e4 }
\addlyrics { gran- de_a- mi- go }
\addlyrics { pu- "ro y ho-" nes- to }
\addlyrics { pu- ro~y~ho- nes- to }
@seealso
-Internals Reference: @internalsref{LyricCombineMusic}.
+Internals Reference:
+@rinternals{LyricCombineMusic}.
@c Here come the section which used to be "Melismata"
@c the new title might be more self-explanatory
@c it might be better to present it first - vv
You can define melismata entirely in the lyrics, by entering @code{_}
-for every note
-that is part of the melisma.
-
+for every extra note that has to be added to the the melisma.
+
+@c verbose! --FV
+@c duplicated: TODO fix
+Additionaly, you can make an extender line to be typeset to indicate
+the melisma in the score, writing a double underscore next to the
+first syllable of the melisma. This example shows the three elements
+that are used for this purpose (all of them surrounded by spaces):
+double hyphens to separate syllables in a word, underscores to add
+notes to a melisma, and a double underscore to put an extender line.
+
+@c wrong: extender line only on last syllable of a word. Change example
@lilypond[relative=1,verbatim,fragment,quote]
{ \set melismaBusyProperties = #'()
c d( e) f f( e) e e }
@seealso
-Internals Reference: @internalsref{Melisma_translator}.
-
@c @lsr{vocal,lyric@/-combine.ly}.
@knownissues
For example,
@lilypond[verbatim,ragged-right,quote]
-\relative { c c g' }
+\relative c' { c c g' }
\addlyrics {
twin -- \skip 4
kle
@cindex extender
@c leave this as samp. -gp
-Melismata are indicated with a horizontal line centered between a syllable
-and the next one. Such a line is called an extender line, and it is entered
-as @samp{ __ } (note the spaces before and after the two underscore
-characters).
+In the last syllable of a word, melismata are sometimes indicated with
+a long horizontal line starting in the melisma syllable, and ending in
+the next one. Such a line is called an extender line, and it is
+entered as @samp{ __ } (note the spaces before and after the two
+underscore characters).
+
+@warning{Melismata are indicated in the score with extender lines,
+which are entered as one double underscore; but short melismata can
+also be entered by skipping individual notes, which are entered as
+single underscore characters; these do not make an extender line to be
+typeset by default.}
@cindex hyphens
@seealso
-Internals Reference: @internalsref{LyricExtender},
-@internalsref{LyricHyphen}
+Internals Reference:
+@rinternals{LyricExtender},
+@rinternals{LyricHyphen}
@node Lyrics and repeats
@subsubsection Lyrics and repeats
@node Lyrics independent of notes
@subsubsection Lyrics independent of notes
+@cindex Devnull context
+
In some complex vocal music, it may be desirable to place
lyrics completely independently of notes. Music defined
inside @code{lyricrhythm} disappears into the
>>
@end lilypond
+This method is recommended only if the music in the @code{Devnull}
+context does not contain melismata. Melismata are defined by the
+@code{Voice} context. Connecting lyrics to a @code{Devnull} context
+makes the voice/lyrics links to get lost, and so does the info on
+melismata. Therefore, if you link lyrics to a @code{Devnull} context,
+the implicit melismata get ignored.
+
+@c Conclusion: do not use devnull for lyrics -FV
+
+@c this clarifies http://code.google.com/p/lilypond/issues/detail?id=248
+
+
@node Chants
@subsubsection Chants
To make this change for all lyrics in the score, set the property in the
layout.
-@lilypond[relative,verbatim,quote,ragged-right]
+@lilypond[verbatim,quote,ragged-right]
\score {
\relative c' {
c c c c
}
@end lilypond
+@snippets
+@lilypondfile[verbatim,lilyquote,ragged-right,texidoc,doctitle]
+{aligning-lyrics.ly}
+
+
+@snippets
+
+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
+
+@example
+\override Score.PaperColumn #'keep-inside-line = ##t
+@end example
+
+To make lyrics avoid bar lines as well, use
+
+@example
+\layout @{
+ \context @{
+ \Lyrics
+ \consists "Bar_engraver"
+ \consists "Separating_line_group_engraver"
+ \override BarLine #'transparent = ##t
+ @}
+@}
+@end example
+
+@c TODO Create and add lsr example of lyricMelismaAlignment
+@c It's used like this to center-align all lyric syllables,
+@c even when notes are tied. -td
+
+@ignore
+\layout
+{
+ \context { \Score lyricMelismaAlignment = #0 }
+}
+@end ignore
+
+
@node Centering lyrics between staves
@subsubsection Centering lyrics between staves
Hi, my name is Bert.
} \addlyrics {
\set stanza = "2. "
- Oh, chÃ\83© -- ri, je t'aime
+ Oh, ché -- ri, je t'aime
}
@end lilypond
+
@noindent
These numbers are put just before the start of the first syllable.
+@c TODO Create and add snippet to show how two lines of a
+@c stanza can be grouped together, along these lines:
+@c (might need improving a bit) -td
+
+@ignore
+leftbrace = \markup { \override #'(font-encoding . fetaBraces) \lookup
+#"brace105" }
+
+stanzaOneOne = {
+ \set stanza = \markup { "1. " \leftbrace }
+ \lyricmode { Child, you're mine and I love you.
+ Lend thine ear to what I say.
+
+ }
+}
+
+stanzaOneThree = {
+% \set stanza = \markup { " "}
+ \lyricmode { Child, I have no great -- er joy
+ Than to have you walk in truth.
+
+ }
+}
+
+\new Voice {
+ \repeat volta 2 { c'8 c' c' c' c' c' c'4
+ c'8 c' c' c' c' c' c'4 }
+} \addlyrics { \stanzaOneOne }
+ \addlyrics { \stanzaOneThree }
+
+@end ignore
@node Adding dynamics marks to stanzas
@subsubsection Adding dynamics marks to stanzas
Hi, my name is Bert.
} \addlyrics {
\set vocalName = "Ernie "
- Oh, che -- ri, je t'aime
+ Oh, ché -- ri, je t'aime
}
@end lilypond
in the text, as shown here,
@c TODO: breaks compile
+@c seems to be fixed, does not break compile anymore --FV
@lilypond[verbatim,ragged-right,quote]
-%{
<<
- \relative \new Voice = "lahlah" {
+ \relative c' \new Voice = "lahlah" {
\set Staff.autoBeaming = ##f
c4
\slurDotted
still
}
>>
-%}
@end lilypond
@lilypond[ragged-right,quote]
<<
- \relative \new Voice = "lahlah" {
+ \relative c' \new Voice = "lahlah" {
\set Staff.autoBeaming = ##f
c4
<<
Here, @code{alternative} is the name of the @code{Voice} context
containing the triplet.
-Again, the command must be one syllable too early, before @q{Ty} in
-this case.
+This command must be one syllable too early, before @q{Ty} in this
+case. In other words, changing the associatedVoice happens one step
+later than expected. This is for technical reasons, and it is not a
+bug.
@example
\new Lyrics \lyricsto "lahlah" @{
@node Printing stanzas at the end
-@subsubsection Printing stanzas at the end
+@subsubsection Printing stanzas at the end
Sometimes it is appropriate to have one stanza set
to the music, and the rest added in verse form at
@end lilypond
-@node Printing stanzas at the end in multiple columns
-@subsubsection Printing stanzas at the end in multiple columns
+@node Printing stanzas at the end in multiple columns
+@subsubsection Printing stanzas at the end in multiple columns
When a piece of music has many verses, they are often printed in
multiple columns across the page. An outdented verse number often
\markup {
\fill-line {
- \hspace #0.1 % moves the column off the left margin; can be removed if
- % space on the page is tight
+ \hspace #0.1 % moves the column off the left margin;
+ % can be removed if space on the page is tight
\column {
\line { \bold "2."
\column {
}
}
}
- \hspace #0.1 % adds horizontal spacing between columns; if they are
- % still too close, add more " " pairs until the result
- % looks good
+ \hspace #0.1 % adds horizontal spacing between columns;
+ % if they are still too close, add more " " pairs
+ % until the result looks good
\column {
\line { \bold "4."
\column {
}
}
}
- \hspace #0.1 % gives some extra space on the right margin; can
- % be removed if page space is tight
+ \hspace #0.1 % gives some extra space on the right margin;
+ % can be removed if page space is tight
}
}
@end lilypond
@seealso
-Internals Reference: @internalsref{LyricText}, @internalsref{StanzaNumber},
-@internalsref{VocalName}.
+Internals Reference:
+@rinternals{LyricText},
+@rinternals{StanzaNumber}.