@c -*- coding: utf-8; mode: texinfo; -*-
@c This file is part of lilypond.tely
+@ignore
+ Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
+
+ When revising a translation, copy the HEAD committish of the
+ version that you are working on. See TRANSLATION for details.
+@end ignore
+
-@c A menu is needed before every deeper *section nesting of @node's; run
+@c A menu is needed before every deeper *section nesting of @node's; run
@c M-x texinfo-all-menus-update
@c to automatically fill in these menus before saving changes
@menu
* Automatic staff changes::
* Manual staff switches::
-* Laissez vibrer ties::
* Pedals::
* Staff switch lines::
* Cross staff stems::
@refbugs
Dynamics are not centered, but workarounds do exist. See the
-``piano centered dynamics'' template in @ref{Piano templates}.
+@q{piano centered dynamics} template in @ref{Piano templates}.
@cindex cross staff stem
@cindex stem, cross staff
@cindex distance between staves in piano music
-The distance between the two staves is the same for all systems in the
-score. It is possible to override this per system, but it does require
-an arcane command incantation. See
-@inputfileref{input/@/test,piano@/-staff@/-distance@/.ly}.
-
@node Automatic staff changes
@subsection Automatic staff changes
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}
@}
>>
@end example
-@node Laissez vibrer ties
-@subsection Laissez vibrer ties
-@cindex Laissez vibrer
-@cindex Ties, laissez vibrer
-
-L.v. ties (laissez vibrer) indicate that notes must not be damped at the
-end. It is used in notation for piano, harp and other string and
-percussion instruments. They can be entered using @code{\laissezVibrer},
-
-@lilypond[fragment,raggedright,verbatim,relative=1]
-<c f g>\laissezVibrer
-@end lilypond
-
-@seealso
-
-Program reference:
-@internalsref{LaissezVibrerTie}
-@internalsref{LaissezVibrerTieColumn}
-
-Example files:
-@inputfileref{input/regression,laissez-vibrer-tie.ly}
-
@node Pedals
@subsection Pedals
@cindex Pedals
@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
b g \sustainUp a \sustainDown \bar "|."
@end lilypond
-The default `*Ped.' style for sustain and damper pedals corresponds to
+The default @q{*Ped.} style for sustain and damper pedals corresponds to
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
@cindex staff switching
@cindex cross staff
-@cindex @code{followVoice}
+@funindex followVoice
Whenever a voice switches to another staff, a line connecting the notes
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
@refcommands
-@cindex @code{\showStaffSwitch}
+@funindex \showStaffSwitch
@code{\showStaffSwitch},
-@cindex @code{\hideStaffSwitch}
+@funindex \hideStaffSwitch
@code{\hideStaffSwitch}.
of the stem in the lower staff, so it reaches the stem in the upper
staff, or vice versa.
-@lilypond[raggedright,verbatim,quote]
-stemExtend = \once \override Stem #'length = #22
+@lilypond[ragged-right,verbatim,quote]
+stemExtend = {
+ \once \override Stem #'length = #10
+ \once \override Stem #'cross-staff = ##t
+}
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
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
@lilypond[quote,fragment,verbatim]
\chordmode { e1:m e1:7 e1:m7 }
@end lilypond
-The first number following the root is taken to be the `type' of the
+The first number following the root is taken to be the @q{type} of the
chord, thirds are added to the root until it reaches the specified
number
@lilypond[quote,fragment,verbatim]
@end lilypond
@cindex modifiers, in chords.
-@cindex @code{aug}
-@cindex @code{dim}
-@cindex @code{maj}
-@cindex @code{sus}
-@cindex @code{m}
+@funindex aug
+@funindex dim
+@funindex maj
+@funindex sus
+@funindex m
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
-@cindex @code{/}
+@funindex /
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{/+}
+@funindex /+
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 {
- f1:maj f:7 bes:7
- c:maj
+\chordmode { \repeat volta 2 {
+ f1:maj7 f:7 bes:7
+ c:maj7
} \alternative {
es e
}
+}
@end lilypond
following properties
@table @code
-@cindex @code{chordNameExceptions}
+@funindex chordNameExceptions
@item chordNameExceptions
This is a list that contains the chords that have special formatting.
@cindex exceptions, chord names.
-@cindex @code{majorSevenSymbol}
+@funindex majorSevenSymbol
@item majorSevenSymbol
This property contains the markup object used for the 7th step, when
it is major. Predefined options are @code{whiteTriangleMarkup} and
@code{blackTriangleMarkup}. See
@inputfileref{input/@/regression,chord@/-name@/-major7@/.ly} for an example.
-@cindex @code{chordNameSeparator}
+@funindex chordNameSeparator
@item chordNameSeparator
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 "|" }
}
@end lilypond
-@cindex @code{chordRootNamer}
+@funindex chordRootNamer
@item chordRootNamer
The root of a chord is usually printed as a letter with an optional
alteration. The transformation from pitch to letter is done by this
-function. Special note names (for example, the German ``H'' for a
+function. Special note names (for example, the German @q{H} for a
B-chord) can be produced by storing a new function in this property.
-@cindex @code{chordNoteNamer}
+@funindex chordNoteNamer
@item chordNoteNamer
The default is to print single pitch, e.g., the bass note, using the
@code{chordRootNamer}. The @code{chordNoteNamer} property can be set
to a specialized function to change this behavior. For example, the
base can be printed in lower case.
-@cindex @code{chordPrefixSpacer}
+@funindex chordPrefixSpacer
@item chordPrefixSpacer
-The ``m'' for minor chords is usually printed right after the root of
-the chord. By setting @code{chordPrefixSpacer}, you can fix a spacer
-between the root and ``m''. The spacer is not used when the root
+The @q{m} for minor chords is usually printed right after the root of
+the chord. By setting @code{chordPrefixSpacer}, you can fix a spacer
+between the root and @q{m}. The spacer is not used when the root
is altered.
@end table
The predefined variables @code{\germanChords},
-@code{\semiGermanChords}, @code{\italianChords} and @code{\frenchChords}
+@code{\semiGermanChords}, @code{\italianChords} and @code{\frenchChords}
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
@refcommands
-@cindex @code{\germanChords}
+@funindex \germanChords
@code{\germanChords},
-@cindex @code{\semiGermanChords}
+@funindex \semiGermanChords
@code{\semiGermanChords}.
-@cindex @code{\italianChords}
+@funindex \italianChords
@code{\italianChords}.
-@cindex @code{\frenchChords}
+@funindex \frenchChords
@code{\frenchChords}.
@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
@subsection Entering lyrics
@cindex lyrics
-@cindex @code{\lyricmode}
+@funindex \lyricmode
@cindex punctuation
Lyrics are entered in a special input mode. This mode is introduced
\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@}
@end example
-@cindex @code{\property}, in @code{\lyricmode}
+@funindex \property in \lyricmode
+
@noindent
Similarly, a period which follows an alphabetic sequence is included in
the resulting string. As a consequence, spaces must be inserted around
\override Score . LyricText #'font-shape = #'italic
@end example
-@cindex @code{_}
+@funindex _
@cindex spaces, in lyrics
@cindex quotes, in lyrics
+@cindex ties, in lyrics
+
+In order to assign more than one syllable to a single note, you can
+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]
+\time 3/4
+\relative { c2 e4 g2 e4 }
+\addlyrics { gran- de_a- mi- go }
+\addlyrics { pu- "ro y ho-" nes- to }
+\addlyrics { pu- ro~y~ho- nes- to }
+@end lilypond
+
+The lyric ties is implemented with the Unicode character U+203F, so be
+sure to have a font (Like DejaVuLGC) installed that includes this
+glyph.
-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.
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.
-@example
-\lyricmode @{ He said: “Let my peo ple go”. @}
-@end example
+@lilypond[quote,ragged-right,fragment,verbatim]
+\relative { e4 f e d e f e2 }
+\addlyrics { He said: “Let my peo ple go”. }
+@end lilypond
+
+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.
combination of a backslash followed by one of @code{`}, @code{'},
@code{"}, or @code{^}.
+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
@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
@cindex hyphens
-Centered hyphens are entered as `@code{--}' between syllables.
+Centered hyphens are entered as @samp{--} between syllables.
The hyphen will have variable length depending on the space between
the syllables and it will be centered between the syllables.
When a lyric is sung over many notes (this is called a melisma), this is
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
-`@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.
+@samp{__}.
-@lilypond[quote,verbatim,raggedright]
-\score {
- <<
- \new Staff \relative c'' {
- \time 1/4 c16 c c c c16 c c c c16 c c c
- }
- \lyricmode { \new Lyrics
- \with {
- \override SeparationItem #'padding = #0.0
- % Otherwise lyrics are so far apart that hyphens don't disappear
- }
- {
- An -- ti -- cons -- ti --
- tu -- tion -- nel -- le --
- \override LyricHyphen #'minimum-length = #0.7
- \override LyricHyphen #'callbacks #'springs-and-rods =
- #Hyphen_spanner::set_spacing_rods
- men -- taire -- ment. ouf~!
- }
- }
- >>
- \layout {
- indent = 0.0 \cm
- linewidth = 3.4 \cm
- \context {
- \Staff \remove "Time_signature_engraver"
- }
- }
-}
-@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 called
+@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
-@cindex @code{\lyricsto}
+@funindex \lyricsto
@cindex lyrics and melodies
This will place the lyrics according to the durations that were
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
-notes of the @internalsref{Voice} context called @var{name}, which has
-to exist. Therefore, normally the @code{Voice} is specified first, and
+notes of the @internalsref{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
@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 Sa -- viour 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}.
+
+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}
+@funindex \melismaEnd
+@funindex \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}.
-@subsubsection Lyrics to multiple notes of a melisma
+@menu
+* Lyrics to multiple notes of a melisma::
+* Divisi lyrics::
+* Switching the melody associated with a lyrics line::
+* Specifying melismata within the lyrics::
+* Lyrics independent of notes::
+@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
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]
+@c FIXME: breaks compile
+@lilypond[verbatim,ragged-right,quote]
+%{
<<
- \relative \context Voice = "lahlah" {
+ \relative \new Voice = "lahlah" {
\set Staff.autoBeaming = ##f
c4
\slurDotted
still
}
>>
+%}
@end lilypond
-The @code{ignoreMelismata} applies to the syllable ``fas'', so it
-should be entered before ``go''.
+The @code{ignoreMelismata} applies to the syllable @q{fas}, so it
+should be entered before @q{go}.
The reverse is also possible: making a lyric line slower than the
standard. This can be achieved by insert @code{\skip}s into the
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
-@subsection Switching the melody associated with a lyrics line
+@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.
@end lilypond
@noindent
-the text for the first stanza is set to a melody called ``lahlah'',
+the text for the first stanza is set to a melody called @q{lahlah},
@example
\new Lyrics \lyricsto "lahlah" @{
The second stanza initially is set to the @code{lahlah} context, but
-for the syllable ``ran'', it switches to a different melody.
+for the syllable @q{ran}, it switches to a different melody.
This is achieved with
@example
\set associatedVoice = alternative
Here, @code{alternative} is the name of the @code{Voice} context
containing the triplet.
-Again, the command must be one syllable too early, before ``Ty'' in
+Again, the command must be one syllable too early, before @q{Ty} in
this case.
@example
@code{lahlah} to @code{associatedVoice}.
-
-@subsection Specifying melismata within the lyrics
+@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.
+melisma.
-@lilypond[relative=1,verbatim,fragment]
+@lilypond[relative=1,verbatim,fragment,quote]
{ \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
+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
+
+@node Lyrics independent of notes
+@subsubsection Lyrics independent of notes
+
+In some complex vocal music, it may be desirable to place
+lyrics completely independently of notes. Music defined
+inside @code{lyricrhythm} disappears into the
+@code{Devnull} context, but the rhythms can still be used
+to place the lyrics.
+
+@lilypond[quote,verbatim,ragged-right]
+voice = {
+ c''2
+ \tag #'music { c''2 }
+ \tag #'lyricrhythm { c''4. c''8 }
+ d''1
}
-\addlyrics
- { Ky -- _ _ ri __ _ _ _ e }
+
+lyr = \lyricmode { I like my cat! }
+
+<<
+ \new Staff \keepWithTag #'music \voice
+ \new Devnull="nowhere" \keepWithTag #'lyricrhythm \voice
+ \new Lyrics \lyricsto "nowhere" \lyr
+ \new Staff { c'8 c' c' c' c' c' c' c'
+ c' c' c' c' c' c' c' c' }
+>>
@end lilypond
-@subsubsection Spacing lyrics
+
+@node Spacing lyrics
+@subsection Spacing lyrics
@cindex Spacing lyrics
@cindex Lyrics, increasing space between
-To increase the space between lyrics, use the @code{SeparationItem}
-property.
+To increase the spacing between lyrics, set the minimum-distance property of
+LyricSpace.
-@lilypond[relative,verbatim,fragment,quote,raggedright]
-{
+@lilypond[relative,verbatim,fragment,quote,ragged-right]
+{
c c c c
- \override Score.SeparationItem #'padding = #5
+ \override Lyrics.LyricSpace #'minimum-distance = #1.0
c c c c
}
\addlyrics {
}
@end lilypond
+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 stanzas
-@subsection More stanzas
-@cindex phrasing, in lyrics
+@node More about stanzas
+@subsection More about stanzas
+@c what's this doing here?
+@cindex phrasing, in lyrics
@cindex stanza number
-@cindex singer's names
-@cindex name of singer
+@subsubsection Adding stanza numbers
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 {
}
@end lilypond
-These numbers are put just before the start of first syllable.
+@noindent
+These numbers are put just before the start of the first syllable.
+
+
+@subsubsection Adding dynamics marks
+
+Stanzas differing in loudness may be indicated by putting a
+dynamics mark before each stanza. In Lilypond, everthing coming in
+front of a stanza goes into the @code{StanzaNumber} object; dynamics marks
+are no different. For technical reasons, you have to set the stanza
+outside @code{\lyricmode}:
+
+@lilypond[quote,ragged-right,verbatim]
+text = {
+ \set stanza = \markup { \dynamic "ff" "1. " }
+ \lyricmode {
+ Big bang
+ }
+}
+
+<<
+ \new Voice = "tune" {
+ \time 3/4
+ g'4 c'2
+ }
+\new Lyrics \lyricsto "tune" \text
+>>
+@end lilypond
+
+@cindex singer name
+@cindex name of singer
+@subsubsection Adding singer names
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}.
+@code{vocalName}. A short version may be entered as @code{shortVocalName}.
-
-@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
+@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
+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. }
}
}
- \new Lyrics \lyricsto "melody" { we shall not o- ver- come }
- \new Lyrics \lyricsto "splitpart" { will }
->> }
+ \markup{
+ \wordwrap-string #"
+ Verse 3.
+
+ Mary took it home again,
+
+ It was against the rule."
+ }
+}
@end lilypond
-You can use this trick to display different lyrics for a repeated
-section.
+@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
+introduces each verse. The following example shows how to produce such
+output in Lilypond.
+
+@lilypond[ragged-right,quote,verbatim]
+melody = \relative c' {
+ c c c c | d d d d
+}
+
+text = \lyricmode {
+ \set stanza = "1." This is verse one.
+ It has two lines.
+}
-@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 }
->>
+ \new Voice = "one" { \melody }
+ \new Lyrics \lyricsto "one" \text
+ >>
+ \layout { }
+}
+
+\markup {
+ \fill-line {
+ \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 {
+ "This is verse two."
+ "It has two lines."
+ }
+ }
+ \hspace #0.1 % adds vertical spacing between verses
+ \line { \bold "3."
+ \column {
+ "This is verse three."
+ "It has two lines."
+ }
+ }
+ }
+ \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 {
+ "This is verse four."
+ "It has two lines."
+ }
+ }
+ \hspace #0.1 % adds vertical spacing between verses
+ \line { \bold "5."
+ \column {
+ "This is verse five."
+ "It has two lines."
+ }
+ }
+ }
+ \hspace #0.1 % gives some extra space on the right margin; can
+ % be removed if page space is tight
+ }
}
@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
examples, and that might get them more involved in the docs. -gp
@end ignore
-``Parlato'' is spoken without pitch but still with rhythm; it is
+@q{Parlato} is spoken without pitch but still with rhythm; it is
notated by cross noteheads. This is demonstrated in
@ref{Special noteheads}.
+
+
+
@node Rhythmic music
@section Rhythmic music
* Showing melody rhythms::
* Entering percussion::
* Percussion staves::
+* Ghost notes::
@end menu
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 <<
@end lilypond
The above example shows verbose polyphonic notation. The short
-polyphonic notation, described in @ref{Polyphony}, can also be used if
+polyphonic notation, described in @ref{Basic 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)
for this purpose instead.
+@c FIXME: check name -gp
+@node Ghost notes
+@subsection Ghost notes
+
+Ghost notes for drums and percussion may be created using the
+@code{\parenthesize} command detailed in @ref{Parentheses}. However,
+the default @code{\drummode} does
+not include the @code{Parenthesis_engraver} plugin which allows
+this. You
+must add the plugin explicitly in the context definition as
+detailed in @ref{Changing context properties on the fly}.
+
+@lilypond[quote,ragged-right,verbatim,fragment]
+\new DrumStaff \with {
+ \consists "Parenthesis_engraver"
+} <<
+ \context DrumVoice = "1" { s1 *2 }
+ \context DrumVoice = "2" { s1 *2 }
+ \drummode {
+ <<
+ {
+ hh8[ hh] <hh sn> hh16
+ < \parenthesize sn > hh < \parenthesize
+ sn > hh8 <hh sn> hh
+ } \\ {
+ bd4 r4 bd8 bd r8 bd
+ }
+ >>
+ }
+>>
+@end lilypond
+
+@noindent
+Also note that you must add chords (@code{< >} brackets)
+around each @code{\parenthesize} statement.
+
@node Guitar
@section Guitar
* String number indications::
* Tablatures basic::
* Non-guitar tablatures::
+* Banjo tablatures::
* Fret diagrams::
+* Right hand fingerings::
* Other guitar issues::
@end menu
@cindex String numbers
String numbers can be added to chords, by indicating the string number
-with @code{\}@var{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
}
@end lilypond
-@cindex @code{minimumFret}
+@funindex minimumFret
@cindex fret
When no string is specified, the first string that does not give a
\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) {
Examples: @inputfileref{input/@/test,fret@/-diagram@/.ly}
+@node Right hand fingerings
+@subsection Right hand fingerings
+
+Right hand fingerings in chords can be entered using
+@code{@var{note}-\rightHandFinger @var{finger}}
+
+@lilypond[verbatim,fragment,relative=2]
+ <c-\rightHandFinger #1 e-\rightHandFinger #2 >
+@end lilypond
+
+for brevity, you can abbreviate @code{\rightHandFinger} to something
+short, for example @code{RH},
+
+@example
+#(define RH rightHandFinger)
+@end example
+
+@cindex fingerings, right hand, for guitar
+@cindex right hand fingerings for guitar
+
+@commonprop
+
+You may exercise greater control over right handing fingerings by
+setting @code{strokeFingerOrientations},
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
+#(define RH rightHandFinger)
+{
+ \set strokeFingerOrientations = #'(up down)
+ <c-\RH #1 es-\RH #2 g-\RH #4 > 4
+ \set strokeFingerOrientations = #'(up right down)
+ <c-\RH #1 es-\RH #2 g-\RH #4 > 4
+}
+@end lilypond
+
+The letters used for the fingerings are contained in the property
+@code{digit-names}, but they can also be set individually by supplying
+@code{\rightHandFinger} with a string argument, as in the following example
+
+
+@lilypond[quote,verbatim,ragged-right,fragment,relative=1]
+#(define RH rightHandFinger)
+{
+ \set strokeFingerOrientations = #'(right)
+ \override StrokeFinger #'digit-names = ##("x" "y" "z" "!" "@")
+ <c-\RH #5 >4
+ <c-\RH "@">4
+}
+@end lilypond
+
+@seealso
+
+Internalls: @internalsref{StrokeFinger}
+
+
+
@node Other guitar issues
@subsection Other guitar issues
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
@end lilypond
-Stopped (X) note heads are used in guitar music to signal a place where the
-guitarist must play a certain note or chord, with its fingers just
-touching the strings instead of fully pressing them. This gives the sound a
+Stopped (X) note heads are used in guitar music to signal a place where the
+guitarist must play a certain note or chord, with its fingers just
+touching the strings instead of fully pressing them. This gives the sound a
percussive noise-like sound that still maintains part of the original
pitch. It is notated with cross noteheads; this is
demonstrated in @ref{Special noteheads}.
notes in the appropiate octaves, so you do not need to worry about
@code{\relative} or @code{\transpose}.
-@lilypond[raggedright,verbatim,quote,notime]
+@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
+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
+piobaireachd high g can be written @code{gflat} when it occurs in light
music.
{
\hideKeySignature
\time 3/4
- \grg \partial 4 a8. d16
+ \grg \partial 4 a8. d16
\slurd d2 \grg f8[ e32 d16.]
\grg f2 \grg f8 e
\thrwd d2 \grg b4
@node Ancient note heads
@subsection Ancient note heads
-@cindex note heads
-
+@cindex note heads, ancient
For ancient notation, a note head style other than the @code{default}
style may be chosen. This is accomplished by setting the @code{style}
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
@cindex accidentals
-Use the @code{style} property of grob @internalsref{Accidental} to
-select ancient accidentals. Supported styles are
-@code{mensural}, @code{vaticana}, @code{hufnagel}, and @code{medicaea}.
+Use the @code{glyph-name-alist} property of grob
+@internalsref{Accidental} and @internalsref{KeySignature} to select
+ancient accidentals.
-@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
}
}
}
@inputfileref{input/@/test,ancient@/-accidentals@/.ly}.
Similarly to local accidentals, the style of the key signature can be
-controlled by the @code{style} property of the
+controlled by the @code{glyph-name-alist} property of the
@internalsref{KeySignature} grob.
@seealso
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
-@emph{Modern style} means ``as is typeset in contemporary editions of
-transcribed mensural music''.
+@emph{Modern style} means @qq{as is typeset in contemporary editions of
+transcribed mensural music.}
-@emph{Petrucci style} means ``inspired by printings published by the
-famous engraver Petrucci (1466-1539)''.
+@emph{Petrucci style} means @qq{inspired by printings published by the
+famous engraver Petrucci (1466-1539).}
-@emph{Historic style} means ``as was typeset or written in historic
-editions (other than those of Petrucci)''.
+@emph{Historic style} means @qq{as was typeset or written in historic
+editions (other than those of Petrucci).}
-@emph{Editio XXX style} means ``as is/was printed in Editio XXX''.
+@emph{Editio XXX style} means @qq{as is/was printed in Editio XXX.}
Petrucci used C clefs with differently balanced left-side vertical
beams, depending on which staff line it is printed.
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 {
- \override Staff.StaffSymbol #'color = #red
- \override Staff.LedgerLineSpanner #'color = #red
+ \new VaticanaVoice {
\override TextScript #'font-family = #'typewriter
\override TextScript #'font-shape = #'upright
\override Script #'padding = #-0.1
- a4\ictus_"ictus" s1
- a4\circulus_"circulus" s1
- a4\semicirculus_"semicirculus" s1 s
- a4\accentus_"accentus" s1
- \[ a4_"episem" \episemInitium \pes b \flexa a \episemFinis \]
+ a\ictus_"ictus" \break
+ a\circulus_"circulus" \break
+ a\semicirculus_"semicirculus" \break
+ a\accentus_"accentus" \break
+ \[ a_"episem" \episemInitium \pes b \flexa a b \episemFinis \flexa a \]
}
}
@end lilypond
Some articulations are vertically placed too closely to the
correpsonding note heads.
+The episem line is not displayed in many cases. If it is displayed,
+the right end of the episem line is often too far to the right.
+
@node Custodes
@subsection Custodes
@cindex custos
@cindex custodes
-A @emph{custos} (plural: @emph{custodes}; Latin word for `guard') is a
+A @emph{custos} (plural: @emph{custodes}; Latin word for @q{guard}) is a
symbol that appears at the end of a staff. It anticipates the pitch
of the first note(s) of the following line thus helping the performer
to manage line breaks during performance.
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"
@cindex finalis
A @emph{divisio} (plural: @emph{divisiones}; Latin word for
-`division') is a staff context symbol that is used to structure
+@q{division}) is a staff context symbol that is used to structure
Gregorian music into phrases and sections. The musical meaning of
@emph{divisio minima}, @emph{divisio maior}, and @emph{divisio maxima}
can be characterized as short, medium, and long pause, somewhat like
Therefore, @file{gregorian@/-init@/.ly} also defines @code{\virgula} and
@code{\caesura}
-@lilypondfile[quote,raggedright]{divisiones.ly}
+@lilypondfile[quote,ragged-right]{divisiones.ly}
@refcommands
-@cindex @code{\virgula}
+@funindex \virgula
@code{\virgula},
-@cindex @code{\caesura}
+@funindex \caesura
@code{\caesura},
-@cindex @code{\divisioMinima}
+@funindex \divisioMinima
@code{\divisioMinima},
-@cindex @code{\divisioMaior}
+@funindex \divisioMaior
@code{\divisioMaior},
-@cindex @code{\divisioMaxima}
+@funindex \divisioMaxima
@code{\divisioMaxima},
-@cindex @code{\finalis}
+@funindex \finalis
@code{\finalis}.
@seealso
@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
Accidentals must not be printed within a ligature, but instead need to
be collected and printed in front of it.
-Augmentum dots within ligatures are not handled correctly.
-
The syntax still uses the deprecated infix style @code{\[ music expr
\]}. For consistency reasons, it will eventually be changed to
postfix style @code{note\[ ... note\]}. Alternatively, the file
\override Staff.TimeSignature #'style = #'neomensural
\clef "petrucci-g"
\[ c'\maxima g \]
-s4
\[ d\longa c\breve f e d \]
-s4
\[ c'\maxima d'\longa \]
-s4
\[ e'1 a g\breve \]
@end example
-@lilypond[quote,raggedright]
+@lilypond[quote,ragged-right]
\score {
\transpose c c' {
\set Score.timing = ##f
\override Staff.TimeSignature #'style = #'neomensural
\clef "petrucci-g"
\[ c'\maxima g \]
- s4
\[ d\longa c\breve f e d \]
- s4
\[ c'\maxima d'\longa \]
- s4
\[ e'1 a g\breve \]
}
\layout {
@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"
\override Staff.TimeSignature #'style = #'neomensural
\clef "petrucci-g"
\[ c'\maxima g \]
- s4
\[ d\longa c\breve f e d \]
- s4
\[ c'\maxima d'\longa \]
- s4
\[ e'1 a g\breve \]
}
@end lilypond
@refbugs
-The invisible rests (@code{s4}) in the example are used to compensate
-for the poor horizontal spacing.
+Horizontal spacing is poor.
@node Gregorian square neumes ligatures
@subsubsection Gregorian square neumes ligatures
@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.
+
+Augmentum dots, also called @emph{morae}, are added with the music
+function @code{\augmentum}. Note that @code{\augmentum} is
+implemented as a unary music function rather than as head prefix. It
+applies to the immediately following music expression only. That is,
+@code{\augmentum \virga c} will have no visible effect. Instead, say
+@code{\virga \augmentum c} or @code{\augmentum @{\virga c@}}. Also
+note that you can say @code{\augmentum @{a g@}} as a shortcut for
+@code{\augmentum a \augmentum g}.
+
+@lilypond[quote,ragged-right,verbatim]
+\include "gregorian-init.ly"
+\score {
+ \new VaticanaVoice {
+ \[ \augmentum a \flexa \augmentum g \]
+ \augmentum g
+ }
+}
+@end lilypond
+
@refcommands
The following head prefixes are supported
-@cindex @code{\virga}
+@funindex \virga
@code{\virga},
-@cindex @code{\stropha}
+@funindex \stropha
@code{\stropha},
-@cindex @code{\inclinatum}
+@funindex \inclinatum
@code{\inclinatum},
-@cindex @code{\auctum}
+@funindex \auctum
@code{\auctum},
-@cindex @code{\descendens}
+@funindex \descendens
@code{\descendens},
-@cindex @code{\ascendens}
+@funindex \ascendens
@code{\ascendens},
-@cindex @code{\oriscus}
+@funindex \oriscus
@code{\oriscus},
-@cindex @code{\quilisma}
+@funindex \quilisma
@code{\quilisma},
-@cindex @code{\deminutum}
-@code{\deminutum}.
+@funindex \deminutum
+@code{\deminutum},
+@funindex \cavum
+@code{\cavum},
+@funindex \linea
+@code{\linea}.
Head prefixes can be accumulated, though restrictions apply. For
example, either @code{\descendens} or @code{\ascendens} can be applied
to a head, but not both to the same head.
-@cindex @code{\pes}
-@cindex @code{\flexa}
+@funindex \pes
+@funindex \flexa
Two adjacent heads can be tied together with the @code{\pes} and
@code{\flexa} infix commands for a rising and falling line of melody,
respectively.
+@funindex \augmentum
+Use the unary music function @code{\augmentum} to add augmentum dots.
+
+@refbugs
+When an @code{\augmentum} dot appears at the end of the last staff
+within a ligature, it is sometimes vertically placed wrong. As a
+workaround, add an additional skip note (e.g. @code{s8}) as last note
+of the staff.
+
+@code{\augmentum} should be implemented as a head prefix rather than a
+unary music function, such that @code{\augmentum} can be intermixed
+with head prefixes in arbitrary order.
@node Gregorian Chant contexts
@subsection Gregorian Chant contexts
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" {
- \override Staff.StaffSymbol #'color = #red
- \override Staff.LedgerLineSpanner #'color = #red
- \override Score.BarNumber #'transparent = ##t {
- \[ c'\melisma c' \flexa a \]
- \[ a \flexa \deminutum g\melismaEnd \]
- f \divisioMinima
- \[ f\melisma \pes a c' c' \pes d'\melismaEnd \]
- c' \divisioMinima \break
- \[ c'\melisma c' \flexa a \]
- \[ a \flexa \deminutum g\melismaEnd \] f \divisioMinima
- }
+ \new VaticanaVoice = "cantus" {
+ \[ c'\melisma c' \flexa a \]
+ \[ a \flexa \deminutum g\melismaEnd \]
+ f \divisioMinima
+ \[ f\melisma \pes a c' c' \pes d'\melismaEnd \]
+ c' \divisioMinima \break
+ \[ c'\melisma c' \flexa a \]
+ \[ 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
}
>>
In European music from before about 1600, singers were often expected
to chromatically alter notes at their own initiative. This is called
-``Musica Ficta''. In modern transcriptions, these accidentals are
+@q{Musica Ficta}. In modern transcriptions, these accidentals are
usually printed over the note.
+@cindex Accidental, musica ficta
@cindex Musica ficta
Support for such suggested accidentals is included, and can be
switched on by setting @code{suggestAccidentals} to true.
-@cindex @code{suggestAccidentals}
+@funindex suggestAccidentals
@lilypond[verbatim,fragment,relative=1]
fis gis
\set suggestAccidentals = ##t
ais bis
-@end lilypond
+@end lilypond
@seealso
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,raggedright,fragment]
-\context FiguredBass
-\figuremode { < [4 6] 8 [_! 12] > < 5 \markup{ + \number 6 } > }
+@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 { c4 c }
+ \new Staff {
+ \clef bass
+ c4 c c
+ }
\figures {
- \set useBassFigureExtenders = ##t
+ \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, eg.
-
+get extender lines below all notes, and you may have to add @code{\!}
+to avoid getting an extender line, e.g.
-@lilypond[verbatim, relative=1]
+@lilypond[relative=1]
<<
- \new Voice
+ \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
- }
- \figures {
- \set useBassFigureExtenders = ##t
- <6 4>4. <6 4>16. <6 4>32 <5 3>8 r
+ 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, you can write
@example
<4 6>8 r8
@end example
@noindent
-instead of
+instead of
@example
<4 6>4
@end example
+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 is much simpler. The @code{\figuremode} mode simply
markup text properties to override formatting. For example, the
vertical spacing of the figures may be set with @code{baseline-skip}.
+
+Figured bass can also be added to @code{Staff} contexts
+directly. In this case, their vertical position is adjusted
+automatically.
+
+@lilypond[ragged-right,fragment,quote]
+<<
+ \new Staff = someUniqueName
+ \relative c'' {
+ c4 c'8 r8 c,4 c'
+ }
+
+ %% send to existing Staff.
+ \context Staff = someUniqueName
+ \figuremode {
+ <4>4 <6 10>8 s8
+
+ \set Staff.useBassFigureExtenders = ##t
+ <4 6>4 <4 6>
+ }
+>>
+@end lilypond
+
+
+@refbugs
+
+When using figured bass above the staff with extender lines and
+@code{implicitBassFigures} the lines may become swapped around.
+Maintaining order consistently will be impossible when multiple figures
+have overlapping extender lines. To avoid this problem, plese
+use @code{stacking-dir} on @code{BassFigureAlignment}.
+
+
@seealso
Program reference: @internalsref{NewBassFigure},
@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