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. For details, see the Contributors'
8 Guide, node Updating translation committishes..
13 @node Notation manual tables
14 @appendix Notation manual tables
18 * Common chord modifiers::
19 * Predefined string tunings::
20 * Predefined fretboard diagrams::
25 * Text markup commands::
26 * Text markup list commands::
27 * List of special characters::
28 * List of articulations::
30 * Technical glossary::
31 * All context properties::
33 * Available music functions::
34 * Context modification identifiers::
35 * Predefined type predicates::
41 @node Chord name chart
42 @appendixsec Chord name chart
44 The following chart shows two standard systems for printing chord
45 names, along with the pitches they represent.
47 @lilypondfile{chord-names-jazz.ly}
49 @node Common chord modifiers
50 @appendixsec Common chord modifiers
52 The following table shows chord modifiers that can be used in
53 @code{\chordmode} to generate standard chord structures.
55 @multitable @columnfractions .2 .3 .2 .2
70 Major third, perfect fifth
74 @lilypond[line-width=3\cm,noragged-right, notime]
83 Minor third, perfect fifth
87 @lilypond[line-width=3\cm,noragged-right, notime]
96 Major third, augmented fifth
100 @lilypond[line-width=3\cm,noragged-right, notime]
109 Minor third, diminished fifth
113 @lilypond[line-width=3\cm,noragged-right, notime]
122 Major triad, minor seventh
126 @lilypond[line-width=3\cm,noragged-right, notime]
135 Major triad, major seventh
137 @code{maj7} or @code{maj}
139 @lilypond[line-width=3\cm,noragged-right, notime]
148 Minor triad, minor seventh
152 @lilypond[line-width=3\cm,noragged-right, notime]
161 Diminished triad, diminished seventh
165 @lilypond[line-width=3\cm,noragged-right, notime]
174 Augmented triad, minor seventh
178 @lilypond[line-width=3\cm,noragged-right, notime]
185 Half-diminished seventh
187 Diminished triad, minor seventh
191 @lilypond[line-width=3\cm,noragged-right, notime]
200 Minor triad, major seventh
204 @lilypond[line-width=3\cm,noragged-right, notime]
217 @lilypond[line-width=3\cm,noragged-right, notime]
230 @lilypond[line-width=3\cm,noragged-right, notime]
239 Dominant seventh, major ninth
243 @lilypond[line-width=3\cm,noragged-right, notime]
252 Major seventh, major ninth
256 @lilypond[line-width=3\cm,noragged-right, notime]
265 Minor seventh, major ninth
269 @lilypond[line-width=3\cm,noragged-right, notime]
278 Dominant ninth, perfect eleventh
282 @lilypond[line-width=3\cm,noragged-right, notime]
291 Major ninth, perfect eleventh
295 @lilypond[line-width=3\cm,noragged-right, notime]
304 Minor ninth, perfect eleventh
308 @lilypond[line-width=3\cm,noragged-right, notime]
317 Dominant ninth, major thirteenth
321 @lilypond[line-width=3\cm,noragged-right, notime]
330 Dominant eleventh, major thirteenth
334 @lilypond[line-width=3\cm,noragged-right, notime]
343 Major eleventh, major thirteenth
347 @lilypond[line-width=3\cm,noragged-right, notime]
356 Minor eleventh, major thirteenth
360 @lilypond[line-width=3\cm,noragged-right, notime]
369 Major second, perfect fifth
373 @lilypond[line-width=3\cm,noragged-right, notime]
382 Perfect fourth, perfect fifth
386 @lilypond[line-width=3\cm,noragged-right, notime]
393 Power chord (two-voiced)
399 @lilypond[line-width=3\cm,noragged-right, notime]
407 Power chord (three-voiced)
409 Perfect fifth, octave
413 @lilypond[line-width=3\cm,noragged-right, notime]
422 @node Predefined string tunings
423 @appendixsec Predefined string tunings
425 The chart below shows the predefined string tunings.
427 @lilypondfile{display-predefined-string-tunings.ly}
429 @node Predefined fretboard diagrams
430 @appendixsec Predefined fretboard diagrams
432 The chart below shows the predefined fretboard diagrams for guitar.
434 @lilypondfile{display-predefined-fretboards.ly}
436 The chart below shows the predefined fretboard diagrams for ukulele.
438 @lilypondfile{display-predefined-ukulele-fretboards.ly}
440 The chart below shows the predefined fretboard diagrams for mandolin.
442 @lilypondfile{display-predefined-mandolin-fretboards.ly}
444 @node MIDI instruments
445 @appendixsec MIDI instruments
447 The following is a list of names that can be used for the
448 @code{midiInstrument} property. The order of the instruments
449 below, starting in the left-hand column moving down, corresponds
450 to the General MIDI Standard's 128 Program Numbers.
453 acoustic grand contrabass lead 7 (fifths)
454 bright acoustic tremolo strings lead 8 (bass+lead)
455 electric grand pizzicato strings pad 1 (new age)
456 honky-tonk orchestral harp pad 2 (warm)
457 electric piano 1 timpani pad 3 (polysynth)
458 electric piano 2 string ensemble 1 pad 4 (choir)
459 harpsichord string ensemble 2 pad 5 (bowed)
460 clav synthstrings 1 pad 6 (metallic)
461 celesta synthstrings 2 pad 7 (halo)
462 glockenspiel choir aahs pad 8 (sweep)
463 music box voice oohs fx 1 (rain)
464 vibraphone synth voice fx 2 (soundtrack)
465 marimba orchestra hit fx 3 (crystal)
466 xylophone trumpet fx 4 (atmosphere)
467 tubular bells trombone fx 5 (brightness)
468 dulcimer tuba fx 6 (goblins)
469 drawbar organ muted trumpet fx 7 (echoes)
470 percussive organ french horn fx 8 (sci-fi)
471 rock organ brass section sitar
472 church organ synthbrass 1 banjo
473 reed organ synthbrass 2 shamisen
474 accordion soprano sax koto
475 harmonica alto sax kalimba
476 concertina tenor sax bagpipe
477 acoustic guitar (nylon) baritone sax fiddle
478 acoustic guitar (steel) oboe shanai
479 electric guitar (jazz) english horn tinkle bell
480 electric guitar (clean) bassoon agogo
481 electric guitar (muted) clarinet steel drums
482 overdriven guitar piccolo woodblock
483 distorted guitar flute taiko drum
484 guitar harmonics recorder melodic tom
485 acoustic bass pan flute synth drum
486 electric bass (finger) blown bottle reverse cymbal
487 electric bass (pick) shakuhachi guitar fret noise
488 fretless bass whistle breath noise
489 slap bass 1 ocarina seashore
490 slap bass 2 lead 1 (square) bird tweet
491 synth bass 1 lead 2 (sawtooth) telephone ring
492 synth bass 2 lead 3 (calliope) helicopter
493 violin lead 4 (chiff) applause
494 viola lead 5 (charang) gunshot
500 @appendixsec List of colors
502 @subsubheading Normal colors
504 Usage syntax is detailed in @ref{Coloring objects}.
506 @cindex List of colors
507 @cindex Colors, list of
510 black white red green
511 blue cyan magenta yellow
512 grey darkred darkgreen darkblue
513 darkcyan darkmagenta darkyellow
517 @subsubheading X color names
519 X color names come several variants:
521 Any name that is spelled as a single word with capitalization
522 (e.g. @q{LightSlateBlue}) can also be spelled as space separated
523 words without capitalization (e.g. @q{light slate blue}).
525 The word @q{grey} can always be spelled @q{gray} (e.g. @q{DarkSlateGray}).
527 Some names can take a numerical suffix (e.g. @q{LightSalmon4}).
530 @subsubheading Color Names without a numerical suffix:
533 snow GhostWhite WhiteSmoke gainsboro FloralWhite
534 OldLace linen AntiqueWhite PapayaWhip BlanchedAlmond
535 bisque PeachPuff NavajoWhite moccasin cornsilk
536 ivory LemonChiffon seashell honeydew MintCream
537 azure AliceBlue lavender LavenderBlush MistyRose
538 white black DarkSlateGrey DimGrey SlateGrey
539 LightSlateGrey grey LightGrey MidnightBlue navy
540 NavyBlue CornflowerBlue DarkSlateBlue SlateBlue MediumSlateBlue
541 LightSlateBlue MediumBlue RoyalBlue blue DodgerBlue
542 DeepSkyBlue SkyBlue LightSkyBlue SteelBlue LightSteelBlue
543 LightBlue PowderBlue PaleTurquoise DarkTurquoise MediumTurquoise
544 turquoise cyan LightCyan CadetBlue MediumAquamarine
545 aquamarine DarkGreen DarkOliveGreen DarkSeaGreen SeaGreen
546 MediumSeaGreen LightSeaGreen PaleGreen SpringGreen LawnGreen
547 green chartreuse MediumSpringGreen GreenYellow LimeGreen
548 YellowGreen ForestGreen OliveDrab DarkKhaki khaki
549 PaleGoldenrod LightGoldenrodYellow LightYellow yellow gold
550 LightGoldenrod goldenrod DarkGoldenrod RosyBrown IndianRed
551 SaddleBrown sienna peru burlywood beige
552 wheat SandyBrown tan chocolate firebrick
553 brown DarkSalmon salmon LightSalmon orange
554 DarkOrange coral LightCoral tomato OrangeRed
555 red HotPink DeepPink pink LightPink
556 PaleVioletRed maroon MediumVioletRed VioletRed magenta
557 violet plum orchid MediumOrchid DarkOrchid
558 DarkViolet BlueViolet purple MediumPurple thistle
559 DarkGrey DarkBlue DarkCyan DarkMagenta DarkRed
564 @subsubheading Color names with a numerical suffix
566 In the following names the suffix N can be a number in the range 1-4:
569 snowN seashellN AntiqueWhiteN bisqueN PeachPuffN
570 NavajoWhiteN LemonChiffonN cornsilkN ivoryN honeydewN
571 LavenderBlushN MistyRoseN azureN SlateBlueN RoyalBlueN
572 blueN DodgerBlueN SteelBlueN DeepSkyBlueN SkyBlueN
573 LightSkyBlueN LightSteelBlueN LightBlueN LightCyanN PaleTurquoiseN
574 CadetBlueN turquoiseN cyanN aquamarineN DarkSeaGreenN
575 SeaGreenN PaleGreenN SpringGreenN greenN chartreuseN
576 OliveDrabN DarkOliveGreenN khakiN LightGoldenrodN LightYellowN
577 yellowN goldN goldenrodN DarkGoldenrodN RosyBrownN
578 IndianRedN siennaN burlywoodN wheatN tanN
579 chocolateN firebrickN brownN salmonN LightSalmonN
580 orangeN DarkOrangeN coralN tomatoN OrangeRedN
581 redN DeepPinkN HotPinkN pinkN LightPinkN
582 PaleVioletRedN maroonN VioletRedN magentaN orchidN
583 plumN MediumOrchidN DarkOrchidN purpleN MediumPurpleN
588 @subsubheading Grey Scale
590 A grey scale can be obtained using:
597 Where N is in the range 0-100.
601 @appendixsec The Feta font
606 The following symbols are available in the Emmentaler font and may be
607 accessed directly using text markup with the name of the glyph
608 as shown in the tables below,
609 such as @code{g^\markup @{\musicglyph #"scripts.segno" @}} or
610 @code{\markup @{\musicglyph #"five"@}}. For more information,
611 see @ref{Formatting text}.
616 * Time Signature glyphs::
618 * Accidental glyphs::
619 * Default Notehead glyphs::
620 * Special Notehead glyphs::
621 * Shape-note Notehead glyphs::
628 * Bracket-tip glyphs::
636 * Neomensural glyphs::
639 * Kievan Notation glyphs::
644 @unnumberedsubsec Clef glyphs
647 \include "font-table.ly"
648 \markuplist \override-lines #'(word-space . 4)
653 @node Time Signature glyphs
654 @unnumberedsubsec Time Signature glyphs
657 \include "font-table.ly"
658 \markuplist \override-lines #'(word-space . 4)
664 @unnumberedsubsec Number glyphs
667 \include "font-table.ly"
668 \markuplist \override-lines #'(word-space . 4)
673 @node Accidental glyphs
674 @unnumberedsubsec Accidental glyphs
677 \include "font-table.ly"
678 \markuplist \override-lines #'(word-space . 4)
679 \doc-chars #accidentals
683 @node Default Notehead glyphs
684 @unnumberedsubsec Default Notehead glyphs
687 \include "font-table.ly"
688 \markuplist \override-lines #'(word-space . 4)
689 \doc-chars #default-noteheads
693 @node Special Notehead glyphs
694 @unnumberedsubsec Special Notehead glyphs
697 \include "font-table.ly"
698 \markuplist \override-lines #'(word-space . 4)
699 \doc-chars #special-noteheads
703 @node Shape-note Notehead glyphs
704 @unnumberedsubsec Shape-note Notehead glyphs
707 \include "font-table.ly"
708 \markuplist \override-lines #'(word-space . 4)
709 \doc-chars #shape-note-noteheads
714 @unnumberedsubsec Rest glyphs
717 \include "font-table.ly"
718 \markuplist \override-lines #'(word-space . 4)
724 @unnumberedsubsec Flag glyphs
727 \include "font-table.ly"
728 \markuplist \override-lines #'(word-space . 4)
734 @unnumberedsubsec Dot glyphs
737 \include "font-table.ly"
738 \markuplist \override-lines #'(word-space . 4)
744 @unnumberedsubsec Dynamic glyphs
747 \include "font-table.ly"
748 \markuplist \override-lines #'(word-space . 4)
754 @unnumberedsubsec Script glyphs
757 \include "font-table.ly"
758 \markuplist \override-lines #'(word-space . 4)
763 @node Arrowhead glyphs
764 @unnumberedsubsec Arrowhead glyphs
767 \include "font-table.ly"
768 \markuplist \override-lines #'(word-space . 4)
769 \doc-chars #arrowheads
773 @node Bracket-tip glyphs
774 @unnumberedsubsec Bracket-tip glyphs
777 \include "font-table.ly"
778 \markuplist \override-lines #'(word-space . 4)
779 \doc-chars #brackettips
784 @unnumberedsubsec Pedal glyphs
787 \include "font-table.ly"
788 \markuplist \override-lines #'(word-space . 4)
793 @node Accordion glyphs
794 @unnumberedsubsec Accordion glyphs
797 \include "font-table.ly"
798 \markuplist \override-lines #'(word-space . 4)
799 \doc-chars #accordion
804 @unnumberedsubsec Tie glyphs
807 \include "font-table.ly"
808 \markuplist \override-lines #'(word-space . 4)
813 @node Vaticana glyphs
814 @unnumberedsubsec Vaticana glyphs
817 \include "font-table.ly"
818 \markuplist \override-lines #'(word-space . 4)
823 @node Medicaea glyphs
824 @unnumberedsubsec Medicaea glyphs
827 \include "font-table.ly"
828 \markuplist \override-lines #'(word-space . 4)
833 @node Hufnagel glyphs
834 @unnumberedsubsec Hufnagel glyphs
837 \include "font-table.ly"
838 \markuplist \override-lines #'(word-space . 4)
843 @node Mensural glyphs
844 @unnumberedsubsec Mensural glyphs
847 \include "font-table.ly"
848 \markuplist \override-lines #'(word-space . 4)
853 @node Neomensural glyphs
854 @unnumberedsubsec Neomensural glyphs
857 \include "font-table.ly"
858 \markuplist \override-lines #'(word-space . 4)
859 \doc-chars #neomensural
863 @node Petrucci glyphs
864 @unnumberedsubsec Petrucci glyphs
867 \include "font-table.ly"
868 \markuplist \override-lines #'(word-space . 4)
873 @node Solesmes glyphs
874 @unnumberedsubsec Solesmes glyphs
877 \include "font-table.ly"
878 \markuplist \override-lines #'(word-space . 4)
882 @node Kievan Notation glyphs
883 @unnumberedsubsec Kievan Notation glyphs
886 \include "font-table.ly"
887 \markuplist \override-lines #'(word-space . 4)
891 @node Note head styles
892 @appendixsec Note head styles
894 @cindex note head styles
895 The following styles may be used for note heads.
897 @lilypondfile[noindent]{note-head-style.ly}
900 @node Text markup commands
901 @appendixsec Text markup commands
903 @include markup-commands.tely
906 @node Text markup list commands
907 @appendixsec Text markup list commands
909 The following commands can all be used with @code{\markuplist}:
911 @include markup-list-commands.tely
914 @node List of special characters
915 @appendixsec List of special characters
917 The following special characters references can be used;
918 for more details, see @ref{ASCII aliases}.
920 The HTML syntax is used and most of these references are the same as HTML.
921 The rest of them are inspired by @LaTeX{}.
923 The characters are boxed so that you can see their size.
924 A small padding has been added between the character and the box
925 for more readability.
928 \include "special-characters.ly"
932 @node List of articulations
933 @appendixsec List of articulations
967 @cindex signumcongruentiae
968 @cindex snappizzicato
969 @cindex staccatissimo
980 @cindex verylongfermata
982 The following scripts are available in the Feta font and may be
983 attached to notes (eg. @samp{c\accent}).
985 @c Articulations and ornamentations
986 @c Fingering instructions (for "thumb")
987 @c Common notation for unfretted strings
988 @c Bowing indications
990 @c Snap (Bartók) pizzicato
991 @c Custom percussion staves (for "halfopen" -- not yet funindexed)
992 @c References for wind instruments (for "open"/"stopped" -- not yet funindexed)
996 * Articulation scripts::
999 * Instrument-specific scripts::
1000 * Repeat sign scripts::
1005 @node Articulation scripts
1006 @unnumberedsubsec Articulation scripts
1009 \include "script-chart.ly"
1010 \new RhythmicStaff { \scriptStaff #articulations }
1013 @node Ornament scripts
1014 @unnumberedsubsec Ornament scripts
1017 \include "script-chart.ly"
1018 \new RhythmicStaff { \scriptStaff #ornaments }
1021 @node Fermata scripts
1022 @unnumberedsubsec Fermata scripts
1025 \include "script-chart.ly"
1026 \new RhythmicStaff { \scriptStaff #fermatas }
1029 @node Instrument-specific scripts
1030 @unnumberedsubsec Instrument-specific scripts
1033 \include "script-chart.ly"
1034 \new RhythmicStaff { \scriptStaff #instrument-specific }
1037 @node Repeat sign scripts
1038 @unnumberedsubsec Repeat sign scripts
1041 \include "script-chart.ly"
1042 \new RhythmicStaff { \scriptStaff #repeats }
1045 @node Ancient scripts
1046 @unnumberedsubsec Ancient scripts
1049 \include "script-chart.ly"
1050 \include "gregorian.ly"
1051 \new VaticanaStaff { \scriptStaffAncient #ancient }
1055 @node Percussion notes
1056 @appendixsec Percussion notes
1058 @lilypondfile[quote]{percussion-chart.ly}
1061 @node Technical glossary
1062 @appendixsec Technical glossary
1064 A glossary of the technical terms and concepts used internally in
1065 LilyPond. These terms may appear in the manuals, on mailing lists
1066 or in the source code.
1088 @unnumberedsubsec alist
1091 @cindex association list
1093 An association list or @strong{alist} for short is a Scheme pair
1094 which associates a value with a key: @w{@code{(key . value)}}. For
1095 example, in @file{scm/lily.scm}, the alist
1096 @w{@qq{type-p-name-alist}} associates certain type predicates
1097 (e.g.@tie{}@code{ly:music?}) with names (e.g.@tie{}@qq{music}) so
1098 that type-check failures can be reported with a console message that
1099 includes the name of the expected type predicate.
1102 @unnumberedsubsec callback
1106 A @strong{callback} is a routine, function or method whose reference is
1107 passed as an argument in a call to another routine, so allowing
1108 the called routine to invoke it. The technique enables a lower-
1109 level software layer to call a function defined in a higher
1110 layer. Callbacks are used extensively in LilyPond to permit
1111 user-level Scheme code to define how many low-level actions are
1116 @unnumberedsubsec closure
1119 @cindex simple closure
1121 In Scheme, a @strong{closure} is created when a function, usually
1122 a lambda expression, is passed as a variable. The closure contains
1123 the function's code plus references to the lexical bindings of the
1124 function's free variables (i.e. those variables used in the
1125 expression but defined outside it). When this function is applied
1126 to different arguments later, the free variable bindings that were
1127 captured in the closure are used to obtain the values of the free
1128 variables to be used in the calculation. One useful property of
1129 closures is the retention of internal variable values between
1130 invocations, so permitting state to be maintained.
1132 A @strong{simple closure} is a closure whose expression has no free
1133 variables and hence no free variable bindings.
1135 A simple closure is represented in LilyPond by a smob containing
1136 the expression and a method to apply the expression to a passed
1141 @unnumberedsubsec glyph
1147 A @strong{glyph} is a particular graphical representation of a typographic
1148 character, or a combination of two characters formating a ligature.
1149 A set of glyphs with a single style and shape comprise a font, and
1150 a set of fonts covering several styles and sizes comprise a typeface.
1155 @ref{Special characters}.
1159 @unnumberedsubsec grob
1162 @cindex layout objects
1163 @cindex graphical objects
1165 LilyPond objects which represent items of notation in the printed
1166 output such as note heads, stems, slurs, ties, fingering, clefs,
1167 etc are called @q{Layout objects}, often known as @q{GRaphical
1168 OBjects}, or @strong{grobs} for short. They are represented by
1169 instances of the @code{Grob} class.
1173 @rlearning{Objects and interfaces},
1174 @rlearning{Naming conventions of objects and properties},
1175 @rlearning{Properties of layout objects}.
1177 Internals Reference:
1178 @rinternals{grob-interface},
1179 @rinternals{All layout objects}.
1183 @unnumberedsubsec immutable
1185 @cindex immutable objects
1186 @cindex immutable properties
1187 @cindex shared properties
1189 An @strong{immutable} object is one whose state cannot be modified
1190 after creation, in contrast to a mutable object, which can be
1191 modified after creation.
1193 In LilyPond, immutable or shared properties define the default
1194 style and behavior of grobs. They are shared between many objects.
1195 In apparent contradiction to the name, they can be changed using
1196 @code{\override} and @code{\revert}.
1204 @unnumberedsubsec interface
1207 @cindex grob-interface
1208 @cindex graphical object interfaces
1210 Actions and properties which are common to a number of grobs are
1211 grouped together in an object called a @code{grob-interface}, or
1212 just @q{interface} for short.
1216 @rlearning{Objects and interfaces},
1217 @rlearning{Naming conventions of objects and properties},
1218 @rlearning{Properties found in interfaces}.
1221 @ref{Layout interfaces}.
1223 Internals Reference:
1224 @rinternals{Graphical Object Interfaces}.
1228 @unnumberedsubsec lexer
1233 A @strong{lexer} is a program which converts a sequence of
1234 characters into a sequence of tokens, a process called lexical
1235 analysis. The LilyPond lexer converts the stream obtained from an
1236 input @file{.ly} file into a tokenized stream more suited to the
1237 next stage of processing - parsing, for which see @ref{parser}.
1238 The LilyPond lexer is built with Flex from the lexer file
1239 @file{lily/lexer.ll} which contains the lexical rules. This file
1240 is part of the source code and is not included in the LilyPond
1241 binary installation.
1245 @unnumberedsubsec mutable
1247 @cindex mutable objects
1248 @cindex mutable properties
1250 A @strong{mutable} object is one whose state can be modified after
1251 creation, in contrast to an immutable object, whose state is fixed
1252 at the time of creation.
1254 In LilyPond, mutable properties contain values that are specific to
1255 one grob. Typically, lists of other objects or results from
1256 computations are stored in mutable properties.
1264 @unnumberedsubsec output-def
1268 An instance of the @code{Output-def} class contains the methods and
1269 data structures associated with an output block. Instances are
1270 created for midi, layout and paper blocks.
1274 @unnumberedsubsec parser
1278 @cindex grammar for LilyPond
1281 A @strong{parser} analyzes the sequence of tokens produced by a
1282 lexer to determine its grammatical structure, grouping the tokens
1283 progressively into larger groupings according to the rules of the
1284 grammar. If the sequence of tokens is valid the end product is a
1285 tree of tokens whose root is the grammar's start symbol. If this
1286 cannot be achieved the file is invalid and an appropriate error
1287 message is produced. The syntactic groupings and the rules for
1288 constructing the groupings from their parts for the LilyPond syntax
1289 are defined in @file{lily/parser.yy} and shown in Backus Normal Form
1290 (BNF) in @ref{LilyPond grammar}. This file is used to build the
1291 parser during the program build by the parser generator, Bison. It
1292 is part of the source code and is not included in the LilyPond
1293 binary installation.
1296 @node parser variable
1297 @unnumberedsubsec parser variable
1299 @cindex parser variable
1300 @cindex Scheme variable
1301 @cindex global variable
1302 @cindex afterGraceFraction
1305 @cindex output-count
1306 @cindex output-suffix
1307 @cindex parseStringResult
1308 @cindex partCombineListener
1310 @cindex toplevel-bookparts
1311 @cindex toplevel-scores
1312 @cindex showLastLength
1313 @cindex showFirstLength
1315 These are variables defined directly in Scheme. Their direct
1316 use by users is strongly discouraged, because their scoping
1317 semantics can be confusing.
1319 When the value of such a variable is changed in a @file{.ly} file,
1320 the change is global, and unless explicitly reverted, the new value
1321 will persist to the end of the file, affecting subsequent
1322 @code{\score} blocks as well as external files added with the
1323 @code{\include} command. This can lead to unintended consequences
1324 and in complex typesetting projects the consequent errors can be
1325 difficult to track down.
1327 LilyPond uses the following parser variables:
1330 @item afterGraceFraction
1335 @item parseStringResult
1336 @item partCombineListener
1338 @item toplevel-bookparts
1339 @item toplevel-scores
1340 @item showLastLength
1341 @item showFirstLength
1346 @unnumberedsubsec prob
1349 @cindex property object
1351 PRoperty OBjects, or @strong{probs} for short, are instances of
1352 the @code{Prob} class, a simple base class for objects which have
1353 mutable and immutable property alists and the methods to manipulate
1354 them. The @code{Music} and @code{Stream_event} classes derive from
1355 @code{Prob}. Instances of the @code{Prob} class are also created
1356 to hold the formatted content of system grobs and titling blocks
1360 @node simple closure
1361 @unnumberedsubsec simple closure
1367 @unnumberedsubsec smob
1370 @cindex Scheme object
1372 @strong{Smobs}, or ScheMe OBjects, are part of the mechanism used
1373 by Guile to export C and C++ objects to Scheme code. In LilyPond,
1374 smobs are created from C++ objects through macros. There are two
1375 types of smob objects: simple smobs, intended for simple immutable
1376 objects like numbers, and complex smobs, used for objects with
1377 identities. If you have access to the LilyPond sources, more
1378 information can be found in @file{lily/includes/smob.hh}.
1381 @unnumberedsubsec stencil
1385 An instance of the @strong{stencil} class holds the information
1386 required to print a typographical object. It is a simple smob
1387 containing a confining box, which defines the vertical and
1388 horizontal extents of the object, and a Scheme expression which
1389 will print the object when evaluated. Stencils may be combined
1390 to form more complex stencils defined by a tree of Scheme
1391 expressions formed from the Scheme expressions of the component
1394 The @code{stencil} property, which connects a grob to its stencil,
1395 is defined in the @code{grob-interface} interface.
1398 Internals Reference:
1399 @rinternals{grob-interface}.
1402 @node All context properties
1403 @appendixsec All context properties
1405 @include context-properties.tely
1408 @node Layout properties
1409 @appendixsec Layout properties
1411 @include layout-properties.tely
1414 @node Available music functions
1415 @appendixsec Available music functions
1417 @include identifiers.tely
1419 @node Context modification identifiers
1420 @appendixsec Context modification identifiers
1422 The following commands are defined for use as context modifications
1423 within a @code{\layout} or @code{\with} block.
1425 @include context-mod-identifiers.tely
1427 @node Predefined type predicates
1428 @appendixsec Predefined type predicates
1430 @include type-predicates.tely
1433 @node Scheme functions
1434 @appendixsec Scheme functions
1436 @include scheme-functions.tely