When I write g:5.9 or g:9^7.3 in a Notes block, the chord is correct. But when I write it in a ChordNames block, it produces G9 rather than G5add9.

Is this a missing feature, is there a workaround, or am I doing something wrong?

  • 5add9 is just a sus2 chord.
    – Matt L.
    Sep 18 at 10:51
  • It has a different sound, because you stack two fifths and do not directly hear the second. But when including inversions it is equivalent, yes.
    – xeruf
    Sep 18 at 17:20

2 Answers 2


I at least found a workaround in the documentation: Adding a pitchPrefix

\set additionalPitchPrefix = "5add"

It's an unusual chord, so it isn't included in the list of chords that are recognised by LilyPond.

Fortunately, there is a way to teach LilyPond chord names/symbols, it just requires a little bit of Scheme.

Adapting the example on this page 2.7.2 Displaying Chords - Customizing chord names (under Chord name exceptions):

chExceptionMusic = {
  <c g d'>1-\markup { \super "5add9" }
  <c e f g>1-\markup { \super "add4" }

chExceptions = #(append
  (sequential-music-to-chord-exceptions chExceptionMusic #t)
\new ChordNames {   
    \set chordNameExceptions = #chExceptions
%   \set additionalPitchPrefix = "add"
    \chordmode {

Using the additionalPitchPrefix method (as in your answer) is going to affect all chords that LilyPond thinks are "add" chords. But using chExceptions is only going to affect chords that are of the type 1-5-9.

Chord name exceptions also has the advantage of making it possible to have more custom chords.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.