@c -*- coding: utf-8; mode: texinfo; -*-

@ignore
    Translation of GIT committish: FILL-IN-HEAD-COMMITTISH

    When revising a translation, copy the HEAD committish of the
    version that you are working on.  For details, see the Contributors'
    Guide, node Updating translation committishes..
@end ignore

@c \version "2.19.80"

@node Notation manual tables
@appendix Notation manual tables

@menu
* Chord name chart::
* Common chord modifiers::
* Predefined string tunings::
* Predefined fretboard diagrams::
* Predefined paper sizes::
* MIDI instruments::
* List of colors::
* The Emmentaler font::
* Note head styles::
* Clef styles::
* Text markup commands::
* Text markup list commands::
* List of special characters::
* List of articulations::
* Percussion notes::
* Technical glossary::
* All context properties::
* Layout properties::
* Available music functions::
* Context modification identifiers::
* Predefined type predicates::
* Scheme functions::
@end menu



@node Chord name chart
@appendixsec Chord name chart

The following chart shows two standard systems for printing chord
names, along with the pitches they represent.

@c The line width is a hack to allow space for instrument names
@lilypondfile[quote,line-width=15\cm]{chord-names-jazz.ly}

@node Common chord modifiers
@appendixsec Common chord modifiers

The following table shows chord modifiers that can be used to generate
standard chord structures.

@multitable @columnfractions .2 .25 .2 .15 .2

@item
@b{Type}
@tab
@b{Interval}
@tab
@b{Modifier}
@tab
@b{Example}
@tab
@b{Output}


@item
Major
@tab
Major third, @*perfect fifth
@tab
@code{5} or nothing
@tab
@code{c1:5}
@tab
@lilypond[line-width=2.1\cm,notime]
<<
  \chords { c1:5 }
  \chordmode { c1:5 }
>>
@end lilypond

@item
Minor
@tab
Minor third, @*perfect fifth
@tab
@code{m} or @code{m5}
@tab
@code{c1:m}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:m }
  \chordmode { c1:m }
>>
@end lilypond

@item
Augmented
@tab
Major third, @*augmented fifth
@tab
@code{aug}
@tab
@code{c1:aug}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:aug }
  \chordmode { c1:aug }
>>
@end lilypond

@item
Diminished
@tab
Minor third, @*diminished fifth
@tab
@code{dim}
@tab
@code{c1:dim}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:dim }
  \chordmode { c1:dim }
>>
@end lilypond

@item
Dominant seventh
@tab
Major triad, @*minor seventh
@tab
@code{7}
@tab
@code{c1:7}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:7 }
  \chordmode { c1:7 }
>>
@end lilypond

@item
Major seventh
@tab
Major triad, @*major seventh
@tab
@code{maj7} or @code{maj}
@tab
@code{c1:maj7}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:maj7 }
  \chordmode { c1:maj7 }
>>
@end lilypond

@item
Minor seventh
@tab
Minor triad, @*minor seventh
@tab
@code{m7}
@tab
@code{c1:m7}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:m7 }
  \chordmode { c1:m7 }
>>
@end lilypond

@item
Diminished seventh
@tab
Diminished triad, @*diminished seventh
@tab
@code{dim7}
@tab
@code{c1:dim7}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:dim7}
  \chordmode { c1:dim7 }
>>
@end lilypond

@item
Augmented seventh
@tab
Augmented triad, @*minor seventh
@tab
@code{aug7}
@tab
@code{c1:aug7}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:aug7 }
  \chordmode { c1:aug7 }
>>
@end lilypond

@item
Half-diminished seventh
@tab
Diminished triad, @*minor seventh
@tab
@code{m7.5-}
@tab
@code{c1:m7.5-}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:m7.5- }
  \chordmode { c1:m7.5- }
>>
@end lilypond

@item
Minor-major seventh
@tab
Minor triad, @*major seventh
@tab
@code{m7+}
@tab
@code{c1:m7+}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:m7+ }
  \chordmode { c1:m7+ }
>>
@end lilypond

@item
Major sixth
@tab
Major triad, @*sixth
@tab
@code{6}
@tab
@code{c1:6}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:6 }
  \chordmode { c1:6 }
>>
@end lilypond

@item
Minor sixth
@tab
Minor triad, @*sixth
@tab
@code{m6}
@tab
@code{c1:m6}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:m6 }
  \chordmode { c1:m6 }
>>
@end lilypond

@item
Dominant ninth
@tab
Dominant seventh, @*major ninth
@tab
@code{9}
@tab
@code{c1:9}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:9 }
  \chordmode { c1:9 }
>>
@end lilypond

@item
Major ninth
@tab
Major seventh, @*major ninth
@tab
@code{maj9}
@tab
@code{c1:maj9}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:maj9 }
  \chordmode { c1:maj9 }
>>
@end lilypond

@item
Minor ninth
@tab
Minor seventh, @*major ninth
@tab
@code{m9}
@tab
@code{c1:m9}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:m9 }
  \chordmode { c1:m9 }
>>
@end lilypond

@item
Dominant eleventh
@tab
Dominant ninth, @*perfect eleventh
@tab
@code{11}
@tab
@code{c1:11}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:11 }
  \chordmode { c1:11 }
>>
@end lilypond

@item
Major eleventh
@tab
Major ninth, @*perfect eleventh
@tab
@code{maj11}
@tab
@code{c1:maj11}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:maj11 }
  \chordmode { c1:maj11 }
>>
@end lilypond

@item
Minor eleventh
@tab
Minor ninth, @*perfect eleventh
@tab
@code{m11}
@tab
@code{c1:m11}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:m11 }
  \chordmode { c1:m11 }
>>
@end lilypond

@item
Dominant thirteenth
@tab
Dominant ninth, @*major thirteenth
@tab
@code{13}
@tab
@code{c1:13}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:13 }
  \chordmode { c1:13 }
>>
@end lilypond

@item
Dominant thirteenth
@tab
Dominant eleventh, @*major thirteenth
@tab
@code{13.11}
@tab
@code{c1:13.11}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords{ c1:13.11 }
  \chordmode { c1:13.11 }
>>
@end lilypond

@item
Major thirteenth
@tab
Major eleventh, @*major thirteenth
@tab
@code{maj13.11}
@tab
@code{c1:maj13.11}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:maj13.11 }
  \chordmode { c1:maj13.11 }
>>
@end lilypond

@item
Minor thirteenth
@tab
Minor eleventh, @*major thirteenth
@tab
@code{m13.11}
@tab
@code{c1:m13.11}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:m13.11 }
  \chordmode { c1:m13.11 }
>>
@end lilypond

@item
Suspended second
@tab
Major second, @*perfect fifth
@tab
@code{sus2}
@tab
@code{c1:sus2}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:sus2 }
  \chordmode { c1:sus2 }
>>
@end lilypond

@item
Suspended fourth
@tab
Perfect fourth, @*perfect fifth
@tab
@code{sus4}
@tab
@code{c1:sus4}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
<<
  \chords { c1:sus4 }
  \chordmode { c1:sus4 }
>>
@end lilypond

@item
Power chord @*(two-voiced)
@tab
Perfect fifth
@tab
@code{1.5}
@tab
@code{\powerChords c1:5}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
\chordmode { \powerChords c1:5 }
@end lilypond

@item
Power chord @*@w{(three-voiced)}
@tab
Perfect fifth, @*octave
@tab
@code{1.5.8}
@tab
@code{\powerChords c1:5.8}
@tab
@lilypond[line-width=2.1\cm,noragged-right,notime]
  \chordmode { \powerChords c1:5.8 }
@end lilypond

@end multitable

@node Predefined string tunings
@appendixsec Predefined string tunings

The chart below shows the predefined string tunings.

@lilypondfile{display-predefined-string-tunings.ly}

@node Predefined fretboard diagrams
@appendixsec Predefined fretboard diagrams

@menu
* Diagrams for Guitar::
* Diagrams for Ukulele::
* Diagrams for Mandolin::
@end menu

@node Diagrams for Guitar
@unnumberedsubsec Diagrams for Guitar

@lilypondfile[line-width=15.5\cm]{display-predefined-fretboards.ly}

@node Diagrams for Ukulele
@unnumberedsubsec Diagrams for Ukulele

@lilypondfile[line-width=15.5\cm]{display-predefined-ukulele-fretboards.ly}

@node Diagrams for Mandolin
@unnumberedsubsec Diagrams for Mandolin

@lilypondfile[line-width=15.5\cm]{display-predefined-mandolin-fretboards.ly}


@node Predefined paper sizes
@appendixsec Predefined paper sizes

Paper sizes are defined in @file{scm/paper.scm}

@noindent
@strong{The @qq{ISO 216} A Series}
@table @code
@item "a10"
(26 x 37 mm)
@item "a9"
(37 x 52 mm)
@item "a8"
(52 x 74 mm)
@item "a7"
(74 x 105 mm)
@item "a6"
(105 x 148 mm)
@item "a5"
(148 x 210 mm)
@item "a4"
(210 x 297 mm)
@item "a3"
(297 x 420 mm)
@item "a2"
(420 x 594 mm)
@item "a1"
(594 x 841 mm)
@item "a0"
(841 x 1189 mm)
@end table

@noindent
@strong{The @qq{ISO 216} B Series}
@table @code
@item "b10"
(31 x 44 mm)
@item "b9"
(44 x 62 mm)
@item "b8"
(62 x 88 mm)
@item "b7"
(88 x 125 mm)
@item "b6"
(125 x 176 mm)
@item "b5"
(176 x 250 mm)
@item "b4"
(250 x 353 mm)
@item "b3"
(353 x 500 mm)
@item "b2"
(500 x 707 mm)
@item "b1"
(707 x 1000 mm)
@item "b0"
(1000 x 1414 mm)
@end table

@noindent
@strong{Two extended sizes as defined in @qq{DIN 476}}
@table @code
@item "4a0"
(1682 x 2378 mm)
@item "2a0"
(1189 x 1682 mm)
@end table

@noindent
@strong{@qq{ISO 269} standard C series}
@table @code
@item "c10"
(28 x 40 mm)
@item "c9"
(40 x 57 mm)
@item "c8"
(57 x 81 mm)
@item "c7"
(81 x 114 mm)
@item "c6"
(114 x 162 mm)
@item "c5"
(162 x 229 mm)
@item "c4"
(229 x 324 mm)
@item "c3"
(324 x 458 mm)
@item "c2"
(458 x 648 mm)
@item "c1"
(648 x 917 mm)
@item "c0"
(917 x 1297 mm)
@end table

@noindent
@strong{North American paper sizes}
@table @code
@item "junior-legal"
(8.0 x 5.0 in)
@item "legal"
(8.5 x 14.0 in)
@item "ledger"
(17.0 x 11.0 in)
@item "letter"
(8.5 x 11.0 in)
@item "tabloid"
(11.0 x 17.0 in)
@item "11x17"
(11.0 x 17.0 in)
@item "17x11"
(17.0 x 11.0 in)
@end table

@noindent
@strong{Government-letter by IEEE Printer Working Group, for children's
writing}
@table @code
@item "government-letter"
(8 x 10.5 in)
@item "government-legal"
(8.5 x 13.0 in)
@item "philippine-legal"
(8.5 x 13.0 in)
@end table

@noindent
@strong{ANSI sizes}
@table @code
@item "ansi a"
(8.5 x 11.0 in)
@item "ansi b"
(17.0 x 11.0 in)
@item "ansi c"
(17.0 x 22.0 in)
@item "ansi d"
(22.0 x 34.0 in)
@item "ansi e"
(34.0 x 44.0 in)
@item "engineering f"
(28.0 x 40.0 in)
@end table

@noindent
@strong{North American Architectural sizes}
@table @code
@item "arch a"
(9.0 x 12.0 in)
@item "arch b"
(12.0 x 18.0 in)
@item "arch c"
(18.0 x 24.0 in)
@item "arch d"
(24.0 x 36.0 in)
@item "arch e"
(36.0 x 48.0 in)
@item "arch e1"
(30.0 x 42.0 in)
@end table

@noindent
@strong{Antique sizes still used in the United Kingdom}
@table @code
@item "statement"
(5.5 x 8.5 in)
@item "half letter"
(5.5 x 8.5 in)
@item "quarto"
(8.0 x 10.0 in)
@item "octavo"
(6.75 x 10.5 in)
@item "executive"
(7.25 x 10.5 in)
@item "monarch"
(7.25 x 10.5 in)
@item "foolscap"
(8.27 x 13.0 in)
@item "folio"
(8.27 x 13.0 in)
@item "super-b"
(13.0 x 19.0 in)
@item "post"
(15.5 x 19.5 in)
@item "crown"
(15.0 x 20.0 in)
@item "large post"
(16.5 x 21.0 in)
@item "demy"
(17.5 x 22.5 in)
@item "medium"
(18.0 x 23.0 in)
@item "broadsheet"
(18.0 x 24.0 in)
@item "royal"
(20.0 x 25.0 in)
@item "elephant"
(23.0 x 28.0 in)
@item "double demy"
(22.5 x 35.0 in)
@item "quad demy"
(35.0 x 45.0 in)
@item "atlas"
(26.0 x 34.0 in)
@item "imperial"
(22.0 x 30.0 in)
@item "antiquarian"
(31.0 x 53.0 in)
@end table

@noindent
@strong{PA4 based sizes}
@table @code
@item "pa0"
(840 x 1120 mm)
@item "pa1"
(560 x 840 mm)
@item "pa2"
(420 x 560 mm)
@item "pa3"
(280 x 420 mm)
@item "pa4"
(210 x 280 mm)
@item "pa5"
(140 x 210 mm)
@item "pa6"
(105 x 140 mm)
@item "pa7"
(70 x 105 mm)
@item "pa8"
(52 x 70 mm)
@item "pa9"
(35 x 52 mm)
@item "pa10"
(26 x 35 mm)
@end table

@noindent
@strong{Used in Southeast Asia and Australia}
@table @code
@item "f4"
(210 x 330 mm)
@end table

@noindent
@strong{Used for very small @code{@@lilypond} examples in the
documentation based on a8 landscape.}
@table @code
@item "a8landscape"
(74 x 52 mm)
@end table


@node MIDI instruments
@appendixsec MIDI instruments

The following is a list of names that can be used for the
@code{midiInstrument} property.  The order of the instruments
below, starting in the left-hand column moving down, corresponds
to the General MIDI Standard's 128 Program Numbers.

@example
acoustic grand            contrabass           lead 7 (fifths)
bright acoustic           tremolo strings      lead 8 (bass+lead)
electric grand            pizzicato strings    pad 1 (new age)
honky-tonk                orchestral harp      pad 2 (warm)
electric piano 1          timpani              pad 3 (polysynth)
electric piano 2          string ensemble 1    pad 4 (choir)
harpsichord               string ensemble 2    pad 5 (bowed)
clav                      synthstrings 1       pad 6 (metallic)
celesta                   synthstrings 2       pad 7 (halo)
glockenspiel              choir aahs           pad 8 (sweep)
music box                 voice oohs           fx 1 (rain)
vibraphone                synth voice          fx 2 (soundtrack)
marimba                   orchestra hit        fx 3 (crystal)
xylophone                 trumpet              fx 4 (atmosphere)
tubular bells             trombone             fx 5 (brightness)
dulcimer                  tuba                 fx 6 (goblins)
drawbar organ             muted trumpet        fx 7 (echoes)
percussive organ          french horn          fx 8 (sci-fi)
rock organ                brass section        sitar
church organ              synthbrass 1         banjo
reed organ                synthbrass 2         shamisen
accordion                 soprano sax          koto
harmonica                 alto sax             kalimba
concertina                tenor sax            bagpipe
acoustic guitar (nylon)   baritone sax         fiddle
acoustic guitar (steel)   oboe                 shanai
electric guitar (jazz)    english horn         tinkle bell
electric guitar (clean)   bassoon              agogo
electric guitar (muted)   clarinet             steel drums
overdriven guitar         piccolo              woodblock
distorted guitar          flute                taiko drum
guitar harmonics          recorder             melodic tom
acoustic bass             pan flute            synth drum
electric bass (finger)    blown bottle         reverse cymbal
electric bass (pick)      shakuhachi           guitar fret noise
fretless bass             whistle              breath noise
slap bass 1               ocarina              seashore
slap bass 2               lead 1 (square)      bird tweet
synth bass 1              lead 2 (sawtooth)    telephone ring
synth bass 2              lead 3 (calliope)    helicopter
violin                    lead 4 (chiff)       applause
viola                     lead 5 (charang)     gunshot
cello                     lead 6 (voice)
@end example


@node List of colors
@appendixsec List of colors

@subsubheading Normal colors

Usage syntax is detailed in @ref{Coloring objects}.

@cindex list of colors
@cindex color, list of

@verbatim
black       white          red         green
blue        cyan           magenta     yellow
grey        darkred        darkgreen   darkblue
darkcyan    darkmagenta    darkyellow
@end verbatim


@subsubheading X color names

X color names come several variants:

Any name that is spelled as a single word with capitalization
(e.g., @q{LightSlateBlue}) can also be spelled as space separated
words without capitalization (e.g., @q{light slate blue}).

The word @q{grey} can always be spelled @q{gray} (e.g., @q{DarkSlateGray}).

Some names can take a numerical suffix (e.g., @q{LightSalmon4}).


@subsubheading Color Names without a numerical suffix:

@verbatim
snow		GhostWhite	WhiteSmoke	gainsboro	FloralWhite
OldLace		linen		AntiqueWhite	PapayaWhip	BlanchedAlmond
bisque		PeachPuff	NavajoWhite	moccasin	cornsilk
ivory		LemonChiffon	seashell	honeydew	MintCream
azure		AliceBlue	lavender	LavenderBlush	MistyRose
white		black		DarkSlateGrey	DimGrey		SlateGrey
LightSlateGrey	grey		LightGrey	MidnightBlue	navy
NavyBlue	CornflowerBlue	DarkSlateBlue	SlateBlue	MediumSlateBlue
LightSlateBlue	MediumBlue	RoyalBlue	blue		DodgerBlue
DeepSkyBlue	SkyBlue		LightSkyBlue	SteelBlue	LightSteelBlue
LightBlue	PowderBlue	PaleTurquoise	DarkTurquoise	MediumTurquoise
turquoise	cyan		LightCyan	CadetBlue	MediumAquamarine
aquamarine	DarkGreen	DarkOliveGreen	DarkSeaGreen	SeaGreen
MediumSeaGreen	LightSeaGreen	PaleGreen	SpringGreen	LawnGreen
green		chartreuse	MediumSpringGreen	GreenYellow	LimeGreen
YellowGreen	ForestGreen	OliveDrab	DarkKhaki	khaki
PaleGoldenrod	LightGoldenrodYellow	LightYellow	yellow	gold
LightGoldenrod	goldenrod	DarkGoldenrod	RosyBrown	IndianRed
SaddleBrown	sienna		peru		burlywood	beige
wheat		SandyBrown	tan		chocolate	firebrick
brown		DarkSalmon	salmon		LightSalmon	orange
DarkOrange	coral		LightCoral	tomato		OrangeRed
red		HotPink		DeepPink	pink		LightPink
PaleVioletRed	maroon		MediumVioletRed	VioletRed	magenta
violet		plum		orchid		MediumOrchid	DarkOrchid
DarkViolet	BlueViolet	purple		MediumPurple	thistle
DarkGrey	DarkBlue	DarkCyan	DarkMagenta	DarkRed
LightGreen
@end verbatim


@subsubheading Color names with a numerical suffix

In the following names the suffix N can be a number in the range 1-4:

@verbatim
snowN		seashellN	AntiqueWhiteN	bisqueN		PeachPuffN
NavajoWhiteN	LemonChiffonN	cornsilkN	ivoryN		honeydewN
LavenderBlushN	MistyRoseN	azureN		SlateBlueN	RoyalBlueN
blueN		DodgerBlueN	SteelBlueN	DeepSkyBlueN	SkyBlueN
LightSkyBlueN	LightSteelBlueN	LightBlueN	LightCyanN	PaleTurquoiseN
CadetBlueN	turquoiseN	cyanN		aquamarineN	DarkSeaGreenN
SeaGreenN	PaleGreenN	SpringGreenN	greenN		chartreuseN
OliveDrabN	DarkOliveGreenN	khakiN		LightGoldenrodN	LightYellowN
yellowN		goldN		goldenrodN	DarkGoldenrodN	RosyBrownN
IndianRedN	siennaN		burlywoodN	wheatN		tanN
chocolateN	firebrickN	brownN		salmonN		LightSalmonN
orangeN		DarkOrangeN	coralN		tomatoN		OrangeRedN
redN		DeepPinkN	HotPinkN	pinkN		LightPinkN
PaleVioletRedN	maroonN		VioletRedN	magentaN	orchidN
plumN		MediumOrchidN	DarkOrchidN	purpleN		MediumPurpleN
thistleN
@end verbatim


@subsubheading Grey Scale

A grey scale can be obtained using:

@example
greyN
@end example

@noindent
Where N is in the range 0-100.


@node The Emmentaler font
@appendixsec The Emmentaler font


@cindex Emmentaler font
@cindex font, Emmentaler
@cindex Feta font
@cindex font, Feta
@cindex Parmesan font
@cindex font, Parmesan

The Emmentaler font consists of two @emph{sub-sets} of glyphs.
@qq{Feta}, used for classical notation and @qq{Parmesan}, used for
Ancient notation.

Any glyph within the Emmentaler font can be accessed directly by using
text markup along with the name of the glyph (as shown in the tables
below).  For example;

@example
g^\markup @{\musicglyph "scripts.segno" @}
@end example

@noindent
or

@example
\markup @{\musicglyph "five"@}
@end example

For more information see @ref{Formatting text}.


@menu
* Clef glyphs::
* Time Signature glyphs::
* Number glyphs::
* Accidental glyphs::
* Default Notehead glyphs::
* Special Notehead glyphs::
* Shape-note Notehead glyphs::
* Rest glyphs::
* Flag glyphs::
* Dot glyphs::
* Dynamic glyphs::
* Script glyphs::
* Arrowhead glyphs::
* Bracket-tip glyphs::
* Pedal glyphs::
* Accordion glyphs::
* Tie glyphs::
* Vaticana glyphs::
* Medicaea glyphs::
* Hufnagel glyphs::
* Mensural glyphs::
* Neomensural glyphs::
* Petrucci glyphs::
* Solesmes glyphs::
* Kievan Notation glyphs::
@end menu


@node Clef glyphs
@unnumberedsubsec Clef glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #clefs
@end lilypond


@node Time Signature glyphs
@unnumberedsubsec Time Signature glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #timesig
@end lilypond


@node Number glyphs
@unnumberedsubsec Number glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #numbers
@end lilypond


@node Accidental glyphs
@unnumberedsubsec Accidental glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #accidentals
@end lilypond


@node Default Notehead glyphs
@unnumberedsubsec Default Notehead glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #default-noteheads
@end lilypond


@node Special Notehead glyphs
@unnumberedsubsec Special Notehead glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #special-noteheads
@end lilypond


@node Shape-note Notehead glyphs
@unnumberedsubsec Shape-note Notehead glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #shape-note-noteheads
@end lilypond


@node Rest glyphs
@unnumberedsubsec Rest glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #rests
@end lilypond


@node Flag glyphs
@unnumberedsubsec Flag glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #flags
@end lilypond


@node Dot glyphs
@unnumberedsubsec Dot glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #dots
@end lilypond


@node Dynamic glyphs
@unnumberedsubsec Dynamic glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #dynamics
@end lilypond


@node Script glyphs
@unnumberedsubsec Script glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #scripts
@end lilypond


@node Arrowhead glyphs
@unnumberedsubsec Arrowhead glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #arrowheads
@end lilypond


@node Bracket-tip glyphs
@unnumberedsubsec Bracket-tip glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #brackettips
@end lilypond


@node Pedal glyphs
@unnumberedsubsec Pedal glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #pedal
@end lilypond


@node Accordion glyphs
@unnumberedsubsec Accordion glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #accordion
@end lilypond


@node Tie glyphs
@unnumberedsubsec Tie glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #ties
@end lilypond


@node Vaticana glyphs
@unnumberedsubsec Vaticana glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #vaticana
@end lilypond


@node Medicaea glyphs
@unnumberedsubsec Medicaea glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #medicaea
@end lilypond


@node Hufnagel glyphs
@unnumberedsubsec Hufnagel glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #hufnagel
@end lilypond


@node Mensural glyphs
@unnumberedsubsec Mensural glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #mensural
@end lilypond


@node Neomensural glyphs
@unnumberedsubsec Neomensural glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #neomensural
@end lilypond


@node Petrucci glyphs
@unnumberedsubsec Petrucci glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #petrucci
@end lilypond


@node Solesmes glyphs
@unnumberedsubsec Solesmes glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
            \doc-chars #solesmes
@end lilypond

@node Kievan Notation glyphs
@unnumberedsubsec Kievan Notation glyphs

@lilypond[quote]
\include "font-table.ly"
\markuplist \override-lines #'(word-space . 4)
	     \doc-chars #kievan
@end lilypond


@node Note head styles
@appendixsec Note head styles

@cindex note head style
The following styles may be used for note heads.

@lilypondfile[noindent]{note-head-style.ly}


@node Clef styles
@appendixsec Clef styles

The following table shows all the clef styles possible (including where
@emph{middle C} sits relative to the clef).

@cindex treble clef
@cindex clef, treble
@cindex violin clef
@cindex clef, violin
@cindex clef, G
@cindex clef, G2
@cindex clef, GG
@cindex clef, tenor G
@cindex tenor G clef
@cindex clef, french
@cindex French clef
@cindex clef, soprano
@cindex soprano clef
@cindex clef, mezzosoprano
@cindex mezzosoprano clef
@cindex clef, alto
@cindex alto clef
@cindex clef, C
@cindex C clef
@cindex clef, varC
@cindex varC clef
@cindex clef, alto varC
@cindex alto varC clef
@cindex clef, tenor
@cindex tenor clef
@cindex clef, tenor varC
@cindex tenor varC clef
@cindex clef, baritone varC
@cindex baritone varC clef
@cindex clef, varbaritone
@cindex baritone clef
@cindex clef, baritone varF
@cindex baritone varF clef
@cindex clef, bass
@cindex bass clef
@cindex clef, F
@cindex F clef
@cindex clef, subbass
@cindex subbass clef
@cindex clef, percussion
@cindex percussion clef
@cindex clef, tab
@cindex tab clef
@cindex clef style
@cindex ancient music clef
@cindex clef, ancient music
@cindex clef, Petrucci
@cindex clef, mensural
@cindex clef, blackmensural
@cindex clef, Kievan
@cindex Petrucci clef
@cindex mensural clef
@cindex blackmensural clef
@cindex Kievan clef

@menu
* Standard clefs::
* Percussion staff clef::
* Tab staff clefs::
* Ancient music clefs::
@end menu

@node Standard clefs
@unnumberedsubsec Standard clefs

@multitable @columnfractions .30 .2 .30 .2

@headitem
Example
@tab
Output
@tab
Example
@tab
Output

@item
@code{\clef G}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef G c1
@end lilypond

@tab
@code{\clef "G2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef "G2"
c1
@end lilypond

@item
@code{\clef treble}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef treble
c1
@end lilypond

@tab
@code{\clef violin}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef violin
c1
@end lilypond

@item
@code{\clef french}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef french
c1
@end lilypond
@tab
@code{\clef GG}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef GG
c1
@end lilypond

@item
@code{\clef tenorG}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef tenorG
c1
@end lilypond

@*

@item
@code{\clef soprano}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef soprano
c1
@end lilypond
@tab
@code{\clef mezzosoprano}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef mezzosoprano
c1
@end lilypond

@item
@code{\clef C}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef C
c1
@end lilypond
@tab
@code{\clef alto}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef alto
c1
@end lilypond

@item
@code{\clef tenor}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef tenor
c1
@end lilypond
@tab
@code{\clef baritone}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef baritone
c1
@end lilypond

@*

@item
@code{\clef varC}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef varC
c1
@end lilypond
@tab
@code{\clef altovarC}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef altovarC
c1
@end lilypond

@item
@code{\clef tenorvarC}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef tenorvarC
c1
@end lilypond
@tab
@code{\clef baritonevarC}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef baritonevarC
c1
@end lilypond

@*

@item
@code{\clef varbaritone}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef varbaritone
c1
@end lilypond
@tab
@code{\clef baritonevarF}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef baritonevarF
c1
@end lilypond

@item
@code{\clef F}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef F
c1
@end lilypond
@tab
@code{\clef bass}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef bass
c1
@end lilypond

@item
@code{\clef subbass}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef subbass
c1
@end lilypond

@end multitable


@node Percussion staff clef
@unnumberedsubsec Percussion staff clef

@multitable @columnfractions .30 .2 .30 .2

@headitem
Example
@tab
Output
@tab
Example
@tab
Output

@item
@code{\clef percussion}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef percussion
c1
@end lilypond
@tab
@code{\clef varpercussion}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\clef varpercussion
c1
@end lilypond

@end multitable


@node Tab staff clefs
@unnumberedsubsec Tab staff clefs

@multitable @columnfractions .30 .2 .30 .2

@headitem
Example
@tab
Output
@tab
Example
@tab
Output

@item
@c @example does not work as expected within multitables
@code{
\new TabStaff @{ @*
@ @ \clef tab @*
@}
}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\new TabStaff {
  \clef tab
  c1
}
@end lilypond
@tab
@c @example does not work as expected within multitables
@code{
\new TabStaff @{ @*
@ @ \clef moderntab @*
@}
}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
\new TabStaff {
  \clef moderntab
  c1
}
@end lilypond

@end multitable


@node Ancient music clefs
@unnumberedsubsec Ancient music clefs

@strong{Gregorian}

@multitable @columnfractions .30 .20 .30 .20

@headitem
Example
@tab
Output
@tab
Example
@tab
Output

@item
@code{\clef "vaticana-do1"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "vaticana-do1"
  \override NoteHead.style = #'vaticana.punctum
  c1
@end lilypond
@tab
@code{\clef "vaticana-do2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "vaticana-do2"
  \override NoteHead.style = #'vaticana.punctum
  c1
@end lilypond

@item
@code{\clef "vaticana-do3"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "vaticana-do3"
  \override NoteHead.style = #'vaticana.punctum
  c1
@end lilypond
@tab
@code{\clef "vaticana-fa1"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "vaticana-fa1"
  \override NoteHead.style = #'vaticana.punctum
  c1
@end lilypond

@item
@code{\clef "vaticana-fa2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "vaticana-fa2"
  \override NoteHead.style = #'vaticana.punctum
  c1
@end lilypond

@*

@item
@code{\clef "medicaea-do1"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "medicaea-do1"
  \override NoteHead.style = #'medicaea.punctum
  c1
@end lilypond
@tab
@code{\clef "medicaea-do2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "medicaea-do2"
  \override NoteHead.style = #'medicaea.punctum
  c1
@end lilypond

@item
@code{\clef "medicaea-do3"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "medicaea-do3"
  \override NoteHead.style = #'medicaea.punctum
  c1
@end lilypond
@tab
@code{\clef "medicaea-fa1"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "medicaea-fa1"
  \override NoteHead.style = #'medicaea.punctum
  c1
@end lilypond

@item
@code{\clef "medicaea-fa2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "medicaea-fa2"
  \override NoteHead.style = #'medicaea.punctum
  c1
@end lilypond

@*

@item
@code{\clef "hufnagel-do1"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "hufnagel-do1"
  \override NoteHead.style = #'hufnagel.punctum
  c1
@end lilypond
@tab
@code{\clef "hufnagel-do2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "hufnagel-do2"
  \override NoteHead.style = #'hufnagel.punctum
  c1
@end lilypond

@item
@code{\clef "hufnagel-do3"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "hufnagel-do3"
  \override NoteHead.style = #'hufnagel.punctum
  c1
@end lilypond
@tab
@code{\clef "hufnagel-fa1"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "hufnagel-fa1"
  \override NoteHead.style = #'hufnagel.punctum
  c1
@end lilypond

@item
@code{\clef "hufnagel-fa2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #4
  \override Staff.StaffSymbol.color = #red
  \clef "hufnagel-fa2"
  \override NoteHead.style = #'hufnagel.punctum
  c1
@end lilypond
@tab
@code{\clef @* "hufnagel-do-fa"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \override Staff.StaffSymbol.line-count = #5
  \override Staff.StaffSymbol.color = #red
  \clef "hufnagel-do-fa"
  \override NoteHead.style = #'hufnagel.punctum
  c1
@end lilypond

@end multitable


@strong{Mensural}

@multitable @columnfractions .30 .2 .30 .2

@headitem
Example
@tab
Output
@tab
Example
@tab
Output

@item
@code{\clef "mensural-c1"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "mensural-c1"
  \override NoteHead.style = #'mensural
  c1
@end lilypond
@tab
@code{\clef "mensural-c2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "mensural-c2"
  \override NoteHead.style = #'mensural
  c1
@end lilypond

@item
@code{\clef "mensural-c3"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "mensural-c3"
  \override NoteHead.style = #'mensural
  c1
@end lilypond
@tab
@code{\clef "mensural-c4"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "mensural-c4"
  \override NoteHead.style = #'mensural
  c1
@end lilypond

@item
@code{\clef "mensural-c5"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "mensural-c5"
  \override NoteHead.style = #'mensural
  c1
@end lilypond

@*

@item
@code{\clef "mensural-f"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "mensural-f"
  \override NoteHead.style = #'mensural
  c1
@end lilypond
@tab
@code{\clef "mensural-g"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "mensural-g"
  \override NoteHead.style = #'mensural
  c1
@end lilypond

@*

@item
@code{\clef "blackmensural-c1"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "blackmensural-c1"
  \override NoteHead.style = #'blackmensural
  c1
@end lilypond
@tab
@code{\clef "blackmensural-c2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "blackmensural-c2"
  \override NoteHead.style = #'blackmensural
  c1
@end lilypond

@item
@code{\clef "blackmensural-c3"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "blackmensural-c3"
  \override NoteHead.style = #'blackmensural
  c1
@end lilypond
@tab
@code{\clef "blackmensural-c4"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "blackmensural-c4"
  \override NoteHead.style = #'blackmensural
  c1
@end lilypond

@item
@code{\clef "blackmensural-c5"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "blackmensural-c5"
  \override NoteHead.style = #'blackmensural
  c1
@end lilypond

@*

@item
@code{\clef "neomensural-c1"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "neomensural-c1"
  \override NoteHead.style = #'neomensural
  c1
@end lilypond
@tab
@code{\clef "neomensural-c2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "neomensural-c2"
  \override NoteHead.style = #'neomensural
  c1
@end lilypond

@item
@code{\clef "neomensural-c3"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "neomensural-c3"
  \override NoteHead.style = #'neomensural
  c1
@end lilypond
@tab
@code{\clef "neomensural-c4"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "neomensural-c4"
  \override NoteHead.style = #'neomensural
  c1
@end lilypond

@item
@code{\clef "neomensural-c5"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "neomensural-c5"
  \override NoteHead.style = #'neomensural
  c1
@end lilypond

@*

@item
@code{\clef "petrucci-c1"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-c1"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond
@tab
@code{\clef "petrucci-c2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-c2"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond

@item
@code{\clef "petrucci-c3"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-c3"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond
@tab
@code{\clef "petrucci-c4"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-c4"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond

@item
@code{\clef "petrucci-c5"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-c5"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond

@*

@item
@code{\clef "petrucci-f"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-f"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond
@tab
@code{\clef "petrucci-f2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-f2"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond

@item
@code{\clef "petrucci-f3"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-f3"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond
@tab
@code{\clef "petrucci-f4"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-f4"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond

@item
@code{\clef "petrucci-f5"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-f5"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond

@*

@item
@code{\clef "petrucci-g1"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-g1"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond
@tab
@code{\clef "petrucci-g2"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-g2"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond

@item
@code{\clef "petrucci-g"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "petrucci-g"
  \override NoteHead.style = #'petrucci
  c1
@end lilypond

@end multitable


@strong{Kievan}

@multitable @columnfractions .30 .2 .30 .2

@headitem
Example
@tab
Output
@tab
@c Example
@tab
@c Output


@item
@code{\clef "kievan-do"}
@tab
@lilypond[line-width=3\cm,notime,ragged-right,relative=1]
  \clef "kievan-do"
  \override NoteHead.style = #'kievan
  c1
@end lilypond

@end multitable


@node Text markup commands
@appendixsec Text markup commands

@ignore
All the .tely files included in this appendix are automatically
generated from source files during the build.
For translators: you cannot translate the content of these files.
@end ignore

@include markup-commands.tely


@node Text markup list commands
@appendixsec Text markup list commands

The following commands can all be used with @code{\markuplist}:

@include markup-list-commands.tely


@node List of special characters
@appendixsec List of special characters

The following special characters references can be used;
for more details, see @ref{ASCII aliases}.

The HTML syntax is used and most of these references are the same as HTML.
The rest of them are inspired by @LaTeX{}.

The characters are boxed so that you can see their size.
A small padding has been added between the character and the box
for more readability.

@lilypond[quote]
\include "special-characters.ly"
@end lilypond


@node List of articulations
@appendixsec List of articulations


The following lists show all the scripts in the Feta font that may be
attached to notes (eg. @samp{f\accent} or @samp{f->}).  Each example
shows the script in the @emph{up}, @emph{down} and @emph{neutral}
positions respectively.

@c Articulations and ornamentations
@c Fingering instructions (for "thumb")
@c Common notation for unfretted strings
@c   Bowing indications
@c   Harmonics
@c   Snap (Bartók) pizzicato
@c Custom percussion staves (for "halfopen" -- not yet funindexed)
@c References for wind instruments (for "open"/"stopped" -- not yet funindexed)


@menu
* Articulation scripts::
* Ornament scripts::
* Fermata scripts::
* Instrument-specific scripts::
* Repeat sign scripts::
* Ancient scripts::
@end menu

@ignore
The @multitable @columnfraction value discrepancy between the first and
the remaining columns is deliberate; it seems (at least visually
anyway) the gap (after building the documentation) between first and
second column examples was always larger than between the remaining
columns - JL
@end ignore

@funindex \accent
@funindex ->
@funindex \espressivo
@funindex \marcato
@funindex -^
@funindex \portato
@funindex -_
@funindex \staccatissimo
@funindex -!
@funindex \staccato
@funindex -.
@funindex \tenuto
@funindex --
@cindex thumb

@node Articulation scripts
@unnumberedsubsec Articulation scripts

@multitable @columnfractions .22 .25 .25 .25

@item
@code{\accent} or @code{->}
@lilypond[notime,relative=2]
f^\accent e,_\accent b'\accent
@end lilypond
@tab
@code{\espressivo}
@lilypond[notime,relative=2]
f^\espressivo e,_\espressivo b'\espressivo
@end lilypond
@tab
@code{\marcato} or @code{-^}
@lilypond[notime,relative=2]
f^\marcato e,_\marcato b'\marcato
@end lilypond
@tab
@code{\portato} or @code{-_}
@lilypond[notime,relative=2]
f^\portato e,_\portato b'\portato
@end lilypond

@item
@code{\staccatissimo} @* or @code{-!}
@lilypond[notime,relative=2]
f^\staccatissimo e,_\staccatissimo b'\staccatissimo
@end lilypond
@tab
@code{\staccato} or @code{-.}
@lilypond[notime,relative=2]
f^\staccato e,_\staccato b'\staccato
@end lilypond
@tab
@code{\tenuto} or @code{--}
@lilypond[notime,relative=2]
f^\tenuto e,_\tenuto b'\tenuto
@end lilypond

@end multitable

@funindex \prall
@funindex \prallup
@funindex \pralldown
@funindex \upprall
@funindex \downprall
@funindex \prallprall
@funindex \lineprall
@funindex \prallmordent
@funindex \mordent
@funindex \upmordent
@funindex \downmordent
@funindex \trill
@funindex \turn
@funindex \reverseturn

@node Ornament scripts
@unnumberedsubsec Ornament scripts

@multitable @columnfractions .22 .25 .25 .25

@item
@code{\prall}
@lilypond[notime,relative=2]
f^\prall e,_\prall b'\prall
@end lilypond
@tab
@code{\prallup}
@lilypond[notime,relative=2]
f^\prallup e,_\prallup b'\prallup
@end lilypond
@tab
@code{\pralldown}
@lilypond[notime,relative=2]
f^\pralldown e,_\pralldown b'\pralldown
@end lilypond
@tab
@code{\upprall}
@lilypond[notime,relative=2]
f^\upprall e,_\upprall b'\upprall
@end lilypond

@item
@code{\downprall}
@lilypond[notime,relative=2]
f^\downprall e,_\downprall b'\downprall
@end lilypond
@tab
@code{\prallprall}
@lilypond[notime,relative=2]
f^\prallprall e,_\prallprall b'\prallprall
@end lilypond
@tab
@code{\lineprall}
@lilypond[notime,relative=2]
f^\lineprall e,_\lineprall b'\lineprall
@end lilypond
@tab
@code{\prallmordent}
@lilypond[notime,relative=2]
f^\prallmordent e,_\prallmordent b'\prallmordent
@end lilypond

@item
@code{\mordent}
@lilypond[notime,relative=2]
f^\mordent e,_\mordent b'\mordent
@end lilypond
@tab
@code{\upmordent}
@lilypond[notime,relative=2]
f^\upmordent e,_\upmordent b'\upmordent
@end lilypond
@tab
@code{\downmordent}
@lilypond[notime,relative=2]
f^\downmordent e,_\downmordent b'\downmordent
@end lilypond
@tab
@code{\trill}
@lilypond[notime,relative=2]
f^\trill e,_\trill b'\trill
@end lilypond

@item
@code{\turn}
@lilypond[notime,relative=2]
f^\turn e,_\turn b'\reverseturn
@end lilypond
@tab
@code{\reverseturn}
@lilypond[notime,relative=2]
f^\reverseturn e,_\reverseturn b'\reverseturn
@end lilypond

@end multitable

@funindex \fermata
@funindex \shortfermata
@funindex \longfermata
@funindex \verylongfermata

@node Fermata scripts
@unnumberedsubsec Fermata scripts

@multitable @columnfractions .22 .25 .25 .25

@item
@code{\shortfermata}
@lilypond[notime,relative=2]
f^\shortfermata e,_\shortfermata b'\shortfermata
@end lilypond
@tab
@code{\fermata}
@lilypond[notime,relative=2]
f^\fermata e,_\fermata b'\fermata
@end lilypond
@tab
@code{\longfermata}
@lilypond[notime,relative=2]
f^\longfermata e,_\longfermata b'\longfermata
@end lilypond
@tab
@code{\verylongfermata}
@lilypond[notime,relative=2]
f^\verylongfermata e,_\verylongfermata b'\verylongfermata
@end lilypond

@end multitable

@funindex \upbow
@funindex \downbow
@funindex \flageolet
@funindex \open
@funindex \halfopen
@funindex \lheel
@funindex \rheel
@funindex \ltoe
@funindex \rtoe
@funindex \snappizzicato
@funindex \stopped
@funindex -+

@node Instrument-specific scripts
@unnumberedsubsec Instrument-specific scripts

@multitable @columnfractions .22 .25 .25 .25

@item
@code{\upbow}
@lilypond[notime,relative=2]
f^\upbow e,_\upbow b'\upbow
@end lilypond
@tab
@code{\downbow}
@lilypond[notime,relative=2]
f^\downbow e,_\downbow b'\downbow
@end lilypond
@tab
@code{\flageolet}
@lilypond[notime,relative=2]
f^\flageolet e,_\flageolet b'\flageolet
@end lilypond
@tab
@code{\open}
@lilypond[notime,relative=2]
f^\open e,_\open b'\open
@end lilypond

@item
@code{\halfopen}
@lilypond[notime,relative=2]
f^\halfopen e,_\halfopen b'\halfopen
@end lilypond
@tab
@code{\lheel}
@lilypond[notime,relative=2]
f^\lheel e,_\lheel b'\lheel
@end lilypond
@tab
@code{\rheel}
@lilypond[notime,relative=2]
f^\rheel e,_\rheel b'\rheel
@end lilypond
@tab
@code{\ltoe}
@lilypond[notime,relative=2]
f^\ltoe e,_\ltoe b'\ltoe
@end lilypond

@item
@code{\rtoe}
@lilypond[notime,relative=2]
f^\rtoe e,_\rtoe b'\rtoe
@end lilypond
@tab
@code{\snappizzicato}
@lilypond[notime,relative=2]
f^\snappizzicato e,_\snappizzicato b'\snappizzicato
@end lilypond
@tab
@code{\stopped} or @code{-+}
@lilypond[notime,relative=2]
f^\stopped e,_\stopped b'\stopped
@end lilypond

@end multitable

@funindex \segno
@funindex \coda
@funindex \varcoda

@node Repeat sign scripts
@unnumberedsubsec Repeat sign scripts

@multitable @columnfractions .22 .25 .25 .25

@item
@code{\segno}
@lilypond[notime,relative=2]
f^\segno e,_\segno b'\segno
@end lilypond
@tab
@code{\coda}
@lilypond[notime,relative=2]
f^\coda e,_\coda b'\coda
@end lilypond
@tab
@code{\varcoda}
@lilypond[notime,relative=2]
f^\varcoda e,_\varcoda b'\varcoda
@end lilypond

@end multitable

@funindex \accentus
@funindex \circulus
@funindex \ictus
@funindex \semicirculus
@funindex \signumcongruentiae

@node Ancient scripts
@unnumberedsubsec Ancient scripts

@multitable @columnfractions .22 .25 .25 .25

@item
@code{\accentus}
@lilypond[notime]
\include "gregorian.ly"
\new VaticanaStaff { e'^\accentus s4 f_\accentus s4 b\accentus}
@end lilypond
@tab
@code{\circulus}
@lilypond[notime]
\include "gregorian.ly"
\new VaticanaStaff { e'^\circulus s4 f_\circulus s4 b\circulus  }
@end lilypond
@tab
@code{\ictus}
@lilypond[notime]
\include "gregorian.ly"
\new VaticanaStaff { e'^\ictus s4 f_\ictus s4 b\ictus}
@end lilypond

@item
@code{\semicirculus}
@lilypond[notime]
\include "gregorian.ly"
\new VaticanaStaff {
  e'^\semicirculus s4 f_\semicirculus s4 b\semicirculus
}
@end lilypond
@tab
@code{\signumcongruentiae}
@lilypond[notime]
\include "gregorian.ly"
\new VaticanaStaff {
  e'^\signumcongruentiae s4
  f_\signumcongruentiae s4
  b\signumcongruentiae
}
@end lilypond

@end multitable

@cindex drum, various
@cindex acoustic bass
@cindex bass
@cindex snare
@cindex electric snare
@cindex acoustic snare
@cindex tom tom
@cindex bongo
@cindex conga
@cindex timbale
@cindex sidestick
@cindex floor tom tom
@cindex low tom tom
@cindex high tom tom
@cindex mid tom tom
@cindex high hat
@cindex pedal high hat
@cindex open high hat
@cindex half-open high hat
@cindex cymbal, various
@cindex crash cymbal
@cindex ride cymbal
@cindex chinese cymbal
@cindex splash cymbal
@cindex ride bell
@cindex cowbell
@cindex agogo
@cindex high bongo
@cindex low bongo
@cindex mute bongo
@cindex open bongo
@cindex high conga
@cindex low conga
@cindex mute conga
@cindex open conga
@cindex high timbale
@cindex low timbale
@cindex mute timbale
@cindex open timbale
@cindex sidestick
@cindex guiro
@cindex cabasa
@cindex maracas
@cindex whistle
@cindex handclap
@cindex tambourine
@cindex vibraslap
@cindex tam tam
@cindex claves
@cindex woodblock
@cindex cuica
@cindex triangle

@node Percussion notes
@appendixsec Percussion notes

@multitable @columnfractions .22 .25 .25 .25

@item
@code{bassdrum @* bd @*}
@lilypond[notime,ragged-right]
\drums { bd4 bd1 }
@end lilypond
@tab
@code{acousticbassdrum @* bda @*}
@lilypond[notime,ragged-right]
\drums { bda4 bda1 }
@end lilypond
@tab
@code{snare @* sn @*}
@lilypond[notime,ragged-right]
\drums { sn4 sn1 }
@end lilypond
@tab
@code{acousticsnare @* sna @*}
@lilypond[notime,ragged-right]
\drums { sna4 sna1 }
@end lilypond

@item
@code{electricsnare @* sne @*}
@lilypond[notime,ragged-right]
\drums { sne4 sne1 }
@end lilypond
@tab
@code{lowfloortom @* tomfl @*}
@lilypond[notime,ragged-right]
\drums { tomfl4 tomfl1 }
@end lilypond
@tab
@code{highfloortom @* tomfh @*}
@lilypond[notime,ragged-right]
\drums { tomfh4 tomfh1 }
@end lilypond
@tab
@code{lowtom @* toml @*}
@lilypond[notime,ragged-right]
\drums { toml4 toml1 }
@end lilypond

@item
@code{hightom @* tomh @*}
@lilypond[notime,ragged-right]
\drums { tomh4 tomh1 }
@end lilypond
@tab
@code{lowmidtom @* tomml @*}
@lilypond[notime,ragged-right]
\drums { tomml4 tomml1 }
@end lilypond
@tab
@code{himidtom @* tommh @*}
@lilypond[notime,ragged-right]
\drums { tommh4 tommh1 }
@end lilypond
@tab
@code{highhat @* hh @*}
@lilypond[notime,ragged-right]
\drums { hh4 hh1 }
@end lilypond

@item
@code{closedhihat @* hhc @*}
@lilypond[notime,ragged-right]
\drums { hhc4 hhc1 }
@end lilypond
@tab
@code{openhighhat @* hho @*}
@lilypond[notime,ragged-right]
\drums { hho4 hho1 }
@end lilypond
@tab
@code{halfopenhihat @* hhho @*}
@lilypond[notime,ragged-right]
\drums { hhho4 hhho1 }
@end lilypond
@tab
@code{pedalhihat @* hhp @*}
@lilypond[notime,ragged-right]
\drums { hhp4 hhp1 }
@end lilypond


@item
@code{crashcymbal @* cymc @*}
@lilypond[notime,ragged-right]
\drums { cymc4 cymc1 }
@end lilypond
@tab
@code{crashcymbala @* cymca @*}
@lilypond[notime,ragged-right]
\drums { cymca4 cymca1 }
@end lilypond
@tab
@code{crashcymbalb @* cymcb @*}
@lilypond[notime,ragged-right]
\drums { cymcb4 cymcb1 }
@end lilypond
@tab
@code{ridecymbal @* cymr @*}
@lilypond[notime,ragged-right]
\drums { cymr4 cymr1 }
@end lilypond

@item
@code{ridecymbala @* cymra @*}
@lilypond[notime,ragged-right]
\drums { cymra4 cymra1 }
@end lilypond
@tab
@code{ridecymbalb @* cymrb @*}
@lilypond[notime,ragged-right]
\drums { cymrb4 cymrb1 }
@end lilypond
@tab
@code{chinesecymbal @* cymch @*}
@lilypond[notime,ragged-right]
\drums { cymch4 cymch1 }
@end lilypond
@tab
@code{splashcymbal @* cyms @*}
@lilypond[notime,ragged-right]
\drums { cyms4 cyms1 }
@end lilypond

@item
@code{ridebell @* rb @*}
@lilypond[notime,ragged-right]
\drums { rb4 rb1 }
@end lilypond
@tab
@code{cowbell @* cb @*}
@lilypond[notime,ragged-right]
\drums { cb4 cb1 }
@end lilypond
@tab
@code{hibongo @* boh @*}
@lilypond[notime,ragged-right]
\drums { boh4 boh1 }
@end lilypond
@tab
@code{openhibongo @* boho @*}
@lilypond[notime,ragged-right]
\drums { boho4 boho1 }
@end lilypond

@item
@code{mutehibongo @* bohm @*}
@lilypond[notime,ragged-right]
\drums { bohm4 bohm1 }
@end lilypond
@tab
@code{lobongo @* bol @*}
@lilypond[notime,ragged-right]
\drums { bol4 bol1 }
@end lilypond
@tab
@code{openlobongo @* bolo @*}
@lilypond[notime,ragged-right]
\drums { bolo4 bolo1 }
@end lilypond
@tab
@code{mutelobongo @* bolm @*}
@lilypond[notime,ragged-right]
\drums { bolm4 bolm1 }
@end lilypond


@item
@code{hiconga @* cgh @*}
@lilypond[notime,ragged-right]
\drums { cgh4 cgh1 }
@end lilypond
@tab
@code{openhiconga @* cgho @*}
@lilypond[notime,ragged-right]
\drums { cgho4 cgho1 }
@end lilypond
@tab
@code{mutehiconga @* cghm @*}
@lilypond[notime,ragged-right]
\drums { cghm4 cghm1 }
@end lilypond
@tab
@code{loconga @* cgl @*}
@lilypond[notime,ragged-right]
\drums { cgl4 cgl1 }
@end lilypond

@item
@code{openloconga @* cglo @*}
@lilypond[notime,ragged-right]
\drums { cglo4 cglo1 }
@end lilypond
@tab
@code{muteloconga @* cglm @*}
@lilypond[notime,ragged-right]
\drums { cglm4 cglm1 }
@end lilypond
@tab
@code{hitimbale @* timh @*}
@lilypond[notime,ragged-right]
\drums { timh4 timh1 }
@end lilypond
@tab
@code{lotimbale @* timl @*}
@lilypond[notime,ragged-right]
\drums { timl4 timl1 }
@end lilypond

@item
@code{hiagogo @* agh @*}
@lilypond[notime,ragged-right]
\drums { agh4 agh1 }
@end lilypond
@tab
@code{loagogo @* agl @*}
@lilypond[notime,ragged-right]
\drums { agl4 agl1 }
@end lilypond
@tab
@code{sidestick @* ss @*}
@lilypond[notime,ragged-right]
\drums { ss4 ss1 }
@end lilypond
@tab
@code{hisidestick @* ssh @*}
@lilypond[notime,ragged-right]
\drums { ssh4 ssh1 }
@end lilypond

@item
@code{losidestick @* ssl @*}
@lilypond[notime,ragged-right]
\drums { ssl4 ssl1 }
@end lilypond
@tab
@code{guiro @* gui @*}
@lilypond[notime,ragged-right]
\drums { gui4 gui1 }
@end lilypond
@tab
@code{shortguiro @* guis @*}
@lilypond[notime,ragged-right]
\drums { guis4 guis1 }
@end lilypond
@tab
@code{longguiro @* guil @*}
@lilypond[notime,ragged-right]
\drums { guil4 guil1 }
@end lilypond

@item
@code{cabasa @* cab @*}
@lilypond[notime,ragged-right]
\drums { cab4 cab1 }
@end lilypond
@tab
@code{maracas @* mar @*}
@lilypond[notime,ragged-right]
\drums { mar4 mar1 }
@end lilypond
@tab
@code{shortwhistle @* whs @*}
@lilypond[notime,ragged-right]
\drums { whs4 whs1 }
@end lilypond
@tab
@code{longwhistle @* whl @*}
@lilypond[notime,ragged-right]
\drums { whl4 whl1 }
@end lilypond

@item
@code{handclap @* hc @*}
@lilypond[notime,ragged-right]
\drums { hc4 hc1 }
@end lilypond
@tab
@code{tambourine @* tamb @*}
@lilypond[notime,ragged-right]
\drums { tamb4 tamb1 }
@end lilypond
@tab
@code{vibraslap @* vibs @*}
@lilypond[notime,ragged-right]
\drums { vibs4 vibs1 }
@end lilypond
@tab
@code{tamtam @* tt @*}
@lilypond[notime,ragged-right]
\drums { tt4 tt1 }
@end lilypond

@item
@code{claves @* cl @*}
@lilypond[notime,ragged-right]
\drums { cl4 cl1 }
@end lilypond
@tab
@code{hiwoodblock @* wbh @*}
@lilypond[notime,ragged-right]
\drums { wbh4 wbh1 }
@end lilypond
@tab
@code{lowoodblock @* wbl @*}
@lilypond[notime,ragged-right]
\drums { wbl4 wbl1 }
@end lilypond
@tab
@code{opencuica @* cuio @*}
@lilypond[notime,ragged-right]
\drums { cuio4 cuio1 }
@end lilypond

@item
@code{mutecuica @* cuim @*}
@lilypond[notime,ragged-right]
\drums { cuim4 cuim1 }
@end lilypond
@tab
@code{triangle @* tri @*}
@lilypond[notime,ragged-right]
\drums { tri4 tri1 }
@end lilypond
@tab
@code{opentriangle @* trio @*}
@lilypond[notime,ragged-right]
\drums { trio4 trio1 }
@end lilypond
@tab
@code{mutetriangle @* trim}
@lilypond[notime,ragged-right]
\drums { trim4 trim1 }
@end lilypond

@item
@code{oneup @* ua @*}
@lilypond[notime,ragged-right]
\drums { ua4 ua1 }
@end lilypond
@tab
@code{twoup @* ub @*}
@lilypond[notime,ragged-right]
\drums { ub4 ub1 }
@end lilypond
@tab
@code{threeup @* uc @*}
@lilypond[notime,ragged-right]
\drums { uc4 uc1 }
@end lilypond
@tab
@code{fourup @* ud @*}
@lilypond[notime,ragged-right]
\drums { ud4 ud1 }
@end lilypond

@item
@code{fiveup @* ue @*}
@lilypond[notime,ragged-right]
\drums { ue4 ue1 }
@end lilypond
@tab
@code{onedown @* da @*}
@lilypond[notime,ragged-right]
\drums { da4 da1 }
@end lilypond
@tab
@code{twodown @* db @*}
@lilypond[notime,ragged-right]
\drums { db4 db1 }
@end lilypond
@tab
@code{threedown @* dc @*}
@lilypond[notime,ragged-right]
\drums { dc4 dc1 }
@end lilypond

@item
@code{fourdown @* dd @*}
@lilypond[notime,ragged-right]
\drums { dd4 dd1 }
@end lilypond
@tab
@code{fivedown @* de @*}
@lilypond[notime,ragged-right]
\drums { de4 de1 }
@end lilypond


@end multitable


@node Technical glossary
@appendixsec Technical glossary

A glossary of the technical terms and concepts used internally in
LilyPond.  These terms may appear in the manuals, on mailing lists
or in the source code.

@menu
* alist::
* callback::
* closure::
* glyph::
* grob::
* immutable::
* interface::
* lexer::
* mutable::
* output-def::
* parser::
* parser variable::
* prob::
* smob::
* stencil::
@end menu

@node alist
@unnumberedsubsec alist

@cindex alist
@cindex association list

An association list or @strong{alist} for short is a Scheme pair
which associates a value with a key: @w{@code{(key . value)}}.  For
example, in @file{scm/lily.scm}, the alist
@w{@qq{type-p-name-alist}} associates certain type predicates
(e.g., @code{ly:music?}) with names (e.g., @qq{music}) so
that type-check failures can be reported with a console message that
includes the name of the expected type predicate.

@node callback
@unnumberedsubsec callback

@cindex callback

A @strong{callback} is a routine, function or method whose reference is
passed as an argument in a call to another routine, so allowing
the called routine to invoke it.  The technique enables a lower-
level software layer to call a function defined in a higher
layer.  Callbacks are used extensively in LilyPond to permit
user-level Scheme code to define how many low-level actions are
performed.


@node closure
@unnumberedsubsec closure

@cindex closure

In Scheme, a @strong{closure} is created when a function, usually
a lambda expression, is passed as a variable.  The closure contains
the function's code plus references to the lexical bindings of the
function's free variables (i.e., those variables used in the
expression but defined outside it).  When this function is applied
to different arguments later, the free variable bindings that were
captured in the closure are used to obtain the values of the free
variables to be used in the calculation.  One useful property of
closures is the retention of internal variable values between
invocations, so permitting state to be maintained.


@node glyph
@unnumberedsubsec glyph

@cindex glyph
@cindex font
@cindex typeface

A @strong{glyph} is a particular graphical representation of a typographic
character, or a combination of two characters formating a ligature.
A set of glyphs with a single style and shape comprise a font, and
a set of fonts covering several styles and sizes comprise a typeface.

@seealso
Notation Reference:
@ref{Fonts},
@ref{Special characters}.


@node grob
@unnumberedsubsec grob

@cindex grob
@cindex layout object
@cindex graphical object

LilyPond objects which represent items of notation in the printed
output such as note heads, stems, slurs, ties, fingering, clefs,
etc are called @q{Layout objects}, often known as @q{GRaphical
OBjects}, or @strong{grobs} for short.  They are represented by
instances of the @code{Grob} class.

@seealso
Learning Manual:
@rlearning{Objects and interfaces},
@rlearning{Naming conventions of objects and properties},
@rlearning{Properties of layout objects}.

Internals Reference:
@rinternals{grob-interface},
@rinternals{All layout objects}.


@node immutable
@unnumberedsubsec immutable

@cindex immutable object
@cindex immutable property
@cindex shared property

An @strong{immutable} object is one whose state cannot be modified
after creation, in contrast to a mutable object, which can be
modified after creation.

In LilyPond, immutable or shared properties define the default
style and behavior of grobs.  They are shared between many objects.
In apparent contradiction to the name, they can be changed using
@code{\override} and @code{\revert}.

@seealso
Notation Reference:
@ref{mutable}.


@node interface
@unnumberedsubsec interface

@cindex interface
@funindex grob-interface
@cindex graphical object interface

Actions and properties which are common to a number of grobs are
grouped together in an object called a @code{grob-interface}, or
just @q{interface} for short.

@seealso
Learning Manual:
@rlearning{Objects and interfaces},
@rlearning{Naming conventions of objects and properties},
@rlearning{Properties found in interfaces}.

Notation Reference:
@ref{Layout interfaces}.

Internals Reference:
@rinternals{Graphical Object Interfaces}.


@node lexer
@unnumberedsubsec lexer

@cindex lexer
@cindex Flex

A @strong{lexer} is a program which converts a sequence of
characters into a sequence of tokens, a process called lexical
analysis.  The LilyPond lexer converts the stream obtained from an
input @file{.ly} file into a tokenized stream more suited to the
next stage of processing - parsing, for which see @ref{parser}.
The LilyPond lexer is built with Flex from the lexer file
@file{lily/lexer.ll} which contains the lexical rules.  This file
is part of the source code and is not included in the LilyPond
binary installation.


@node mutable
@unnumberedsubsec mutable

@cindex mutable object
@cindex mutable property

A @strong{mutable} object is one whose state can be modified after
creation, in contrast to an immutable object, whose state is fixed
at the time of creation.

In LilyPond, mutable properties contain values that are specific to
one grob.  Typically, lists of other objects or results from
computations are stored in mutable properties.

@seealso
Notation Reference:
@ref{immutable}.


@node output-def
@unnumberedsubsec output-def

@funindex output-def

An instance of the @code{Output-def} class contains the methods and
data structures associated with an output block.  Instances are
created for midi, layout and paper blocks.


@node parser
@unnumberedsubsec parser

@cindex parser
@cindex Bison
@cindex LilyPond grammar
@cindex grammar, for LilyPond
@cindex BNF

A @strong{parser} analyzes the sequence of tokens produced by a
lexer to determine its grammatical structure, grouping the tokens
progressively into larger groupings according to the rules of the
grammar.  If the sequence of tokens is valid the end product is a
tree of tokens whose root is the grammar's start symbol.  If this
cannot be achieved the file is invalid and an appropriate error
message is produced.  The syntactic groupings and the rules for
constructing the groupings from their parts for the LilyPond syntax
are defined in @file{lily/parser.yy} and shown in Backus Normal Form
(BNF) in @rcontrib{LilyPond grammar}.  This file is used to build the
parser during the program build by the parser generator, Bison.  It is
part of the source code and is not included in the LilyPond binary
installation.


@node parser variable
@unnumberedsubsec parser variable

@cindex parser variable
@cindex Scheme variable
@cindex global variable
@funindex afterGraceFraction
@funindex musicQuotes
@funindex mode
@funindex output-count
@funindex output-suffix
@funindex partCombineListener
@funindex pitchnames
@funindex toplevel-bookparts
@funindex toplevel-scores
@funindex showLastLength
@funindex showFirstLength

These are variables defined directly in Scheme.  Their direct
use by users is strongly discouraged, because their scoping
semantics can be confusing.

When the value of such a variable is changed in a @file{.ly} file,
the change is global, and unless explicitly reverted, the new value
will persist to the end of the file, affecting subsequent
@code{\score} blocks as well as external files added with the
@code{\include} command.  This can lead to unintended consequences
and in complex typesetting projects the consequent errors can be
difficult to track down.

LilyPond uses the following parser variables:

@itemize
@item afterGraceFraction
@item musicQuotes
@item mode
@item output-count
@item output-suffix
@item partCombineListener
@item pitchnames
@item toplevel-bookparts
@item toplevel-scores
@item showLastLength
@item showFirstLength
@end itemize


@node prob
@unnumberedsubsec prob

@cindex prob
@cindex property object

PRoperty OBjects, or @strong{probs} for short, are instances of
the @code{Prob} class, a simple base class for objects which have
mutable and immutable property alists and the methods to manipulate
them.  The @code{Music} and @code{Stream_event} classes derive from
@code{Prob}.  Instances of the @code{Prob} class are also created
to hold the formatted content of system grobs and titling blocks
during page layout.


@node smob
@unnumberedsubsec smob

@cindex smob
@cindex Scheme object

@strong{Smobs}, or ScheMe OBjects, are part of the mechanism used
by Guile to export C and C++ objects to Scheme code.  In LilyPond,
smobs are created from C++ objects through macros.  There are two
types of smob objects: simple smobs, intended for simple immutable
objects like numbers, and complex smobs, used for objects with
identities.  If you have access to the LilyPond sources, more
information can be found in @file{lily/includes/smob.hh}.

@node stencil
@unnumberedsubsec stencil

@cindex stencil

An instance of the @strong{stencil} class holds the information
required to print a typographical object.  It is a simple smob
containing a confining box, which defines the vertical and
horizontal extents of the object, and a Scheme expression which
will print the object when evaluated.  Stencils may be combined
to form more complex stencils defined by a tree of Scheme
expressions formed from the Scheme expressions of the component
stencils.

The @code{stencil} property, which connects a grob to its stencil,
is defined in the @code{grob-interface} interface.

@seealso
Internals Reference:
@rinternals{grob-interface}.


@node All context properties
@appendixsec All context properties

@include context-properties.tely


@node Layout properties
@appendixsec Layout properties

@include layout-properties.tely


@node Available music functions
@appendixsec Available music functions

@include identifiers.tely

@node Context modification identifiers
@appendixsec Context modification identifiers

The following commands are defined for use as context modifications
within a @code{\layout} or @code{\with} block.

@include context-mod-identifiers.tely

@node Predefined type predicates
@appendixsec Predefined type predicates

@include type-predicates.tely


@node Scheme functions
@appendixsec Scheme functions

@include scheme-functions.tely
