]> git.donarmstrong.com Git - lilypond.git/blobdiff - Documentation/user/chords.itely
Update from Carl.
[lilypond.git] / Documentation / user / chords.itely
index 7954d6c37901d36fa749d7a3530e17eff697a27e..b881cb90a7b342ff307e8ff6c9a68bf4b1390f7d 100644 (file)
 @node Chord notation
 @section Chord notation
 
 @node Chord notation
 @section Chord notation
 
-Intro text.
+Chords can be entered in chord mode, which recognizes some
+traditional European chord naming conventions.  Chord names can also
+be displayed.  In addition, figured bass notation can be displayed.
 
 @menu
 
 @menu
-* Modern chords::
-* Figured bass::
+* Chord mode::                  
+* Displaying chords::           
+* old Modern chords::           
+* Figured bass::                
 @end menu
 
 
 @end menu
 
 
-@node Modern chords
-@subsection Modern chords
+@node Chord mode
+@subsection Chord mode
+
+@cindex chord chords
+
+Chord mode is used to enter chords using an indicator of the chord
+structure, rather than the chord pitches.
 
 @menu
 
 @menu
-* Chord modes::
-* Entering chord names::
-* Building chords::
-* Lead sheets::
-* Printing chord names::
+* Chord mode overview::         
+* Common chords::               
+* Extended and altered chords::  
 @end menu
 
 @end menu
 
-@cindex chords
+@node Chord mode overview
+@unnumberedsubsubsec Chord mode overview
+
 @cindex chord names
 @cindex chord names
+@cindex chord mode
 
 
-@node Chord modes
-@subsubsection Chord modes
+Chords can be entered as simultaneous music, as discussed in
+@ref{Chorded notes}.
 
 
-In popular music it is common to denote accompaniment with chord
-names.  Such chords can be entered like notes,
+Chords can also be entered in @qq{chord mode}, which is an input
+mode that focuses on the structures of chords in traditional
+European music, rather than on specific pitches.  This is
+convenient for those who are familiar with using chord names to
+describe chords.  More information on different input modes can be
+found at @ref{Input modes}.
 
 
-@lilypond[verbatim,quote,ragged-right]
-\chordmode { c2 f4. g8 }
+@lilypond[verbatim,quote,ragged-right,relative=1]
+\chordmode { c1 g a g c }
 @end lilypond
 
 @end lilypond
 
-Now each pitch is read as the root of a chord instead of a note.
-This mode is switched on with @code{\chordmode}.  Other chords can
-be created by adding modifiers after a colon.  The following
-example shows a few common modifiers:
+Chords entered using chord mode are music elements, and can be
+transposed just like chords entered using simultaneous music.
 
 
-@lilypond[verbatim,quote,ragged-right]
-\chordmode { c2 f4:m g4:maj7 gis1:dim7 }
+@seealso
+
+Music Glossary:
+@rglos{chord}.
+
+Notation Reference:
+@ref{Chorded notes},
+@ref{Input modes}.
+
+Snippets:
+@rlsr{Chords}
+
+@node Common chords
+@unnumberedsubsubsec Common chords
+
+@cindex triads
+@cindex seventh chords
+@cindex root of chord
+@cindex modifiers, in chords.
+@cindex chord quality
+
+Major triads are entered by including the root and an
+optional duration:
+
+@lilypond[verbatim,quote,relative=1,ragged-right]
+\chordmode { c2 f4 g }
+@end lilypond
+
+Minor, augmented, and diminished triads are entered by placing
+@code{:} and a quality modifier string after the duration:
+
+@lilypond[verbatim,quote,ragged-right,relative=1]
+\chordmode { c2:m f4:aug g:dim }
+@end lilypond
+
+Seventh chords may be created:
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+\chordmode {
+  c1:7 c:m7 c:maj7 c:dim7 c:aug7
+}
+@end lilypond
+
+@funindex aug
+@funindex dim
+@funindex maj
+@funindex m
+
+The table belows shows the actions of the quality modifiers on
+triads and seventh chords.
+
+@table @code
+
+@item m
+The minor chord.  This modifier lowers the 3rd and (if present) the
+7th step.
+
+@item dim
+The diminished chord.  This modifier lowers the 3rd, 5th and (if
+present) the 7th step.
+
+@item aug
+The augmented chord.  This modifier raises the 5th step.
+
+@item maj
+The major 7th chord.  This modifier adds a raised 7th step.  The
+@code{7} following @code{maj} is optional.  Do NOT use this modifier
+to create a major triad.
+
+@end table
+
+@c TODO -- perhaps add warning about c and c:maj being different, while
+@c   c:maj and c:maj7 are the same
+
+@seealso
+
+Snippets:
+@rlsr{Chords}
+
+@node Extended and altered chords
+@unnumberedsubsubsec Extended and altered chords
+
+@cindex extended chords
+@cindex altered chords
+
+Chord structures of arbitrary complexity can be created in chord
+mode.  The modifier string can be used to extend a chord, add or
+remove chord steps, raise or lower chord steps, and add a bass note
+or create an inversion.
+
+The first number following the @code{:} is taken to be the extent
+of the chord.  The chord is constructed by sequentially adding
+thirds to the root until the specified number has been reached.
+If the extent is not a third (e.g., 6), thirds are added up to the
+highest third below the extent, and then the step of the extent is
+added.  The largest possible value for the extent is 13.  Any
+larger value is interpreted as 13.
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+\chordmode {
+c:2 c:3 c:4 c:5
+c:6 c:7 c:8 c:9
+c:10 c:11 c:12 c:13
+}
+@end lilypond
+
+Since an unaltered 11 does not sound good when combined with an
+unaltered 13, the 11 is removed from a @code{:13} chord (unless it
+is added explicitly).
+
+@lilypond[quote,ragged-right,fragment,verbatim,relative=1]
+\chordmode { c1:13 c:13.11 c:m13 }
+@end lilypond
+
+@cindex additions, in chords
+
+Individual steps can be added to a chord.  Additions follow the
+extent and are prefixed by a dot (@code{.}).
+
+@lilypond[quote,verbatim,fragment,relative=1]
+\chordmode { c1:5.6 c:3.7.8 c:3.6.13 }
+@end lilypond
+
+Added steps can be as high as desired.
+
+@lilypond[quote,verbatim,fragment,relative=1]
+\chordmode { c4:5.15 c:5.20 c:5.25 c:5.30 }
+@end lilypond
+
+@cindex chord steps, altering
+
+Added chord steps can be altered by suffixing a @code{-} or @code{+}
+sign to the number.  To alter a step that is lower than the extent,
+add it as an altered step.
+
+@lilypond[quote,verbatim,fragment,relative=1]
+\chordmode { c1:7+ c:5+.3- c:3-.5-.7- }
+@end lilypond
+
+@cindex removals, in chords
+
+@funindex ^
+
+A step to be removed from the chord  must come at the end of a
+modifier string and be by @code{^}.  Only one removal with @code{^}
+is allowed in a modifier string.
+
+@lilypond[quote,verbatim,fragment,relative=1]
+\chordmode { c1^3 c:7^5 c:9^3.5 }
 @end lilypond
 
 @end lilypond
 
-@cindex Chords mode
+@funindex sus
 
 
-In chord mode sets of pitches (chords) are entered with normal note
-names.  A chord is entered by the root, which is entered like a
-normal pitch
+The modifier @code{sus} can be added to the modifier string to
+create suspended chords.  This removes the 3rd step from the chord.
+Append either @code{2} or @code{4} to add the 2nd or 4th step to the
+chord.  @code{sus} is equivalent to @code{^3}; @code{sus4} is
+equivalent to @code{.4^3}.
 
 @lilypond[quote,ragged-right,fragment,verbatim]
 
 @lilypond[quote,ragged-right,fragment,verbatim]
-\chordmode { es4. d8 c2 }
+\chordmode { c1:sus c:sus2 c:sus4 c:5.4^3 }
 @end lilypond
 
 @end lilypond
 
-@noindent
-The mode is introduced by the keyword @code{\chordmode}.
+It is possible to remove the 3rd step with @code{sus} and remove
+another step with @code{^} in one modifier string.
 
 
-@cindex chord entry
-@cindex chord mode
+@funindex /
+@cindex chord inversions
+@cindex bass note, for chords
 
 
-Chords is a mode similar to @code{\lyricmode}, etc.  Most
-of the commands continue to work, for example, @code{r} and
-@code{\skip} can be used to insert rests and spaces, and property
-commands may be used to change various settings.
-It uses the same syntax as
-@code{\chordmode}, but renders the notes in a @code{ChordNames}
-context, with the following result:
+Inversions (putting a pitch other than the root on the bottom of the
+chord) and added bass notes can be specified by appending
+@code{/}@var{pitch} to the chord.
 
 
-@lilypond[verbatim,quote,ragged-right]
-\chords { c2 f4.:m g4.:maj7 gis8:dim7 }
+@lilypond[quote,ragged-right,fragment,verbatim, relative=2]
+\chordmode { c1 c/g c/f }
 @end lilypond
 
 @end lilypond
 
+@funindex /+
+
+A bass note that is part of the chord can be added, instead of
+moved as part of an inversion, by using @code{/+}@var{pitch}.
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\chordmode { c1 c/+g c/+f }
+@end lilypond
+
+@seealso
+
+Snippets:
+@rlsr{Chords}
 
 @knownissues
 
 Each step can only be present in a chord once.  The following
 
 @knownissues
 
 Each step can only be present in a chord once.  The following
-simply produces the augmented chord, since @code{5+} is interpreted
-last
-@cindex clusters
+simply produces the augmented chord, since @code{5+} is
+interpreted last.
+
 @lilypond[quote,ragged-right,verbatim,fragment]
 @lilypond[quote,ragged-right,verbatim,fragment]
-\chordmode { c:5.5-.5+ }
+\chordmode { c1:5.5-.5+ }
 @end lilypond
 
 @end lilypond
 
+Only one step can be removed from a chord.  If a chord with multiple
+removed steps is desired, it must be built through addition of
+multiple steps.
 
 
-@node Entering chord names
-@subsubsection Entering chord names
+
+@node Displaying chords
+@subsection Displaying chords
+
+Chords can be displayed by name, in addition to the standard display
+as notes on a staff.
+
+@menu
+* Printing chord names::        
+* Customizing chord names::     
+@end menu
+
+@node Printing chord names
+@unnumberedsubsubsec Printing chord names
+
+@cindex printing chord names
 @cindex chord names
 @cindex chord names
+@cindex chords
 
 
-LilyPond has support for printing chord names.  Chords may be entered
-in musical chord notation, i.e., @code{< .. >}, but they can also be
-entered by name.  Internally, the chords are represented as a set of
-pitches, so they can be transposed
+Chord names are printed in the @code{ChordNames} context:
 
 
+@lilypond[verbatim,quote,relative=1,ragged-right]
+\new ChordNames {
+  \chordmode { c2 f4. g8 }
+}
+@end lilypond
 
 
-@lilypond[quote,ragged-right,verbatim,ragged-right]
-twoWays = \transpose c c' {
+Both chord names and the notes can be displayed:
+
+@lilypond[verbatim,quote,ragged-right]
+myChords = \relative c'{
+  \chordmode { c2 f4. g8 }
+}
+<<
+  \new ChordNames { \myChords }
+  \myChords
+>>
+@end lilypond
+
+Chords can be entered as simultaneous notes or through the use of
+chord mode.  The displayed chord name will be the same, regardless
+of the mode of entry:
+
+@lilypond[quote,ragged-right,verbatim]
+twoWays = \relative c' {
   \chordmode {
   \chordmode {
-    c1 f:sus4 bes/f
+     c2 f:sus4
+  }
+  {
+    <c e g>  <f bes c>
   }
   }
-  <c e g>
-  <f bes c'>
-  <f bes d'>
 }
 }
-
-<< \new ChordNames \twoWays
-   \new Voice \twoWays >>
+<<
+  \new ChordNames \twoWays
+  \new Voice \twoWays
+>>
 @end lilypond
 
 @end lilypond
 
-This example also shows that the chord printing routines do not try to
-be intelligent.  The last chord (@code{f bes d}) is not interpreted as
-an inversion.
+@funindex{\chords}
 
 
-Note that the duration of chords must be specified outside the
-@code{<>}.
+@code{\chords} is a shortcut method used to change the input mode to
+@code{\chordmode} and create a @code{ChordNames} context, with the
+following result:
 
 
-@example
-<c e g>2
-@end example
+@lilypond[verbatim,quote,ragged-right, relative=1]
+\chords { c2 f4.:m g8:maj7 }
+@end lilypond
 
 
-@node Building chords
-@subsubsection Building chords
+@cindex lead sheet
 
 
-Other chords may be entered by suffixing a colon and introducing a
-modifier (which may include a number if desired)
+When put together, chord names, a melody, and lyrics form a lead
+sheet:
 
 
-@lilypond[quote,fragment,verbatim]
-\chordmode { e1:m e1:7 e1:m7 }
+@lilypond[verbatim,quote,ragged-right]
+<<
+  \chords { c2 g:sus4 f e }
+  \relative c'' {
+    a4 e c8 e r4
+    b2 c4( d)
+  }
+  \addlyrics { One day this shall be free __ }
+>>
 @end lilypond
 
 @end lilypond
 
-The first number following the root is taken to be the @q{type} of the
-chord, thirds are added to the root until it reaches the specified
-number.  The exception is @code{c:13}, for which the 11 is omitted.
 
 
-@lilypond[quote,fragment,verbatim]
-\chordmode { c:3 c:5 c:6 c:7 c:8 c:9 c:10 c:11 c:13 }
-@end lilypond
 
 
-@cindex root of chord
-@cindex additions, in chords
-@cindex removals, in chords
+@snippets
 
 
-More complex chords may also be constructed adding separate steps
-to a chord.  Additions are added after the number following
-the colon and are separated by dots
+If repeats are used in the music, and the volta brackets are to be
+dispayed above the chord names, @code{voltaOnThisStaff} must be set
+to @code{##t}.  To add bar indications in the @code{ChordNames}
+context, add @rinternals{Bar_engraver}.
 
 
-@lilypond[quote,verbatim,fragment]
-\chordmode { c:5.6 c:3.7.8 c:3.6.13 }
+@lilypond[ragged-right,verbatim]
+\new ChordNames \with {
+  \override BarLine #'bar-size = #4
+  voltaOnThisStaff = ##t
+  \consists "Bar_engraver"
+}
+\chordmode {
+  \repeat volta 2 {
+    f1:maj7 f:7 bes:7 c:maj7
+  }
+  \alternative {
+    ees e
+  }
+}
 @end lilypond
 
 @end lilypond
 
-Chord steps can be altered by suffixing a @code{-} or @code{+} sign
-to the number
+@seealso
 
 
-@lilypond[quote,verbatim,fragment]
-\chordmode { c:7+ c:5+.3- c:3-.5-.7- }
-@end lilypond
+Music Glossary:
+@rglos{chord}.
 
 
-Removals are specified similarly and are introduced by a caret.  They
-must come after the additions
 
 
-@lilypond[quote,verbatim,fragment]
-\chordmode { c^3 c:7^5 c:9^3.5 }
-@end lilypond
+Notation Reference:
+@ref{Writing music in parallel}.
+
 
 
-Modifiers can be used to change pitches.  The following modifiers are
-supported
+Snippets:
+@rlsr{Chords}.
+
+Internals Reference:
+@rinternals{ChordNames},
+@rinternals{Volta_engraver},
+@rinternals{Bar_engraver}.
+
+@knownissues
+
+Chords containing inversions or altered bass notes are not named
+properly.
+
+
+@node Customizing chord names
+@unnumberedsubsubsec Customizing chord names
+
+@cindex customizing chord names
+
+There is no unique system for naming chords.  Different musical
+traditions use different names for the same set of chords.  There
+are also different symbols displayed for a given chord name.   The
+names and symbols displayed for chord names are customizable.
+
+@cindex Banter
+@cindex jazz chords
+@cindex chords, jazz
+
+The default chord name layout is a system for Jazz music, proposed
+by Klaus Ignatzek (see @ref{Literature list}).  There are also two
+other chord name schemes implemented: an alternate Jazz chord
+notation, and a systematic scheme called Banter chords.  The
+alternate Jazz notation is also shown on the chart in @ref{Chord
+name chart}.
+
+In addition to the different naming systems, different note names
+are used for the root in different languages.  The predefined
+variables @code{\germanChords}, @code{\semiGermanChords},
+@code{\italianChords} and @code{\frenchChords} set these variables.
+The effect is demonstrated here:
+
+@lilypondfile[ragged-right]{chord-names-languages.ly}
+
+@c TODO - this paragraph is moved here from an earlier section
+@c and needs to be corrected.
+This example also shows that the chord printing routines cannot
+correctly identify the root of a chord if it has been entered using
+@code{< .. >} instead of named chord entry.  Therefore, the sixth
+chord (@code{f bes d}) is not interpreted as an inversion.   In
+contrast, the third chord, which contains the same notes as the sixth
+chord, is correctly identified because it was entered in the named
+chord mode.
+
+If none of the default settings give the desired output, the chord
+name display can be tuned through the following properties.
+
+@ignore
 
 @table @code
 
 @table @code
-@item m
-The minor chord.  This modifier lowers the 3rd and (if present) the 7th step.
 
 
-@item dim
-The diminished chord.  This modifier lowers the 3rd, 5th and (if present)
-the 7th step.
+@funindex chordRootNamer
 
 
-@item aug
-The augmented chord.  This modifier raises the 5th step.
+@item chordRootNamer
 
 
-@item maj
-The major 7th chord.  This modifier raises the 7th step if present.
+The chord name is usually printed as a letter for the root with an
+optional alteration.  The transformation from pitch to letter is
+done by this function.  Special note names (for example, the German
+@q{H} for a B-chord) can be produced by storing a new function in
+this property.
+
+@funindex majorSevenSymbol
+
+@item majorSevenSymbol
+
+This property contains the markup object used to follow the output
+of @code{chordRootNamer} to dentify a major 7 chord. Predefined
+options are @code{whiteTriangleMarkup} and
+@code{blackTriangleMarkup}.
+
+@funindex chordNoteNamer
+
+@item chordNoteNamer
+
+When the chord name contains additional pitches other than the root
+(e.g., an added bass note), this function is used to print the
+additional pitch.  By default the pitch is printed using
+@code{chordRootNamer}. The @code{chordNoteNamer} property can be set
+to a specialized function to change this behavior.  For example, the
+bass note can be printed in lower case.
+
+@funindex chordNameSeparator
+
+@item chordNameSeparator
+
+Different parts of a chord name are normally separated by a slash.
+By setting @code{chordNameSeparator}, you can use any desired markup
+for a separator, e.g.,
+
+@lilypond[quote,ragged-right,fragment,verbatim]
+\chords {
+  c:7sus4
+  \set chordNameSeparator
+    = \markup { \typewriter "|" }
+  c:7sus4
+}
+@end lilypond
+
+@funindex chordNameExceptions
+
+@item chordNameExceptions
+
+This property is a list of pairs.  The first item in each pair
+is a set of pitches used to identify the steps present in the chord.
+The second item is a markups that will follow the @code{chordRootNamer}
+output to create the chord name.  See @code{FIXME -- future ref to snippet}
+for information on creating this list.
+
+@funindex chordPrefixSpacer @item chordPrefixSpacer
+
+The @q{m} for minor chords is usually printed immediately to the
+right of the root of the chord.  By setting
+@code{chordPrefixSpacer}, you can fix a spacer between the root
+and @q{m}.  The spacer is not used when the root is altered.
 
 
-@item sus
-The suspended 4th or 2nd.  This modifier removes the 3rd
-step.  Append either @code{2} or @code{4} to add the 2nd or 4th step to
-the chord.
 @end table
 @end table
+@end ignore
+
+@predefined
+
+@funindex major seven symbols
+@code{\whiteTriangleMarkup}
+@code{\blackTriangleMarkup}
+@funindex \germanChords
+@code{\germanChords},
+@funindex \semiGermanChords
+@code{\semiGermanChords},
+@funindex \italianChords
+@code{\italianChords},
+@funindex \frenchChords
+@code{\frenchChords}.
 
 
-Modifiers can be mixed with additions
-@lilypond[quote,verbatim,fragment]
-  \chordmode { c:sus4 c:7sus4 c:dim7 c:m6 }
+
+@snippets
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{chord-names-jazz.ly}
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{chord-name-exceptions.ly}
+@cindex exceptions, chord names.
+
+@lilypondfile[verbatim,lilyquote,texidoc,doctitle]
+{chord-name-major7.ly}
+
+@c TODO -- see if the code below is in chord-name-exceptions.ly
+@c   if so, remove it.  If not, convert this to a snippet.
+@ignore
+The first step is to define sequential music that has the chords to
+be named with the desired markup (except for the root name) attached
+to the chord:
+
+@example
+FGGChordNames = @{
+  <c e g b d'>1-\markup @{ \super "maj9" @}
+  <c e g a d'>1-\markup @{ \super "6(add9)" @}
+@}
+@end example
+
+The second step is to convert the music from the first step to an
+exceptions list:
+
+@example
+FGGExceptions = #(sequential-music-to-chord-exceptions
+FGGChordNames #t)
+@end example
+
+The third step is to append the default exceptions list (in this
+case, the Ignatzek exceptions) to the newly-defined exceptions list:
+
+@example
+chExceptions = #(append FGGExceptions ignatzekExceptions)
+@end example
+
+The final step is to set @code{chordNameExceptions} to the
+newly-created exceptions list:
+
+@example
+\set chordNameExceptions = #chExceptions
+@end example
+
+The entire process is illustrated below:
+
+@lilypond[quote,ragged-right,verbatim]
+FGGChordNames = {
+  <c e g b d'>1-\markup { \super "maj9" }
+  <c e g a d'>1-\markup { \super "6(add9)" }
+}
+FGGExceptions = #(sequential-music-to-chord-exceptions
+FGGChordNames #t)
+chExceptions = #(append FGGChordNames
+ ignatzekExceptions)
+
+chordStuff = \chordmode
+{
+% standard names
+g1:maj9
+g1:6.9
+% names with FGG's custom exceptions
+\set chordNameExceptions = #chExceptions
+g1:maj9
+g1:6.9
+}
+
+\score
+{
+\new ChordNames \chordStuff
+}
 @end lilypond
 @end lilypond
+@end ignore
 
 
-@cindex modifiers, in chords.
-@funindex aug
-@funindex dim
-@funindex maj
-@funindex sus
-@funindex m
 
 
-Since an unaltered 11 does not sound good when combined with an
-unaltered 13, the 11 is removed in this case (unless it is added
-explicitly)
-@lilypond[quote,ragged-right,fragment,verbatim]
-\chordmode { c:13 c:13.11 c:m13 }
+@seealso
+
+Installed Files:
+@file{scm/@/chords@/-ignatzek@/.scm},
+@file{scm/@/chord@/-entry@/.scm},
+@file{ly/@/chord@/-modifier@/-init@/.ly}.
+
+Snippets:
+@rlsr{Chords}.
+
+Internals Reference:
+@c @rinternals{}.
+
+@knownissues
+
+Chord names are determined from both the pitches that are present
+in the chord and the information on the chord structure that may
+have been entered in @code{\chordmode}.  If the simultaneous pitches
+method of entering chords is used, undesired names result from
+inversions or bass notes.
+
+@lilypond[quote,ragged-right,verbatim]
+myChords = \relative c' {
+  \chordmode{ c1 c/g c/f }
+  <c e g> <g c e> <f c' e g>
+}
+<<
+  \new ChordNames { \myChords }
+  \new Staff { \myChords }
+>>
 @end lilypond
 
 @end lilypond
 
-@funindex /
+@node old Modern chords
+@subsection old Modern chords
 
 
-An inversion (putting one pitch of the chord on the bottom), as well
-as bass notes, can be specified by appending
-@code{/}@var{pitch} to the chord
-@lilypond[quote,ragged-right,fragment,verbatim]
-\chordmode { c1 c/g c/f }
+@menu
+* Entering chord names::        
+* old Lead sheets::             
+* old Printing chord names::    
+@end menu
+
+@node Entering chord names
+@subsubsection Entering chord names
+@cindex chord names
+
+LilyPond has support for printing chord names.  Chords may be entered
+in musical chord notation, i.e., @code{< .. >}, but they can also be
+entered by name.  Internally, the chords are represented as a set of
+pitches, so they can be transposed
+
+
+@lilypond[quote,ragged-right,verbatim,ragged-right]
+twoWays = \transpose c c' {
+  \chordmode {
+    c1 f:sus4 bes/f
+  }
+  <c e g>
+  <f bes c'>
+  <f bes d'>
+}
+
+<< \new ChordNames \twoWays
+   \new Voice \twoWays >>
 @end lilypond
 @end lilypond
-@funindex /+
 
 
-A bass note can be added instead of transposed out of the chord,
-by using @code{/+}@var{pitch}.
+This example also shows that the chord printing routines do not try to
+be intelligent.  The last chord (@code{f bes d}) is not interpreted as
+an inversion.
 
 
-@lilypond[quote,ragged-right,fragment,verbatim]
-\chordmode { c1 c/+g c/+f }
+Note that the duration of chords must be specified outside the
+@code{<>}.
+
+@example
+<c e g>2
+@end example
+
+@c TODO Generate snippet based on the following
+@c      and add explanation -td
+
+Custom chord names may be generated:
+
+@lilypond[quote,ragged-right,verbatim,ragged-right]
+FGGChordNames = {
+  <c e g b d'>1-\markup { \super "maj9" }
+  <c e g a d'>1-\markup { \super "6(add9)" }
+}
+chExceptions = #(append
+(sequential-music-to-chord-exceptions
+FGGChordNames #t) ignatzekExceptions)
+
+chordStuff = \chordmode
+{
+% standard names
+g1:maj9
+g1:6.9
+% names with FGG's custom exceptions
+\set chordNameExceptions = #chExceptions
+g1:maj9
+g1:6.9
+}
+
+\score
+{
+\new ChordNames \chordStuff
+}
 @end lilypond
 
 
 @end lilypond
 
 
-@node Lead sheets
-@subsubsection Lead sheets
+
+@node old Lead sheets
+@subsubsection old Lead sheets
 
 @cindex lead sheet
 
 
 @cindex lead sheet
 
@@ -257,14 +740,14 @@ sheet,
 
 
 
 
 
 
-@node Printing chord names
-@subsubsection Printing chord names
+@node old Printing chord names
+@subsubsection old Printing chord names
 
 @cindex printing chord names
 @cindex chord names
 @cindex chords
 
 
 @cindex printing chord names
 @cindex chord names
 @cindex chords
 
-For displaying printed chord names, use the @internalsref{ChordNames} context.
+For displaying printed chord names, use the @rinternals{ChordNames} context.
 The chords may be entered either using the notation
 described above, or directly using @code{<} and @code{>}
 
 The chords may be entered either using the notation
 described above, or directly using @code{<} and @code{>}
 
@@ -279,7 +762,7 @@ harmonies = {
 @end lilypond
 
 You can make the chord changes stand out by setting
 @end lilypond
 
 You can make the chord changes stand out by setting
-@internalsref{ChordNames}.@code{chordChanges} to true.  This will only
+@rinternals{ChordNames}.@code{chordChanges} to true.  This will only
 display chord names when there is a change in the chords scheme and at
 the start of a new line
 
 display chord names when there is a change in the chords scheme and at
 the start of a new line
 
@@ -297,7 +780,7 @@ harmonies = \chordmode {
 
 The previous examples all show chords over a staff.  This is not
 necessary.  Chords may also be printed separately.  It may be necessary
 
 The previous examples all show chords over a staff.  This is not
 necessary.  Chords may also be printed separately.  It may be necessary
-to add @internalsref{Volta_engraver} and @internalsref{Bar_engraver}
+to add @rinternals{Volta_engraver} and @rinternals{Bar_engraver}
 for showing repeats.
 
 @lilypond[ragged-right,verbatim]
 for showing repeats.
 
 @lilypond[ragged-right,verbatim]
@@ -429,7 +912,6 @@ chart}.  Turning on these styles is demonstrated in
 @seealso
 
 Examples:
 @seealso
 
 Examples:
-@c @lsrdir{chords}
 
 Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
 @file{scm/@/chord@/-entry@/.scm}.
 
 Init files: @file{scm/@/chords@/-ignatzek@/.scm}, and
 @file{scm/@/chord@/-entry@/.scm}.
@@ -447,9 +929,9 @@ may result in strange chord names when chords are entered with the
 @subsection Figured bass
 
 @menu
 @subsection Figured bass
 
 @menu
-* Introduction to figured bass::
-* Entering figures::
-* Repeated figures::
+* Introduction to figured bass::  
+* Entering figured bass::       
+* Displaying figured bass::     
 @end menu
 
 @node Introduction to figured bass
 @end menu
 
 @node Introduction to figured bass
@@ -472,9 +954,15 @@ LilyPond has support for figured bass
 >>
 @end lilypond
 
 >>
 @end lilypond
 
+The support for figured bass consists of two parts: there is an
+input mode, introduced by @code{\figuremode}, where you can enter
+bass figures as numbers, and there is a context named
+@rinternals{FiguredBass} that takes care of making
+@rinternals{BassFigure} objects.
+
 Although the support for figured bass may superficially resemble chord
 support, it is much simpler.  The @code{\figuremode} mode simply
 Although the support for figured bass may superficially resemble chord
 support, it is much simpler.  The @code{\figuremode} mode simply
-stores the numbers and @internalsref{FiguredBass} context prints them
+stores the numbers and @rinternals{FiguredBass} context prints them
 as entered.  There is no conversion to pitches and no realizations of
 the bass are played in the MIDI file.
 
 as entered.  There is no conversion to pitches and no realizations of
 the bass are played in the MIDI file.
 
@@ -483,22 +971,23 @@ markup text properties to override formatting.  For example, the
 vertical spacing of the figures may be set with @code{baseline-skip}.
 
 
 vertical spacing of the figures may be set with @code{baseline-skip}.
 
 
-@node Entering figures
-@subsubsection Entering figures
+@menu
+* Entering figured bass::
+* Displaying figured bass::
+@end menu
+
+@node Entering figured bass
+@unnumberedsubsubsec Entering figured bass
 
 
-The support for figured bass consists of two parts: there is an input
-mode, introduced by @code{\figuremode}, where you can enter bass figures
-as numbers, and there is a context called @internalsref{FiguredBass} that
-takes care of making @internalsref{BassFigure} objects.
 
 In figures input mode, a group of bass figures is delimited by
 @code{<} and @code{>}.  The duration is entered after the @code{>}
 @example
 
 In figures input mode, a group of bass figures is delimited by
 @code{<} and @code{>}.  The duration is entered after the @code{>}
 @example
-<4 6>
+<4 6>2
 @end example
 @lilypond[quote,ragged-right,fragment]
 \new FiguredBass
 @end example
 @lilypond[quote,ragged-right,fragment]
 \new FiguredBass
-\figuremode { <4 6> }
+\figuremode { <4 6>2 }
 @end lilypond
 
 Accidentals are added when you append @code{-}, @code{!}, and @code{+}
 @end lilypond
 
 Accidentals are added when you append @code{-}, @code{!}, and @code{+}
@@ -506,10 +995,10 @@ to the numbers.  A plus sign is added when you append @code{\+}, and
 diminished fifths and sevenths can be obtained with @code{5/} and @code{7/}.
 
 @example
 diminished fifths and sevenths can be obtained with @code{5/} and @code{7/}.
 
 @example
-<4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/>
+<4- 6+ 7!>3 <5++> <3--> <7/> r <6\+ 5/>
 @end example
 @lilypond[quote,ragged-right,fragment]
 @end example
 @lilypond[quote,ragged-right,fragment]
-\figures { <4- 6+ 7!> <5++> <3--> <7/> r <6\+ 5/> }
+\figures { <4- 6+ 7!>4 <5++> <3--> <7/> r <6\+ 5/> }
 @end lilypond
 
 Spaces may be inserted by using @code{_}.  Brackets are
 @end lilypond
 
 Spaces may be inserted by using @code{_}.  Brackets are
@@ -517,18 +1006,14 @@ introduced with @code{[} and @code{]}.  You can also include text
 strings and text markups, see @ref{Text markup commands}.
 
 @example
 strings and text markups, see @ref{Text markup commands}.
 
 @example
-< [4 6] 8 [_! 12] > < 5 \markup @{ \number 6 \super (1) @} >
+< [4 6] 8 [_! 12] >4 < 5 \markup @{ \number 6 \super (1) @} >
 @end example
 @lilypond[quote,ragged-right,fragment]
 \new FiguredBass
 @end example
 @lilypond[quote,ragged-right,fragment]
 \new FiguredBass
-\figuremode { < [4 6] 8 [_! 12] > < 5 \markup{ \tiny \number 6 \super (1)} > }
+\figuremode { < [4 6] 8 [_! 12] >4 < 5 \markup{ \tiny \number 6 \super (1)} > }
 @end lilypond
 
 
 @end lilypond
 
 
-@node Repeated figures
-@subsubsection Repeated figures
-
-
 It is also possible to use continuation lines for repeated figures,
 
 @lilypond[verbatim,relative=1]
 It is also possible to use continuation lines for repeated figures,
 
 @lilypond[verbatim,relative=1]
@@ -539,7 +1024,7 @@ It is also possible to use continuation lines for repeated figures,
   }
   \figures {
     \set useBassFigureExtenders = ##t
   }
   \figures {
     \set useBassFigureExtenders = ##t
-    <4 6> <3 6> <3 7>
+    <4 6>4 <3 6> <3 7>
   }
 >>
 @end lilypond
   }
 >>
 @end lilypond
@@ -572,13 +1057,13 @@ with @code{r}.  The rest will clear any previous alignment.  For
 example, you can write
 
 @example
 example, you can write
 
 @example
-  <4 6>8 r8
+<4 6>8 r8
 @end example
 
 @noindent
 instead of
 @example
 @end example
 
 @noindent
 instead of
 @example
-  <4 6>4
+<4 6>4
 @end example
 
 Accidentals and plus signs can appear before or after the numbers,
 @end example
 
 Accidentals and plus signs can appear before or after the numbers,
@@ -621,8 +1106,71 @@ automatically.
 >>
 @end lilypond
 
 >>
 @end lilypond
 
+@c @predefined
 
 
-@snippets
+@c @snippets
+
+@seealso
+@c Music Glossary:
+@c @rglos{}.
+
+@c Learning Manual:
+@c @rlearning{}.
+
+@c Notation Reference:
+@c @ruser{}.
+
+@c Application Usage:
+@c @rprogram{}.
+
+@c Installed Files:
+@c @file{}.
+
+@c Snippets:
+@c @rlsr{}.
+
+@c Internals Reference:
+@c @rinternals{}.
+
+@c @knownissues
+
+@node Displaying figured bass
+@unnumberedsubsubsec Displaying figured bass
+
+Figured bass is displayed using the @code{FiguredBass} context.
+
+@c @predefined
+
+@c @snippets
+
+@seealso
+@c Music Glossary:
+@c @rglos{}.
+
+@c Learning Manual:
+@c @rlearning{}.
+
+@c Notation Reference:
+@c @ruser{}.
+
+@c Application Usage:
+@c @rprogram{}.
+
+@c Installed Files:
+@c @file{}.
+
+@c Snippets:
+@c @rlsr{}.
+
+Internals Reference:
+@rinternals{NewBassFigure},
+@rinternals{BassFigureAlignment},
+@rinternals{BassFigureLine},
+@rinternals{BassFigureBracket},
+@rinternals{BassFigureContinuation},
+@rinternals{FiguredBass}.
+
+@knownissues
 
 By default, this method produces figures above the notes.  To get
 figures below the notes, use
 
 By default, this method produces figures above the notes.  To get
 figures below the notes, use
@@ -631,9 +1179,6 @@ figures below the notes, use
 \override Staff.BassFigureAlignmentPositioning #'direction = #DOWN
 @end example
 
 \override Staff.BassFigureAlignmentPositioning #'direction = #DOWN
 @end example
 
-
-@knownissues
-
 When using figured bass above the staff with extender lines and
 @code{implicitBassFigures} the lines may become swapped around.
 Maintaining order consistently will be impossible when multiple figures
 When using figured bass above the staff with extender lines and
 @code{implicitBassFigures} the lines may become swapped around.
 Maintaining order consistently will be impossible when multiple figures
@@ -642,10 +1187,3 @@ use @code{stacking-dir} on @code{BassFigureAlignment}.
 
 
 @seealso
 
 
 @seealso
-
-Internals Reference: @internalsref{NewBassFigure},
-@internalsref{BassFigureAlignment}, @internalsref{BassFigureLine},
-@internalsref{BassFigureBracket}, and
-@internalsref{BassFigureContinuation} objects and
-@internalsref{FiguredBass} context.
-