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::
50 * Predefined type predicates::
56 @node Chord name chart
57 @appendixsec Chord name chart
59 The following charts shows two standard systems for printing chord
60 names, along with the pitches they represent.
62 @lilypondfile{chord-names-jazz.ly}
64 @node Common chord modifiers
65 @appendixsec Common chord modifiers
67 The following table shows chord modifiers that can be used in
68 @code{\chordmode} to generate standard chord structures.
70 @multitable @columnfractions .2 .3 .2 .2
85 Major third, perfect fifth
89 @lilypond[line-width=3\cm,noragged-right, notime]
98 Minor third, perfect fifth
100 @code{m} or @code{m5}
102 @lilypond[line-width=3\cm,noragged-right, notime]
111 Major third, augmented fifth
115 @lilypond[line-width=3\cm,noragged-right, notime]
124 Minor third, diminished fifth
128 @lilypond[line-width=3\cm,noragged-right, notime]
137 Major triad, minor seventh
141 @lilypond[line-width=3\cm,noragged-right, notime]
150 Major triad, major seventh
152 @code{maj7} or @code{maj}
154 @lilypond[line-width=3\cm,noragged-right, notime]
163 Minor triad, minor seventh
167 @lilypond[line-width=3\cm,noragged-right, notime]
176 Diminished triad, diminished seventh
180 @lilypond[line-width=3\cm,noragged-right, notime]
189 Augmented triad, minor seventh
193 @lilypond[line-width=3\cm,noragged-right, notime]
200 Half-diminished seventh
202 Diminished triad, minor seventh
206 @lilypond[line-width=3\cm,noragged-right, notime]
215 Minor triad, major seventh
219 @lilypond[line-width=3\cm,noragged-right, notime]
232 @lilypond[line-width=3\cm,noragged-right, notime]
245 @lilypond[line-width=3\cm,noragged-right, notime]
254 Dominant seventh, major ninth
258 @lilypond[line-width=3\cm,noragged-right, notime]
267 Major seventh, major ninth
271 @lilypond[line-width=3\cm,noragged-right, notime]
280 Minor seventh, major ninth
284 @lilypond[line-width=3\cm,noragged-right, notime]
293 Dominant ninth, perfect eleventh
297 @lilypond[line-width=3\cm,noragged-right, notime]
306 Major ninth, perfect eleventh
310 @lilypond[line-width=3\cm,noragged-right, notime]
319 Minor ninth, perfect eleventh
323 @lilypond[line-width=3\cm,noragged-right, notime]
332 Dominant ninth, major thirteenth
336 @lilypond[line-width=3\cm,noragged-right, notime]
345 Dominant eleventh, major thirteenth
349 @lilypond[line-width=3\cm,noragged-right, notime]
358 Major eleventh, major thirteenth
362 @lilypond[line-width=3\cm,noragged-right, notime]
371 Minor eleventh, major thirteenth
375 @lilypond[line-width=3\cm,noragged-right, notime]
384 Major second, perfect fifth
388 @lilypond[line-width=3\cm,noragged-right, notime]
397 Perfect fourth, perfect fifth
401 @lilypond[line-width=3\cm,noragged-right, notime]
410 @node Predefined fretboard diagrams
411 @appendixsec Predefined fretboard diagrams
413 The chart below shows the predefined fretboard diagrams for guitar.
415 @lilypondfile{display-predefined-fretboards.ly}
417 The chart below shows the predefined fretboard diagrams for ukulele.
419 @lilypondfile{display-predefined-ukulele-fretboards.ly}
421 @node MIDI instruments
422 @appendixsec MIDI instruments
424 The following is a list of names that can be used for the
425 @code{midiInstrument} property. The order of the instruments
426 below, starting in the left-hand column moving down, corresponds
427 to the General MIDI Standard's 128 Program Numbers.
430 acoustic grand contrabass lead 7 (fifths)
431 bright acoustic tremolo strings lead 8 (bass+lead)
432 electric grand pizzicato strings pad 1 (new age)
433 honky-tonk orchestral harp pad 2 (warm)
434 electric piano 1 timpani pad 3 (polysynth)
435 electric piano 2 string ensemble 1 pad 4 (choir)
436 harpsichord string ensemble 2 pad 5 (bowed)
437 clav synthstrings 1 pad 6 (metallic)
438 celesta synthstrings 2 pad 7 (halo)
439 glockenspiel choir aahs pad 8 (sweep)
440 music box voice oohs fx 1 (rain)
441 vibraphone synth voice fx 2 (soundtrack)
442 marimba orchestra hit fx 3 (crystal)
443 xylophone trumpet fx 4 (atmosphere)
444 tubular bells trombone fx 5 (brightness)
445 dulcimer tuba fx 6 (goblins)
446 drawbar organ muted trumpet fx 7 (echoes)
447 percussive organ french horn fx 8 (sci-fi)
448 rock organ brass section sitar
449 church organ synthbrass 1 banjo
450 reed organ synthbrass 2 shamisen
451 accordion soprano sax koto
452 harmonica alto sax kalimba
453 concertina tenor sax bagpipe
454 acoustic guitar (nylon) baritone sax fiddle
455 acoustic guitar (steel) oboe shanai
456 electric guitar (jazz) english horn tinkle bell
457 electric guitar (clean) bassoon agogo
458 electric guitar (muted) clarinet steel drums
459 overdriven guitar piccolo woodblock
460 distorted guitar flute taiko drum
461 guitar harmonics recorder melodic tom
462 acoustic bass pan flute synth drum
463 electric bass (finger) blown bottle reverse cymbal
464 electric bass (pick) shakuhachi guitar fret noise
465 fretless bass whistle breath noise
466 slap bass 1 ocarina seashore
467 slap bass 2 lead 1 (square) bird tweet
468 synth bass 1 lead 2 (sawtooth) telephone ring
469 synth bass 2 lead 3 (calliope) helicopter
470 violin lead 4 (chiff) applause
471 viola lead 5 (charang) gunshot
477 @appendixsec List of colors
479 @subsubheading Normal colors
481 Usage syntax is detailed in @ref{Coloring objects}.
483 @cindex List of colors
484 @cindex Colors, list of
487 black white red green
488 blue cyan magenta yellow
489 grey darkred darkgreen darkblue
490 darkcyan darkmagenta darkyellow
494 @subsubheading X color names
496 X color names come several variants:
498 Any name that is spelled as a single word with capitalization
499 (e.g. @q{LightSlateBlue}) can also be spelled as space separated
500 words without capitalization (e.g. @q{light slate blue}).
502 The word @q{grey} can always be spelled @q{gray} (e.g. @q{DarkSlateGray}).
504 Some names can take a numerical suffix (e.g. @q{LightSalmon4}).
507 @subsubheading Color Names without a numerical suffix:
510 snow GhostWhite WhiteSmoke gainsboro FloralWhite
511 OldLace linen AntiqueWhite PapayaWhip BlanchedAlmond
512 bisque PeachPuff NavajoWhite moccasin cornsilk
513 ivory LemonChiffon seashell honeydew MintCream
514 azure AliceBlue lavender LavenderBlush MistyRose
515 white black DarkSlateGrey DimGrey SlateGrey
516 LightSlateGrey grey LightGrey MidnightBlue navy
517 NavyBlue CornflowerBlue DarkSlateBlue SlateBlue MediumSlateBlue
518 LightSlateBlue MediumBlue RoyalBlue blue DodgerBlue
519 DeepSkyBlue SkyBlue LightSkyBlue SteelBlue LightSteelBlue
520 LightBlue PowderBlue PaleTurquoise DarkTurquoise MediumTurquoise
521 turquoise cyan LightCyan CadetBlue MediumAquamarine
522 aquamarine DarkGreen DarkOliveGreen DarkSeaGreen SeaGreen
523 MediumSeaGreen LightSeaGreen PaleGreen SpringGreen LawnGreen
524 green chartreuse MediumSpringGreen GreenYellow LimeGreen
525 YellowGreen ForestGreen OliveDrab DarkKhaki khaki
526 PaleGoldenrod LightGoldenrodYellow LightYellow yellow gold
527 LightGoldenrod goldenrod DarkGoldenrod RosyBrown IndianRed
528 SaddleBrown sienna peru burlywood beige
529 wheat SandyBrown tan chocolate firebrick
530 brown DarkSalmon salmon LightSalmon orange
531 DarkOrange coral LightCoral tomato OrangeRed
532 red HotPink DeepPink pink LightPink
533 PaleVioletRed maroon MediumVioletRed VioletRed magenta
534 violet plum orchid MediumOrchid DarkOrchid
535 DarkViolet BlueViolet purple MediumPurple thistle
536 DarkGrey DarkBlue DarkCyan DarkMagenta DarkRed
541 @subsubheading Color names with a numerical suffix
543 In the following names the suffix N can be a number in the range 1-4:
546 snowN seashellN AntiqueWhiteN bisqueN PeachPuffN
547 NavajoWhiteN LemonChiffonN cornsilkN ivoryN honeydewN
548 LavenderBlushN MistyRoseN azureN SlateBlueN RoyalBlueN
549 blueN DodgerBlueN SteelBlueN DeepSkyBlueN SkyBlueN
550 LightSkyBlueN LightSteelBlueN LightBlueN LightCyanN PaleTurquoiseN
551 CadetBlueN turquoiseN cyanN aquamarineN DarkSeaGreenN
552 SeaGreenN PaleGreenN SpringGreenN greenN chartreuseN
553 OliveDrabN DarkOliveGreenN khakiN LightGoldenrodN LightYellowN
554 yellowN goldN goldenrodN DarkGoldenrodN RosyBrownN
555 IndianRedN siennaN burlywoodN wheatN tanN
556 chocolateN firebrickN brownN salmonN LightSalmonN
557 orangeN DarkOrangeN coralN tomatoN OrangeRedN
558 redN DeepPinkN HotPinkN pinkN LightPinkN
559 PaleVioletRedN maroonN VioletRedN magentaN orchidN
560 plumN MediumOrchidN DarkOrchidN purpleN MediumPurpleN
565 @subsubheading Grey Scale
567 A grey scale can be obtained using:
574 Where N is in the range 0-100.
578 @appendixsec The Feta font
583 The following symbols are available in the Emmentaler font and may be
584 accessed directly using text markup with the name of the glyph
585 as shown in the tables below,
586 such as @code{g^\markup @{\musicglyph #"scripts.segno" @}} or
587 @code{\markup @{\musicglyph #"five"@}}. For more information,
588 see @ref{Formatting text}.
593 * Time Signature glyphs::
595 * Accidental glyphs::
596 * Default Notehead glyphs::
597 * Special Notehead glyphs::
598 * Shape-note Notehead glyphs::
605 * Bracket-tip glyphs::
612 * Neomensural glyphs::
619 @unnumberedsubsec Clef glyphs
622 \include "font-table.ly"
623 \markuplines \override-lines #'(word-space . 4)
628 @node Time Signature glyphs
629 @unnumberedsubsec Time Signature glyphs
632 \include "font-table.ly"
633 \markuplines \override-lines #'(word-space . 4)
639 @unnumberedsubsec Number glyphs
642 \include "font-table.ly"
643 \markuplines \override-lines #'(word-space . 4)
648 @node Accidental glyphs
649 @unnumberedsubsec Accidental glyphs
652 \include "font-table.ly"
653 \markuplines \override-lines #'(word-space . 4)
654 \doc-chars #accidentals
658 @node Default Notehead glyphs
659 @unnumberedsubsec Default Notehead glyphs
662 \include "font-table.ly"
663 \markuplines \override-lines #'(word-space . 4)
664 \doc-chars #default-noteheads
668 @node Special Notehead glyphs
669 @unnumberedsubsec Special Notehead glyphs
672 \include "font-table.ly"
673 \markuplines \override-lines #'(word-space . 4)
674 \doc-chars #special-noteheads
678 @node Shape-note Notehead glyphs
679 @unnumberedsubsec Shape-note Notehead glyphs
682 \include "font-table.ly"
683 \markuplines \override-lines #'(word-space . 4)
684 \doc-chars #shape-note-noteheads
689 @unnumberedsubsec Rest glyphs
692 \include "font-table.ly"
693 \markuplines \override-lines #'(word-space . 4)
699 @unnumberedsubsec Flag glyphs
702 \include "font-table.ly"
703 \markuplines \override-lines #'(word-space . 4)
709 @unnumberedsubsec Dot glyphs
712 \include "font-table.ly"
713 \markuplines \override-lines #'(word-space . 4)
719 @unnumberedsubsec Dynamic glyphs
722 \include "font-table.ly"
723 \markuplines \override-lines #'(word-space . 4)
729 @unnumberedsubsec Script glyphs
732 \include "font-table.ly"
733 \markuplines \override-lines #'(word-space . 4)
738 @node Arrowhead glyphs
739 @unnumberedsubsec Arrowhead glyphs
742 \include "font-table.ly"
743 \markuplines \override-lines #'(word-space . 4)
744 \doc-chars #arrowheads
748 @node Bracket-tip glyphs
749 @unnumberedsubsec Bracket-tip glyphs
752 \include "font-table.ly"
753 \markuplines \override-lines #'(word-space . 4)
754 \doc-chars #brackettips
759 @unnumberedsubsec Pedal glyphs
762 \include "font-table.ly"
763 \markuplines \override-lines #'(word-space . 4)
768 @node Accordion glyphs
769 @unnumberedsubsec Accordion glyphs
772 \include "font-table.ly"
773 \markuplines \override-lines #'(word-space . 4)
774 \doc-chars #accordion
778 @node Vaticana glyphs
779 @unnumberedsubsec Vaticana glyphs
782 \include "font-table.ly"
783 \markuplines \override-lines #'(word-space . 4)
788 @node Medicaea glyphs
789 @unnumberedsubsec Medicaea glyphs
792 \include "font-table.ly"
793 \markuplines \override-lines #'(word-space . 4)
798 @node Hufnagel glyphs
799 @unnumberedsubsec Hufnagel glyphs
802 \include "font-table.ly"
803 \markuplines \override-lines #'(word-space . 4)
808 @node Mensural glyphs
809 @unnumberedsubsec Mensural glyphs
812 \include "font-table.ly"
813 \markuplines \override-lines #'(word-space . 4)
818 @node Neomensural glyphs
819 @unnumberedsubsec Neomensural glyphs
822 \include "font-table.ly"
823 \markuplines \override-lines #'(word-space . 4)
824 \doc-chars #neomensural
828 @node Petrucci glyphs
829 @unnumberedsubsec Petrucci glyphs
832 \include "font-table.ly"
833 \markuplines \override-lines #'(word-space . 4)
838 @node Solesmes glyphs
839 @unnumberedsubsec Solesmes glyphs
842 \include "font-table.ly"
843 \markuplines \override-lines #'(word-space . 4)
848 @node Note head styles
849 @appendixsec Note head styles
851 @cindex note head styles
852 The following styles may be used for note heads.
854 @lilypondfile[noindent]{note-head-style.ly}
856 @include markup-commands.tely
858 @include markup-list-commands.tely
860 @node List of articulations
861 @appendixsec List of articulations
895 @cindex signumcongruentiae
896 @cindex snappizzicato
897 @cindex staccatissimo
908 @cindex verylongfermata
910 The following scripts are available in the Feta font and may be
911 attached to notes (eg. @samp{c\accent}).
913 @c Articulations and ornamentations
914 @c Fingering instructions (for "thumb")
915 @c Common notation for unfretted strings
916 @c Bowing indications
918 @c Snap (Bartók) pizzicato
919 @c Custom percussion staves (for "halfopen" -- not yet funindexed)
920 @c References for wind instruments (for "open"/"stopped" -- not yet funindexed)
924 * Articulation scripts::
927 * Instrument-specific scripts::
928 * Repeat sign scripts::
933 @node Articulation scripts
934 @unnumberedsubsec Articulation scripts
937 \include "script-chart.ly"
938 \new RhythmicStaff { \scriptStaff #articulations }
941 @node Ornament scripts
942 @unnumberedsubsec Ornament scripts
945 \include "script-chart.ly"
946 \new RhythmicStaff { \scriptStaff #ornaments }
949 @node Fermata scripts
950 @unnumberedsubsec Fermata scripts
953 \include "script-chart.ly"
954 \new RhythmicStaff { \scriptStaff #fermatas }
957 @node Instrument-specific scripts
958 @unnumberedsubsec Instrument-specific scripts
961 \include "script-chart.ly"
962 \new RhythmicStaff { \scriptStaff #instrument-specific }
965 @node Repeat sign scripts
966 @unnumberedsubsec Repeat sign scripts
969 \include "script-chart.ly"
970 \new RhythmicStaff { \scriptStaff #repeats }
973 @node Ancient scripts
974 @unnumberedsubsec Ancient scripts
977 \include "script-chart.ly"
978 \include "gregorian.ly"
979 \new VaticanaStaff { \scriptStaffAncient #ancient }
983 @node Percussion notes
984 @appendixsec Percussion notes
986 @lilypondfile[quote]{percussion-chart.ly}
989 @node Technical glossary
990 @appendixsec Technical glossary
992 A glossary of the technical terms and concepts used internally in
993 LilyPond. These terms may appear in the manuals, on mailing lists
994 or in the source code.
1016 @unnumberedsubsec alist
1019 @cindex association list
1021 An association list or @strong{alist} for short is a Scheme pair
1022 which associates a value with a key: @w{@code{(key . value)}}. For
1023 example, in @file{scm/lily.scm}, the alist
1024 @w{@qq{type-p-name-alist}} associates certain type predicates
1025 (e.g.@tie{}@code{ly:music?}) with names (e.g.@tie{}@qq{music}) so
1026 that type-check failures can be reported with a console message that
1027 includes the name of the expected type predicate.
1030 @unnumberedsubsec callback
1034 A @strong{callback} is a routine, function or method whose reference is
1035 passed as an argument in a call to another routine, so allowing
1036 the called routine to invoke it. The technique enables a lower-
1037 level software layer to call a function defined in a higher
1038 layer. Callbacks are used extensively in LilyPond to permit
1039 user-level Scheme code to define how many low-level actions are
1044 @unnumberedsubsec closure
1047 @cindex simple closure
1049 In Scheme, a @strong{closure} is created when a function, usually
1050 a lambda expression, is passed as a variable. The closure contains
1051 the function's code plus references to the lexical bindings of the
1052 function's free variables (i.e. those variables used in the
1053 expression but defined outside it). When this function is applied
1054 to different arguments later, the free variable bindings that were
1055 captured in the closure are used to obtain the values of the free
1056 variables to be used in the calculation. One useful property of
1057 closures is the retention of internal variable values between
1058 invocations, so permitting state to be maintained.
1060 A @strong{simple closure} is a closure whose expression has no free
1061 variables and hence no free variable bindings.
1063 A simple closure is represented in LilyPond by a smob containing
1064 the expression and a method to apply the expression to a passed
1069 @unnumberedsubsec glyph
1075 A @strong{glyph} is a particular graphical representation of a typographic
1076 character, or a combination of two characters formating a ligature.
1077 A set of glyphs with a single style and shape comprise a font, and
1078 a set of fonts covering several styles and sizes comprise a typeface.
1084 @ref{Text encoding}.
1088 @unnumberedsubsec grob
1091 @cindex layout objects
1092 @cindex graphical objects
1094 LilyPond objects which represent items of notation in the printed
1095 output such as note heads, stems, slurs, ties, fingering, clefs,
1096 etc are called @q{Layout objects}, often known as @q{GRaphical
1097 OBjects}, or @strong{grobs} for short. They are represented by
1098 instances of the @code{Grob} class.
1102 @rlearning{Objects and interfaces},
1103 @rlearning{Naming conventions of objects and properties},
1104 @rlearning{Properties of layout objects}.
1106 Internals Reference:
1107 @rinternals{grob-interface},
1108 @rinternals{All layout objects}.
1112 @unnumberedsubsec immutable
1114 @cindex immutable objects
1115 @cindex immutable properties
1116 @cindex shared properties
1118 An @strong{immutable} object is one whose state cannot be modified
1119 after creation, in contrast to a mutable object, which can be
1120 modified after creation.
1122 In LilyPond, immutable or shared properties define the default
1123 style and behavior of grobs. They are shared between many objects.
1124 In apparent contradiction to the name, they can be changed using
1125 @code{\override} and @code{\revert}.
1132 @unnumberedsubsec interface
1135 @cindex grob-interface
1136 @cindex graphical object interfaces
1138 Actions and properties which are common to a number of grobs are
1139 grouped together in an object called a @code{grob-interface}, or
1140 just @q{interface} for short.
1144 @rlearning{Objects and interfaces},
1145 @rlearning{Naming conventions of objects and properties},
1146 @rlearning{Properties found in interfaces}.
1149 @ref{Layout interfaces}.
1151 Internals Reference:
1152 @rinternals{Graphical Object Interfaces}.
1156 @unnumberedsubsec lexer
1161 A @strong{lexer} is a program which converts a sequence of
1162 characters into a sequence of tokens, a process called lexical
1163 analysis. The LilyPond lexer converts the stream obtained from an
1164 input @file{.ly} file into a tokenized stream more suited to the
1165 next stage of processing - parsing, for which see @ref{parser}.
1166 The LilyPond lexer is built with Flex from the lexer file
1167 @file{lily/lexer.ll} which contains the lexical rules. This file
1168 is part of the source code and is not included in the LilyPond
1169 binary installation.
1173 @unnumberedsubsec mutable
1175 @cindex mutable objects
1176 @cindex mutable properties
1178 A @strong{mutable} object is one whose state can be modified after
1179 creation, in contrast to an immutable object, whose state is fixed
1180 at the time of creation.
1182 In LilyPond, mutable properties contain values that are specific to
1183 one grob. Typically, lists of other objects or results from
1184 computations are stored in mutable properties.
1191 @unnumberedsubsec output-def
1195 An instance of the @code{Output-def} class contains the methods and
1196 data structures associated with an output block. Instances are
1197 created for midi, layout and paper blocks.
1201 @unnumberedsubsec parser
1205 @cindex grammar for LilyPond
1208 A @strong{parser} analyzes the sequence of tokens produced by a
1209 lexer to determine its grammatical structure, grouping the tokens
1210 progressively into larger groupings according to the rules of the
1211 grammar. If the sequence of tokens is valid the end product is a
1212 tree of tokens whose root is the grammar's start symbol. If this
1213 cannot be achieved the file is invalid and an appropriate error
1214 message is produced. The syntactic groupings and the rules for
1215 constructing the groupings from their parts for the LilyPond syntax
1216 are defined in @file{lily/parser.yy} and shown in Backus Normal Form
1217 (BNF) in @ref{LilyPond grammar}. This file is used to build the
1218 parser during the program build by the parser generator, Bison. It
1219 is part of the source code and is not included in the LilyPond
1220 binary installation.
1223 @node parser variable
1224 @unnumberedsubsec parser variable
1226 @cindex parser variable
1227 @cindex Scheme variable
1228 @cindex global variable
1229 @cindex afterGraceFraction
1232 @cindex output-count
1233 @cindex output-suffix
1234 @cindex parseStringResult
1235 @cindex partCombineListener
1237 @cindex toplevel-bookparts
1238 @cindex toplevel-scores
1239 @cindex showLastLength
1240 @cindex showFirstLength
1242 These are variables defined directly in Scheme. Their direct
1243 use by users is strongly discouraged, because their scoping
1244 semantics can be confusing.
1246 When the value of such a variable is changed in a @code{.ly} file,
1247 the change is global, and unless explicitly reverted, the new value
1248 will persist to the end of the file, affecting subsequent
1249 @code{\score} blocks as well as external files added with the
1250 @code{\include} command. This can lead to unintended consequences
1251 and in complex typesetting projects the consequent errors can be
1252 difficult to track down.
1254 LilyPond uses the following parser variables:
1257 @item afterGraceFraction
1262 @item parseStringResult
1263 @item partCombineListener
1265 @item toplevel-bookparts
1266 @item toplevel-scores
1267 @item showLastLength
1268 @item showFirstLength
1273 @unnumberedsubsec prob
1276 @cindex property object
1278 PRoperty OBjects, or @strong{probs} for short, are instances of
1279 the @code{Prob} class, a simple base class for objects which have
1280 mutable and immutable property alists and the methods to manipulate
1281 them. The @code{Music} and @code{Stream_event} classes derive from
1282 @code{Prob}. Instances of the @code{Prob} class are also created
1283 to hold the formatted content of system grobs and titling blocks
1287 @node simple closure
1288 @unnumberedsubsec simple closure
1294 @unnumberedsubsec smob
1297 @cindex Scheme object
1299 @strong{Smobs}, or ScheMe OBjects, are part of the mechanism used
1300 by Guile to export C and C++ objects to Scheme code. In LilyPond,
1301 smobs are created from C++ objects through macros. There are two
1302 types of smob objects: simple smobs, intended for simple immutable
1303 objects like numbers, and complex smobs, used for objects with
1304 identities. If you have access to the LilyPond sources, more
1305 information can be found in @file{lily/includes/smob.hh}.
1308 @unnumberedsubsec stencil
1312 An instance of the @strong{stencil} class holds the information
1313 required to print a typographical object. It is a simple smob
1314 containing a confining box, which defines the vertical and
1315 horizontal extents of the object, and a Scheme expression which
1316 will print the object when evaluated. Stencils may be combined
1317 to form more complex stencils defined by a tree of Scheme
1318 expressions formed from the Scheme expressions of the component
1321 The @code{stencil} property, which connects a grob to its stencil,
1322 is defined in the @code{grob-interface} interface.
1325 Internals Reference:
1326 @rinternals{grob-interface}.
1329 @node All context properties
1330 @appendixsec All context properties
1332 @include context-properties.tely
1335 @node Layout properties
1336 @appendixsec Layout properties
1338 @include layout-properties.tely
1341 @node Available music functions
1342 @appendixsec Available music functions
1344 @include identifiers.tely
1347 @node Predefined type predicates
1348 @appendixsec Predefined type predicates
1350 @include type-predicates.tely
1353 @node Scheme functions
1354 @appendixsec Scheme functions
1356 @include scheme-functions.tely