1 @c -*- coding: utf-8; mode: texinfo; -*-
3 Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
5 When revising a translation, copy the HEAD committish of the
6 version that you are working on. See TRANSLATION for details.
13 @section Chord notation
15 Chords can be entered in chord mode, which recognizes some
16 traditional European chord naming conventions. Chord names can also
17 be displayed. In addition, figured bass notation can be displayed.
27 @subsection Chord mode
32 * Chord mode overview::
39 @node Chord mode overview
40 @unnumberedsubsubsec Chord mode overview
45 Chords can be entered as simultaneous music, as discussed in
48 Chords can also be entered in chord mode, which is an input mode
49 that focuses on the structures of chords in traditional European
50 music, rather than on specific pitches. This is convenient for those
51 who are familiar with using chord names to describe chords.
53 Chords entered using chord mode are music elements, and can be
54 transposed just like chords entered using simultaneous music.
56 @code{\chordmode} is similar to @code{\lyricmode}, etc. Most of
57 the commands continue to work, for example, @code{r} and
58 @code{\skip} can be used to insert rests and spaces, and property
59 commands may be used to change various settings.
71 @unnumberedsubsubsec Triads
76 Major triads are entered by including the root and a duration:
78 @lilypond[verbatim,quote,relative=1,ragged-right]
79 \chordmode { c2 f4. g8 }
82 Minor, augmented, and diminished triads are entered by placing
83 @code{:} and a quality modifier string after the duration:
85 @lilypond[verbatim,quote,ragged-right,relative=1]
86 \chordmode { c2:m f4:aug g4:dim}
89 The possible quality modifier strings are explained in @ref{Complex
98 @unnumberedsubsubsec Seventh chords
100 @cindex seventh chords
101 @cindex root of chord
103 @node Extended chords
104 @unnumberedsubsubsec Extended chords
106 @cindex extended chords
108 Modifiers can be used to extend a chord, specify the @q{quality} of
109 the chord, add or remove chord steps, raise or lower chord steps,
110 and add a bass note or create an inversion.
112 The first number following the colon is taken to be the extent of
113 the chord. The chord is constructed by sequentially adding thirds
114 to the root until the specified number has been reached.
116 @lilypond[quote,ragged-right,fragment,verbatim]
117 \chordmode { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11}
120 Since an unaltered 11 does not sound good when combined with an
121 unaltered 13, the 11 is removed from a :13 chord (unless it is
124 @lilypond[quote,ragged-right,fragment,verbatim]
125 \chordmode { c:13 c:13.11 c:m13 }
128 @cindex additions, in chords
131 @unnumberedsubsubsec Complex chords
133 The quality of a chord can be set according to standard chord naming
134 conventions. The following quality modifiers are supported:
138 @item m The minor chord. This modifier lowers the 3rd
139 and (if present) the 7th step.
141 @item dim The diminished chord. This modifier lowers the 3rd, 5th
142 and (if present) the 7th step.
145 The augmented chord. This modifier raises the 5th step.
148 The major 7th chord. This modifier adds a raised the 7th step
149 to the chord. The @code{7} following @code{maj} is optional.
152 The suspended 4th or 2nd. This modifier removes the 3rd
153 step. Append either @code{2} or @code{4} to add the 2nd or 4th
157 @cindex modifiers, in chords.
158 @cindex chord quality
166 Individual steps can be added to or removed from a chord.
167 Additions are added after the chord type and are prefixed by dots.
169 @lilypond[quote,verbatim,fragment]
170 \chordmode { c:5.6 c:3.7.8 c:3.6.13 }
173 Chord steps can be altered by suffixing a @code{-} or @code{+}
176 @lilypond[quote,verbatim,fragment]
177 \chordmode { c:7+ c:5+.3- c:3-.5-.7- }
180 @cindex chord steps, altering
182 @cindex removals, in chords
185 Steps to be removed are listed following the additions and are
186 prefixed by @code{^}.
188 @lilypond[quote,verbatim,fragment]
189 \chordmode { c^3 c:7^5 c:9^3.5 }
194 Inversions (putting a pitch other than the root on the bottom of
195 the chord) and added bass notes, can be specified by appending
196 @code{/}@var{pitch} to the chord.
198 @lilypond[quote,ragged-right,fragment,verbatim]
199 \chordmode { c1 c/g c/f }
204 A bass note that is part of the chord can be added, instead of
205 moved as part of an inversion, by using @code{/+}@var{pitch}.
207 @lilypond[quote,ragged-right,fragment,verbatim]
208 \chordmode { c1 c/+g c/+f }
216 Each step can only be present in a chord once. The following
217 simply produces the augmented chord, since @code{5+} is
221 @lilypond[quote,ragged-right,verbatim,fragment]
222 \chordmode { c:5.5-.5+ }
228 @n ode Displaying chords
229 @s ubsection Displaying chords
234 * Printing chord names::
235 * Customizing chord names::
239 @n ode Printing chord names
240 @u nnumberedsubsubsec Printing chord names
242 @cindex printing chord names
246 LilyPond has support for printing chord names. Because chords are
247 music elements, they can be transposed, and the chord names will be
248 transposed along with the chords.
250 Chords can be entered using @code{< .. >} or through the use of
251 chord mode. The displayed chord name will sometimes be different
252 depending upon the entry mode:
254 @lilypond[quote,ragged-right,verbatim,ragged-right]
255 twoWays = \transpose c c' {
264 << \new ChordNames \twoWays
265 \new Voice \twoWays >>
268 This example also shows that the chord printing routines cannot
269 correctly identify the root of a chord if it has been entered using
270 @code{< .. >} instead of named chord entry. Therefore, the sixth
271 chord (@code{f bes d}) is not interpreted as an inversion. In
272 contrast, the third chord, which contains the same notes as the sixth
273 chord, is correctly identified because it was entered in the named
276 For displaying printed chord names, use the @rinternals{ChordNames}
279 @lilypond[quote,verbatim,ragged-right]
281 \chordmode {a1 b c} <d' f' a'> <e' g' b'>
284 \new ChordNames \harmonies
285 \new Staff \harmonies
289 The previous examples all show chords over a staff. This is not
290 necessary. Chords may also be printed separately. It may be necessary
291 to add @rinternals{Volta_engraver} and @rinternals{Bar_engraver}
294 @lilypond[ragged-right,verbatim]
295 \new ChordNames \with {
296 \override BarLine #'bar-size = #4
297 \consists Bar_engraver
298 \consists "Volta_engraver"
300 \chordmode { \repeat volta 2 {
309 @code{\chords} is a shortcut method used to change the input mode to
310 @code{\chordmode} and create a @code{ChordNames} context, with the
313 @lilypond[verbatim,quote,ragged-right]
314 \chords { c2 f4.:m g4.:maj7 gis8:dim7 }
328 @c Notation Reference:
331 @c Application Usage:
340 @c Internals Reference:
346 @n ode Customizing chord names
347 @u nnumberedsubsubsec Customizing chord names
349 @cindex customizing chord names
351 There is no unique system for naming chords. Different musical
352 traditions use different names for the same set of chords. There are
353 also different symbols displayed for a given chord name. The names
354 and symbols displayed for chord names are customizable.
356 The default chord name layout is a system for Jazz music, proposed
357 by Klaus Ignatzek (see @ref{Literature list}). There are also two
358 other chord name schemes implemented: an alternate Jazz chord
359 notation, and a systematic scheme called Banter chords. The
360 alternate Jazz notation is also shown on the chart in @ref{Chord
363 In addition to the different naming systems, different note names
364 are used for the root in different languages. The predefined
365 variables @code{\germanChords}, @code{\semiGermanChords},
366 @code{\italianChords} and @code{\frenchChords} set these variables.
367 The effect is demonstrated here:
369 @lilypondfile[ragged-right]{chord-names-languages.ly}
371 If none of the default settings give the desired output, the chord
372 name display can be tuned through the following properties.
374 @c TODO Generate snippet based on the following
375 @c and add explanation -td
379 @funindex chordNameExceptions
381 @code{chordNameExceptions} contains a list of markups used to follow
382 the root note name based on the pitches in the chord. Creating the
383 list requires four steps.
385 The first step is to define sequential music that has the chords to
386 be named with the desired markup (except for the root name) attached
391 <c e g b d'>1-\markup @{ \super "maj9" @}
392 <c e g a d'>1-\markup @{ \super "6(add9)" @}
396 The second step is to convert the music from the first step to an
400 FGGExceptions = #(sequential-music-to-chord-exceptions
404 The third step is to append the default exceptions list (in this
405 case, the Ignatzek exceptions) to the newly-defined exceptions list:
408 chExceptions = #(append FGGExceptions ignatzekExceptions)
411 The final step is to set @code{chordNameExceptions} to the
412 newly-created exceptions list:
415 \set chordNameExceptions = #chExceptions
418 The entire process is illustrated below:
420 @lilypond[quote,ragged-right,verbatim,ragged-right]
422 <c e g b d'>1-\markup { \super "maj9" }
423 <c e g a d'>1-\markup { \super "6(add9)" }
425 FGGExceptions = #(sequential-music-to-chord-exceptions
427 chExceptions = #(append FGGChordNames
430 chordStuff = \chordmode
435 % names with FGG's custom exceptions
436 \set chordNameExceptions = #chExceptions
443 \new ChordNames \chordStuff
448 @funindex majorSevenSymbol
449 @item majorSevenSymbol
450 This property contains the markup object used as part of the printed
451 chord name to identify a major 7 chord. Predefined options are
452 @code{whiteTriangleMarkup} and @code{blackTriangleMarkup}.
454 @funindex chordNameSeparator
455 @item chordNameSeparator
456 Different parts of a chord name are normally separated by a slash.
457 By setting @code{chordNameSeparator}, you can use any desired markup
458 for a separator, e.g.,
459 @lilypond[quote,ragged-right,fragment,verbatim]
460 \new ChordNames \chordmode {
462 \set chordNameSeparator
463 = \markup { \typewriter "|" }
468 @funindex chordRootNamer
470 The chord name is usually printed as a letter for the root with an
471 optional alteration. The transformation from pitch to letter is
472 done by this function. Special note names (for example, the German
473 @q{H} for a B-chord) can be produced by storing a new function in
476 @funindex chordNoteNamer
478 When the chord name contains an additional pitch besides the root
479 (e.g., an added bass note), this function is used to print the
480 additional pitch. By default the pitch is printed using
481 @code{chordRootNamer}. The @code{chordNoteNamer} property can be set
482 to a specialized function to change this behavior. For example, the
483 bass note can be printed in lower case.
485 @funindex chordPrefixSpacer
486 @item chordPrefixSpacer
487 The @q{m} for minor chords is usually printed immediately to the
488 right of the root of the chord. By setting
489 @code{chordPrefixSpacer}, you can fix a spacer between the root and
490 @q{m}. The spacer is not used when the root is altered.
502 @funindex major seven symbols
503 @code{\whiteTriangleMarkup}
504 @code{\blackTriangleMarkup}
505 @funindex \germanChords
506 @code{\germanChords},
507 @funindex \semiGermanChords
508 @code{\semiGermanChords},
509 @funindex \italianChords
510 @code{\italianChords},
511 @funindex \frenchChords
512 @code{\frenchChords}.
516 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
517 {chord-names-jazz.ly}
519 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
520 {chord-name-exceptions.ly}
521 @cindex exceptions, chord names.
523 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
524 {chord-name-major7.ly}
533 @c Notation Reference:
536 @c Application Usage:
540 @file{scm/@/chords@/-ignatzek@/.scm},
541 @file{scm/@/chord@/-entry@/.scm},
542 @file{ly/@/chord@/-modifier@/-init@/.ly}.
544 @c Snippets: @c @rlsr{}.
546 @c Internals Reference:
551 When chords are entered with the @code{< .. >} syntax, the root and
552 any added bass notes are not identified. In this case, chord names
553 are determined solely from the list of pitches. This may result in
557 @u nnumberedsubsubsec Lead sheets
561 For lead sheets, chords are not printed on staves, but as names on a
562 line for themselves. This is achieved by using a @code{ChordNames}
563 context simultaneously with the @code{Staff} context. The
564 @code{\chords} keyword can be used as a shortcut for @code{\new
565 ChordNames \chordmode}.
567 When put together, chord names, a melody, and lyrics form a lead
570 @lilypond[verbatim,quote,ragged-right]
572 \chords { c2 g:sus4 f e }
577 \addlyrics { One day this shall be free __ }
592 @c Notation Reference:
595 @c Application Usage:
604 @c Internals Reference:
615 @node old Modern chords
616 @subsection old Modern chords
620 * Entering chord names::
623 * Printing chord names::
630 @subsubsection Chord modes
632 In popular music it is common to denote accompaniment with chord
633 names. Such chords can be entered like notes,
635 @lilypond[verbatim,quote,ragged-right]
636 \chordmode { c2 f4. g8 }
639 Now each pitch is read as the root of a chord instead of a note.
640 This mode is switched on with @code{\chordmode}. Other chords can
641 be created by adding modifiers after a colon. The following
642 example shows a few common modifiers:
644 @lilypond[verbatim,quote,ragged-right]
645 \chordmode { c2 f4:m g4:maj7 gis1:dim7 }
650 In chord mode sets of pitches (chords) are entered with normal note
651 names. A chord is entered by the root, which is entered like a
654 @lilypond[quote,ragged-right,fragment,verbatim]
655 \chordmode { es4. d8 c2 }
659 The mode is introduced by the keyword @code{\chordmode}.
664 Chords is a mode similar to @code{\lyricmode}, etc. Most
665 of the commands continue to work, for example, @code{r} and
666 @code{\skip} can be used to insert rests and spaces, and property
667 commands may be used to change various settings.
668 It uses the same syntax as
669 @code{\chordmode}, but renders the notes in a @code{ChordNames}
670 context, with the following result:
672 @lilypond[verbatim,quote,ragged-right]
673 \chords { c2 f4.:m g4.:maj7 gis8:dim7 }
679 Each step can only be present in a chord once. The following
680 simply produces the augmented chord, since @code{5+} is interpreted
683 @lilypond[quote,ragged-right,verbatim,fragment]
684 \chordmode { c:5.5-.5+ }
688 @node Entering chord names
689 @subsubsection Entering chord names
692 LilyPond has support for printing chord names. Chords may be entered
693 in musical chord notation, i.e., @code{< .. >}, but they can also be
694 entered by name. Internally, the chords are represented as a set of
695 pitches, so they can be transposed
698 @lilypond[quote,ragged-right,verbatim,ragged-right]
699 twoWays = \transpose c c' {
708 << \new ChordNames \twoWays
709 \new Voice \twoWays >>
712 This example also shows that the chord printing routines do not try to
713 be intelligent. The last chord (@code{f bes d}) is not interpreted as
716 Note that the duration of chords must be specified outside the
723 @c TODO Generate snippet based on the following
724 @c and add explanation -td
726 Custom chord names may be generated:
728 @lilypond[quote,ragged-right,verbatim,ragged-right]
730 <c e g b d'>1-\markup { \super "maj9" }
731 <c e g a d'>1-\markup { \super "6(add9)" }
733 chExceptions = #(append
734 (sequential-music-to-chord-exceptions
735 FGGChordNames #t) ignatzekExceptions)
737 chordStuff = \chordmode
742 % names with FGG's custom exceptions
743 \set chordNameExceptions = #chExceptions
750 \new ChordNames \chordStuff
754 @node Building chords
755 @subsubsection Building chords
757 Other chords may be entered by suffixing a colon and introducing a
758 modifier (which may include a number if desired)
760 @lilypond[quote,fragment,verbatim]
761 \chordmode { e1:m e1:7 e1:m7 }
764 The first number following the root is taken to be the @q{type} of the
765 chord, thirds are added to the root until it reaches the specified
766 number. The exception is @code{c:13}, for which the 11 is omitted.
768 @lilypond[quote,fragment,verbatim]
769 \chordmode { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 c:13 }
772 @cindex root of chord
773 @cindex additions, in chords
774 @cindex removals, in chords
776 More complex chords may also be constructed adding separate steps
777 to a chord. Additions are added after the number following
778 the colon and are separated by dots
780 @lilypond[quote,verbatim,fragment]
781 \chordmode { c:5.6 c:3.7.8 c:3.6.13 }
784 Chord steps can be altered by suffixing a @code{-} or @code{+} sign
787 @lilypond[quote,verbatim,fragment]
788 \chordmode { c:7+ c:5+.3- c:3-.5-.7- }
791 Removals are specified similarly and are introduced by a caret. They
792 must come after the additions
794 @lilypond[quote,verbatim,fragment]
795 \chordmode { c^3 c:7^5 c:9^3.5 }
798 Modifiers can be used to change pitches. The following modifiers are
803 The minor chord. This modifier lowers the 3rd and (if present) the 7th step.
806 The diminished chord. This modifier lowers the 3rd, 5th and (if present)
810 The augmented chord. This modifier raises the 5th step.
813 The major 7th chord. This modifier raises the 7th step if present.
816 The suspended 4th or 2nd. This modifier removes the 3rd
817 step. Append either @code{2} or @code{4} to add the 2nd or 4th step to
821 Modifiers can be mixed with additions
822 @lilypond[quote,verbatim,fragment]
823 \chordmode { c:sus4 c:7sus4 c:dim7 c:m6 }
826 @cindex modifiers, in chords.
833 Since an unaltered 11 does not sound good when combined with an
834 unaltered 13, the 11 is removed in this case (unless it is added
836 @lilypond[quote,ragged-right,fragment,verbatim]
837 \chordmode { c:13 c:13.11 c:m13 }
842 An inversion (putting one pitch of the chord on the bottom), as well
843 as bass notes, can be specified by appending
844 @code{/}@var{pitch} to the chord
845 @lilypond[quote,ragged-right,fragment,verbatim]
846 \chordmode { c1 c/g c/f }
850 A bass note can be added instead of transposed out of the chord,
851 by using @code{/+}@var{pitch}.
853 @lilypond[quote,ragged-right,fragment,verbatim]
854 \chordmode { c1 c/+g c/+f }
859 @subsubsection Lead sheets
863 For lead sheets, chords are not printed on staves, but as names on
864 a line for themselves. This is achieved by using @code{\chords}
865 instead of @code{\chordmode}.
867 When put together, chord names, lyrics and a melody form a lead
870 @lilypond[verbatim,quote,ragged-right]
872 \chords { c2 g:sus4 f e }
877 \addlyrics { One day this shall be free __ }
883 @node Printing chord names
884 @subsubsection Printing chord names
886 @cindex printing chord names
890 For displaying printed chord names, use the @rinternals{ChordNames} context.
891 The chords may be entered either using the notation
892 described above, or directly using @code{<} and @code{>}
894 @lilypond[quote,verbatim,ragged-right]
896 \chordmode {a1 b c} <d' f' a'> <e' g' b'>
899 \new ChordNames \harmonies
900 \new Staff \harmonies
904 You can make the chord changes stand out by setting
905 @rinternals{ChordNames}.@code{chordChanges} to true. This will only
906 display chord names when there is a change in the chords scheme and at
907 the start of a new line
909 @lilypond[quote,verbatim,ragged-right]
910 harmonies = \chordmode {
911 c1:m c:m \break c:m c:m d
915 \set chordChanges = ##t
917 \new Staff \transpose c c' \harmonies
921 The previous examples all show chords over a staff. This is not
922 necessary. Chords may also be printed separately. It may be necessary
923 to add @rinternals{Volta_engraver} and @rinternals{Bar_engraver}
926 @lilypond[ragged-right,verbatim]
927 \new ChordNames \with {
928 \override BarLine #'bar-size = #4
929 \consists Bar_engraver
930 \consists "Volta_engraver"
932 \chordmode { \repeat volta 2 {
942 The default chord name layout is a system for Jazz music, proposed by
943 Klaus Ignatzek (see @ref{Literature list}). It can be tuned through the
947 @funindex chordNameExceptions
948 @item chordNameExceptions
949 This is a list that contains the chords that have special formatting.
951 The exceptions list should be encoded as
953 @{ <c f g bes>1 \markup @{ \super "7" "wahh" @} @}
956 To get this information into @code{chordNameExceptions} takes a little
957 maneuvering. The following code transforms @code{chExceptionMusic}
958 (which is a sequential music) into a list of exceptions.
960 (sequential-music-to-chord-exceptions chExceptionMusic #t)
965 (sequential-music-to-chord-exceptions chExceptionMusic #t)
968 adds the new exceptions to the default ones, which are defined in
969 @file{ly/@/chord@/-modifier@/-init@/.ly}.
971 For an example of tuning this property, see also
972 @c @lsr{chords,chord@/-name@/-exceptions@/.ly}
973 @cindex exceptions, chord names.
976 @funindex majorSevenSymbol
977 @item majorSevenSymbol
978 This property contains the markup object used for the 7th step, when
979 it is major. Predefined options are @code{whiteTriangleMarkup} and
980 @code{blackTriangleMarkup}. See
981 @c @lsr{chords,chord@/-name@/-major7@/.ly} for an example.
983 @funindex chordNameSeparator
984 @item chordNameSeparator
985 Different parts of a chord name are normally separated by a
986 slash. By setting @code{chordNameSeparator}, you can specify other
988 @lilypond[quote,ragged-right,fragment,verbatim]
989 \new ChordNames \chordmode {
991 \set chordNameSeparator
992 = \markup { \typewriter "|" }
997 @funindex chordRootNamer
999 The root of a chord is usually printed as a letter with an optional
1000 alteration. The transformation from pitch to letter is done by this
1001 function. Special note names (for example, the German @q{H} for a
1002 B-chord) can be produced by storing a new function in this property.
1004 @funindex chordNoteNamer
1005 @item chordNoteNamer
1006 The default is to print single pitch, e.g., the bass note, using the
1007 @code{chordRootNamer}. The @code{chordNoteNamer} property can be set
1008 to a specialized function to change this behavior. For example, the
1009 base can be printed in lower case.
1011 @funindex chordPrefixSpacer
1012 @item chordPrefixSpacer
1013 The @q{m} for minor chords is usually printed right after the root of
1014 the chord. By setting @code{chordPrefixSpacer}, you can fix a spacer
1015 between the root and @q{m}. The spacer is not used when the root
1020 The predefined variables @code{\germanChords},
1021 @code{\semiGermanChords}, @code{\italianChords} and @code{\frenchChords}
1022 set these variables. The effect is
1025 @lilypondfile[ragged-right]{chord-names-languages.ly}
1027 There are also two other chord name schemes implemented: an alternate
1028 Jazz chord notation, and a systematic scheme called Banter chords. The
1029 alternate Jazz notation is also shown on the chart in @ref{Chord name
1030 chart}. Turning on these styles is demonstrated in
1031 @c @lsr{chords,chord-names-jazz.ly}.
1035 @cindex chords, jazz
1040 @funindex \germanChords
1041 @code{\germanChords},
1042 @funindex \semiGermanChords
1043 @code{\semiGermanChords}.
1044 @funindex \italianChords
1045 @code{\italianChords}.
1046 @funindex \frenchChords
1047 @code{\frenchChords}.
1056 Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
1057 @file{scm/@/chord@/-entry@/.scm}.
1062 Chord names are determined solely from the list of pitches. Chord
1063 inversions are not identified, and neither are added bass notes. This
1064 may result in strange chord names when chords are entered with the
1065 @code{< .. >} syntax.
1069 @subsection Figured bass
1072 * Introduction to figured bass::
1073 * Entering figured bass::
1074 * Displaying figured bass::
1077 @node Introduction to figured bass
1078 @subsubsection Introduction to figured bass
1080 @cindex Basso continuo
1082 @c TODO: musicological blurb about FB
1084 LilyPond has support for figured bass
1086 @lilypond[quote,ragged-right,verbatim,fragment]
1088 \new Voice { \clef bass dis4 c d ais g fis}
1089 \new FiguredBass \figuremode {
1090 < 6 >4 < 7\+ >8 < 6+ [_!] >
1097 The support for figured bass consists of two parts: there is an
1098 input mode, introduced by @code{\figuremode}, where you can enter
1099 bass figures as numbers, and there is a context named
1100 @rinternals{FiguredBass} that takes care of making
1101 @rinternals{BassFigure} objects.
1103 Although the support for figured bass may superficially resemble chord
1104 support, it is much simpler. The @code{\figuremode} mode simply
1105 stores the numbers and @rinternals{FiguredBass} context prints them
1106 as entered. There is no conversion to pitches and no realizations of
1107 the bass are played in the MIDI file.
1109 Internally, the code produces markup texts. You can use any of the
1110 markup text properties to override formatting. For example, the
1111 vertical spacing of the figures may be set with @code{baseline-skip}.
1115 * Entering figured bass::
1116 * Displaying figured bass::
1119 @node Entering figured bass
1120 @unnumberedsubsubsec Entering figured bass
1123 In figures input mode, a group of bass figures is delimited by
1124 @code{<} and @code{>}. The duration is entered after the @code{>}
1128 @lilypond[quote,ragged-right,fragment]
1130 \figuremode { <4 6>2 }
1133 Accidentals are added when you append @code{-}, @code{!}, and @code{+}
1134 to the numbers. A plus sign is added when you append @code{\+}, and
1135 diminished fifths and sevenths can be obtained with @code{5/} and @code{7/}.
1138 <4- 6+ 7!>3 <5++> <3--> <7/> r <6\+ 5/>
1140 @lilypond[quote,ragged-right,fragment]
1141 \figures { <4- 6+ 7!>4 <5++> <3--> <7/> r <6\+ 5/> }
1144 Spaces may be inserted by using @code{_}. Brackets are
1145 introduced with @code{[} and @code{]}. You can also include text
1146 strings and text markups, see @ref{Text markup commands}.
1149 < [4 6] 8 [_! 12] >4 < 5 \markup @{ \number 6 \super (1) @} >
1151 @lilypond[quote,ragged-right,fragment]
1153 \figuremode { < [4 6] 8 [_! 12] >4 < 5 \markup{ \tiny \number 6 \super (1)} > }
1157 It is also possible to use continuation lines for repeated figures,
1159 @lilypond[verbatim,relative=1]
1166 \set useBassFigureExtenders = ##t
1173 In this case, the extender lines always replace existing figures.
1175 The @code{FiguredBass} context doesn't pay attention to the actual
1176 bass line. As a consequence, you may have to insert extra figures to
1177 get extender lines below all notes, and you may have to add @code{\!}
1178 to avoid getting an extender line, e.g.
1180 @lilypond[relative=1]
1184 \set useBassFigureExtenders = ##t
1185 <6 4->4. <6 4->16. <6 4->32 <5>8. r16 <6>8 <6\! 5->
1189 f16. g32 f16. g32 f16. g32 f16. g32 f8. es16 d8 es
1194 When using continuation lines, common figures are always put in the
1195 same vertical position. When this is unwanted, you can insert a rest
1196 with @code{r}. The rest will clear any previous alignment. For
1197 example, you can write
1209 Accidentals and plus signs can appear before or after the numbers,
1210 depending on the @code{figuredBassAlterationDirection} and
1211 @code{figuredBassPlusDirection}
1217 \set figuredBassAlterationDirection = #1
1219 \set figuredBassPlusDirection = #1
1221 \set figuredBassAlterationDirection = #-1
1227 Figured bass can also be added to @code{Staff} contexts
1228 directly. In this case, their vertical position is adjusted
1231 @lilypond[ragged-right,fragment,quote]
1233 \new Staff = someUniqueName
1238 %% send to existing Staff.
1239 \context Staff = someUniqueName
1243 \set Staff.useBassFigureExtenders = ##t
1260 @c Notation Reference:
1263 @c Application Usage:
1272 @c Internals Reference:
1277 @node Displaying figured bass
1278 @unnumberedsubsubsec Displaying figured bass
1280 Figured bass is displayed using the @code{FiguredBass} context.
1293 @c Notation Reference:
1296 @c Application Usage:
1305 Internals Reference:
1306 @rinternals{NewBassFigure},
1307 @rinternals{BassFigureAlignment},
1308 @rinternals{BassFigureLine},
1309 @rinternals{BassFigureBracket},
1310 @rinternals{BassFigureContinuation},
1311 @rinternals{FiguredBass}.
1315 By default, this method produces figures above the notes. To get
1316 figures below the notes, use
1319 \override Staff.BassFigureAlignmentPositioning #'direction = #DOWN
1322 When using figured bass above the staff with extender lines and
1323 @code{implicitBassFigures} the lines may become swapped around.
1324 Maintaining order consistently will be impossible when multiple figures
1325 have overlapping extender lines. To avoid this problem, please
1326 use @code{stacking-dir} on @code{BassFigureAlignment}.