-@c -*- coding: latin-1; mode: texinfo; -*-
+@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
@c A menu is needed before every deeper *section nesting of @node's; run
* Vocal music::
* Rhythmic music::
* Guitar::
+* Bagpipe::
* Ancient notation::
* Other instrument specific notation::
@end menu
* Cross staff stems::
@end menu
-@
-refbugs
+@refbugs
Dynamics are not centered, but workarounds do exist. See the
``piano centered dynamics'' template in @ref{Piano templates}.
point), and it looks ahead skipping over rests to switch in
advance. Here is a practical example
-@lilypond[quote,verbatim,raggedright]
-\context PianoStaff
+@lilypond[quote,verbatim,ragged-right]
+\new PianoStaff
\autochange \relative c'
{
g4 a b c d r4 a g
@example
<<
- \context Staff = up @{
+ \new Staff = "up" @{
\skip 1 * 10 % @emph{keep staff alive}
@}
- \context Staff = down @{
+ \new Staff = "down" @{
\skip 1 * 10 % @emph{idem}
@}
>>
and the @context{Voice} is inserted afterwards
@example
-\context Staff = down
+\new Staff = down
\new Voice @{ @dots{} \change Staff = up @dots{} @}
@end example
@code{\treCorde}, @code{\sostenutoDown} and @code{\sostenutoUp} to a
note or chord
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
c'4\sustainDown c'4\sustainUp
@end lilypond
Pedals can also be indicated by a sequence of brackets, by setting the
@code{pedalSustainStyle} property to bracket objects
-@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
\set Staff.pedalSustainStyle = #'bracket
c\sustainDown d e
b\sustainUp\sustainDown
obtained by setting the @code{pedalSustainStyle} property to
@code{mixed}
-@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
\set Staff.pedalSustainStyle = #'mixed
c\sustainDown d e
b\sustainUp\sustainDown
style @code{#'text}. The sostenuto pedal uses @code{mixed} style by
default.
-@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
c\sostenutoDown d e c, f g a\sostenutoUp
@end lilypond
modified. For example, the bracket may be extended to the right edge
of the note head
-@lilypond[quote,raggedright,fragment,verbatim,relative=2]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=2]
\override Staff.PianoPedalBracket #'shorten-pair = #'(0 . -1.0)
c\sostenutoDown d e c, f g a\sostenutoUp
@end lilypond
+@seealso
+
+In this manual: @ref{Laissez vibrer ties}
+
@node Staff switch lines
@subsection Staff switch lines
can be printed automatically. This is switched on by setting
@code{followVoice} to true
-@lilypond[quote,raggedright,fragment,relative=1,verbatim]
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
\new PianoStaff <<
- \context Staff=one {
+ \new Staff="one" {
\set followVoice = ##t
c1
\change Staff=two
b2 a
}
- \context Staff=two { \clef bass \skip 1*2 }
+ \new Staff="two" { \clef bass \skip 1*2 }
>>
@end lilypond
of the stem in the lower staff, so it reaches the stem in the upper
staff, or vice versa.
-@lilypond[raggedright,verbatim,quote]
+@lilypond[ragged-right,verbatim,quote]
stemExtend = \once \override Stem #'length = #22
noFlag = \once \override Stem #'flag-style = #'no-flag
-\context PianoStaff <<
+\new PianoStaff <<
\new Staff {
\stemDown \stemExtend
f'4
pitches, so they can be transposed
-@lilypond[quote,raggedright,verbatim,raggedright]
+@lilypond[quote,ragged-right,verbatim,ragged-right]
twoWays = \transpose c c' {
\chordmode {
c1 f:sus4 bes/f
<f bes d'>
}
-<< \context ChordNames \twoWays
- \context Voice \twoWays >>
+<< \new ChordNames \twoWays
+ \new Voice \twoWays >>
@end lilypond
This example also shows that the chord printing routines do not try to
be intelligent. The last chord (@code{f bes d}) is not interpreted as
an inversion.
+Note that the duration of chords must be specified outside the
+@code{<>}.
+
+@example
+<c e g>2
+@end example
+
@node Chords mode
@subsection Chords mode
names. A chord is entered by the root, which is entered like a
normal pitch
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
\chordmode { es4. d8 c2 }
@end lilypond
Since an unaltered 11 does not sound good when combined with an
unaltered 3, the 11 is removed in this case (unless it is added
explicitly)
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
\chordmode { c:13 c:13.11 c:m13 }
@end lilypond
An inversion (putting one pitch of the chord on the bottom), as well
as bass notes, can be specified by appending
@code{/}@var{pitch} to the chord
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
\chordmode { c1 c/g c/f }
@end lilypond
@cindex @code{/+}
A bass note can be added instead transposed out of the chord,
by using @code{/+}@var{pitch}.
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
\chordmode { c1 c/+g c/+f }
@end lilypond
simply produces the augmented chord, since @code{5+} is interpreted
last
@cindex clusters
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment]
\chordmode { c:5.5-.5+ }
@end lilypond
The chords may be entered either using the notation
described above, or directly using @code{<} and @code{>}
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
harmonies = {
\chordmode {a1 b c} <d' f' a'> <e' g' b'>
}
<<
- \context ChordNames \harmonies
- \context Staff \harmonies
+ \new ChordNames \harmonies
+ \new Staff \harmonies
>>
@end lilypond
display chord names when there is a change in the chords scheme and at
the start of a new line
-@lilypond[quote,verbatim,raggedright]
+@lilypond[quote,verbatim,ragged-right]
harmonies = \chordmode {
c1:m c:m \break c:m c:m d
}
<<
- \context ChordNames {
+ \new ChordNames {
\set chordChanges = ##t
\harmonies }
- \context Staff \transpose c c' \harmonies
+ \new Staff \transpose c c' \harmonies
>>
@end lilypond
to add @internalsref{Volta_engraver} and @internalsref{Bar_engraver}
for showing repeats.
-@lilypond[raggedright,verbatim]
+@lilypond[ragged-right,verbatim]
\new ChordNames \with {
\override BarLine #'bar-size = #4
voltaOnThisStaff = ##t
\consists Bar_engraver
\consists "Volta_engraver"
}
-\repeat volta 2 \chordmode {
+\chordmode { \repeat volta 2 {
f1:maj f:7 bes:7
c:maj
} \alternative {
es e
}
+}
@end lilypond
Different parts of a chord name are normally separated by a
slash. By setting @code{chordNameSeparator}, you can specify other
separators, e.g.,
-@lilypond[quote,raggedright,fragment,verbatim]
-\context ChordNames \chordmode {
+@lilypond[quote,ragged-right,fragment,verbatim]
+\new ChordNames \chordmode {
c:7sus4
\set chordNameSeparator
= \markup { \typewriter "|" }
set these variables. The effect is
demonstrated here,
-@lilypondfile[raggedright]{chord-names-languages.ly}
+@lilypondfile[ragged-right]{chord-names-languages.ly}
There are also two other chord name schemes implemented: an alternate
Jazz chord notation, and a systematic scheme called Banter chords. The
@node Vocal music
@section Vocal music
-There are three different issues when printing vocal music
+Since LilyPond input files are text, there are two issues to
+consider when working with vocal music:
@itemize @bullet
@item
input@tie{}@code{d} should be interpreted as a one letter syllable, not the
note@tie{}D.
-@item
-Song texts must be printed as text, not as notes.
-
@item
Song texts must be aligned with the notes of their melody.
@end itemize
-The simplest solution for printing music uses the @code{\addlyrics}
-function to solve all these problems at once. However, these
-three functions can be controlled separately, which is necessary
-for complex vocal music.
-
+There are a few different ways to define lyrics; the simplest
+way is to use the @code{\addlyrics} function.
@menu
* Setting simple songs::
* Entering lyrics::
* Hyphens and extenders::
* The Lyrics context::
-* Flexibility in alignment::
-* More stanzas::
+* Melismata::
+* Another way of entering lyrics::
+* Flexibility in placement::
+* Spacing lyrics::
+* More about stanzas::
* Ambitus::
* Other vocal issues::
@end menu
+
+@commonprop
+
+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 barlines as well, use
+@example
+\layout @{
+ \context @{
+ \Lyrics
+ \consists "Bar_engraver"
+ \consists "Separating_line_group_engraver"
+ \override BarLine #'transparent = ##t
+ @}
+@}
+@end example
+
+
@node Setting simple songs
@subsection Setting simple songs
@noindent
to a melody. Here is an example,
-@lilypond[raggedright,verbatim,fragment,quote]
+@lilypond[ragged-right,verbatim,fragment,quote]
\time 3/4
\relative { c2 e4 g2. }
\addlyrics { play the game }
More stanzas can be added by adding more
@code{\addlyrics} sections
-@lilypond[raggedright,verbatim,fragment,quote]
+@lilypond[ragged-right,verbatim,fragment,quote]
\time 3/4
\relative { c2 e4 g2. }
\addlyrics { play the game }
\addlyrics { joue le jeu }
@end lilypond
-@c TODO - this isn't such a great place for this note, but I can't
-@c find a better place without rearranging a lot of lyric stuff.
-@c It's yet another thing to look at post-3.0.
+The command @code{\addlyrics} cannot handle polyphony settings. For these
+cases you should use @code{\lyricsto} and @code{\lyricmode}.
-The @code{\addlyrics} command is actually just a convienient way
-to write a more complicated LilyPond structure that sets up the
-lyrics. You should use @code{\addlyrics} unless you need to do
-fancy things, in which case you should investigate
-@code{\lyricsto} or @code{\lyricmode}.
-
-@example
-@{ MUSIC @}
-\addlyrics @{ LYRICS @}
-@end example
-
-@noindent
-is the same as
-
-@example
-\context Voice = blah @{ music @}
-\lyricsto "blah" \new lyrics @{ LYRICS @}
-@end example
-
-@refbugs
-
-@code{\addlyrics} cannot handle polyphony.
@node Entering lyrics
\lyricmode @{ Twin-4 kle4 twin- kle litt- le star2 @}
@end example
-There is a difference between @code{\addlyrics} and
-@code{\lyricmode}. @code{\addlyrics} and @code{\lyricsto}
-ignore all durations and aligns syllables to notes; @code{\lyricmode}
-uses the durations specified.
+There are two main methods to specify the horizontal placement
+of the syllables, either by specifying the duration of each syllable
+explicitly, like in the example above, or by automatically aligning
+the lyrics to a melody or other voice of music, using @code{\addlyrics}
+or @code{\lyricsto}. For more details see @ref{The Lyrics context}.
-A word lyrics mode begins with an alphabetic character, and ends with
+A word or syllable of lyrics begins with an alphabetic character, and ends
+with
any space or digit. The following characters can be any character
that is not a digit or white space. One important consequence of this
is that a word can end with @code{@}}. The following example is
-usually a mistake in the input file. The syllable includes a @code{@}}, so the
+usually a mistake in the input file. The syllable includes a @code{@}}, so
+the
opening brace is not balanced
@example
\lyricmode @{ twinkle@}
@cindex spaces, in lyrics
@cindex quotes, in lyrics
-Any @code{_} character that appears in an unquoted word is converted
-to a space. This provides a mechanism for introducing spaces into words
-without using quotes. Quoted words can also be used in Lyrics mode to
-specify words that cannot be written with the above rules. The
-following example incorporates double quotes
+In order to assign more than one syllable to a single note, you must
+surround them with quotes or use a @code{_} character between the syllables.
-@example
-\lyricmode @{ He said: "\"Let" my peo ple "go\"" @}
-@end example
+@lilypond[quote,relative=2,ragged-right,fragment,verbatim]
+\time 3/4
+\relative { c2 e4 g2 e4 }
+\addlyrics { gran- de_a- mi- go }
+\addlyrics { pu- "ro y ho-" nes- to }
+@end lilypond
+
+To enter lyrics with characters from non-English languages, or with
+non-ascii 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.
-This example is slightly academic, since it gives better looking
-results using single quotes, @code{``} and @code{''}
@example
-\lyricmode @{ He said: ``Let my peo ple go'' @}
+\lyricmode @{ He said: “Let my peo ple go”. @}
@end example
+To use normal quotes in lyrics, add a backslash before the
+quotes. For example,
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\relative c' { \time 3/4 e4 e4. e8 d4 e d c2. }
+\addlyrics { "\"I" am so lone- "ly\"" said she }
+@end lilypond
The full definition of a word start in Lyrics mode is somewhat more
complex.
@code{"}, or @code{^}.
-
@seealso
-Program reference: @internalsref{LyricText}.
+Program reference: @internalsref{LyricText}, @internalsref{LyricSpace}.
-@refbugs
-The definition of lyrics mode is too complex.
@node Hyphens and extenders
@subsection Hyphens and extenders
next one. Such a line is called an extender line, and it is entered as
`@code{__}'.
-In tighly engraved music, hyphens can be removed. In some languages
-(e.g. German and Hungarian), hyphens should not disappear, since
-spelling depends on hyphenation. For that purpose, hyphens can be
-forced to remain by overriding @code{minimum-length} of
-the @code{LyricHyphen} grob.
-
-@lilypond[quote,verbatim,raggedright]
-\score {
-<<
- \new Staff \relative c'' {
- \time 1/4 c16 c c c c16 c c c c16 c c c
- } % closes notes
- \lyricmode { \new Lyrics
- \with {
- \override SeparationItem #'padding = #0.0
- % Otherwise lyrics are so far apart that hyphens don't disappear
- } % closes with
- {
- An -- ti -- cons -- ti --
- tu -- tion -- nel -- le --
- \override LyricHyphen #'minimum-length = #0.7
- \override LyricHyphen #'spacing-procedure =
- #Hyphen_spanner::set_spacing_rods
- men -- taire -- ment. ouf~!
- } % closes lyrics
- } %closes lyricmode
->>
-\layout {
- indent = 0.0 \cm
- linewidth = 3.4 \cm
- \context {
- \Staff \remove "Time_signature_engraver"
- } % closes context
-} % closes layout
-} % closes score
-@end lilypond
+In tighly engraved music, hyphens can be removed. Whether this
+happens can be controlled with the @code{minimum-distance} (minimum
+distance between two syllables) and the @code{minimum-length}
+(threshold below which hyphens are removed).
@seealso
@node The Lyrics context
@subsection The Lyrics context
+Lyrics are printed by interpreting them in the context caleld
+@internalsref{Lyrics}.
-Lyrics are printed by interpreting them in a @internalsref{Lyrics} context
@example
-\context Lyrics \lyricmode @dots{}
+\new Lyrics \lyricmode @dots{}
@end example
@cindex automatic syllable durations
automatically. In this case, it is no longer necessary to enter the
correct duration for each syllable. This is achieved by combining the
melody and the lyrics with the @code{\lyricsto} expression
+
@example
-\lyricsto @var{name} \new Lyrics @dots{}
+\new Lyrics \lyricsto @var{name} @dots{}
@end example
This aligns the lyrics to the
@code{\lyricsto} switches to @code{\lyricmode} mode automatically, so the
@code{\lyricmode} keyword may be omitted.
+The following example uses different commands for entering lyrics.
+
+@lilypond[quote,fragment,ragged-right,verbatim]
+<<
+ \new Voice = "one" \relative c'' {
+ \autoBeamOff
+ \time 2/4
+ c4 b8. a16 g4. f8 e4 d c2
+ }
+ \new Lyrics \lyricmode { Joy4 to8. the16 world!4. the8 Lord4 is come.2 }
+ \new Lyrics \lyricmode { Joy to the earth! the Sav -- our reigns. }
+ \new Lyrics \lyricsto "one" { No more let sins and sor -- rows grow. }
+>>
+@end lilypond
+
+The second stanza is not properly aligned because the durations
+were not specified. A solution for that would be to use @code{\lyricsto}.
+
+
+
+
+
+
+To define indentifiers containing lyrics, the function @code{lyricmode}
+must be used.
+
+@example
+verseOne = \lyricmode @{ Joy to the world the Lord is come @}
+\score @{
+ <<
+ \new Voice = "one" \relative c'' @{
+ \autoBeamOff
+ \time 2/4
+ c4 b8. a16 g4. f8 e4 d c2
+ @}
+ \addlyrics @{ \verseOne @}
+ >>
+@}
+@end example
+
+The @code{\addlyrics} command is actually just a convenient way
+to write a more complicated LilyPond structure that sets up the
+lyrics.
+
+@example
+@{ MUSIC @}
+\addlyrics @{ LYRICS @}
+@end example
+
+@noindent
+is the same as
+
+@example
+\new Voice = "blah" @{ music @}
+\new Lyrics \lyricsto "blah" @{ LYRICS @}
+@end example
+
For different or more complex orderings, the best way is to setup the
hierarchy of staves and lyrics first, e.g.,
@example
-\context ChoirStaff <<
- \context Lyrics = sopranoLyrics @{ s1 @}
- \context Voice = soprano @{ @emph{music} @}
- \context Lyrics = tenorLyrics @{ s1 @}
- \context Voice = tenor @{ @emph{music} @}
+\new ChoirStaff <<
+ \new Voice = "soprano" @{ @emph{music} @}
+ \new Lyrics = "sopranoLyrics" @{ s1 @}
+ \new Lyrics = "tenorLyrics" @{ s1 @}
+ \new Voice = "tenor" @{ @emph{music} @}
>>
@end example
+
and then combine the appropriate melodies and lyric lines
+
@example
-\lyricsto "soprano" \context Lyrics = sopranoLyrics
+\context Lyrics = sopranoLyrics \lyricsto "soprano"
@emph{the lyrics}
@end example
The final input would resemble
@example
-<<\context ChoirStaff << @emph{setup the music} >>
+<<\new ChoirStaff << @emph{setup the music} >>
\lyricsto "soprano" @emph{etc}
\lyricsto "alto" @emph{etc}
@emph{etc}
>>
@end example
+@seealso
+
+Program reference: @internalsref{LyricCombineMusic},
+@internalsref{Lyrics}.
+
+
+@node Melismata
+@subsection Melismata
The @code{\lyricsto} command detects melismata: it only puts one
syllable under a tied or slurred group of notes. If you want to force
after the first note of the group, and @code{\melismaEnd} after the
last one, e.g.,
-@lilypond[quote,relative=2,raggedright,fragment,verbatim]
+@lilypond[quote,relative=2,ragged-right,fragment,verbatim]
<<
- \context Voice = "lala" {
+ \new Voice = "lala" {
\time 3/4
f4 g8
\melisma
\melismaEnd
e2
}
- \lyricsto "lala" \new Lyrics {
+ \new Lyrics \lyricsto "lala" {
la di __ daah
}
>>
beamed, and automatic beaming (see @ref{Setting automatic beam
behavior}) is switched off.
-@ignore
+@cindex SATB
+@cindex choral score
-@c nonformation:
+A complete example of a SATB score setup is in section
+@ref{Vocal ensembles}.
-The criteria for deciding melismata can
-be tuned with the property @code{melismaBusyProperties}. See
-@internalsref{Melisma_translator} in the program reference for more
-information.
-@end ignore
+@refcommands
+
+@code{\melisma}, @code{\melismaEnd}
+@cindex @code{\melismaEnd}
+@cindex @code{\melisma}
+
+@seealso
+
+Program reference: @internalsref{Melisma_translator}.
+
+
+@inputfileref{input/@/regression,lyric@/-combine@/-new@/.ly}.
+
+@refbugs
+
+Melismata are not detected automatically, and extender lines must be
+inserted by hand.
+
+
+@node Another way of entering lyrics
+@subsection Another way of entering lyrics
Lyrics can also be entered without @code{\lyricsto}. In this case the
duration of each syllable must be entered explicitly, for example,
Here is an example demonstrating manual lyric durations,
-@lilypond[relative=1,raggedright,verbatim,fragment,quote]
-<< \context Voice = melody {
+@lilypond[relative=1,ragged-right,verbatim,fragment,quote]
+<< \new Voice = "melody" {
\time 3/4
c2 e4 g2.
}
} >>
@end lilypond
-@cindex SATB
-@cindex choral score
-
-A complete example of a SATB score setup is in section
-@ref{Vocal ensembles}.
-
-
-@refcommands
-
-@code{\melisma}, @code{\melismaEnd}
-@cindex @code{\melismaEnd}
-@cindex @code{\melisma}
-
-@seealso
-
-Program reference: @internalsref{LyricCombineMusic},
-@internalsref{Lyrics}, @internalsref{Melisma_translator}.
-
-
-@inputfileref{input/@/regression,lyric@/-combine@/-new@/.ly}.
-@c TODO: make separate section for melismata
-
-@refbugs
-
-Melismata are not detected automatically, and extender lines must be
-inserted by hand.
-
@c TODO: document \new Staff << Voice \lyricsto >> bug
-@node Flexibility in alignment
-@subsection Flexibility in alignment
-
+@node Flexibility in placement
+@subsection Flexibility in placement
Often, different stanzas of one song are put to one melody in slightly
differing ways. Such variations can still be captured with
@code{\lyricsto}.
+@menu
+* Lyrics to multiple notes of a melisma::
+* Divisi lyrics::
+* Switching the melody associated with a lyrics line::
+* Specifying melismata within the lyrics::
+@end menu
+
+@node Lyrics to multiple notes of a melisma
+@subsubsection Lyrics to multiple notes of a melisma
+
+
One possibility is that the text has a melisma in one stanza, but
multiple syllables in another one. One solution is to make the faster
voice ignore the melisma. This is done by setting
@code{ignoreMelismata} in the Lyrics context.
-There has one tricky aspect. The setting for @code{ignoreMelismata}
+There is one tricky aspect: the setting for @code{ignoreMelismata}
must be set one syllable @emph{before} the non-melismatic syllable
in the text, as shown here,
-@lilypond[verbatim,raggedright,quote]
+@lilypond[verbatim,ragged-right,quote]
<<
- \relative \context Voice = "lahlah" {
+ \relative \new Voice = "lahlah" {
\set Staff.autoBeaming = ##f
c4
\slurDotted
lyrics. For every @code{\skip}, the text will be delayed another note.
For example,
-@lilypond[verbatim,raggedright,quote]
+@lilypond[verbatim,ragged-right,quote]
\relative { c c g' }
\addlyrics {
twin -- \skip 4
}
@end lilypond
+
+@node Divisi lyrics
+@subsubsection Divisi lyrics
+
+You can display alternate (or divisi) lyrics by naming voice
+contexts and attaching lyrics to those specific contexts.
+
+@lilypond[verbatim,ragged-right,quote]
+\score{ <<
+ \new Voice = "melody" {
+ \relative c' {
+ c4
+ <<
+ { \voiceOne c8 e }
+ \new Voice = "splitpart" { \voiceTwo c4 }
+ >>
+ \oneVoice c4 c | c
+ }
+ }
+ \new Lyrics \lyricsto "melody" { we shall not o- ver- come }
+ \new Lyrics \lyricsto "splitpart" { will }
+>> }
+@end lilypond
+
+
+You can use this trick to display different lyrics for a repeated
+section.
+
+@lilypond[verbatim,ragged-right,quote]
+\score{ <<
+ \new Voice = "melody" \relative c' {
+ c2 e | g e | c1 |
+ \new Voice = "verse" \repeat volta 2 {c4 d e f | g1 | }
+ a2 b | c1}
+ \new Lyrics = "mainlyrics" \lyricsto melody \lyricmode {
+ do mi sol mi do
+ la si do }
+ \context Lyrics = "mainlyrics" \lyricsto verse \lyricmode {
+ do re mi fa sol }
+ \new Lyrics = "repeatlyrics" \lyricsto verse \lyricmode {
+ dodo rere mimi fafa solsol }
+>>
+}
+@end lilypond
+
+
+
+@node Switching the melody associated with a lyrics line
+@subsubsection Switching the melody associated with a lyrics line
+
More complex variations in text underlay are possible. It is possible
to switch the melody for a line of lyrics during the text. This is
done by setting the @code{associatedVoice} property. In the example
-@lilypond[raggedright,quote]
+@lilypond[ragged-right,quote]
<<
- \relative \context Voice = "lahlah" {
+ \relative \new Voice = "lahlah" {
\set Staff.autoBeaming = ##f
c4
<<
- \context Voice = alternative {
+ \new Voice = "alternative" {
\voiceOne
\times 2/3 {
% show associations clearly.
@code{lahlah} to @code{associatedVoice}.
+@node Specifying melismata within the lyrics
+@subsubsection Specifying melismata within the lyrics
+
+It is also possible to define melismata entirely in the lyrics. This
+can be done by entering @code{_} for every note that is part of the
+melisma.
+
+@lilypond[relative=1,verbatim,fragment]
+{ \set melismaBusyProperties = #'()
+ c d( e) f f( e) e e }
+\addlyrics
+ { Ky -- _ _ ri __ _ _ _ e }
+@end lilypond
+
+In this case, you can also have ties and slurs in the melody, if you
+set @code{melismaBusyProperties}, as is done in the example above.
+
+@lilypond[relative=1,verbatim,fragment]
+{
+ \set melismaBusyProperties = #'()
+ c d( e) f f( e) e e
+}
+\addlyrics
+ { Ky -- _ _ ri __ _ _ _ e }
+@end lilypond
+
+
+@node Spacing lyrics
+@subsection Spacing lyrics
+
+@cindex Spacing lyrics
+@cindex Lyrics, increasing space between
+
+To increase the spacing between lyrics, set the minimum-distance property of
+LyricSpace.
+@lilypond[relative,verbatim,fragment,quote,ragged-right]
+{
+ c c c c
+ \override Lyrics.LyricSpace #'minimum-distance = #1.0
+ c c c c
+}
+\addlyrics {
+ longtext longtext longtext longtext
+ longtext longtext longtext longtext
+}
+@end lilypond
-@node More stanzas
-@subsection More stanzas
+To make this change for all lyrics in the score, set the property in the
+layout.
+
+@lilypond[relative,verbatim,quote,ragged-right]
+\score {
+ {
+ c c c c
+ c c c c
+ }
+ \addlyrics {
+ longtext longtext longtext longtext
+ longtext longtext longtext longtext
+ }
+ \layout {
+ \context {
+ \Lyrics
+ \override LyricSpace #'minimum-distance = #1.0
+ }
+ }
+}
+@end lilypond
+
+
+@node More about stanzas
+@subsection More about stanzas
@cindex phrasing, in lyrics
Stanza numbers can be added by setting @code{stanza}, e.g.,
-@lilypond[quote,raggedright,verbatim,relative=2,fragment]
+@lilypond[quote,ragged-right,verbatim,relative=2,fragment]
\new Voice {
\time 3/4 g2 e4 a2 f4 g2.
} \addlyrics {
These numbers are put just before the start of first syllable.
+Sometimes it is appropriate to have one stanza set
+to the music, and the rest added in verse form at
+the end of the piece. This can be accomplished by adding
+the extra verses into a @code{\markup} section outside
+of the main score block. Notice that there are two
+different ways to force linebreaks when using
+@code{\markup}.
+
+@lilypond[ragged-right,verbatim,quote]
+melody = \relative c' {
+e d c d | e e e e |
+d d e d | c1 |
+}
+
+text = \lyricmode {
+\set stanza = "1." Ma- ry had a lit- tle lamb,
+its fleece was white as snow.
+}
+
+\book{
+ \score{ <<
+ \new Voice = "one" { \melody }
+ \new Lyrics \lyricsto "one" \text
+ >>
+ \layout { }
+ }
+ \markup { \column{
+ \line{ Verse 2. }
+ \line{ All the children laughed and played }
+ \line{ To see a lamb at school. }
+ }
+ }
+ \markup{
+ \wordwrap-string #"
+ Verse 3.
+
+ Mary took it home again,
+
+ It was against the rule."
+ }
+}
+@end lilypond
+
+
Names of singers can also be added. They are printed at the start of
the line, just like instrument names. They are created by setting
@code{vocalName}. A short version may be entered as @code{vocNam}.
-@lilypond[fragment,raggedright,quote,verbatim,relative=2]
+@lilypond[fragment,ragged-right,quote,verbatim,relative=2]
\new Voice {
\time 3/4 g2 e4 a2 f4 g2.
} \addlyrics {
}
@end lilypond
-You can display alternate (or divisi) lyrics by naming voice
-contexts and attaching lyrics to those specific contexts.
-
-@lilypond[verbatim,raggedright,quote]
-\score{ <<
- \context Voice = "melody" {
- \relative c' {
- c4
- <<
- { \voiceOne c8 e }
- \context Voice = splitpart { \voiceTwo c4 }
- >>
- \oneVoice c4 c | c
- }
- }
- \new Lyrics \lyricsto "melody" { we shall not o- ver- come }
- \new Lyrics \lyricsto "splitpart" { will }
->> }
-@end lilypond
-
-
-You can use this trick to display different lyrics for a repeated
-section.
-
-@lilypond[verbatim,raggedright,quote]
-\score{ <<
- \context Voice = melody \relative c' {
- c2 e | g e | c1 |
- \context Voice = verse \repeat volta 2 {c4 d e f | g1 | }
- a2 b | c1}
- \lyricsto melody \context Lyrics = mainlyrics \lyricmode {
- do mi sol mi do
- la si do }
- \lyricsto verse \context Lyrics = mainlyrics \lyricmode {
- do re mi fa sol }
- \lyricsto verse \context Lyrics = repeatlyrics \lyricmode {
- dodo rere mimi fafa solsol }
->>
-}
-@end lilypond
-
@seealso
-Program reference: @internalsref{LyricText}, @internalsref{StanzaNumber}, @internalsref{VocalName}.
+Program reference: @internalsref{LyricText}, @internalsref{StanzaNumber},
+@internalsref{VocalName}.
This results in the following output
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\layout {
\context {
\Staff
@internalsref{Ambitus_engraver} to the @internalsref{Staff} context
rather than to the @internalsref{Voice} context. Here is an example,
-@lilypond[verbatim,raggedright,quote]
+@lilypond[verbatim,ragged-right,quote]
\new Staff \with {
\consists "Ambitus_engraver"
}
\new Voice \with {
\remove "Ambitus_engraver"
} \relative c'' {
- \override Ambitus #'X-offset-callbacks
- = #(list (lambda (grob axis) -1.0))
+ \override Ambitus #'X-offset = #-1.0
\voiceOne
c4 a d e f2
}
This example uses one advanced feature,
@example
-\override Ambitus #'X-offset-callbacks
- = #(list (lambda (grob axis) -1.0))
+\override Ambitus #'X-offset = #-1.0
@end example
@noindent
@ref{Special noteheads}.
+
+
+
@node Rhythmic music
@section Rhythmic music
can be done with the rhythmic staff. All pitches of notes on such a
staff are squashed, and the staff itself has a single line
-@lilypond[quote,raggedright,fragment,relative=1,verbatim]
-\context RhythmicStaff {
+@lilypond[quote,ragged-right,fragment,relative=1,verbatim]
+\new RhythmicStaff {
\time 4/4
c4 e8 f g2 | r4 g r2 | g1:32 | r1 |
}
percussion has a full name and an abbreviated name, and both can be used
in input files
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
\drums {
hihat hh bassdrum bd
}
To typeset the music, the notes must be interpreted in a
@internalsref{DrumStaff} and @internalsref{DrumVoice} contexts
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat }
down = \drummode { bassdrum4 snare8 bd r bd sn4 }
\new DrumStaff <<
polyphonic notation, described in @ref{Polyphony}, can also be used if
the @internalsref{DrumVoice}s are instantiated by hand first. For example,
-@lilypond[quote,raggedright,fragment,verbatim]
+@lilypond[quote,ragged-right,fragment,verbatim]
\new DrumStaff <<
- \context DrumVoice = "1" { s1 *2 }
- \context DrumVoice = "2" { s1 *2 }
+ \new DrumVoice = "1" { s1 *2 }
+ \new DrumVoice = "2" { s1 *2 }
\drummode {
bd4 sn4 bd4 sn4
<<
@item drums-style
This is the default. It typesets a typical drum kit on a five-line staff
-@lilypond[quote,linewidth=10.0\cm]
+@lilypond[quote,line-width=10.0\cm]
nam = \lyricmode {
cymc cyms cymr hh hhc hho hhho hhp
cb hc bd sn ss tomh tommh tomml toml tomfh tomfl }
\remove Time_signature_engraver
\override Stem #'transparent = ##t
\override Stem #'Y-extent-callback = ##f
- minimumVerticalExtent = #'(-4.0 . 5.0)
+ \override VerticalAxisGroup #'minimum-Y-extent = #'(-4.0 . 5.0)
} \mus
- \context Lyrics \nam
+ \new Lyrics \nam
>>
\layout {
\context {
@item timbales-style
This typesets timbales on a two line staff
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
nam = \lyricmode { timh ssh timl ssl cb }
mus = \drummode { timh ssh timl ssl cb s16 }
<<
- \context DrumStaff \with {
+ \new DrumStaff \with {
\remove Bar_engraver
\remove Time_signature_engraver
\override Stem #'transparent = ##t
\override Stem #'Y-extent-callback = ##f
\override StaffSymbol #'line-count = #2
\override StaffSymbol #'staff-space = #2
- minimumVerticalExtent = #'(-3.0 . 4.0)
+ \override VerticalAxisGroup #'minimum-Y-extent = #'(-3.0 . 4.0)
drumStyleTable = #timbales-style
} \mus
- \context Lyrics {
+ \new Lyrics {
\override LyricText #'font-family = #'typewriter
\nam
}
@item congas-style
This typesets congas on a two line staff
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
nam = \lyricmode { cgh cgho cghm ssh cgl cglo cglm ssl }
mus = \drummode { cgh cgho cghm ssh cgl cglo cglm ssl s16 }
<<
- \context DrumStaff \with {
+ \new DrumStaff \with {
\remove Bar_engraver
\remove Time_signature_engraver
drumStyleTable = #congas-style
\override Stem #'transparent = ##t
\override Stem #'Y-extent-callback = ##f
} \mus
- \context Lyrics {
+ \new Lyrics {
\override LyricText #'font-family = #'typewriter
\nam
}
@item bongos-style
This typesets bongos on a two line staff
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
nam = \lyricmode { boh boho bohm ssh bol bolo bolm ssl }
mus = \drummode { boh boho bohm ssh bol bolo bolm ssl s16 }
<<
- \context DrumStaff\with {
+ \new DrumStaff \with {
\remove Bar_engraver
\remove Time_signature_engraver
\override StaffSymbol #'line-count = #2
\override Stem #'transparent = ##t
\override Stem #'Y-extent-callback = ##f
} \mus
- \context Lyrics {
+ \new Lyrics {
\override LyricText #'font-family = #'typewriter
\nam
}
@item percussion-style
To typeset all kinds of simple percussion on one line staves.
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
nam = \lyricmode { tri trio trim gui guis guil cb cl tamb cab mar hc }
mus = \drummode { tri trio trim gui guis guil cb cl tamb cab mar hc s16 }
<<
- \context DrumStaff\with{
+ \new DrumStaff \with{
\remove Bar_engraver
drumStyleTable = #percussion-style
\override StaffSymbol #'line-count = #1
\override Stem #'transparent = ##t
\override Stem #'Y-extent-callback = ##f
} \mus
- \context Lyrics {
+ \new Lyrics {
\override LyricText #'font-family = #'typewriter
\nam
}
If you do not like any of the predefined lists you can define your own
list at the top of your file
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
#(define mydrums '(
(bassdrum default #f -1)
(snare default #f 0)
* String number indications::
* Tablatures basic::
* Non-guitar tablatures::
+* Banjo tablatures::
* Fret diagrams::
* Other guitar issues::
@end menu
String numbers can be added to chords, by indicating the string number
with @code{\}@var{number},
-@lilypond[relative,relative=1,raggedright,fragment]
+@lilypond[relative,relative=1,ragged-right,fragment]
<c\1 e\2 g\3>
@end lilypond
are printed as tablature, by using @internalsref{TabStaff} and
@internalsref{TabVoice} contexts
-@lilypond[quote,raggedright,fragment,verbatim]
-\context TabStaff {
+@lilypond[quote,ragged-right,fragment,verbatim]
+\new TabStaff {
a,4\5 c'\2 a\3 e'\1
e\4 c'\2 a\3 e'\1
}
\set TabStaff.minimumFret = #8
e16 fis gis a b4
@end example
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
frag = {
\key e \major
e16 fis gis a b4
\set TabStaff.minimumFret = #8
e16 fis gis a b4
}
- \context StaffGroup <<
- \context Staff { \clef "G_8" \frag }
- \context TabStaff { \frag }
+ \new StaffGroup <<
+ \new Staff { \clef "G_8" \frag }
+ \new TabStaff { \frag }
>>
@end lilypond
+
+@commonprop
+
+To print tablatures with stems down and horizontal beams,
+initialize the @code{TabStaff} with this code:
+
+@example
+\stemDown
+\override Beam #'damping = #100000
+@end example
+
@seealso
Program reference: @internalsref{TabStaff}, @internalsref{TabVoice}.
@subsection Non-guitar tablatures
@cindex Non-guitar tablatures
-You can change the number of strings, by setting the number of lines
-in the @internalsref{TabStaff}.
-
You can change the tuning of the strings. A string tuning is given as
a Scheme list with one integer number for each string, the number
being the pitch (measured in semitones relative to middle C) of an
open string. The numbers specified for @code{stringTuning} are the
numbers of semitones to subtract or add, starting the specified pitch
-by default middle C, in string order. In the next example,
+by default middle C, in string order. LilyPond automatically calculates
+the number of strings by looking at @code{stringTuning}.
+
+In the next example,
@code{stringTunings} is set for the pitches e, a, d, and g
-@lilypond[quote,raggedright,fragment,verbatim]
-\context TabStaff <<
+@lilypond[quote,ragged-right,fragment,verbatim]
+\new TabStaff <<
\set TabStaff.stringTunings = #'(-5 -10 -15 -20)
{
a,4 c' a e' e c' a e'
>>
@end lilypond
+LilyPond comes with predefined string tunings for banjo, mandolin, guitar
+and bass guitar.
+
+@example
+\set TabStaff.stringTunings = #bass-tuning
+@end example
+
+The default string tuning is @code{guitar-tuning} (the standard EADGBE
+tuning).
+Some other predefined tunings are @code{guitar-open-g-tuning},
+@code{mandolin-tuning} and @code{banjo-open-g-tuning}.
+
+@seealso
+
+The file @file{scm/@/output@/-lib@/.scm} contains the predefined string
+tunings.
+Program reference: @internalsref{Tab_note_heads_engraver}.
+
@refbugs
No guitar special effects have been implemented.
+
+
+@node Banjo tablatures
+@subsection Banjo tablatures
+@cindex Banjo tablatures
+
+LilyPond has basic support for five stringed banjo. When making tablatures
+for five stringed banjo, use the banjo tablature format function to get
+correct
+fret numbers for the fifth string:
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\new TabStaff <<
+ \set TabStaff.tablatureFormat = #fret-number-tablature-format-banjo
+ \set TabStaff.stringTunings = #banjo-open-g-tuning
+ {
+ \stemDown
+ g8 d' g'\5 a b g e d' |
+ g4 d''8\5 b' a'\2 g'\5 e'\2 d' |
+ g4
+ }
+>>
+@end lilypond
+
+A number of common tunings for banjo are predefined in LilyPond:
+@code{banjo-c-tuning} (gCGBD), @code{banjo-modal-tuning} (gDGCD),
+@code{banjo-open-d-tuning} (aDF#AD) and @code{banjo-open-dm-tuning}
+(aDFAD).
+
+These tunings may be converted to four string banjo tunings using the
+@code{four-string-banjo} function:
+
+@example
+\set TabStaff.stringTunings = #(four-string-banjo banjo-c-tuning)
+@end example
+
@seealso
-Program reference: @internalsref{Tab_note_heads_engraver}.
+The file @file{scm/@/output@/-lib@/.scm} contains predefined banjo tunings.
@node Fret diagrams
markup contains information about the desired fret diagram, as shown in the
following example
-@lilypond[verbatim, raggedright, quote]
-\context Voice {
+@lilypond[verbatim, ragged-right, quote]
+\new Voice {
d'^\markup \fret-diagram #"6-x;5-x;4-o;3-2;2-3;1-2;"
d' d' d'
fis'^\markup \override #'(size . 0.75) {
This example demonstrates how to include guitar position and
barring indications.
-@lilypond[quote,raggedright,fragment,verbatim,relative=0]
+@lilypond[quote,ragged-right,fragment,verbatim,relative=0]
\clef "G_8"
b16 d16 g16 b16 e16
\textSpannerDown
demonstrated in @ref{Special noteheads}.
+@node Bagpipe
+@section Bagpipe
+
+@cindex Bagpipe
+
+@menu
+* Bagpipe definitions::
+* Bagpipe example::
+@end menu
+
+
+@node Bagpipe definitions
+@subsection Bagpipe definitions
+
+LilyPond contains special definitions for music for the Scottish
+highland bagpipe; to use them, add
+
+@example
+\include "bagpipe.ly"
+@end example
+
+@noindent
+at the top of your input file. This lets you add the special gracenotes
+common to bagpipe music with short commands. For example, you could
+write @code{\taor} instead of
+
+@example
+\grace @{ \small G32[ d G e] @}
+@end example
+
+@code{bagpipe.ly} also contains pitch definitions for the bagpipe
+notes in the appropiate octaves, so you do not need to worry about
+@code{\relative} or @code{\transpose}.
+
+@lilypond[ragged-right,verbatim,quote,notime]
+\include "bagpipe.ly"
+{ \grg G4 \grg a \grg b \grg c \grg d \grg e \grg f \grA g A }
+@end lilypond
+
+Bagpipe music nominally uses the key of D Major (even though that
+isn't really true). However, since that is the only key that can be used,
+the key signature is normally not written out. To set this up correctly,
+always start your music with @code{\hideKeySignature}. If you for some
+reason want to show the key signature, you can use @code{\showKeySignature}
+instead.
+
+Some modern music use cross fingering on c and f to flatten those notes.
+This can be indicated by @code{cflat} or @code{fflat}. Similarly, the
+piobaireachd high g can be written @code{gflat} when it occurs in light
+music.
+
+
+@node Bagpipe example
+@subsection Bagpipe example
+
+This is what the well known tune Amazing Grace looks like in bagpipe
+notation.
+
+@lilypond[verbatim,quote]
+\include "bagpipe.ly"
+\layout {
+ indent = 0.0\cm
+ \context { \Score \remove "Bar_number_engraver" }
+}
+
+\header {
+ title = "Amazing Grace"
+ meter = "Hymn"
+ arranger = "Trad. arr."
+}
+
+{
+ \hideKeySignature
+ \time 3/4
+ \grg \partial 4 a8. d16
+ \slurd d2 \grg f8[ e32 d16.]
+ \grg f2 \grg f8 e
+ \thrwd d2 \grg b4
+ \grG a2 \grg a8. d16
+ \slurd d2 \grg f8[ e32 d16.]
+ \grg f2 \grg e8. f16
+ \dblA A2 \grg A4
+ \grg A2 f8. A16
+ \grg A2 \hdblf f8[ e32 d16.]
+ \grg f2 \grg f8 e
+ \thrwd d2 \grg b4
+ \grG a2 \grg a8. d16
+ \slurd d2 \grg f8[ e32 d16.]
+ \grg f2 e4
+ \thrwd d2.
+ \slurd d2
+ \bar "|."
+}
+@end lilypond
+
+
@node Ancient notation
@section Ancient notation
The following example demonstrates the @code{neomensural} style
-@lilypond[quote,fragment,raggedright,verbatim]
+@lilypond[quote,fragment,ragged-right,verbatim]
\set Score.skipBars = ##t
\override NoteHead #'style = #'neomensural
a'\longa a'\breve a'1 a'2 a'4 a'8 a'16
select ancient accidentals. Supported styles are
@code{mensural}, @code{vaticana}, @code{hufnagel}, and @code{medicaea}.
-@lilypond[quote,raggedright,staffsize=26]
+@lilypond[quote,ragged-right,staffsize=26]
\score {
{
\fatText
\remove "Key_engraver"
\remove "Time_signature_engraver"
\remove "Staff_symbol_engraver"
- minimumVerticalExtent = ##f
+ \override VerticalAxisGroup #'minimum-Y-extent = ##f
}
}
}
The following example demonstrates the @code{neomensural} style
-@lilypond[quote,fragment,raggedright,verbatim]
+@lilypond[quote,fragment,ragged-right,verbatim]
\set Score.skipBars = ##t
\override Rest #'style = #'neomensural
r\longa r\breve r1 r2 r4 r8 r16
@seealso
-In this manual: @ref{Rests} gives a general introduction into the use of rests.
+In this manual: @ref{Rests} gives a general introduction into the use of
+rests.
@node Ancient clefs
select ancient flags. Besides the @code{default} flag style,
only the @code{mensural} style is supported
-@lilypond[quote,fragment,raggedright,verbatim]
+@lilypond[quote,fragment,ragged-right,verbatim]
\override Stem #'flag-style = #'mensural
\override Stem #'thickness = #1.0
\override NoteHead #'style = #'mensural
command, @code{n} and @code{m} have to be chosen according to the
following table
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\layout {
indent = 0.0
\context {
{
\set Score.timing = ##f
\set Score.barAlways = ##t
- s_\markup { "\\time 4/4" }^\markup { " " \musicglyph #"timesig.neomensural44" }
+ s_\markup { "\\time 4/4" }^\markup { " " \musicglyph
+#"timesig.neomensural44" }
s
- s_\markup { "\\time 2/2" }^\markup { " " \musicglyph #"timesig.neomensural22" }
+ s_\markup { "\\time 2/2" }^\markup { " " \musicglyph
+#"timesig.neomensural22" }
s
- s_\markup { "\\time 6/4" }^\markup { " " \musicglyph #"timesig.neomensural64" }
+ s_\markup { "\\time 6/4" }^\markup { " " \musicglyph
+#"timesig.neomensural64" }
s
- s_\markup { "\\time 6/8" }^\markup { " " \musicglyph #"timesig.neomensural68" }
+ s_\markup { "\\time 6/8" }^\markup { " " \musicglyph
+#"timesig.neomensural68" }
\break
- s_\markup { "\\time 3/2" }^\markup { " " \musicglyph #"timesig.neomensural32" }
+ s_\markup { "\\time 3/2" }^\markup { " " \musicglyph
+#"timesig.neomensural32" }
s
- s_\markup { "\\time 3/4" }^\markup { " " \musicglyph #"timesig.neomensural34" }
+ s_\markup { "\\time 3/4" }^\markup { " " \musicglyph
+#"timesig.neomensural34" }
s
- s_\markup { "\\time 9/4" }^\markup { " " \musicglyph #"timesig.neomensural94" }
+ s_\markup { "\\time 9/4" }^\markup { " " \musicglyph
+#"timesig.neomensural94" }
s
- s_\markup { "\\time 9/8" }^\markup { " " \musicglyph #"timesig.neomensural98" }
+ s_\markup { "\\time 9/8" }^\markup { " " \musicglyph
+#"timesig.neomensural98" }
\break
- s_\markup { "\\time 4/8" }^\markup { " " \musicglyph #"timesig.neomensural48" }
+ s_\markup { "\\time 4/8" }^\markup { " " \musicglyph
+#"timesig.neomensural48" }
s
- s_\markup { "\\time 2/4" }^\markup { " " \musicglyph #"timesig.neomensural24" }
+ s_\markup { "\\time 2/4" }^\markup { " " \musicglyph
+#"timesig.neomensural24" }
}
@end lilypond
The following examples show the differences in style,
-@lilypond[raggedright,fragment,relative=1,quote]
+@lilypond[ragged-right,fragment,relative=1,quote]
{
\fatText
provided. These are specifically designed for use with notation in
Editio Vaticana style.
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
\include "gregorian-init.ly"
\score {
- \context VaticanaVoice {
+ \new VaticanaVoice {
\override Staff.StaffSymbol #'color = #red
\override Staff.LedgerLineSpanner #'color = #red
\override TextScript #'font-family = #'typewriter
The result looks like this
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\score {
{
a'1
supported are @code{vaticana}, @code{medicaea}, @code{hufnagel}, and
@code{mensural}. They are demonstrated in the following fragment
-@lilypond[quote,raggedright,fragment]
+@lilypond[quote,ragged-right,fragment]
\new Lyrics \lyricmode {
\markup { \column {
\typewriter "vaticana"
Therefore, @file{gregorian@/-init@/.ly} also defines @code{\virgula} and
@code{\caesura}
-@lilypondfile[quote,raggedright]{divisiones.ly}
+@lilypondfile[quote,ragged-right]{divisiones.ly}
@refcommands
@internalsref{LigatureBracket} engraver just puts a square bracket
above the ligature
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
\transpose c c' {
\[ g c a f d' \]
a g f
s4
\[ e'1 a g\breve \]
@end example
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\score {
\transpose c c' {
\set Score.timing = ##f
@internalsref{Mensural_ligature_engraver}, the same music transcribes
to the following
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\transpose c c' {
\set Score.timing = ##f
\set Score.defaultBarType = "empty"
@item
@code{1. Punctum}
@tab
-@lilypond[staffsize=26,linewidth=1.5\cm]
+@lilypond[staffsize=26,line-width=1.5\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=2.5\cm]
+@lilypond[staffsize=26,line-width=2.5\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{2. Virga}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{3. Apostropha vel Stropha}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{4. Oriscus}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{5. Clivis vel Flexa}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=2.0\cm]
+@lilypond[staffsize=26,line-width=2.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{6. Podatus vel Pes}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=2.0\cm]
+@lilypond[staffsize=26,line-width=2.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{7. Pes Quassus}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{8. Quilisma Pes}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{9. Podatus Initio Debilis}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{10. Torculus}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{11. Torculus Initio Debilis}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{12. Porrectus}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{13. Climacus}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{14. Scandicus}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{15. Salicus}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
\layout { \neumeDemoLayout }}
@end lilypond
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@item
@code{16. Trigonus}
@tab
-@lilypond[staffsize=26,linewidth=1.0\cm]
+@lilypond[staffsize=26,line-width=1.0\cm]
\include "gregorian-init.ly"
\score {
\transpose c c' {
@code{\[ \stropha b \stropha b \stropha a \]}
@end multitable
+The ligatures listed above mainly serve as a limited, but still
+representative pool of Gregorian ligature examples. Virtually, within
+the ligature delimiters @code{\[} and @code{\]}, any number of heads
+may be accumulated to form a single ligature, and head prefixes like
+@code{\pes}, @code{\flexa}, @code{\virga}, @code{\inclinatum},
+etc. may be mixed in as desired. The use of the set of rules that
+underlies the construction of the ligatures in the above table is
+accordingly extrapolated. This way, infinitely many different
+ligatures can be created.
+
+@c TODO: create a regression or tips & tricks example document with
+@c even more Gregorian ligatures, and add a link to this document
+@c here.
+
@refcommands
The following head prefixes are supported
@cindex @code{\quilisma}
@code{\quilisma},
@cindex @code{\deminutum}
-@code{\deminutum}.
+@code{\deminutum},
+@cindex @code{\cavum}
+@code{\cavum},
+@cindex @code{\linea}
+@code{\linea}.
Head prefixes can be accumulated, though restrictions apply. For
example, either @code{\descendens} or @code{\ascendens} can be applied
proper values, so you can immediately go ahead entering the chant, as
the following excerpt demonstrates
-@lilypond[quote,raggedright,packed,verbatim]
+@lilypond[quote,ragged-right,packed,verbatim]
\include "gregorian-init.ly"
\score {
<<
- \context VaticanaVoice = "cantus" {
+ \new VaticanaVoice = "cantus" {
\override Staff.StaffSymbol #'color = #red
\override Staff.LedgerLineSpanner #'color = #red
\override Score.BarNumber #'transparent = ##t {
\[ a \flexa \deminutum g\melismaEnd \] f \divisioMinima
}
}
- \lyricsto "cantus" \new Lyrics {
+ \new Lyrics \lyricsto "cantus" {
San- ctus, San- ctus, San- ctus
}
>>
grob properties to proper values, so you can immediately go ahead
entering the chant, as the following excerpt demonstrates
-@lilypond[quote,raggedright,verbatim]
+@lilypond[quote,ragged-right,verbatim]
\score {
<<
- \context MensuralVoice = "discantus" \transpose c c' {
+ \new MensuralVoice = "discantus" \transpose c c' {
\override Score.BarNumber #'transparent = ##t {
c'1\melisma bes a g\melismaEnd
f\breve
fis\longa^\signumcongruentiae
}
}
- \lyricsto "discantus" \new Lyrics {
+ \new Lyrics \lyricsto "discantus" {
San -- ctus, San -- ctus, San -- ctus
}
>>
@c TODO: musicological blurb about FB
-LilyPond has limited support for figured bass
+LilyPond has support for figured bass
-@lilypond[quote,raggedright,verbatim,fragment]
+@lilypond[quote,ragged-right,verbatim,fragment]
<<
- \context Voice { \clef bass dis4 c d ais g fis}
- \context FiguredBass \figuremode {
- < 6 >4 < 7 >8 < 6+ [_!] >
+ \new Voice { \clef bass dis4 c d ais g fis}
+ \new FiguredBass \figuremode {
+ < 6 >4 < 7\+ >8 < 6+ [_!] >
< 6 >4 <6 5 [3+] >
- < _ >4 < 6 >4
+ < _ >4 < 6 5/>4
}
>>
@end lilypond
@example
<4 6>
@end example
-@lilypond[quote,raggedright,fragment]
-\context FiguredBass
+@lilypond[quote,ragged-right,fragment]
+\new FiguredBass
\figuremode { <4 6> }
@end lilypond
Accidentals are added when you append @code{-}, @code{!}, and @code{+}
-to the numbers
+to the numbers. A plus sign is added when you append @code{\+}, and
+diminished fifths and sevenths can be obtained with @code{5/} and @code{7/}.
@example
-<4- 6+ 7!>
+<4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/>
@end example
-@lilypond[quote,raggedright,fragment]
-\context FiguredBass
-\figuremode { <4- 6+ 7!> }
+@lilypond[quote,ragged-right,fragment]
+\figures { <4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/> }
@end lilypond
-Spaces or dashes may be inserted by using @code{_}. Brackets are
+Spaces may be inserted by using @code{_}. Brackets are
introduced with @code{[} and @code{]}. You can also include text
strings and text markups, see @ref{Overview of text markup commands}.
@example
-< [4 6] 8 [_! 12] > < 5 \markup @{ + \number 6 @} >
+< [4 6] 8 [_! 12] > < 5 \markup @{ \number 6 \super (1) @} >
+@end example
+@lilypond[quote,ragged-right,fragment]
+\new FiguredBass
+\figuremode { < [4 6] 8 [_! 12] > < 5 \markup{ \tiny \number 6 \super (1)} > }
+@end lilypond
+
+
+It is also possible to use continuation lines for repeated figures,
+
+@lilypond[verbatim,relative=1]
+<<
+ \new Staff {
+ \clef bass
+ c4 c c
+ }
+ \figures {
+ \set useBassFigureExtenders = ##t
+ <4 6> <3 6> <3 7>
+ }
+>>
+@end lilypond
+
+@noindent
+In this case, the extender lines always replace existing figures.
+
+The @code{FiguredBass} context doesn't pay attention to the actual
+bass line. As a consequence, you may have to insert extra figures to
+get extender lines below all notes, and you may have to add @code{\!}
+to avoid getting an extender line, e.g.
+
+@lilypond[relative=1]
+<<
+ \new Voice
+ \figures {
+ \set useBassFigureExtenders = ##t
+ <6 4->4. <6 4->16. <6 4->32 <5>8. r16 <6>8 <6\! 5->
+ }
+ {
+ \clef bass
+ f16. g32 f16. g32 f16. g32 f16. g32 f8. es16 d8 es
+ }
+>>
+@end lilypond
+
+When using continuation lines, common figures are always put in the
+same vertical position. When this is unwanted, you can insert a rest
+with @code{r}. The rest will clear any previous alignment. For
+example, you can write
+
+@example
+ <4 6>8 r8
+@end example
+
+@noindent
+instead of
+@example
+ <4 6>4
@end example
-@lilypond[quote,raggedright,fragment]
-\context FiguredBass
-\figuremode { < [4 6] 8 [_! 12] > < 5 \markup{ + \number 6 } > }
+
+Accidentals and plus signs can appear before or after the numbers,
+depending on the @code{figuredBassAlterationDirection} and
+@code{figuredBassPlusDirection}
+properties
+
+@lilypond
+ \figures {
+ <6\+> <5+> <6 4-> r
+ \set figuredBassAlterationDirection = #1
+ <6\+> <5+> <6 4-> r
+ \set figuredBassPlusDirection = #1
+ <6\+> <5+> <6 4-> r
+ \set figuredBassAlterationDirection = #-1
+ <6\+> <5+> <6 4-> r
+ }
@end lilypond
Although the support for figured bass may superficially resemble chord
-support, it works much simpler. The @code{\figuremode} mode simply
-stores the numbers and @internalsref{FiguredBass} context prints
-them as entered. There is no conversion to pitches and no
-realizations of the bass are played in the MIDI file.
+support, it is much simpler. The @code{\figuremode} mode simply
+stores the numbers and @internalsref{FiguredBass} context prints them
+as entered. There is no conversion to pitches and no realizations of
+the bass are played in the MIDI file.
Internally, the code produces markup texts. You can use any of the
markup text properties to override formatting. For example, the
@seealso
-Program reference: @internalsref{BassFigure} object,
+Program reference: @internalsref{NewBassFigure},
+@internalsref{BassFigureAlignment}, @internalsref{BassFigureLine},
+@internalsref{BassFigureBracket}, and
+@internalsref{BassFigureContinuation} objects and
@internalsref{FiguredBass} context.
-@refbugs
-
-Slash notation for alterations is not supported.
-
@node Other instrument specific notation
Artificial harmonics are notated with a different notehead style. They
are entered by marking the harmonic pitch with @code{\harmonic}.
-@lilypond[raggedright,verbatim,quote,fragment,relative=1]
+@lilypond[ragged-right,verbatim,quote,fragment,relative=1]
<c g'\harmonic>4
@end lilypond