* String number indications::
* Default tablatures::
* Custom tablatures::
-* Fret diagram markups::
-* Predefined fret diagrams::
* Automatic fret diagrams::
+* Fret diagram markups::
* Right-hand fingerings::
@end menu
No guitar special effects have been implemented.
+@node Automatic fret diagrams
+@subsubsection Automatic fret diagrams
+@cindex fret diagrams
+@cindex chord diagrams
+
+Fret diagrams can be automatically created from entered notes using the
+@code{FretBoards} context. This context calculates strings and frets
+which can be used to play the notes.
+
+@lilypond[quote,ragged-right,verbatim]
+<<
+ \context ChordNames {
+ \chordmode {
+ f1 g
+ }
+ }
+ \context FretBoards {
+ < f, c f a c' f'>1
+ < g,\6 b, d g b g'>
+ }
+ \context Staff {
+ \clef "treble_8"
+ < f, c f a c' f'>1
+ < g, b, d g b' g'>
+ }
+>>
+@end lilypond
+
+Notes can be explicitly placed on a string. It is often enough
+to place only the lowest note on an explicit string; the rest of
+the notes will then be placed appropriately by the @code{FretBoards}
+context.
+
+@lilypond[quote,ragged-right,verbatim]
+<<
+ \context ChordNames {
+ \chordmode {
+ c1 c d:m d:m
+ }
+ }
+ \context FretBoards {
+ < c e g c' e' > 1
+ < c\5 e g c' e' > 1
+ < d a d' f'>
+ < d\4 a d' f'>
+ }
+ \context Staff {
+ \clef "treble_8"
+ < c e g c' e' > 1
+ < c e g c' e' > 1
+ < d a d' f'>
+ < d a d' f'>
+ }
+>>
+@end lilypond
+
+Fingerings can be added to FretBoard fret diagrams.
+
+@lilypond[quote, verbatim]
+<<
+ \context ChordNames {
+ \chordmode {
+ c1 d:m
+ }
+ }
+ \context FretBoards {
+ < c\5-3 e-2 g c'-1 e' > 1
+ < d\4 a-2 d'-3 f'-1>
+ }
+ \context Staff {
+ \clef "treble_8"
+ < c e g c' e' > 1
+ < d a d' f'>
+ }
+>>
+@end lilypond
+
+The strings and frets for the @code{FretBoards} context depend
+on the @code{stringTunings} property, which has the same meaning
+as in the TabStaff context. See @ref{Custom tablatures} for
+information on the @code{stringTunings} property.
+
+The graphical layout of a fret diagram can be customized according to
+user preference through the properties of the @code{fret-diagram-interface}.
+Details are found at @rinternals{fret-diagram-interface}. For a
+@code{FretBoards} fret diagram, the interface properties belong to
+@code{FretBoards}.
+
+@snippets
+The minimum fret to be used in calculating strings and frets for
+the FretBoard context can be set with the @code{minimumFret}
+property.
+
+@c TODO -- snippet showing minimum fret.
+
+@c TODO -- snippet for using StringTunings
+
+@seealso
+
+Notation Reference:
+@ref{Custom tablatures}
+
+Snippets:
+@rlsr{Fretted strings}.
+
+Internals Reference:
+@rinternals {fret-diagram-interface}.
+
+
@node Fret diagram markups
@subsubsection Fret diagram markups
@cindex fret diagrams
Internals Reference:
@rinternals{fret-diagram-interface}.
-@node Predefined fret diagrams
-@subsubsection Predefined fret diagrams
-@cindex fret diagrams
-@cindex chord diagrams
-
-Fret diagrams can be displayed using the @code{FretBoards} context. By
-default, the @code{FretBoards} context will display fret diagrams that
-are stored in a lookup table:
-
-@lilypond[verbatim, ragged-right, quote]
-\context FretBoards {
- \chordmode {
- c1 d
- }
-}
-@end lilypond
-
-Fret diagrams are stored based on the pitches of a chord and the value of
-@code{StringTunings} that is currently in use. Currently, predefined chords
-are available only for @code{guitar-tuning}. Chord pitches can be entered
-either as simultaneous music or using chord mode (see
-@ref{Chord mode overview}).
-
-@lilypond[verbatim, ragged-right,quote]
-\context FretBoards {
- \chordmode {c1}
- <c' e' g'>1
-}
-@end lilypond
-
-It is common that both chord names and fret diagrams are displayed together.
-This is achieved by putting a @code{ChordNames} context in parallel with
-a @code{FretBoards} context and giving both contexts the same music.
-
-@lilypond[verbatim, ragged-right, quote]
-mychords = \chordmode{
- c1 f g
-}
-
-<<
- \context ChordNames {
- \mychords
- }
- \context FretBoards {
- \mychords
- }
->>
-@end lilypond
-
-Predefined fret diagrams are transposable, as long as a diagram for the
-transposed chord is stored in the fret diagram table.
-
-@lilypond[verbatim, ragged-right, quote]
-mychords = \chordmode{
- c1 f g
-}
-
-mychordlist = {
- \mychords
- \transpose c e { \mychords}
-}
-<<
- \context ChordNames {
- \mychordlist
- }
- \context FretBoards {
- \mychordlist
- }
->>
-@end lilypond
-
-
-The predefined fret diagram table contains seven chords (major, minor,
-augmented, diminished, dominant seventh, major seventh, minor seventh)
-for each of 17 keys (C, C\sharp?, D\flat, D, D\sharp, E\flat, E, F,
-F\sharp, G\flat, G, G\sharp, A\flat, A, A\sharp, B\flat, and B). A
-complete list of the predefined fret diagrams is shown in
-@ref{Predefined fretboard diagrams}. If there is no entry
-in the table for a chord, the FretBoards
-engraver will calculate a fret-diagram using the automatic fret diagram
-functionality described in @ref{Automatic fret diagrams}.
-
-TODO -- example of existing chord, non-existing chord
-
-Fret diagrams can be added to the fret diagram table. To add a diagram you
-must specify the chord for the diagram, the tuning to be used, and the
-fret-diagram-terse definition string for the diagram.
-
-TODO -- add a few diagrams to the table and display it
-
-Different fret diagrams for the same chord name can be stored using different
-octaves of pitches.
-
-TODO -- show the use of different fret diagrams
-
-In addition to fret diagrams, LilyPond stores an internal list of chord
-shapes. The chord shapes are fret diagrams that can be shifted along
-the neck to different posistions to provide different chords. Chord
-shapes can be added to the internal list and then used to define
-predefined fret diagrams.
-
-TODO -- snippet with power chords
-
-The appearance of the fret diagrams is controlled using the
-@code{fret-diagram-interface}, which is explained in TODO add ref.
-
-@node Automatic fret diagrams
-@subsubsection Automatic fret diagrams
-@cindex fret diagrams
-@cindex chord diagrams
-
-Fret diagrams can be automatically created from entered notes using the
-@code{FretBoards} context. This context calculates strings and frets
-which can be used to play the notes.
-
-@lilypond[quote,ragged-right,verbatim]
-<<
- \context ChordNames {
- \chordmode {
- f1 g
- }
- }
- \context FretBoards {
- \predefinedDiagramsOff
- < f, c f a c' f'>1
- < g,\6 b, d g b g'>
- }
- \context Staff {
- \clef "treble_8"
- < f, c f a c' f'>1
- < g, b, d g b' g'>
- }
->>
-@end lilypond
-
-Notes can be explicitly placed on a string. It is often enough
-to place only the lowest note on an explicit string; the rest of
-the notes will then be placed appropriately by the @code{FretBoards}
-context.
-
-@lilypond[quote,ragged-right,verbatim]
-<<
- \context ChordNames {
- \chordmode {
- c1 c d:m d:m
- }
- }
- \context FretBoards {
- \predefinedDiagramsOff
- < c e g c' e' > 1
- < c\5 e g c' e' > 1
- < d a d' f'>
- < d\4 a d' f'>
- }
- \context Staff {
- \clef "treble_8"
- < c e g c' e' > 1
- < c e g c' e' > 1
- < d a d' f'>
- < d a d' f'>
- }
->>
-@end lilypond
-
-Fingerings can be added to FretBoard fret diagrams.
-
-@lilypond[quote, verbatim]
-<<
- \context ChordNames {
- \chordmode {
- c1 d:m
- }
- }
- \context FretBoards {
- \predefinedDiagramsOff
- < c\5-3 e-2 g c'-1 e' > 1
- < d\4 a-2 d'-3 f'-1>
- }
- \context Staff {
- \clef "treble_8"
- < c e g c' e' > 1
- < d a d' f'>
- }
->>
-@end lilypond
-
-The strings and frets for the @code{FretBoards} context depend
-on the @code{stringTunings} property, which has the same meaning
-as in the TabStaff context. See @ref{Custom tablatures} for
-information on the @code{stringTunings} property.
-
-The graphical layout of a fret diagram can be customized according to
-user preference through the properties of the @code{fret-diagram-interface}.
-Details are found at @rinternals{fret-diagram-interface}. For a
-@code{FretBoards} fret diagram, the interface properties belong to
-@code{FretBoards}.
-
-@snippets
-The minimum fret to be used in calculating strings and frets for
-the FretBoard context can be set with the @code{minimumFret}
-property.
-
-@c TODO -- snippet showing minimum fret.
-
-@c TODO -- snippet for using StringTunings
-
-@seealso
-
-Notation Reference:
-@ref{Custom tablatures}
-
-Snippets:
-@rlsr{Fretted strings}.
-
-Internals Reference:
-@rinternals {fret-diagram-interface}.
-
-
@node Right-hand fingerings
@subsubsection Right-hand fingerings