1 @c -*- coding: utf-8; mode: texinfo; -*-
4 Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
6 When revising a translation, copy the HEAD committish of the
7 version that you are working on. See TRANSLATION for details.
12 @node Notation manual tables
13 @appendix Notation manual tables
15 @c Please do not delete the following @ignore block.
17 Note for editors and translators: In the following menu, two entries
18 are needed to link to a pair of automatically generated sections.
19 Please keep them and, if using emacs, do not run
20 texinfo-all-menus-update without manually restoring them back. These
23 * Text markup commands::
24 * Text markup list commands::
26 and they should go just after
30 * List of articulations::
35 * Common chord modifiers::
36 * Predefined fretboard diagrams::
41 * Text markup commands::
42 * Text markup list commands::
43 * List of articulations::
45 * Technical glossary::
46 * All context properties::
48 * Available music functions::
54 @node Chord name chart
55 @appendixsec Chord name chart
57 The following charts shows two standard systems for printing chord
58 names, along with the pitches they represent.
60 @lilypondfile{chord-names-jazz.ly}
62 @node Common chord modifiers
63 @appendixsec Common chord modifiers
65 The following table shows chord modifiers that can be used in
66 @code{\chordmode} to generate standard chord structures.
68 @multitable @columnfractions .2 .3 .2 .2
83 Major third, perfect fifth
87 @lilypond[line-width=3\cm,noragged-right, notime]
96 Minor third, perfect fifth
100 @lilypond[line-width=3\cm,noragged-right, notime]
109 Major third, augmented fifth
113 @lilypond[line-width=3\cm,noragged-right, notime]
122 Minor third, diminished fifth
126 @lilypond[line-width=3\cm,noragged-right, notime]
135 Major triad, minor seventh
139 @lilypond[line-width=3\cm,noragged-right, notime]
148 Major triad, major seventh
150 @code{maj7} or @code{maj}
152 @lilypond[line-width=3\cm,noragged-right, notime]
161 Minor triad, minor seventh
165 @lilypond[line-width=3\cm,noragged-right, notime]
174 Diminished triad, diminished seventh
178 @lilypond[line-width=3\cm,noragged-right, notime]
187 Augmented triad, minor seventh
191 @lilypond[line-width=3\cm,noragged-right, notime]
198 Half-diminished seventh
200 Diminished triad, minor seventh
204 @lilypond[line-width=3\cm,noragged-right, notime]
213 Minor triad, major seventh
217 @lilypond[line-width=3\cm,noragged-right, notime]
230 @lilypond[line-width=3\cm,noragged-right, notime]
243 @lilypond[line-width=3\cm,noragged-right, notime]
252 Dominant seventh, major ninth
256 @lilypond[line-width=3\cm,noragged-right, notime]
265 Major seventh, major ninth
269 @lilypond[line-width=3\cm,noragged-right, notime]
278 Minor seventh, major ninth
282 @lilypond[line-width=3\cm,noragged-right, notime]
291 Dominant ninth, perfect eleventh
295 @lilypond[line-width=3\cm,noragged-right, notime]
304 Major ninth, perfect eleventh
308 @lilypond[line-width=3\cm,noragged-right, notime]
317 Minor ninth, perfect eleventh
321 @lilypond[line-width=3\cm,noragged-right, notime]
330 Dominant ninth, major thirteenth
334 @lilypond[line-width=3\cm,noragged-right, notime]
343 Dominant eleventh, major thirteenth
347 @lilypond[line-width=3\cm,noragged-right, notime]
356 Major eleventh, major thirteenth
360 @lilypond[line-width=3\cm,noragged-right, notime]
369 Minor eleventh, major thirteenth
373 @lilypond[line-width=3\cm,noragged-right, notime]
382 Major second, perfect fifth
386 @lilypond[line-width=3\cm,noragged-right, notime]
395 Perfect fourth, perfect fifth
399 @lilypond[line-width=3\cm,noragged-right, notime]
408 @node Predefined fretboard diagrams
409 @appendixsec Predefined fretboard diagrams
411 The chart below shows the predefined fretboard diagrams.
413 @lilypondfile{display-predefined-fretboards.ly}
415 @node MIDI instruments
416 @appendixsec MIDI instruments
418 The following is a list of names that can be used for the
419 @code{midiInstrument} property.
422 acoustic grand contrabass lead 7 (fifths)
423 bright acoustic tremolo strings lead 8 (bass+lead)
424 electric grand pizzicato strings pad 1 (new age)
425 honky-tonk orchestral harp pad 2 (warm)
426 electric piano 1 timpani pad 3 (polysynth)
427 electric piano 2 string ensemble 1 pad 4 (choir)
428 harpsichord string ensemble 2 pad 5 (bowed)
429 clav synthstrings 1 pad 6 (metallic)
430 celesta synthstrings 2 pad 7 (halo)
431 glockenspiel choir aahs pad 8 (sweep)
432 music box voice oohs fx 1 (rain)
433 vibraphone synth voice fx 2 (soundtrack)
434 marimba orchestra hit fx 3 (crystal)
435 xylophone trumpet fx 4 (atmosphere)
436 tubular bells trombone fx 5 (brightness)
437 dulcimer tuba fx 6 (goblins)
438 drawbar organ muted trumpet fx 7 (echoes)
439 percussive organ french horn fx 8 (sci-fi)
440 rock organ brass section sitar
441 church organ synthbrass 1 banjo
442 reed organ synthbrass 2 shamisen
443 accordion soprano sax koto
444 harmonica alto sax kalimba
445 concertina tenor sax bagpipe
446 acoustic guitar (nylon) baritone sax fiddle
447 acoustic guitar (steel) oboe shanai
448 electric guitar (jazz) english horn tinkle bell
449 electric guitar (clean) bassoon agogo
450 electric guitar (muted) clarinet steel drums
451 overdriven guitar piccolo woodblock
452 distorted guitar flute taiko drum
453 guitar harmonics recorder melodic tom
454 acoustic bass pan flute synth drum
455 electric bass (finger) blown bottle reverse cymbal
456 electric bass (pick) shakuhachi guitar fret noise
457 fretless bass whistle breath noise
458 slap bass 1 ocarina seashore
459 slap bass 2 lead 1 (square) bird tweet
460 synth bass 1 lead 2 (sawtooth) telephone ring
461 synth bass 2 lead 3 (calliope) helicopter
462 violin lead 4 (chiff) applause
463 viola lead 5 (charang) gunshot
469 @appendixsec List of colors
471 @subsubheading Normal colors
473 Usage syntax is detailed in @ref{Coloring objects}.
475 @cindex List of colors
476 @cindex Colors, list of
479 black white red green
480 blue cyan magenta yellow
481 grey darkred darkgreen darkblue
482 darkcyan darkmagenta darkyellow
486 @subsubheading X color names
488 X color names come several variants:
490 Any name that is spelled as a single word with capitalization
491 (e.g. @q{LightSlateBlue}) can also be spelled as space separated
492 words without capitalization (e.g. @q{light slate blue}).
494 The word @q{grey} can always be spelled @q{gray} (e.g. @q{DarkSlateGray}).
496 Some names can take a numerical suffix (e.g. @q{LightSalmon4}).
499 @subsubheading Color Names without a numerical suffix:
502 snow GhostWhite WhiteSmoke gainsboro FloralWhite
503 OldLace linen AntiqueWhite PapayaWhip BlanchedAlmond
504 bisque PeachPuff NavajoWhite moccasin cornsilk
505 ivory LemonChiffon seashell honeydew MintCream
506 azure AliceBlue lavender LavenderBlush MistyRose
507 white black DarkSlateGrey DimGrey SlateGrey
508 LightSlateGrey grey LightGrey MidnightBlue navy
509 NavyBlue CornflowerBlue DarkSlateBlue SlateBlue MediumSlateBlue
510 LightSlateBlue MediumBlue RoyalBlue blue DodgerBlue
511 DeepSkyBlue SkyBlue LightSkyBlue SteelBlue LightSteelBlue
512 LightBlue PowderBlue PaleTurquoise DarkTurquoise MediumTurquoise
513 turquoise cyan LightCyan CadetBlue MediumAquamarine
514 aquamarine DarkGreen DarkOliveGreen DarkSeaGreen SeaGreen
515 MediumSeaGreen LightSeaGreen PaleGreen SpringGreen LawnGreen
516 green chartreuse MediumSpringGreen GreenYellow LimeGreen
517 YellowGreen ForestGreen OliveDrab DarkKhaki khaki
518 PaleGoldenrod LightGoldenrodYellow LightYellow yellow gold
519 LightGoldenrod goldenrod DarkGoldenrod RosyBrown IndianRed
520 SaddleBrown sienna peru burlywood beige
521 wheat SandyBrown tan chocolate firebrick
522 brown DarkSalmon salmon LightSalmon orange
523 DarkOrange coral LightCoral tomato OrangeRed
524 red HotPink DeepPink pink LightPink
525 PaleVioletRed maroon MediumVioletRed VioletRed magenta
526 violet plum orchid MediumOrchid DarkOrchid
527 DarkViolet BlueViolet purple MediumPurple thistle
528 DarkGrey DarkBlue DarkCyan DarkMagenta DarkRed
533 @subsubheading Color names with a numerical suffix
535 In the following names the suffix N can be a number in the range 1-4:
538 snowN seashellN AntiqueWhiteN bisqueN PeachPuffN
539 NavajoWhiteN LemonChiffonN cornsilkN ivoryN honeydewN
540 LavenderBlushN MistyRoseN azureN SlateBlueN RoyalBlueN
541 blueN DodgerBlueN SteelBlueN DeepSkyBlueN SkyBlueN
542 LightSkyBlueN LightSteelBlueN LightBlueN LightCyanN PaleTurquoiseN
543 CadetBlueN turquoiseN cyanN aquamarineN DarkSeaGreenN
544 SeaGreenN PaleGreenN SpringGreenN greenN chartreuseN
545 OliveDrabN DarkOliveGreenN khakiN LightGoldenrodN LightYellowN
546 yellowN goldN goldenrodN DarkGoldenrodN RosyBrownN
547 IndianRedN siennaN burlywoodN wheatN tanN
548 chocolateN firebrickN brownN salmonN LightSalmonN
549 orangeN DarkOrangeN coralN tomatoN OrangeRedN
550 redN DeepPinkN HotPinkN pinkN LightPinkN
551 PaleVioletRedN maroonN VioletRedN magentaN orchidN
552 plumN MediumOrchidN DarkOrchidN purpleN MediumPurpleN
557 @subsubheading Grey Scale
559 A grey scale can be obtained using:
566 Where N is in the range 0-100.
570 @appendixsec The Feta font
575 The following symbols are available in the Emmentaler font and may be
576 accessed directly using text markup with the name of the glyph
577 as shown in the tables below,
578 such as @code{g^\markup @{\musicglyph #"scripts.segno" @}} or
579 @code{\markup @{\musicglyph #"five"@}}. For more information,
580 see @ref{Formatting text}.
585 * Time Signature glyphs::
587 * Accidental glyphs::
588 * Default Notehead glyphs::
589 * Special Notehead glyphs::
590 * Shape-note Notehead glyphs::
597 * Bracket-tip glyphs::
604 * Neomensural glyphs::
611 @unnumberedsubsec Clef glyphs
614 \include "font-table.ly"
615 \markuplines \override-lines #'(word-space . 4)
620 @node Time Signature glyphs
621 @unnumberedsubsec Time Signature glyphs
624 \include "font-table.ly"
625 \markuplines \override-lines #'(word-space . 4)
631 @unnumberedsubsec Number glyphs
634 \include "font-table.ly"
635 \markuplines \override-lines #'(word-space . 4)
640 @node Accidental glyphs
641 @unnumberedsubsec Accidental glyphs
644 \include "font-table.ly"
645 \markuplines \override-lines #'(word-space . 4)
646 \doc-chars #accidentals
650 @node Default Notehead glyphs
651 @unnumberedsubsec Default Notehead glyphs
654 \include "font-table.ly"
655 \markuplines \override-lines #'(word-space . 4)
656 \doc-chars #default-noteheads
660 @node Special Notehead glyphs
661 @unnumberedsubsec Special Notehead glyphs
664 \include "font-table.ly"
665 \markuplines \override-lines #'(word-space . 4)
666 \doc-chars #special-noteheads
670 @node Shape-note Notehead glyphs
671 @unnumberedsubsec Shape-note Notehead glyphs
674 \include "font-table.ly"
675 \markuplines \override-lines #'(word-space . 4)
676 \doc-chars #shape-note-noteheads
681 @unnumberedsubsec Rest glyphs
684 \include "font-table.ly"
685 \markuplines \override-lines #'(word-space . 4)
691 @unnumberedsubsec Flag glyphs
694 \include "font-table.ly"
695 \markuplines \override-lines #'(word-space . 4)
701 @unnumberedsubsec Dot glyphs
704 \include "font-table.ly"
705 \markuplines \override-lines #'(word-space . 4)
711 @unnumberedsubsec Dynamic glyphs
714 \include "font-table.ly"
715 \markuplines \override-lines #'(word-space . 4)
721 @unnumberedsubsec Script glyphs
724 \include "font-table.ly"
725 \markuplines \override-lines #'(word-space . 4)
730 @node Arrowhead glyphs
731 @unnumberedsubsec Arrowhead glyphs
734 \include "font-table.ly"
735 \markuplines \override-lines #'(word-space . 4)
736 \doc-chars #arrowheads
740 @node Bracket-tip glyphs
741 @unnumberedsubsec Bracket-tip glyphs
744 \include "font-table.ly"
745 \markuplines \override-lines #'(word-space . 4)
746 \doc-chars #brackettips
751 @unnumberedsubsec Pedal glyphs
754 \include "font-table.ly"
755 \markuplines \override-lines #'(word-space . 4)
760 @node Accordion glyphs
761 @unnumberedsubsec Accordion glyphs
764 \include "font-table.ly"
765 \markuplines \override-lines #'(word-space . 4)
766 \doc-chars #accordion
770 @node Vaticana glyphs
771 @unnumberedsubsec Vaticana glyphs
774 \include "font-table.ly"
775 \markuplines \override-lines #'(word-space . 4)
780 @node Medicaea glyphs
781 @unnumberedsubsec Medicaea glyphs
784 \include "font-table.ly"
785 \markuplines \override-lines #'(word-space . 4)
790 @node Hufnagel glyphs
791 @unnumberedsubsec Hufnagel glyphs
794 \include "font-table.ly"
795 \markuplines \override-lines #'(word-space . 4)
800 @node Mensural glyphs
801 @unnumberedsubsec Mensural glyphs
804 \include "font-table.ly"
805 \markuplines \override-lines #'(word-space . 4)
810 @node Neomensural glyphs
811 @unnumberedsubsec Neomensural glyphs
814 \include "font-table.ly"
815 \markuplines \override-lines #'(word-space . 4)
816 \doc-chars #neomensural
820 @node Petrucci glyphs
821 @unnumberedsubsec Petrucci glyphs
824 \include "font-table.ly"
825 \markuplines \override-lines #'(word-space . 4)
830 @node Solesmes glyphs
831 @unnumberedsubsec Solesmes glyphs
834 \include "font-table.ly"
835 \markuplines \override-lines #'(word-space . 4)
840 @node Note head styles
841 @appendixsec Note head styles
843 @cindex note head styles
844 The following styles may be used for note heads.
846 @lilypondfile[noindent]{note-head-style.ly}
848 @include markup-commands.tely
850 @include markup-list-commands.tely
852 @node List of articulations
853 @appendixsec List of articulations
857 @cindex staccatissimo
867 @cindex organ pedal marks
880 @cindex thumb marking
886 @lilypondfile[quote,texidoc]{script-chart.ly}
889 @node Percussion notes
890 @appendixsec Percussion notes
892 @lilypondfile[quote]{percussion-chart.ly}
895 @node Technical glossary
896 @appendixsec Technical glossary
898 A glossary of the technical terms and concepts used internally in
899 LilyPond. These terms may appear in the manuals, on mailing lists
900 or in the source code.
922 @unnumberedsubsec alist
925 @cindex association list
927 An association list or @strong{alist} for short is a Scheme pair
928 which associates a value with a key: @w{@code{(key . value)}}. For
929 example, in @file{scm/lily.scm}, the alist
930 @w{@qq{type-p-name-alist}} associates certain type predicates
931 (e.g.@tie{}@code{ly:music?}) with names (e.g.@tie{}@qq{music}) so
932 that type-check failures can be reported with a console message that
933 includes the name of the expected type predicate.
936 @unnumberedsubsec callback
940 A @strong{callback} is a routine, function or method whose reference is
941 passed as an argument in a call to another routine, so allowing
942 the called routine to invoke it. The technique enables a lower-
943 level software layer to call a function defined in a higher
944 layer. Callbacks are used extensively in LilyPond to permit
945 user-level Scheme code to define how many low-level actions are
950 @unnumberedsubsec closure
953 @cindex simple closure
955 In Scheme, a @strong{closure} is created when a function, usually
956 a lambda expression, is passed as a variable. The closure contains
957 the function's code plus references to the lexical bindings of the
958 function's free variables (i.e. those variables used in the
959 expression but defined outside it). When this function is applied
960 to different arguments later, the free variable bindings that were
961 captured in the closure are used to obtain the values of the free
962 variables to be used in the calculation. One useful property of
963 closures is the retention of internal variable values between
964 invocations, so permitting state to be maintained.
966 A @strong{simple closure} is a closure whose expression has no free
967 variables and hence no free variable bindings.
969 A simple closure is represented in LilyPond by a smob containing
970 the expression and a method to apply the expression to a passed
975 @unnumberedsubsec glyph
981 A @strong{glyph} is a particular graphical representation of a typographic
982 character, or a combination of two characters formating a ligature.
983 A set of glyphs with a single style and shape comprise a font, and
984 a set of fonts covering several styles and sizes comprise a typeface.
994 @unnumberedsubsec grob
997 @cindex layout objects
998 @cindex graphical objects
1000 LilyPond objects which represent items of notation in the printed
1001 output such as note heads, stems, slurs, ties, fingering, clefs,
1002 etc are called @q{Layout objects}, often known as @q{GRaphical
1003 OBjects}, or @strong{grobs} for short. They are represented by
1004 instances of the @code{Grob} class.
1008 @rlearning{Objects and interfaces},
1009 @rlearning{Naming conventions of objects and properties},
1010 @rlearning{Properties of layout objects}.
1012 Internals Reference:
1013 @rinternals{grob-interface},
1014 @rinternals{All layout objects}.
1018 @unnumberedsubsec immutable
1020 @cindex immutable objects
1021 @cindex immutable properties
1022 @cindex shared properties
1024 An @strong{immutable} object is one whose state cannot be modified
1025 after creation, in contrast to a mutable object, which can be
1026 modified after creation.
1028 In LilyPond, immutable or shared properties define the default
1029 style and behavior of grobs. They are shared between many objects.
1030 In apparent contradiction to the name, they can be changed using
1031 @code{\override} and @code{\revert}.
1038 @unnumberedsubsec interface
1041 @cindex grob-interface
1042 @cindex graphical object interfaces
1044 Actions and properties which are common to a number of grobs are
1045 grouped together in an object called a @code{grob-interface}, or
1046 just @q{interface} for short.
1050 @rlearning{Objects and interfaces},
1051 @rlearning{Naming conventions of objects and properties},
1052 @rlearning{Properties found in interfaces}.
1055 @ref{Layout interfaces}.
1057 Internals Reference:
1058 @rinternals{Graphical Object Interfaces}.
1062 @unnumberedsubsec lexer
1067 A @strong{lexer} is a program which converts a sequence of
1068 characters into a sequence of tokens, a process called lexical
1069 analysis. The LilyPond lexer converts the stream obtained from an
1070 input @file{.ly} file into a tokenized stream more suited to the
1071 next stage of processing - parsing, for which see @ref{parser}.
1072 The LilyPond lexer is built with Flex from the lexer file
1073 @file{lily/lexer.ll} which contains the lexical rules. This file
1074 is part of the source code and is not included in the LilyPond
1075 binary installation.
1079 @unnumberedsubsec mutable
1081 @cindex mutable objects
1082 @cindex mutable properties
1084 A @strong{mutable} object is one whose state can be modified after
1085 creation, in contrast to an immutable object, whose state is fixed
1086 at the time of creation.
1088 In LilyPond, mutable properties contain values that are specific to
1089 one grob. Typically, lists of other objects or results from
1090 computations are stored in mutable properties.
1097 @unnumberedsubsec output-def
1101 An instance of the @code{Output-def} class contains the methods and
1102 data structures associated with an output block. Instances are
1103 created for midi, layout and paper blocks.
1107 @unnumberedsubsec parser
1111 @cindex grammar for LilyPond
1114 A @strong{parser} analyzes the sequence of tokens produced by a
1115 lexer to determine its grammatical structure, grouping the tokens
1116 progressively into larger groupings according to the rules of the
1117 grammar. If the sequence of tokens is valid the end product is a
1118 tree of tokens whose root is the grammar's start symbol. If this
1119 cannot be achieved the file is invalid and an appropriate error
1120 message is produced. The syntactic groupings and the rules for
1121 constructing the groupings from their parts for the LilyPond syntax
1122 are defined in @file{lily/parser.yy} and shown in Backus Normal Form
1123 (BNF) in @ref{LilyPond grammar}. This file is used to build the
1124 parser during the program build by the parser generator, Bison. It
1125 is part of the source code and is not included in the LilyPond
1126 binary installation.
1129 @node parser variable
1130 @unnumberedsubsec parser variable
1132 @cindex parser variable
1133 @cindex Scheme variable
1134 @cindex global variable
1135 @cindex afterGraceFraction
1138 @cindex output-count
1139 @cindex output-suffix
1140 @cindex parseStringResult
1141 @cindex partCombineListener
1143 @cindex toplevel-bookparts
1144 @cindex toplevel-scores
1145 @cindex showLastLength
1146 @cindex showFirstLength
1148 These are variables defined directly in Scheme. Their direct
1149 use by users is strongly discouraged, because their scoping
1150 semantics can be confusing.
1152 When the value of such a variable is changed in a @code{.ly} file,
1153 the change is global, and unless explicitly reverted, the new value
1154 will persist to the end of the file, affecting subsequent
1155 @code{\score} blocks as well as external files added with the
1156 @code{\include} command. This can lead to unintended consequences
1157 and in complex typesetting projects the consequent errors can be
1158 difficult to track down.
1160 LilyPond uses the following parser variables:
1163 @item afterGraceFraction
1168 @item parseStringResult
1169 @item partCombineListener
1171 @item toplevel-bookparts
1172 @item toplevel-scores
1173 @item showLastLength
1174 @item showFirstLength
1179 @unnumberedsubsec prob
1182 @cindex property object
1184 PRoperty OBjects, or @strong{probs} for short, are instances of
1185 the @code{Prob} class, a simple base class for objects which have
1186 mutable and immutable property alists and the methods to manipulate
1187 them. The @code{Music} and @code{Stream_event} classes derive from
1188 @code{Prob}. Instances of the @code{Prob} class are also created
1189 to hold the formatted content of system grobs and titling blocks
1193 @node simple closure
1194 @unnumberedsubsec simple closure
1200 @unnumberedsubsec smob
1203 @cindex Scheme object
1205 @strong{Smobs}, or ScheMe OBjects, are part of the mechanism used
1206 by Guile to export C and C++ objects to Scheme code. In LilyPond,
1207 smobs are created from C++ objects through macros. There are two
1208 types of smob objects: simple smobs, intended for simple immutable
1209 objects like numbers, and complex smobs, used for objects with
1210 identities. If you have access to the LilyPond sources, more
1211 information can be found in @file{lily/includes/smob.hh}.
1214 @unnumberedsubsec stencil
1218 An instance of the @strong{stencil} class holds the information
1219 required to print a typographical object. It is a simple smob
1220 containing a confining box, which defines the vertical and
1221 horizontal extents of the object, and a Scheme expression which
1222 will print the object when evaluated. Stencils may be combined
1223 to form more complex stencils defined by a tree of Scheme
1224 expressions formed from the Scheme expressions of the component
1227 The @code{stencil} property, which connects a grob to its stencil,
1228 is defined in the @code{grob-interface} interface.
1231 Internals Reference:
1232 @rinternals{grob-interface}.
1235 @node All context properties
1236 @appendixsec All context properties
1238 @include context-properties.tely
1241 @node Layout properties
1242 @appendixsec Layout properties
1244 @include layout-properties.tely
1247 @node Available music functions
1248 @appendixsec Available music functions
1250 @include identifiers.tely
1253 @node Scheme functions
1254 @appendixsec Scheme functions
1256 @include scheme-functions.tely