From f8dca47cb8243442d8f34666ab2a2efb1039c576 Mon Sep 17 00:00:00 2001 From: Graham Percival Date: Wed, 19 Sep 2007 17:16:23 -0700 Subject: [PATCH] More split. --- Documentation/user/ancient.itely | 2189 ++++++++ Documentation/user/chords.itely | 377 ++ Documentation/user/guitar.itely | 342 ++ Documentation/user/instrument-notation.itely | 4693 +----------------- Documentation/user/notation.itely | 16 + Documentation/user/percussion.itely | 315 ++ Documentation/user/piano.itely | 263 + Documentation/user/vocal.itely | 1061 ++++ 8 files changed, 4639 insertions(+), 4617 deletions(-) create mode 100644 Documentation/user/ancient.itely create mode 100644 Documentation/user/chords.itely create mode 100644 Documentation/user/guitar.itely create mode 100644 Documentation/user/percussion.itely create mode 100644 Documentation/user/piano.itely create mode 100644 Documentation/user/vocal.itely diff --git a/Documentation/user/ancient.itely b/Documentation/user/ancient.itely new file mode 100644 index 0000000000..357f1b082b --- /dev/null +++ b/Documentation/user/ancient.itely @@ -0,0 +1,2189 @@ +@c -*- coding: utf-8; mode: texinfo; -*- + +@node Ancient notation +@section Ancient notation + +@cindex Vaticana, Editio +@cindex Medicaea, Editio +@cindex hufnagel +@cindex Petrucci +@cindex mensural + +Support for ancient notation includes features for mensural notation +and Gregorian Chant notation. There is also limited support for +figured bass notation. + +Many graphical objects provide a @code{style} property, see +@itemize @bullet +@item +@ref{Ancient note heads}, +@item +@ref{Ancient accidentals}, +@item +@ref{Ancient rests}, +@item +@ref{Ancient clefs}, +@item +@ref{Ancient flags}, +@item +@ref{Ancient time signatures}. +@end itemize + +By manipulating such a grob property, the typographical appearance of +the affected graphical objects can be accommodated for a specific +notation flavor without the need for introducing any new notational +concept. + +In addition to the standard articulation signs described in section +@ref{Articulations}, specific articulation signs for ancient notation +are provided. + +@itemize @bullet +@item +@ref{Ancient articulations} +@end itemize + +Other aspects of ancient notation can not that easily be expressed +in terms of just changing a style property of a graphical object or +adding articulation signs. Some notational concepts are introduced +specifically for ancient notation, + +@itemize @bullet +@item +@ref{Custodes}, +@item +@ref{Divisiones}, +@item +@ref{Ligatures}. +@end itemize + +If this all is too much of documentation for you, and you just want to +dive into typesetting without worrying too much about the details on +how to customize a context, you may have a look at the predefined +contexts. Use them to set up predefined style-specific voice and +staff contexts, and directly go ahead with the note entry, + +@itemize @bullet +@item +@ref{Gregorian Chant contexts}, +@item +@ref{Mensural contexts}. +@end itemize + +There is limited support for figured bass notation which came +up during the baroque period. + +@itemize @bullet +@item +@ref{Figured bass} +@end itemize + +Here are all subtopics at a glance: + +@menu +* Ancient note heads:: +* Ancient accidentals:: +* Ancient rests:: +* Ancient clefs:: +* Ancient flags:: +* Ancient time signatures:: +* Ancient articulations:: +* Custodes:: +* Divisiones:: +* Ligatures:: +* White mensural ligatures:: +* Gregorian square neumes ligatures:: +* Gregorian Chant contexts:: +* Mensural contexts:: +* Musica ficta accidentals:: +* Figured bass:: +@end menu + + + +@anchor{Ancient note heads} +@unnumberedsubsubsec Ancient 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} +property of the @internalsref{NoteHead} object to @code{baroque}, +@code{neomensural}, @code{mensural} or @code{petrucci}. The +@code{baroque} style differs from the @code{default} style only in +using a square shape for @code{\breve} note heads. The +@code{neomensural} style differs from the @code{baroque} style in that +it uses rhomboidal heads for whole notes and all smaller durations. +Stems are centered on the note heads. This style is particularly +useful when transcribing mensural music, e.g., for the incipit. The +@code{mensural} style produces note heads that mimic the look of note +heads in historic printings of the 16th century. Finally, the +@code{petrucci} style also mimicks historic printings, but uses bigger +note heads. + +The following example demonstrates the @code{neomensural} style + +@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 +@end lilypond + +When typesetting a piece in Gregorian Chant notation, the +@internalsref{Gregorian_ligature_engraver} will automatically select +the proper note heads, so there is no need to explicitly set the +note head style. Still, the note head style can be set, e.g., to +@code{vaticana_punctum} to produce punctum neumes. Similarly, a +@internalsref{Mensural_ligature_engraver} is used to automatically +assemble mensural ligatures. See @ref{Ligatures}, for how ligature +engravers work. + +@seealso + +@ref{Note head styles}, gives an overview over all available note head styles. + + +@anchor{Ancient accidentals} +@unnumberedsubsubsec Ancient accidentals + +@cindex accidentals + + +Use the @code{glyph-name-alist} property of grob +@internalsref{Accidental} and @internalsref{KeySignature} to select +ancient accidentals. + +@lilypond[quote,ragged-right,staffsize=26] +\score { +{ + \fatText + s^\markup { + \column { + "vaticana" + \line { " " \musicglyph #"accidentals.vaticana-1" + " " \musicglyph #"accidentals.vaticana0" } + } + \column { + "medicaea" + \line { " " \musicglyph #"accidentals.medicaea-1" } + } + \column { + "hufnagel" + \line { " " \musicglyph #"accidentals.hufnagel-1" } + } + \column { + "mensural" + \line { " " \musicglyph #"accidentals.mensural-1" + " " \musicglyph #"accidentals.mensural1" } + } + } +} +\layout { + interscoreline = 1 + \context { \Score \remove "Bar_number_engraver" } + \context { \Staff + \remove "Clef_engraver" + \remove "Key_engraver" + \remove "Time_signature_engraver" + \remove "Staff_symbol_engraver" + \override VerticalAxisGroup #'minimum-Y-extent = ##f + } + } +} +@end lilypond + +As shown, not all accidentals are supported by each style. When +trying to access an unsupported accidental, LilyPond will switch to a +different style, as demonstrated in +@lsr{ancient,ancient-accidentals.ly}. + +Similarly to local accidentals, the style of the key signature can be +controlled by the @code{glyph-name-alist} property of the +@internalsref{KeySignature} grob. + +@seealso + +In this manual: @ref{Pitches}, @ref{Cautionary accidentals}, and +@ref{Automatic accidentals}, give a general introduction of the use of +accidentals. @ref{Key signature}, gives a general introduction of +the use of key signatures. + +Program reference: @internalsref{KeySignature}. + +Examples: @lsrdir{ancient} + +@anchor{Ancient rests} +@unnumberedsubsubsec Ancient rests + +@cindex rests, ancient + + +Use the @code{style} property of grob @internalsref{Rest} to select +ancient rests. Supported styles are @code{classical}, +@code{neomensural}, and @code{mensural}. @code{classical} differs +from the @code{default} style only in that the quarter rest looks like +a horizontally mirrored 8th rest. The @code{neomensural} style suits +well for, e.g., the incipit of a transcribed mensural piece of music. +The @code{mensural} style finally mimics the appearance of rests as +in historic prints of the 16th century. + +The following example demonstrates the @code{neomensural} style + +@lilypond[quote,fragment,ragged-right,verbatim] +\set Score.skipBars = ##t +\override Rest #'style = #'neomensural +r\longa r\breve r1 r2 r4 r8 r16 +@end lilypond + +There are no 32th and 64th rests specifically for the mensural or +neo-mensural style. Instead, the rests from the default style will be +taken. See @lsr{pitches,rests} for a chart of all rests. + +There are no rests in Gregorian Chant notation; instead, it uses +@ref{Divisiones}. + +@seealso + +In this manual: @ref{Rests}, gives a general introduction into the use of +rests. + + +@anchor{Ancient clefs} +@unnumberedsubsubsec Ancient clefs + +@cindex clefs + + +LilyPond supports a variety of clefs, many of them ancient. + +The following table shows all ancient clefs that are supported via the +@code{\clef} command. Some of the clefs use the same glyph, but +differ only with respect to the line they are printed on. In such +cases, a trailing number in the name is used to enumerate these clefs. +Still, you can manually force a clef glyph to be typeset on an +arbitrary line, as described in @ref{Clef}. The note printed to the +right side of each clef in the example column denotes the @code{c'} +with respect to that clef. + +@multitable @columnfractions .4 .4 .2 +@item +@b{Description} +@tab +@b{Supported Clefs} +@tab +@b{Example} + +@item +modern style mensural C clef +@tab +@code{neomensural-c1}, @code{neomensural-c2},@* +@code{neomensural-c3}, @code{neomensural-c4} +@tab +@lilypond[fragment,relative=1,notime] + \clef "neomensural-c2" c +@end lilypond + +@item +petrucci style mensural C clefs, for use on different staff lines +(the examples show the 2nd staff line C clef) +@tab +@code{petrucci-c1}, @code{petrucci-c2},@* +@code{petrucci-c3}, @code{petrucci-c4},@* +@code{petrucci-c5} +@tab +@lilypond[fragment,relative=1,notime] + \clef "petrucci-c2" + \override NoteHead #'style = #'mensural + c +@end lilypond + +@item +petrucci style mensural F clef +@tab +@code{petrucci-f} +@tab +@lilypond[fragment,relative=1,notime] + \clef "petrucci-f" + \override NoteHead #'style = #'mensural + c +@end lilypond + +@item +petrucci style mensural G clef +@tab +@code{petrucci-g} +@tab +@lilypond[fragment,relative=1,notime] + \clef "petrucci-g" + \override NoteHead #'style = #'mensural + c +@end lilypond + +@item +historic style mensural C clef +@tab +@code{mensural-c1}, @code{mensural-c2},@* +@code{mensural-c3}, @code{mensural-c4} +@tab +@lilypond[fragment,relative=1,notime] + \clef "mensural-c2" + \override NoteHead #'style = #'mensural + c +@end lilypond + +@item +historic style mensural F clef +@tab +@code{mensural-f} +@tab +@lilypond[fragment,relative=1,notime] + \clef "mensural-f" + \override NoteHead #'style = #'mensural + c +@end lilypond + +@item +historic style mensural G clef +@tab +@code{mensural-g} +@tab +@lilypond[fragment,relative=1,notime] + \clef "mensural-g" + \override NoteHead #'style = #'mensural + c +@end lilypond + +@item +Editio Vaticana style do clef +@tab +@code{vaticana-do1}, @code{vaticana-do2},@* +@code{vaticana-do3} +@tab +@lilypond[fragment,relative=1,notime] + \override Staff.StaffSymbol #'line-count = #4 + \override Staff.StaffSymbol #'color = #red + \override Staff.LedgerLineSpanner #'color = #red + \override Voice.Stem #'transparent = ##t + \override NoteHead #'style = #'vaticana.punctum + \clef "vaticana-do2" + c +@end lilypond + +@item +Editio Vaticana style fa clef +@tab +@code{vaticana-fa1}, @code{vaticana-fa2} +@tab +@lilypond[fragment,relative=1,notime] + \override Staff.StaffSymbol #'line-count = #4 + \override Staff.StaffSymbol #'color = #red + \override Staff.LedgerLineSpanner #'color = #red + \override Voice.Stem #'transparent = ##t + \override NoteHead #'style = #'vaticana.punctum + \clef "vaticana-fa2" + c +@end lilypond + +@item +Editio Medicaea style do clef +@tab +@code{medicaea-do1}, @code{medicaea-do2},@* +@code{medicaea-do3} +@tab +@lilypond[fragment,relative=1,notime] + \override Staff.StaffSymbol #'line-count = #4 + \override Staff.StaffSymbol #'color = #red + \override Staff.LedgerLineSpanner #'color = #red + \override Voice.Stem #'transparent = ##t + \override NoteHead #'style = #'medicaea.punctum + \clef "medicaea-do2" + c +@end lilypond + +@item +Editio Medicaea style fa clef +@tab +@code{medicaea-fa1}, @code{medicaea-fa2} +@tab +@lilypond[fragment,relative=1,notime] + \override Staff.StaffSymbol #'line-count = #4 + \override Staff.StaffSymbol #'color = #red + \override Staff.LedgerLineSpanner #'color = #red + \override Voice.Stem #'transparent = ##t + \override NoteHead #'style = #'medicaea.punctum + \clef "medicaea-fa2" + c +@end lilypond + +@item +historic style hufnagel do clef +@tab +@code{hufnagel-do1}, @code{hufnagel-do2},@* +@code{hufnagel-do3} +@tab +@lilypond[fragment,relative=1,notime] + \override Staff.StaffSymbol #'line-count = #4 + \override Staff.StaffSymbol #'color = #red + \override Staff.LedgerLineSpanner #'color = #red + \override Voice.Stem #'transparent = ##t + \override NoteHead #'style = #'hufnagel.punctum + \clef "hufnagel-do2" + c +@end lilypond + +@item +historic style hufnagel fa clef +@tab +@code{hufnagel-fa1}, @code{hufnagel-fa2} +@tab +@lilypond[fragment,relative=1,notime] + \override Staff.StaffSymbol #'line-count = #4 + \override Staff.StaffSymbol #'color = #red + \override Staff.LedgerLineSpanner #'color = #red + \override Voice.Stem #'transparent = ##t + \override NoteHead #'style = #'hufnagel.punctum + \clef "hufnagel-fa2" + c +@end lilypond + +@item +historic style hufnagel combined do/fa clef +@tab +@code{hufnagel-do-fa} +@tab +@lilypond[fragment,relative=1,notime] + \override Staff.StaffSymbol #'color = #red + \override Staff.LedgerLineSpanner #'color = #red + \override Voice.Stem #'transparent = ##t + \override NoteHead #'style = #'hufnagel.punctum + \clef "hufnagel-do-fa" + c +@end lilypond +@end multitable + + + +@emph{Modern style} means @qq{as is typeset in contemporary editions of +transcribed mensural music.} + +@emph{Petrucci style} means @qq{inspired by printings published by the +famous engraver Petrucci (1466-1539).} + +@emph{Historic style} means @qq{as was typeset or written in historic +editions (other than those of Petrucci).} + +@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. + +@seealso + +In this manual: see @ref{Clef}. + +@refbugs + +The mensural g clef is mapped to the Petrucci g clef. + + + +@anchor{Ancient flags} +@unnumberedsubsubsec Ancient flags + +@cindex flags + + +Use the @code{flag-style} property of grob @internalsref{Stem} to +select ancient flags. Besides the @code{default} flag style, +only the @code{mensural} style is supported + +@lilypond[quote,fragment,ragged-right,verbatim] +\override Stem #'flag-style = #'mensural +\override Stem #'thickness = #1.0 +\override NoteHead #'style = #'mensural +\autoBeamOff +c'8 d'8 e'8 f'8 c'16 d'16 e'16 f'16 c'32 d'32 e'32 f'32 s8 +c''8 d''8 e''8 f''8 c''16 d''16 e''16 f''16 c''32 d''32 e''32 f''32 +@end lilypond + +Note that the innermost flare of each mensural flag always is +vertically aligned with a staff line. + +There is no particular flag style for neo-mensural notation. Hence, +when typesetting the incipit of a transcribed piece of mensural +music, the default flag style should be used. There are no flags in +Gregorian Chant notation. + +@refbugs + +The attachment of ancient flags to stems is slightly off due to a +change in early 2.3.x. + +Vertically aligning each flag with a staff line assumes that stems +always end either exactly on or exactly in the middle between two +staff lines. This may not always be true when using advanced layout +features of classical notation (which however are typically out of +scope for mensural notation). + +@anchor{Ancient time signatures} +@unnumberedsubsubsec Ancient time signatures + +@cindex time signatures + + +There is limited support for mensural time signatures. The +glyphs are hard-wired to particular time fractions. In other words, +to get a particular mensural signature glyph with the @code{\time n/m} +command, @code{n} and @code{m} have to be chosen according to the +following table + +@lilypond[quote,ragged-right] +\layout { + indent = 0.0 + \context { + \Staff + \remove Staff_symbol_engraver + \remove Clef_engraver + \remove Time_signature_engraver + } +} +{ + \set Score.timing = ##f + \set Score.barAlways = ##t + s_\markup { "\\time 4/4" }^\markup { " " \musicglyph +#"timesig.neomensural44" } + s + s_\markup { "\\time 2/2" }^\markup { " " \musicglyph +#"timesig.neomensural22" } + s + s_\markup { "\\time 6/4" }^\markup { " " \musicglyph +#"timesig.neomensural64" } + s + s_\markup { "\\time 6/8" }^\markup { " " \musicglyph +#"timesig.neomensural68" } + \break + s_\markup { "\\time 3/2" }^\markup { " " \musicglyph +#"timesig.neomensural32" } + s + s_\markup { "\\time 3/4" }^\markup { " " \musicglyph +#"timesig.neomensural34" } + s + s_\markup { "\\time 9/4" }^\markup { " " \musicglyph +#"timesig.neomensural94" } + s + s_\markup { "\\time 9/8" }^\markup { " " \musicglyph +#"timesig.neomensural98" } + \break + s_\markup { "\\time 4/8" }^\markup { " " \musicglyph +#"timesig.neomensural48" } + s + s_\markup { "\\time 2/4" }^\markup { " " \musicglyph +#"timesig.neomensural24" } +} +@end lilypond + +Use the @code{style} property of grob @internalsref{TimeSignature} to +select ancient time signatures. Supported styles are +@code{neomensural} and @code{mensural}. The above table uses the +@code{neomensural} style. This style is appropriate for the +incipit of transcriptions of mensural pieces. The @code{mensural} +style mimics the look of historical printings of the 16th century. + +The following examples show the differences in style, + +@lilypond[ragged-right,fragment,relative=1,quote] +{ + \fatText + + \time 2/2 + c1^\markup { \hspace #-2.0 \typewriter default } + + \override Staff.TimeSignature #'style = #'numbered + \time 2/2 + c1^\markup { \hspace #-2.0 \typewriter numbered } + + \override Staff.TimeSignature #'style = #'mensural + \time 2/2 + c1^\markup { \hspace #-2.0 \typewriter mensural } + + \override Staff.TimeSignature #'style = #'neomensural + \time 2/2 + c1^\markup { \hspace #-2.0 \typewriter neomensural } + \override Staff.TimeSignature #'style = #'single-digit + \time 2/2 + c1^\markup { \hspace #-2.0 \typewriter single-digit } +} +@end lilypond + +@seealso + +This manual: @ref{Time signature}, gives a general introduction to +the use of time signatures. + +@refbugs + +Ratios of note durations do not change with the time signature. For +example, the ratio of 1 brevis = 3 semibrevis (tempus perfectum) must +be made by hand, by setting + +@example +breveTP = #(ly:make-duration -1 0 3 2) +@dots{} +@{ c\breveTP f1 @} +@end example + +@noindent +This sets @code{breveTP} to 3/2 times 2 = 3 times a whole note. + +The @code{old6/8alt} symbol (an alternate symbol for 6/8) is not +addressable with @code{\time}. Use a @code{\markup} instead + +@anchor{Ancient articulations} +@unnumberedsubsubsec Ancient articulations + +@cindex articulations + +In addition to the standard articulation signs described in section +@ref{Articulations}, articulation signs for ancient notation are +provided. These are specifically designed for use with notation in +Editio Vaticana style. + +@lilypond[quote,ragged-right,verbatim] +\include "gregorian-init.ly" +\score { + \new VaticanaVoice { + \override TextScript #'font-family = #'typewriter + \override TextScript #'font-shape = #'upright + \override Script #'padding = #-0.1 + 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 + +@refbugs + +Some articulations are vertically placed too closely to the +corresponding 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. + +@anchor{Custodes} +@unnumberedsubsubsec Custodes + +@cindex custos +@cindex custodes + +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. + +Custodes were frequently used in music notation until the 17th +century. Nowadays, they have survived only in a few particular forms +of musical notation such as contemporary editions of Gregorian chant +like the @emph{editio vaticana}. There are different custos glyphs +used in different flavors of notational style. + +For typesetting custodes, just put a @internalsref{Custos_engraver} into the +@internalsref{Staff} context when declaring the @code{\layout} block, +as shown in the following example + +@example +\layout @{ + \context @{ + \Staff + \consists Custos_engraver + Custos \override #'style = #'mensural + @} +@} +@end example + +The result looks like this + +@lilypond[quote,ragged-right] +\score { +{ + a'1 + \override Staff.Custos #'style = #'mensural + \break + g' +} +\layout { + \context { \Staff \consists Custos_engraver } + } +} +@end lilypond + +The custos glyph is selected by the @code{style} property. The styles +supported are @code{vaticana}, @code{medicaea}, @code{hufnagel}, and +@code{mensural}. They are demonstrated in the following fragment + +@lilypond[quote,ragged-right,fragment] +\new Lyrics \lyricmode { + \markup { \column { + \typewriter "vaticana" + \line { " " \musicglyph #"custodes.vaticana.u0" } + } } + \markup { \column { + \typewriter "medicaea" + \line { " " \musicglyph #"custodes.medicaea.u0" } + }} + \markup { \column { + \typewriter "hufnagel" + \line { " " \musicglyph #"custodes.hufnagel.u0" } + }} + \markup { \column { + \typewriter "mensural" + \line { " " \musicglyph #"custodes.mensural.u0" } + }} +} +@end lilypond + +@seealso + +Program reference: @internalsref{Custos}. + +Examples: +@lsr{ancient,custodes@/.ly}. + + +@anchor{Divisiones} +@unnumberedsubsubsec Divisiones + +@cindex divisio +@cindex divisiones +@cindex finalis + +A @emph{divisio} (plural: @emph{divisiones}; Latin word for +@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 +the breathmarks from @ref{Breath marks}. The @emph{finalis} sign not +only marks the end of a chant, but is also frequently used within a +single antiphonal/responsorial chant to mark the end of each section. + + +To use divisiones, include the file @file{gregorian@/-init@/.ly}. It +contains definitions that you can apply by just inserting +@code{\divisioMinima}, @code{\divisioMaior}, @code{\divisioMaxima}, +and @code{\finalis} at proper places in the input. Some editions use +@emph{virgula} or @emph{caesura} instead of divisio minima. +Therefore, @file{gregorian@/-init@/.ly} also defines @code{\virgula} and +@code{\caesura} + +@lilypondfile[quote,ragged-right]{divisiones.ly} + +@refcommands + +@funindex \virgula +@code{\virgula}, +@funindex \caesura +@code{\caesura}, +@funindex \divisioMinima +@code{\divisioMinima}, +@funindex \divisioMaior +@code{\divisioMaior}, +@funindex \divisioMaxima +@code{\divisioMaxima}, +@funindex \finalis +@code{\finalis}. + +@seealso + +In this manual: @ref{Breath marks}. + +Program reference: @internalsref{BreathingSign}. + +Examples: @lsr{expressive,breathing-sign.ly}. + + +@anchor{Ligatures} +@unnumberedsubsubsec Ligatures + +@cindex Ligatures + +@c TODO: Should double check if I recalled things correctly when I wrote +@c down the following paragraph by heart. + +A ligature is a graphical symbol that represents at least two distinct +notes. Ligatures originally appeared in the manuscripts of Gregorian +chant notation to denote ascending or descending sequences of notes. + +Ligatures are entered by enclosing them in @code{\[} and @code{\]}. +Some ligature styles may need additional input syntax specific for +this particular type of ligature. By default, the +@internalsref{LigatureBracket} engraver just puts a square bracket +above the ligature + +@lilypond[quote,ragged-right,verbatim] +\transpose c c' { + \[ g c a f d' \] + a g f + \[ e f a g \] +} +@end lilypond + +To select a specific style of ligatures, a proper ligature engraver +has to be added to the @internalsref{Voice} context, as explained in +the following subsections. Only white mensural ligatures +are supported with certain limitations. + + + +@refbugs + +Ligatures need special spacing that has not yet been implemented. As +a result, there is too much space between ligatures most of the time, +and line breaking often is unsatisfactory. Also, lyrics do not +correctly align with ligatures. + +Accidentals must not be printed within a ligature, but instead need to +be collected and printed in front of it. + +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 +@file{gregorian@/-init@/.ly} can be included; it provides a scheme +function +@example +\ligature @var{music expr} +@end example +with the same effect and is believed to be stable. + +@menu +* White mensural ligatures:: +* Gregorian square neumes ligatures:: +@end menu + +@anchor{White mensural ligatures} +@unnumberedsubsubsec White mensural ligatures + +@cindex Mensural ligatures +@cindex White mensural ligatures + +There is limited support for white mensural ligatures. + +To engrave white mensural ligatures, in the layout block put the +@internalsref{Mensural_ligature_engraver} into the +@internalsref{Voice} context, and remove the +@internalsref{Ligature_bracket_engraver}, like this + +@example +\layout @{ + \context @{ + \Voice + \remove Ligature_bracket_engraver + \consists Mensural_ligature_engraver + @} +@} +@end example + +There is no additional input language to describe the shape of a +white mensural ligature. The shape is rather determined solely from +the pitch and duration of the enclosed notes. While this approach may +take a new user a while to get accustomed to, it has the great advantage +that the full musical information of the ligature is known internally. +This is not only required for correct MIDI output, but also allows for +automatic transcription of the ligatures. + +For example, + +@example +\set Score.timing = ##f +\set Score.defaultBarType = "empty" +\override NoteHead #'style = #'neomensural +\override Staff.TimeSignature #'style = #'neomensural +\clef "petrucci-g" +\[ c'\maxima g \] +\[ d\longa c\breve f e d \] +\[ c'\maxima d'\longa \] +\[ e'1 a g\breve \] +@end example +@lilypond[quote,ragged-right] +\score { + \transpose c c' { + \set Score.timing = ##f + \set Score.defaultBarType = "empty" + \override NoteHead #'style = #'neomensural + \override Staff.TimeSignature #'style = #'neomensural + \clef "petrucci-g" + \[ c'\maxima g \] + \[ d\longa c\breve f e d \] + \[ c'\maxima d'\longa \] + \[ e'1 a g\breve \] + } + \layout { + \context { + \Voice + \remove Ligature_bracket_engraver + \consists Mensural_ligature_engraver + } + } +} +@end lilypond + +Without replacing @internalsref{Ligature_bracket_engraver} with +@internalsref{Mensural_ligature_engraver}, the same music transcribes +to the following + +@lilypond[quote,ragged-right] +\transpose c c' { + \set Score.timing = ##f + \set Score.defaultBarType = "empty" + \override NoteHead #'style = #'neomensural + \override Staff.TimeSignature #'style = #'neomensural + \clef "petrucci-g" + \[ c'\maxima g \] + \[ d\longa c\breve f e d \] + \[ c'\maxima d'\longa \] + \[ e'1 a g\breve \] +} +@end lilypond + +@refbugs + +Horizontal spacing is poor. + +@anchor{Gregorian square neumes ligatures} +@unnumberedsubsubsec Gregorian square neumes ligatures + +@cindex Square neumes ligatures +@cindex Gregorian square neumes ligatures + +There is limited support for Gregorian square neumes notation +(following the style of the Editio Vaticana). Core ligatures can +already be typeset, but essential issues for serious typesetting are +still lacking, such as (among others) horizontal alignment of multiple +ligatures, lyrics alignment and proper handling of accidentals. + + +The following table contains the extended neumes table of the 2nd +volume of the Antiphonale Romanum (@emph{Liber Hymnarius}), published +1983 by the monks of Solesmes. + +@multitable @columnfractions .4 .2 .2 .2 + +@item +@b{Neuma aut@* +Neumarum Elementa} +@tab +@b{Figurae@* +Rectae} +@tab +@b{Figurae@* +Liquescentes@* +Auctae} +@tab +@b{Figurae@* +Liquescentes@* +Deminutae} + +@c TODO: \layout block is identical in all of the below examples. +@c Therefore, it should somehow be included rather than duplicated all +@c the time. --jr + +@c why not make identifiers in ly/engraver-init.ly? --hwn + +@c Because it's just used to typeset plain notes without +@c a staff for demonstration purposes rather than something +@c special of Gregorian chant notation. --jr + +@item +@code{1. Punctum} +@tab +@lilypond[staffsize=26,line-width=1.5\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Punctum + \[ b \] + \noBreak s^\markup {"a"} \noBreak + + % Punctum Inclinatum + \[ \inclinatum b \] + \noBreak s^\markup {"b"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=2.5\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Punctum Auctum Ascendens + \[ \auctum \ascendens b \] + \noBreak s^\markup {"c"} \noBreak + + % Punctum Auctum Descendens + \[ \auctum \descendens b \] + \noBreak s^\markup {"d"} \noBreak + + % Punctum Inclinatum Auctum + \[ \inclinatum \auctum b \] + \noBreak s^\markup {"e"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Punctum Inclinatum Parvum + \[ \inclinatum \deminutum b \] + \noBreak s^\markup {"f"} + } +\layout { \neumeDemoLayout }} +@end lilypond + +@item +@code{2. Virga} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Virga + \[ \virga b \] + \noBreak s^\markup {"g"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@tab + +@item +@code{3. Apostropha vel Stropha} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Stropha + \[ \stropha b \] + \noBreak s^\markup {"h"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Stropha Aucta + \[ \stropha \auctum b \] + \noBreak s^\markup {"i"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab + +@item +@code{4. Oriscus} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Oriscus + \[ \oriscus b \] + \noBreak s^\markup {"j"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@tab + +@item +@code{5. Clivis vel Flexa} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Clivis vel Flexa + \[ b \flexa g \] + s^\markup {"k"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=2.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Clivis Aucta Descendens + \[ b \flexa \auctum \descendens g \] + \noBreak s^\markup {"l"} \noBreak + + % Clivis Aucta Ascendens + \[ b \flexa \auctum \ascendens g \] + \noBreak s^\markup {"m"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Cephalicus + \[ b \flexa \deminutum g \] + s^\markup {"n"} + } +\layout { \neumeDemoLayout }} +@end lilypond + +@item +@code{6. Podatus vel Pes} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Podatus vel Pes + \[ g \pes b \] + s^\markup {"o"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=2.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Pes Auctus Descendens + \[ g \pes \auctum \descendens b \] + \noBreak s^\markup {"p"} \noBreak + + % Pes Auctus Ascendens + \[ g \pes \auctum \ascendens b \] + \noBreak s^\markup {"q"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Epiphonus + \[ g \pes \deminutum b \] + s^\markup {"r"} + } +\layout { \neumeDemoLayout }} +@end lilypond + +@item +@code{7. Pes Quassus} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Pes Quassus + \[ \oriscus g \pes \virga b \] + s^\markup {"s"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Pes Quassus Auctus Descendens + \[ \oriscus g \pes \auctum \descendens b \] + s^\markup {"t"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab + +@item +@code{8. Quilisma Pes} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Quilisma Pes + \[ \quilisma g \pes b \] + s^\markup {"u"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Quilisma Pes Auctus Descendens + \[ \quilisma g \pes \auctum \descendens b \] + s^\markup {"v"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab + +@item +@code{9. Podatus Initio Debilis} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Pes Initio Debilis + \[ \deminutum g \pes b \] + s^\markup {"w"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Pes Auctus Descendens Initio Debilis + \[ \deminutum g \pes \auctum \descendens b \] + s^\markup {"x"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab + +@item +@code{10. Torculus} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Torculus + \[ a \pes b \flexa g \] + s^\markup {"y"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Torculus Auctus Descendens + \[ a \pes b \flexa \auctum \descendens g \] + s^\markup {"z"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Torculus Deminutus + \[ a \pes b \flexa \deminutum g \] + s^\markup {"A"} + } +\layout { \neumeDemoLayout }} +@end lilypond + +@item +@code{11. Torculus Initio Debilis} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Torculus Initio Debilis + \[ \deminutum a \pes b \flexa g \] + s^\markup {"B"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Torculus Auctus Descendens Initio Debilis + \[ \deminutum a \pes b \flexa \auctum \descendens g \] + s^\markup {"C"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Torculus Deminutus Initio Debilis + \[ \deminutum a \pes b \flexa \deminutum g \] + s^\markup {"D"} + } +\layout { \neumeDemoLayout }} +@end lilypond + +@item +@code{12. Porrectus} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Porrectus + \[ a \flexa g \pes b \] + s^\markup {"E"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Porrectus Auctus Descendens + \[ a \flexa g \pes \auctum \descendens b \] + s^\markup {"F"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Porrectus Deminutus + \[ a \flexa g \pes \deminutum b \] + s^\markup {"G"} + } +\layout { \neumeDemoLayout }} +@end lilypond + +@item +@code{13. Climacus} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Climacus + \[ \virga b \inclinatum a \inclinatum g \] + s^\markup {"H"} + } + \layout { \neumeDemoLayout } +} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Climacus Auctus + \[ \virga b \inclinatum a \inclinatum \auctum g \] + s^\markup {"I"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Climacus Deminutus + \[ \virga b \inclinatum a \inclinatum \deminutum g \] + s^\markup {"J"} + } +\layout { \neumeDemoLayout }} +@end lilypond + +@item +@code{14. Scandicus} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Scandicus + \[ g \pes a \virga b \] + s^\markup {"K"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Scandicus Auctus Descendens + \[ g \pes a \pes \auctum \descendens b \] + s^\markup {"L"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Scandicus Deminutus + \[ g \pes a \pes \deminutum b \] + s^\markup {"M"} + } +\layout { \neumeDemoLayout }} +@end lilypond + +@item +@code{15. Salicus} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Salicus + \[ g \oriscus a \pes \virga b \] + s^\markup {"N"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Salicus Auctus Descendens + \[ g \oriscus a \pes \auctum \descendens b \] + s^\markup {"O"} + } +\layout { \neumeDemoLayout }} +@end lilypond +@tab + +@item +@code{16. Trigonus} +@tab +@lilypond[staffsize=26,line-width=1.0\cm] +\include "gregorian-init.ly" +\score { + \transpose c c' { + % Trigonus + \[ \stropha b \stropha b \stropha a \] + s^\markup {"P"} + } + \layout { \neumeDemoLayout } +} +@end lilypond +@tab +@tab + +@end multitable + + +Unlike most other neumes notation systems, the input language for +neumes does not reflect the typographical appearance, but is designed +to focus on musical meaning. For example, @code{\[ a \pes b +\flexa g \]} produces a Torculus consisting of three Punctum heads, +while @code{\[ a \flexa g \pes b \]} produces a Porrectus with a +curved flexa shape and only a single Punctum head. There is no +command to explicitly typeset the curved flexa shape; the decision of +when to typeset a curved flexa shape is based on the musical +input. The idea of this approach is to separate the musical aspects +of the input from the notation style of the output. This way, the +same input can be reused to typeset the same music in a different +style of Gregorian chant notation. + +The following table shows the code fragments that produce the +ligatures in the above neumes table. The letter in the first column +in each line of the below table indicates to which ligature in the +above table it refers. The second column gives the name of the +ligature. The third column shows the code fragment that produces this +ligature, using @code{g}, @code{a}, and @code{b} as example pitches. + +@multitable @columnfractions .02 .31 .67 +@item +@b{#} +@tab +@b{Name} +@tab +@b{Input Language} + +@item +a +@tab +Punctum +@tab +@code{\[ b \]} + +@item +b +@tab +Punctum Inclinatum +@tab +@code{\[ \inclinatum b \]} + +@item +c +@tab +Punctum Auctum@* +Ascendens +@tab +@code{\[ \auctum \ascendens b \]} + +@item +d +@tab +Punctum Auctum@* +Descendens +@tab +@code{\[ \auctum \descendens b \]} + +@item +e +@tab +Punctum Inclinatum@* +Auctum +@tab +@code{\[ \inclinatum \auctum b \]} + +@item +f +@tab +Punctum Inclinatum@* +Parvum @tab +@code{\[ \inclinatum \deminutum b \]} + +@item +g +@tab +Virga +@tab +@code{\[ \virga b \]} + +@item +h +@tab +Stropha +@tab +@code{\[ \stropha b \]} + +@item +i +@tab +Stropha Aucta +@tab +@code{\[ \stropha \auctum b \]} + +@item +j +@tab +Oriscus +@tab +@code{\[ \oriscus b \]} + +@item +k +@tab +Clivis vel Flexa +@tab +@code{\[ b \flexa g \]} + +@item +l +@tab +Clivis Aucta@* +Descendens +@tab +@code{\[ b \flexa \auctum \descendens g \]} + +@item +m +@tab +Clivis Aucta@* +Ascendens +@tab +@code{\[ b \flexa \auctum \ascendens g \]} + +@item +n +@tab +Cephalicus +@tab +@code{\[ b \flexa \deminutum g \]} + +@item +o +@tab +Podatus vel Pes +@tab +@code{\[ g \pes b \]} + +@item +p +@tab +Pes Auctus@* +Descendens +@tab +@code{\[ g \pes \auctum \descendens b \]} + +@item +q +@tab +Pes Auctus@* +Ascendens +@tab +@code{\[ g \pes \auctum \ascendens b \]} + +@item +r +@tab +Epiphonus +@tab +@code{\[ g \pes \deminutum b \]} + +@item +s +@tab +Pes Quassus +@tab +@code{\[ \oriscus g \pes \virga b \]} + +@item +t +@tab +Pes Quassus@* +Auctus Descendens @tab +@code{\[ \oriscus g \pes \auctum \descendens b \]} + +@item +u +@tab +Quilisma Pes +@tab +@code{\[ \quilisma g \pes b \]} + +@item +v +@tab +Quilisma Pes@* +Auctus Descendens +@tab +@code{\[ \quilisma g \pes \auctum \descendens b \]} + +@item +w +@tab +Pes Initio Debilis +@tab +@code{\[ \deminutum g \pes b \]} + +@item +x +@tab +Pes Auctus Descendens@* +Initio Debilis +@tab +@code{\[ \deminutum g \pes \auctum \descendens b \]} + +@item +y +@tab +Torculus +@tab +@code{\[ a \pes b \flexa g \]} + +@item +z +@tab +Torculus Auctus@* +Descendens +@tab +@code{\[ a \pes b \flexa \auctum \descendens g \]} + +@item +A +@tab +Torculus Deminutus +@tab +@code{\[ a \pes b \flexa \deminutum g \]} + +@item +B +@tab +Torculus Initio Debilis +@tab +@code{\[ \deminutum a \pes b \flexa g \]} + +@item +C +@tab +Torculus Auctus@* +Descendens Initio Debilis +@tab +@code{\[ \deminutum a \pes b \flexa \auctum \descendens g \]} + +@item +D +@tab +Torculus Deminutus@* +Initio Debilis +@tab +@code{\[ \deminutum a \pes b \flexa \deminutum g \]} + +@item +E +@tab +Porrectus +@tab +@code{\[ a \flexa g \pes b \]} + +@item +F +@tab +Porrectus Auctus@* +Descendens +@tab +@code{\[ a \flexa g \pes \auctum \descendens b \]} + +@item +G +@tab +Porrectus Deminutus +@tab +@code{\[ a \flexa g \pes \deminutum b \]} + +@item +H +@tab +Climacus +@tab +@code{\[ \virga b \inclinatum a \inclinatum g \]} + +@item +I +@tab +Climacus Auctus +@tab +@code{\[ \virga b \inclinatum a \inclinatum \auctum g \]} + +@item +J +@tab +Climacus Deminutus +@tab +@code{\[ \virga b \inclinatum a \inclinatum \deminutum g \]} + +@item +K +@tab +Scandicus +@tab +@code{\[ g \pes a \virga b \]} + +@item +L +@tab +Scandicus Auctus@* +Descendens +@tab +@code{\[ g \pes a \pes \auctum \descendens b \]} + +@item +M +@tab +Scandicus Deminutus +@tab +@code{\[ g \pes a \pes \deminutum b \]} + +@item +N +@tab +Salicus +@tab +@code{\[ g \oriscus a \pes \virga b \]} + +@item +O +@tab +Salicus Auctus Descendens +@tab +@code{\[ g \oriscus a \pes \auctum \descendens b \]} + +@item +P +@tab +Trigonus +@tab +@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. + +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 + +@funindex \virga +@code{\virga}, +@funindex \stropha +@code{\stropha}, +@funindex \inclinatum +@code{\inclinatum}, +@funindex \auctum +@code{\auctum}, +@funindex \descendens +@code{\descendens}, +@funindex \ascendens +@code{\ascendens}, +@funindex \oriscus +@code{\oriscus}, +@funindex \quilisma +@code{\quilisma}, +@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. + +@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. + +@anchor{Gregorian Chant contexts} +@unnumberedsubsubsec Gregorian Chant contexts + +@cindex VaticanaVoiceContext +@cindex VaticanaStaffContext + +The predefined @code{VaticanaVoiceContext} and +@code{VaticanaStaffContext} can be used to engrave a piece of +Gregorian Chant in the style of the Editio Vaticana. These contexts +initialize all relevant context properties and grob properties to +proper values, so you can immediately go ahead entering the chant, as +the following excerpt demonstrates + +@lilypond[quote,ragged-right,packed,verbatim] +\include "gregorian-init.ly" +\score { + << + \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 + } + \new Lyrics \lyricsto "cantus" { + San- ctus, San- ctus, San- ctus + } + >> +} +@end lilypond + + +@anchor{Mensural contexts} +@unnumberedsubsubsec Mensural contexts + +@cindex MensuralVoiceContext +@cindex MensuralStaffContext + +The predefined @code{MensuralVoiceContext} and +@code{MensuralStaffContext} can be used to engrave a piece in mensural +style. These contexts initialize all relevant context properties and +grob properties to proper values, so you can immediately go ahead +entering the chant, as the following excerpt demonstrates + +@lilypond[quote,ragged-right,verbatim] +\score { + << + \new MensuralVoice = "discantus" \transpose c c' { + \override Score.BarNumber #'transparent = ##t { + c'1\melisma bes a g\melismaEnd + f\breve + \[ f1\melisma a c'\breve d'\melismaEnd \] + c'\longa + c'\breve\melisma a1 g1\melismaEnd + fis\longa^\signumcongruentiae + } + } + \new Lyrics \lyricsto "discantus" { + San -- ctus, San -- ctus, San -- ctus + } + >> +} +@end lilypond + +@anchor{Musica ficta accidentals} +@unnumberedsubsubsec Musica ficta accidentals + +In European music from before about 1600, singers were often expected +to chromatically alter notes at their own initiative. This is called +@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. + +@funindex suggestAccidentals + +@lilypond[verbatim,fragment,relative=1] +fis gis +\set suggestAccidentals = ##t +ais bis +@end lilypond + +@seealso + +Program reference: @internalsref{Accidental_engraver} engraver and the +@internalsref{AccidentalSuggestion} object. + +@anchor{Figured bass} +@unnumberedsubsubsec Figured bass + +@cindex Basso continuo + +@c TODO: musicological blurb about FB + + +LilyPond has support for figured bass + +@lilypond[quote,ragged-right,verbatim,fragment] +<< + \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 5/>4 + } +>> +@end lilypond + +The support for figured bass consists of two parts: there is an input +mode, introduced by @code{\figuremode}, where you can enter bass figures +as numbers, and there is a context called @internalsref{FiguredBass} that +takes care of making @internalsref{BassFigure} objects. + +In figures input mode, a group of bass figures is delimited by +@code{<} and @code{>}. The duration is entered after the @code{>} +@example +<4 6> +@end example +@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. 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!> <5++> <3--> <7/> r <6\+ 5/> +@end example +@lilypond[quote,ragged-right,fragment] +\figures { <4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/> } +@end lilypond + +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 \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 + +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 +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 +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 + + +@commonprop + +By default, this method produces figures above the notes. To get +figures below the notes, use + +@example +\override Staff.BassFigureAlignmentPositioning #'direction = #DOWN +@end example + + +@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, please +use @code{stacking-dir} on @code{BassFigureAlignment}. + + +@seealso + +Program reference: @internalsref{NewBassFigure}, +@internalsref{BassFigureAlignment}, @internalsref{BassFigureLine}, +@internalsref{BassFigureBracket}, and +@internalsref{BassFigureContinuation} objects and +@internalsref{FiguredBass} context. + + diff --git a/Documentation/user/chords.itely b/Documentation/user/chords.itely new file mode 100644 index 0000000000..0d2c7a7421 --- /dev/null +++ b/Documentation/user/chords.itely @@ -0,0 +1,377 @@ +@c -*- coding: utf-8; mode: texinfo; -*- + + +@node Chords +@section Chords + +@menu +* Introducing chord names:: +* Chords mode:: +* Printing chord names:: +@end menu + + +@c awkward name; awkward section name. +@c still, the Basic "chords" seems like a good name... :( +@anchor{Introducing chord names} +@unnumberedsubsubsec Introducing chord names +@cindex chord names + +LilyPond has support for printing chord names. Chords may be entered +in musical chord notation, i.e., @code{< .. >}, but they can also be +entered by name. Internally, the chords are represented as a set of +pitches, so they can be transposed + + +@lilypond[quote,ragged-right,verbatim,ragged-right] +twoWays = \transpose c c' { + \chordmode { + c1 f:sus4 bes/f + } + + + +} + +<< \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 +2 +@end example + + +@anchor{Chords mode} +@unnumberedsubsubsec Chords mode +@cindex Chords mode + +In chord mode sets of pitches (chords) are entered with normal note +names. A chord is entered by the root, which is entered like a +normal pitch + +@lilypond[quote,ragged-right,fragment,verbatim] +\chordmode { es4. d8 c2 } +@end lilypond + +@noindent +The mode is introduced by the keyword @code{\chordmode}. + +@cindex chord entry +@cindex chord mode + +Other chords may be entered by suffixing a colon and introducing a +modifier (which may include a number if desired) + +@lilypond[quote,fragment,verbatim] +\chordmode { e1:m e1:7 e1:m7 } +@end lilypond + +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. The exception is @code{c:13}, for which the 11 is omitted. + +@lilypond[quote,fragment,verbatim] +\chordmode { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 c:13 } +@end lilypond + +@cindex root of chord +@cindex additions, in chords +@cindex removals, in chords + +More complex chords may also be constructed adding separate steps +to a chord. Additions are added after the number following +the colon and are separated by dots + +@lilypond[quote,verbatim,fragment] +\chordmode { c:5.6 c:3.7.8 c:3.6.13 } +@end lilypond + +Chord steps can be altered by suffixing a @code{-} or @code{+} sign +to the number + +@lilypond[quote,verbatim,fragment] +\chordmode { c:7+ c:5+.3- c:3-.5-.7- } +@end lilypond + +Removals are specified similarly and are introduced by a caret. They +must come after the additions + +@lilypond[quote,verbatim,fragment] +\chordmode { c^3 c:7^5 c:9^3.5 } +@end lilypond + +Modifiers can be used to change pitches. The following modifiers are +supported + +@table @code +@item m +The minor chord. This modifier lowers the 3rd and (if present) the 7th step. + +@item dim +The diminished chord. This modifier lowers the 3rd, 5th and (if present) +the 7th step. + +@item aug +The augmented chord. This modifier raises the 5th step. + +@item maj +The major 7th chord. This modifier raises the 7th step if present. + +@item sus +The suspended 4th or 2nd. This modifier removes the 3rd +step. Append either @code{2} or @code{4} to add the 2nd or 4th step to +the chord. +@end table + +Modifiers can be mixed with additions +@lilypond[quote,verbatim,fragment] + \chordmode { c:sus4 c:7sus4 c:dim7 c:m6 } +@end lilypond + +@cindex modifiers, in chords. +@funindex aug +@funindex dim +@funindex maj +@funindex sus +@funindex m + +Since an unaltered 11 does not sound good when combined with an +unaltered 13, the 11 is removed in this case (unless it is added +explicitly) +@lilypond[quote,ragged-right,fragment,verbatim] +\chordmode { c:13 c:13.11 c:m13 } +@end lilypond + +@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,ragged-right,fragment,verbatim] +\chordmode { c1 c/g c/f } +@end lilypond +@funindex /+ + +A bass note can be added instead of transposed out of the chord, +by using @code{/+}@var{pitch}. + +@lilypond[quote,ragged-right,fragment,verbatim] +\chordmode { c1 c/+g c/+f } +@end lilypond + +Chords is a mode similar to @code{\lyricmode}, etc. Most +of the commands continue to work, for example, @code{r} and +@code{\skip} can be used to insert rests and spaces, and property +commands may be used to change various settings. + + + +@refbugs + +Each step can only be present in a chord once. The following +simply produces the augmented chord, since @code{5+} is interpreted +last +@cindex clusters +@lilypond[quote,ragged-right,verbatim,fragment] +\chordmode { c:5.5-.5+ } +@end lilypond + + +@anchor{Printing chord names} +@unnumberedsubsubsec Printing chord names + +@cindex printing chord names +@cindex chord names +@cindex chords + +For displaying printed chord names, use the @internalsref{ChordNames} context. +The chords may be entered either using the notation +described above, or directly using @code{<} and @code{>} + +@lilypond[quote,verbatim,ragged-right] +harmonies = { + \chordmode {a1 b c} +} +<< + \new ChordNames \harmonies + \new Staff \harmonies +>> +@end lilypond + +You can make the chord changes stand out by setting +@internalsref{ChordNames}.@code{chordChanges} to true. This will only +display chord names when there is a change in the chords scheme and at +the start of a new line + +@lilypond[quote,verbatim,ragged-right] +harmonies = \chordmode { + c1:m c:m \break c:m c:m d +} +<< + \new ChordNames { + \set chordChanges = ##t + \harmonies } + \new Staff \transpose c c' \harmonies +>> +@end lilypond + +The previous examples all show chords over a staff. This is not +necessary. Chords may also be printed separately. It may be necessary +to add @internalsref{Volta_engraver} and @internalsref{Bar_engraver} +for showing repeats. + +@lilypond[ragged-right,verbatim] +\new ChordNames \with { + \override BarLine #'bar-size = #4 + \consists Bar_engraver + \consists "Volta_engraver" +} +\chordmode { \repeat volta 2 { + f1:maj7 f:7 bes:7 + c:maj7 +} \alternative { + es e +} +} +@end lilypond + + +The default chord name layout is a system for Jazz music, proposed by +Klaus Ignatzek (see @ref{Literature list}). It can be tuned through the +following properties + +@table @code +@funindex chordNameExceptions +@item chordNameExceptions +This is a list that contains the chords that have special formatting. + +The exceptions list should be encoded as +@example +@{ 1 \markup @{ \super "7" "wahh" @} @} +@end example + +To get this information into @code{chordNameExceptions} takes a little +manoeuvring. The following code transforms @code{chExceptionMusic} +(which is a sequential music) into a list of exceptions. +@example +(sequential-music-to-chord-exceptions chExceptionMusic #t) +@end example +Then, +@example +(append + (sequential-music-to-chord-exceptions chExceptionMusic #t) + ignatzekExceptions) +@end example +adds the new exceptions to the default ones, which are defined in +@file{ly/@/chord@/-modifier@/-init@/.ly}. + +For an example of tuning this property, see also +@lsr{chords,chord@/-name@/-exceptions@/.ly} +@cindex exceptions, chord names. + + +@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 +@lsr{chords,chord@/-name@/-major7@/.ly} for an example. + +@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,ragged-right,fragment,verbatim] +\new ChordNames \chordmode { + c:7sus4 + \set chordNameSeparator + = \markup { \typewriter "|" } + c:7sus4 +} +@end lilypond + +@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 @q{H} for a +B-chord) can be produced by storing a new function in this property. + +@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. + +@funindex chordPrefixSpacer +@item chordPrefixSpacer +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} +set these variables. The effect is +demonstrated here, + +@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 +alternate Jazz notation is also shown on the chart in @ref{Chord name +chart}. Turning on these styles is demonstrated in +@lsr{chords,chord-names-jazz.ly}. + +@cindex Banter +@cindex jazz chords +@cindex chords, jazz + + +@refcommands + +@funindex \germanChords +@code{\germanChords}, +@funindex \semiGermanChords +@code{\semiGermanChords}. +@funindex \italianChords +@code{\italianChords}. +@funindex \frenchChords +@code{\frenchChords}. + + + + +@seealso + +Examples: +@lsrdir{chords} + +Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and +@file{scm/@/chord@/-entry@/.scm}. + + +@refbugs + +Chord names are determined solely from the list of pitches. Chord +inversions are not identified, and neither are added bass notes. This +may result in strange chord names when chords are entered with the +@code{< .. >} syntax. + + + + + + diff --git a/Documentation/user/guitar.itely b/Documentation/user/guitar.itely new file mode 100644 index 0000000000..d5a6e85880 --- /dev/null +++ b/Documentation/user/guitar.itely @@ -0,0 +1,342 @@ +@c -*- coding: utf-8; mode: texinfo; -*- + +@node Guitar +@section Guitar + +@cindex tablature +@cindex guitar tablature + +@menu +* String number indications:: +* Tablatures basic:: +* Non-guitar tablatures:: +* Banjo tablatures:: +* Fret diagrams:: +* Right hand fingerings:: +* Other guitar issues:: +@end menu + +@anchor{String number indications} +@unnumberedsubsubsec String number indications + +@cindex String numbers + +String numbers can be added to chords, by indicating the string number +with @code{\}@var{number}, + +@lilypond[relative,relative=1,ragged-right,fragment] + +@end lilypond + + +@seealso + +Program reference: @internalsref{StringNumber}, +@lsr{guitar/,string-number.ly}. + + +@anchor{Tablatures basic} +@unnumberedsubsubsec Tablatures basic +@cindex Tablatures basic + +Tablature notation is used for notating music for plucked string +instruments. Pitches are not denoted with note heads, but by +numbers indicating on which string and fret a note must be played. LilyPond +offers limited support for tablature. + +The string number associated to a note is given as a backslash +followed by a number, e.g., @code{c4\3} for a C quarter on the third +string. By default, string 1 is the highest one, and the tuning +defaults to the standard guitar tuning (with 6 strings). The notes +are printed as tablature, by using @internalsref{TabStaff} and +@internalsref{TabVoice} contexts + +@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 + +@funindex minimumFret +@cindex fret + +When no string is specified, the first string that does not give a +fret number less than @code{minimumFret} is selected. The default +value for @code{minimumFret} is 0 + + +@example +e16 fis gis a b4 +\set TabStaff.minimumFret = #8 +e16 fis gis a b4 +@end example +@lilypond[quote,ragged-right] +frag = { + \key e \major + e16 fis gis a b4 + \set TabStaff.minimumFret = #8 + e16 fis gis a b4 +} + \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}. + +@refbugs + +Chords are not handled in a special way, and hence the automatic +string selector may easily select the same string to two notes in a +chord. + +In order to handle @code{\partcombine}, a @code{TabStaff} must use +specially-created voices: + +@lilypond[quote,ragged-right,verbatim] +melodia = \partcombine { e4 g g g }{ e4 e e e } +<< + \new TabStaff << + \new TabVoice = "one" s1 + \new TabVoice = "two" s1 + \new TabVoice = "shared" s1 + \new TabVoice = "solo" s1 + { \melodia } + >> +>> +@end lilypond + + +@anchor{Non-guitar tablatures} +@unnumberedsubsubsec Non-guitar tablatures +@cindex Non-guitar tablatures + +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{stringTunings} are the +numbers of semitones to subtract or add, starting the specified pitch +by default middle C, in string order. LilyPond automatically calculates +the number of strings by looking at @code{stringTunings}. + +In the next example, +@code{stringTunings} is set for the pitches e, a, d, and g + +@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. + + + +@anchor{Banjo tablatures} +@unnumberedsubsubsec 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 + +The file @file{scm/@/output@/-lib@/.scm} contains predefined banjo tunings. + + +@anchor{Fret diagrams} +@unnumberedsubsubsec Fret diagrams +@cindex fret diagrams +@cindex chord diagrams + +Fret diagrams can be added to music as a markup to the desired note. The +markup contains information about the desired fret diagram, as shown in the +following example + +@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) { + \override #'(finger-code . below-string) { + \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2) + (place-fret 5 4 3) (place-fret 4 4 4) + (place-fret 3 3 2) (place-fret 2 2 1) + (place-fret 1 2 1)) + } + } + fis' fis' fis' + c'^\markup \override #'(dot-radius . 0.35) { + \override #'(finger-code . in-dot) { + \override #'(dot-color . white) { + \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);" + } + } + } + c' c' c' +} +@end lilypond + + +There are three different fret-diagram markup interfaces: standard, terse, +and verbose. The three interfaces produce equivalent markups, but have +varying amounts of information in the markup string. Details about the +markup interfaces are found at @ref{Overview of text markup commands}. + +You can set a number of graphical properties according to your preference. +Details about the property interface to fret diagrams are found at +@internalsref{fret-diagram-interface}. + + +@seealso + +Examples: @lsrdir{guitar} + + +@anchor{Right hand fingerings} +@unnumberedsubsubsec Right hand fingerings + +Right hand fingerings in chords can be entered using +@code{@var{note}-\rightHandFinger @var{finger}} + +@lilypond[verbatim,fragment,relative=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) + 4 + \set strokeFingerOrientations = #'(up right down) + 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" "!" "@") + 4 + 4 +} +@end lilypond + +@seealso + +Program reference: @internalsref{StrokeFinger} + + + +@anchor{Other guitar issues} +@unnumberedsubsubsec Other guitar issues + +This example demonstrates how to include guitar position and +barring indications. + +@lilypond[quote,ragged-right,fragment,verbatim,relative=0] +\clef "G_8" +b16 d16 g16 b16 e16 +\textSpannerDown +\override TextSpanner #'bound-details #'left #'text = #"XII " + g16\startTextSpan + b16 e16 g16 e16 b16 g16\stopTextSpan +e16 b16 g16 d16 +@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 +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}. + + + diff --git a/Documentation/user/instrument-notation.itely b/Documentation/user/instrument-notation.itely index d7c8741ffa..aa638636b2 100644 --- a/Documentation/user/instrument-notation.itely +++ b/Documentation/user/instrument-notation.itely @@ -12,4663 +12,122 @@ @c M-x texinfo-all-menus-update @c to automatically fill in these menus before saving changes -@node Instrument-specific notation -@chapter Instrument-specific notation - -This chapter explains how to use notation for specific instruments. - -@menu -* Vocal music:: -* Chord names:: -* Piano music:: -* Percussion:: -* Guitar:: -* Other instrument-specific:: -* Ancient notation:: -@end menu - - - -@node Vocal music -@section Vocal music - -Since LilyPond input files are text, there are two issues to -consider when working with vocal music: - -@itemize @bullet -@item -Song texts must be entered as text, not notes. For example, the -input@tie{}@code{d} should be interpreted as a one letter syllable, not the -note@tie{}D. - -@item -Song texts must be aligned with the notes of their melody. -@end itemize +@node Other instrument-specific +@section Other instrument-specific -There are a few different ways to define lyrics; we shall begin -by examining the simplest method, and gradually increase complexity. +This section includes extra information for writing for instruments. @menu -* Setting simple songs:: -* Entering lyrics:: -* Aligning lyrics to a melody:: -* Automatic syllable durations:: -* Another way of entering lyrics:: -* Assigning more than one syllable to a single note:: -* More than one note on a single syllable:: -* Extenders and hyphens:: -* Working with lyrics and identifiers:: -* Flexibility in placement:: -* Lyrics to multiple notes of a melisma:: -* Divisi lyrics:: -* Switching the melody associated with a lyrics line:: -* Lyrics independent of notes:: -* Spacing lyrics:: -* More about stanzas:: -* Ambitus:: -* Other vocal issues:: +* Orchestral strings:: +* Bagpipe:: @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 - - -@anchor{Setting simple songs} -@unnumberedsubsubsec Setting simple songs - -@cindex \addlyrics - -The easiest way to add lyrics to a melody is to append - -@example -\addlyrics @{ @var{the lyrics} @} -@end example - -@noindent -to a melody. Here is an example, - -@lilypond[ragged-right,verbatim,fragment,quote] -\time 3/4 -\relative { c2 e4 g2. } -\addlyrics { play the game } -@end lilypond - -More stanzas can be added by adding more -@code{\addlyrics} sections - -@lilypond[ragged-right,verbatim,fragment,quote] -\time 3/4 -\relative { c2 e4 g2. } -\addlyrics { play the game } -\addlyrics { speel het spel } -\addlyrics { joue le jeu } -@end lilypond - -The command @code{\addlyrics} cannot handle polyphony settings. For these -cases you should use @code{\lyricsto} and @code{\lyricmode}, as will be -introduced in @ref{Entering lyrics}. - - - -@anchor{Entering lyrics} -@unnumberedsubsubsec Entering lyrics - -@cindex lyrics -@funindex \lyricmode -@cindex punctuation -@cindex spaces, in lyrics -@cindex quotes, in lyrics - -Lyrics are entered in a special input mode, which can be introduced -by the keyword @code{\lyricmode}, or by using @code{\addlyrics} or -@code{\lyricsto}. In this mode you can enter lyrics, -with punctuation and accents, and the input @code{d} is not parsed as -a pitch, but rather as a one letter syllable. Syllables are entered -like notes, but with pitches replaced by text. For example, - -@example -\lyricmode @{ Twin-4 kle4 twin- kle litt- le star2 @} -@end example - -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}. -@c TODO: broken -@c For more details see @ref{The Lyrics context}. - -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. - -Any character that is not a digit or white space will be regarded as -part of the syllable; one important consequence of this is that a word -can end with @code{@}}, which often leads to the following mistake: - -@example -\lyricmode @{ lah- lah@} -@end example - -In this example, the @code{@}} is included in the final syllable, so the -opening brace is not balanced and the input file will probably not -compile. - - -@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 -property commands: do @emph{not} write - -@example -\override Score.LyricText #'font-shape = #'italic -@end example - -@noindent -but instead use - -@example -\override Score . LyricText #'font-shape = #'italic -@end example - -@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 tie is implemented with the Unicode character U+203F, so be -sure to have a font (Like DejaVuLGC) installed that includes this -glyph. +@node Orchestral strings +@subsection Orchestral strings -To enter lyrics with characters from non-English languages, or with -accented and special characters (such as the heart symbol or slanted quotes), -simply insert the characters directly into the input file and save -it with utf-8 encoding. See @ref{Text encoding}, for more info. +@anchor{Artificial harmonics (strings)} +@unnumberedsubsubsec Artificial harmonics (strings) -@lilypond[quote,ragged-right,fragment,verbatim] -\relative { e4 f e d e f e2 } -\addlyrics { He said: “Let my peo ple go”. } -@end lilypond +@cindex artificial harmonics -To use normal quotes in lyrics, add a backslash before the -quotes. For example, +Artificial harmonics are notated with a different notehead style. They +are entered by marking the harmonic pitch with @code{\harmonic}. -@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 } +@lilypond[ragged-right,verbatim,quote,fragment,relative=1] +4 @end lilypond -The full definition of a word start in Lyrics mode is somewhat more -complex. - -A word in Lyrics mode begins with: an alphabetic character, @code{_}, -@code{?}, @code{!}, @code{:}, @code{'}, the control characters @code{^A} -through @code{^F}, @code{^Q} through @code{^W}, @code{^Y}, @code{^^}, -any 8-bit character with ASCII code over 127, or a two-character -combination of a backslash followed by one of @code{`}, @code{'}, -@code{"}, or @code{^}. - -To define identifiers 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}, @internalsref{LyricSpace}. - - - -@anchor{Aligning lyrics to a melody} -@unnumberedsubsubsec Aligning lyrics to a melody - -@funindex \lyricmode -@funindex \addlyrics -@funindex \lyricsto - - -Lyrics are printed by interpreting them in the context called -@internalsref{Lyrics}. - -@example -\new Lyrics \lyricmode @dots{} -@end example - -There are two main methods to specify the horizontal placement -of the syllables: - -@itemize @bullet -@item -by automatically aligning -the lyrics to a melody or other voice of music, using @code{\addlyrics} -or @code{\lyricsto}. - -@item -or by specifying the duration of each syllable -explicitly, using @code{\lyricmode} -@end itemize - -@menu -* Automatic syllable durations:: -* Another way of entering lyrics:: -* Assigning more than one syllable to a single note:: -* More than one note on a single syllable:: -* Extenders and hyphens:: -@end menu - -@anchor{Automatic syllable durations} -@unnumberedsubsubsec Automatic syllable durations - -@cindex automatic syllable durations -@cindex lyrics and melodies -The lyrics can be aligned under a given melody -automatically. This is achieved by combining the -melody and the lyrics with the @code{\lyricsto} expression - -@example -\new Lyrics \lyricsto @var{name} @dots{} -@end example - -This aligns the lyrics to the -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 +@node Bagpipe +@subsection Bagpipe -The second stanza is not properly aligned because the durations -were not specified. A solution for that would be to use @code{\lyricsto}. +@anchor{Bagpipe definitions} +@unnumberedsubsubsec Bagpipe definitions -The @code{\addlyrics} command is actually just a convenient way -to write a more complicated LilyPond structure that sets up the -lyrics. +LilyPond contains special definitions for music for the Scottish +highland bagpipe; to use them, add @example -@{ MUSIC @} -\addlyrics @{ LYRICS @} +\include "bagpipe.ly" @end example @noindent -is the same as - -@example -\new Voice = "blah" @{ music @} -\new Lyrics \lyricsto "blah" @{ LYRICS @} -@end example - -@anchor{Another way of entering lyrics} -@unnumberedsubsubsec Another way of entering lyrics +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 -Lyrics can also be entered without @code{\addlyrics} or -@code{\lyricsto}. In this case, -syllables are entered like notes -- but with pitches replaced by text -- and the -duration of each syllable must be entered explicitly. For example: - -@example -play2 the4 game2. -sink2 or4 swim2. -@end example - -The alignment to a melody can be specified with the -@code{associatedVoice} property, - @example -\set associatedVoice = #"lala" +\grace @{ \small G32[ d G e] @} @end example - -@noindent -The value of the property (here: @code{"lala"}) should be the name of -a @internalsref{Voice} context. Without this setting, extender lines -will not be formatted properly. - -Here is an example demonstrating manual lyric durations, - -@lilypond[relative=1,ragged-right,verbatim,fragment,quote] -<< \new Voice = "melody" { - \time 3/4 - c2 e4 g2. - } - \new Lyrics \lyricmode { - \set associatedVoice = #"melody" - play2 the4 game2. - } >> -@end lilypond - -@seealso - -Program reference: @internalsref{Lyrics}. - - -@anchor{Assigning more than one syllable to a single note} -@unnumberedsubsubsec Assigning more than one syllable to a single note - - -@funindex _ -@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@footnote{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.}. - -@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 - -@seealso - -Program reference: @internalsref{LyricCombineMusic}. - -@c Here come the section which used to be "Melismata" -@c the new title might be more self-explanatory - - -@anchor{More than one note on a single syllable} -@unnumberedsubsubsec More than one note on a single syllable - -@cindex melisma -@cindex melismata -@cindex phrasing, in lyrics -Sometimes, particularly in Medieval music, several notes are to be sung on one -single syllable; such vocalises are called melismas, or melismata. - -@c this method seems to be the simplest; therefore -@c it might be better to present it first - vv - -You can define melismata entirely in the lyrics, by entering @code{_} -for every note -that is part of the melisma. - -@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 -set @code{melismaBusyProperties}, as is done in the example above. - -However, the @code{\lyricsto} command can also -detect melismata automatically: it only puts one -syllable under a tied or slurred group of notes. If you want to force -an unslurred group of notes to be a melisma, insert @code{\melisma} -after the first note of the group, and @code{\melismaEnd} after the -last one, e.g., +@code{bagpipe.ly} also contains pitch definitions for the bagpipe +notes in the appropriate octaves, so you do not need to worry about +@code{\relative} or @code{\transpose}. -@lilypond[quote,relative=2,ragged-right,fragment,verbatim] -<< - \new Voice = "lala" { - \time 3/4 - f4 g8 - \melisma - f e f - \melismaEnd - e2 - } - \new Lyrics \lyricsto "lala" { - la di __ daah - } ->> +@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 -In addition, notes are considered a melisma if they are manually -beamed, and automatic beaming (see @ref{Setting automatic beam -behavior}) is switched off. - -@c TODO: there might be some more relevant place for -@c the following link (?) - -@cindex SATB -@cindex choral score - -A complete example of a SATB score setup is in section -@ref{Vocal ensembles}. - - -@refcommands - -@code{\melisma}, @code{\melismaEnd} -@funindex \melismaEnd -@funindex \melisma - -@seealso - -Program reference: @internalsref{Melisma_translator}. - -@lsr{vocal,lyric@/-combine.ly}. - -@refbugs - -Melismata are not detected automatically, and extender lines must be -inserted by hand. - -@anchor{Extenders and hyphens} -@unnumberedsubsubsec Extenders and hyphens - -@cindex melisma -@cindex extender - -Melismata are indicated with a horizontal line centered between a syllable -and the next one. Such a line is called an extender line, and it is entered -as @samp{ __ } (note the spaces before and after the two underscore -characters). - -@cindex hyphens - -Centered hyphens are entered as @samp{ -- } between syllables of a same word -(note the spaces before and after the two hyphen characters). The hyphen -will be centered between the syllables, and its length will be adjusted -depending on the space between the syllables. - -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 - -Program reference: @internalsref{LyricExtender}, -@internalsref{LyricHyphen} - - -@anchor{Working with lyrics and identifiers} -@unnumberedsubsubsec Working with lyrics and identifiers -@cindex lyrics, identifiers - -To define identifiers containing lyrics, the function @code{\lyricmode} -must be used. You do not have to enter durations though, if you add -@code{\addlyrics} or @code{\lyricsto} -when invoking your identifier. - -@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 - -For different or more complex orderings, the best way is to setup the -hierarchy of staves and lyrics first, e.g., -@example -\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 -\context Lyrics = sopranoLyrics \lyricsto "soprano" -@emph{the lyrics} -@end example - -@noindent - -The final input would resemble - -@example -<<\new ChoirStaff << @emph{setup the music} >> - \lyricsto "soprano" @emph{etc} - \lyricsto "alto" @emph{etc} -@emph{etc} ->> -@end example - -@seealso - -@c TODO: document \new Staff << Voice \lyricsto >> bug -Program reference: @internalsref{LyricCombineMusic}, -@internalsref{Lyrics}. - - -@anchor{Flexibility in placement} -@unnumberedsubsubsec 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:: -* Lyrics independent of notes:: -@end menu - - -@anchor{Lyrics to multiple notes of a melisma} -@unnumberedsubsubsec 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 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, +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. -@c FIXME: breaks compile -@lilypond[verbatim,ragged-right,quote] -%{ -<< - \relative \new Voice = "lahlah" { - \set Staff.autoBeaming = ##f - c4 - \slurDotted - f8.[( g16]) - a4 - } - \new Lyrics \lyricsto "lahlah" { - more slow -- ly - } - \new Lyrics \lyricsto "lahlah" { - \set ignoreMelismata = ##t % applies to "fas" - go fas -- ter - \unset ignoreMelismata - still - } ->> -%} -@end lilypond +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. -The @code{ignoreMelismata} applies to the syllable @q{fas}, so it -should be entered before @q{go}. +@anchor{Bagpipe example} +@unnumberedsubsubsec Bagpipe example -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, +This is what the well known tune Amazing Grace looks like in bagpipe +notation. -@lilypond[verbatim,ragged-right,quote] -\relative { c c g' } -\addlyrics { - twin -- \skip 4 - kle +@lilypond[verbatim,quote] +\include "bagpipe.ly" +\layout { + indent = 0.0\cm + \context { \Score \remove "Bar_number_engraver" } } -@end lilypond - - -@anchor{Divisi lyrics} -@unnumberedsubsubsec 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 +\header { + title = "Amazing Grace" + meter = "Hymn" + arranger = "Trad. arr." +} -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 } ->> +{ + \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 -@anchor{Switching the melody associated with a lyrics line} -@unnumberedsubsubsec 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[ragged-right,quote] -<< - \relative \new Voice = "lahlah" { - \set Staff.autoBeaming = ##f - c4 - << - \new Voice = "alternative" { - \voiceOne - \times 2/3 { - % show associations clearly. - \override NoteColumn #'force-hshift = #-3 - f8 f g - } - } - { - \voiceTwo - f8.[ g16] - \oneVoice - } >> - a8( b) c - } - \new Lyrics \lyricsto "lahlah" { - Ju -- ras -- sic Park - } - \new Lyrics \lyricsto "lahlah" { - % Tricky: need to set associatedVoice - % one syllable too soon! - \set associatedVoice = alternative % applies to "ran" - Ty -- - ran -- - no -- - \set associatedVoice = lahlah % applies to "rus" - sau -- rus Rex - } >> -@end lilypond - -@noindent -the text for the first stanza is set to a melody called @q{lahlah}, - -@example -\new Lyrics \lyricsto "lahlah" @{ - Ju -- ras -- sic Park -@} -@end example - - -The second stanza initially is set to the @code{lahlah} context, but -for the syllable @q{ran}, it switches to a different melody. -This is achieved with -@example -\set associatedVoice = alternative -@end example - -@noindent -Here, @code{alternative} is the name of the @code{Voice} context -containing the triplet. - -Again, the command must be one syllable too early, before @q{Ty} in -this case. - -@example -\new Lyrics \lyricsto "lahlah" @{ - \set associatedVoice = alternative % applies to "ran" - Ty -- - ran -- - no -- - \set associatedVoice = lahlah % applies to "rus" - sau -- rus Rex -@} -@end example - -@noindent -The underlay is switched back to the starting situation by assigning -@code{lahlah} to @code{associatedVoice}. - - -@anchor{Lyrics independent of notes} -@unnumberedsubsubsec 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 -} - -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 - - -@anchor{Spacing lyrics} -@unnumberedsubsubsec 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 - -To make this change for all lyrics in the score, set the property in the -layout. - -@lilypond[relative,verbatim,quote,ragged-right] -\score { - \relative c' { - 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 - - -@anchor{More about stanzas} -@unnumberedsubsubsec More about stanzas - -@cindex stanza number -@unnumberedsubsubsec Adding stanza numbers - -Stanza numbers can be added by setting @code{stanza}, e.g., - -@lilypond[quote,ragged-right,verbatim,relative=2,fragment] -\new Voice { - \time 3/4 g2 e4 a2 f4 g2. -} \addlyrics { - \set stanza = "1. " - Hi, my name is Bert. -} \addlyrics { - \set stanza = "2. " - Oh, ché -- ri, je t'aime -} -@end lilypond - -@noindent -These numbers are put just before the start of the first syllable. - - -@unnumberedsubsubsec 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 -@unnumberedsubsubsec 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{shortVocalName}. - -@lilypond[fragment,ragged-right,quote,verbatim,relative=2] -\new Voice { - \time 3/4 g2 e4 a2 f4 g2. -} \addlyrics { - \set vocalName = "Bert " - Hi, my name is Bert. -} \addlyrics { - \set vocalName = "Ernie " - Oh, che -- ri, je t'aime -} -@end lilypond - - -@unnumberedsubsubsec 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. -} - -\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 - - -@unnumberedsubsubsec 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. -} - -\score{ << - \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}. - - - -@anchor{Other vocal issues} -@unnumberedsubsubsec Other vocal issues - -@ignore -yeah, I'm giving up somewhat by stuffing a bunch of things in -here. But at least they're in the manual now; it's easier to -move them around in the manual once they're already here. - -Besides, if users complain about everything stuffed in here, I -can ask them for specific instructions about where to move these -examples, and that might get them more involved in the docs. -gp -@end ignore - -@q{Parlato} is spoken without pitch but still with rhythm; it is -notated by cross noteheads. This is demonstrated in -@ref{Special noteheads}. - - - -@node Chord names -@section Chord names - -@menu -* Introducing chord names:: -* Chords mode:: -* Printing chord names:: -@end menu - - -@c awkward name; awkward section name. -@c still, the Basic "chords" seems like a good name... :( -@anchor{Introducing chord names} -@unnumberedsubsubsec Introducing chord names -@cindex chord names - -LilyPond has support for printing chord names. Chords may be entered -in musical chord notation, i.e., @code{< .. >}, but they can also be -entered by name. Internally, the chords are represented as a set of -pitches, so they can be transposed - - -@lilypond[quote,ragged-right,verbatim,ragged-right] -twoWays = \transpose c c' { - \chordmode { - c1 f:sus4 bes/f - } - - - -} - -<< \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 -2 -@end example - - -@anchor{Chords mode} -@unnumberedsubsubsec Chords mode -@cindex Chords mode - -In chord mode sets of pitches (chords) are entered with normal note -names. A chord is entered by the root, which is entered like a -normal pitch - -@lilypond[quote,ragged-right,fragment,verbatim] -\chordmode { es4. d8 c2 } -@end lilypond - -@noindent -The mode is introduced by the keyword @code{\chordmode}. - -@cindex chord entry -@cindex chord mode - -Other chords may be entered by suffixing a colon and introducing a -modifier (which may include a number if desired) - -@lilypond[quote,fragment,verbatim] -\chordmode { e1:m e1:7 e1:m7 } -@end lilypond - -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. The exception is @code{c:13}, for which the 11 is omitted. - -@lilypond[quote,fragment,verbatim] -\chordmode { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 c:13 } -@end lilypond - -@cindex root of chord -@cindex additions, in chords -@cindex removals, in chords - -More complex chords may also be constructed adding separate steps -to a chord. Additions are added after the number following -the colon and are separated by dots - -@lilypond[quote,verbatim,fragment] -\chordmode { c:5.6 c:3.7.8 c:3.6.13 } -@end lilypond - -Chord steps can be altered by suffixing a @code{-} or @code{+} sign -to the number - -@lilypond[quote,verbatim,fragment] -\chordmode { c:7+ c:5+.3- c:3-.5-.7- } -@end lilypond - -Removals are specified similarly and are introduced by a caret. They -must come after the additions - -@lilypond[quote,verbatim,fragment] -\chordmode { c^3 c:7^5 c:9^3.5 } -@end lilypond - -Modifiers can be used to change pitches. The following modifiers are -supported - -@table @code -@item m -The minor chord. This modifier lowers the 3rd and (if present) the 7th step. - -@item dim -The diminished chord. This modifier lowers the 3rd, 5th and (if present) -the 7th step. - -@item aug -The augmented chord. This modifier raises the 5th step. - -@item maj -The major 7th chord. This modifier raises the 7th step if present. - -@item sus -The suspended 4th or 2nd. This modifier removes the 3rd -step. Append either @code{2} or @code{4} to add the 2nd or 4th step to -the chord. -@end table - -Modifiers can be mixed with additions -@lilypond[quote,verbatim,fragment] - \chordmode { c:sus4 c:7sus4 c:dim7 c:m6 } -@end lilypond - -@cindex modifiers, in chords. -@funindex aug -@funindex dim -@funindex maj -@funindex sus -@funindex m - -Since an unaltered 11 does not sound good when combined with an -unaltered 13, the 11 is removed in this case (unless it is added -explicitly) -@lilypond[quote,ragged-right,fragment,verbatim] -\chordmode { c:13 c:13.11 c:m13 } -@end lilypond - -@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,ragged-right,fragment,verbatim] -\chordmode { c1 c/g c/f } -@end lilypond -@funindex /+ - -A bass note can be added instead of transposed out of the chord, -by using @code{/+}@var{pitch}. - -@lilypond[quote,ragged-right,fragment,verbatim] -\chordmode { c1 c/+g c/+f } -@end lilypond - -Chords is a mode similar to @code{\lyricmode}, etc. Most -of the commands continue to work, for example, @code{r} and -@code{\skip} can be used to insert rests and spaces, and property -commands may be used to change various settings. - - - -@refbugs - -Each step can only be present in a chord once. The following -simply produces the augmented chord, since @code{5+} is interpreted -last -@cindex clusters -@lilypond[quote,ragged-right,verbatim,fragment] -\chordmode { c:5.5-.5+ } -@end lilypond - - -@anchor{Printing chord names} -@unnumberedsubsubsec Printing chord names - -@cindex printing chord names -@cindex chord names -@cindex chords - -For displaying printed chord names, use the @internalsref{ChordNames} context. -The chords may be entered either using the notation -described above, or directly using @code{<} and @code{>} - -@lilypond[quote,verbatim,ragged-right] -harmonies = { - \chordmode {a1 b c} -} -<< - \new ChordNames \harmonies - \new Staff \harmonies ->> -@end lilypond - -You can make the chord changes stand out by setting -@internalsref{ChordNames}.@code{chordChanges} to true. This will only -display chord names when there is a change in the chords scheme and at -the start of a new line - -@lilypond[quote,verbatim,ragged-right] -harmonies = \chordmode { - c1:m c:m \break c:m c:m d -} -<< - \new ChordNames { - \set chordChanges = ##t - \harmonies } - \new Staff \transpose c c' \harmonies ->> -@end lilypond - -The previous examples all show chords over a staff. This is not -necessary. Chords may also be printed separately. It may be necessary -to add @internalsref{Volta_engraver} and @internalsref{Bar_engraver} -for showing repeats. - -@lilypond[ragged-right,verbatim] -\new ChordNames \with { - \override BarLine #'bar-size = #4 - \consists Bar_engraver - \consists "Volta_engraver" -} -\chordmode { \repeat volta 2 { - f1:maj7 f:7 bes:7 - c:maj7 -} \alternative { - es e -} -} -@end lilypond - - -The default chord name layout is a system for Jazz music, proposed by -Klaus Ignatzek (see @ref{Literature list}). It can be tuned through the -following properties - -@table @code -@funindex chordNameExceptions -@item chordNameExceptions -This is a list that contains the chords that have special formatting. - -The exceptions list should be encoded as -@example -@{ 1 \markup @{ \super "7" "wahh" @} @} -@end example - -To get this information into @code{chordNameExceptions} takes a little -manoeuvring. The following code transforms @code{chExceptionMusic} -(which is a sequential music) into a list of exceptions. -@example -(sequential-music-to-chord-exceptions chExceptionMusic #t) -@end example -Then, -@example -(append - (sequential-music-to-chord-exceptions chExceptionMusic #t) - ignatzekExceptions) -@end example -adds the new exceptions to the default ones, which are defined in -@file{ly/@/chord@/-modifier@/-init@/.ly}. - -For an example of tuning this property, see also -@lsr{chords,chord@/-name@/-exceptions@/.ly} -@cindex exceptions, chord names. - - -@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 -@lsr{chords,chord@/-name@/-major7@/.ly} for an example. - -@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,ragged-right,fragment,verbatim] -\new ChordNames \chordmode { - c:7sus4 - \set chordNameSeparator - = \markup { \typewriter "|" } - c:7sus4 -} -@end lilypond - -@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 @q{H} for a -B-chord) can be produced by storing a new function in this property. - -@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. - -@funindex chordPrefixSpacer -@item chordPrefixSpacer -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} -set these variables. The effect is -demonstrated here, - -@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 -alternate Jazz notation is also shown on the chart in @ref{Chord name -chart}. Turning on these styles is demonstrated in -@lsr{chords,chord-names-jazz.ly}. - -@cindex Banter -@cindex jazz chords -@cindex chords, jazz - - -@refcommands - -@funindex \germanChords -@code{\germanChords}, -@funindex \semiGermanChords -@code{\semiGermanChords}. -@funindex \italianChords -@code{\italianChords}. -@funindex \frenchChords -@code{\frenchChords}. - - - - -@seealso - -Examples: -@lsrdir{chords} - -Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and -@file{scm/@/chord@/-entry@/.scm}. - - -@refbugs - -Chord names are determined solely from the list of pitches. Chord -inversions are not identified, and neither are added bass notes. This -may result in strange chord names when chords are entered with the -@code{< .. >} syntax. - - - - - -@node Piano music -@section Piano music - -Piano staves are two normal staves coupled with a brace. The staves -are largely independent, but sometimes voices can cross between the -two staves. The same notation is also used for harps and other key -instruments. The @internalsref{PianoStaff} is especially built to -handle this cross-staffing behavior. In this section we discuss the -@internalsref{PianoStaff} and some other pianistic peculiarities. - -@menu -* Automatic staff changes:: -* Manual staff switches:: -* Pedals:: -* Staff switch lines:: -* Cross staff stems:: -@end menu - -@refbugs - -Dynamics are not centered, but workarounds do exist. See the -@q{piano centered dynamics} template in @ref{Piano templates}. - -@cindex cross staff stem -@cindex stem, cross staff -@cindex distance between staves in piano music - - -@anchor{Automatic staff changes} -@unnumberedsubsubsec Automatic staff changes -@cindex Automatic staff changes - -Voices can be made to switch automatically between the top and the bottom -staff. The syntax for this is - -@quotation -@example -\autochange @dots{}@var{music}@dots{} -@end example -@end quotation - -@noindent -This will create two staves inside the current PianoStaff, called -@code{up} and @code{down}. The lower staff will be in bass clef by -default. - -A @code{\relative} section that is outside of @code{\autochange} has -no effect on the pitches of @var{music}, so, if necessary, put -@code{\relative} inside @code{\autochange} like - -@quotation -@example -\autochange \relative @dots{} @dots{} -@end example -@end quotation - - -The autochanger switches on basis of the pitch (middle C is the turning -point), and it looks ahead skipping over rests to switch in -advance. Here is a practical example - -@lilypond[quote,verbatim,ragged-right] -\new PianoStaff - \autochange \relative c' - { - g4 a b c d r4 a g - } -@end lilypond - - -@seealso - -In this manual: @ref{Manual staff switches}. - -Program reference: @internalsref{AutoChangeMusic}. - - - -@refbugs - -The staff switches may not end up in optimal places. For high -quality output, staff switches should be specified manually. - - -@code{\autochange} cannot be inside @code{\times}. - - -@anchor{Manual staff switches} -@unnumberedsubsubsec Manual staff switches - -@cindex manual staff switches -@cindex staff switch, manual - -Voices can be switched between staves manually, using the command -@example -\change Staff = @var{staffname} @var{music} -@end example - -@noindent -The string @var{staffname} is the name of the staff. It switches the -current voice from its current staff to the Staff called -@var{staffname}. Typically @var{staffname} is @code{"up"} or -@code{"down"}. The @context{Staff} referred to must already exist, so -usually the setup for a score will start with a setup of the staves, - -@example -<< - \new Staff = "up" @{ - \skip 1 * 10 % @emph{keep staff alive} - @} - \new Staff = "down" @{ - \skip 1 * 10 % @emph{idem} - @} ->> -@end example - - -and the @context{Voice} is inserted afterwards - -@example -\context Staff = down - \new Voice @{ @dots{} \change Staff = up @dots{} @} -@end example - - -@anchor{Pedals} -@unnumberedsubsubsec Pedals -@cindex Pedals - -Pianos have pedals that alter the way sound is produced. Generally, a -piano has three pedals, sustain, una corda, and sostenuto. - - -Piano pedal instruction can be expressed by attaching -@code{\sustainDown}, @code{\sustainUp}, @code{\unaCorda}, -@code{\treCorde}, @code{\sostenutoDown} and @code{\sostenutoUp} to a -note or chord - -@lilypond[quote,ragged-right,fragment,verbatim] -c'4\sustainDown c'4\sustainUp -@end lilypond - -What is printed can be modified by setting @code{pedal@var{X}Strings}, -where @var{X} is one of the pedal types: @code{Sustain}, -@code{Sostenuto} or @code{UnaCorda}. Refer to -@internalsref{SustainPedal} in the program reference for more -information. - -Pedals can also be indicated by a sequence of brackets, by setting the -@code{pedalSustainStyle} property to bracket objects - -@lilypond[quote,ragged-right,fragment,verbatim,relative=2] -\set Staff.pedalSustainStyle = #'bracket -c\sustainDown d e -b\sustainUp\sustainDown -b g \sustainUp a \sustainDown \bar "|." -@end lilypond - -A third style of pedal notation is a mixture of text and brackets, -obtained by setting the @code{pedalSustainStyle} property to -@code{mixed} - -@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 @q{*Ped.} style for sustain and damper pedals corresponds to -style @code{#'text}. The sostenuto pedal uses @code{mixed} style by -default. - -@lilypond[quote,ragged-right,fragment,verbatim,relative=2] -c\sostenutoDown d e c, f g a\sostenutoUp -@end lilypond - -For fine-tuning the appearance of a pedal bracket, the properties -@code{edge-width}, @code{edge-height}, and @code{shorten-pair} of -@code{PianoPedalBracket} objects (see -@internalsref{PianoPedalBracket} in the Program reference) can be -modified. For example, the bracket may be extended to the right edge -of the note head - -@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}. - -@anchor{Staff switch lines} -@unnumberedsubsubsec Staff switch lines - - -@cindex follow voice -@cindex staff switching -@cindex cross staff - -@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,ragged-right,fragment,relative=1,verbatim] -\new PianoStaff << - \new Staff="one" { - \set followVoice = ##t - c1 - \change Staff=two - b2 a - } - \new Staff="two" { \clef bass \skip 1*2 } ->> -@end lilypond - -@seealso - -Program reference: @internalsref{VoiceFollower}. - -@refcommands - -@funindex \showStaffSwitch -@code{\showStaffSwitch}, -@funindex \hideStaffSwitch -@code{\hideStaffSwitch}. - - -@anchor{Cross staff stems} -@unnumberedsubsubsec Cross staff stems - -Chords that cross staves may be produced by increasing the length -of the stem in the lower staff, so it reaches the stem in the upper -staff, or vice versa. - -@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 -\new PianoStaff << - \new Staff { - \stemDown \stemExtend - f'4 - \stemExtend \noFlag - f'8 - } - \new Staff { - \clef bass - a4 a8 - } ->> -@end lilypond - - - -@node Percussion -@section Percussion - -Rhythmic music is primarily used for percussion and drum notation, but it can -also be used to show the rhythms of melodies. - -@menu -* Showing melody rhythms:: -* Entering percussion:: -* Percussion staves:: -* Ghost notes:: -@end menu - - -@anchor{Showing melody rhythms} -@unnumberedsubsubsec Showing melody rhythms - -Sometimes you might want to show only the rhythm of a melody. This -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,ragged-right,fragment,relative=1,verbatim] -\new RhythmicStaff { - \time 4/4 - c4 e8 f g2 | r4 g r2 | g1:32 | r1 | -} -@end lilypond - -@seealso - -Program reference: @internalsref{RhythmicStaff}. - - -@anchor{Entering percussion} -@unnumberedsubsubsec Entering percussion - -@cindex percussion -@cindex drums - - -Percussion notes may be entered in @code{\drummode} mode, which is -similar to the standard mode for entering notes. Each piece of -percussion has a full name and an abbreviated name, and both can be used -in input files - -@lilypond[quote,ragged-right,verbatim] -\drums { - hihat hh bassdrum bd -} -@end lilypond - -The complete list of drum names is in the init file -@file{ly/@/drumpitch@/-init@/.ly}. -@c TODO: properly document this. - -@seealso - -Program reference: @internalsref{note-event}. - -@anchor{Percussion staves} -@unnumberedsubsubsec Percussion staves -@cindex percussion -@cindex drums - -A percussion part for more than one instrument typically uses a -multiline staff where each position in the staff refers to one piece -of percussion. - - -To typeset the music, the notes must be interpreted in a -@internalsref{DrumStaff} and @internalsref{DrumVoice} contexts - -@lilypond[quote,ragged-right,verbatim] -up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat } -down = \drummode { bassdrum4 snare8 bd r bd sn4 } - \new DrumStaff << - \new DrumVoice { \voiceOne \up } - \new DrumVoice { \voiceTwo \down } - >> -@end lilypond - -The above example shows verbose polyphonic notation. The short -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,ragged-right,fragment,verbatim] -\new DrumStaff << - \new DrumVoice = "1" { s1 *2 } - \new DrumVoice = "2" { s1 *2 } - \drummode { - bd4 sn4 bd4 sn4 - << - { \repeat unfold 16 hh16 } - \\ - { bd4 sn4 bd4 sn4 } - >> - } ->> -@end lilypond - - -There are also other layout possibilities. To use these, set the -property @code{drumStyleTable} in context @internalsref{DrumVoice}. -The following variables have been predefined - -@table @code -@item drums-style -This is the default. It typesets a typical drum kit on a five-line staff - -@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 } -mus = \drummode { - cymc cyms cymr hh hhc hho hhho hhp \break - cb hc bd sn ss tomh tommh tomml toml tomfh tomfl s16 } -\score { - << \new DrumStaff \with { - \remove Bar_engraver - \remove Time_signature_engraver - \override Stem #'transparent = ##t - \override Stem #'Y-extent-callback = ##f - \override VerticalAxisGroup #'minimum-Y-extent = #'(-4.0 . 5.0) - } \mus - \new Lyrics \nam - >> - \layout { - \context { - \Score - \override LyricText #'font-family = #'typewriter - \override BarNumber #'transparent =##T - } - } -} -@end lilypond - -The drum scheme supports six different toms. When there are fewer toms, -simply select the toms that produce the desired result, i.e., to get toms -on the three middle lines you use @code{tommh}, @code{tomml}, and -@code{tomfh}. - -@item timbales-style -This typesets timbales on a two line staff - -@lilypond[quote,ragged-right] -nam = \lyricmode { timh ssh timl ssl cb } -mus = \drummode { timh ssh timl ssl cb s16 } - -<< - \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 - \override VerticalAxisGroup #'minimum-Y-extent = #'(-3.0 . 4.0) - drumStyleTable = #timbales-style - } \mus - \new Lyrics { - \override LyricText #'font-family = #'typewriter - \nam - } ->> -@end lilypond - -@item congas-style -This typesets congas on a two line staff - -@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 } - -<< - \new DrumStaff \with { - \remove Bar_engraver - \remove Time_signature_engraver - drumStyleTable = #congas-style - \override StaffSymbol #'line-count = #2 - - %% this sucks; it will lengthen stems. - \override StaffSymbol #'staff-space = #2 - \override Stem #'transparent = ##t - \override Stem #'Y-extent-callback = ##f - } \mus - \new Lyrics { - \override LyricText #'font-family = #'typewriter - \nam - } ->> -@end lilypond - -@item bongos-style -This typesets bongos on a two line staff - -@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 } - -<< - \new DrumStaff \with { - \remove Bar_engraver - \remove Time_signature_engraver - \override StaffSymbol #'line-count = #2 - drumStyleTable = #bongos-style - - %% this sucks; it will lengthen stems. - \override StaffSymbol #'staff-space = #2 - \override Stem #'transparent = ##t - \override Stem #'Y-extent-callback = ##f - } \mus - \new Lyrics { - \override LyricText #'font-family = #'typewriter - \nam - } ->> -@end lilypond - -@item percussion-style -To typeset all kinds of simple percussion on one line staves. - -@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 } - -<< - \new DrumStaff \with{ - \remove Bar_engraver - drumStyleTable = #percussion-style - \override StaffSymbol #'line-count = #1 - \remove Time_signature_engraver - \override Stem #'transparent = ##t - \override Stem #'Y-extent-callback = ##f - } \mus - \new Lyrics { - \override LyricText #'font-family = #'typewriter - \nam - } ->> -@end lilypond -@end table - -If you do not like any of the predefined lists you can define your own -list at the top of your file - -@lilypond[quote,ragged-right,verbatim] -#(define mydrums '( - (bassdrum default #f -1) - (snare default #f 0) - (hihat cross #f 1) - (pedalhihat xcircle "stopped" 2) - (lowtom diamond #f 3))) -up = \drummode { hh8 hh hh hh hhp4 hhp } -down = \drummode { bd4 sn bd toml8 toml } - -\new DrumStaff << - \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) - \new DrumVoice { \voiceOne \up } - \new DrumVoice { \voiceTwo \down } ->> -@end lilypond - - -@seealso - -Init files: @file{ly/@/drumpitch@/-init@/.ly}. - -Program reference: @internalsref{DrumStaff}, @internalsref{DrumVoice}. - -@refbugs - -Because general MIDI does not contain rim shots, the sidestick is used -for this purpose instead. - - -@c FIXME: check name -gp -@anchor{Ghost notes} -@unnumberedsubsubsec 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] hh16 - < \parenthesize sn > hh < \parenthesize - sn > hh8 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 - -@cindex tablature -@cindex guitar tablature - -@menu -* String number indications:: -* Tablatures basic:: -* Non-guitar tablatures:: -* Banjo tablatures:: -* Fret diagrams:: -* Right hand fingerings:: -* Other guitar issues:: -@end menu - -@anchor{String number indications} -@unnumberedsubsubsec String number indications - -@cindex String numbers - -String numbers can be added to chords, by indicating the string number -with @code{\}@var{number}, - -@lilypond[relative,relative=1,ragged-right,fragment] - -@end lilypond - - -@seealso - -Program reference: @internalsref{StringNumber}, -@lsr{guitar/,string-number.ly}. - - -@anchor{Tablatures basic} -@unnumberedsubsubsec Tablatures basic -@cindex Tablatures basic - -Tablature notation is used for notating music for plucked string -instruments. Pitches are not denoted with note heads, but by -numbers indicating on which string and fret a note must be played. LilyPond -offers limited support for tablature. - -The string number associated to a note is given as a backslash -followed by a number, e.g., @code{c4\3} for a C quarter on the third -string. By default, string 1 is the highest one, and the tuning -defaults to the standard guitar tuning (with 6 strings). The notes -are printed as tablature, by using @internalsref{TabStaff} and -@internalsref{TabVoice} contexts - -@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 - -@funindex minimumFret -@cindex fret - -When no string is specified, the first string that does not give a -fret number less than @code{minimumFret} is selected. The default -value for @code{minimumFret} is 0 - - -@example -e16 fis gis a b4 -\set TabStaff.minimumFret = #8 -e16 fis gis a b4 -@end example -@lilypond[quote,ragged-right] -frag = { - \key e \major - e16 fis gis a b4 - \set TabStaff.minimumFret = #8 - e16 fis gis a b4 -} - \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}. - -@refbugs - -Chords are not handled in a special way, and hence the automatic -string selector may easily select the same string to two notes in a -chord. - -In order to handle @code{\partcombine}, a @code{TabStaff} must use -specially-created voices: - -@lilypond[quote,ragged-right,verbatim] -melodia = \partcombine { e4 g g g }{ e4 e e e } -<< - \new TabStaff << - \new TabVoice = "one" s1 - \new TabVoice = "two" s1 - \new TabVoice = "shared" s1 - \new TabVoice = "solo" s1 - { \melodia } - >> ->> -@end lilypond - - -@anchor{Non-guitar tablatures} -@unnumberedsubsubsec Non-guitar tablatures -@cindex Non-guitar tablatures - -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{stringTunings} are the -numbers of semitones to subtract or add, starting the specified pitch -by default middle C, in string order. LilyPond automatically calculates -the number of strings by looking at @code{stringTunings}. - -In the next example, -@code{stringTunings} is set for the pitches e, a, d, and g - -@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. - - - -@anchor{Banjo tablatures} -@unnumberedsubsubsec 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 - -The file @file{scm/@/output@/-lib@/.scm} contains predefined banjo tunings. - - -@anchor{Fret diagrams} -@unnumberedsubsubsec Fret diagrams -@cindex fret diagrams -@cindex chord diagrams - -Fret diagrams can be added to music as a markup to the desired note. The -markup contains information about the desired fret diagram, as shown in the -following example - -@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) { - \override #'(finger-code . below-string) { - \fret-diagram-verbose #'((place-fret 6 2 1) (barre 6 1 2) - (place-fret 5 4 3) (place-fret 4 4 4) - (place-fret 3 3 2) (place-fret 2 2 1) - (place-fret 1 2 1)) - } - } - fis' fis' fis' - c'^\markup \override #'(dot-radius . 0.35) { - \override #'(finger-code . in-dot) { - \override #'(dot-color . white) { - \fret-diagram-terse #"x;3-1-(;5-2;5-3;5-4;3-1-);" - } - } - } - c' c' c' -} -@end lilypond - - -There are three different fret-diagram markup interfaces: standard, terse, -and verbose. The three interfaces produce equivalent markups, but have -varying amounts of information in the markup string. Details about the -markup interfaces are found at @ref{Overview of text markup commands}. - -You can set a number of graphical properties according to your preference. -Details about the property interface to fret diagrams are found at -@internalsref{fret-diagram-interface}. - - -@seealso - -Examples: @lsrdir{guitar} - - -@anchor{Right hand fingerings} -@unnumberedsubsubsec Right hand fingerings - -Right hand fingerings in chords can be entered using -@code{@var{note}-\rightHandFinger @var{finger}} - -@lilypond[verbatim,fragment,relative=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) - 4 - \set strokeFingerOrientations = #'(up right down) - 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" "!" "@") - 4 - 4 -} -@end lilypond - -@seealso - -Program reference: @internalsref{StrokeFinger} - - - -@anchor{Other guitar issues} -@unnumberedsubsubsec Other guitar issues - -This example demonstrates how to include guitar position and -barring indications. - -@lilypond[quote,ragged-right,fragment,verbatim,relative=0] -\clef "G_8" -b16 d16 g16 b16 e16 -\textSpannerDown -\override TextSpanner #'bound-details #'left #'text = #"XII " - g16\startTextSpan - b16 e16 g16 e16 b16 g16\stopTextSpan -e16 b16 g16 d16 -@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 -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}. - - -@node Other instrument-specific -@section Other instrument-specific - -This section includes extra information for writing for instruments. - -@menu -* Orchestral strings:: -* Bagpipe:: -@end menu - - -@node Orchestral strings -@subsection Orchestral strings - -@anchor{Artificial harmonics (strings)} -@unnumberedsubsubsec Artificial harmonics (strings) - -@cindex artificial harmonics - -Artificial harmonics are notated with a different notehead style. They -are entered by marking the harmonic pitch with @code{\harmonic}. - -@lilypond[ragged-right,verbatim,quote,fragment,relative=1] -4 -@end lilypond - - -@node Bagpipe -@subsection Bagpipe - -@anchor{Bagpipe definitions} -@unnumberedsubsubsec 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 appropriate 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. - - -@anchor{Bagpipe example} -@unnumberedsubsubsec 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 - -@cindex Vaticana, Editio -@cindex Medicaea, Editio -@cindex hufnagel -@cindex Petrucci -@cindex mensural - -Support for ancient notation includes features for mensural notation -and Gregorian Chant notation. There is also limited support for -figured bass notation. - -Many graphical objects provide a @code{style} property, see -@itemize @bullet -@item -@ref{Ancient note heads}, -@item -@ref{Ancient accidentals}, -@item -@ref{Ancient rests}, -@item -@ref{Ancient clefs}, -@item -@ref{Ancient flags}, -@item -@ref{Ancient time signatures}. -@end itemize - -By manipulating such a grob property, the typographical appearance of -the affected graphical objects can be accommodated for a specific -notation flavor without the need for introducing any new notational -concept. - -In addition to the standard articulation signs described in section -@ref{Articulations}, specific articulation signs for ancient notation -are provided. - -@itemize @bullet -@item -@ref{Ancient articulations} -@end itemize - -Other aspects of ancient notation can not that easily be expressed -in terms of just changing a style property of a graphical object or -adding articulation signs. Some notational concepts are introduced -specifically for ancient notation, - -@itemize @bullet -@item -@ref{Custodes}, -@item -@ref{Divisiones}, -@item -@ref{Ligatures}. -@end itemize - -If this all is too much of documentation for you, and you just want to -dive into typesetting without worrying too much about the details on -how to customize a context, you may have a look at the predefined -contexts. Use them to set up predefined style-specific voice and -staff contexts, and directly go ahead with the note entry, - -@itemize @bullet -@item -@ref{Gregorian Chant contexts}, -@item -@ref{Mensural contexts}. -@end itemize - -There is limited support for figured bass notation which came -up during the baroque period. - -@itemize @bullet -@item -@ref{Figured bass} -@end itemize - -Here are all subtopics at a glance: - -@menu -* Ancient note heads:: -* Ancient accidentals:: -* Ancient rests:: -* Ancient clefs:: -* Ancient flags:: -* Ancient time signatures:: -* Ancient articulations:: -* Custodes:: -* Divisiones:: -* Ligatures:: -* White mensural ligatures:: -* Gregorian square neumes ligatures:: -* Gregorian Chant contexts:: -* Mensural contexts:: -* Musica ficta accidentals:: -* Figured bass:: -@end menu - - - -@anchor{Ancient note heads} -@unnumberedsubsubsec Ancient 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} -property of the @internalsref{NoteHead} object to @code{baroque}, -@code{neomensural}, @code{mensural} or @code{petrucci}. The -@code{baroque} style differs from the @code{default} style only in -using a square shape for @code{\breve} note heads. The -@code{neomensural} style differs from the @code{baroque} style in that -it uses rhomboidal heads for whole notes and all smaller durations. -Stems are centered on the note heads. This style is particularly -useful when transcribing mensural music, e.g., for the incipit. The -@code{mensural} style produces note heads that mimic the look of note -heads in historic printings of the 16th century. Finally, the -@code{petrucci} style also mimicks historic printings, but uses bigger -note heads. - -The following example demonstrates the @code{neomensural} style - -@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 -@end lilypond - -When typesetting a piece in Gregorian Chant notation, the -@internalsref{Gregorian_ligature_engraver} will automatically select -the proper note heads, so there is no need to explicitly set the -note head style. Still, the note head style can be set, e.g., to -@code{vaticana_punctum} to produce punctum neumes. Similarly, a -@internalsref{Mensural_ligature_engraver} is used to automatically -assemble mensural ligatures. See @ref{Ligatures}, for how ligature -engravers work. - -@seealso - -@ref{Note head styles}, gives an overview over all available note head styles. - - -@anchor{Ancient accidentals} -@unnumberedsubsubsec Ancient accidentals - -@cindex accidentals - - -Use the @code{glyph-name-alist} property of grob -@internalsref{Accidental} and @internalsref{KeySignature} to select -ancient accidentals. - -@lilypond[quote,ragged-right,staffsize=26] -\score { -{ - \fatText - s^\markup { - \column { - "vaticana" - \line { " " \musicglyph #"accidentals.vaticana-1" - " " \musicglyph #"accidentals.vaticana0" } - } - \column { - "medicaea" - \line { " " \musicglyph #"accidentals.medicaea-1" } - } - \column { - "hufnagel" - \line { " " \musicglyph #"accidentals.hufnagel-1" } - } - \column { - "mensural" - \line { " " \musicglyph #"accidentals.mensural-1" - " " \musicglyph #"accidentals.mensural1" } - } - } -} -\layout { - interscoreline = 1 - \context { \Score \remove "Bar_number_engraver" } - \context { \Staff - \remove "Clef_engraver" - \remove "Key_engraver" - \remove "Time_signature_engraver" - \remove "Staff_symbol_engraver" - \override VerticalAxisGroup #'minimum-Y-extent = ##f - } - } -} -@end lilypond - -As shown, not all accidentals are supported by each style. When -trying to access an unsupported accidental, LilyPond will switch to a -different style, as demonstrated in -@lsr{ancient,ancient-accidentals.ly}. - -Similarly to local accidentals, the style of the key signature can be -controlled by the @code{glyph-name-alist} property of the -@internalsref{KeySignature} grob. - -@seealso - -In this manual: @ref{Pitches}, @ref{Cautionary accidentals}, and -@ref{Automatic accidentals}, give a general introduction of the use of -accidentals. @ref{Key signature}, gives a general introduction of -the use of key signatures. - -Program reference: @internalsref{KeySignature}. - -Examples: @lsrdir{ancient} - -@anchor{Ancient rests} -@unnumberedsubsubsec Ancient rests - -@cindex rests, ancient - - -Use the @code{style} property of grob @internalsref{Rest} to select -ancient rests. Supported styles are @code{classical}, -@code{neomensural}, and @code{mensural}. @code{classical} differs -from the @code{default} style only in that the quarter rest looks like -a horizontally mirrored 8th rest. The @code{neomensural} style suits -well for, e.g., the incipit of a transcribed mensural piece of music. -The @code{mensural} style finally mimics the appearance of rests as -in historic prints of the 16th century. - -The following example demonstrates the @code{neomensural} style - -@lilypond[quote,fragment,ragged-right,verbatim] -\set Score.skipBars = ##t -\override Rest #'style = #'neomensural -r\longa r\breve r1 r2 r4 r8 r16 -@end lilypond - -There are no 32th and 64th rests specifically for the mensural or -neo-mensural style. Instead, the rests from the default style will be -taken. See @lsr{pitches,rests} for a chart of all rests. - -There are no rests in Gregorian Chant notation; instead, it uses -@ref{Divisiones}. - -@seealso - -In this manual: @ref{Rests}, gives a general introduction into the use of -rests. - - -@anchor{Ancient clefs} -@unnumberedsubsubsec Ancient clefs - -@cindex clefs - - -LilyPond supports a variety of clefs, many of them ancient. - -The following table shows all ancient clefs that are supported via the -@code{\clef} command. Some of the clefs use the same glyph, but -differ only with respect to the line they are printed on. In such -cases, a trailing number in the name is used to enumerate these clefs. -Still, you can manually force a clef glyph to be typeset on an -arbitrary line, as described in @ref{Clef}. The note printed to the -right side of each clef in the example column denotes the @code{c'} -with respect to that clef. - -@multitable @columnfractions .4 .4 .2 -@item -@b{Description} -@tab -@b{Supported Clefs} -@tab -@b{Example} - -@item -modern style mensural C clef -@tab -@code{neomensural-c1}, @code{neomensural-c2},@* -@code{neomensural-c3}, @code{neomensural-c4} -@tab -@lilypond[fragment,relative=1,notime] - \clef "neomensural-c2" c -@end lilypond - -@item -petrucci style mensural C clefs, for use on different staff lines -(the examples show the 2nd staff line C clef) -@tab -@code{petrucci-c1}, @code{petrucci-c2},@* -@code{petrucci-c3}, @code{petrucci-c4},@* -@code{petrucci-c5} -@tab -@lilypond[fragment,relative=1,notime] - \clef "petrucci-c2" - \override NoteHead #'style = #'mensural - c -@end lilypond - -@item -petrucci style mensural F clef -@tab -@code{petrucci-f} -@tab -@lilypond[fragment,relative=1,notime] - \clef "petrucci-f" - \override NoteHead #'style = #'mensural - c -@end lilypond - -@item -petrucci style mensural G clef -@tab -@code{petrucci-g} -@tab -@lilypond[fragment,relative=1,notime] - \clef "petrucci-g" - \override NoteHead #'style = #'mensural - c -@end lilypond - -@item -historic style mensural C clef -@tab -@code{mensural-c1}, @code{mensural-c2},@* -@code{mensural-c3}, @code{mensural-c4} -@tab -@lilypond[fragment,relative=1,notime] - \clef "mensural-c2" - \override NoteHead #'style = #'mensural - c -@end lilypond - -@item -historic style mensural F clef -@tab -@code{mensural-f} -@tab -@lilypond[fragment,relative=1,notime] - \clef "mensural-f" - \override NoteHead #'style = #'mensural - c -@end lilypond - -@item -historic style mensural G clef -@tab -@code{mensural-g} -@tab -@lilypond[fragment,relative=1,notime] - \clef "mensural-g" - \override NoteHead #'style = #'mensural - c -@end lilypond - -@item -Editio Vaticana style do clef -@tab -@code{vaticana-do1}, @code{vaticana-do2},@* -@code{vaticana-do3} -@tab -@lilypond[fragment,relative=1,notime] - \override Staff.StaffSymbol #'line-count = #4 - \override Staff.StaffSymbol #'color = #red - \override Staff.LedgerLineSpanner #'color = #red - \override Voice.Stem #'transparent = ##t - \override NoteHead #'style = #'vaticana.punctum - \clef "vaticana-do2" - c -@end lilypond - -@item -Editio Vaticana style fa clef -@tab -@code{vaticana-fa1}, @code{vaticana-fa2} -@tab -@lilypond[fragment,relative=1,notime] - \override Staff.StaffSymbol #'line-count = #4 - \override Staff.StaffSymbol #'color = #red - \override Staff.LedgerLineSpanner #'color = #red - \override Voice.Stem #'transparent = ##t - \override NoteHead #'style = #'vaticana.punctum - \clef "vaticana-fa2" - c -@end lilypond - -@item -Editio Medicaea style do clef -@tab -@code{medicaea-do1}, @code{medicaea-do2},@* -@code{medicaea-do3} -@tab -@lilypond[fragment,relative=1,notime] - \override Staff.StaffSymbol #'line-count = #4 - \override Staff.StaffSymbol #'color = #red - \override Staff.LedgerLineSpanner #'color = #red - \override Voice.Stem #'transparent = ##t - \override NoteHead #'style = #'medicaea.punctum - \clef "medicaea-do2" - c -@end lilypond - -@item -Editio Medicaea style fa clef -@tab -@code{medicaea-fa1}, @code{medicaea-fa2} -@tab -@lilypond[fragment,relative=1,notime] - \override Staff.StaffSymbol #'line-count = #4 - \override Staff.StaffSymbol #'color = #red - \override Staff.LedgerLineSpanner #'color = #red - \override Voice.Stem #'transparent = ##t - \override NoteHead #'style = #'medicaea.punctum - \clef "medicaea-fa2" - c -@end lilypond - -@item -historic style hufnagel do clef -@tab -@code{hufnagel-do1}, @code{hufnagel-do2},@* -@code{hufnagel-do3} -@tab -@lilypond[fragment,relative=1,notime] - \override Staff.StaffSymbol #'line-count = #4 - \override Staff.StaffSymbol #'color = #red - \override Staff.LedgerLineSpanner #'color = #red - \override Voice.Stem #'transparent = ##t - \override NoteHead #'style = #'hufnagel.punctum - \clef "hufnagel-do2" - c -@end lilypond - -@item -historic style hufnagel fa clef -@tab -@code{hufnagel-fa1}, @code{hufnagel-fa2} -@tab -@lilypond[fragment,relative=1,notime] - \override Staff.StaffSymbol #'line-count = #4 - \override Staff.StaffSymbol #'color = #red - \override Staff.LedgerLineSpanner #'color = #red - \override Voice.Stem #'transparent = ##t - \override NoteHead #'style = #'hufnagel.punctum - \clef "hufnagel-fa2" - c -@end lilypond - -@item -historic style hufnagel combined do/fa clef -@tab -@code{hufnagel-do-fa} -@tab -@lilypond[fragment,relative=1,notime] - \override Staff.StaffSymbol #'color = #red - \override Staff.LedgerLineSpanner #'color = #red - \override Voice.Stem #'transparent = ##t - \override NoteHead #'style = #'hufnagel.punctum - \clef "hufnagel-do-fa" - c -@end lilypond -@end multitable - - - -@emph{Modern style} means @qq{as is typeset in contemporary editions of -transcribed mensural music.} - -@emph{Petrucci style} means @qq{inspired by printings published by the -famous engraver Petrucci (1466-1539).} - -@emph{Historic style} means @qq{as was typeset or written in historic -editions (other than those of Petrucci).} - -@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. - -@seealso - -In this manual: see @ref{Clef}. - -@refbugs - -The mensural g clef is mapped to the Petrucci g clef. - - - -@anchor{Ancient flags} -@unnumberedsubsubsec Ancient flags - -@cindex flags - - -Use the @code{flag-style} property of grob @internalsref{Stem} to -select ancient flags. Besides the @code{default} flag style, -only the @code{mensural} style is supported - -@lilypond[quote,fragment,ragged-right,verbatim] -\override Stem #'flag-style = #'mensural -\override Stem #'thickness = #1.0 -\override NoteHead #'style = #'mensural -\autoBeamOff -c'8 d'8 e'8 f'8 c'16 d'16 e'16 f'16 c'32 d'32 e'32 f'32 s8 -c''8 d''8 e''8 f''8 c''16 d''16 e''16 f''16 c''32 d''32 e''32 f''32 -@end lilypond - -Note that the innermost flare of each mensural flag always is -vertically aligned with a staff line. - -There is no particular flag style for neo-mensural notation. Hence, -when typesetting the incipit of a transcribed piece of mensural -music, the default flag style should be used. There are no flags in -Gregorian Chant notation. - -@refbugs - -The attachment of ancient flags to stems is slightly off due to a -change in early 2.3.x. - -Vertically aligning each flag with a staff line assumes that stems -always end either exactly on or exactly in the middle between two -staff lines. This may not always be true when using advanced layout -features of classical notation (which however are typically out of -scope for mensural notation). - -@anchor{Ancient time signatures} -@unnumberedsubsubsec Ancient time signatures - -@cindex time signatures - - -There is limited support for mensural time signatures. The -glyphs are hard-wired to particular time fractions. In other words, -to get a particular mensural signature glyph with the @code{\time n/m} -command, @code{n} and @code{m} have to be chosen according to the -following table - -@lilypond[quote,ragged-right] -\layout { - indent = 0.0 - \context { - \Staff - \remove Staff_symbol_engraver - \remove Clef_engraver - \remove Time_signature_engraver - } -} -{ - \set Score.timing = ##f - \set Score.barAlways = ##t - s_\markup { "\\time 4/4" }^\markup { " " \musicglyph -#"timesig.neomensural44" } - s - s_\markup { "\\time 2/2" }^\markup { " " \musicglyph -#"timesig.neomensural22" } - s - s_\markup { "\\time 6/4" }^\markup { " " \musicglyph -#"timesig.neomensural64" } - s - s_\markup { "\\time 6/8" }^\markup { " " \musicglyph -#"timesig.neomensural68" } - \break - s_\markup { "\\time 3/2" }^\markup { " " \musicglyph -#"timesig.neomensural32" } - s - s_\markup { "\\time 3/4" }^\markup { " " \musicglyph -#"timesig.neomensural34" } - s - s_\markup { "\\time 9/4" }^\markup { " " \musicglyph -#"timesig.neomensural94" } - s - s_\markup { "\\time 9/8" }^\markup { " " \musicglyph -#"timesig.neomensural98" } - \break - s_\markup { "\\time 4/8" }^\markup { " " \musicglyph -#"timesig.neomensural48" } - s - s_\markup { "\\time 2/4" }^\markup { " " \musicglyph -#"timesig.neomensural24" } -} -@end lilypond - -Use the @code{style} property of grob @internalsref{TimeSignature} to -select ancient time signatures. Supported styles are -@code{neomensural} and @code{mensural}. The above table uses the -@code{neomensural} style. This style is appropriate for the -incipit of transcriptions of mensural pieces. The @code{mensural} -style mimics the look of historical printings of the 16th century. - -The following examples show the differences in style, - -@lilypond[ragged-right,fragment,relative=1,quote] -{ - \fatText - - \time 2/2 - c1^\markup { \hspace #-2.0 \typewriter default } - - \override Staff.TimeSignature #'style = #'numbered - \time 2/2 - c1^\markup { \hspace #-2.0 \typewriter numbered } - - \override Staff.TimeSignature #'style = #'mensural - \time 2/2 - c1^\markup { \hspace #-2.0 \typewriter mensural } - - \override Staff.TimeSignature #'style = #'neomensural - \time 2/2 - c1^\markup { \hspace #-2.0 \typewriter neomensural } - \override Staff.TimeSignature #'style = #'single-digit - \time 2/2 - c1^\markup { \hspace #-2.0 \typewriter single-digit } -} -@end lilypond - -@seealso - -This manual: @ref{Time signature}, gives a general introduction to -the use of time signatures. - -@refbugs - -Ratios of note durations do not change with the time signature. For -example, the ratio of 1 brevis = 3 semibrevis (tempus perfectum) must -be made by hand, by setting - -@example -breveTP = #(ly:make-duration -1 0 3 2) -@dots{} -@{ c\breveTP f1 @} -@end example - -@noindent -This sets @code{breveTP} to 3/2 times 2 = 3 times a whole note. - -The @code{old6/8alt} symbol (an alternate symbol for 6/8) is not -addressable with @code{\time}. Use a @code{\markup} instead - -@anchor{Ancient articulations} -@unnumberedsubsubsec Ancient articulations - -@cindex articulations - -In addition to the standard articulation signs described in section -@ref{Articulations}, articulation signs for ancient notation are -provided. These are specifically designed for use with notation in -Editio Vaticana style. - -@lilypond[quote,ragged-right,verbatim] -\include "gregorian-init.ly" -\score { - \new VaticanaVoice { - \override TextScript #'font-family = #'typewriter - \override TextScript #'font-shape = #'upright - \override Script #'padding = #-0.1 - 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 - -@refbugs - -Some articulations are vertically placed too closely to the -corresponding 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. - -@anchor{Custodes} -@unnumberedsubsubsec Custodes - -@cindex custos -@cindex custodes - -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. - -Custodes were frequently used in music notation until the 17th -century. Nowadays, they have survived only in a few particular forms -of musical notation such as contemporary editions of Gregorian chant -like the @emph{editio vaticana}. There are different custos glyphs -used in different flavors of notational style. - -For typesetting custodes, just put a @internalsref{Custos_engraver} into the -@internalsref{Staff} context when declaring the @code{\layout} block, -as shown in the following example - -@example -\layout @{ - \context @{ - \Staff - \consists Custos_engraver - Custos \override #'style = #'mensural - @} -@} -@end example - -The result looks like this - -@lilypond[quote,ragged-right] -\score { -{ - a'1 - \override Staff.Custos #'style = #'mensural - \break - g' -} -\layout { - \context { \Staff \consists Custos_engraver } - } -} -@end lilypond - -The custos glyph is selected by the @code{style} property. The styles -supported are @code{vaticana}, @code{medicaea}, @code{hufnagel}, and -@code{mensural}. They are demonstrated in the following fragment - -@lilypond[quote,ragged-right,fragment] -\new Lyrics \lyricmode { - \markup { \column { - \typewriter "vaticana" - \line { " " \musicglyph #"custodes.vaticana.u0" } - } } - \markup { \column { - \typewriter "medicaea" - \line { " " \musicglyph #"custodes.medicaea.u0" } - }} - \markup { \column { - \typewriter "hufnagel" - \line { " " \musicglyph #"custodes.hufnagel.u0" } - }} - \markup { \column { - \typewriter "mensural" - \line { " " \musicglyph #"custodes.mensural.u0" } - }} -} -@end lilypond - -@seealso - -Program reference: @internalsref{Custos}. - -Examples: -@lsr{ancient,custodes@/.ly}. - - -@anchor{Divisiones} -@unnumberedsubsubsec Divisiones - -@cindex divisio -@cindex divisiones -@cindex finalis - -A @emph{divisio} (plural: @emph{divisiones}; Latin word for -@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 -the breathmarks from @ref{Breath marks}. The @emph{finalis} sign not -only marks the end of a chant, but is also frequently used within a -single antiphonal/responsorial chant to mark the end of each section. - - -To use divisiones, include the file @file{gregorian@/-init@/.ly}. It -contains definitions that you can apply by just inserting -@code{\divisioMinima}, @code{\divisioMaior}, @code{\divisioMaxima}, -and @code{\finalis} at proper places in the input. Some editions use -@emph{virgula} or @emph{caesura} instead of divisio minima. -Therefore, @file{gregorian@/-init@/.ly} also defines @code{\virgula} and -@code{\caesura} - -@lilypondfile[quote,ragged-right]{divisiones.ly} - -@refcommands - -@funindex \virgula -@code{\virgula}, -@funindex \caesura -@code{\caesura}, -@funindex \divisioMinima -@code{\divisioMinima}, -@funindex \divisioMaior -@code{\divisioMaior}, -@funindex \divisioMaxima -@code{\divisioMaxima}, -@funindex \finalis -@code{\finalis}. - -@seealso - -In this manual: @ref{Breath marks}. - -Program reference: @internalsref{BreathingSign}. - -Examples: @lsr{expressive,breathing-sign.ly}. - - -@anchor{Ligatures} -@unnumberedsubsubsec Ligatures - -@cindex Ligatures - -@c TODO: Should double check if I recalled things correctly when I wrote -@c down the following paragraph by heart. - -A ligature is a graphical symbol that represents at least two distinct -notes. Ligatures originally appeared in the manuscripts of Gregorian -chant notation to denote ascending or descending sequences of notes. - -Ligatures are entered by enclosing them in @code{\[} and @code{\]}. -Some ligature styles may need additional input syntax specific for -this particular type of ligature. By default, the -@internalsref{LigatureBracket} engraver just puts a square bracket -above the ligature - -@lilypond[quote,ragged-right,verbatim] -\transpose c c' { - \[ g c a f d' \] - a g f - \[ e f a g \] -} -@end lilypond - -To select a specific style of ligatures, a proper ligature engraver -has to be added to the @internalsref{Voice} context, as explained in -the following subsections. Only white mensural ligatures -are supported with certain limitations. - - - -@refbugs - -Ligatures need special spacing that has not yet been implemented. As -a result, there is too much space between ligatures most of the time, -and line breaking often is unsatisfactory. Also, lyrics do not -correctly align with ligatures. - -Accidentals must not be printed within a ligature, but instead need to -be collected and printed in front of it. - -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 -@file{gregorian@/-init@/.ly} can be included; it provides a scheme -function -@example -\ligature @var{music expr} -@end example -with the same effect and is believed to be stable. - -@menu -* White mensural ligatures:: -* Gregorian square neumes ligatures:: -@end menu - -@anchor{White mensural ligatures} -@unnumberedsubsubsec White mensural ligatures - -@cindex Mensural ligatures -@cindex White mensural ligatures - -There is limited support for white mensural ligatures. - -To engrave white mensural ligatures, in the layout block put the -@internalsref{Mensural_ligature_engraver} into the -@internalsref{Voice} context, and remove the -@internalsref{Ligature_bracket_engraver}, like this - -@example -\layout @{ - \context @{ - \Voice - \remove Ligature_bracket_engraver - \consists Mensural_ligature_engraver - @} -@} -@end example - -There is no additional input language to describe the shape of a -white mensural ligature. The shape is rather determined solely from -the pitch and duration of the enclosed notes. While this approach may -take a new user a while to get accustomed to, it has the great advantage -that the full musical information of the ligature is known internally. -This is not only required for correct MIDI output, but also allows for -automatic transcription of the ligatures. - -For example, - -@example -\set Score.timing = ##f -\set Score.defaultBarType = "empty" -\override NoteHead #'style = #'neomensural -\override Staff.TimeSignature #'style = #'neomensural -\clef "petrucci-g" -\[ c'\maxima g \] -\[ d\longa c\breve f e d \] -\[ c'\maxima d'\longa \] -\[ e'1 a g\breve \] -@end example -@lilypond[quote,ragged-right] -\score { - \transpose c c' { - \set Score.timing = ##f - \set Score.defaultBarType = "empty" - \override NoteHead #'style = #'neomensural - \override Staff.TimeSignature #'style = #'neomensural - \clef "petrucci-g" - \[ c'\maxima g \] - \[ d\longa c\breve f e d \] - \[ c'\maxima d'\longa \] - \[ e'1 a g\breve \] - } - \layout { - \context { - \Voice - \remove Ligature_bracket_engraver - \consists Mensural_ligature_engraver - } - } -} -@end lilypond - -Without replacing @internalsref{Ligature_bracket_engraver} with -@internalsref{Mensural_ligature_engraver}, the same music transcribes -to the following - -@lilypond[quote,ragged-right] -\transpose c c' { - \set Score.timing = ##f - \set Score.defaultBarType = "empty" - \override NoteHead #'style = #'neomensural - \override Staff.TimeSignature #'style = #'neomensural - \clef "petrucci-g" - \[ c'\maxima g \] - \[ d\longa c\breve f e d \] - \[ c'\maxima d'\longa \] - \[ e'1 a g\breve \] -} -@end lilypond - -@refbugs - -Horizontal spacing is poor. - -@anchor{Gregorian square neumes ligatures} -@unnumberedsubsubsec Gregorian square neumes ligatures - -@cindex Square neumes ligatures -@cindex Gregorian square neumes ligatures - -There is limited support for Gregorian square neumes notation -(following the style of the Editio Vaticana). Core ligatures can -already be typeset, but essential issues for serious typesetting are -still lacking, such as (among others) horizontal alignment of multiple -ligatures, lyrics alignment and proper handling of accidentals. - - -The following table contains the extended neumes table of the 2nd -volume of the Antiphonale Romanum (@emph{Liber Hymnarius}), published -1983 by the monks of Solesmes. - -@multitable @columnfractions .4 .2 .2 .2 - -@item -@b{Neuma aut@* -Neumarum Elementa} -@tab -@b{Figurae@* -Rectae} -@tab -@b{Figurae@* -Liquescentes@* -Auctae} -@tab -@b{Figurae@* -Liquescentes@* -Deminutae} - -@c TODO: \layout block is identical in all of the below examples. -@c Therefore, it should somehow be included rather than duplicated all -@c the time. --jr - -@c why not make identifiers in ly/engraver-init.ly? --hwn - -@c Because it's just used to typeset plain notes without -@c a staff for demonstration purposes rather than something -@c special of Gregorian chant notation. --jr - -@item -@code{1. Punctum} -@tab -@lilypond[staffsize=26,line-width=1.5\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Punctum - \[ b \] - \noBreak s^\markup {"a"} \noBreak - - % Punctum Inclinatum - \[ \inclinatum b \] - \noBreak s^\markup {"b"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=2.5\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Punctum Auctum Ascendens - \[ \auctum \ascendens b \] - \noBreak s^\markup {"c"} \noBreak - - % Punctum Auctum Descendens - \[ \auctum \descendens b \] - \noBreak s^\markup {"d"} \noBreak - - % Punctum Inclinatum Auctum - \[ \inclinatum \auctum b \] - \noBreak s^\markup {"e"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Punctum Inclinatum Parvum - \[ \inclinatum \deminutum b \] - \noBreak s^\markup {"f"} - } -\layout { \neumeDemoLayout }} -@end lilypond - -@item -@code{2. Virga} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Virga - \[ \virga b \] - \noBreak s^\markup {"g"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@tab - -@item -@code{3. Apostropha vel Stropha} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Stropha - \[ \stropha b \] - \noBreak s^\markup {"h"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Stropha Aucta - \[ \stropha \auctum b \] - \noBreak s^\markup {"i"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab - -@item -@code{4. Oriscus} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Oriscus - \[ \oriscus b \] - \noBreak s^\markup {"j"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@tab - -@item -@code{5. Clivis vel Flexa} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Clivis vel Flexa - \[ b \flexa g \] - s^\markup {"k"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=2.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Clivis Aucta Descendens - \[ b \flexa \auctum \descendens g \] - \noBreak s^\markup {"l"} \noBreak - - % Clivis Aucta Ascendens - \[ b \flexa \auctum \ascendens g \] - \noBreak s^\markup {"m"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Cephalicus - \[ b \flexa \deminutum g \] - s^\markup {"n"} - } -\layout { \neumeDemoLayout }} -@end lilypond - -@item -@code{6. Podatus vel Pes} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Podatus vel Pes - \[ g \pes b \] - s^\markup {"o"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=2.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Pes Auctus Descendens - \[ g \pes \auctum \descendens b \] - \noBreak s^\markup {"p"} \noBreak - - % Pes Auctus Ascendens - \[ g \pes \auctum \ascendens b \] - \noBreak s^\markup {"q"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Epiphonus - \[ g \pes \deminutum b \] - s^\markup {"r"} - } -\layout { \neumeDemoLayout }} -@end lilypond - -@item -@code{7. Pes Quassus} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Pes Quassus - \[ \oriscus g \pes \virga b \] - s^\markup {"s"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Pes Quassus Auctus Descendens - \[ \oriscus g \pes \auctum \descendens b \] - s^\markup {"t"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab - -@item -@code{8. Quilisma Pes} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Quilisma Pes - \[ \quilisma g \pes b \] - s^\markup {"u"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Quilisma Pes Auctus Descendens - \[ \quilisma g \pes \auctum \descendens b \] - s^\markup {"v"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab - -@item -@code{9. Podatus Initio Debilis} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Pes Initio Debilis - \[ \deminutum g \pes b \] - s^\markup {"w"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Pes Auctus Descendens Initio Debilis - \[ \deminutum g \pes \auctum \descendens b \] - s^\markup {"x"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab - -@item -@code{10. Torculus} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Torculus - \[ a \pes b \flexa g \] - s^\markup {"y"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Torculus Auctus Descendens - \[ a \pes b \flexa \auctum \descendens g \] - s^\markup {"z"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Torculus Deminutus - \[ a \pes b \flexa \deminutum g \] - s^\markup {"A"} - } -\layout { \neumeDemoLayout }} -@end lilypond - -@item -@code{11. Torculus Initio Debilis} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Torculus Initio Debilis - \[ \deminutum a \pes b \flexa g \] - s^\markup {"B"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Torculus Auctus Descendens Initio Debilis - \[ \deminutum a \pes b \flexa \auctum \descendens g \] - s^\markup {"C"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Torculus Deminutus Initio Debilis - \[ \deminutum a \pes b \flexa \deminutum g \] - s^\markup {"D"} - } -\layout { \neumeDemoLayout }} -@end lilypond - -@item -@code{12. Porrectus} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Porrectus - \[ a \flexa g \pes b \] - s^\markup {"E"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Porrectus Auctus Descendens - \[ a \flexa g \pes \auctum \descendens b \] - s^\markup {"F"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Porrectus Deminutus - \[ a \flexa g \pes \deminutum b \] - s^\markup {"G"} - } -\layout { \neumeDemoLayout }} -@end lilypond - -@item -@code{13. Climacus} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Climacus - \[ \virga b \inclinatum a \inclinatum g \] - s^\markup {"H"} - } - \layout { \neumeDemoLayout } -} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Climacus Auctus - \[ \virga b \inclinatum a \inclinatum \auctum g \] - s^\markup {"I"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Climacus Deminutus - \[ \virga b \inclinatum a \inclinatum \deminutum g \] - s^\markup {"J"} - } -\layout { \neumeDemoLayout }} -@end lilypond - -@item -@code{14. Scandicus} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Scandicus - \[ g \pes a \virga b \] - s^\markup {"K"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Scandicus Auctus Descendens - \[ g \pes a \pes \auctum \descendens b \] - s^\markup {"L"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Scandicus Deminutus - \[ g \pes a \pes \deminutum b \] - s^\markup {"M"} - } -\layout { \neumeDemoLayout }} -@end lilypond - -@item -@code{15. Salicus} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Salicus - \[ g \oriscus a \pes \virga b \] - s^\markup {"N"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Salicus Auctus Descendens - \[ g \oriscus a \pes \auctum \descendens b \] - s^\markup {"O"} - } -\layout { \neumeDemoLayout }} -@end lilypond -@tab - -@item -@code{16. Trigonus} -@tab -@lilypond[staffsize=26,line-width=1.0\cm] -\include "gregorian-init.ly" -\score { - \transpose c c' { - % Trigonus - \[ \stropha b \stropha b \stropha a \] - s^\markup {"P"} - } - \layout { \neumeDemoLayout } -} -@end lilypond -@tab -@tab - -@end multitable - - -Unlike most other neumes notation systems, the input language for -neumes does not reflect the typographical appearance, but is designed -to focus on musical meaning. For example, @code{\[ a \pes b -\flexa g \]} produces a Torculus consisting of three Punctum heads, -while @code{\[ a \flexa g \pes b \]} produces a Porrectus with a -curved flexa shape and only a single Punctum head. There is no -command to explicitly typeset the curved flexa shape; the decision of -when to typeset a curved flexa shape is based on the musical -input. The idea of this approach is to separate the musical aspects -of the input from the notation style of the output. This way, the -same input can be reused to typeset the same music in a different -style of Gregorian chant notation. - -The following table shows the code fragments that produce the -ligatures in the above neumes table. The letter in the first column -in each line of the below table indicates to which ligature in the -above table it refers. The second column gives the name of the -ligature. The third column shows the code fragment that produces this -ligature, using @code{g}, @code{a}, and @code{b} as example pitches. - -@multitable @columnfractions .02 .31 .67 -@item -@b{#} -@tab -@b{Name} -@tab -@b{Input Language} - -@item -a -@tab -Punctum -@tab -@code{\[ b \]} - -@item -b -@tab -Punctum Inclinatum -@tab -@code{\[ \inclinatum b \]} - -@item -c -@tab -Punctum Auctum@* -Ascendens -@tab -@code{\[ \auctum \ascendens b \]} - -@item -d -@tab -Punctum Auctum@* -Descendens -@tab -@code{\[ \auctum \descendens b \]} - -@item -e -@tab -Punctum Inclinatum@* -Auctum -@tab -@code{\[ \inclinatum \auctum b \]} - -@item -f -@tab -Punctum Inclinatum@* -Parvum @tab -@code{\[ \inclinatum \deminutum b \]} - -@item -g -@tab -Virga -@tab -@code{\[ \virga b \]} - -@item -h -@tab -Stropha -@tab -@code{\[ \stropha b \]} - -@item -i -@tab -Stropha Aucta -@tab -@code{\[ \stropha \auctum b \]} - -@item -j -@tab -Oriscus -@tab -@code{\[ \oriscus b \]} - -@item -k -@tab -Clivis vel Flexa -@tab -@code{\[ b \flexa g \]} - -@item -l -@tab -Clivis Aucta@* -Descendens -@tab -@code{\[ b \flexa \auctum \descendens g \]} - -@item -m -@tab -Clivis Aucta@* -Ascendens -@tab -@code{\[ b \flexa \auctum \ascendens g \]} - -@item -n -@tab -Cephalicus -@tab -@code{\[ b \flexa \deminutum g \]} - -@item -o -@tab -Podatus vel Pes -@tab -@code{\[ g \pes b \]} - -@item -p -@tab -Pes Auctus@* -Descendens -@tab -@code{\[ g \pes \auctum \descendens b \]} - -@item -q -@tab -Pes Auctus@* -Ascendens -@tab -@code{\[ g \pes \auctum \ascendens b \]} - -@item -r -@tab -Epiphonus -@tab -@code{\[ g \pes \deminutum b \]} - -@item -s -@tab -Pes Quassus -@tab -@code{\[ \oriscus g \pes \virga b \]} - -@item -t -@tab -Pes Quassus@* -Auctus Descendens @tab -@code{\[ \oriscus g \pes \auctum \descendens b \]} - -@item -u -@tab -Quilisma Pes -@tab -@code{\[ \quilisma g \pes b \]} - -@item -v -@tab -Quilisma Pes@* -Auctus Descendens -@tab -@code{\[ \quilisma g \pes \auctum \descendens b \]} - -@item -w -@tab -Pes Initio Debilis -@tab -@code{\[ \deminutum g \pes b \]} - -@item -x -@tab -Pes Auctus Descendens@* -Initio Debilis -@tab -@code{\[ \deminutum g \pes \auctum \descendens b \]} - -@item -y -@tab -Torculus -@tab -@code{\[ a \pes b \flexa g \]} - -@item -z -@tab -Torculus Auctus@* -Descendens -@tab -@code{\[ a \pes b \flexa \auctum \descendens g \]} - -@item -A -@tab -Torculus Deminutus -@tab -@code{\[ a \pes b \flexa \deminutum g \]} - -@item -B -@tab -Torculus Initio Debilis -@tab -@code{\[ \deminutum a \pes b \flexa g \]} - -@item -C -@tab -Torculus Auctus@* -Descendens Initio Debilis -@tab -@code{\[ \deminutum a \pes b \flexa \auctum \descendens g \]} - -@item -D -@tab -Torculus Deminutus@* -Initio Debilis -@tab -@code{\[ \deminutum a \pes b \flexa \deminutum g \]} - -@item -E -@tab -Porrectus -@tab -@code{\[ a \flexa g \pes b \]} - -@item -F -@tab -Porrectus Auctus@* -Descendens -@tab -@code{\[ a \flexa g \pes \auctum \descendens b \]} - -@item -G -@tab -Porrectus Deminutus -@tab -@code{\[ a \flexa g \pes \deminutum b \]} - -@item -H -@tab -Climacus -@tab -@code{\[ \virga b \inclinatum a \inclinatum g \]} - -@item -I -@tab -Climacus Auctus -@tab -@code{\[ \virga b \inclinatum a \inclinatum \auctum g \]} - -@item -J -@tab -Climacus Deminutus -@tab -@code{\[ \virga b \inclinatum a \inclinatum \deminutum g \]} - -@item -K -@tab -Scandicus -@tab -@code{\[ g \pes a \virga b \]} - -@item -L -@tab -Scandicus Auctus@* -Descendens -@tab -@code{\[ g \pes a \pes \auctum \descendens b \]} - -@item -M -@tab -Scandicus Deminutus -@tab -@code{\[ g \pes a \pes \deminutum b \]} - -@item -N -@tab -Salicus -@tab -@code{\[ g \oriscus a \pes \virga b \]} - -@item -O -@tab -Salicus Auctus Descendens -@tab -@code{\[ g \oriscus a \pes \auctum \descendens b \]} - -@item -P -@tab -Trigonus -@tab -@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. - -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 - -@funindex \virga -@code{\virga}, -@funindex \stropha -@code{\stropha}, -@funindex \inclinatum -@code{\inclinatum}, -@funindex \auctum -@code{\auctum}, -@funindex \descendens -@code{\descendens}, -@funindex \ascendens -@code{\ascendens}, -@funindex \oriscus -@code{\oriscus}, -@funindex \quilisma -@code{\quilisma}, -@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. - -@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. - -@anchor{Gregorian Chant contexts} -@unnumberedsubsubsec Gregorian Chant contexts - -@cindex VaticanaVoiceContext -@cindex VaticanaStaffContext - -The predefined @code{VaticanaVoiceContext} and -@code{VaticanaStaffContext} can be used to engrave a piece of -Gregorian Chant in the style of the Editio Vaticana. These contexts -initialize all relevant context properties and grob properties to -proper values, so you can immediately go ahead entering the chant, as -the following excerpt demonstrates - -@lilypond[quote,ragged-right,packed,verbatim] -\include "gregorian-init.ly" -\score { - << - \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 - } - \new Lyrics \lyricsto "cantus" { - San- ctus, San- ctus, San- ctus - } - >> -} -@end lilypond - - -@anchor{Mensural contexts} -@unnumberedsubsubsec Mensural contexts - -@cindex MensuralVoiceContext -@cindex MensuralStaffContext - -The predefined @code{MensuralVoiceContext} and -@code{MensuralStaffContext} can be used to engrave a piece in mensural -style. These contexts initialize all relevant context properties and -grob properties to proper values, so you can immediately go ahead -entering the chant, as the following excerpt demonstrates - -@lilypond[quote,ragged-right,verbatim] -\score { - << - \new MensuralVoice = "discantus" \transpose c c' { - \override Score.BarNumber #'transparent = ##t { - c'1\melisma bes a g\melismaEnd - f\breve - \[ f1\melisma a c'\breve d'\melismaEnd \] - c'\longa - c'\breve\melisma a1 g1\melismaEnd - fis\longa^\signumcongruentiae - } - } - \new Lyrics \lyricsto "discantus" { - San -- ctus, San -- ctus, San -- ctus - } - >> -} -@end lilypond - -@anchor{Musica ficta accidentals} -@unnumberedsubsubsec Musica ficta accidentals - -In European music from before about 1600, singers were often expected -to chromatically alter notes at their own initiative. This is called -@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. - -@funindex suggestAccidentals - -@lilypond[verbatim,fragment,relative=1] -fis gis -\set suggestAccidentals = ##t -ais bis -@end lilypond - -@seealso - -Program reference: @internalsref{Accidental_engraver} engraver and the -@internalsref{AccidentalSuggestion} object. - -@anchor{Figured bass} -@unnumberedsubsubsec Figured bass - -@cindex Basso continuo - -@c TODO: musicological blurb about FB - - -LilyPond has support for figured bass - -@lilypond[quote,ragged-right,verbatim,fragment] -<< - \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 5/>4 - } ->> -@end lilypond - -The support for figured bass consists of two parts: there is an input -mode, introduced by @code{\figuremode}, where you can enter bass figures -as numbers, and there is a context called @internalsref{FiguredBass} that -takes care of making @internalsref{BassFigure} objects. - -In figures input mode, a group of bass figures is delimited by -@code{<} and @code{>}. The duration is entered after the @code{>} -@example -<4 6> -@end example -@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. 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!> <5++> <3--> <7/> r <6\+ 5/> -@end example -@lilypond[quote,ragged-right,fragment] -\figures { <4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/> } -@end lilypond - -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 \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 - -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 -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 -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 - - -@commonprop - -By default, this method produces figures above the notes. To get -figures below the notes, use - -@example -\override Staff.BassFigureAlignmentPositioning #'direction = #DOWN -@end example - - -@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, please -use @code{stacking-dir} on @code{BassFigureAlignment}. - - -@seealso - -Program reference: @internalsref{NewBassFigure}, -@internalsref{BassFigureAlignment}, @internalsref{BassFigureLine}, -@internalsref{BassFigureBracket}, and -@internalsref{BassFigureContinuation} objects and -@internalsref{FiguredBass} context. - - diff --git a/Documentation/user/notation.itely b/Documentation/user/notation.itely index 249871344b..1228705018 100644 --- a/Documentation/user/notation.itely +++ b/Documentation/user/notation.itely @@ -14,6 +14,14 @@ This chapter explains how to create musical notation. * Staff notation:: Displaying staves. * Educational use:: Special notation to increase legibility. * Text:: Adding text to scores. + +* Vocal music:: +* Chords:: +* Piano music:: +* Percussion:: +* Guitar:: +* Other instrument-specific:: +* Ancient notation:: @end menu @include pitch.itely @@ -25,4 +33,12 @@ This chapter explains how to create musical notation. @include educational.itely @include text.itely +@include vocal.itely +@include chords.itely +@include piano.itely +@include percussion.itely +@include guitar.itely +@include instrument-notation.itely +@include ancient.itely + diff --git a/Documentation/user/percussion.itely b/Documentation/user/percussion.itely new file mode 100644 index 0000000000..93a217a5b3 --- /dev/null +++ b/Documentation/user/percussion.itely @@ -0,0 +1,315 @@ +@c -*- coding: utf-8; mode: texinfo; -*- + +@node Percussion +@section Percussion + +Rhythmic music is primarily used for percussion and drum notation, but it can +also be used to show the rhythms of melodies. + +@menu +* Showing melody rhythms:: +* Entering percussion:: +* Percussion staves:: +* Ghost notes:: +@end menu + + +@anchor{Showing melody rhythms} +@unnumberedsubsubsec Showing melody rhythms + +Sometimes you might want to show only the rhythm of a melody. This +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,ragged-right,fragment,relative=1,verbatim] +\new RhythmicStaff { + \time 4/4 + c4 e8 f g2 | r4 g r2 | g1:32 | r1 | +} +@end lilypond + +@seealso + +Program reference: @internalsref{RhythmicStaff}. + + +@anchor{Entering percussion} +@unnumberedsubsubsec Entering percussion + +@cindex percussion +@cindex drums + + +Percussion notes may be entered in @code{\drummode} mode, which is +similar to the standard mode for entering notes. Each piece of +percussion has a full name and an abbreviated name, and both can be used +in input files + +@lilypond[quote,ragged-right,verbatim] +\drums { + hihat hh bassdrum bd +} +@end lilypond + +The complete list of drum names is in the init file +@file{ly/@/drumpitch@/-init@/.ly}. +@c TODO: properly document this. + +@seealso + +Program reference: @internalsref{note-event}. + +@anchor{Percussion staves} +@unnumberedsubsubsec Percussion staves +@cindex percussion +@cindex drums + +A percussion part for more than one instrument typically uses a +multiline staff where each position in the staff refers to one piece +of percussion. + + +To typeset the music, the notes must be interpreted in a +@internalsref{DrumStaff} and @internalsref{DrumVoice} contexts + +@lilypond[quote,ragged-right,verbatim] +up = \drummode { crashcymbal4 hihat8 halfopenhihat hh hh hh openhihat } +down = \drummode { bassdrum4 snare8 bd r bd sn4 } + \new DrumStaff << + \new DrumVoice { \voiceOne \up } + \new DrumVoice { \voiceTwo \down } + >> +@end lilypond + +The above example shows verbose polyphonic notation. The short +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,ragged-right,fragment,verbatim] +\new DrumStaff << + \new DrumVoice = "1" { s1 *2 } + \new DrumVoice = "2" { s1 *2 } + \drummode { + bd4 sn4 bd4 sn4 + << + { \repeat unfold 16 hh16 } + \\ + { bd4 sn4 bd4 sn4 } + >> + } +>> +@end lilypond + + +There are also other layout possibilities. To use these, set the +property @code{drumStyleTable} in context @internalsref{DrumVoice}. +The following variables have been predefined + +@table @code +@item drums-style +This is the default. It typesets a typical drum kit on a five-line staff + +@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 } +mus = \drummode { + cymc cyms cymr hh hhc hho hhho hhp \break + cb hc bd sn ss tomh tommh tomml toml tomfh tomfl s16 } +\score { + << \new DrumStaff \with { + \remove Bar_engraver + \remove Time_signature_engraver + \override Stem #'transparent = ##t + \override Stem #'Y-extent-callback = ##f + \override VerticalAxisGroup #'minimum-Y-extent = #'(-4.0 . 5.0) + } \mus + \new Lyrics \nam + >> + \layout { + \context { + \Score + \override LyricText #'font-family = #'typewriter + \override BarNumber #'transparent =##T + } + } +} +@end lilypond + +The drum scheme supports six different toms. When there are fewer toms, +simply select the toms that produce the desired result, i.e., to get toms +on the three middle lines you use @code{tommh}, @code{tomml}, and +@code{tomfh}. + +@item timbales-style +This typesets timbales on a two line staff + +@lilypond[quote,ragged-right] +nam = \lyricmode { timh ssh timl ssl cb } +mus = \drummode { timh ssh timl ssl cb s16 } + +<< + \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 + \override VerticalAxisGroup #'minimum-Y-extent = #'(-3.0 . 4.0) + drumStyleTable = #timbales-style + } \mus + \new Lyrics { + \override LyricText #'font-family = #'typewriter + \nam + } +>> +@end lilypond + +@item congas-style +This typesets congas on a two line staff + +@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 } + +<< + \new DrumStaff \with { + \remove Bar_engraver + \remove Time_signature_engraver + drumStyleTable = #congas-style + \override StaffSymbol #'line-count = #2 + + %% this sucks; it will lengthen stems. + \override StaffSymbol #'staff-space = #2 + \override Stem #'transparent = ##t + \override Stem #'Y-extent-callback = ##f + } \mus + \new Lyrics { + \override LyricText #'font-family = #'typewriter + \nam + } +>> +@end lilypond + +@item bongos-style +This typesets bongos on a two line staff + +@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 } + +<< + \new DrumStaff \with { + \remove Bar_engraver + \remove Time_signature_engraver + \override StaffSymbol #'line-count = #2 + drumStyleTable = #bongos-style + + %% this sucks; it will lengthen stems. + \override StaffSymbol #'staff-space = #2 + \override Stem #'transparent = ##t + \override Stem #'Y-extent-callback = ##f + } \mus + \new Lyrics { + \override LyricText #'font-family = #'typewriter + \nam + } +>> +@end lilypond + +@item percussion-style +To typeset all kinds of simple percussion on one line staves. + +@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 } + +<< + \new DrumStaff \with{ + \remove Bar_engraver + drumStyleTable = #percussion-style + \override StaffSymbol #'line-count = #1 + \remove Time_signature_engraver + \override Stem #'transparent = ##t + \override Stem #'Y-extent-callback = ##f + } \mus + \new Lyrics { + \override LyricText #'font-family = #'typewriter + \nam + } +>> +@end lilypond +@end table + +If you do not like any of the predefined lists you can define your own +list at the top of your file + +@lilypond[quote,ragged-right,verbatim] +#(define mydrums '( + (bassdrum default #f -1) + (snare default #f 0) + (hihat cross #f 1) + (pedalhihat xcircle "stopped" 2) + (lowtom diamond #f 3))) +up = \drummode { hh8 hh hh hh hhp4 hhp } +down = \drummode { bd4 sn bd toml8 toml } + +\new DrumStaff << + \set DrumStaff.drumStyleTable = #(alist->hash-table mydrums) + \new DrumVoice { \voiceOne \up } + \new DrumVoice { \voiceTwo \down } +>> +@end lilypond + + +@seealso + +Init files: @file{ly/@/drumpitch@/-init@/.ly}. + +Program reference: @internalsref{DrumStaff}, @internalsref{DrumVoice}. + +@refbugs + +Because general MIDI does not contain rim shots, the sidestick is used +for this purpose instead. + + +@c FIXME: check name -gp +@anchor{Ghost notes} +@unnumberedsubsubsec 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] hh16 + < \parenthesize sn > hh < \parenthesize + sn > hh8 hh + } \\ { + bd4 r4 bd8 bd r8 bd + } + >> + } +>> +@end lilypond + +@noindent +Also note that you must add chords (@code{< >} brackets) +around each @code{\parenthesize} statement. + + + diff --git a/Documentation/user/piano.itely b/Documentation/user/piano.itely new file mode 100644 index 0000000000..aa226954b5 --- /dev/null +++ b/Documentation/user/piano.itely @@ -0,0 +1,263 @@ +@c -*- coding: utf-8; mode: texinfo; -*- + +@node Piano music +@section Piano music + +Piano staves are two normal staves coupled with a brace. The staves +are largely independent, but sometimes voices can cross between the +two staves. The same notation is also used for harps and other key +instruments. The @internalsref{PianoStaff} is especially built to +handle this cross-staffing behavior. In this section we discuss the +@internalsref{PianoStaff} and some other pianistic peculiarities. + +@menu +* Automatic staff changes:: +* Manual staff switches:: +* Pedals:: +* Staff switch lines:: +* Cross staff stems:: +@end menu + +@refbugs + +Dynamics are not centered, but workarounds do exist. See the +@q{piano centered dynamics} template in @ref{Piano templates}. + +@cindex cross staff stem +@cindex stem, cross staff +@cindex distance between staves in piano music + + +@anchor{Automatic staff changes} +@unnumberedsubsubsec Automatic staff changes +@cindex Automatic staff changes + +Voices can be made to switch automatically between the top and the bottom +staff. The syntax for this is + +@quotation +@example +\autochange @dots{}@var{music}@dots{} +@end example +@end quotation + +@noindent +This will create two staves inside the current PianoStaff, called +@code{up} and @code{down}. The lower staff will be in bass clef by +default. + +A @code{\relative} section that is outside of @code{\autochange} has +no effect on the pitches of @var{music}, so, if necessary, put +@code{\relative} inside @code{\autochange} like + +@quotation +@example +\autochange \relative @dots{} @dots{} +@end example +@end quotation + + +The autochanger switches on basis of the pitch (middle C is the turning +point), and it looks ahead skipping over rests to switch in +advance. Here is a practical example + +@lilypond[quote,verbatim,ragged-right] +\new PianoStaff + \autochange \relative c' + { + g4 a b c d r4 a g + } +@end lilypond + + +@seealso + +In this manual: @ref{Manual staff switches}. + +Program reference: @internalsref{AutoChangeMusic}. + + + +@refbugs + +The staff switches may not end up in optimal places. For high +quality output, staff switches should be specified manually. + + +@code{\autochange} cannot be inside @code{\times}. + + +@anchor{Manual staff switches} +@unnumberedsubsubsec Manual staff switches + +@cindex manual staff switches +@cindex staff switch, manual + +Voices can be switched between staves manually, using the command +@example +\change Staff = @var{staffname} @var{music} +@end example + +@noindent +The string @var{staffname} is the name of the staff. It switches the +current voice from its current staff to the Staff called +@var{staffname}. Typically @var{staffname} is @code{"up"} or +@code{"down"}. The @context{Staff} referred to must already exist, so +usually the setup for a score will start with a setup of the staves, + +@example +<< + \new Staff = "up" @{ + \skip 1 * 10 % @emph{keep staff alive} + @} + \new Staff = "down" @{ + \skip 1 * 10 % @emph{idem} + @} +>> +@end example + + +and the @context{Voice} is inserted afterwards + +@example +\context Staff = down + \new Voice @{ @dots{} \change Staff = up @dots{} @} +@end example + + +@anchor{Pedals} +@unnumberedsubsubsec Pedals +@cindex Pedals + +Pianos have pedals that alter the way sound is produced. Generally, a +piano has three pedals, sustain, una corda, and sostenuto. + + +Piano pedal instruction can be expressed by attaching +@code{\sustainDown}, @code{\sustainUp}, @code{\unaCorda}, +@code{\treCorde}, @code{\sostenutoDown} and @code{\sostenutoUp} to a +note or chord + +@lilypond[quote,ragged-right,fragment,verbatim] +c'4\sustainDown c'4\sustainUp +@end lilypond + +What is printed can be modified by setting @code{pedal@var{X}Strings}, +where @var{X} is one of the pedal types: @code{Sustain}, +@code{Sostenuto} or @code{UnaCorda}. Refer to +@internalsref{SustainPedal} in the program reference for more +information. + +Pedals can also be indicated by a sequence of brackets, by setting the +@code{pedalSustainStyle} property to bracket objects + +@lilypond[quote,ragged-right,fragment,verbatim,relative=2] +\set Staff.pedalSustainStyle = #'bracket +c\sustainDown d e +b\sustainUp\sustainDown +b g \sustainUp a \sustainDown \bar "|." +@end lilypond + +A third style of pedal notation is a mixture of text and brackets, +obtained by setting the @code{pedalSustainStyle} property to +@code{mixed} + +@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 @q{*Ped.} style for sustain and damper pedals corresponds to +style @code{#'text}. The sostenuto pedal uses @code{mixed} style by +default. + +@lilypond[quote,ragged-right,fragment,verbatim,relative=2] +c\sostenutoDown d e c, f g a\sostenutoUp +@end lilypond + +For fine-tuning the appearance of a pedal bracket, the properties +@code{edge-width}, @code{edge-height}, and @code{shorten-pair} of +@code{PianoPedalBracket} objects (see +@internalsref{PianoPedalBracket} in the Program reference) can be +modified. For example, the bracket may be extended to the right edge +of the note head + +@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}. + +@anchor{Staff switch lines} +@unnumberedsubsubsec Staff switch lines + + +@cindex follow voice +@cindex staff switching +@cindex cross staff + +@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,ragged-right,fragment,relative=1,verbatim] +\new PianoStaff << + \new Staff="one" { + \set followVoice = ##t + c1 + \change Staff=two + b2 a + } + \new Staff="two" { \clef bass \skip 1*2 } +>> +@end lilypond + +@seealso + +Program reference: @internalsref{VoiceFollower}. + +@refcommands + +@funindex \showStaffSwitch +@code{\showStaffSwitch}, +@funindex \hideStaffSwitch +@code{\hideStaffSwitch}. + + +@anchor{Cross staff stems} +@unnumberedsubsubsec Cross staff stems + +Chords that cross staves may be produced by increasing the length +of the stem in the lower staff, so it reaches the stem in the upper +staff, or vice versa. + +@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 +\new PianoStaff << + \new Staff { + \stemDown \stemExtend + f'4 + \stemExtend \noFlag + f'8 + } + \new Staff { + \clef bass + a4 a8 + } +>> +@end lilypond + + + + diff --git a/Documentation/user/vocal.itely b/Documentation/user/vocal.itely new file mode 100644 index 0000000000..63886b700b --- /dev/null +++ b/Documentation/user/vocal.itely @@ -0,0 +1,1061 @@ +@c -*- coding: utf-8; mode: texinfo; -*- + +@node Vocal music +@section Vocal music + +Since LilyPond input files are text, there are two issues to +consider when working with vocal music: + +@itemize @bullet +@item +Song texts must be entered as text, not notes. For example, the +input@tie{}@code{d} should be interpreted as a one letter syllable, not the +note@tie{}D. + +@item +Song texts must be aligned with the notes of their melody. +@end itemize + +There are a few different ways to define lyrics; we shall begin +by examining the simplest method, and gradually increase complexity. + +@menu +* Setting simple songs:: +* Entering lyrics:: +* Aligning lyrics to a melody:: +* Automatic syllable durations:: +* Another way of entering lyrics:: +* Assigning more than one syllable to a single note:: +* More than one note on a single syllable:: +* Extenders and hyphens:: +* Working with lyrics and identifiers:: +* Flexibility in placement:: +* Lyrics to multiple notes of a melisma:: +* Divisi lyrics:: +* Switching the melody associated with a lyrics line:: +* Lyrics independent of notes:: +* 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 TODO subsection vocal music +@section TODO subsection vocal music + +@anchor{Setting simple songs} +@unnumberedsubsubsec Setting simple songs + +@cindex \addlyrics + +The easiest way to add lyrics to a melody is to append + +@example +\addlyrics @{ @var{the lyrics} @} +@end example + +@noindent +to a melody. Here is an example, + +@lilypond[ragged-right,verbatim,fragment,quote] +\time 3/4 +\relative { c2 e4 g2. } +\addlyrics { play the game } +@end lilypond + +More stanzas can be added by adding more +@code{\addlyrics} sections + +@lilypond[ragged-right,verbatim,fragment,quote] +\time 3/4 +\relative { c2 e4 g2. } +\addlyrics { play the game } +\addlyrics { speel het spel } +\addlyrics { joue le jeu } +@end lilypond + +The command @code{\addlyrics} cannot handle polyphony settings. For these +cases you should use @code{\lyricsto} and @code{\lyricmode}, as will be +introduced in @ref{Entering lyrics}. + + + +@anchor{Entering lyrics} +@unnumberedsubsubsec Entering lyrics + +@cindex lyrics +@funindex \lyricmode +@cindex punctuation +@cindex spaces, in lyrics +@cindex quotes, in lyrics + +Lyrics are entered in a special input mode, which can be introduced +by the keyword @code{\lyricmode}, or by using @code{\addlyrics} or +@code{\lyricsto}. In this mode you can enter lyrics, +with punctuation and accents, and the input @code{d} is not parsed as +a pitch, but rather as a one letter syllable. Syllables are entered +like notes, but with pitches replaced by text. For example, + +@example +\lyricmode @{ Twin-4 kle4 twin- kle litt- le star2 @} +@end example + +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}. +@c TODO: broken +@c For more details see @ref{The Lyrics context}. + +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. + +Any character that is not a digit or white space will be regarded as +part of the syllable; one important consequence of this is that a word +can end with @code{@}}, which often leads to the following mistake: + +@example +\lyricmode @{ lah- lah@} +@end example + +In this example, the @code{@}} is included in the final syllable, so the +opening brace is not balanced and the input file will probably not +compile. + + +@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 +property commands: do @emph{not} write + +@example +\override Score.LyricText #'font-shape = #'italic +@end example + +@noindent +but instead use + +@example +\override Score . LyricText #'font-shape = #'italic +@end example + +@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 tie is implemented with the Unicode character U+203F, so be +sure to have a font (Like DejaVuLGC) installed that includes this +glyph. + + +To enter lyrics with characters from non-English languages, or with +accented and special characters (such as the heart symbol or slanted quotes), +simply insert the characters directly into the input file and save +it with utf-8 encoding. See @ref{Text encoding}, for more info. + +@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. + +A word in Lyrics mode begins with: an alphabetic character, @code{_}, +@code{?}, @code{!}, @code{:}, @code{'}, the control characters @code{^A} +through @code{^F}, @code{^Q} through @code{^W}, @code{^Y}, @code{^^}, +any 8-bit character with ASCII code over 127, or a two-character +combination of a backslash followed by one of @code{`}, @code{'}, +@code{"}, or @code{^}. + +To define identifiers 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}, @internalsref{LyricSpace}. + + + +@anchor{Aligning lyrics to a melody} +@unnumberedsubsubsec Aligning lyrics to a melody + +@funindex \lyricmode +@funindex \addlyrics +@funindex \lyricsto + + +Lyrics are printed by interpreting them in the context called +@internalsref{Lyrics}. + +@example +\new Lyrics \lyricmode @dots{} +@end example + +There are two main methods to specify the horizontal placement +of the syllables: + +@itemize @bullet +@item +by automatically aligning +the lyrics to a melody or other voice of music, using @code{\addlyrics} +or @code{\lyricsto}. + +@item +or by specifying the duration of each syllable +explicitly, using @code{\lyricmode} +@end itemize + +@menu +* Automatic syllable durations:: +* Another way of entering lyrics:: +* Assigning more than one syllable to a single note:: +* More than one note on a single syllable:: +* Extenders and hyphens:: +@end menu + +@anchor{Automatic syllable durations} +@unnumberedsubsubsec Automatic syllable durations + +@cindex automatic syllable durations +@cindex lyrics and melodies + +The lyrics can be aligned under a given melody +automatically. This is achieved by combining the +melody and the lyrics with the @code{\lyricsto} expression + +@example +\new Lyrics \lyricsto @var{name} @dots{} +@end example + +This aligns the lyrics to the +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 + +@anchor{Another way of entering lyrics} +@unnumberedsubsubsec Another way of entering lyrics + +Lyrics can also be entered without @code{\addlyrics} or +@code{\lyricsto}. In this case, +syllables are entered like notes -- but with pitches replaced by text -- and the +duration of each syllable must be entered explicitly. For example: + +@example +play2 the4 game2. +sink2 or4 swim2. +@end example + +The alignment to a melody can be specified with the +@code{associatedVoice} property, + +@example +\set associatedVoice = #"lala" +@end example + +@noindent +The value of the property (here: @code{"lala"}) should be the name of +a @internalsref{Voice} context. Without this setting, extender lines +will not be formatted properly. + +Here is an example demonstrating manual lyric durations, + +@lilypond[relative=1,ragged-right,verbatim,fragment,quote] +<< \new Voice = "melody" { + \time 3/4 + c2 e4 g2. + } + \new Lyrics \lyricmode { + \set associatedVoice = #"melody" + play2 the4 game2. + } >> +@end lilypond + +@seealso + +Program reference: @internalsref{Lyrics}. + + +@anchor{Assigning more than one syllable to a single note} +@unnumberedsubsubsec Assigning more than one syllable to a single note + + +@funindex _ +@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@footnote{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.}. + +@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 + +@seealso + +Program reference: @internalsref{LyricCombineMusic}. + +@c Here come the section which used to be "Melismata" +@c the new title might be more self-explanatory + + +@anchor{More than one note on a single syllable} +@unnumberedsubsubsec More than one note on a single syllable + +@cindex melisma +@cindex melismata +@cindex phrasing, in lyrics + +Sometimes, particularly in Medieval music, several notes are to be sung on one +single syllable; such vocalises are called melismas, or melismata. + +@c this method seems to be the simplest; therefore +@c it might be better to present it first - vv + +You can define melismata entirely in the lyrics, by entering @code{_} +for every note +that is part of the melisma. + +@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 +set @code{melismaBusyProperties}, as is done in the example above. + +However, the @code{\lyricsto} command can also +detect melismata automatically: it only puts one +syllable under a tied or slurred group of notes. If you want to force +an unslurred group of notes to be a melisma, insert @code{\melisma} +after the first note of the group, and @code{\melismaEnd} after the +last one, e.g., + +@lilypond[quote,relative=2,ragged-right,fragment,verbatim] +<< + \new Voice = "lala" { + \time 3/4 + f4 g8 + \melisma + f e f + \melismaEnd + e2 + } + \new Lyrics \lyricsto "lala" { + la di __ daah + } +>> +@end lilypond + +In addition, notes are considered a melisma if they are manually +beamed, and automatic beaming (see @ref{Setting automatic beam +behavior}) is switched off. + +@c TODO: there might be some more relevant place for +@c the following link (?) + +@cindex SATB +@cindex choral score + +A complete example of a SATB score setup is in section +@ref{Vocal ensembles}. + + +@refcommands + +@code{\melisma}, @code{\melismaEnd} +@funindex \melismaEnd +@funindex \melisma + +@seealso + +Program reference: @internalsref{Melisma_translator}. + +@lsr{vocal,lyric@/-combine.ly}. + +@refbugs + +Melismata are not detected automatically, and extender lines must be +inserted by hand. + +@anchor{Extenders and hyphens} +@unnumberedsubsubsec Extenders and hyphens + +@cindex melisma +@cindex extender + +Melismata are indicated with a horizontal line centered between a syllable +and the next one. Such a line is called an extender line, and it is entered +as @samp{ __ } (note the spaces before and after the two underscore +characters). + +@cindex hyphens + +Centered hyphens are entered as @samp{ -- } between syllables of a same word +(note the spaces before and after the two hyphen characters). The hyphen +will be centered between the syllables, and its length will be adjusted +depending on the space between the syllables. + +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 + +Program reference: @internalsref{LyricExtender}, +@internalsref{LyricHyphen} + + +@anchor{Working with lyrics and identifiers} +@unnumberedsubsubsec Working with lyrics and identifiers +@cindex lyrics, identifiers + +To define identifiers containing lyrics, the function @code{\lyricmode} +must be used. You do not have to enter durations though, if you add +@code{\addlyrics} or @code{\lyricsto} +when invoking your identifier. + +@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 + +For different or more complex orderings, the best way is to setup the +hierarchy of staves and lyrics first, e.g., +@example +\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 +\context Lyrics = sopranoLyrics \lyricsto "soprano" +@emph{the lyrics} +@end example + +@noindent + +The final input would resemble + +@example +<<\new ChoirStaff << @emph{setup the music} >> + \lyricsto "soprano" @emph{etc} + \lyricsto "alto" @emph{etc} +@emph{etc} +>> +@end example + +@seealso + +@c TODO: document \new Staff << Voice \lyricsto >> bug +Program reference: @internalsref{LyricCombineMusic}, +@internalsref{Lyrics}. + + +@anchor{Flexibility in placement} +@unnumberedsubsubsec 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:: +* Lyrics independent of notes:: +@end menu + + +@anchor{Lyrics to multiple notes of a melisma} +@unnumberedsubsubsec 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 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, + +@c FIXME: breaks compile +@lilypond[verbatim,ragged-right,quote] +%{ +<< + \relative \new Voice = "lahlah" { + \set Staff.autoBeaming = ##f + c4 + \slurDotted + f8.[( g16]) + a4 + } + \new Lyrics \lyricsto "lahlah" { + more slow -- ly + } + \new Lyrics \lyricsto "lahlah" { + \set ignoreMelismata = ##t % applies to "fas" + go fas -- ter + \unset ignoreMelismata + still + } +>> +%} +@end lilypond + + +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,ragged-right,quote] +\relative { c c g' } +\addlyrics { + twin -- \skip 4 + kle +} +@end lilypond + + +@anchor{Divisi lyrics} +@unnumberedsubsubsec 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 + + + +@anchor{Switching the melody associated with a lyrics line} +@unnumberedsubsubsec 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[ragged-right,quote] +<< + \relative \new Voice = "lahlah" { + \set Staff.autoBeaming = ##f + c4 + << + \new Voice = "alternative" { + \voiceOne + \times 2/3 { + % show associations clearly. + \override NoteColumn #'force-hshift = #-3 + f8 f g + } + } + { + \voiceTwo + f8.[ g16] + \oneVoice + } >> + a8( b) c + } + \new Lyrics \lyricsto "lahlah" { + Ju -- ras -- sic Park + } + \new Lyrics \lyricsto "lahlah" { + % Tricky: need to set associatedVoice + % one syllable too soon! + \set associatedVoice = alternative % applies to "ran" + Ty -- + ran -- + no -- + \set associatedVoice = lahlah % applies to "rus" + sau -- rus Rex + } >> +@end lilypond + +@noindent +the text for the first stanza is set to a melody called @q{lahlah}, + +@example +\new Lyrics \lyricsto "lahlah" @{ + Ju -- ras -- sic Park +@} +@end example + + +The second stanza initially is set to the @code{lahlah} context, but +for the syllable @q{ran}, it switches to a different melody. +This is achieved with +@example +\set associatedVoice = alternative +@end example + +@noindent +Here, @code{alternative} is the name of the @code{Voice} context +containing the triplet. + +Again, the command must be one syllable too early, before @q{Ty} in +this case. + +@example +\new Lyrics \lyricsto "lahlah" @{ + \set associatedVoice = alternative % applies to "ran" + Ty -- + ran -- + no -- + \set associatedVoice = lahlah % applies to "rus" + sau -- rus Rex +@} +@end example + +@noindent +The underlay is switched back to the starting situation by assigning +@code{lahlah} to @code{associatedVoice}. + + +@anchor{Lyrics independent of notes} +@unnumberedsubsubsec 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 +} + +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 + + +@anchor{Spacing lyrics} +@unnumberedsubsubsec 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 + +To make this change for all lyrics in the score, set the property in the +layout. + +@lilypond[relative,verbatim,quote,ragged-right] +\score { + \relative c' { + 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 + + +@anchor{More about stanzas} +@unnumberedsubsubsec More about stanzas + +@cindex stanza number +@unnumberedsubsubsec Adding stanza numbers + +Stanza numbers can be added by setting @code{stanza}, e.g., + +@lilypond[quote,ragged-right,verbatim,relative=2,fragment] +\new Voice { + \time 3/4 g2 e4 a2 f4 g2. +} \addlyrics { + \set stanza = "1. " + Hi, my name is Bert. +} \addlyrics { + \set stanza = "2. " + Oh, ché -- ri, je t'aime +} +@end lilypond + +@noindent +These numbers are put just before the start of the first syllable. + + +@unnumberedsubsubsec 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 +@unnumberedsubsubsec 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{shortVocalName}. + +@lilypond[fragment,ragged-right,quote,verbatim,relative=2] +\new Voice { + \time 3/4 g2 e4 a2 f4 g2. +} \addlyrics { + \set vocalName = "Bert " + Hi, my name is Bert. +} \addlyrics { + \set vocalName = "Ernie " + Oh, che -- ri, je t'aime +} +@end lilypond + + +@unnumberedsubsubsec 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. +} + +\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 + + +@unnumberedsubsubsec 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. +} + +\score{ << + \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}. + + + +@anchor{Other vocal issues} +@unnumberedsubsubsec Other vocal issues + +@ignore +yeah, I'm giving up somewhat by stuffing a bunch of things in +here. But at least they're in the manual now; it's easier to +move them around in the manual once they're already here. + +Besides, if users complain about everything stuffed in here, I +can ask them for specific instructions about where to move these +examples, and that might get them more involved in the docs. -gp +@end ignore + +@q{Parlato} is spoken without pitch but still with rhythm; it is +notated by cross noteheads. This is demonstrated in +@ref{Special noteheads}. + + + + -- 2.39.5