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
16 @c Please do not delete the following @ignore block.
18 Note for editors and translators: In the following menu, two entries
19 are needed to link to a pair of automatically generated sections.
20 Please keep them and, if using emacs, do not run
21 texinfo-all-menus-update without manually restoring them back. These
24 * Text markup commands::
25 * Text markup list commands::
27 and they should go just after
31 * List of articulations::
36 * Common chord modifiers::
37 * Predefined fretboard diagrams::
42 * Text markup commands::
43 * Text markup list commands::
44 * List of articulations::
46 * Technical glossary::
47 * All context properties::
49 * Available music functions::
55 @node Chord name chart
56 @appendixsec Chord name chart
58 The following charts shows two standard systems for printing chord
59 names, along with the pitches they represent.
61 @lilypondfile{chord-names-jazz.ly}
63 @node Common chord modifiers
64 @appendixsec Common chord modifiers
66 The following table shows chord modifiers that can be used in
67 @code{\chordmode} to generate standard chord structures.
69 @multitable @columnfractions .2 .3 .2 .2
84 Major third, perfect fifth
88 @lilypond[line-width=3\cm,noragged-right, notime]
97 Minor third, perfect fifth
101 @lilypond[line-width=3\cm,noragged-right, notime]
110 Major third, augmented fifth
114 @lilypond[line-width=3\cm,noragged-right, notime]
123 Minor third, diminished fifth
127 @lilypond[line-width=3\cm,noragged-right, notime]
136 Major triad, minor seventh
140 @lilypond[line-width=3\cm,noragged-right, notime]
149 Major triad, major seventh
151 @code{maj7} or @code{maj}
153 @lilypond[line-width=3\cm,noragged-right, notime]
162 Minor triad, minor seventh
166 @lilypond[line-width=3\cm,noragged-right, notime]
175 Diminished triad, diminished seventh
179 @lilypond[line-width=3\cm,noragged-right, notime]
188 Augmented triad, minor seventh
192 @lilypond[line-width=3\cm,noragged-right, notime]
199 Half-diminished seventh
201 Diminished triad, minor seventh
205 @lilypond[line-width=3\cm,noragged-right, notime]
214 Minor triad, major seventh
218 @lilypond[line-width=3\cm,noragged-right, notime]
231 @lilypond[line-width=3\cm,noragged-right, notime]
244 @lilypond[line-width=3\cm,noragged-right, notime]
253 Dominant seventh, major ninth
257 @lilypond[line-width=3\cm,noragged-right, notime]
266 Major seventh, major ninth
270 @lilypond[line-width=3\cm,noragged-right, notime]
279 Minor seventh, major ninth
283 @lilypond[line-width=3\cm,noragged-right, notime]
292 Dominant ninth, perfect eleventh
296 @lilypond[line-width=3\cm,noragged-right, notime]
305 Major ninth, perfect eleventh
309 @lilypond[line-width=3\cm,noragged-right, notime]
318 Minor ninth, perfect eleventh
322 @lilypond[line-width=3\cm,noragged-right, notime]
331 Dominant ninth, major thirteenth
335 @lilypond[line-width=3\cm,noragged-right, notime]
344 Dominant eleventh, major thirteenth
348 @lilypond[line-width=3\cm,noragged-right, notime]
357 Major eleventh, major thirteenth
361 @lilypond[line-width=3\cm,noragged-right, notime]
370 Minor eleventh, major thirteenth
374 @lilypond[line-width=3\cm,noragged-right, notime]
383 Major second, perfect fifth
387 @lilypond[line-width=3\cm,noragged-right, notime]
396 Perfect fourth, perfect fifth
400 @lilypond[line-width=3\cm,noragged-right, notime]
409 @node Predefined fretboard diagrams
410 @appendixsec Predefined fretboard diagrams
412 The chart below shows the predefined fretboard diagrams for guitar.
414 @lilypondfile{display-predefined-fretboards.ly}
416 The chart below shows the predefined fretboard diagrams for ukulele.
418 @lilypondfile{display-predefined-ukulele-fretboards.ly}
420 @node MIDI instruments
421 @appendixsec MIDI instruments
423 The following is a list of names that can be used for the
424 @code{midiInstrument} property. The order of the instruments
425 below, starting in the left-hand column moving down, corresponds
426 to the General MIDI Standard's 128 Program Numbers.
429 acoustic grand contrabass lead 7 (fifths)
430 bright acoustic tremolo strings lead 8 (bass+lead)
431 electric grand pizzicato strings pad 1 (new age)
432 honky-tonk orchestral harp pad 2 (warm)
433 electric piano 1 timpani pad 3 (polysynth)
434 electric piano 2 string ensemble 1 pad 4 (choir)
435 harpsichord string ensemble 2 pad 5 (bowed)
436 clav synthstrings 1 pad 6 (metallic)
437 celesta synthstrings 2 pad 7 (halo)
438 glockenspiel choir aahs pad 8 (sweep)
439 music box voice oohs fx 1 (rain)
440 vibraphone synth voice fx 2 (soundtrack)
441 marimba orchestra hit fx 3 (crystal)
442 xylophone trumpet fx 4 (atmosphere)
443 tubular bells trombone fx 5 (brightness)
444 dulcimer tuba fx 6 (goblins)
445 drawbar organ muted trumpet fx 7 (echoes)
446 percussive organ french horn fx 8 (sci-fi)
447 rock organ brass section sitar
448 church organ synthbrass 1 banjo
449 reed organ synthbrass 2 shamisen
450 accordion soprano sax koto
451 harmonica alto sax kalimba
452 concertina tenor sax bagpipe
453 acoustic guitar (nylon) baritone sax fiddle
454 acoustic guitar (steel) oboe shanai
455 electric guitar (jazz) english horn tinkle bell
456 electric guitar (clean) bassoon agogo
457 electric guitar (muted) clarinet steel drums
458 overdriven guitar piccolo woodblock
459 distorted guitar flute taiko drum
460 guitar harmonics recorder melodic tom
461 acoustic bass pan flute synth drum
462 electric bass (finger) blown bottle reverse cymbal
463 electric bass (pick) shakuhachi guitar fret noise
464 fretless bass whistle breath noise
465 slap bass 1 ocarina seashore
466 slap bass 2 lead 1 (square) bird tweet
467 synth bass 1 lead 2 (sawtooth) telephone ring
468 synth bass 2 lead 3 (calliope) helicopter
469 violin lead 4 (chiff) applause
470 viola lead 5 (charang) gunshot
476 @appendixsec List of colors
478 @subsubheading Normal colors
480 Usage syntax is detailed in @ref{Coloring objects}.
482 @cindex List of colors
483 @cindex Colors, list of
486 black white red green
487 blue cyan magenta yellow
488 grey darkred darkgreen darkblue
489 darkcyan darkmagenta darkyellow
493 @subsubheading X color names
495 X color names come several variants:
497 Any name that is spelled as a single word with capitalization
498 (e.g. @q{LightSlateBlue}) can also be spelled as space separated
499 words without capitalization (e.g. @q{light slate blue}).
501 The word @q{grey} can always be spelled @q{gray} (e.g. @q{DarkSlateGray}).
503 Some names can take a numerical suffix (e.g. @q{LightSalmon4}).
506 @subsubheading Color Names without a numerical suffix:
509 snow GhostWhite WhiteSmoke gainsboro FloralWhite
510 OldLace linen AntiqueWhite PapayaWhip BlanchedAlmond
511 bisque PeachPuff NavajoWhite moccasin cornsilk
512 ivory LemonChiffon seashell honeydew MintCream
513 azure AliceBlue lavender LavenderBlush MistyRose
514 white black DarkSlateGrey DimGrey SlateGrey
515 LightSlateGrey grey LightGrey MidnightBlue navy
516 NavyBlue CornflowerBlue DarkSlateBlue SlateBlue MediumSlateBlue
517 LightSlateBlue MediumBlue RoyalBlue blue DodgerBlue
518 DeepSkyBlue SkyBlue LightSkyBlue SteelBlue LightSteelBlue
519 LightBlue PowderBlue PaleTurquoise DarkTurquoise MediumTurquoise
520 turquoise cyan LightCyan CadetBlue MediumAquamarine
521 aquamarine DarkGreen DarkOliveGreen DarkSeaGreen SeaGreen
522 MediumSeaGreen LightSeaGreen PaleGreen SpringGreen LawnGreen
523 green chartreuse MediumSpringGreen GreenYellow LimeGreen
524 YellowGreen ForestGreen OliveDrab DarkKhaki khaki
525 PaleGoldenrod LightGoldenrodYellow LightYellow yellow gold
526 LightGoldenrod goldenrod DarkGoldenrod RosyBrown IndianRed
527 SaddleBrown sienna peru burlywood beige
528 wheat SandyBrown tan chocolate firebrick
529 brown DarkSalmon salmon LightSalmon orange
530 DarkOrange coral LightCoral tomato OrangeRed
531 red HotPink DeepPink pink LightPink
532 PaleVioletRed maroon MediumVioletRed VioletRed magenta
533 violet plum orchid MediumOrchid DarkOrchid
534 DarkViolet BlueViolet purple MediumPurple thistle
535 DarkGrey DarkBlue DarkCyan DarkMagenta DarkRed
540 @subsubheading Color names with a numerical suffix
542 In the following names the suffix N can be a number in the range 1-4:
545 snowN seashellN AntiqueWhiteN bisqueN PeachPuffN
546 NavajoWhiteN LemonChiffonN cornsilkN ivoryN honeydewN
547 LavenderBlushN MistyRoseN azureN SlateBlueN RoyalBlueN
548 blueN DodgerBlueN SteelBlueN DeepSkyBlueN SkyBlueN
549 LightSkyBlueN LightSteelBlueN LightBlueN LightCyanN PaleTurquoiseN
550 CadetBlueN turquoiseN cyanN aquamarineN DarkSeaGreenN
551 SeaGreenN PaleGreenN SpringGreenN greenN chartreuseN
552 OliveDrabN DarkOliveGreenN khakiN LightGoldenrodN LightYellowN
553 yellowN goldN goldenrodN DarkGoldenrodN RosyBrownN
554 IndianRedN siennaN burlywoodN wheatN tanN
555 chocolateN firebrickN brownN salmonN LightSalmonN
556 orangeN DarkOrangeN coralN tomatoN OrangeRedN
557 redN DeepPinkN HotPinkN pinkN LightPinkN
558 PaleVioletRedN maroonN VioletRedN magentaN orchidN
559 plumN MediumOrchidN DarkOrchidN purpleN MediumPurpleN
564 @subsubheading Grey Scale
566 A grey scale can be obtained using:
573 Where N is in the range 0-100.
577 @appendixsec The Feta font
582 The following symbols are available in the Emmentaler font and may be
583 accessed directly using text markup with the name of the glyph
584 as shown in the tables below,
585 such as @code{g^\markup @{\musicglyph #"scripts.segno" @}} or
586 @code{\markup @{\musicglyph #"five"@}}. For more information,
587 see @ref{Formatting text}.
592 * Time Signature glyphs::
594 * Accidental glyphs::
595 * Default Notehead glyphs::
596 * Special Notehead glyphs::
597 * Shape-note Notehead glyphs::
604 * Bracket-tip glyphs::
611 * Neomensural glyphs::
618 @unnumberedsubsec Clef glyphs
621 \include "font-table.ly"
622 \markuplines \override-lines #'(word-space . 4)
627 @node Time Signature glyphs
628 @unnumberedsubsec Time Signature glyphs
631 \include "font-table.ly"
632 \markuplines \override-lines #'(word-space . 4)
638 @unnumberedsubsec Number glyphs
641 \include "font-table.ly"
642 \markuplines \override-lines #'(word-space . 4)
647 @node Accidental glyphs
648 @unnumberedsubsec Accidental glyphs
651 \include "font-table.ly"
652 \markuplines \override-lines #'(word-space . 4)
653 \doc-chars #accidentals
657 @node Default Notehead glyphs
658 @unnumberedsubsec Default Notehead glyphs
661 \include "font-table.ly"
662 \markuplines \override-lines #'(word-space . 4)
663 \doc-chars #default-noteheads
667 @node Special Notehead glyphs
668 @unnumberedsubsec Special Notehead glyphs
671 \include "font-table.ly"
672 \markuplines \override-lines #'(word-space . 4)
673 \doc-chars #special-noteheads
677 @node Shape-note Notehead glyphs
678 @unnumberedsubsec Shape-note Notehead glyphs
681 \include "font-table.ly"
682 \markuplines \override-lines #'(word-space . 4)
683 \doc-chars #shape-note-noteheads
688 @unnumberedsubsec Rest glyphs
691 \include "font-table.ly"
692 \markuplines \override-lines #'(word-space . 4)
698 @unnumberedsubsec Flag glyphs
701 \include "font-table.ly"
702 \markuplines \override-lines #'(word-space . 4)
708 @unnumberedsubsec Dot glyphs
711 \include "font-table.ly"
712 \markuplines \override-lines #'(word-space . 4)
718 @unnumberedsubsec Dynamic glyphs
721 \include "font-table.ly"
722 \markuplines \override-lines #'(word-space . 4)
728 @unnumberedsubsec Script glyphs
731 \include "font-table.ly"
732 \markuplines \override-lines #'(word-space . 4)
737 @node Arrowhead glyphs
738 @unnumberedsubsec Arrowhead glyphs
741 \include "font-table.ly"
742 \markuplines \override-lines #'(word-space . 4)
743 \doc-chars #arrowheads
747 @node Bracket-tip glyphs
748 @unnumberedsubsec Bracket-tip glyphs
751 \include "font-table.ly"
752 \markuplines \override-lines #'(word-space . 4)
753 \doc-chars #brackettips
758 @unnumberedsubsec Pedal glyphs
761 \include "font-table.ly"
762 \markuplines \override-lines #'(word-space . 4)
767 @node Accordion glyphs
768 @unnumberedsubsec Accordion glyphs
771 \include "font-table.ly"
772 \markuplines \override-lines #'(word-space . 4)
773 \doc-chars #accordion
777 @node Vaticana glyphs
778 @unnumberedsubsec Vaticana glyphs
781 \include "font-table.ly"
782 \markuplines \override-lines #'(word-space . 4)
787 @node Medicaea glyphs
788 @unnumberedsubsec Medicaea glyphs
791 \include "font-table.ly"
792 \markuplines \override-lines #'(word-space . 4)
797 @node Hufnagel glyphs
798 @unnumberedsubsec Hufnagel glyphs
801 \include "font-table.ly"
802 \markuplines \override-lines #'(word-space . 4)
807 @node Mensural glyphs
808 @unnumberedsubsec Mensural glyphs
811 \include "font-table.ly"
812 \markuplines \override-lines #'(word-space . 4)
817 @node Neomensural glyphs
818 @unnumberedsubsec Neomensural glyphs
821 \include "font-table.ly"
822 \markuplines \override-lines #'(word-space . 4)
823 \doc-chars #neomensural
827 @node Petrucci glyphs
828 @unnumberedsubsec Petrucci glyphs
831 \include "font-table.ly"
832 \markuplines \override-lines #'(word-space . 4)
837 @node Solesmes glyphs
838 @unnumberedsubsec Solesmes glyphs
841 \include "font-table.ly"
842 \markuplines \override-lines #'(word-space . 4)
847 @node Note head styles
848 @appendixsec Note head styles
850 @cindex note head styles
851 The following styles may be used for note heads.
853 @lilypondfile[noindent]{note-head-style.ly}
855 @include markup-commands.tely
857 @include markup-list-commands.tely
859 @node List of articulations
860 @appendixsec List of articulations
894 @cindex signumcongruentiae
895 @cindex snappizzicato
896 @cindex staccatissimo
907 @cindex verylongfermata
909 The following scripts are available in the Feta font and may be
910 attached to notes (eg. @samp{c\accent}).
912 @c Articulations and ornamentations
913 @c Fingering instructions (for "thumb")
914 @c Common notation for unfretted strings
915 @c Bowing indications
917 @c Snap (Bartók) pizzicato
918 @c Custom percussion staves (for "halfopen" -- not yet funindexed)
919 @c References for wind instruments (for "open"/"stopped" -- not yet funindexed)
923 * Articulation scripts::
926 * Instrument-specific scripts::
927 * Repeat sign scripts::
932 @node Articulation scripts
933 @unnumberedsubsec Articulation scripts
936 \include "script-chart.ly"
937 \new RhythmicStaff { \scriptStaff #articulations }
940 @node Ornament scripts
941 @unnumberedsubsec Ornament scripts
944 \include "script-chart.ly"
945 \new RhythmicStaff { \scriptStaff #ornaments }
948 @node Fermata scripts
949 @unnumberedsubsec Fermata scripts
952 \include "script-chart.ly"
953 \new RhythmicStaff { \scriptStaff #fermatas }
956 @node Instrument-specific scripts
957 @unnumberedsubsec Instrument-specific scripts
960 \include "script-chart.ly"
961 \new RhythmicStaff { \scriptStaff #instrument-specific }
964 @node Repeat sign scripts
965 @unnumberedsubsec Repeat sign scripts
968 \include "script-chart.ly"
969 \new RhythmicStaff { \scriptStaff #repeats }
972 @node Ancient scripts
973 @unnumberedsubsec Ancient scripts
976 \include "script-chart.ly"
977 \include "gregorian.ly"
978 \new VaticanaStaff { \scriptStaffAncient #ancient }
982 @node Percussion notes
983 @appendixsec Percussion notes
985 @lilypondfile[quote]{percussion-chart.ly}
988 @node Technical glossary
989 @appendixsec Technical glossary
991 A glossary of the technical terms and concepts used internally in
992 LilyPond. These terms may appear in the manuals, on mailing lists
993 or in the source code.
1015 @unnumberedsubsec alist
1018 @cindex association list
1020 An association list or @strong{alist} for short is a Scheme pair
1021 which associates a value with a key: @w{@code{(key . value)}}. For
1022 example, in @file{scm/lily.scm}, the alist
1023 @w{@qq{type-p-name-alist}} associates certain type predicates
1024 (e.g.@tie{}@code{ly:music?}) with names (e.g.@tie{}@qq{music}) so
1025 that type-check failures can be reported with a console message that
1026 includes the name of the expected type predicate.
1029 @unnumberedsubsec callback
1033 A @strong{callback} is a routine, function or method whose reference is
1034 passed as an argument in a call to another routine, so allowing
1035 the called routine to invoke it. The technique enables a lower-
1036 level software layer to call a function defined in a higher
1037 layer. Callbacks are used extensively in LilyPond to permit
1038 user-level Scheme code to define how many low-level actions are
1043 @unnumberedsubsec closure
1046 @cindex simple closure
1048 In Scheme, a @strong{closure} is created when a function, usually
1049 a lambda expression, is passed as a variable. The closure contains
1050 the function's code plus references to the lexical bindings of the
1051 function's free variables (i.e. those variables used in the
1052 expression but defined outside it). When this function is applied
1053 to different arguments later, the free variable bindings that were
1054 captured in the closure are used to obtain the values of the free
1055 variables to be used in the calculation. One useful property of
1056 closures is the retention of internal variable values between
1057 invocations, so permitting state to be maintained.
1059 A @strong{simple closure} is a closure whose expression has no free
1060 variables and hence no free variable bindings.
1062 A simple closure is represented in LilyPond by a smob containing
1063 the expression and a method to apply the expression to a passed
1068 @unnumberedsubsec glyph
1074 A @strong{glyph} is a particular graphical representation of a typographic
1075 character, or a combination of two characters formating a ligature.
1076 A set of glyphs with a single style and shape comprise a font, and
1077 a set of fonts covering several styles and sizes comprise a typeface.
1083 @ref{Text encoding}.
1087 @unnumberedsubsec grob
1090 @cindex layout objects
1091 @cindex graphical objects
1093 LilyPond objects which represent items of notation in the printed
1094 output such as note heads, stems, slurs, ties, fingering, clefs,
1095 etc are called @q{Layout objects}, often known as @q{GRaphical
1096 OBjects}, or @strong{grobs} for short. They are represented by
1097 instances of the @code{Grob} class.
1101 @rlearning{Objects and interfaces},
1102 @rlearning{Naming conventions of objects and properties},
1103 @rlearning{Properties of layout objects}.
1105 Internals Reference:
1106 @rinternals{grob-interface},
1107 @rinternals{All layout objects}.
1111 @unnumberedsubsec immutable
1113 @cindex immutable objects
1114 @cindex immutable properties
1115 @cindex shared properties
1117 An @strong{immutable} object is one whose state cannot be modified
1118 after creation, in contrast to a mutable object, which can be
1119 modified after creation.
1121 In LilyPond, immutable or shared properties define the default
1122 style and behavior of grobs. They are shared between many objects.
1123 In apparent contradiction to the name, they can be changed using
1124 @code{\override} and @code{\revert}.
1131 @unnumberedsubsec interface
1134 @cindex grob-interface
1135 @cindex graphical object interfaces
1137 Actions and properties which are common to a number of grobs are
1138 grouped together in an object called a @code{grob-interface}, or
1139 just @q{interface} for short.
1143 @rlearning{Objects and interfaces},
1144 @rlearning{Naming conventions of objects and properties},
1145 @rlearning{Properties found in interfaces}.
1148 @ref{Layout interfaces}.
1150 Internals Reference:
1151 @rinternals{Graphical Object Interfaces}.
1155 @unnumberedsubsec lexer
1160 A @strong{lexer} is a program which converts a sequence of
1161 characters into a sequence of tokens, a process called lexical
1162 analysis. The LilyPond lexer converts the stream obtained from an
1163 input @file{.ly} file into a tokenized stream more suited to the
1164 next stage of processing - parsing, for which see @ref{parser}.
1165 The LilyPond lexer is built with Flex from the lexer file
1166 @file{lily/lexer.ll} which contains the lexical rules. This file
1167 is part of the source code and is not included in the LilyPond
1168 binary installation.
1172 @unnumberedsubsec mutable
1174 @cindex mutable objects
1175 @cindex mutable properties
1177 A @strong{mutable} object is one whose state can be modified after
1178 creation, in contrast to an immutable object, whose state is fixed
1179 at the time of creation.
1181 In LilyPond, mutable properties contain values that are specific to
1182 one grob. Typically, lists of other objects or results from
1183 computations are stored in mutable properties.
1190 @unnumberedsubsec output-def
1194 An instance of the @code{Output-def} class contains the methods and
1195 data structures associated with an output block. Instances are
1196 created for midi, layout and paper blocks.
1200 @unnumberedsubsec parser
1204 @cindex grammar for LilyPond
1207 A @strong{parser} analyzes the sequence of tokens produced by a
1208 lexer to determine its grammatical structure, grouping the tokens
1209 progressively into larger groupings according to the rules of the
1210 grammar. If the sequence of tokens is valid the end product is a
1211 tree of tokens whose root is the grammar's start symbol. If this
1212 cannot be achieved the file is invalid and an appropriate error
1213 message is produced. The syntactic groupings and the rules for
1214 constructing the groupings from their parts for the LilyPond syntax
1215 are defined in @file{lily/parser.yy} and shown in Backus Normal Form
1216 (BNF) in @ref{LilyPond grammar}. This file is used to build the
1217 parser during the program build by the parser generator, Bison. It
1218 is part of the source code and is not included in the LilyPond
1219 binary installation.
1222 @node parser variable
1223 @unnumberedsubsec parser variable
1225 @cindex parser variable
1226 @cindex Scheme variable
1227 @cindex global variable
1228 @cindex afterGraceFraction
1231 @cindex output-count
1232 @cindex output-suffix
1233 @cindex parseStringResult
1234 @cindex partCombineListener
1236 @cindex toplevel-bookparts
1237 @cindex toplevel-scores
1238 @cindex showLastLength
1239 @cindex showFirstLength
1241 These are variables defined directly in Scheme. Their direct
1242 use by users is strongly discouraged, because their scoping
1243 semantics can be confusing.
1245 When the value of such a variable is changed in a @code{.ly} file,
1246 the change is global, and unless explicitly reverted, the new value
1247 will persist to the end of the file, affecting subsequent
1248 @code{\score} blocks as well as external files added with the
1249 @code{\include} command. This can lead to unintended consequences
1250 and in complex typesetting projects the consequent errors can be
1251 difficult to track down.
1253 LilyPond uses the following parser variables:
1256 @item afterGraceFraction
1261 @item parseStringResult
1262 @item partCombineListener
1264 @item toplevel-bookparts
1265 @item toplevel-scores
1266 @item showLastLength
1267 @item showFirstLength
1272 @unnumberedsubsec prob
1275 @cindex property object
1277 PRoperty OBjects, or @strong{probs} for short, are instances of
1278 the @code{Prob} class, a simple base class for objects which have
1279 mutable and immutable property alists and the methods to manipulate
1280 them. The @code{Music} and @code{Stream_event} classes derive from
1281 @code{Prob}. Instances of the @code{Prob} class are also created
1282 to hold the formatted content of system grobs and titling blocks
1286 @node simple closure
1287 @unnumberedsubsec simple closure
1293 @unnumberedsubsec smob
1296 @cindex Scheme object
1298 @strong{Smobs}, or ScheMe OBjects, are part of the mechanism used
1299 by Guile to export C and C++ objects to Scheme code. In LilyPond,
1300 smobs are created from C++ objects through macros. There are two
1301 types of smob objects: simple smobs, intended for simple immutable
1302 objects like numbers, and complex smobs, used for objects with
1303 identities. If you have access to the LilyPond sources, more
1304 information can be found in @file{lily/includes/smob.hh}.
1307 @unnumberedsubsec stencil
1311 An instance of the @strong{stencil} class holds the information
1312 required to print a typographical object. It is a simple smob
1313 containing a confining box, which defines the vertical and
1314 horizontal extents of the object, and a Scheme expression which
1315 will print the object when evaluated. Stencils may be combined
1316 to form more complex stencils defined by a tree of Scheme
1317 expressions formed from the Scheme expressions of the component
1320 The @code{stencil} property, which connects a grob to its stencil,
1321 is defined in the @code{grob-interface} interface.
1324 Internals Reference:
1325 @rinternals{grob-interface}.
1328 @node All context properties
1329 @appendixsec All context properties
1331 @include context-properties.tely
1334 @node Layout properties
1335 @appendixsec Layout properties
1337 @include layout-properties.tely
1340 @node Available music functions
1341 @appendixsec Available music functions
1343 @include identifiers.tely
1346 @node Scheme functions
1347 @appendixsec Scheme functions
1349 @include scheme-functions.tely