]> git.donarmstrong.com Git - lilypond.git/blob - Documentation/user/chords.itely
Update from Carl.
[lilypond.git] / Documentation / user / 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.  See TRANSLATION for details.
7 @end ignore
8
9 @c \version "2.11.38"
10
11
12 @node Chord notation
13 @section Chord notation
14
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.
18
19 @menu
20 * Chord mode::                  
21 * Displaying chords::           
22 * old Modern chords::           
23 * Figured bass::                
24 @end menu
25
26
27 @node Chord mode
28 @subsection Chord mode
29
30 @cindex chord chords
31
32 Chord mode is used to enter chords using an indicator of the chord
33 structure, rather than the chord pitches.
34
35 @menu
36 * Chord mode overview::         
37 * Common chords::               
38 * Extended and altered chords::  
39 @end menu
40
41 @node Chord mode overview
42 @unnumberedsubsubsec Chord mode overview
43
44 @cindex chord names
45 @cindex chord mode
46
47 Chords can be entered as simultaneous music, as discussed in
48 @ref{Chorded notes}.
49
50 @c need to decide about @qq{FOO mode} or @emph{} or whatever.
51 Chords can also be entered in @qq{chord mode}, which is an input
52 mode that focuses on the structures of chords in traditional
53 European music, rather than on specific pitches.  This is
54 convenient for those who are familiar with using chord names to
55 describe chords.  More information on different input modes can be
56 found at @ref{Input modes}.
57
58 @lilypond[verbatim,quote,ragged-right,relative=1]
59 \chordmode { c1 g a g c }
60 @end lilypond
61
62 Chords entered using chord mode are music elements, and can be
63 transposed just like chords entered using simultaneous music.
64
65 @seealso
66
67 Music Glossary:
68 @rglos{chord}.
69
70 Notation Reference:
71 @ref{Chorded notes},
72 @ref{Input modes}.
73
74 Snippets:
75 @rlsr{Chords}
76
77 @node Common chords
78 @unnumberedsubsubsec Common chords
79
80 @cindex triads
81 @cindex seventh chords
82 @cindex root of chord
83 @cindex modifiers, in chords.
84 @cindex chord quality
85
86 Major triads are entered by including the root and an
87 optional duration:
88
89 @lilypond[verbatim,quote,relative=1,ragged-right]
90 \chordmode { c2 f4. g8 }
91 @end lilypond
92
93 @noindent
94 If no duration is entered, the duration of the previous
95 note (or chord) will be used.
96
97 Minor, augmented, and diminished triads are entered by placing
98 @code{:} and a quality modifier string after the duration:
99
100 @lilypond[verbatim,quote,ragged-right,relative=1]
101 \chordmode { c2:m f4:aug g4:dim }
102 @end lilypond
103
104 Seventh chords are created by adding the number 7 at the beginning
105 of the modifier string (for the dominant seventh chord) or after the
106 quality modifier (for the other named seventh chords).
107
108 @lilypond[quote,ragged-right,fragment,verbatim,relative=1]
109 \chordmode {
110 c1 |  c:7 | c:m7 | c:maj7 |
111 c:dim | c:dim7 | c:aug7 | c:maj |
112 }
113 @end lilypond
114
115 @funindex aug
116 @funindex dim
117 @funindex maj
118 @funindex m
119
120 The table belows shows the actions of the quality modifiers on
121 triads and seventh chords.
122
123 @table @code
124
125 @item m
126 The minor chord.  This modifier lowers the 3rd and (if present) the
127 7th step.
128
129 @item dim
130 The diminished chord.  This modifier lowers the 3rd, 5th and (if
131 present) the 7th step.
132
133 @item aug
134 The augmented chord.  This modifier raises the 5th step.
135
136 @item maj
137 The major 7th chord.  This modifier adds a raised 7th step.  The
138 @code{7} following @code{maj} is optional.  Do NOT use this modifier
139 to create a major triad.
140
141 @end table
142
143 @seealso
144
145 Snippets:
146 @rlsr{Chords}
147
148 @node Extended and altered chords
149 @unnumberedsubsubsec Extended and altered chords
150
151 @cindex extended chords
152 @cindex altered chords
153
154 Chord structures of arbitrary complexity can be created in chord
155 mode.  The modifier string can be used to extend a chord, add or
156 remove chord steps, raise or lower chord steps, and add a bass note
157 or create an inversion.
158
159 The first number following the @code{:} is taken to be the extent of
160 the chord.  The chord is constructed by sequentially adding thirds
161 to the root until the specified number has been reached.  If the
162 extent is not a third (e.g., 6), thirds are added up to the highest
163 third below the extent, and then the step of the extent is added.
164
165 @lilypond[quote,ragged-right,fragment,verbatim,relative=1]
166 \chordmode {
167 c4:2 c:3 c:4 c:5
168 c:6 c:7 c:8 c:9
169 c:10 c:11 c:12 c:13
170 }
171 @end lilypond
172
173 Since an unaltered 11 does not sound good when combined with an
174 unaltered 13, the 11 is removed from a @code{:13} chord (unless it
175 is added explicitly).
176
177 @lilypond[quote,ragged-right,fragment,verbatim,relative=1]
178 \chordmode { c1:13 c:13.11 c:m13 }
179 @end lilypond
180
181 The largest possible value for the extent is 13.  Any larger value
182 is interpreted as 13.
183
184 @cindex additions, in chords
185
186 Individual steps can be added to a chord.  Additions follow the
187 extent and are prefixed by a dot (@code{.}).
188
189 @lilypond[quote,verbatim,fragment,relative=1]
190 \chordmode { c1:5.6 c:3.7.8 c:3.6.13 }
191 @end lilypond
192
193 Added steps can be as high as desired.
194
195 @lilypond[quote,verbatim,fragment,relative=1]
196 \chordmode { c4:5.15 c:5.20 c:5.25 c:5.30 }
197 @end lilypond
198
199 @cindex chord steps, altering
200
201 Added chord steps can be altered by suffixing a @code{-} or @code{+}
202 sign to the number.  To alter a step that is lower than the extent,
203 add it as an altered step.
204
205 @lilypond[quote,verbatim,fragment,relative=1]
206 \chordmode { c1:7+ c:5+.3- c:3-.5-.7- }
207 @end lilypond
208
209 @cindex removals, in chords
210
211 @funindex ^
212
213 A step to be removed from the chord  must come at the end of a
214 modifier string and be by @code{^}.  Only one removal with @code{^}
215 is allowed in a modifier string.
216
217 @lilypond[quote,verbatim,fragment,relative=1]
218 \chordmode { c1^3 c:7^5 c:9^3.5 }
219 @end lilypond
220
221 @funindex sus
222
223 The modifier @code{sus} can be added to the modifier string to
224 create suspended chords.  This removes the 3rd step from the chord.
225 Append either @code{2} or @code{4} to add the 2nd or 4th step to the
226 chord.@code{sus} is equivalent to @code{^3}; @code{sus4} is
227 equivalent to @code{.4^3}.
228
229 @lilypond[quote,ragged-right,fragment,verbatim]
230 \chordmode { c1:sus c:sus2 c:sus4 c:5.4^3 }
231 @end lilypond
232
233 It is possible to remove the 3rd step with @code{sus} and remove
234 another step with @code{^} in one modifier string.
235
236 @funindex /
237 @cindex chord inversions
238 @cindex bass note, for chords
239
240 Inversions (putting a pitch other than the root on the bottom of the
241 chord) and added bass notes can be specified by appending
242 @code{/}@var{pitch} to the chord.
243
244 @lilypond[quote,ragged-right,fragment,verbatim, relative=2]
245 \chordmode { c1 c/g c/f }
246 @end lilypond
247
248 @funindex /+
249
250 A bass note that is part of the chord can be added, instead of
251 moved as part of an inversion, by using @code{/+}@var{pitch}.
252
253 @lilypond[quote,ragged-right,fragment,verbatim]
254 \chordmode { c1 c/+g c/+f }
255 @end lilypond
256
257 @seealso
258
259 Snippets:
260 @rlsr{Chords}
261
262 @knownissues
263
264 Each step can only be present in a chord once.  The following
265 simply produces the augmented chord, since @code{5+} is
266 interpreted last.
267
268 @lilypond[quote,ragged-right,verbatim,fragment]
269 \chordmode { c1:5.5-.5+ }
270 @end lilypond
271
272 Only one step can be removed from a chord.  If a chord with multiple
273 removed steps is desired, it must be built through addition of
274 multiple steps.
275
276
277 @node Displaying chords
278 @subsection Displaying chords
279
280 Chords can be displayed by name, in addition to the standard display
281 as notes on a staff.
282
283 @menu
284 * Printing chord names::        
285 @end menu
286
287 @node Printing chord names
288 @unnumberedsubsubsec Printing chord names
289
290 @cindex printing chord names
291 @cindex chord names
292 @cindex chords
293
294 LilyPond has support for printing chord names.  Chord names are
295 printed in a special context, called @rinternals{ChordNames}.
296
297 @lilypond[verbatim,quote,relative=1,ragged-right]
298 \new ChordNames \chordmode { c2 f4. g8 }
299 @end lilypond
300
301 To display both chord names and the notes of chords, use the
302 technique in @ref{Writing music in parallel}.
303
304 @lilypond[verbatim,quote,ragged-right]
305 myChords = \chordmode { c2 f4. g8 }
306 <<
307 \new ChordNames \myChords
308 \myChords
309 >>
310 @end lilypond
311
312 Chords can be entered as simultaneous notes or through the use of
313 chord mode.  The displayed chord name will be the same, regardless
314 of the mode of entry:
315
316 @lilypond[quote,ragged-right,verbatim]
317 twoWays = \relative c' {
318   \chordmode { c2 f:sus4 }
319   { <c e g>  <f bes c> }
320 }
321 <<
322 \new ChordNames \twoWays
323 \new Voice \twoWays
324 >>
325 @end lilypond
326
327
328 If repeats are used in the music, and the volta brackets are to be
329 dispayed above the chord names, @code{voltaOnThisStaff} must be set
330 to @code{##t}.  To add bar indications in the @code{ChordNames}
331 context, add @rinternals{Bar_engraver}.
332
333 @lilypond[ragged-right,verbatim]
334 \new ChordNames \with {
335   \override BarLine #'bar-size = #4
336   voltaOnThisStaff = ##t
337   \consists "Bar_engraver"
338 }
339 \chordmode { \repeat volta 2 {
340   f1:maj7 f:7 bes:7
341   c:maj7
342 } \alternative {
343   ees e
344 }
345 }
346 @end lilypond
347
348 @code{\chords} is a shortcut method used to change the input mode to
349 @code{\chordmode} and create a @code{ChordNames} context, with the
350 following result:
351
352 @lilypond[verbatim,quote,ragged-right, relative=1]
353 \chords { c2 f4.:m g8:maj7 }
354 @end lilypond
355
356
357 @seealso
358
359 Music Glossary:
360 @rglos{chord}.
361
362
363 Notation Reference:
364 @ref{Writing music in parallel}.
365
366
367 Snippets:
368 @c @rlsr{Chords}.
369
370 Internals Reference:
371 @rinternals{ChordNames},
372 @rinternals{Volta_engraver},
373 @rinternals{Bar_engraver}.
374
375 @knownissues
376
377 Chords containing inversions or altered bass notes are not named
378 properly.
379
380 @ignore
381
382 @n ode Customizing chord names
383 @u nnumberedsubsubsec Customizing chord names
384
385 @cindex customizing chord names
386
387 There is no unique system for naming chords.  Different musical
388 traditions use different names for the same set of chords.  There
389 are also different symbols displayed for a given chord name.   The
390 names and symbols displayed for chord names are customizable.
391
392 The default chord name layout is a system for Jazz music, proposed
393 by Klaus Ignatzek (see @ref{Literature list}).  There are also two
394 other chord name schemes implemented: an alternate Jazz chord
395 notation, and a systematic scheme called Banter chords.  The
396 alternate Jazz notation is also shown on the chart in @ref{Chord
397 name chart}.
398
399 In addition to the different naming systems, different note names
400 are used for the root in different languages.  The predefined
401 variables @code{\germanChords}, @code{\semiGermanChords},
402 @code{\italianChords} and @code{\frenchChords} set these variables.
403 The effect is demonstrated here:
404
405 @lilypondfile[ragged-right]{chord-names-languages.ly}
406
407 @C TODO - this paragraph is moved here from an earlier section
408 @c and needs to be corrected.
409 This example also shows that the chord printing routines cannot
410 correctly identify the root of a chord if it has been entered using
411 @code{< .. >} instead of named chord entry.  Therefore, the sixth
412 chord (@code{f bes d}) is not interpreted as an inversion.   In
413 contrast, the third chord, which contains the same notes as the sixth
414 chord, is correctly identified because it was entered in the named
415 chord mode.
416
417 If none of the default settings give the desired output, the chord
418 name display can be tuned through the following properties.
419
420 @c TODO Generate snippet based on the following
421 @c      and add explanation -td
422
423 @table
424 @item
425 @funindex chordNameExceptions
426
427 @code{chordNameExceptions} contains a list of markups used to follow
428 the root note name based on the pitches in the chord.  Creating the
429 list requires four steps.
430
431 The first step is to define sequential music that has the chords to
432 be named with the desired markup (except for the root name) attached
433 to the chord:
434
435 @example
436 FGGChordNames = @{
437   <c e g b d'>1-\markup @{ \super "maj9" @}
438   <c e g a d'>1-\markup @{ \super "6(add9)" @}
439 @}
440 @end example
441
442 The second step is to convert the music from the first step to an
443 exceptions list:
444
445 @example
446 FGGExceptions = #(sequential-music-to-chord-exceptions
447 FGGChordNames #t)
448 @end example
449
450 The third step is to append the default exceptions list (in this
451 case, the Ignatzek exceptions) to the newly-defined exceptions list:
452
453 @example
454 chExceptions = #(append FGGExceptions ignatzekExceptions)
455 @end example
456
457 The final step is to set @code{chordNameExceptions} to the
458 newly-created exceptions list:
459
460 @example
461 \set chordNameExceptions = #chExceptions
462 @end example
463
464 The entire process is illustrated below:
465
466 @lilypond[quote,ragged-right,verbatim,ragged-right]
467 FGGChordNames = {
468   <c e g b d'>1-\markup { \super "maj9" }
469   <c e g a d'>1-\markup { \super "6(add9)" }
470 }
471 FGGExceptions = #(sequential-music-to-chord-exceptions
472 FGGChordNames #t)
473 chExceptions = #(append FGGChordNames
474  ignatzekExceptions)
475
476 chordStuff = \chordmode
477 {
478 % standard names
479 g1:maj9
480 g1:6.9
481 % names with FGG's custom exceptions
482 \set chordNameExceptions = #chExceptions
483 g1:maj9
484 g1:6.9
485 }
486
487 \score
488 {
489 \new ChordNames \chordStuff
490 }
491 @end lilypond
492
493
494 @funindex majorSevenSymbol @item majorSevenSymbol This property
495 contains the markup object used as part of the printed chord name to
496 identify a major 7 chord.  Predefined options are
497 @code{whiteTriangleMarkup} and @code{blackTriangleMarkup}.
498
499 @funindex chordNameSeparator
500 @item chordNameSeparator
501 Different parts of a chord name are normally separated by a slash.
502 By setting @code{chordNameSeparator}, you can use any desired markup
503 for a separator, e.g.,
504 @lilypond[quote,ragged-right,fragment,verbatim]
505 \new ChordNames \chordmode {
506   c:7sus4
507   \set chordNameSeparator
508     = \markup { \typewriter "|" }
509   c:7sus4
510 }
511 @end lilypond
512
513 @funindex chordRootNamer
514 @item chordRootNamer
515 The chord name is usually printed as a letter for the root with an
516 optional alteration.  The transformation from pitch to letter is
517 done by this function.  Special note names (for example, the German
518 @q{H} for a B-chord) can be produced by storing a new function in
519 this property.
520
521 @funindex chordNoteNamer @item chordNoteNamer When the chord name
522 contains an additional pitch besides the root (e.g., an added bass
523 note), this function is used to print the additional pitch.  By
524 default the pitch is printed using @code{chordRootNamer}.  The
525 @code{chordNoteNamer} property can be set to a specialized function
526 to change this behavior.  For example, the bass note can be printed
527 in lower case.
528
529 @funindex chordPrefixSpacer
530 @item chordPrefixSpacer
531 The @q{m} for minor chords is usually printed immediately to the
532 right of the root of the chord.  By setting
533 @code{chordPrefixSpacer}, you can fix a spacer between the root and
534 @q{m}.  The spacer is not used when the root is altered.
535
536 @end table
537
538
539
540
541 @cindex Banter
542 @cindex jazz chords
543 @cindex chords, jazz
544
545 @predefined
546 @funindex major seven symbols
547 @code{\whiteTriangleMarkup}
548 @code{\blackTriangleMarkup}
549 @funindex \germanChords
550 @code{\germanChords},
551 @funindex \semiGermanChords
552 @code{\semiGermanChords},
553 @funindex \italianChords
554 @code{\italianChords},
555 @funindex \frenchChords
556 @code{\frenchChords}.
557
558
559 @snippets
560 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
561 {chord-names-jazz.ly}
562
563 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
564 {chord-name-exceptions.ly}
565 @cindex exceptions, chord names.
566
567 @lilypondfile[verbatim,lilyquote,texidoc,doctitle]
568 {chord-name-major7.ly}
569
570 @seealso
571 @c Music Glossary:
572 @c @rglos{}.
573
574 @c Learning Manual:
575 @c @rlearning{}.
576
577 @c Notation Reference:
578 @c @ruser{}.
579
580 @c Application Usage:
581 @c @rprogram{}.
582
583 Installed Files:
584 @file{scm/@/chords@/-ignatzek@/.scm},
585 @file{scm/@/chord@/-entry@/.scm},
586 @file{ly/@/chord@/-modifier@/-init@/.ly}.
587
588 @c Snippets: @c @rlsr{}.
589
590 @c Internals Reference:
591 @c @rinternals{}.
592
593 @knownissues
594
595 When chords are entered with the @code{< .. >} syntax, the root and
596 any added bass notes are not identified.  In this  case, chord names
597 are determined solely from the list of pitches.  This may result in
598 strange chord names
599
600 @n ode Lead sheets
601 @u nnumberedsubsubsec Lead sheets
602
603 @cindex lead sheet
604
605 For lead sheets, chords are not printed on staves, but as names on a
606 line for themselves.  This is achieved by using a @code{ChordNames}
607 context simultaneously with the @code{Staff} context.  The
608 @code{\chords} keyword can be used as a shortcut for @code{\new
609 ChordNames \chordmode}.
610
611 When put together, chord names, a melody, and lyrics form a lead
612 sheet:
613
614 @lilypond[verbatim,quote,ragged-right]
615 <<
616   \chords { c2 g:sus4 f e }
617   \relative c'' {
618     a4 e c8 e r4
619     b2 c4( d)
620   }
621   \addlyrics { One day this shall be free __ }
622 >>
623 @end lilypond
624
625 @c @predefined
626
627 @c @snippets
628
629 @seealso
630 @c Music Glossary:
631 @c @rglos{}.
632
633 @c Learning Manual:
634 @c @rlearning{}.
635
636 @c Notation Reference:
637 @c @ruser{}.
638
639 @c Application Usage:
640 @c @rprogram{}.
641
642 @c Installed Files:
643 @c @file{}.
644
645 @c Snippets:
646 @c @rlsr{}.
647
648 @c Internals Reference:
649 @c @rinternals{}.
650
651 @c @knownissues
652
653
654
655
656 @end ignore
657
658
659 @node old Modern chords
660 @subsection old Modern chords
661
662 @menu
663 * Entering chord names::        
664 * Lead sheets::                 
665 * old Printing chord names::    
666 @end menu
667
668 @node Entering chord names
669 @subsubsection Entering chord names
670 @cindex chord names
671
672 LilyPond has support for printing chord names.  Chords may be entered
673 in musical chord notation, i.e., @code{< .. >}, but they can also be
674 entered by name.  Internally, the chords are represented as a set of
675 pitches, so they can be transposed
676
677
678 @lilypond[quote,ragged-right,verbatim,ragged-right]
679 twoWays = \transpose c c' {
680   \chordmode {
681     c1 f:sus4 bes/f
682   }
683   <c e g>
684   <f bes c'>
685   <f bes d'>
686 }
687
688 << \new ChordNames \twoWays
689    \new Voice \twoWays >>
690 @end lilypond
691
692 This example also shows that the chord printing routines do not try to
693 be intelligent.  The last chord (@code{f bes d}) is not interpreted as
694 an inversion.
695
696 Note that the duration of chords must be specified outside the
697 @code{<>}.
698
699 @example
700 <c e g>2
701 @end example
702
703 @c TODO Generate snippet based on the following
704 @c      and add explanation -td
705
706 Custom chord names may be generated:
707
708 @lilypond[quote,ragged-right,verbatim,ragged-right]
709 FGGChordNames = {
710   <c e g b d'>1-\markup { \super "maj9" }
711   <c e g a d'>1-\markup { \super "6(add9)" }
712 }
713 chExceptions = #(append
714 (sequential-music-to-chord-exceptions
715 FGGChordNames #t) ignatzekExceptions)
716
717 chordStuff = \chordmode
718 {
719 % standard names
720 g1:maj9
721 g1:6.9
722 % names with FGG's custom exceptions
723 \set chordNameExceptions = #chExceptions
724 g1:maj9
725 g1:6.9
726 }
727
728 \score
729 {
730 \new ChordNames \chordStuff
731 }
732 @end lilypond
733
734
735
736 @node Lead sheets
737 @subsubsection Lead sheets
738
739 @cindex lead sheet
740
741 For lead sheets, chords are not printed on staves, but as names on
742 a line for themselves.  This is achieved by using @code{\chords}
743 instead of @code{\chordmode}.
744
745 When put together, chord names, lyrics and a melody form a lead
746 sheet,
747
748 @lilypond[verbatim,quote,ragged-right]
749 <<
750   \chords { c2 g:sus4 f e }
751   \relative c'' {
752     a4 e c8 e r4
753     b2 c4( d)
754   }
755   \addlyrics { One day this shall be free __ }
756 >>
757 @end lilypond
758
759
760
761 @node old Printing chord names
762 @subsubsection old Printing chord names
763
764 @cindex printing chord names
765 @cindex chord names
766 @cindex chords
767
768 For displaying printed chord names, use the @rinternals{ChordNames} context.
769 The chords may be entered either using the notation
770 described above, or directly using @code{<} and @code{>}
771
772 @lilypond[quote,verbatim,ragged-right]
773 harmonies = {
774   \chordmode {a1 b c} <d' f' a'> <e' g' b'>
775 }
776 <<
777   \new ChordNames \harmonies
778   \new Staff \harmonies
779 >>
780 @end lilypond
781
782 You can make the chord changes stand out by setting
783 @rinternals{ChordNames}.@code{chordChanges} to true.  This will only
784 display chord names when there is a change in the chords scheme and at
785 the start of a new line
786
787 @lilypond[quote,verbatim,ragged-right]
788 harmonies = \chordmode {
789   c1:m c:m \break c:m c:m d
790 }
791 <<
792   \new ChordNames {
793     \set chordChanges = ##t
794     \harmonies }
795   \new Staff \transpose c c' \harmonies
796 >>
797 @end lilypond
798
799 The previous examples all show chords over a staff.  This is not
800 necessary.  Chords may also be printed separately.  It may be necessary
801 to add @rinternals{Volta_engraver} and @rinternals{Bar_engraver}
802 for showing repeats.
803
804 @lilypond[ragged-right,verbatim]
805 \new ChordNames \with {
806   \override BarLine #'bar-size = #4
807   \consists Bar_engraver
808   \consists "Volta_engraver"
809 }
810 \chordmode { \repeat volta 2 {
811   f1:maj7 f:7 bes:7
812   c:maj7
813 } \alternative {
814   es e
815 }
816 }
817 @end lilypond
818
819
820 The default chord name layout is a system for Jazz music, proposed by
821 Klaus Ignatzek (see @ref{Literature list}).  It can be tuned through the
822 following properties
823
824 @table @code
825 @funindex chordNameExceptions
826 @item chordNameExceptions
827 This is a list that contains the chords that have special formatting.
828
829 The exceptions list should be encoded as
830 @example
831 @{ <c f g bes>1 \markup @{ \super "7" "wahh" @} @}
832 @end example
833
834 To get this information into @code{chordNameExceptions} takes a little
835 maneuvering.  The following code transforms @code{chExceptionMusic}
836 (which is a sequential music) into a list of exceptions.
837 @example
838 (sequential-music-to-chord-exceptions chExceptionMusic #t)
839 @end example
840 Then,
841 @example
842 (append
843  (sequential-music-to-chord-exceptions chExceptionMusic #t)
844  ignatzekExceptions)
845 @end example
846 adds the new exceptions to the default ones, which are defined in
847 @file{ly/@/chord@/-modifier@/-init@/.ly}.
848
849 For an example of tuning this property, see also
850 @c @lsr{chords,chord@/-name@/-exceptions@/.ly}
851 @cindex exceptions, chord names.
852
853
854 @funindex majorSevenSymbol
855 @item majorSevenSymbol
856 This property contains the markup object used for the 7th step, when
857 it is major.  Predefined options are @code{whiteTriangleMarkup} and
858 @code{blackTriangleMarkup}.  See
859 @c @lsr{chords,chord@/-name@/-major7@/.ly} for an example.
860
861 @funindex chordNameSeparator
862 @item chordNameSeparator
863 Different parts of a chord name are normally separated by a
864 slash.  By setting @code{chordNameSeparator}, you can specify other
865 separators, e.g.,
866 @lilypond[quote,ragged-right,fragment,verbatim]
867 \new ChordNames \chordmode {
868   c:7sus4
869   \set chordNameSeparator
870     = \markup { \typewriter "|" }
871   c:7sus4
872 }
873 @end lilypond
874
875 @funindex chordRootNamer
876 @item chordRootNamer
877 The root of a chord is usually printed as a letter with an optional
878 alteration.  The transformation from pitch to letter is done by this
879 function.  Special note names (for example, the German @q{H} for a
880 B-chord) can be produced by storing a new function in this property.
881
882 @funindex chordNoteNamer
883 @item chordNoteNamer
884 The default is to print single pitch, e.g., the bass note, using the
885 @code{chordRootNamer}.  The @code{chordNoteNamer} property can be set
886 to a specialized function to change this behavior.  For example, the
887 base can be printed in lower case.
888
889 @funindex chordPrefixSpacer
890 @item chordPrefixSpacer
891 The @q{m} for minor chords is usually printed right after the root of
892 the chord.  By setting @code{chordPrefixSpacer}, you can fix a spacer
893 between the root and @q{m}.  The spacer is not used when the root
894 is altered.
895
896 @end table
897
898 The predefined variables @code{\germanChords},
899 @code{\semiGermanChords}, @code{\italianChords} and @code{\frenchChords}
900 set these variables.  The effect is
901 demonstrated here,
902
903 @lilypondfile[ragged-right]{chord-names-languages.ly}
904
905 There are also two other chord name schemes implemented: an alternate
906 Jazz chord notation, and a systematic scheme called Banter chords.  The
907 alternate Jazz notation is also shown on the chart in @ref{Chord name
908 chart}.  Turning on these styles is demonstrated in
909 @c @lsr{chords,chord-names-jazz.ly}.
910
911 @cindex Banter
912 @cindex jazz chords
913 @cindex chords, jazz
914
915
916 @predefined
917
918 @funindex \germanChords
919 @code{\germanChords},
920 @funindex \semiGermanChords
921 @code{\semiGermanChords}.
922 @funindex \italianChords
923 @code{\italianChords}.
924 @funindex \frenchChords
925 @code{\frenchChords}.
926
927
928
929
930 @seealso
931
932 Examples:
933
934 Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
935 @file{scm/@/chord@/-entry@/.scm}.
936
937
938 @knownissues
939
940 Chord names are determined solely from the list of pitches.  Chord
941 inversions are not identified, and neither are added bass notes.  This
942 may result in strange chord names when chords are entered with the
943 @code{< .. >} syntax.
944
945
946 @node Figured bass
947 @subsection Figured bass
948
949 @menu
950 * Introduction to figured bass::  
951 * Entering figured bass::       
952 * Displaying figured bass::     
953 @end menu
954
955 @node Introduction to figured bass
956 @subsubsection Introduction to figured bass
957
958 @cindex Basso continuo
959
960 @c TODO: musicological blurb about FB
961
962 LilyPond has support for figured bass
963
964 @lilypond[quote,ragged-right,verbatim,fragment]
965 <<
966   \new Voice { \clef bass dis4 c d ais g fis}
967   \new FiguredBass \figuremode {
968     < 6 >4 < 7\+ >8 < 6+ [_!] >
969     < 6 >4 <6 5 [3+] >
970     < _ >4 < 6 5/>4
971   }
972 >>
973 @end lilypond
974
975 The support for figured bass consists of two parts: there is an
976 input mode, introduced by @code{\figuremode}, where you can enter
977 bass figures as numbers, and there is a context named
978 @rinternals{FiguredBass} that takes care of making
979 @rinternals{BassFigure} objects.
980
981 Although the support for figured bass may superficially resemble chord
982 support, it is much simpler.  The @code{\figuremode} mode simply
983 stores the numbers and @rinternals{FiguredBass} context prints them
984 as entered.  There is no conversion to pitches and no realizations of
985 the bass are played in the MIDI file.
986
987 Internally, the code produces markup texts.  You can use any of the
988 markup text properties to override formatting.  For example, the
989 vertical spacing of the figures may be set with @code{baseline-skip}.
990
991
992 @menu
993 * Entering figured bass::
994 * Displaying figured bass::
995 @end menu
996
997 @node Entering figured bass
998 @unnumberedsubsubsec Entering figured bass
999
1000
1001 In figures input mode, a group of bass figures is delimited by
1002 @code{<} and @code{>}.  The duration is entered after the @code{>}
1003 @example
1004 <4 6>2
1005 @end example
1006 @lilypond[quote,ragged-right,fragment]
1007 \new FiguredBass
1008 \figuremode { <4 6>2 }
1009 @end lilypond
1010
1011 Accidentals are added when you append @code{-}, @code{!}, and @code{+}
1012 to the numbers.  A plus sign is added when you append @code{\+}, and
1013 diminished fifths and sevenths can be obtained with @code{5/} and @code{7/}.
1014
1015 @example
1016 <4- 6+ 7!>3 <5++> <3--> <7/> r <6\+ 5/>
1017 @end example
1018 @lilypond[quote,ragged-right,fragment]
1019 \figures { <4- 6+ 7!>4 <5++> <3--> <7/> r <6\+ 5/> }
1020 @end lilypond
1021
1022 Spaces may be inserted by using @code{_}.  Brackets are
1023 introduced with @code{[} and @code{]}.  You can also include text
1024 strings and text markups, see @ref{Text markup commands}.
1025
1026 @example
1027 < [4 6] 8 [_! 12] >4 < 5 \markup @{ \number 6 \super (1) @} >
1028 @end example
1029 @lilypond[quote,ragged-right,fragment]
1030 \new FiguredBass
1031 \figuremode { < [4 6] 8 [_! 12] >4 < 5 \markup{ \tiny \number 6 \super (1)} > }
1032 @end lilypond
1033
1034
1035 It is also possible to use continuation lines for repeated figures,
1036
1037 @lilypond[verbatim,relative=1]
1038 <<
1039   \new Staff {
1040     \clef bass
1041     c4 c c
1042   }
1043   \figures {
1044     \set useBassFigureExtenders = ##t
1045     <4 6>4 <3 6> <3 7>
1046   }
1047 >>
1048 @end lilypond
1049
1050 @noindent
1051 In this case, the extender lines always replace existing figures.
1052
1053 The @code{FiguredBass} context doesn't pay attention to the actual
1054 bass line.  As a consequence, you may have to insert extra figures to
1055 get extender lines below all notes, and you may have to add @code{\!}
1056 to avoid getting an extender line, e.g.
1057
1058 @lilypond[relative=1]
1059 <<
1060   \new Voice
1061   \figures {
1062     \set useBassFigureExtenders = ##t
1063     <6 4->4. <6 4->16. <6 4->32 <5>8. r16 <6>8 <6\! 5->
1064   }
1065   {
1066     \clef bass
1067     f16. g32 f16. g32 f16. g32 f16. g32 f8. es16 d8 es
1068   }
1069 >>
1070 @end lilypond
1071
1072 When using continuation lines, common figures are always put in the
1073 same vertical position.  When this is unwanted, you can insert a rest
1074 with @code{r}.  The rest will clear any previous alignment.  For
1075 example, you can write
1076
1077 @example
1078 <4 6>8 r8
1079 @end example
1080
1081 @noindent
1082 instead of
1083 @example
1084 <4 6>4
1085 @end example
1086
1087 Accidentals and plus signs can appear before or after the numbers,
1088 depending on the @code{figuredBassAlterationDirection} and
1089 @code{figuredBassPlusDirection}
1090 properties
1091
1092 @lilypond
1093   \figures {
1094     <6\+> <5+> <6 4-> r
1095     \set figuredBassAlterationDirection = #1
1096     <6\+> <5+> <6 4-> r
1097     \set figuredBassPlusDirection = #1
1098     <6\+> <5+> <6 4-> r
1099     \set figuredBassAlterationDirection = #-1
1100     <6\+> <5+> <6 4-> r
1101   }
1102 @end lilypond
1103
1104
1105 Figured bass can also be added to @code{Staff} contexts
1106 directly.  In this case, their vertical position is adjusted
1107 automatically.
1108
1109 @lilypond[ragged-right,fragment,quote]
1110 <<
1111   \new Staff = someUniqueName
1112   \relative c'' {
1113     c4 c'8 r8 c,4 c'
1114   }
1115
1116   %% send to existing Staff.
1117   \context Staff = someUniqueName
1118   \figuremode {
1119     <4>4 <6 10>8 s8
1120
1121     \set Staff.useBassFigureExtenders = ##t
1122     <4 6>4 <4 6>
1123   }
1124 >>
1125 @end lilypond
1126
1127 @c @predefined
1128
1129 @c @snippets
1130
1131 @seealso
1132 @c Music Glossary:
1133 @c @rglos{}.
1134
1135 @c Learning Manual:
1136 @c @rlearning{}.
1137
1138 @c Notation Reference:
1139 @c @ruser{}.
1140
1141 @c Application Usage:
1142 @c @rprogram{}.
1143
1144 @c Installed Files:
1145 @c @file{}.
1146
1147 @c Snippets:
1148 @c @rlsr{}.
1149
1150 @c Internals Reference:
1151 @c @rinternals{}.
1152
1153 @c @knownissues
1154
1155 @node Displaying figured bass
1156 @unnumberedsubsubsec Displaying figured bass
1157
1158 Figured bass is displayed using the @code{FiguredBass} context.
1159
1160 @c @predefined
1161
1162 @c @snippets
1163
1164 @seealso
1165 @c Music Glossary:
1166 @c @rglos{}.
1167
1168 @c Learning Manual:
1169 @c @rlearning{}.
1170
1171 @c Notation Reference:
1172 @c @ruser{}.
1173
1174 @c Application Usage:
1175 @c @rprogram{}.
1176
1177 @c Installed Files:
1178 @c @file{}.
1179
1180 @c Snippets:
1181 @c @rlsr{}.
1182
1183 Internals Reference:
1184 @rinternals{NewBassFigure},
1185 @rinternals{BassFigureAlignment},
1186 @rinternals{BassFigureLine},
1187 @rinternals{BassFigureBracket},
1188 @rinternals{BassFigureContinuation},
1189 @rinternals{FiguredBass}.
1190
1191 @knownissues
1192
1193 By default, this method produces figures above the notes.  To get
1194 figures below the notes, use
1195
1196 @example
1197 \override Staff.BassFigureAlignmentPositioning #'direction = #DOWN
1198 @end example
1199
1200 When using figured bass above the staff with extender lines and
1201 @code{implicitBassFigures} the lines may become swapped around.
1202 Maintaining order consistently will be impossible when multiple figures
1203 have overlapping extender lines.  To avoid this problem, please
1204 use @code{stacking-dir} on @code{BassFigureAlignment}.
1205
1206
1207 @seealso