@node Chord names
-@section Chord namess
+@section Chord names
@cindex Chords
LilyPond has support for both entering and printing named chords.
Gregorian square neumes notation (following the style of the Editio
Vaticana) is under heavy development, but not yet really usable for
-production purposes. 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.
+production purposes. Core ligatures can already be typeset, but
+essentials issues for serious typesetting are still under development,
+such as (among others) horizontal alignment of multiple ligatures,
+lyrics alignment and proper accidentals handling. Still, this section
+gives a sneak preview of what Gregorian chant may look like once it
+will work.
-@multitable @columnfractions .4 .2 .2 .2
+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
@c the time.
@item
-@code{1. Punctum} @tab
+@code{1. Punctum}
+@tab
@lilypond[noindent, 26pt, nofragment, linewidth=1.5cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Puctum
\[ b \]
+ \noBreak s^\markup {"a"} \noBreak
% Punctum Inclinatum
\[ \inclinatum b \]
+ \noBreak s^\markup {"b"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=2.5cm]
\include "gregorian-init.ly"
\score {
\notes \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 \]
+ % Punctum Auctum Ascendens
+ \[ \auctum \ascendens b \]
+ \noBreak s^\markup {"e"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Punctum Inclinatum Parvum
\[ \inclinatum \deminutum b \]
+ \noBreak s^\markup {"f"}
}
\paper {
interscoreline = 1
@end lilypond
@item
-@code{2. Virga} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{2. Virga}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Virga
\[ \virga b \]
+ \noBreak s^\markup {"g"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab @tab
+@end lilypond
+@tab
+@tab
@item
-@code{3. Apostropha vel Stropha} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{3. Apostropha vel Stropha}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Stropha
\[ \stropha b \]
+ \noBreak s^\markup {"h"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Stropha Aucta
\[ \stropha \auctum b \]
+ \noBreak s^\markup {"i"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
+@end lilypond
+@tab
@item
-@code{4. Oriscus} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{4. Oriscus}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Oriscus
\[ \oriscus b \]
+ \noBreak s^\markup {"j"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab @tab
+@end lilypond
+@tab
+@tab
@item
-@code{5. Clivis vel Flexa} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{5. Clivis vel Flexa}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Clivis vel Flexa
\[ b \flexa g \]
+ s^\markup {"k"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=2.0cm]
\include "gregorian-init.ly"
\score {
\notes \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"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Cephalicus
\[ b \flexa \deminutum g \]
+ s^\markup {"n"}
}
\paper {
interscoreline = 1
@end lilypond
@item
-@code{6. Podatus vel Pes} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{6. Podatus vel Pes}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Podatus vel Pes
\[ g \pes b \]
+ s^\markup {"o"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=2.0cm]
\include "gregorian-init.ly"
\score {
\notes \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"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Epiphonus
\[ g \pes \deminutum b \]
+ s^\markup {"r"}
}
\paper {
interscoreline = 1
@end lilypond
@item
-@code{7. Pes Quassus} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{7. Pes Quassus}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Pes Quassus
\[ \oriscus g \pes \virga b \]
+ s^\markup {"s"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Pes Quassus Auctus Descendens
\[ \oriscus g \pes \auctum \descendens b \]
+ s^\markup {"t"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
+@end lilypond
+@tab
@item
-@code{8. Quilisma Pes} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{8. Quilisma Pes}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Quilisma Pes
\[ \quilisma g \pes b \]
+ s^\markup {"u"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Quilisma Pes Auctus Descendens
\[ \quilisma g \pes \auctum \descendens b \]
+ s^\markup {"v"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
+@end lilypond
+@tab
@item
-@code{9. Podatus Initio Debilis} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{9. Podatus Initio Debilis}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Pes Initio Debilis
\[ \deminutum g \pes b \]
+ s^\markup {"w"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Pes Auctus Descendens Initio Debilis
\[ \deminutum g \pes \auctum \descendens b \]
+ s^\markup {"x"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
+@end lilypond
+@tab
@item
-@code{10. Torculus} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{10. Torculus}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Torculus
\[ a \pes b \flexa g \]
+ s^\markup {"y"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Torculus Auctus Descendens
\[ a \pes b \flexa \auctum \descendens g \]
+ s^\markup {"z"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Torculus Deminutus
\[ a \pes b \flexa \deminutum g \]
+ s^\markup {"A"}
}
\paper {
interscoreline = 1
@end lilypond
@item
-@code{11. Torculus Initio Debilis} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{11. Torculus Initio Debilis}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Torculus Initio Debilis
\[ \deminutum a \pes b \flexa g \]
+ s^\markup {"B"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Torculus Auctus Descendens Initio Debilis
\[ \deminutum a \pes b \flexa \auctum \descendens g \]
+ s^\markup {"C"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Torculus Deminutus Initio Debilis
\[ \deminutum a \pes b \flexa \deminutum g \]
+ s^\markup {"D"}
}
\paper {
interscoreline = 1
@end lilypond
@item
-@code{12. Porrectus} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{12. Porrectus}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Porrectus
\[ a \flexa g \pes b \]
+ s^\markup {"E"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Porrectus Auctus Descendens
\[ a \flexa g \pes \auctum \descendens b \]
+ s^\markup {"F"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Porrectus Deminutus
\[ a \flexa g \pes \deminutum b \]
+ s^\markup {"G"}
}
\paper {
interscoreline = 1
@end lilypond
@item
-@code{13. Climacus} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{13. Climacus}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Climacus
\[ \virga b \inclinatum a \inclinatum g \]
+ s^\markup {"H"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Climacus Auctus
\[ \virga b \inclinatum a \inclinatum \auctum g \]
+ s^\markup {"I"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Climacus Deminutus
\[ \virga b \inclinatum a \inclinatum \deminutum g \]
+ s^\markup {"J"}
}
\paper {
interscoreline = 1
@end lilypond
@item
-@code{14. Scandicus} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{14. Scandicus}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Scandicus
\[ g \pes a \virga b \]
+ s^\markup {"K"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Scandicus Auctus Descendens
\[ g \pes a \pes \auctum \descendens b \]
+ s^\markup {"L"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Scandicus Deminutus
\[ g \pes a \pes \deminutum b \]
+ s^\markup {"M"}
}
\paper {
interscoreline = 1
@end lilypond
@item
-@code{15. Salicus} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{15. Salicus}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Salicus
\[ g \oriscus a \pes \virga b \]
+ s^\markup {"N"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@end lilypond
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Salicus Auctus Descendens
\[ g \oriscus a \pes \auctum \descendens b \]
+ s^\markup {"O"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab
+@end lilypond
+@tab
@item
-@code{16. Trigomus} @tab
-@lilypond[noindent, 26pt, nofragment, linewidth=3.0cm]
+@code{16. Trigomus}
+@tab
+@lilypond[noindent, 26pt, nofragment, linewidth=1.0cm]
\include "gregorian-init.ly"
\score {
\notes \transpose c c' {
% Trigonus
\[ \stropha b \stropha b \stropha a \]
+ s^\markup {"P"}
}
\paper {
interscoreline = 1
}
}
}
-@end lilypond @tab @tab
+@end lilypond
+@tab
+@tab
@end multitable
-@refbugs
-Horizontal head alignment is broken in Pes Initio Debilis.
+Unlike most other neumes notation systems, the input language for
+neumes does not necessarily reflect directly the typographical
+appearance, but is designed to solely focuse 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 torculus 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 purely taken from
+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 such as Hufnagel (also
+known as German gothic neumes) or Medicaea (kind of a very simple
+forerunner of the Editio Vaticana). As soon as Hufnagel ligature
+engraver and Medicaea ligature engraver will have been implemented, it
+will be as simple as replacing the ligature engraver in the
+VoiceContext to get the desired notation style from the same input.
+
+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 .1 .4 .5
+
+@item
+@b{#} @tab
+@b{Name} @tab
+@b{Input Language} @tab
+
+@item
+a @tab
+Puctum @tab
+@samp{@code{\[ b \]}}
+
+@item
+b @tab
+Punctum Inclinatum @tab
+@samp{@code{\[ \inclinatum b \]}}
+
+@item
+c @tab
+Punctum Auctum Ascendens @tab
+@samp{@code{\[ \auctum \ascendens b \]}}
+
+@item
+d @tab
+Punctum Auctum Descendens @tab
+@samp{@code{\[ \auctum \descendens b \]}}
+
+@item
+e @tab
+Punctum Inclinatum Auctum @tab
+@samp{@code{\[ \inclinatum \auctum b \]}}
+
+@item
+f @tab
+Punctum Inclinatum Parvum @tab
+@samp{@code{\[ \inclinatum \deminutum b \]}}
+
+@item
+g @tab
+Virga @tab
+@samp{@code{\[ \virga b \]}}
+
+@item
+h @tab
+Stropha @tab
+@samp{@code{\[ \stropha b \]}}
+
+@item
+i @tab
+Stropha Aucta @tab
+@samp{@code{\[ \stropha \auctum b \]}}
+
+@item
+j @tab
+Oriscus @tab
+@samp{@code{\[ \oriscus b \]}}
+
+@item
+k @tab
+Clivis vel Flexa @tab
+@samp{@code{\[ b \flexa g \]}}
+
+@item
+l @tab
+Clivis Aucta Descendens @tab
+@samp{@code{\[ b \flexa \auctum \descendens g \]}}
+
+@item
+m @tab
+Clivis Aucta Ascendens @tab
+@samp{@code{\[ b \flexa \auctum \ascendens g \]}}
+
+@item
+n @tab
+Cephalicus @tab
+@samp{@code{\[ b \flexa \deminutum g \]}}
+
+@item
+o @tab
+Podatus vel Pes @tab
+@samp{@code{\[ g \pes b \]}}
+
+@item
+p @tab
+Pes Auctus Descendens @tab
+@samp{@code{\[ g \pes \auctum \descendens b \]}}
+
+@item
+q @tab
+Pes Auctus Ascendens @tab
+@samp{@code{\[ g \pes \auctum \ascendens b \]}}
+
+@item
+r @tab
+Epiphonus @tab
+@samp{@code{\[ g \pes \deminutum b \]}}
+
+@item
+s @tab
+Pes Quassus @tab
+@samp{@code{\[ \oriscus g \pes \virga b \]}}
+
+@item
+t @tab
+Pes Quassus Auctus Descendens @tab
+@samp{@code{\[ \oriscus g \pes \auctum \descendens b \]}}
+
+@item
+u @tab
+Quilisma Pes @tab
+@samp{@code{\[ \quilisma g \pes b \]}}
+
+@item
+v @tab
+Quilisma Pes Auctus Descendens @tab
+@samp{@code{\[ \quilisma g \pes \auctum \descendens b \]}}
+
+@item
+w @tab
+Pes Initio Debilis @tab
+@samp{@code{\[ \deminutum g \pes b \]}}
+
+@item
+x @tab
+Pes Auctus Descendens Initio Debilis @tab
+@samp{@code{\[ \deminutum g \pes \auctum \descendens b \]}}
+
+@item
+y @tab
+Torculus @tab
+@samp{@code{\[ a \pes b \flexa g \]}}
+
+@item
+z @tab
+Torculus Auctus Descendens @tab
+@samp{@code{\[ a \pes b \flexa \auctum \descendens g \]}}
+
+@item
+A @tab
+Torculus Deminutus @tab
+@samp{@code{\[ a \pes b \flexa \deminutum g \]}}
+
+@item
+B @tab
+Torculus Initio Debilis @tab
+@samp{@code{\[ \deminutum a \pes b \flexa g \]}}
+
+@item
+C @tab
+Torculus Auctus Descendens Initio Debilis @tab
+@samp{@code{\[ \deminutum a \pes b \flexa \auctum \descendens g \]}}
+
+@item
+D @tab
+Torculus Deminutus Initio Debilis @tab
+@samp{@code{\[ \deminutum a \pes b \flexa \deminutum g \]}}
+
+@item
+E @tab
+Porrectus @tab
+@samp{@code{\[ a \flexa g \pes b \]}}
+
+@item
+F @tab
+Porrectus Auctus Descendens @tab
+@samp{@code{\[ a \flexa g \pes \auctum \descendens b \]}}
+
+@item
+G @tab
+Porrectus Deminutus @tab
+@samp{@code{\[ a \flexa g \pes \deminutum b \]}}
+
+@item
+H @tab
+Climacus @tab
+@samp{@code{\[ \virga b \inclinatum a \inclinatum g \]}}
+
+@item
+I @tab
+Climacus Auctus @tab
+@samp{@code{\[ \virga b \inclinatum a \inclinatum \auctum g \]}}
+
+@item
+J @tab
+Climacus Deminutus @tab
+@samp{@code{\[ \virga b \inclinatum a \inclinatum \deminutum g \]}}
+
+@item
+K @tab
+Scandicus @tab
+@samp{@code{\[ g \pes a \virga b \]}}
+
+@item
+L @tab
+Scandicus Auctus Descendens @tab
+@samp{@code{\[ g \pes a \pes \auctum \descendens b \]}}
+
+@item
+M @tab
+Scandicus Deminutus @tab
+@samp{@code{\[ g \pes a \pes \deminutum b \]}}
+
+@item
+N @tab
+Salicus @tab
+@samp{@code{\[ g \oriscus a \pes \virga b \]}}
+
+@item
+O @tab
+Salicus Auctus Descendens @tab
+@samp{@code{\[ g \oriscus a \pes \auctum \descendens b \]}}
+
+@item
+P @tab
+Trigonus @tab
+@samp{@code{\[ \stropha b \stropha b \stropha a \]}}
+
+@end multitable
+
+@refbugs
Use special heads for lower/upper head of Pes only when heads are
stacked.
+Scandicus Deminutus: Punctum Auctum Ascendens overlaps with
+Semivocalis head; this looks awful.
+
+Trigonus: apply equal spacing, regardless of pitch.
+
@node Figured bass
@subsection Figured bass