]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/notation/notation-appendices.itely
452cd7708baafe49c56461ae2c22c08442fcbe06
[lilypond.git] / Documentation / notation / notation-appendices.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2
3 @ignore
4     Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
5
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..
9 @end ignore
10
11 @c \version "2.12.0"
12
13 @node Notation manual tables
14 @appendix Notation manual tables
15
16 @c Please do not delete the following @ignore block.
17 @ignore
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
22 menu entries are:
23
24 * Text markup commands::
25 * Text markup list commands::
26
27 and they should go just after
28 * Note head styles::
29
30 and just before
31 * List of articulations::
32 @end ignore
33
34 @menu
35 * Chord name chart::
36 * Common chord modifiers::
37 * Predefined fretboard diagrams::
38 * MIDI instruments::
39 * List of colors::
40 * The Feta font::
41 * Note head styles::
42 * Text markup commands::
43 * Text markup list commands::
44 * List of articulations::
45 * Percussion notes::
46 * Technical glossary::
47 * All context properties::
48 * Layout properties::
49 * Available music functions::
50 * Scheme functions::
51 @end menu
52
53
54
55 @node Chord name chart
56 @appendixsec Chord name chart
57
58 The following charts shows two standard systems for printing chord
59 names, along with the pitches they represent.
60
61 @lilypondfile{chord-names-jazz.ly}
62
63 @node Common chord modifiers
64 @appendixsec Common chord modifiers
65
66 The following table shows chord modifiers that can be used in
67 @code{\chordmode} to generate standard chord structures.
68
69 @multitable @columnfractions .2 .3 .2 .2
70
71 @item
72 @b{Chord type}
73 @tab
74 @b{Intervals}
75 @tab
76 @b{Modifier(s)}
77 @tab
78 @b{Example}
79
80
81 @item
82 Major
83 @tab
84 Major third, perfect fifth
85 @tab
86 @code{5} or nothing
87 @tab
88 @lilypond[line-width=3\cm,noragged-right, notime]
89 \chordmode {
90   c1:5
91 }
92 @end lilypond
93
94 @item
95 Minor
96 @tab
97 Minor third, perfect fifth
98 @tab
99 @code{m} or @code{m5}
100 @tab
101 @lilypond[line-width=3\cm,noragged-right, notime]
102 \chordmode {
103   c1:m
104 }
105 @end lilypond
106
107 @item
108 Augmented
109 @tab
110 Major third, augmented fifth
111 @tab
112 @code{aug}
113 @tab
114 @lilypond[line-width=3\cm,noragged-right, notime]
115 \chordmode {
116   c1:aug
117 }
118 @end lilypond
119
120 @item
121 Diminished
122 @tab
123 Minor third, diminished fifth
124 @tab
125 @code{dim}
126 @tab
127 @lilypond[line-width=3\cm,noragged-right, notime]
128 \chordmode {
129   c1:dim
130 }
131 @end lilypond
132
133 @item
134 Dominant seventh
135 @tab
136 Major triad, minor seventh
137 @tab
138 @code{7}
139 @tab
140 @lilypond[line-width=3\cm,noragged-right, notime]
141 \chordmode {
142   c1:7
143 }
144 @end lilypond
145
146 @item
147 Major seventh
148 @tab
149 Major triad, major seventh
150 @tab
151 @code{maj7} or @code{maj}
152 @tab
153 @lilypond[line-width=3\cm,noragged-right, notime]
154 \chordmode {
155   c1:maj7
156 }
157 @end lilypond
158
159 @item
160 Minor seventh
161 @tab
162 Minor triad, minor seventh
163 @tab
164 @code{m7}
165 @tab
166 @lilypond[line-width=3\cm,noragged-right, notime]
167 \chordmode {
168   c1:m7
169 }
170 @end lilypond
171
172 @item
173 Diminished seventh
174 @tab
175 Diminished triad, diminished seventh
176 @tab
177 @code{dim7}
178 @tab
179 @lilypond[line-width=3\cm,noragged-right, notime]
180 \chordmode {
181   c1:dim7
182 }
183 @end lilypond
184
185 @item
186 Augmented seventh
187 @tab
188 Augmented triad, minor seventh
189 @tab
190 @code{aug7}
191 @tab
192 @lilypond[line-width=3\cm,noragged-right, notime]
193 \chordmode {
194   c1:aug7
195 }
196 @end lilypond
197
198 @item
199 Half-diminished seventh
200 @tab
201 Diminished triad, minor seventh
202 @tab
203 @code{m7.5-}
204 @tab
205 @lilypond[line-width=3\cm,noragged-right, notime]
206 \chordmode {
207   c1:m7.5-
208 }
209 @end lilypond
210
211 @item
212 Minor-major seventh
213 @tab
214 Minor triad, major seventh
215 @tab
216 @code{maj7.3-}
217 @tab
218 @lilypond[line-width=3\cm,noragged-right, notime]
219 \chordmode {
220   c1:maj7.3-
221 }
222 @end lilypond
223
224 @item
225 Major sixth
226 @tab
227 Major triad, sixth
228 @tab
229 @code{6}
230 @tab
231 @lilypond[line-width=3\cm,noragged-right, notime]
232 \chordmode {
233   c1:6
234 }
235 @end lilypond
236
237 @item
238 Minor sixth
239 @tab
240 Minor triad, sixth
241 @tab
242 @code{m6}
243 @tab
244 @lilypond[line-width=3\cm,noragged-right, notime]
245 \chordmode {
246   c1:m6
247 }
248 @end lilypond
249
250 @item
251 Dominant ninth
252 @tab
253 Dominant seventh, major ninth
254 @tab
255 @code{9}
256 @tab
257 @lilypond[line-width=3\cm,noragged-right, notime]
258 \chordmode {
259   c1:9
260 }
261 @end lilypond
262
263 @item
264 Major ninth
265 @tab
266 Major seventh, major ninth
267 @tab
268 @code{maj9}
269 @tab
270 @lilypond[line-width=3\cm,noragged-right, notime]
271 \chordmode {
272   c1:maj9
273 }
274 @end lilypond
275
276 @item
277 Minor ninth
278 @tab
279 Minor seventh, major ninth
280 @tab
281 @code{m9}
282 @tab
283 @lilypond[line-width=3\cm,noragged-right, notime]
284 \chordmode {
285   c1:m9
286 }
287 @end lilypond
288
289 @item
290 Dominant eleventh
291 @tab
292 Dominant ninth, perfect eleventh
293 @tab
294 @code{11}
295 @tab
296 @lilypond[line-width=3\cm,noragged-right, notime]
297 \chordmode {
298   c1:11
299 }
300 @end lilypond
301
302 @item
303 Major eleventh
304 @tab
305 Major ninth, perfect eleventh
306 @tab
307 @code{maj11}
308 @tab
309 @lilypond[line-width=3\cm,noragged-right, notime]
310 \chordmode {
311   c1:maj11
312 }
313 @end lilypond
314
315 @item
316 Minor eleventh
317 @tab
318 Minor ninth, perfect eleventh
319 @tab
320 @code{m11}
321 @tab
322 @lilypond[line-width=3\cm,noragged-right, notime]
323 \chordmode {
324   c1:m11
325 }
326 @end lilypond
327
328 @item
329 Dominant thirteenth
330 @tab
331 Dominant ninth, major thirteenth
332 @tab
333 @code{13}
334 @tab
335 @lilypond[line-width=3\cm,noragged-right, notime]
336 \chordmode {
337   c1:13
338 }
339 @end lilypond
340
341 @item
342 Dominant thirteenth
343 @tab
344 Dominant eleventh, major thirteenth
345 @tab
346 @code{13.11}
347 @tab
348 @lilypond[line-width=3\cm,noragged-right, notime]
349 \chordmode {
350   c1:13.11
351 }
352 @end lilypond
353
354 @item
355 Major thirteenth
356 @tab
357 Major eleventh, major thirteenth
358 @tab
359 @code{maj13.11}
360 @tab
361 @lilypond[line-width=3\cm,noragged-right, notime]
362 \chordmode {
363   c1:maj13.11
364 }
365 @end lilypond
366
367 @item
368 Minor thirteenth
369 @tab
370 Minor eleventh, major thirteenth
371 @tab
372 @code{m13.11}
373 @tab
374 @lilypond[line-width=3\cm,noragged-right, notime]
375 \chordmode {
376   c1:m13.11
377 }
378 @end lilypond
379
380 @item
381 Suspended second
382 @tab
383 Major second, perfect fifth
384 @tab
385 @code{sus2}
386 @tab
387 @lilypond[line-width=3\cm,noragged-right, notime]
388 \chordmode {
389   c1:sus2
390 }
391 @end lilypond
392
393 @item
394 Suspended fourth
395 @tab
396 Perfect fourth, perfect fifth
397 @tab
398 @code{sus4}
399 @tab
400 @lilypond[line-width=3\cm,noragged-right, notime]
401 \chordmode {
402   c1:sus4
403 }
404 @end lilypond
405
406
407 @end multitable
408
409 @node Predefined fretboard diagrams
410 @appendixsec Predefined fretboard diagrams
411
412 The chart below shows the predefined fretboard diagrams for guitar.
413
414 @lilypondfile{display-predefined-fretboards.ly}
415
416 The chart below shows the predefined fretboard diagrams for ukulele.
417
418 @lilypondfile{display-predefined-ukulele-fretboards.ly}
419
420 @node MIDI instruments
421 @appendixsec MIDI instruments
422
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.
427
428 @example
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
471 cello                     lead 6 (voice)
472 @end example
473
474
475 @node List of colors
476 @appendixsec List of colors
477
478 @subsubheading Normal colors
479
480 Usage syntax is detailed in @ref{Coloring objects}.
481
482 @cindex List of colors
483 @cindex Colors, list of
484
485 @verbatim
486 black       white          red         green
487 blue        cyan           magenta     yellow
488 grey        darkred        darkgreen   darkblue
489 darkcyan    darkmagenta    darkyellow
490 @end verbatim
491
492
493 @subsubheading X color names
494
495 X color names come several variants:
496
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}).
500
501 The word @q{grey} can always be spelled @q{gray} (e.g. @q{DarkSlateGray}).
502
503 Some names can take a numerical suffix (e.g. @q{LightSalmon4}).
504
505
506 @subsubheading Color Names without a numerical suffix:
507
508 @verbatim
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
536 LightGreen
537 @end verbatim
538
539
540 @subsubheading Color names with a numerical suffix
541
542 In the following names the suffix N can be a number in the range 1-4:
543
544 @verbatim
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
560 thistleN
561 @end verbatim
562
563
564 @subsubheading Grey Scale
565
566 A grey scale can be obtained using:
567
568 @example
569 greyN
570 @end example
571
572 @noindent
573 Where N is in the range 0-100.
574
575
576 @node The Feta font
577 @appendixsec The Feta font
578
579 @cindex Feta font
580 @cindex Font, Feta
581
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}.
588
589
590 @menu
591 * Clef glyphs::
592 * Time Signature glyphs::
593 * Number glyphs::
594 * Accidental glyphs::
595 * Default Notehead glyphs::
596 * Special Notehead glyphs::
597 * Shape-note Notehead glyphs::
598 * Rest glyphs::
599 * Flag glyphs::
600 * Dot glyphs::
601 * Dynamic glyphs::
602 * Script glyphs::
603 * Arrowhead glyphs::
604 * Bracket-tip glyphs::
605 * Pedal glyphs::
606 * Accordion glyphs::
607 * Vaticana glyphs::
608 * Medicaea glyphs::
609 * Hufnagel glyphs::
610 * Mensural glyphs::
611 * Neomensural glyphs::
612 * Petrucci glyphs::
613 * Solesmes glyphs::
614 @end menu
615
616
617 @node Clef glyphs
618 @unnumberedsubsec Clef glyphs
619
620 @lilypond[quote]
621 \include "font-table.ly"
622 \markuplines \override-lines #'(word-space . 4)
623              \doc-chars #clefs
624 @end lilypond
625
626
627 @node Time Signature glyphs
628 @unnumberedsubsec Time Signature glyphs
629
630 @lilypond[quote]
631 \include "font-table.ly"
632 \markuplines \override-lines #'(word-space . 4)
633              \doc-chars #timesig
634 @end lilypond
635
636
637 @node Number glyphs
638 @unnumberedsubsec Number glyphs
639
640 @lilypond[quote]
641 \include "font-table.ly"
642 \markuplines \override-lines #'(word-space . 4)
643              \doc-chars #numbers
644 @end lilypond
645
646
647 @node Accidental glyphs
648 @unnumberedsubsec Accidental glyphs
649
650 @lilypond[quote]
651 \include "font-table.ly"
652 \markuplines \override-lines #'(word-space . 4)
653              \doc-chars #accidentals
654 @end lilypond
655
656
657 @node Default Notehead glyphs
658 @unnumberedsubsec Default Notehead glyphs
659
660 @lilypond[quote]
661 \include "font-table.ly"
662 \markuplines \override-lines #'(word-space . 4)
663              \doc-chars #default-noteheads
664 @end lilypond
665
666
667 @node Special Notehead glyphs
668 @unnumberedsubsec Special Notehead glyphs
669
670 @lilypond[quote]
671 \include "font-table.ly"
672 \markuplines \override-lines #'(word-space . 4)
673              \doc-chars #special-noteheads
674 @end lilypond
675
676
677 @node Shape-note Notehead glyphs
678 @unnumberedsubsec Shape-note Notehead glyphs
679
680 @lilypond[quote]
681 \include "font-table.ly"
682 \markuplines \override-lines #'(word-space . 4)
683              \doc-chars #shape-note-noteheads
684 @end lilypond
685
686
687 @node Rest glyphs
688 @unnumberedsubsec Rest glyphs
689
690 @lilypond[quote]
691 \include "font-table.ly"
692 \markuplines \override-lines #'(word-space . 4)
693              \doc-chars #rests
694 @end lilypond
695
696
697 @node Flag glyphs
698 @unnumberedsubsec Flag glyphs
699
700 @lilypond[quote]
701 \include "font-table.ly"
702 \markuplines \override-lines #'(word-space . 4)
703              \doc-chars #flags
704 @end lilypond
705
706
707 @node Dot glyphs
708 @unnumberedsubsec Dot glyphs
709
710 @lilypond[quote]
711 \include "font-table.ly"
712 \markuplines \override-lines #'(word-space . 4)
713              \doc-chars #dots
714 @end lilypond
715
716
717 @node Dynamic glyphs
718 @unnumberedsubsec Dynamic glyphs
719
720 @lilypond[quote]
721 \include "font-table.ly"
722 \markuplines \override-lines #'(word-space . 4)
723              \doc-chars #dynamics
724 @end lilypond
725
726
727 @node Script glyphs
728 @unnumberedsubsec Script glyphs
729
730 @lilypond[quote]
731 \include "font-table.ly"
732 \markuplines \override-lines #'(word-space . 4)
733              \doc-chars #scripts
734 @end lilypond
735
736
737 @node Arrowhead glyphs
738 @unnumberedsubsec Arrowhead glyphs
739
740 @lilypond[quote]
741 \include "font-table.ly"
742 \markuplines \override-lines #'(word-space . 4)
743              \doc-chars #arrowheads
744 @end lilypond
745
746
747 @node Bracket-tip glyphs
748 @unnumberedsubsec Bracket-tip glyphs
749
750 @lilypond[quote]
751 \include "font-table.ly"
752 \markuplines \override-lines #'(word-space . 4)
753              \doc-chars #brackettips
754 @end lilypond
755
756
757 @node Pedal glyphs
758 @unnumberedsubsec Pedal glyphs
759
760 @lilypond[quote]
761 \include "font-table.ly"
762 \markuplines \override-lines #'(word-space . 4)
763              \doc-chars #pedal
764 @end lilypond
765
766
767 @node Accordion glyphs
768 @unnumberedsubsec Accordion glyphs
769
770 @lilypond[quote]
771 \include "font-table.ly"
772 \markuplines \override-lines #'(word-space . 4)
773              \doc-chars #accordion
774 @end lilypond
775
776
777 @node Vaticana glyphs
778 @unnumberedsubsec Vaticana glyphs
779
780 @lilypond[quote]
781 \include "font-table.ly"
782 \markuplines \override-lines #'(word-space . 4)
783              \doc-chars #vaticana
784 @end lilypond
785
786
787 @node Medicaea glyphs
788 @unnumberedsubsec Medicaea glyphs
789
790 @lilypond[quote]
791 \include "font-table.ly"
792 \markuplines \override-lines #'(word-space . 4)
793              \doc-chars #medicaea
794 @end lilypond
795
796
797 @node Hufnagel glyphs
798 @unnumberedsubsec Hufnagel glyphs
799
800 @lilypond[quote]
801 \include "font-table.ly"
802 \markuplines \override-lines #'(word-space . 4)
803              \doc-chars #hufnagel
804 @end lilypond
805
806
807 @node Mensural glyphs
808 @unnumberedsubsec Mensural glyphs
809
810 @lilypond[quote]
811 \include "font-table.ly"
812 \markuplines \override-lines #'(word-space . 4)
813              \doc-chars #mensural
814 @end lilypond
815
816
817 @node Neomensural glyphs
818 @unnumberedsubsec Neomensural glyphs
819
820 @lilypond[quote]
821 \include "font-table.ly"
822 \markuplines \override-lines #'(word-space . 4)
823              \doc-chars #neomensural
824 @end lilypond
825
826
827 @node Petrucci glyphs
828 @unnumberedsubsec Petrucci glyphs
829
830 @lilypond[quote]
831 \include "font-table.ly"
832 \markuplines \override-lines #'(word-space . 4)
833              \doc-chars #petrucci
834 @end lilypond
835
836
837 @node Solesmes glyphs
838 @unnumberedsubsec Solesmes glyphs
839
840 @lilypond[quote]
841 \include "font-table.ly"
842 \markuplines \override-lines #'(word-space . 4)
843              \doc-chars #solesmes
844 @end lilypond
845
846
847 @node Note head styles
848 @appendixsec Note head styles
849
850 @cindex note head styles
851 The following styles may be used for note heads.
852
853 @lilypondfile[noindent]{note-head-style.ly}
854
855 @include markup-commands.tely
856
857 @include markup-list-commands.tely
858
859 @node List of articulations
860 @appendixsec List of articulations
861
862 @cindex accent
863 @cindex marcato
864 @cindex staccatissimo
865 @cindex espressivo
866 @cindex fermata
867 @cindex stopped
868 @cindex staccato
869 @cindex portato
870 @cindex tenuto
871 @cindex upbow
872 @cindex downbow
873 @cindex foot marks
874 @cindex organ pedal marks
875 @cindex turn
876 @cindex open
877 @cindex halfopen
878 @cindex stopped
879 @cindex flageolet
880 @cindex reverseturn
881 @cindex trill
882 @cindex prall
883 @cindex mordent
884 @cindex prallprall
885 @cindex prallmordent
886 @cindex prall, up
887 @cindex prall, down
888 @cindex thumb marking
889 @cindex segno
890 @cindex coda
891 @cindex varcoda
892
893
894 @lilypondfile[quote,texidoc]{script-chart.ly}
895
896
897 @node Percussion notes
898 @appendixsec Percussion notes
899
900 @lilypondfile[quote]{percussion-chart.ly}
901
902
903 @node Technical glossary
904 @appendixsec Technical glossary
905
906 A glossary of the technical terms and concepts used internally in
907 LilyPond.  These terms may appear in the manuals, on mailing lists
908 or in the source code.
909
910 @menu
911 * alist::
912 * callback::
913 * closure::
914 * glyph::
915 * grob::
916 * immutable::
917 * interface::
918 * lexer::
919 * mutable::
920 * output-def::
921 * parser::
922 * parser variable::
923 * prob::
924 * simple closure::
925 * smob::
926 * stencil::
927 @end menu
928
929 @node alist
930 @unnumberedsubsec alist
931
932 @cindex alist
933 @cindex association list
934
935 An association list or @strong{alist} for short is a Scheme pair
936 which associates a value with a key: @w{@code{(key . value)}}.  For
937 example, in @file{scm/lily.scm}, the alist
938 @w{@qq{type-p-name-alist}} associates certain type predicates
939 (e.g.@tie{}@code{ly:music?}) with names (e.g.@tie{}@qq{music}) so
940 that type-check failures can be reported with a console message that
941 includes the name of the expected type predicate.
942
943 @node callback
944 @unnumberedsubsec callback
945
946 @cindex callback
947
948 A @strong{callback} is a routine, function or method whose reference is
949 passed as an argument in a call to another routine, so allowing
950 the called routine to invoke it.  The technique enables a lower-
951 level software layer to call a function defined in a higher
952 layer.  Callbacks are used extensively in LilyPond to permit
953 user-level Scheme code to define how many low-level actions are
954 performed.
955
956
957 @node closure
958 @unnumberedsubsec closure
959
960 @cindex closure
961 @cindex simple closure
962
963 In Scheme, a @strong{closure} is created when a function, usually
964 a lambda expression, is passed as a variable.  The closure contains
965 the function's code plus references to the lexical bindings of the
966 function's free variables (i.e. those variables used in the
967 expression but defined outside it).  When this function is applied
968 to different arguments later, the free variable bindings that were
969 captured in the closure are used to obtain the values of the free
970 variables to be used in the calculation.  One useful property of
971 closures is the retention of internal variable values between
972 invocations, so permitting state to be maintained.
973
974 A @strong{simple closure} is a closure whose expression has no free
975 variables and hence no free variable bindings.
976
977 A simple closure is represented in LilyPond by a smob containing
978 the expression and a method to apply the expression to a passed
979 list of arguments.
980
981
982 @node glyph
983 @unnumberedsubsec glyph
984
985 @cindex glyph
986 @cindex font
987 @cindex typeface
988
989 A @strong{glyph} is a particular graphical representation of a typographic
990 character, or a combination of two characters formating a ligature.
991 A set of glyphs with a single style and shape comprise a font, and
992 a set of fonts covering several styles and sizes comprise a typeface.
993
994
995 @seealso
996 Notation Reference:
997 @ref{Fonts},
998 @ref{Text encoding}.
999
1000
1001 @node grob
1002 @unnumberedsubsec grob
1003
1004 @cindex grob
1005 @cindex layout objects
1006 @cindex graphical objects
1007
1008 LilyPond objects which represent items of notation in the printed
1009 output such as note heads, stems, slurs, ties, fingering, clefs,
1010 etc are called @q{Layout objects}, often known as @q{GRaphical
1011 OBjects}, or @strong{grobs} for short.  They are represented by
1012 instances of the @code{Grob} class.
1013
1014 @seealso
1015 Learning Manual:
1016 @rlearning{Objects and interfaces},
1017 @rlearning{Naming conventions of objects and properties},
1018 @rlearning{Properties of layout objects}.
1019
1020 Internals Reference:
1021 @rinternals{grob-interface},
1022 @rinternals{All layout objects}.
1023
1024
1025 @node immutable
1026 @unnumberedsubsec immutable
1027
1028 @cindex immutable objects
1029 @cindex immutable properties
1030 @cindex shared properties
1031
1032 An @strong{immutable} object is one whose state cannot be modified
1033 after creation, in contrast to a mutable object, which can be
1034 modified after creation.
1035
1036 In LilyPond, immutable or shared properties define the default
1037 style and behavior of grobs.  They are shared between many objects.
1038 In apparent contradiction to the name, they can be changed using
1039 @code{\override} and @code{\revert}.
1040
1041 @seealso
1042 Notation Reference:
1043 @ref{mutable}.
1044
1045 @node interface
1046 @unnumberedsubsec interface
1047
1048 @cindex interface
1049 @cindex grob-interface
1050 @cindex graphical object interfaces
1051
1052 Actions and properties which are common to a number of grobs are
1053 grouped together in an object called a @code{grob-interface}, or
1054 just @q{interface} for short.
1055
1056 @seealso
1057 Learning Manual:
1058 @rlearning{Objects and interfaces},
1059 @rlearning{Naming conventions of objects and properties},
1060 @rlearning{Properties found in interfaces}.
1061
1062 Notation Reference:
1063 @ref{Layout interfaces}.
1064
1065 Internals Reference:
1066 @rinternals{Graphical Object Interfaces}.
1067
1068
1069 @node lexer
1070 @unnumberedsubsec lexer
1071
1072 @cindex lexer
1073 @cindex Flex
1074
1075 A @strong{lexer} is a program which converts a sequence of
1076 characters into a sequence of tokens, a process called lexical
1077 analysis.  The LilyPond lexer converts the stream obtained from an
1078 input @file{.ly} file into a tokenized stream more suited to the
1079 next stage of processing - parsing, for which see @ref{parser}.
1080 The LilyPond lexer is built with Flex from the lexer file
1081 @file{lily/lexer.ll} which contains the lexical rules.  This file
1082 is part of the source code and is not included in the LilyPond
1083 binary installation.
1084
1085
1086 @node mutable
1087 @unnumberedsubsec mutable
1088
1089 @cindex mutable objects
1090 @cindex mutable properties
1091
1092 A @strong{mutable} object is one whose state can be modified after
1093 creation, in contrast to an immutable object, whose state is fixed
1094 at the time of creation.
1095
1096 In LilyPond, mutable properties contain values that are specific to
1097 one grob.  Typically, lists of other objects or results from
1098 computations are stored in mutable properties.
1099
1100 @seealso
1101 Notation Reference:
1102 @ref{immutable}.
1103
1104 @node output-def
1105 @unnumberedsubsec output-def
1106
1107 @cindex output-def
1108
1109 An instance of the @code{Output-def} class contains the methods and
1110 data structures associated with an output block.  Instances are
1111 created for midi, layout and paper blocks.
1112
1113
1114 @node parser
1115 @unnumberedsubsec parser
1116
1117 @cindex parser
1118 @cindex Bison
1119 @cindex grammar for LilyPond
1120 @cindex BNF
1121
1122 A @strong{parser} analyzes the sequence of tokens produced by a
1123 lexer to determine its grammatical structure, grouping the tokens
1124 progressively into larger groupings according to the rules of the
1125 grammar.  If the sequence of tokens is valid the end product is a
1126 tree of tokens whose root is the grammar's start symbol.  If this
1127 cannot be achieved the file is invalid and an appropriate error
1128 message is produced.  The syntactic groupings and the rules for
1129 constructing the groupings from their parts for the LilyPond syntax
1130 are defined in @file{lily/parser.yy} and shown in Backus Normal Form
1131 (BNF) in @ref{LilyPond grammar}.  This file is used to build the
1132 parser during the program build by the parser generator, Bison.  It
1133 is part of the source code and is not included in the LilyPond
1134 binary installation.
1135
1136
1137 @node parser variable
1138 @unnumberedsubsec parser variable
1139
1140 @cindex parser variable
1141 @cindex Scheme variable
1142 @cindex global variable
1143 @cindex afterGraceFraction
1144 @cindex musicQuotes
1145 @cindex mode
1146 @cindex output-count
1147 @cindex output-suffix
1148 @cindex parseStringResult
1149 @cindex partCombineListener
1150 @cindex pitchnames
1151 @cindex toplevel-bookparts
1152 @cindex toplevel-scores
1153 @cindex showLastLength
1154 @cindex showFirstLength
1155
1156 These are variables defined directly in Scheme.  Their direct
1157 use by users is strongly discouraged, because their scoping
1158 semantics can be confusing.
1159
1160 When the value of such a variable is changed in a @code{.ly} file,
1161 the change is global, and unless explicitly reverted, the new value
1162 will persist to the end of the file, affecting subsequent
1163 @code{\score} blocks as well as external files added with the
1164 @code{\include} command.  This can lead to unintended consequences
1165 and in complex typesetting projects the consequent errors can be
1166 difficult to track down.
1167
1168 LilyPond uses the following parser variables:
1169
1170 @itemize
1171 @item afterGraceFraction
1172 @item musicQuotes
1173 @item mode
1174 @item output-count
1175 @item output-suffix
1176 @item parseStringResult
1177 @item partCombineListener
1178 @item pitchnames
1179 @item toplevel-bookparts
1180 @item toplevel-scores
1181 @item showLastLength
1182 @item showFirstLength
1183 @end itemize
1184
1185
1186 @node prob
1187 @unnumberedsubsec prob
1188
1189 @cindex prob
1190 @cindex property object
1191
1192 PRoperty OBjects, or @strong{probs} for short, are instances of
1193 the @code{Prob} class, a simple base class for objects which have
1194 mutable and immutable property alists and the methods to manipulate
1195 them.  The @code{Music} and @code{Stream_event} classes derive from
1196 @code{Prob}.  Instances of the @code{Prob} class are also created
1197 to hold the formatted content of system grobs and titling blocks
1198 during page layout.
1199
1200
1201 @node simple closure
1202 @unnumberedsubsec simple closure
1203
1204 See @ref{closure}.
1205
1206
1207 @node smob
1208 @unnumberedsubsec smob
1209
1210 @cindex smob
1211 @cindex Scheme object
1212
1213 @strong{Smobs}, or ScheMe OBjects, are part of the mechanism used
1214 by Guile to export C and C++ objects to Scheme code.  In LilyPond,
1215 smobs are created from C++ objects through macros.  There are two
1216 types of smob objects: simple smobs, intended for simple immutable
1217 objects like numbers, and complex smobs, used for objects with
1218 identities.  If you have access to the LilyPond sources, more
1219 information can be found in @file{lily/includes/smob.hh}.
1220
1221 @node stencil
1222 @unnumberedsubsec stencil
1223
1224 @cindex stencil
1225
1226 An instance of the @strong{stencil} class holds the information
1227 required to print a typographical object.  It is a simple smob
1228 containing a confining box, which defines the vertical and
1229 horizontal extents of the object, and a Scheme expression which
1230 will print the object when evaluated.  Stencils may be combined
1231 to form more complex stencils defined by a tree of Scheme
1232 expressions formed from the Scheme expressions of the component
1233 stencils.
1234
1235 The @code{stencil} property, which connects a grob to its stencil,
1236 is defined in the @code{grob-interface} interface.
1237
1238 @seealso
1239 Internals Reference:
1240 @rinternals{grob-interface}.
1241
1242
1243 @node All context properties
1244 @appendixsec All context properties
1245
1246 @include context-properties.tely
1247
1248
1249 @node Layout properties
1250 @appendixsec Layout properties
1251
1252 @include layout-properties.tely
1253
1254
1255 @node Available music functions
1256 @appendixsec Available music functions
1257
1258 @include identifiers.tely
1259
1260
1261 @node Scheme functions
1262 @appendixsec Scheme functions
1263
1264 @include scheme-functions.tely
1265