]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/notation/chords.itely
Run scripts/auxiliar/update-with-convert-ly.sh
[lilypond.git] / Documentation / notation / chords.itely
1 @c -*- coding: utf-8; mode: texinfo; -*-
2 @ignore
3     Translation of GIT committish: FILL-IN-HEAD-COMMITTISH
4
5     When revising a translation, copy the HEAD committish of the
6     version that you are working on.  For details, see the Contributors'
7     Guide, node Updating translation committishes..
8 @end ignore
9
10 @c \version "2.16.0"
11
12
13 @node Chord notation
14 @section Chord notation
15
16 @lilypondfile[quote]{chords-headword.ly}
17
18 Chords can be entered either as normal notes or in chord mode and displayed
19 using a variety of traditional European chord naming conventions.  Chord
20 names and figured bass notation can also be displayed.
21
22 @menu
23 * Chord mode::
24 * Displaying chords::
25 * Figured bass::
26 @end menu
27
28
29 @node Chord mode
30 @subsection Chord mode
31
32 @cindex chord chords
33
34 Chord mode is used to enter chords using an indicator of the chord
35 structure, rather than the chord pitches.
36
37 @menu
38 * Chord mode overview::
39 * Common chords::
40 * Extended and altered chords::
41 @end menu
42
43 @node Chord mode overview
44 @unnumberedsubsubsec Chord mode overview
45
46 @cindex chord names
47 @cindex chord mode
48
49 Chords can be entered as simultaneous music, as discussed in
50 @ref{Chorded notes}.
51
52 Chords can also be entered in @qq{chord mode}, which is an input
53 mode that focuses on the structures of chords in traditional
54 European music, rather than on specific pitches.  This is
55 convenient for those who are familiar with using chord names to
56 describe chords.  More information on different input modes can be
57 found at @ref{Input modes}.
58
59 @lilypond[verbatim,quote,ragged-right]
60 \chordmode { c1 g a g c }
61 @end lilypond
62
63 Chords entered using chord mode are music elements, and can be
64 transposed just like chords entered using simultaneous music.
65 @code{\chordmode} is absolute, as @code{\relative} has no effect
66 on @code{chordmode} blocks.  However, in @code{\chordmode} the
67 absolute pitches are one octave higher than in note mode.
68
69 Chord mode and note mode can be mixed in sequential music:
70
71 @lilypond[verbatim,quote,ragged-right,relative=1]
72 <c e g>2 <g b d>
73 \chordmode { c2 f }
74 <c e g>2 <g' b d>
75 \chordmode { f2 g }
76 @end lilypond
77
78 @seealso
79 Music Glossary:
80 @rglos{chord}.
81
82 Notation Reference:
83 @ref{Chorded notes},
84 @ref{Input modes}.
85
86 Snippets:
87 @rlsr{Chords}.
88
89 @knownissues
90 Predefined shorthands for articulations and ornaments cannot be used
91 on notes in chord mode, see @ref{Articulations and ornamentations}.
92
93 When chord mode and note mode are mixed in sequential music, and
94 chord mode comes first, the note mode will create a new @code{Staff}
95 context:
96
97 @lilypond[verbatim,quote,ragged-right,relative=1]
98 \chordmode { c2 f }
99 <c e g>2 <g' b d>
100 @end lilypond
101
102 @noindent
103 To avoid this behavior, explicitly create the @code{Staff} context:
104
105 @lilypond[verbatim,quote,ragged-right,relative=1]
106 \new Staff {
107   \chordmode { c2 f }
108   <c e g>2  <g' b d>
109 }
110 @end lilypond
111
112
113 @node Common chords
114 @unnumberedsubsubsec Common chords
115
116 @cindex triads
117 @cindex seventh chords
118 @cindex root of chord
119 @cindex modifiers, in chords.
120 @cindex chord quality
121
122 Major triads are entered by including the root and an
123 optional duration:
124
125 @lilypond[verbatim,quote,ragged-right]
126 \chordmode { c2 f4 g }
127 @end lilypond
128
129 Minor, augmented, and diminished triads are entered by placing
130 @code{:} and a quality modifier string after the duration:
131
132 @lilypond[verbatim,quote,ragged-right]
133 \chordmode { c2:m f4:aug g:dim }
134 @end lilypond
135
136 Seventh chords can be created:
137
138 @lilypond[quote,ragged-right,verbatim]
139 \chordmode { c1:7 c:m7 c:maj7 c:dim7 c:aug7 }
140 @end lilypond
141
142 @funindex aug
143 @funindex dim
144 @funindex maj
145 @funindex m
146
147 The table below shows the actions of the quality modifiers on
148 triads and seventh chords.  The default seventh step added to
149 chords is a minor or flatted seventh, which makes the dominant
150 seventh the basic seventh chord.  All alterations are relative to
151 the dominant seventh.  A more complete table of modifier usage
152 is found at @ref{Common chord modifiers}.
153
154 @c @table @code
155 @multitable @columnfractions .2 .4 .3
156
157 @item
158 @b{Modifier}
159 @tab
160 @b{Action}
161 @tab
162 @b{Example}
163
164 @item
165 None
166 @tab
167 The default action; produces a major triad.
168 @tab
169 @lilypond[line-width=4\cm, noragged-right]
170 \chordmode {
171   \override Staff.TimeSignature #'stencil = ##f
172   c1
173 }
174 @end lilypond
175
176 @item
177 m, m7
178 @tab
179 The minor chord.  This modifier lowers the 3rd.
180 @tab
181 @lilypond[line-width=4\cm, noragged-right]
182 \chordmode {
183   \override Staff.TimeSignature #'stencil = ##f
184   c1:m c:m7
185 }
186 @end lilypond
187
188
189 @item
190 dim, dim7
191 @tab
192 The diminished chord.  This modifier lowers the 3rd, 5th and (if
193 present) the 7th step.
194 @tab
195 @lilypond[line-width=4\cm, noragged-right]
196 \chordmode {
197   \override Staff.TimeSignature #'stencil = ##f
198   c1:dim c:dim7
199 }
200 @end lilypond
201
202 @item
203 aug
204 @tab
205 The augmented chord.  This modifier raises the 5th step.
206 @tab
207 @lilypond[line-width=4\cm, noragged-right]
208 \chordmode {
209   \override Staff.TimeSignature #'stencil = ##f
210   c1:aug
211 }
212 @end lilypond
213
214 @item
215 maj, maj7
216 @tab
217 The major 7th chord.  This modifier adds a raised 7th step.  The
218 @code{7} following @code{maj} is optional.  Do NOT use this modifier
219 to create a major triad.
220 @tab
221 @lilypond[line-width=4\cm, noragged-right]
222 \chordmode {
223   \override Staff.TimeSignature #'stencil = ##f
224   c1:maj c:maj7
225 }
226 @end lilypond
227
228 @end multitable
229
230 @seealso
231 Notation Reference:
232 @ref{Common chord modifiers},
233 @ref{Extended and altered chords}.
234
235 Snippets:
236 @rlsr{Chords}.
237
238 @knownissues
239 Only one quality modifier should be used per chord, typically on the
240 highest step present in the chord.  Chords with more than quality
241 modifier will be parsed without an error or warning, but the results
242 are unpredictable.  Chords that cannot be achieved with a single
243 quality modifier should be altered by individual pitches, as described
244 in @ref{Extended and altered chords}.
245
246
247 @node Extended and altered chords
248 @unnumberedsubsubsec Extended and altered chords
249
250 @cindex extended chords
251 @cindex altered chords
252
253 Chord structures of arbitrary complexity can be created in chord
254 mode.  The modifier string can be used to extend a chord, add or
255 remove chord steps, raise or lower chord steps, and add a bass note
256 or create an inversion.
257
258 The first number following the @code{:} is taken to be the extent
259 of the chord.  The chord is constructed by sequentially adding
260 thirds to the root until the specified number has been reached.
261 Note that the seventh step added as part of an extended chord will be the
262 minor or flatted seventh, not the major seventh.
263 If the extent is not a third (e.g., 6), thirds are added up to the
264 highest third below the extent, and then the step of the extent is
265 added.  The largest possible value for the extent is 13.  Any
266 larger value is interpreted as 13.
267
268 @lilypond[quote,ragged-right,verbatim]
269 \chordmode {
270   c1:2 c:3 c:4 c:5
271   c1:6 c:7 c:8 c:9
272   c1:10 c:11 c:12 c:13
273   c1:14
274 }
275 @end lilypond
276
277 @noindent
278 Note that both @code{c:5} and @code{c} produce a C major triad.
279
280 Since an unaltered 11 does not sound good when combined with an
281 unaltered 13, the 11 is removed from a @code{:13} chord (unless it
282 is added explicitly).
283
284 @lilypond[quote,ragged-right,verbatim]
285 \chordmode {
286   c1:13 c:13.11 c:m13
287 }
288 @end lilypond
289
290 @cindex additions, in chords
291
292 Individual steps can be added to a chord.  Additions follow the
293 extent and are prefixed by a dot (@code{.}).  The basic seventh
294 step added to a chord is the minor or flatted seventh, rather than
295 the major seventh.
296
297 @lilypond[quote,verbatim]
298 \chordmode {
299   c1:5.6 c:3.7.8 c:3.6.13
300 }
301 @end lilypond
302
303 Added steps can be as high as desired.
304
305 @lilypond[quote,verbatim]
306 \chordmode {
307   c4:5.15 c:5.20 c:5.25 c:5.30
308 }
309 @end lilypond
310
311 @cindex chord steps, altering
312
313 Added chord steps can be altered by suffixing a @code{-} or @code{+}
314 sign to the number.  To alter a step that is automatically included
315 as part of the basic chord structure, add it as an altered step.
316
317 @lilypond[quote,verbatim]
318 \chordmode {
319   c1:7+ c:5+.3- c:3-.5-.7-
320 }
321 @end lilypond
322
323 @cindex removals, in chords
324
325 @funindex ^
326
327 Following any steps to be added, a series of steps to be removed
328 is introduced in a modifier string with a prefix of @code{^}.
329 If more than one step is to be removed, the steps to be
330 removed are separated by @code{.} following the
331 initial @code{^}.
332
333 @lilypond[quote,verbatim]
334 \chordmode {
335   c1^3 c:7^5 c:9^3 c:9^3.5 c:13.11^3.7
336 }
337 @end lilypond
338
339 @funindex sus
340
341 The modifier @code{sus} can be added to the modifier string to
342 create suspended chords.  This removes the 3rd step from the chord.
343 Append either @code{2} or @code{4} to add the 2nd or 4th step to the
344 chord.  @code{sus} is equivalent to @code{^3}; @code{sus4} is
345 equivalent to @code{.4^3}.
346
347 @lilypond[quote,ragged-right,verbatim]
348 \chordmode {
349   c1:sus c:sus2 c:sus4 c:5.4^3
350 }
351 @end lilypond
352
353 @funindex /
354 @cindex chord inversions
355 @cindex bass note, for chords
356
357 Inversions (putting a pitch other than the root on the bottom of the
358 chord) and added bass notes can be specified by appending
359 @code{/}@var{pitch} to the chord.
360
361 @lilypond[quote,ragged-right,verbatim]
362 \chordmode {
363   c1 c/g c/f
364 }
365 @end lilypond
366
367 @funindex /+
368
369 A bass note that is part of the chord can be added, instead of
370 moved as part of an inversion, by using @code{/+}@var{pitch}.
371
372 @lilypond[quote,ragged-right,verbatim]
373 \chordmode {
374   c1 c/g c/+g
375 }
376 @end lilypond
377
378 Chord modifiers that can be used to produce a variety of
379 standard chords are shown in
380 @ref{Common chord modifiers}.
381
382 @seealso
383 Notation Reference:
384 @ref{Common chord modifiers}.
385
386 Snippets:
387 @rlsr{Chords}.
388
389 @knownissues
390 Each step can only be present in a chord once.  The following
391 simply produces the augmented chord, since @code{5+} is
392 interpreted last.
393
394 @lilypond[quote,ragged-right,verbatim]
395 \chordmode { c1:5.5-.5+ }
396 @end lilypond
397
398 Only the second inversion can be created by adding a bass
399 note.  The first inversion requires changing the root of
400 the chord.
401
402 @lilypond[quote,ragged-right,verbatim]
403 \chordmode {
404   c'1: c':/g e:6-3-^5 e:m6-^5
405 }
406 @end lilypond
407
408
409 @node Displaying chords
410 @subsection Displaying chords
411
412 Chords can be displayed by name, in addition to the standard display
413 as notes on a staff.
414
415 @menu
416 * Printing chord names::
417 * Customizing chord names::
418 @end menu
419
420 @node Printing chord names
421 @unnumberedsubsubsec Printing chord names
422
423 @cindex printing chord names
424 @cindex chord names
425 @cindex chords
426
427 Chord names are printed in the @code{ChordNames} context:
428
429 @lilypond[verbatim,quote,ragged-right]
430 \new ChordNames {
431   \chordmode {
432     c2 f4. g8
433   }
434 }
435 @end lilypond
436
437 Chords can be entered as simultaneous notes or through the use of
438 chord mode.  The displayed chord name will be the same, regardless
439 of the mode of entry, unless there are inversions or added bass notes:
440
441 @lilypond[verbatim,quote,relative=1]
442 <<
443   \new ChordNames {
444     <c e g>2  <f bes c>
445     <f c' e g>1
446     \chordmode {
447       c2 f:sus4 c1:/f
448     }
449   }
450   {
451     <c e g>2  <f bes c>
452     <f, c' e g>1
453     \chordmode {
454       c2 f:sus4 c1:/f
455     }
456   }
457 >>
458 @end lilypond
459
460 @cindex no chord symbol
461 @cindex N.C. symbol
462 @cindex indicating No Chord in ChordNames
463
464 Rests passed to a @code{ChordNames} context will cause the
465 @code{noChordSymbol} markup to be displayed.
466
467 @lilypond[verbatim, quote, relative=1]
468 <<
469   \new ChordNames \chordmode {
470     c1
471     r1
472     g1
473     c1
474   }
475   \chordmode {
476     c1
477     r1
478     g1
479     c1
480   }
481 >>
482 @end lilypond
483
484 @funindex{\chords}
485
486 @code{\chords @{ ... @}} is a shortcut notation for
487 @code{\new ChordNames @{ \chordmode @{ ... @} @}}.
488
489 @lilypond[verbatim,quote,ragged-right]
490 \chords {
491   c2 f4.:m g8:maj7
492 }
493 @end lilypond
494
495 @lilypond[verbatim,quote,ragged-right]
496 \new ChordNames {
497   \chordmode {
498     c2 f4.:m g8:maj7
499   }
500 }
501 @end lilypond
502
503 @snippets
504
505 @c Keep index entries with following snippet
506 @cindex chords, suppressing repeated
507 @funindex chordChanges
508
509 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
510 {showing-chords-at-changes.ly}
511
512 @c @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
513 @c {adding-bar-lines-to-chordnames-context.ly}
514
515 @lilypondfile[verbatim,quote,ragged-right,texidoc,doctitle]
516 {simple-lead-sheet.ly}
517
518 @seealso
519 Music Glossary:
520 @rglos{chord}.
521
522 Notation Reference:
523 @ref{Writing music in parallel}.
524
525 Snippets:
526 @rlsr{Chords}.
527
528 Internals Reference:
529 @rinternals{ChordNames},
530 @rinternals{ChordName},
531 @rinternals{Chord_name_engraver},
532 @rinternals{Volta_engraver},
533 @rinternals{Bar_engraver}.
534
535 @knownissues
536 Chords containing inversions or altered bass notes are not named
537 properly if entered using simultaneous music.
538
539
540 @node Customizing chord names
541 @unnumberedsubsubsec Customizing chord names
542
543 @cindex customizing chord names
544
545 There is no unique system for naming chords.  Different musical
546 traditions use different names for the same set of chords.  There
547 are also different symbols displayed for a given chord name.  The
548 names and symbols displayed for chord names are customizable.
549
550 @cindex jazz chords
551 @cindex chords, jazz
552
553 The basic chord name layout is a system for Jazz music, proposed
554 by Klaus Ignatzek (see @ressay{Literature list}).  The chord naming
555 system can be modified as described below.  An alternate jazz
556 chord system has been developed using these modifications.
557 The Ignatzek and alternate
558 Jazz notation are shown on the chart in @ref{Chord name chart}.
559
560 @c TODO --  Change this so we don't have a non-verbatim example.
561 @c  Make short example in docs, then move longer example to
562 @c  appendix, where the length of the snippet won't matter.
563
564 In addition to the different naming systems, different note names
565 are used for the root in different languages.  The predefined
566 variables @code{\germanChords}, @code{\semiGermanChords},
567 @code{\italianChords} and @code{\frenchChords} set these variables.
568 The effect is demonstrated here:
569
570 @lilypondfile[ragged-right]{chord-names-languages.ly}
571
572
573 @funindex chordNameLowercaseMinor
574
575 German songbooks may indicate minor chords as lowercase letters,
576 without any @var{m} suffix.  This can be obtained by setting the
577 @code{chordNameLowercaseMinor} property:
578
579 @lilypond[verbatim,quote,ragged-right]
580 \chords {
581   \set chordNameLowercaseMinor = ##t
582   c2 d:m e:m f
583 }
584 @end lilypond
585
586 If none of the existing settings give the desired output, the chord
587 name display can be tuned through the following properties.
588
589 @table @code
590
591 @funindex chordRootNamer
592
593 @item chordRootNamer
594
595 The chord name is usually printed as a letter for the root with an
596 optional alteration.  The transformation from pitch to letter is
597 done by this function.  Special note names (for example, the German
598 @q{H} for a B-chord) can be produced by storing a new function in
599 this property.
600
601 @funindex majorSevenSymbol
602
603 @item majorSevenSymbol
604
605 This property contains the markup object used to follow the output
606 of @code{chordRootNamer} to identify a major 7 chord.  Predefined
607 options are @code{whiteTriangleMarkup} and
608 @code{blackTriangleMarkup}.
609
610 @funindex additionalPitchPrefix
611
612 @item additionalPitchPrefix
613
614 When the chord name contains additional pitches, they can optionally
615 be prefixed with some text.  The default is no prefix, in order to
616 avoid too much visual clutter, but for small numbers of additional
617 pitches this can be visually effective.
618
619 @lilypond[verbatim,quote,ragged-right]
620 \new ChordNames {
621   <c e g d'>    % add9
622   \set additionalPitchPrefix = #"add"
623   <c e g d'>    % add9
624 }
625 @end lilypond
626
627 @funindex chordNoteNamer
628
629 @item chordNoteNamer
630
631 When the chord name contains additional pitches other than the root
632 (e.g., an added bass note), this function is used to print the
633 additional pitch.  By default the pitch is printed using
634 @code{chordRootNamer}.  The @code{chordNoteNamer} property can be set
635 to a specialized function to change this behavior.  For example, the
636 bass note can be printed in lower case.
637
638 @funindex chordNameSeparator
639
640 @item chordNameSeparator
641
642 Different parts of a chord name are normally separated by a small
643 amount of horizontal space.  By setting @code{chordNameSeparator}, you
644 can use any desired markup for a separator.  This does not affect the
645 separator between a chord and its bass note; to customize that, use
646 @code{slashChordSeparator}.
647
648 @lilypond[verbatim,quote,ragged-right]
649 \chords {
650   c4:7.9- c:7.9-/g
651   \set chordNameSeparator = \markup { "/" }
652   \break
653   c4:7.9- c:7.9-/g
654 }
655 @end lilypond
656
657 @funindex slashChordSeparator
658
659 @item slashChordSeparator
660
661 Chords can be played over a bass note other than the conventional root
662 of the chord.  These are known as ``inversions'' or ``slash chords'',
663 because the default way of notating them is with a forward slash
664 between the main chord and the bass note.  Therefore the value of
665 @code{slashChordSeparator} defaults to a forward slash, but you can
666 change it to any markup you choose.
667
668 @lilypond[verbatim,quote,ragged-right]
669 \chords {
670   c4:7.9- c:7.9-/g
671   \set slashChordSeparator = \markup { " over " }
672   \break
673   c4:7.9- c:7.9-/g
674 }
675 @end lilypond
676
677 @funindex chordNameExceptions
678
679 @item chordNameExceptions
680
681 This property is a list of pairs.  The first item in each pair
682 is a set of pitches used to identify the steps present in the chord.
683 The second item is a markup that will follow the @code{chordRootNamer}
684 output to create the chord name.
685
686 @funindex minorChordModifier
687
688 @item minorChordModifier
689
690 Minor chords are often denoted via a @q{m} suffix to the right of the
691 root of the chord.  However some idioms prefer other suffices, such as
692 a minus sign.
693
694 @lilypond[verbatim,quote,ragged-right]
695 \chords {
696   c4:min f:min7
697   \set minorChordModifier = \markup { "-" }
698   \break
699   c4:min f:min7
700 }
701 @end lilypond
702
703 @funindex chordPrefixSpacer
704
705 @item chordPrefixSpacer
706
707 The modifier for minor chords as determined by
708 @code{minorChordModifier} is usually printed immediately to the right
709 of the root of the chord.  A spacer can be placed between the root and
710 the modifier by setting @code{chordPrefixSpacer}.  The spacer is not
711 used when the root is altered.
712
713 @end table
714
715
716 @predefined
717 @funindex major seven symbols
718 @code{\whiteTriangleMarkup},
719 @code{\blackTriangleMarkup},
720 @funindex \germanChords
721 @code{\germanChords},
722 @funindex \semiGermanChords
723 @code{\semiGermanChords},
724 @funindex \italianChords
725 @code{\italianChords},
726 @funindex \frenchChords
727 @code{\frenchChords}.
728 @endpredefined
729
730
731 @snippets
732
733 @cindex exceptions, chord names.
734 @lilypondfile[verbatim,quote,texidoc,doctitle]
735 {chord-name-exceptions.ly}
736
737 @c TODO - tweak snippet to use \blackTriangleMarkup as well
738 @lilypondfile[verbatim,quote,texidoc,doctitle]
739 {chord-name-major7.ly}
740
741 @lilypondfile[verbatim,quote,texidoc,doctitle]
742 {adding-bar-lines-to-chordnames-context.ly}
743
744 @lilypondfile[verbatim,quote,texidoc,doctitle]
745 {volta-below-chords.ly}
746
747 @lilypondfile[verbatim,quote,texidoc,doctitle]
748 {changing-chord-separator.ly}
749
750 @seealso
751 Notation Reference:
752 @ref{Chord name chart},
753 @ref{Common chord modifiers}.
754
755 Essay on automated music engraving:
756 @ressay{Literature list}.
757
758 Installed Files:
759 @file{scm/chords-ignatzek.scm},
760 @file{scm/chord-entry.scm},
761 @file{ly/chord-modifier-init.ly}.
762
763 Snippets:
764 @rlsr{Chords}.
765
766 @knownissues
767 Chord names are determined from both the pitches that are present
768 in the chord and the information on the chord structure that may
769 have been entered in @code{\chordmode}.  If the simultaneous pitches
770 method of entering chords is used, undesired names result from
771 inversions or bass notes.
772
773 @lilypond[quote,ragged-right,verbatim]
774 myChords = \relative c' {
775   \chordmode { c1 c/g c/f }
776   <c e g>1 <g c e> <f c' e g>
777 }
778 <<
779   \new ChordNames { \myChords }
780   \new Staff { \myChords }
781 >>
782 @end lilypond
783
784
785 @node Figured bass
786 @subsection Figured bass
787
788 @c Line width hack because of instrument names
789 @lilypondfile[quote,staffsize=18,line-width=14.5\cm]{figured-bass-headword.ly}
790
791 Figured bass notation can be displayed.
792
793 @menu
794 * Introduction to figured bass::
795 * Entering figured bass::
796 * Displaying figured bass::
797 @end menu
798
799 @node Introduction to figured bass
800 @unnumberedsubsubsec Introduction to figured bass
801
802 @cindex Basso continuo
803 @cindex Thorough bass
804 @cindex Figured bass
805 @cindex Bass, thorough
806 @cindex Bass, figured
807
808 @c TODO: musicological blurb about FB
809
810
811 LilyPond has support for figured bass, also called thorough bass
812 or basso continuo:
813
814 @lilypond[quote,ragged-right,verbatim]
815 <<
816   \new Voice { \clef bass dis4 c d ais g fis}
817   \new FiguredBass {
818     \figuremode {
819       < 6 >4 < 7\+ >8 < 6+ [_!] >
820       < 6 >4 <6 5 [3+] >
821       < _ >4 < 6 5/>4
822     }
823   }
824 >>
825 @end lilypond
826
827 The support for figured bass consists of two parts: there is an
828 input mode, introduced by @code{\figuremode}, that accepts
829 entry of bass figures, and there is a context named
830 @code{FiguredBass} that takes care of displaying
831 @code{BassFigure} objects.  Figured bass can also be displayed
832 in @code{Staff} contexts.
833
834 @code{\figures@{ ... @}} is a shortcut notation for
835 @code{\new FiguredBass @{ \figuremode @{ ... @} @}}.
836
837
838 Although the support for figured bass may superficially resemble chord
839 support, it is much simpler.  @code{\figuremode} mode simply
840 stores the figures and the @code{FiguredBass} context prints them
841 as entered.  There is no conversion to pitches.
842
843 @ignore
844 Figures are created as markup texts.  Any of the standard markup
845 properties can be used to modify the display of figures.  For
846 example, the vertical spacing of the figures may be set with
847 @code{baseline-skip}.
848 @end ignore
849
850 @seealso
851 Music Glossary:
852 @rglos{figured bass}.
853
854 Snippets:
855 @rlsr{Chords}.
856
857
858 @node Entering figured bass
859 @unnumberedsubsubsec Entering figured bass
860
861 @code{\figuremode} is used to switch the input mode to figure mode.
862 More information on different input modes can be
863 found at @ref{Input modes}.
864
865 In figure mode, a group of bass figures is delimited by
866 @code{<} and @code{>}.  The duration is entered after the @code{>}.
867
868 @lilypond[verbatim,quote,ragged-right]
869 \new FiguredBass {
870   \figuremode {
871     <6 4>2
872   }
873 }
874 @end lilypond
875
876
877 Accidentals (including naturals) can be added to figures:
878
879 @lilypond[verbatim,quote,ragged-right]
880 \figures {
881   <7! 6+ 4-> <5++> <3-->
882 }
883 @end lilypond
884
885 Augmented and diminished steps can be indicated:
886
887 @lilypond[verbatim,quote,ragged-right]
888 \figures {
889   <6\+ 5/> <7/>
890 }
891 @end lilypond
892
893 A backward slash through a figure (typically used for raised
894 sixth steps) can be created:
895
896 @lilypond[verbatim,quote,ragged-right]
897 \figures {
898   <6> <6\\>
899 }
900 @end lilypond
901
902 Vertical spaces and brackets can be included in figures:
903
904 @lilypond[verbatim,quote,ragged-right]
905 \figures {
906   <[12 _!] 8 [6  4]>
907 }
908 @end lilypond
909
910 Any text markup can be inserted as a figure:
911
912 @lilypond[verbatim,quote,ragged-right]
913 \figures {
914   <\markup { \tiny \number 6 \super (1) } 5>
915 }
916 @end lilypond
917
918 @c NOTE: We need to include notes any time we use extenders to
919 @c avoid extraneous staff creation due to Staff.use... in
920 @c \bassFigureExtendersOn
921
922 Continuation lines can be used to indicate repeated figures:
923
924 @lilypond[verbatim,quote,ragged-right]
925 <<
926   {
927     \clef bass
928     e4 d c b,
929     e4 d c b,
930   }
931   \figures {
932     \bassFigureExtendersOn
933     <6 4>4 <6 3> <7 3> <7 3>
934     \bassFigureExtendersOff
935     <6 4>4 <6 3> <7 3> <7 3>
936   }
937 >>
938 @end lilypond
939
940 @noindent
941 In this case, the extender lines replace existing figures,
942 unless the continuation lines have been explicitly terminated.
943
944 @lilypond[verbatim,quote,ragged-right]
945 <<
946   \figures {
947     \bassFigureExtendersOn
948     <6 4>4 <6 4> <6\! 4\!> <6 4>
949   }
950   {
951     \clef bass
952     d4 d c c
953   }
954 >>
955 @end lilypond
956
957 The table below summarizes the figure modifiers available.
958
959 @multitable @columnfractions .1 .5 .4
960
961 @item
962 @b{Modifier}
963 @tab
964 @b{Purpose}
965 @tab
966 @b{Example}
967
968 @item
969 +, -, !
970 @tab
971 Accidentals
972 @tab
973 @lilypond[line-width=4\cm]
974 \figures {
975   <7! 6+ 4-> <5++> <3-->
976 }
977 @end lilypond
978
979 @item
980 \+, /
981 @tab
982 Augmented and diminished steps
983 @tab
984 @lilypond[line-width=4\cm]
985 \figures {
986   <6\+ 5/> <7/>
987 }
988 @end lilypond
989
990 @item
991 \\
992 @tab
993 Raised sixth step
994 @tab
995 @lilypond[line-width=4\cm]
996 \figures {
997   <6\\>
998 }
999 @end lilypond
1000
1001 @item
1002 \!
1003 @tab
1004 End of continuation line
1005 @tab
1006 @lilypond[line-width=4\cm]
1007 <<
1008   \figures {
1009     \bassFigureExtendersOn
1010     <6 4> <6 4> <6\! 4\!> <6 4>
1011   }
1012   {
1013     \clef bass
1014     d d c c
1015   }
1016 >>
1017 @end lilypond
1018
1019 @end multitable
1020
1021
1022 @predefined
1023 @cindex figured bass extender lines
1024 @code{\bassFigureExtendersOn},
1025 @code{\bassFigureExtendersOff}.
1026 @endpredefined
1027
1028
1029 @snippets
1030 @lilypondfile[verbatim,quote,texidoc,doctitle]
1031 {changing-the-positions-of-figured-bass-alterations.ly}
1032
1033 @seealso
1034 Snippets:
1035 @rlsr{Chords}.
1036
1037 Internals Reference:
1038 @rinternals{BassFigure},
1039 @rinternals{BassFigureAlignment},
1040 @rinternals{BassFigureLine},
1041 @rinternals{BassFigureBracket},
1042 @rinternals{BassFigureContinuation},
1043 @rinternals{FiguredBass}.
1044
1045
1046 @node Displaying figured bass
1047 @unnumberedsubsubsec Displaying figured bass
1048
1049 Figured bass can be displayed using the @code{FiguredBass} context,
1050 or in most staff contexts.
1051
1052 When displayed in a @code{FiguredBass} context, the vertical location
1053 of the figures is independent of the notes on the staff.
1054
1055 @lilypond[verbatim,ragged-right,quote]
1056 <<
1057   \relative c'' {
1058     c4 c'8 r8 c,4 c'
1059   }
1060   \new FiguredBass {
1061     \figuremode {
1062       <4>4 <10 6>8 s8
1063       <6 4>4 <6 4>
1064     }
1065   }
1066 >>
1067 @end lilypond
1068
1069 @noindent
1070 In the example above, the @code{FiguredBass} context must be
1071 explicitly instantiated to avoid creating a second (empty) staff.
1072
1073
1074 Figured bass can also be added to @code{Staff} contexts
1075 directly.  In this case, the vertical position of the
1076 figures is adjusted automatically.
1077
1078 @lilypond[verbatim,ragged-right,quote]
1079 <<
1080   \new Staff = myStaff
1081   \figuremode {
1082     <4>4 <10 6>8 s8
1083     <6 4>4 <6 4>
1084   }
1085   %% Put notes on same Staff as figures
1086   \context Staff = myStaff
1087   {
1088     \clef bass
1089     c4 c'8 r8 c4 c'
1090   }
1091 >>
1092 @end lilypond
1093
1094
1095 When added in a @code{Staff} context, figured bass can be displayed above
1096 or below the staff.
1097
1098 @lilypond[verbatim,ragged-right,quote]
1099 <<
1100   \new Staff = myStaff
1101   \figuremode {
1102     <4>4 <10 6>8 s8
1103     \bassFigureStaffAlignmentDown
1104     <6 4>4 <6 4>
1105   }
1106   %% Put notes on same Staff as figures
1107   \context Staff = myStaff
1108   {
1109     \clef bass
1110     c4 c'8 r8 c4 c'
1111   }
1112 >>
1113 @end lilypond
1114
1115 @predefined
1116 @cindex figured bass alignment
1117 @code{\bassFigureStaffAlignmentDown},
1118 @code{\bassFigureStaffAlignmentUp},
1119 @code{\bassFigureStaffAlignmentNeutral}.
1120 @endpredefined
1121
1122 @seealso
1123 Snippets:
1124 @rlsr{Chords}.
1125
1126 Internals Reference:
1127 @rinternals{BassFigure},
1128 @rinternals{BassFigureAlignment},
1129 @rinternals{BassFigureLine},
1130 @rinternals{BassFigureBracket},
1131 @rinternals{BassFigureContinuation},
1132 @rinternals{FiguredBass}.
1133
1134 @knownissues
1135 To ensure that continuation lines work properly, it is
1136 safest to use the same rhythm in the figure line as in
1137 the bass line.
1138
1139 @lilypond[verbatim,ragged-right,quote]
1140 <<
1141   {
1142     \clef bass
1143     \repeat unfold 4 { f16. g32 } f8. es16 d8 es
1144   }
1145   \figures {
1146     \bassFigureExtendersOn
1147     % The extenders are correct here, with the same rhythm as the bass
1148     \repeat unfold 4 { <6 4->16. <6 4->32 }
1149     <5>8. r16 <6>8 <6\! 5->
1150   }
1151 >>
1152 <<
1153   {
1154     \clef bass
1155     \repeat unfold 4 { f16. g32 } f8. es16 d8 es
1156   }
1157   \figures {
1158     \bassFigureExtendersOn
1159     % The extenders are incorrect here, even though the timing is the same
1160     <6 4->4 <6 4->4
1161     <5>8. r16 <6>8 <6\! 5->
1162   }
1163 >>
1164 @end lilypond
1165
1166 When using extender lines, adjacent figures with the same number in
1167 a different figure location can cause the figure positions to invert.
1168
1169 @lilypond[verbatim,ragged-right,quote,relative=1]
1170 <<
1171   { fis4 g g, e' }
1172   \figures {
1173     \bassFigureExtendersOn
1174     <6 5>4 <5\! 4> < 5 _!> <6>
1175   }
1176 >>
1177 @end lilypond
1178
1179 To avoid this problem, simply turn on extenders after the figure that
1180 begins the extender line and turn them off at the end of the extender line.
1181
1182 @lilypond[verbatim,ragged-right,quote,relative=1]
1183 <<
1184   { fis4 g g, e' }
1185   \figures {
1186     <6 5>4 <5 4>
1187     \bassFigureExtendersOn
1188     < 5 _!>4 <6>
1189     \bassFigureExtendersOff
1190   }
1191 >>
1192 @end lilypond