]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/notation/notation-appendices.itely
Doc: ensure two spaces after end of sentence.
[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 * Predefined type predicates::
51 * Scheme functions::
52 @end menu
53
54
55
56 @node Chord name chart
57 @appendixsec Chord name chart
58
59 The following charts shows two standard systems for printing chord
60 names, along with the pitches they represent.
61
62 @lilypondfile{chord-names-jazz.ly}
63
64 @node Common chord modifiers
65 @appendixsec Common chord modifiers
66
67 The following table shows chord modifiers that can be used in
68 @code{\chordmode} to generate standard chord structures.
69
70 @multitable @columnfractions .2 .3 .2 .2
71
72 @item
73 @b{Chord type}
74 @tab
75 @b{Intervals}
76 @tab
77 @b{Modifier(s)}
78 @tab
79 @b{Example}
80
81
82 @item
83 Major
84 @tab
85 Major third, perfect fifth
86 @tab
87 @code{5} or nothing
88 @tab
89 @lilypond[line-width=3\cm,noragged-right, notime]
90 \chordmode {
91   c1:5
92 }
93 @end lilypond
94
95 @item
96 Minor
97 @tab
98 Minor third, perfect fifth
99 @tab
100 @code{m} or @code{m5}
101 @tab
102 @lilypond[line-width=3\cm,noragged-right, notime]
103 \chordmode {
104   c1:m
105 }
106 @end lilypond
107
108 @item
109 Augmented
110 @tab
111 Major third, augmented fifth
112 @tab
113 @code{aug}
114 @tab
115 @lilypond[line-width=3\cm,noragged-right, notime]
116 \chordmode {
117   c1:aug
118 }
119 @end lilypond
120
121 @item
122 Diminished
123 @tab
124 Minor third, diminished fifth
125 @tab
126 @code{dim}
127 @tab
128 @lilypond[line-width=3\cm,noragged-right, notime]
129 \chordmode {
130   c1:dim
131 }
132 @end lilypond
133
134 @item
135 Dominant seventh
136 @tab
137 Major triad, minor seventh
138 @tab
139 @code{7}
140 @tab
141 @lilypond[line-width=3\cm,noragged-right, notime]
142 \chordmode {
143   c1:7
144 }
145 @end lilypond
146
147 @item
148 Major seventh
149 @tab
150 Major triad, major seventh
151 @tab
152 @code{maj7} or @code{maj}
153 @tab
154 @lilypond[line-width=3\cm,noragged-right, notime]
155 \chordmode {
156   c1:maj7
157 }
158 @end lilypond
159
160 @item
161 Minor seventh
162 @tab
163 Minor triad, minor seventh
164 @tab
165 @code{m7}
166 @tab
167 @lilypond[line-width=3\cm,noragged-right, notime]
168 \chordmode {
169   c1:m7
170 }
171 @end lilypond
172
173 @item
174 Diminished seventh
175 @tab
176 Diminished triad, diminished seventh
177 @tab
178 @code{dim7}
179 @tab
180 @lilypond[line-width=3\cm,noragged-right, notime]
181 \chordmode {
182   c1:dim7
183 }
184 @end lilypond
185
186 @item
187 Augmented seventh
188 @tab
189 Augmented triad, minor seventh
190 @tab
191 @code{aug7}
192 @tab
193 @lilypond[line-width=3\cm,noragged-right, notime]
194 \chordmode {
195   c1:aug7
196 }
197 @end lilypond
198
199 @item
200 Half-diminished seventh
201 @tab
202 Diminished triad, minor seventh
203 @tab
204 @code{m7.5-}
205 @tab
206 @lilypond[line-width=3\cm,noragged-right, notime]
207 \chordmode {
208   c1:m7.5-
209 }
210 @end lilypond
211
212 @item
213 Minor-major seventh
214 @tab
215 Minor triad, major seventh
216 @tab
217 @code{maj7.3-}
218 @tab
219 @lilypond[line-width=3\cm,noragged-right, notime]
220 \chordmode {
221   c1:maj7.3-
222 }
223 @end lilypond
224
225 @item
226 Major sixth
227 @tab
228 Major triad, sixth
229 @tab
230 @code{6}
231 @tab
232 @lilypond[line-width=3\cm,noragged-right, notime]
233 \chordmode {
234   c1:6
235 }
236 @end lilypond
237
238 @item
239 Minor sixth
240 @tab
241 Minor triad, sixth
242 @tab
243 @code{m6}
244 @tab
245 @lilypond[line-width=3\cm,noragged-right, notime]
246 \chordmode {
247   c1:m6
248 }
249 @end lilypond
250
251 @item
252 Dominant ninth
253 @tab
254 Dominant seventh, major ninth
255 @tab
256 @code{9}
257 @tab
258 @lilypond[line-width=3\cm,noragged-right, notime]
259 \chordmode {
260   c1:9
261 }
262 @end lilypond
263
264 @item
265 Major ninth
266 @tab
267 Major seventh, major ninth
268 @tab
269 @code{maj9}
270 @tab
271 @lilypond[line-width=3\cm,noragged-right, notime]
272 \chordmode {
273   c1:maj9
274 }
275 @end lilypond
276
277 @item
278 Minor ninth
279 @tab
280 Minor seventh, major ninth
281 @tab
282 @code{m9}
283 @tab
284 @lilypond[line-width=3\cm,noragged-right, notime]
285 \chordmode {
286   c1:m9
287 }
288 @end lilypond
289
290 @item
291 Dominant eleventh
292 @tab
293 Dominant ninth, perfect eleventh
294 @tab
295 @code{11}
296 @tab
297 @lilypond[line-width=3\cm,noragged-right, notime]
298 \chordmode {
299   c1:11
300 }
301 @end lilypond
302
303 @item
304 Major eleventh
305 @tab
306 Major ninth, perfect eleventh
307 @tab
308 @code{maj11}
309 @tab
310 @lilypond[line-width=3\cm,noragged-right, notime]
311 \chordmode {
312   c1:maj11
313 }
314 @end lilypond
315
316 @item
317 Minor eleventh
318 @tab
319 Minor ninth, perfect eleventh
320 @tab
321 @code{m11}
322 @tab
323 @lilypond[line-width=3\cm,noragged-right, notime]
324 \chordmode {
325   c1:m11
326 }
327 @end lilypond
328
329 @item
330 Dominant thirteenth
331 @tab
332 Dominant ninth, major thirteenth
333 @tab
334 @code{13}
335 @tab
336 @lilypond[line-width=3\cm,noragged-right, notime]
337 \chordmode {
338   c1:13
339 }
340 @end lilypond
341
342 @item
343 Dominant thirteenth
344 @tab
345 Dominant eleventh, major thirteenth
346 @tab
347 @code{13.11}
348 @tab
349 @lilypond[line-width=3\cm,noragged-right, notime]
350 \chordmode {
351   c1:13.11
352 }
353 @end lilypond
354
355 @item
356 Major thirteenth
357 @tab
358 Major eleventh, major thirteenth
359 @tab
360 @code{maj13.11}
361 @tab
362 @lilypond[line-width=3\cm,noragged-right, notime]
363 \chordmode {
364   c1:maj13.11
365 }
366 @end lilypond
367
368 @item
369 Minor thirteenth
370 @tab
371 Minor eleventh, major thirteenth
372 @tab
373 @code{m13.11}
374 @tab
375 @lilypond[line-width=3\cm,noragged-right, notime]
376 \chordmode {
377   c1:m13.11
378 }
379 @end lilypond
380
381 @item
382 Suspended second
383 @tab
384 Major second, perfect fifth
385 @tab
386 @code{sus2}
387 @tab
388 @lilypond[line-width=3\cm,noragged-right, notime]
389 \chordmode {
390   c1:sus2
391 }
392 @end lilypond
393
394 @item
395 Suspended fourth
396 @tab
397 Perfect fourth, perfect fifth
398 @tab
399 @code{sus4}
400 @tab
401 @lilypond[line-width=3\cm,noragged-right, notime]
402 \chordmode {
403   c1:sus4
404 }
405 @end lilypond
406
407
408 @end multitable
409
410 @node Predefined fretboard diagrams
411 @appendixsec Predefined fretboard diagrams
412
413 The chart below shows the predefined fretboard diagrams for guitar.
414
415 @lilypondfile{display-predefined-fretboards.ly}
416
417 The chart below shows the predefined fretboard diagrams for ukulele.
418
419 @lilypondfile{display-predefined-ukulele-fretboards.ly}
420
421 @node MIDI instruments
422 @appendixsec MIDI instruments
423
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.
428
429 @example
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
472 cello                     lead 6 (voice)
473 @end example
474
475
476 @node List of colors
477 @appendixsec List of colors
478
479 @subsubheading Normal colors
480
481 Usage syntax is detailed in @ref{Coloring objects}.
482
483 @cindex List of colors
484 @cindex Colors, list of
485
486 @verbatim
487 black       white          red         green
488 blue        cyan           magenta     yellow
489 grey        darkred        darkgreen   darkblue
490 darkcyan    darkmagenta    darkyellow
491 @end verbatim
492
493
494 @subsubheading X color names
495
496 X color names come several variants:
497
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}).
501
502 The word @q{grey} can always be spelled @q{gray} (e.g. @q{DarkSlateGray}).
503
504 Some names can take a numerical suffix (e.g. @q{LightSalmon4}).
505
506
507 @subsubheading Color Names without a numerical suffix:
508
509 @verbatim
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
537 LightGreen
538 @end verbatim
539
540
541 @subsubheading Color names with a numerical suffix
542
543 In the following names the suffix N can be a number in the range 1-4:
544
545 @verbatim
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
561 thistleN
562 @end verbatim
563
564
565 @subsubheading Grey Scale
566
567 A grey scale can be obtained using:
568
569 @example
570 greyN
571 @end example
572
573 @noindent
574 Where N is in the range 0-100.
575
576
577 @node The Feta font
578 @appendixsec The Feta font
579
580 @cindex Feta font
581 @cindex Font, Feta
582
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}.
589
590
591 @menu
592 * Clef glyphs::
593 * Time Signature glyphs::
594 * Number glyphs::
595 * Accidental glyphs::
596 * Default Notehead glyphs::
597 * Special Notehead glyphs::
598 * Shape-note Notehead glyphs::
599 * Rest glyphs::
600 * Flag glyphs::
601 * Dot glyphs::
602 * Dynamic glyphs::
603 * Script glyphs::
604 * Arrowhead glyphs::
605 * Bracket-tip glyphs::
606 * Pedal glyphs::
607 * Accordion glyphs::
608 * Vaticana glyphs::
609 * Medicaea glyphs::
610 * Hufnagel glyphs::
611 * Mensural glyphs::
612 * Neomensural glyphs::
613 * Petrucci glyphs::
614 * Solesmes glyphs::
615 @end menu
616
617
618 @node Clef glyphs
619 @unnumberedsubsec Clef glyphs
620
621 @lilypond[quote]
622 \include "font-table.ly"
623 \markuplines \override-lines #'(word-space . 4)
624              \doc-chars #clefs
625 @end lilypond
626
627
628 @node Time Signature glyphs
629 @unnumberedsubsec Time Signature glyphs
630
631 @lilypond[quote]
632 \include "font-table.ly"
633 \markuplines \override-lines #'(word-space . 4)
634              \doc-chars #timesig
635 @end lilypond
636
637
638 @node Number glyphs
639 @unnumberedsubsec Number glyphs
640
641 @lilypond[quote]
642 \include "font-table.ly"
643 \markuplines \override-lines #'(word-space . 4)
644              \doc-chars #numbers
645 @end lilypond
646
647
648 @node Accidental glyphs
649 @unnumberedsubsec Accidental glyphs
650
651 @lilypond[quote]
652 \include "font-table.ly"
653 \markuplines \override-lines #'(word-space . 4)
654              \doc-chars #accidentals
655 @end lilypond
656
657
658 @node Default Notehead glyphs
659 @unnumberedsubsec Default Notehead glyphs
660
661 @lilypond[quote]
662 \include "font-table.ly"
663 \markuplines \override-lines #'(word-space . 4)
664              \doc-chars #default-noteheads
665 @end lilypond
666
667
668 @node Special Notehead glyphs
669 @unnumberedsubsec Special Notehead glyphs
670
671 @lilypond[quote]
672 \include "font-table.ly"
673 \markuplines \override-lines #'(word-space . 4)
674              \doc-chars #special-noteheads
675 @end lilypond
676
677
678 @node Shape-note Notehead glyphs
679 @unnumberedsubsec Shape-note Notehead glyphs
680
681 @lilypond[quote]
682 \include "font-table.ly"
683 \markuplines \override-lines #'(word-space . 4)
684              \doc-chars #shape-note-noteheads
685 @end lilypond
686
687
688 @node Rest glyphs
689 @unnumberedsubsec Rest glyphs
690
691 @lilypond[quote]
692 \include "font-table.ly"
693 \markuplines \override-lines #'(word-space . 4)
694              \doc-chars #rests
695 @end lilypond
696
697
698 @node Flag glyphs
699 @unnumberedsubsec Flag glyphs
700
701 @lilypond[quote]
702 \include "font-table.ly"
703 \markuplines \override-lines #'(word-space . 4)
704              \doc-chars #flags
705 @end lilypond
706
707
708 @node Dot glyphs
709 @unnumberedsubsec Dot glyphs
710
711 @lilypond[quote]
712 \include "font-table.ly"
713 \markuplines \override-lines #'(word-space . 4)
714              \doc-chars #dots
715 @end lilypond
716
717
718 @node Dynamic glyphs
719 @unnumberedsubsec Dynamic glyphs
720
721 @lilypond[quote]
722 \include "font-table.ly"
723 \markuplines \override-lines #'(word-space . 4)
724              \doc-chars #dynamics
725 @end lilypond
726
727
728 @node Script glyphs
729 @unnumberedsubsec Script glyphs
730
731 @lilypond[quote]
732 \include "font-table.ly"
733 \markuplines \override-lines #'(word-space . 4)
734              \doc-chars #scripts
735 @end lilypond
736
737
738 @node Arrowhead glyphs
739 @unnumberedsubsec Arrowhead glyphs
740
741 @lilypond[quote]
742 \include "font-table.ly"
743 \markuplines \override-lines #'(word-space . 4)
744              \doc-chars #arrowheads
745 @end lilypond
746
747
748 @node Bracket-tip glyphs
749 @unnumberedsubsec Bracket-tip glyphs
750
751 @lilypond[quote]
752 \include "font-table.ly"
753 \markuplines \override-lines #'(word-space . 4)
754              \doc-chars #brackettips
755 @end lilypond
756
757
758 @node Pedal glyphs
759 @unnumberedsubsec Pedal glyphs
760
761 @lilypond[quote]
762 \include "font-table.ly"
763 \markuplines \override-lines #'(word-space . 4)
764              \doc-chars #pedal
765 @end lilypond
766
767
768 @node Accordion glyphs
769 @unnumberedsubsec Accordion glyphs
770
771 @lilypond[quote]
772 \include "font-table.ly"
773 \markuplines \override-lines #'(word-space . 4)
774              \doc-chars #accordion
775 @end lilypond
776
777
778 @node Vaticana glyphs
779 @unnumberedsubsec Vaticana glyphs
780
781 @lilypond[quote]
782 \include "font-table.ly"
783 \markuplines \override-lines #'(word-space . 4)
784              \doc-chars #vaticana
785 @end lilypond
786
787
788 @node Medicaea glyphs
789 @unnumberedsubsec Medicaea glyphs
790
791 @lilypond[quote]
792 \include "font-table.ly"
793 \markuplines \override-lines #'(word-space . 4)
794              \doc-chars #medicaea
795 @end lilypond
796
797
798 @node Hufnagel glyphs
799 @unnumberedsubsec Hufnagel glyphs
800
801 @lilypond[quote]
802 \include "font-table.ly"
803 \markuplines \override-lines #'(word-space . 4)
804              \doc-chars #hufnagel
805 @end lilypond
806
807
808 @node Mensural glyphs
809 @unnumberedsubsec Mensural glyphs
810
811 @lilypond[quote]
812 \include "font-table.ly"
813 \markuplines \override-lines #'(word-space . 4)
814              \doc-chars #mensural
815 @end lilypond
816
817
818 @node Neomensural glyphs
819 @unnumberedsubsec Neomensural glyphs
820
821 @lilypond[quote]
822 \include "font-table.ly"
823 \markuplines \override-lines #'(word-space . 4)
824              \doc-chars #neomensural
825 @end lilypond
826
827
828 @node Petrucci glyphs
829 @unnumberedsubsec Petrucci glyphs
830
831 @lilypond[quote]
832 \include "font-table.ly"
833 \markuplines \override-lines #'(word-space . 4)
834              \doc-chars #petrucci
835 @end lilypond
836
837
838 @node Solesmes glyphs
839 @unnumberedsubsec Solesmes glyphs
840
841 @lilypond[quote]
842 \include "font-table.ly"
843 \markuplines \override-lines #'(word-space . 4)
844              \doc-chars #solesmes
845 @end lilypond
846
847
848 @node Note head styles
849 @appendixsec Note head styles
850
851 @cindex note head styles
852 The following styles may be used for note heads.
853
854 @lilypondfile[noindent]{note-head-style.ly}
855
856 @include markup-commands.tely
857
858 @include markup-list-commands.tely
859
860 @node List of articulations
861 @appendixsec List of articulations
862
863
864 @cindex accent
865 @cindex accentus
866 @cindex circulus
867 @cindex coda
868 @cindex downbow
869 @cindex downmordent
870 @cindex downprall
871 @cindex espressivo
872 @cindex fermata
873 @cindex flageolet
874 @cindex halfopen
875 @cindex ictus
876 @cindex lheel
877 @cindex lineprall
878 @cindex longfermata
879 @cindex ltoe
880 @cindex marcato
881 @cindex mordent
882 @cindex open
883 @cindex portato
884 @cindex prall
885 @cindex pralldown
886 @cindex prallmordent
887 @cindex prallprall
888 @cindex prallup
889 @cindex reverseturn
890 @cindex rheel
891 @cindex rtoe
892 @cindex segno
893 @cindex semicirculus
894 @cindex shortfermata
895 @cindex signumcongruentiae
896 @cindex snappizzicato
897 @cindex staccatissimo
898 @cindex staccato
899 @cindex stopped
900 @cindex tenuto
901 @cindex thumb
902 @cindex trill
903 @cindex turn
904 @cindex upbow
905 @cindex upmordent
906 @cindex upprall
907 @cindex varcoda
908 @cindex verylongfermata
909
910 The following scripts are available in the Feta font and may be
911 attached to notes (eg. @samp{c\accent}).
912
913 @c Articulations and ornamentations
914 @c Fingering instructions (for "thumb")
915 @c Common notation for unfretted strings
916 @c   Bowing indications
917 @c   Harmonics
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)
921
922
923 @menu
924 * Articulation scripts::
925 * Ornament scripts::
926 * Fermata scripts::
927 * Instrument-specific scripts::
928 * Repeat sign scripts::
929 * Ancient scripts::
930 @end menu
931
932
933 @node Articulation scripts
934 @unnumberedsubsec Articulation scripts
935
936 @lilypond[quote]
937 \include "script-chart.ly"
938 \new RhythmicStaff { \scriptStaff #articulations }
939 @end lilypond
940
941 @node Ornament scripts
942 @unnumberedsubsec Ornament scripts
943
944 @lilypond[quote]
945 \include "script-chart.ly"
946 \new RhythmicStaff { \scriptStaff #ornaments }
947 @end lilypond
948
949 @node Fermata scripts
950 @unnumberedsubsec Fermata scripts
951
952 @lilypond[quote]
953 \include "script-chart.ly"
954 \new RhythmicStaff { \scriptStaff #fermatas }
955 @end lilypond
956
957 @node Instrument-specific scripts
958 @unnumberedsubsec Instrument-specific scripts
959
960 @lilypond[quote]
961 \include "script-chart.ly"
962 \new RhythmicStaff { \scriptStaff #instrument-specific }
963 @end lilypond
964
965 @node Repeat sign scripts
966 @unnumberedsubsec Repeat sign scripts
967
968 @lilypond[quote]
969 \include "script-chart.ly"
970 \new RhythmicStaff { \scriptStaff #repeats }
971 @end lilypond
972
973 @node Ancient scripts
974 @unnumberedsubsec Ancient scripts
975
976 @lilypond[quote]
977 \include "script-chart.ly"
978 \include "gregorian.ly"
979 \new VaticanaStaff { \scriptStaffAncient #ancient }
980 @end lilypond
981
982
983 @node Percussion notes
984 @appendixsec Percussion notes
985
986 @lilypondfile[quote]{percussion-chart.ly}
987
988
989 @node Technical glossary
990 @appendixsec Technical glossary
991
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.
995
996 @menu
997 * alist::
998 * callback::
999 * closure::
1000 * glyph::
1001 * grob::
1002 * immutable::
1003 * interface::
1004 * lexer::
1005 * mutable::
1006 * output-def::
1007 * parser::
1008 * parser variable::
1009 * prob::
1010 * simple closure::
1011 * smob::
1012 * stencil::
1013 @end menu
1014
1015 @node alist
1016 @unnumberedsubsec alist
1017
1018 @cindex alist
1019 @cindex association list
1020
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.
1028
1029 @node callback
1030 @unnumberedsubsec callback
1031
1032 @cindex callback
1033
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
1040 performed.
1041
1042
1043 @node closure
1044 @unnumberedsubsec closure
1045
1046 @cindex closure
1047 @cindex simple closure
1048
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.
1059
1060 A @strong{simple closure} is a closure whose expression has no free
1061 variables and hence no free variable bindings.
1062
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
1065 list of arguments.
1066
1067
1068 @node glyph
1069 @unnumberedsubsec glyph
1070
1071 @cindex glyph
1072 @cindex font
1073 @cindex typeface
1074
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.
1079
1080
1081 @seealso
1082 Notation Reference:
1083 @ref{Fonts},
1084 @ref{Text encoding}.
1085
1086
1087 @node grob
1088 @unnumberedsubsec grob
1089
1090 @cindex grob
1091 @cindex layout objects
1092 @cindex graphical objects
1093
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.
1099
1100 @seealso
1101 Learning Manual:
1102 @rlearning{Objects and interfaces},
1103 @rlearning{Naming conventions of objects and properties},
1104 @rlearning{Properties of layout objects}.
1105
1106 Internals Reference:
1107 @rinternals{grob-interface},
1108 @rinternals{All layout objects}.
1109
1110
1111 @node immutable
1112 @unnumberedsubsec immutable
1113
1114 @cindex immutable objects
1115 @cindex immutable properties
1116 @cindex shared properties
1117
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.
1121
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}.
1126
1127 @seealso
1128 Notation Reference:
1129 @ref{mutable}.
1130
1131 @node interface
1132 @unnumberedsubsec interface
1133
1134 @cindex interface
1135 @cindex grob-interface
1136 @cindex graphical object interfaces
1137
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.
1141
1142 @seealso
1143 Learning Manual:
1144 @rlearning{Objects and interfaces},
1145 @rlearning{Naming conventions of objects and properties},
1146 @rlearning{Properties found in interfaces}.
1147
1148 Notation Reference:
1149 @ref{Layout interfaces}.
1150
1151 Internals Reference:
1152 @rinternals{Graphical Object Interfaces}.
1153
1154
1155 @node lexer
1156 @unnumberedsubsec lexer
1157
1158 @cindex lexer
1159 @cindex Flex
1160
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.
1170
1171
1172 @node mutable
1173 @unnumberedsubsec mutable
1174
1175 @cindex mutable objects
1176 @cindex mutable properties
1177
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.
1181
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.
1185
1186 @seealso
1187 Notation Reference:
1188 @ref{immutable}.
1189
1190 @node output-def
1191 @unnumberedsubsec output-def
1192
1193 @cindex output-def
1194
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.
1198
1199
1200 @node parser
1201 @unnumberedsubsec parser
1202
1203 @cindex parser
1204 @cindex Bison
1205 @cindex grammar for LilyPond
1206 @cindex BNF
1207
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.
1221
1222
1223 @node parser variable
1224 @unnumberedsubsec parser variable
1225
1226 @cindex parser variable
1227 @cindex Scheme variable
1228 @cindex global variable
1229 @cindex afterGraceFraction
1230 @cindex musicQuotes
1231 @cindex mode
1232 @cindex output-count
1233 @cindex output-suffix
1234 @cindex parseStringResult
1235 @cindex partCombineListener
1236 @cindex pitchnames
1237 @cindex toplevel-bookparts
1238 @cindex toplevel-scores
1239 @cindex showLastLength
1240 @cindex showFirstLength
1241
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.
1245
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.
1253
1254 LilyPond uses the following parser variables:
1255
1256 @itemize
1257 @item afterGraceFraction
1258 @item musicQuotes
1259 @item mode
1260 @item output-count
1261 @item output-suffix
1262 @item parseStringResult
1263 @item partCombineListener
1264 @item pitchnames
1265 @item toplevel-bookparts
1266 @item toplevel-scores
1267 @item showLastLength
1268 @item showFirstLength
1269 @end itemize
1270
1271
1272 @node prob
1273 @unnumberedsubsec prob
1274
1275 @cindex prob
1276 @cindex property object
1277
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
1284 during page layout.
1285
1286
1287 @node simple closure
1288 @unnumberedsubsec simple closure
1289
1290 See @ref{closure}.
1291
1292
1293 @node smob
1294 @unnumberedsubsec smob
1295
1296 @cindex smob
1297 @cindex Scheme object
1298
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}.
1306
1307 @node stencil
1308 @unnumberedsubsec stencil
1309
1310 @cindex stencil
1311
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
1319 stencils.
1320
1321 The @code{stencil} property, which connects a grob to its stencil,
1322 is defined in the @code{grob-interface} interface.
1323
1324 @seealso
1325 Internals Reference:
1326 @rinternals{grob-interface}.
1327
1328
1329 @node All context properties
1330 @appendixsec All context properties
1331
1332 @include context-properties.tely
1333
1334
1335 @node Layout properties
1336 @appendixsec Layout properties
1337
1338 @include layout-properties.tely
1339
1340
1341 @node Available music functions
1342 @appendixsec Available music functions
1343
1344 @include identifiers.tely
1345
1346
1347 @node Predefined type predicates
1348 @appendixsec Predefined type predicates
1349
1350 @include type-predicates.tely
1351
1352
1353 @node Scheme functions
1354 @appendixsec Scheme functions
1355
1356 @include scheme-functions.tely
1357