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 fretboard diagrams::
24 * Text markup commands::
25 * Text markup list commands::
26 * List of articulations::
28 * Technical glossary::
29 * All context properties::
31 * Available music functions::
32 * Predefined type predicates::
38 @node Chord name chart
39 @appendixsec Chord name chart
41 The following charts shows two standard systems for printing chord
42 names, along with the pitches they represent.
44 @lilypondfile{chord-names-jazz.ly}
46 @node Common chord modifiers
47 @appendixsec Common chord modifiers
49 The following table shows chord modifiers that can be used in
50 @code{\chordmode} to generate standard chord structures.
52 @multitable @columnfractions .2 .3 .2 .2
67 Major third, perfect fifth
71 @lilypond[line-width=3\cm,noragged-right, notime]
80 Minor third, perfect fifth
84 @lilypond[line-width=3\cm,noragged-right, notime]
93 Major third, augmented fifth
97 @lilypond[line-width=3\cm,noragged-right, notime]
106 Minor third, diminished fifth
110 @lilypond[line-width=3\cm,noragged-right, notime]
119 Major triad, minor seventh
123 @lilypond[line-width=3\cm,noragged-right, notime]
132 Major triad, major seventh
134 @code{maj7} or @code{maj}
136 @lilypond[line-width=3\cm,noragged-right, notime]
145 Minor triad, minor seventh
149 @lilypond[line-width=3\cm,noragged-right, notime]
158 Diminished triad, diminished seventh
162 @lilypond[line-width=3\cm,noragged-right, notime]
171 Augmented triad, minor seventh
175 @lilypond[line-width=3\cm,noragged-right, notime]
182 Half-diminished seventh
184 Diminished triad, minor seventh
188 @lilypond[line-width=3\cm,noragged-right, notime]
197 Minor triad, major seventh
201 @lilypond[line-width=3\cm,noragged-right, notime]
214 @lilypond[line-width=3\cm,noragged-right, notime]
227 @lilypond[line-width=3\cm,noragged-right, notime]
236 Dominant seventh, major ninth
240 @lilypond[line-width=3\cm,noragged-right, notime]
249 Major seventh, major ninth
253 @lilypond[line-width=3\cm,noragged-right, notime]
262 Minor seventh, major ninth
266 @lilypond[line-width=3\cm,noragged-right, notime]
275 Dominant ninth, perfect eleventh
279 @lilypond[line-width=3\cm,noragged-right, notime]
288 Major ninth, perfect eleventh
292 @lilypond[line-width=3\cm,noragged-right, notime]
301 Minor ninth, perfect eleventh
305 @lilypond[line-width=3\cm,noragged-right, notime]
314 Dominant ninth, major thirteenth
318 @lilypond[line-width=3\cm,noragged-right, notime]
327 Dominant eleventh, major thirteenth
331 @lilypond[line-width=3\cm,noragged-right, notime]
340 Major eleventh, major thirteenth
344 @lilypond[line-width=3\cm,noragged-right, notime]
353 Minor eleventh, major thirteenth
357 @lilypond[line-width=3\cm,noragged-right, notime]
366 Major second, perfect fifth
370 @lilypond[line-width=3\cm,noragged-right, notime]
379 Perfect fourth, perfect fifth
383 @lilypond[line-width=3\cm,noragged-right, notime]
390 Power chord (two-voiced)
396 @lilypond[line-width=3\cm,noragged-right, notime]
404 Power chord (three-voiced)
406 Perfect fifth, octave
410 @lilypond[line-width=3\cm,noragged-right, notime]
419 @node Predefined fretboard diagrams
420 @appendixsec Predefined fretboard diagrams
422 The chart below shows the predefined fretboard diagrams for guitar.
424 @lilypondfile{display-predefined-fretboards.ly}
426 The chart below shows the predefined fretboard diagrams for ukulele.
428 @lilypondfile{display-predefined-ukulele-fretboards.ly}
430 @node MIDI instruments
431 @appendixsec MIDI instruments
433 The following is a list of names that can be used for the
434 @code{midiInstrument} property. The order of the instruments
435 below, starting in the left-hand column moving down, corresponds
436 to the General MIDI Standard's 128 Program Numbers.
439 acoustic grand contrabass lead 7 (fifths)
440 bright acoustic tremolo strings lead 8 (bass+lead)
441 electric grand pizzicato strings pad 1 (new age)
442 honky-tonk orchestral harp pad 2 (warm)
443 electric piano 1 timpani pad 3 (polysynth)
444 electric piano 2 string ensemble 1 pad 4 (choir)
445 harpsichord string ensemble 2 pad 5 (bowed)
446 clav synthstrings 1 pad 6 (metallic)
447 celesta synthstrings 2 pad 7 (halo)
448 glockenspiel choir aahs pad 8 (sweep)
449 music box voice oohs fx 1 (rain)
450 vibraphone synth voice fx 2 (soundtrack)
451 marimba orchestra hit fx 3 (crystal)
452 xylophone trumpet fx 4 (atmosphere)
453 tubular bells trombone fx 5 (brightness)
454 dulcimer tuba fx 6 (goblins)
455 drawbar organ muted trumpet fx 7 (echoes)
456 percussive organ french horn fx 8 (sci-fi)
457 rock organ brass section sitar
458 church organ synthbrass 1 banjo
459 reed organ synthbrass 2 shamisen
460 accordion soprano sax koto
461 harmonica alto sax kalimba
462 concertina tenor sax bagpipe
463 acoustic guitar (nylon) baritone sax fiddle
464 acoustic guitar (steel) oboe shanai
465 electric guitar (jazz) english horn tinkle bell
466 electric guitar (clean) bassoon agogo
467 electric guitar (muted) clarinet steel drums
468 overdriven guitar piccolo woodblock
469 distorted guitar flute taiko drum
470 guitar harmonics recorder melodic tom
471 acoustic bass pan flute synth drum
472 electric bass (finger) blown bottle reverse cymbal
473 electric bass (pick) shakuhachi guitar fret noise
474 fretless bass whistle breath noise
475 slap bass 1 ocarina seashore
476 slap bass 2 lead 1 (square) bird tweet
477 synth bass 1 lead 2 (sawtooth) telephone ring
478 synth bass 2 lead 3 (calliope) helicopter
479 violin lead 4 (chiff) applause
480 viola lead 5 (charang) gunshot
486 @appendixsec List of colors
488 @subsubheading Normal colors
490 Usage syntax is detailed in @ref{Coloring objects}.
492 @cindex List of colors
493 @cindex Colors, list of
496 black white red green
497 blue cyan magenta yellow
498 grey darkred darkgreen darkblue
499 darkcyan darkmagenta darkyellow
503 @subsubheading X color names
505 X color names come several variants:
507 Any name that is spelled as a single word with capitalization
508 (e.g. @q{LightSlateBlue}) can also be spelled as space separated
509 words without capitalization (e.g. @q{light slate blue}).
511 The word @q{grey} can always be spelled @q{gray} (e.g. @q{DarkSlateGray}).
513 Some names can take a numerical suffix (e.g. @q{LightSalmon4}).
516 @subsubheading Color Names without a numerical suffix:
519 snow GhostWhite WhiteSmoke gainsboro FloralWhite
520 OldLace linen AntiqueWhite PapayaWhip BlanchedAlmond
521 bisque PeachPuff NavajoWhite moccasin cornsilk
522 ivory LemonChiffon seashell honeydew MintCream
523 azure AliceBlue lavender LavenderBlush MistyRose
524 white black DarkSlateGrey DimGrey SlateGrey
525 LightSlateGrey grey LightGrey MidnightBlue navy
526 NavyBlue CornflowerBlue DarkSlateBlue SlateBlue MediumSlateBlue
527 LightSlateBlue MediumBlue RoyalBlue blue DodgerBlue
528 DeepSkyBlue SkyBlue LightSkyBlue SteelBlue LightSteelBlue
529 LightBlue PowderBlue PaleTurquoise DarkTurquoise MediumTurquoise
530 turquoise cyan LightCyan CadetBlue MediumAquamarine
531 aquamarine DarkGreen DarkOliveGreen DarkSeaGreen SeaGreen
532 MediumSeaGreen LightSeaGreen PaleGreen SpringGreen LawnGreen
533 green chartreuse MediumSpringGreen GreenYellow LimeGreen
534 YellowGreen ForestGreen OliveDrab DarkKhaki khaki
535 PaleGoldenrod LightGoldenrodYellow LightYellow yellow gold
536 LightGoldenrod goldenrod DarkGoldenrod RosyBrown IndianRed
537 SaddleBrown sienna peru burlywood beige
538 wheat SandyBrown tan chocolate firebrick
539 brown DarkSalmon salmon LightSalmon orange
540 DarkOrange coral LightCoral tomato OrangeRed
541 red HotPink DeepPink pink LightPink
542 PaleVioletRed maroon MediumVioletRed VioletRed magenta
543 violet plum orchid MediumOrchid DarkOrchid
544 DarkViolet BlueViolet purple MediumPurple thistle
545 DarkGrey DarkBlue DarkCyan DarkMagenta DarkRed
550 @subsubheading Color names with a numerical suffix
552 In the following names the suffix N can be a number in the range 1-4:
555 snowN seashellN AntiqueWhiteN bisqueN PeachPuffN
556 NavajoWhiteN LemonChiffonN cornsilkN ivoryN honeydewN
557 LavenderBlushN MistyRoseN azureN SlateBlueN RoyalBlueN
558 blueN DodgerBlueN SteelBlueN DeepSkyBlueN SkyBlueN
559 LightSkyBlueN LightSteelBlueN LightBlueN LightCyanN PaleTurquoiseN
560 CadetBlueN turquoiseN cyanN aquamarineN DarkSeaGreenN
561 SeaGreenN PaleGreenN SpringGreenN greenN chartreuseN
562 OliveDrabN DarkOliveGreenN khakiN LightGoldenrodN LightYellowN
563 yellowN goldN goldenrodN DarkGoldenrodN RosyBrownN
564 IndianRedN siennaN burlywoodN wheatN tanN
565 chocolateN firebrickN brownN salmonN LightSalmonN
566 orangeN DarkOrangeN coralN tomatoN OrangeRedN
567 redN DeepPinkN HotPinkN pinkN LightPinkN
568 PaleVioletRedN maroonN VioletRedN magentaN orchidN
569 plumN MediumOrchidN DarkOrchidN purpleN MediumPurpleN
574 @subsubheading Grey Scale
576 A grey scale can be obtained using:
583 Where N is in the range 0-100.
587 @appendixsec The Feta font
592 The following symbols are available in the Emmentaler font and may be
593 accessed directly using text markup with the name of the glyph
594 as shown in the tables below,
595 such as @code{g^\markup @{\musicglyph #"scripts.segno" @}} or
596 @code{\markup @{\musicglyph #"five"@}}. For more information,
597 see @ref{Formatting text}.
602 * Time Signature glyphs::
604 * Accidental glyphs::
605 * Default Notehead glyphs::
606 * Special Notehead glyphs::
607 * Shape-note Notehead glyphs::
614 * Bracket-tip glyphs::
621 * Neomensural glyphs::
628 @unnumberedsubsec Clef glyphs
631 \include "font-table.ly"
632 \markuplines \override-lines #'(word-space . 4)
637 @node Time Signature glyphs
638 @unnumberedsubsec Time Signature glyphs
641 \include "font-table.ly"
642 \markuplines \override-lines #'(word-space . 4)
648 @unnumberedsubsec Number glyphs
651 \include "font-table.ly"
652 \markuplines \override-lines #'(word-space . 4)
657 @node Accidental glyphs
658 @unnumberedsubsec Accidental glyphs
661 \include "font-table.ly"
662 \markuplines \override-lines #'(word-space . 4)
663 \doc-chars #accidentals
667 @node Default Notehead glyphs
668 @unnumberedsubsec Default Notehead glyphs
671 \include "font-table.ly"
672 \markuplines \override-lines #'(word-space . 4)
673 \doc-chars #default-noteheads
677 @node Special Notehead glyphs
678 @unnumberedsubsec Special Notehead glyphs
681 \include "font-table.ly"
682 \markuplines \override-lines #'(word-space . 4)
683 \doc-chars #special-noteheads
687 @node Shape-note Notehead glyphs
688 @unnumberedsubsec Shape-note Notehead glyphs
691 \include "font-table.ly"
692 \markuplines \override-lines #'(word-space . 4)
693 \doc-chars #shape-note-noteheads
698 @unnumberedsubsec Rest glyphs
701 \include "font-table.ly"
702 \markuplines \override-lines #'(word-space . 4)
708 @unnumberedsubsec Flag glyphs
711 \include "font-table.ly"
712 \markuplines \override-lines #'(word-space . 4)
718 @unnumberedsubsec Dot glyphs
721 \include "font-table.ly"
722 \markuplines \override-lines #'(word-space . 4)
728 @unnumberedsubsec Dynamic glyphs
731 \include "font-table.ly"
732 \markuplines \override-lines #'(word-space . 4)
738 @unnumberedsubsec Script glyphs
741 \include "font-table.ly"
742 \markuplines \override-lines #'(word-space . 4)
747 @node Arrowhead glyphs
748 @unnumberedsubsec Arrowhead glyphs
751 \include "font-table.ly"
752 \markuplines \override-lines #'(word-space . 4)
753 \doc-chars #arrowheads
757 @node Bracket-tip glyphs
758 @unnumberedsubsec Bracket-tip glyphs
761 \include "font-table.ly"
762 \markuplines \override-lines #'(word-space . 4)
763 \doc-chars #brackettips
768 @unnumberedsubsec Pedal glyphs
771 \include "font-table.ly"
772 \markuplines \override-lines #'(word-space . 4)
777 @node Accordion glyphs
778 @unnumberedsubsec Accordion glyphs
781 \include "font-table.ly"
782 \markuplines \override-lines #'(word-space . 4)
783 \doc-chars #accordion
787 @node Vaticana glyphs
788 @unnumberedsubsec Vaticana glyphs
791 \include "font-table.ly"
792 \markuplines \override-lines #'(word-space . 4)
797 @node Medicaea glyphs
798 @unnumberedsubsec Medicaea glyphs
801 \include "font-table.ly"
802 \markuplines \override-lines #'(word-space . 4)
807 @node Hufnagel glyphs
808 @unnumberedsubsec Hufnagel glyphs
811 \include "font-table.ly"
812 \markuplines \override-lines #'(word-space . 4)
817 @node Mensural glyphs
818 @unnumberedsubsec Mensural glyphs
821 \include "font-table.ly"
822 \markuplines \override-lines #'(word-space . 4)
827 @node Neomensural glyphs
828 @unnumberedsubsec Neomensural glyphs
831 \include "font-table.ly"
832 \markuplines \override-lines #'(word-space . 4)
833 \doc-chars #neomensural
837 @node Petrucci glyphs
838 @unnumberedsubsec Petrucci glyphs
841 \include "font-table.ly"
842 \markuplines \override-lines #'(word-space . 4)
847 @node Solesmes glyphs
848 @unnumberedsubsec Solesmes glyphs
851 \include "font-table.ly"
852 \markuplines \override-lines #'(word-space . 4)
857 @node Note head styles
858 @appendixsec Note head styles
860 @cindex note head styles
861 The following styles may be used for note heads.
863 @lilypondfile[noindent]{note-head-style.ly}
866 @node Text markup commands
867 @appendixsec Text markup commands
869 @include markup-commands.tely
872 @node Text markup list commands
873 @appendixsec Text markup list commands
875 The following commands can all be used with @code{\markuplines}:
877 @include markup-list-commands.tely
880 @node List of articulations
881 @appendixsec List of articulations
915 @cindex signumcongruentiae
916 @cindex snappizzicato
917 @cindex staccatissimo
928 @cindex verylongfermata
930 The following scripts are available in the Feta font and may be
931 attached to notes (eg. @samp{c\accent}).
933 @c Articulations and ornamentations
934 @c Fingering instructions (for "thumb")
935 @c Common notation for unfretted strings
936 @c Bowing indications
938 @c Snap (Bartók) pizzicato
939 @c Custom percussion staves (for "halfopen" -- not yet funindexed)
940 @c References for wind instruments (for "open"/"stopped" -- not yet funindexed)
944 * Articulation scripts::
947 * Instrument-specific scripts::
948 * Repeat sign scripts::
953 @node Articulation scripts
954 @unnumberedsubsec Articulation scripts
957 \include "script-chart.ly"
958 \new RhythmicStaff { \scriptStaff #articulations }
961 @node Ornament scripts
962 @unnumberedsubsec Ornament scripts
965 \include "script-chart.ly"
966 \new RhythmicStaff { \scriptStaff #ornaments }
969 @node Fermata scripts
970 @unnumberedsubsec Fermata scripts
973 \include "script-chart.ly"
974 \new RhythmicStaff { \scriptStaff #fermatas }
977 @node Instrument-specific scripts
978 @unnumberedsubsec Instrument-specific scripts
981 \include "script-chart.ly"
982 \new RhythmicStaff { \scriptStaff #instrument-specific }
985 @node Repeat sign scripts
986 @unnumberedsubsec Repeat sign scripts
989 \include "script-chart.ly"
990 \new RhythmicStaff { \scriptStaff #repeats }
993 @node Ancient scripts
994 @unnumberedsubsec Ancient scripts
997 \include "script-chart.ly"
998 \include "gregorian.ly"
999 \new VaticanaStaff { \scriptStaffAncient #ancient }
1003 @node Percussion notes
1004 @appendixsec Percussion notes
1006 @lilypondfile[quote]{percussion-chart.ly}
1009 @node Technical glossary
1010 @appendixsec Technical glossary
1012 A glossary of the technical terms and concepts used internally in
1013 LilyPond. These terms may appear in the manuals, on mailing lists
1014 or in the source code.
1036 @unnumberedsubsec alist
1039 @cindex association list
1041 An association list or @strong{alist} for short is a Scheme pair
1042 which associates a value with a key: @w{@code{(key . value)}}. For
1043 example, in @file{scm/lily.scm}, the alist
1044 @w{@qq{type-p-name-alist}} associates certain type predicates
1045 (e.g.@tie{}@code{ly:music?}) with names (e.g.@tie{}@qq{music}) so
1046 that type-check failures can be reported with a console message that
1047 includes the name of the expected type predicate.
1050 @unnumberedsubsec callback
1054 A @strong{callback} is a routine, function or method whose reference is
1055 passed as an argument in a call to another routine, so allowing
1056 the called routine to invoke it. The technique enables a lower-
1057 level software layer to call a function defined in a higher
1058 layer. Callbacks are used extensively in LilyPond to permit
1059 user-level Scheme code to define how many low-level actions are
1064 @unnumberedsubsec closure
1067 @cindex simple closure
1069 In Scheme, a @strong{closure} is created when a function, usually
1070 a lambda expression, is passed as a variable. The closure contains
1071 the function's code plus references to the lexical bindings of the
1072 function's free variables (i.e. those variables used in the
1073 expression but defined outside it). When this function is applied
1074 to different arguments later, the free variable bindings that were
1075 captured in the closure are used to obtain the values of the free
1076 variables to be used in the calculation. One useful property of
1077 closures is the retention of internal variable values between
1078 invocations, so permitting state to be maintained.
1080 A @strong{simple closure} is a closure whose expression has no free
1081 variables and hence no free variable bindings.
1083 A simple closure is represented in LilyPond by a smob containing
1084 the expression and a method to apply the expression to a passed
1089 @unnumberedsubsec glyph
1095 A @strong{glyph} is a particular graphical representation of a typographic
1096 character, or a combination of two characters formating a ligature.
1097 A set of glyphs with a single style and shape comprise a font, and
1098 a set of fonts covering several styles and sizes comprise a typeface.
1104 @ref{Text encoding}.
1108 @unnumberedsubsec grob
1111 @cindex layout objects
1112 @cindex graphical objects
1114 LilyPond objects which represent items of notation in the printed
1115 output such as note heads, stems, slurs, ties, fingering, clefs,
1116 etc are called @q{Layout objects}, often known as @q{GRaphical
1117 OBjects}, or @strong{grobs} for short. They are represented by
1118 instances of the @code{Grob} class.
1122 @rlearning{Objects and interfaces},
1123 @rlearning{Naming conventions of objects and properties},
1124 @rlearning{Properties of layout objects}.
1126 Internals Reference:
1127 @rinternals{grob-interface},
1128 @rinternals{All layout objects}.
1132 @unnumberedsubsec immutable
1134 @cindex immutable objects
1135 @cindex immutable properties
1136 @cindex shared properties
1138 An @strong{immutable} object is one whose state cannot be modified
1139 after creation, in contrast to a mutable object, which can be
1140 modified after creation.
1142 In LilyPond, immutable or shared properties define the default
1143 style and behavior of grobs. They are shared between many objects.
1144 In apparent contradiction to the name, they can be changed using
1145 @code{\override} and @code{\revert}.
1152 @unnumberedsubsec interface
1155 @cindex grob-interface
1156 @cindex graphical object interfaces
1158 Actions and properties which are common to a number of grobs are
1159 grouped together in an object called a @code{grob-interface}, or
1160 just @q{interface} for short.
1164 @rlearning{Objects and interfaces},
1165 @rlearning{Naming conventions of objects and properties},
1166 @rlearning{Properties found in interfaces}.
1169 @ref{Layout interfaces}.
1171 Internals Reference:
1172 @rinternals{Graphical Object Interfaces}.
1176 @unnumberedsubsec lexer
1181 A @strong{lexer} is a program which converts a sequence of
1182 characters into a sequence of tokens, a process called lexical
1183 analysis. The LilyPond lexer converts the stream obtained from an
1184 input @file{.ly} file into a tokenized stream more suited to the
1185 next stage of processing - parsing, for which see @ref{parser}.
1186 The LilyPond lexer is built with Flex from the lexer file
1187 @file{lily/lexer.ll} which contains the lexical rules. This file
1188 is part of the source code and is not included in the LilyPond
1189 binary installation.
1193 @unnumberedsubsec mutable
1195 @cindex mutable objects
1196 @cindex mutable properties
1198 A @strong{mutable} object is one whose state can be modified after
1199 creation, in contrast to an immutable object, whose state is fixed
1200 at the time of creation.
1202 In LilyPond, mutable properties contain values that are specific to
1203 one grob. Typically, lists of other objects or results from
1204 computations are stored in mutable properties.
1211 @unnumberedsubsec output-def
1215 An instance of the @code{Output-def} class contains the methods and
1216 data structures associated with an output block. Instances are
1217 created for midi, layout and paper blocks.
1221 @unnumberedsubsec parser
1225 @cindex grammar for LilyPond
1228 A @strong{parser} analyzes the sequence of tokens produced by a
1229 lexer to determine its grammatical structure, grouping the tokens
1230 progressively into larger groupings according to the rules of the
1231 grammar. If the sequence of tokens is valid the end product is a
1232 tree of tokens whose root is the grammar's start symbol. If this
1233 cannot be achieved the file is invalid and an appropriate error
1234 message is produced. The syntactic groupings and the rules for
1235 constructing the groupings from their parts for the LilyPond syntax
1236 are defined in @file{lily/parser.yy} and shown in Backus Normal Form
1237 (BNF) in @ref{LilyPond grammar}. This file is used to build the
1238 parser during the program build by the parser generator, Bison. It
1239 is part of the source code and is not included in the LilyPond
1240 binary installation.
1243 @node parser variable
1244 @unnumberedsubsec parser variable
1246 @cindex parser variable
1247 @cindex Scheme variable
1248 @cindex global variable
1249 @cindex afterGraceFraction
1252 @cindex output-count
1253 @cindex output-suffix
1254 @cindex parseStringResult
1255 @cindex partCombineListener
1257 @cindex toplevel-bookparts
1258 @cindex toplevel-scores
1259 @cindex showLastLength
1260 @cindex showFirstLength
1262 These are variables defined directly in Scheme. Their direct
1263 use by users is strongly discouraged, because their scoping
1264 semantics can be confusing.
1266 When the value of such a variable is changed in a @code{.ly} file,
1267 the change is global, and unless explicitly reverted, the new value
1268 will persist to the end of the file, affecting subsequent
1269 @code{\score} blocks as well as external files added with the
1270 @code{\include} command. This can lead to unintended consequences
1271 and in complex typesetting projects the consequent errors can be
1272 difficult to track down.
1274 LilyPond uses the following parser variables:
1277 @item afterGraceFraction
1282 @item parseStringResult
1283 @item partCombineListener
1285 @item toplevel-bookparts
1286 @item toplevel-scores
1287 @item showLastLength
1288 @item showFirstLength
1293 @unnumberedsubsec prob
1296 @cindex property object
1298 PRoperty OBjects, or @strong{probs} for short, are instances of
1299 the @code{Prob} class, a simple base class for objects which have
1300 mutable and immutable property alists and the methods to manipulate
1301 them. The @code{Music} and @code{Stream_event} classes derive from
1302 @code{Prob}. Instances of the @code{Prob} class are also created
1303 to hold the formatted content of system grobs and titling blocks
1307 @node simple closure
1308 @unnumberedsubsec simple closure
1314 @unnumberedsubsec smob
1317 @cindex Scheme object
1319 @strong{Smobs}, or ScheMe OBjects, are part of the mechanism used
1320 by Guile to export C and C++ objects to Scheme code. In LilyPond,
1321 smobs are created from C++ objects through macros. There are two
1322 types of smob objects: simple smobs, intended for simple immutable
1323 objects like numbers, and complex smobs, used for objects with
1324 identities. If you have access to the LilyPond sources, more
1325 information can be found in @file{lily/includes/smob.hh}.
1328 @unnumberedsubsec stencil
1332 An instance of the @strong{stencil} class holds the information
1333 required to print a typographical object. It is a simple smob
1334 containing a confining box, which defines the vertical and
1335 horizontal extents of the object, and a Scheme expression which
1336 will print the object when evaluated. Stencils may be combined
1337 to form more complex stencils defined by a tree of Scheme
1338 expressions formed from the Scheme expressions of the component
1341 The @code{stencil} property, which connects a grob to its stencil,
1342 is defined in the @code{grob-interface} interface.
1345 Internals Reference:
1346 @rinternals{grob-interface}.
1349 @node All context properties
1350 @appendixsec All context properties
1352 @include context-properties.tely
1355 @node Layout properties
1356 @appendixsec Layout properties
1358 @include layout-properties.tely
1361 @node Available music functions
1362 @appendixsec Available music functions
1364 @include identifiers.tely
1367 @node Predefined type predicates
1368 @appendixsec Predefined type predicates
1370 @include type-predicates.tely
1373 @node Scheme functions
1374 @appendixsec Scheme functions
1376 @include scheme-functions.tely