Previous: Printing chord names, Up: Displaying chords


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.

The basic chord name layout is a system for Jazz music, proposed by Klaus Ignatzek (see Literature list). The chord naming system can be modified as described below. An alternate jazz chord system has been developed using these modifications. The Ignatzek and alternate Jazz notation are shown on the chart in Chord name chart.

In addition to the different naming systems, different note names are used for the root in different languages. The predefined variables \germanChords, \semiGermanChords, \italianChords and \frenchChords set these variables. The effect is demonstrated here:

[image of music]

If none of the existing settings give the desired output, the chord name display can be tuned through the following properties.

chordRootNamer
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 ‘H’ for a B-chord) can be produced by storing a new function in this property.


majorSevenSymbol
This property contains the markup object used to follow the output of chordRootNamer to identify a major 7 chord. Predefined options are whiteTriangleMarkup and blackTriangleMarkup.


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 chordRootNamer. The chordNoteNamer property can be set to a specialized function to change this behavior. For example, the bass note can be printed in lower case.


chordNameSeparator
Different parts of a chord name are normally separated by a slash. By setting chordNameSeparator, you can use any desired markup for a separator.


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 markup that will follow the chordRootNamer output to create the chord name.


chordPrefixSpacer
The ‘m’ for minor chords is usually printed immediately to the right of the root of the chord. A spacer can be placed between the root and ‘m’ by setting chordPrefixSpacer. The spacer is not used when the root is altered.

Predefined commands

\whiteTriangleMarkup, \blackTriangleMarkup, \germanChords, \semiGermanChords, \italianChords, \frenchChords.

Selected Snippets

Chord name exceptions

The property chordNameExceptions can be used to store a list of special notations for specific chords.

     
     % modify maj9 and 6(add9)
     % Exception music is chords with markups
     chExceptionMusic = {
       <c e g b d'>1-\markup { \super "maj9" }
       <c e g a d'>1-\markup { \super "6(add9)" }
     }
     
     % Convert music to list and prepend to existing exceptions.
     chExceptions = #( append
       ( sequential-music-to-chord-exceptions chExceptionMusic #t)
       ignatzekExceptions)
     
     theMusic = \chordmode {
       g1:maj9 g1:6.9
       \set chordNameExceptions = #chExceptions
       g1:maj9 g1:6.9
     }
     
     \layout {
       ragged-right = ##t 
     }
     
     << \context ChordNames \theMusic
        \context Voice \theMusic
     >>  

[image of music]

The layout of the major 7 can be tuned with majorSevenSymbol.

     
     \version "2.11.51"
     \header {
         texidoc = "The layout of the major 7 can be tuned with
     @code{majorSevenSymbol}."
     }
     
     \chords {
         c:7+
         \set majorSevenSymbol = \markup { "j7" }
         c:7+
     }

[image of music]

Adding bar lines to ChordNames context

To add bar line indications in the ChordNames context, add the Bar_engraver.

     
     \new ChordNames \with {
       \override BarLine #'bar-size = #4
       \consists "Bar_engraver"
     }
     \chordmode {
       f1:maj7 f:7 bes:7 
     }
     

[image of music]

Volta under chords

By adding the Volta_engraver to the relevant staff, volte can be put under chords.

     
     \score {
       <<
         \chords {
           c1
           c1
         }
         \new Staff \with { \consists "Volta_engraver" } {
           \repeat volta 2 { c'1 }
           \alternative { c' }
         }
       >>
       \layout {
         \context {
           \Score
           \remove "Volta_engraver"
         }
       }
     }

[image of music]

Changing chord separator

The separator between different parts of a chord name can be set to any markup.

     
     \chords {
       c:7sus4
       \set chordNameSeparator
         = \markup { \typewriter | }
       c:7sus4
     }

[image of music]

See also

Notation Reference: Chord name chart, Common chord modifiers.

Installed Files: scm/chords-ignatzek.scm, scm/chord-entry.scm, ly/chord-modifier-init.ly.

Snippets: Chords.

Known issues and warnings

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 \chordmode. If the simultaneous pitches method of entering chords is used, undesired names result from inversions or bass notes.

     
     myChords = \relative c' {
       \chordmode { c1 c/g c/f }
       <c e g>1 <g c e> <f c' e g>
     }
     <<
       \new ChordNames { \myChords }
       \new Staff { \myChords }
     >>

[image of music]

This page is for LilyPond-2.11.58 (development-branch).

Report errors to http://post.gmane.org/post.php?group=gmane.comp.gnu.lilypond.bugs.

Your suggestions for the documentation are welcome.

Other languages: espaƱol.