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 articulations::
29 * Technical glossary::
30 * All context properties::
32 * Available music functions::
33 * Predefined type predicates::
39 @node Chord name chart
40 @appendixsec Chord name chart
42 The following charts shows two standard systems for printing chord
43 names, along with the pitches they represent.
45 @lilypondfile{chord-names-jazz.ly}
47 @node Common chord modifiers
48 @appendixsec Common chord modifiers
50 The following table shows chord modifiers that can be used in
51 @code{\chordmode} to generate standard chord structures.
53 @multitable @columnfractions .2 .3 .2 .2
68 Major third, perfect fifth
72 @lilypond[line-width=3\cm,noragged-right, notime]
81 Minor third, perfect fifth
85 @lilypond[line-width=3\cm,noragged-right, notime]
94 Major third, augmented fifth
98 @lilypond[line-width=3\cm,noragged-right, notime]
107 Minor third, diminished fifth
111 @lilypond[line-width=3\cm,noragged-right, notime]
120 Major triad, minor seventh
124 @lilypond[line-width=3\cm,noragged-right, notime]
133 Major triad, major seventh
135 @code{maj7} or @code{maj}
137 @lilypond[line-width=3\cm,noragged-right, notime]
146 Minor triad, minor seventh
150 @lilypond[line-width=3\cm,noragged-right, notime]
159 Diminished triad, diminished seventh
163 @lilypond[line-width=3\cm,noragged-right, notime]
172 Augmented triad, minor seventh
176 @lilypond[line-width=3\cm,noragged-right, notime]
183 Half-diminished seventh
185 Diminished triad, minor seventh
189 @lilypond[line-width=3\cm,noragged-right, notime]
198 Minor triad, major seventh
202 @lilypond[line-width=3\cm,noragged-right, notime]
215 @lilypond[line-width=3\cm,noragged-right, notime]
228 @lilypond[line-width=3\cm,noragged-right, notime]
237 Dominant seventh, major ninth
241 @lilypond[line-width=3\cm,noragged-right, notime]
250 Major seventh, major ninth
254 @lilypond[line-width=3\cm,noragged-right, notime]
263 Minor seventh, major ninth
267 @lilypond[line-width=3\cm,noragged-right, notime]
276 Dominant ninth, perfect eleventh
280 @lilypond[line-width=3\cm,noragged-right, notime]
289 Major ninth, perfect eleventh
293 @lilypond[line-width=3\cm,noragged-right, notime]
302 Minor ninth, perfect eleventh
306 @lilypond[line-width=3\cm,noragged-right, notime]
315 Dominant ninth, major thirteenth
319 @lilypond[line-width=3\cm,noragged-right, notime]
328 Dominant eleventh, major thirteenth
332 @lilypond[line-width=3\cm,noragged-right, notime]
341 Major eleventh, major thirteenth
345 @lilypond[line-width=3\cm,noragged-right, notime]
354 Minor eleventh, major thirteenth
358 @lilypond[line-width=3\cm,noragged-right, notime]
367 Major second, perfect fifth
371 @lilypond[line-width=3\cm,noragged-right, notime]
380 Perfect fourth, perfect fifth
384 @lilypond[line-width=3\cm,noragged-right, notime]
391 Power chord (two-voiced)
397 @lilypond[line-width=3\cm,noragged-right, notime]
405 Power chord (three-voiced)
407 Perfect fifth, octave
411 @lilypond[line-width=3\cm,noragged-right, notime]
420 @node Predefined string tunings
421 @appendixsec Predefined string tunings
423 The chart below shows the predefined string tunings.
425 @lilypondfile{display-predefined-string-tunings.ly}
427 @node Predefined fretboard diagrams
428 @appendixsec Predefined fretboard diagrams
430 The chart below shows the predefined fretboard diagrams for guitar.
432 @lilypondfile{display-predefined-fretboards.ly}
434 The chart below shows the predefined fretboard diagrams for ukulele.
436 @lilypondfile{display-predefined-ukulele-fretboards.ly}
438 @node MIDI instruments
439 @appendixsec MIDI instruments
441 The following is a list of names that can be used for the
442 @code{midiInstrument} property. The order of the instruments
443 below, starting in the left-hand column moving down, corresponds
444 to the General MIDI Standard's 128 Program Numbers.
447 acoustic grand contrabass lead 7 (fifths)
448 bright acoustic tremolo strings lead 8 (bass+lead)
449 electric grand pizzicato strings pad 1 (new age)
450 honky-tonk orchestral harp pad 2 (warm)
451 electric piano 1 timpani pad 3 (polysynth)
452 electric piano 2 string ensemble 1 pad 4 (choir)
453 harpsichord string ensemble 2 pad 5 (bowed)
454 clav synthstrings 1 pad 6 (metallic)
455 celesta synthstrings 2 pad 7 (halo)
456 glockenspiel choir aahs pad 8 (sweep)
457 music box voice oohs fx 1 (rain)
458 vibraphone synth voice fx 2 (soundtrack)
459 marimba orchestra hit fx 3 (crystal)
460 xylophone trumpet fx 4 (atmosphere)
461 tubular bells trombone fx 5 (brightness)
462 dulcimer tuba fx 6 (goblins)
463 drawbar organ muted trumpet fx 7 (echoes)
464 percussive organ french horn fx 8 (sci-fi)
465 rock organ brass section sitar
466 church organ synthbrass 1 banjo
467 reed organ synthbrass 2 shamisen
468 accordion soprano sax koto
469 harmonica alto sax kalimba
470 concertina tenor sax bagpipe
471 acoustic guitar (nylon) baritone sax fiddle
472 acoustic guitar (steel) oboe shanai
473 electric guitar (jazz) english horn tinkle bell
474 electric guitar (clean) bassoon agogo
475 electric guitar (muted) clarinet steel drums
476 overdriven guitar piccolo woodblock
477 distorted guitar flute taiko drum
478 guitar harmonics recorder melodic tom
479 acoustic bass pan flute synth drum
480 electric bass (finger) blown bottle reverse cymbal
481 electric bass (pick) shakuhachi guitar fret noise
482 fretless bass whistle breath noise
483 slap bass 1 ocarina seashore
484 slap bass 2 lead 1 (square) bird tweet
485 synth bass 1 lead 2 (sawtooth) telephone ring
486 synth bass 2 lead 3 (calliope) helicopter
487 violin lead 4 (chiff) applause
488 viola lead 5 (charang) gunshot
494 @appendixsec List of colors
496 @subsubheading Normal colors
498 Usage syntax is detailed in @ref{Coloring objects}.
500 @cindex List of colors
501 @cindex Colors, list of
504 black white red green
505 blue cyan magenta yellow
506 grey darkred darkgreen darkblue
507 darkcyan darkmagenta darkyellow
511 @subsubheading X color names
513 X color names come several variants:
515 Any name that is spelled as a single word with capitalization
516 (e.g. @q{LightSlateBlue}) can also be spelled as space separated
517 words without capitalization (e.g. @q{light slate blue}).
519 The word @q{grey} can always be spelled @q{gray} (e.g. @q{DarkSlateGray}).
521 Some names can take a numerical suffix (e.g. @q{LightSalmon4}).
524 @subsubheading Color Names without a numerical suffix:
527 snow GhostWhite WhiteSmoke gainsboro FloralWhite
528 OldLace linen AntiqueWhite PapayaWhip BlanchedAlmond
529 bisque PeachPuff NavajoWhite moccasin cornsilk
530 ivory LemonChiffon seashell honeydew MintCream
531 azure AliceBlue lavender LavenderBlush MistyRose
532 white black DarkSlateGrey DimGrey SlateGrey
533 LightSlateGrey grey LightGrey MidnightBlue navy
534 NavyBlue CornflowerBlue DarkSlateBlue SlateBlue MediumSlateBlue
535 LightSlateBlue MediumBlue RoyalBlue blue DodgerBlue
536 DeepSkyBlue SkyBlue LightSkyBlue SteelBlue LightSteelBlue
537 LightBlue PowderBlue PaleTurquoise DarkTurquoise MediumTurquoise
538 turquoise cyan LightCyan CadetBlue MediumAquamarine
539 aquamarine DarkGreen DarkOliveGreen DarkSeaGreen SeaGreen
540 MediumSeaGreen LightSeaGreen PaleGreen SpringGreen LawnGreen
541 green chartreuse MediumSpringGreen GreenYellow LimeGreen
542 YellowGreen ForestGreen OliveDrab DarkKhaki khaki
543 PaleGoldenrod LightGoldenrodYellow LightYellow yellow gold
544 LightGoldenrod goldenrod DarkGoldenrod RosyBrown IndianRed
545 SaddleBrown sienna peru burlywood beige
546 wheat SandyBrown tan chocolate firebrick
547 brown DarkSalmon salmon LightSalmon orange
548 DarkOrange coral LightCoral tomato OrangeRed
549 red HotPink DeepPink pink LightPink
550 PaleVioletRed maroon MediumVioletRed VioletRed magenta
551 violet plum orchid MediumOrchid DarkOrchid
552 DarkViolet BlueViolet purple MediumPurple thistle
553 DarkGrey DarkBlue DarkCyan DarkMagenta DarkRed
558 @subsubheading Color names with a numerical suffix
560 In the following names the suffix N can be a number in the range 1-4:
563 snowN seashellN AntiqueWhiteN bisqueN PeachPuffN
564 NavajoWhiteN LemonChiffonN cornsilkN ivoryN honeydewN
565 LavenderBlushN MistyRoseN azureN SlateBlueN RoyalBlueN
566 blueN DodgerBlueN SteelBlueN DeepSkyBlueN SkyBlueN
567 LightSkyBlueN LightSteelBlueN LightBlueN LightCyanN PaleTurquoiseN
568 CadetBlueN turquoiseN cyanN aquamarineN DarkSeaGreenN
569 SeaGreenN PaleGreenN SpringGreenN greenN chartreuseN
570 OliveDrabN DarkOliveGreenN khakiN LightGoldenrodN LightYellowN
571 yellowN goldN goldenrodN DarkGoldenrodN RosyBrownN
572 IndianRedN siennaN burlywoodN wheatN tanN
573 chocolateN firebrickN brownN salmonN LightSalmonN
574 orangeN DarkOrangeN coralN tomatoN OrangeRedN
575 redN DeepPinkN HotPinkN pinkN LightPinkN
576 PaleVioletRedN maroonN VioletRedN magentaN orchidN
577 plumN MediumOrchidN DarkOrchidN purpleN MediumPurpleN
582 @subsubheading Grey Scale
584 A grey scale can be obtained using:
591 Where N is in the range 0-100.
595 @appendixsec The Feta font
600 The following symbols are available in the Emmentaler font and may be
601 accessed directly using text markup with the name of the glyph
602 as shown in the tables below,
603 such as @code{g^\markup @{\musicglyph #"scripts.segno" @}} or
604 @code{\markup @{\musicglyph #"five"@}}. For more information,
605 see @ref{Formatting text}.
610 * Time Signature glyphs::
612 * Accidental glyphs::
613 * Default Notehead glyphs::
614 * Special Notehead glyphs::
615 * Shape-note Notehead glyphs::
622 * Bracket-tip glyphs::
629 * Neomensural glyphs::
636 @unnumberedsubsec Clef glyphs
639 \include "font-table.ly"
640 \markuplines \override-lines #'(word-space . 4)
645 @node Time Signature glyphs
646 @unnumberedsubsec Time Signature glyphs
649 \include "font-table.ly"
650 \markuplines \override-lines #'(word-space . 4)
656 @unnumberedsubsec Number glyphs
659 \include "font-table.ly"
660 \markuplines \override-lines #'(word-space . 4)
665 @node Accidental glyphs
666 @unnumberedsubsec Accidental glyphs
669 \include "font-table.ly"
670 \markuplines \override-lines #'(word-space . 4)
671 \doc-chars #accidentals
675 @node Default Notehead glyphs
676 @unnumberedsubsec Default Notehead glyphs
679 \include "font-table.ly"
680 \markuplines \override-lines #'(word-space . 4)
681 \doc-chars #default-noteheads
685 @node Special Notehead glyphs
686 @unnumberedsubsec Special Notehead glyphs
689 \include "font-table.ly"
690 \markuplines \override-lines #'(word-space . 4)
691 \doc-chars #special-noteheads
695 @node Shape-note Notehead glyphs
696 @unnumberedsubsec Shape-note Notehead glyphs
699 \include "font-table.ly"
700 \markuplines \override-lines #'(word-space . 4)
701 \doc-chars #shape-note-noteheads
706 @unnumberedsubsec Rest glyphs
709 \include "font-table.ly"
710 \markuplines \override-lines #'(word-space . 4)
716 @unnumberedsubsec Flag glyphs
719 \include "font-table.ly"
720 \markuplines \override-lines #'(word-space . 4)
726 @unnumberedsubsec Dot glyphs
729 \include "font-table.ly"
730 \markuplines \override-lines #'(word-space . 4)
736 @unnumberedsubsec Dynamic glyphs
739 \include "font-table.ly"
740 \markuplines \override-lines #'(word-space . 4)
746 @unnumberedsubsec Script glyphs
749 \include "font-table.ly"
750 \markuplines \override-lines #'(word-space . 4)
755 @node Arrowhead glyphs
756 @unnumberedsubsec Arrowhead glyphs
759 \include "font-table.ly"
760 \markuplines \override-lines #'(word-space . 4)
761 \doc-chars #arrowheads
765 @node Bracket-tip glyphs
766 @unnumberedsubsec Bracket-tip glyphs
769 \include "font-table.ly"
770 \markuplines \override-lines #'(word-space . 4)
771 \doc-chars #brackettips
776 @unnumberedsubsec Pedal glyphs
779 \include "font-table.ly"
780 \markuplines \override-lines #'(word-space . 4)
785 @node Accordion glyphs
786 @unnumberedsubsec Accordion glyphs
789 \include "font-table.ly"
790 \markuplines \override-lines #'(word-space . 4)
791 \doc-chars #accordion
795 @node Vaticana glyphs
796 @unnumberedsubsec Vaticana glyphs
799 \include "font-table.ly"
800 \markuplines \override-lines #'(word-space . 4)
805 @node Medicaea glyphs
806 @unnumberedsubsec Medicaea glyphs
809 \include "font-table.ly"
810 \markuplines \override-lines #'(word-space . 4)
815 @node Hufnagel glyphs
816 @unnumberedsubsec Hufnagel glyphs
819 \include "font-table.ly"
820 \markuplines \override-lines #'(word-space . 4)
825 @node Mensural glyphs
826 @unnumberedsubsec Mensural glyphs
829 \include "font-table.ly"
830 \markuplines \override-lines #'(word-space . 4)
835 @node Neomensural glyphs
836 @unnumberedsubsec Neomensural glyphs
839 \include "font-table.ly"
840 \markuplines \override-lines #'(word-space . 4)
841 \doc-chars #neomensural
845 @node Petrucci glyphs
846 @unnumberedsubsec Petrucci glyphs
849 \include "font-table.ly"
850 \markuplines \override-lines #'(word-space . 4)
855 @node Solesmes glyphs
856 @unnumberedsubsec Solesmes glyphs
859 \include "font-table.ly"
860 \markuplines \override-lines #'(word-space . 4)
865 @node Note head styles
866 @appendixsec Note head styles
868 @cindex note head styles
869 The following styles may be used for note heads.
871 @lilypondfile[noindent]{note-head-style.ly}
874 @node Text markup commands
875 @appendixsec Text markup commands
877 @include markup-commands.tely
880 @node Text markup list commands
881 @appendixsec Text markup list commands
883 The following commands can all be used with @code{\markuplines}:
885 @include markup-list-commands.tely
888 @node List of articulations
889 @appendixsec List of articulations
923 @cindex signumcongruentiae
924 @cindex snappizzicato
925 @cindex staccatissimo
936 @cindex verylongfermata
938 The following scripts are available in the Feta font and may be
939 attached to notes (eg. @samp{c\accent}).
941 @c Articulations and ornamentations
942 @c Fingering instructions (for "thumb")
943 @c Common notation for unfretted strings
944 @c Bowing indications
946 @c Snap (Bartók) pizzicato
947 @c Custom percussion staves (for "halfopen" -- not yet funindexed)
948 @c References for wind instruments (for "open"/"stopped" -- not yet funindexed)
952 * Articulation scripts::
955 * Instrument-specific scripts::
956 * Repeat sign scripts::
961 @node Articulation scripts
962 @unnumberedsubsec Articulation scripts
965 \include "script-chart.ly"
966 \new RhythmicStaff { \scriptStaff #articulations }
969 @node Ornament scripts
970 @unnumberedsubsec Ornament scripts
973 \include "script-chart.ly"
974 \new RhythmicStaff { \scriptStaff #ornaments }
977 @node Fermata scripts
978 @unnumberedsubsec Fermata scripts
981 \include "script-chart.ly"
982 \new RhythmicStaff { \scriptStaff #fermatas }
985 @node Instrument-specific scripts
986 @unnumberedsubsec Instrument-specific scripts
989 \include "script-chart.ly"
990 \new RhythmicStaff { \scriptStaff #instrument-specific }
993 @node Repeat sign scripts
994 @unnumberedsubsec Repeat sign scripts
997 \include "script-chart.ly"
998 \new RhythmicStaff { \scriptStaff #repeats }
1001 @node Ancient scripts
1002 @unnumberedsubsec Ancient scripts
1005 \include "script-chart.ly"
1006 \include "gregorian.ly"
1007 \new VaticanaStaff { \scriptStaffAncient #ancient }
1011 @node Percussion notes
1012 @appendixsec Percussion notes
1014 @lilypondfile[quote]{percussion-chart.ly}
1017 @node Technical glossary
1018 @appendixsec Technical glossary
1020 A glossary of the technical terms and concepts used internally in
1021 LilyPond. These terms may appear in the manuals, on mailing lists
1022 or in the source code.
1044 @unnumberedsubsec alist
1047 @cindex association list
1049 An association list or @strong{alist} for short is a Scheme pair
1050 which associates a value with a key: @w{@code{(key . value)}}. For
1051 example, in @file{scm/lily.scm}, the alist
1052 @w{@qq{type-p-name-alist}} associates certain type predicates
1053 (e.g.@tie{}@code{ly:music?}) with names (e.g.@tie{}@qq{music}) so
1054 that type-check failures can be reported with a console message that
1055 includes the name of the expected type predicate.
1058 @unnumberedsubsec callback
1062 A @strong{callback} is a routine, function or method whose reference is
1063 passed as an argument in a call to another routine, so allowing
1064 the called routine to invoke it. The technique enables a lower-
1065 level software layer to call a function defined in a higher
1066 layer. Callbacks are used extensively in LilyPond to permit
1067 user-level Scheme code to define how many low-level actions are
1072 @unnumberedsubsec closure
1075 @cindex simple closure
1077 In Scheme, a @strong{closure} is created when a function, usually
1078 a lambda expression, is passed as a variable. The closure contains
1079 the function's code plus references to the lexical bindings of the
1080 function's free variables (i.e. those variables used in the
1081 expression but defined outside it). When this function is applied
1082 to different arguments later, the free variable bindings that were
1083 captured in the closure are used to obtain the values of the free
1084 variables to be used in the calculation. One useful property of
1085 closures is the retention of internal variable values between
1086 invocations, so permitting state to be maintained.
1088 A @strong{simple closure} is a closure whose expression has no free
1089 variables and hence no free variable bindings.
1091 A simple closure is represented in LilyPond by a smob containing
1092 the expression and a method to apply the expression to a passed
1097 @unnumberedsubsec glyph
1103 A @strong{glyph} is a particular graphical representation of a typographic
1104 character, or a combination of two characters formating a ligature.
1105 A set of glyphs with a single style and shape comprise a font, and
1106 a set of fonts covering several styles and sizes comprise a typeface.
1112 @ref{Text encoding}.
1116 @unnumberedsubsec grob
1119 @cindex layout objects
1120 @cindex graphical objects
1122 LilyPond objects which represent items of notation in the printed
1123 output such as note heads, stems, slurs, ties, fingering, clefs,
1124 etc are called @q{Layout objects}, often known as @q{GRaphical
1125 OBjects}, or @strong{grobs} for short. They are represented by
1126 instances of the @code{Grob} class.
1130 @rlearning{Objects and interfaces},
1131 @rlearning{Naming conventions of objects and properties},
1132 @rlearning{Properties of layout objects}.
1134 Internals Reference:
1135 @rinternals{grob-interface},
1136 @rinternals{All layout objects}.
1140 @unnumberedsubsec immutable
1142 @cindex immutable objects
1143 @cindex immutable properties
1144 @cindex shared properties
1146 An @strong{immutable} object is one whose state cannot be modified
1147 after creation, in contrast to a mutable object, which can be
1148 modified after creation.
1150 In LilyPond, immutable or shared properties define the default
1151 style and behavior of grobs. They are shared between many objects.
1152 In apparent contradiction to the name, they can be changed using
1153 @code{\override} and @code{\revert}.
1160 @unnumberedsubsec interface
1163 @cindex grob-interface
1164 @cindex graphical object interfaces
1166 Actions and properties which are common to a number of grobs are
1167 grouped together in an object called a @code{grob-interface}, or
1168 just @q{interface} for short.
1172 @rlearning{Objects and interfaces},
1173 @rlearning{Naming conventions of objects and properties},
1174 @rlearning{Properties found in interfaces}.
1177 @ref{Layout interfaces}.
1179 Internals Reference:
1180 @rinternals{Graphical Object Interfaces}.
1184 @unnumberedsubsec lexer
1189 A @strong{lexer} is a program which converts a sequence of
1190 characters into a sequence of tokens, a process called lexical
1191 analysis. The LilyPond lexer converts the stream obtained from an
1192 input @file{.ly} file into a tokenized stream more suited to the
1193 next stage of processing - parsing, for which see @ref{parser}.
1194 The LilyPond lexer is built with Flex from the lexer file
1195 @file{lily/lexer.ll} which contains the lexical rules. This file
1196 is part of the source code and is not included in the LilyPond
1197 binary installation.
1201 @unnumberedsubsec mutable
1203 @cindex mutable objects
1204 @cindex mutable properties
1206 A @strong{mutable} object is one whose state can be modified after
1207 creation, in contrast to an immutable object, whose state is fixed
1208 at the time of creation.
1210 In LilyPond, mutable properties contain values that are specific to
1211 one grob. Typically, lists of other objects or results from
1212 computations are stored in mutable properties.
1219 @unnumberedsubsec output-def
1223 An instance of the @code{Output-def} class contains the methods and
1224 data structures associated with an output block. Instances are
1225 created for midi, layout and paper blocks.
1229 @unnumberedsubsec parser
1233 @cindex grammar for LilyPond
1236 A @strong{parser} analyzes the sequence of tokens produced by a
1237 lexer to determine its grammatical structure, grouping the tokens
1238 progressively into larger groupings according to the rules of the
1239 grammar. If the sequence of tokens is valid the end product is a
1240 tree of tokens whose root is the grammar's start symbol. If this
1241 cannot be achieved the file is invalid and an appropriate error
1242 message is produced. The syntactic groupings and the rules for
1243 constructing the groupings from their parts for the LilyPond syntax
1244 are defined in @file{lily/parser.yy} and shown in Backus Normal Form
1245 (BNF) in @ref{LilyPond grammar}. This file is used to build the
1246 parser during the program build by the parser generator, Bison. It
1247 is part of the source code and is not included in the LilyPond
1248 binary installation.
1251 @node parser variable
1252 @unnumberedsubsec parser variable
1254 @cindex parser variable
1255 @cindex Scheme variable
1256 @cindex global variable
1257 @cindex afterGraceFraction
1260 @cindex output-count
1261 @cindex output-suffix
1262 @cindex parseStringResult
1263 @cindex partCombineListener
1265 @cindex toplevel-bookparts
1266 @cindex toplevel-scores
1267 @cindex showLastLength
1268 @cindex showFirstLength
1270 These are variables defined directly in Scheme. Their direct
1271 use by users is strongly discouraged, because their scoping
1272 semantics can be confusing.
1274 When the value of such a variable is changed in a @file{.ly} file,
1275 the change is global, and unless explicitly reverted, the new value
1276 will persist to the end of the file, affecting subsequent
1277 @code{\score} blocks as well as external files added with the
1278 @code{\include} command. This can lead to unintended consequences
1279 and in complex typesetting projects the consequent errors can be
1280 difficult to track down.
1282 LilyPond uses the following parser variables:
1285 @item afterGraceFraction
1290 @item parseStringResult
1291 @item partCombineListener
1293 @item toplevel-bookparts
1294 @item toplevel-scores
1295 @item showLastLength
1296 @item showFirstLength
1301 @unnumberedsubsec prob
1304 @cindex property object
1306 PRoperty OBjects, or @strong{probs} for short, are instances of
1307 the @code{Prob} class, a simple base class for objects which have
1308 mutable and immutable property alists and the methods to manipulate
1309 them. The @code{Music} and @code{Stream_event} classes derive from
1310 @code{Prob}. Instances of the @code{Prob} class are also created
1311 to hold the formatted content of system grobs and titling blocks
1315 @node simple closure
1316 @unnumberedsubsec simple closure
1322 @unnumberedsubsec smob
1325 @cindex Scheme object
1327 @strong{Smobs}, or ScheMe OBjects, are part of the mechanism used
1328 by Guile to export C and C++ objects to Scheme code. In LilyPond,
1329 smobs are created from C++ objects through macros. There are two
1330 types of smob objects: simple smobs, intended for simple immutable
1331 objects like numbers, and complex smobs, used for objects with
1332 identities. If you have access to the LilyPond sources, more
1333 information can be found in @file{lily/includes/smob.hh}.
1336 @unnumberedsubsec stencil
1340 An instance of the @strong{stencil} class holds the information
1341 required to print a typographical object. It is a simple smob
1342 containing a confining box, which defines the vertical and
1343 horizontal extents of the object, and a Scheme expression which
1344 will print the object when evaluated. Stencils may be combined
1345 to form more complex stencils defined by a tree of Scheme
1346 expressions formed from the Scheme expressions of the component
1349 The @code{stencil} property, which connects a grob to its stencil,
1350 is defined in the @code{grob-interface} interface.
1353 Internals Reference:
1354 @rinternals{grob-interface}.
1357 @node All context properties
1358 @appendixsec All context properties
1360 @include context-properties.tely
1363 @node Layout properties
1364 @appendixsec Layout properties
1366 @include layout-properties.tely
1369 @node Available music functions
1370 @appendixsec Available music functions
1372 @include identifiers.tely
1375 @node Predefined type predicates
1376 @appendixsec Predefined type predicates
1378 @include type-predicates.tely
1381 @node Scheme functions
1382 @appendixsec Scheme functions
1384 @include scheme-functions.tely