I am developing some software for music production, I am now coding some classes for Chords, but I came to realize that I understood much less than I thought. What I am trying to do is to rip apart all the pieces that make up a chord, and this is what I currently came up with.

So chords are made up by 4 main parts: Chord Quality, Highest Degree, Seventh Modifier, and Secondary Chord Modifiers

Chord Quality contains the main information about the chord, whether it is:

M      -> Major          -> (1-3-5)
m      -> Minor          -> (1-3b-5)
aug    -> Augmented      -> (1-3-#5)
dim    -> Diminished     -> (1-b3-b5)
sus2   -> Suspended 2    -> (1-2-5)
sus4   -> Suspended 4    -> (1-4-5)
sus2/4 -> Suspended 2/4  -> (1-2-4-5)
??     -> Power Chord    -> (1-5)

If there is not a quality written on a chord it is implied to be Major.

The highest degree well, it's the highest degree of the chord wether it is:

5  -> (1-3-5)
6  -> (1-3-5*-6)
7  -> (1-3-5*-7)
9  -> (1-3-5*-7-9)
11 -> (1-3-5*-7-9-11)
13 -> (1-3-5*-7-9-11-13)

* -> The note can be omitted

The seventh modifier is the only modifier that is in some way standard a chord, this tells what the interval from the root to the seventh.

maj7 -> Major Seventh
min7 -> Minor Seventh

And the secondary chord modifiers are the ones that are used upon the previous characteristics. This is the list of modifiers I have seen:

Add(X)  -> This modifier adds X note to the chord
No(X)   -> This modifier omits X noto from the chord

I have some concerns with this approach, I am not sure that Suspended chords are a quality or a modifier, and also I don't know if a chord can only have one modifier, or can it have more?

Can someone lead me to a good post or book on this topic?

  • I am not familiar with your definitions. Is chord quality and highest degree used in music or did you make them up. Most musicians I know would not consider a 7th a modifier. But again, is this your definition?
    – user50691
    Commented Jul 19, 2019 at 17:13
  • 1
    @ggcg I have heard the term chord quality to refer to major or minor. I think that is common.
    – b3ko
    Commented Jul 19, 2019 at 18:00
  • Please note that chords are rarely played in the exact order They are spelled. A lot of time the lowest note heard is important and leads to chords like c/g or c over g which indicates that the c triad should be played with the lowest note being a g (the 5th) for example. Also known as the inversion that it’s played in. Sometimes the player will choose what note is the highest so they can get the melody note up on top.
    – b3ko
    Commented Jul 19, 2019 at 18:02
  • It is not clear if the OP wants to simply catalog chords or have the program make sensible chord voicing sequences that follow harmony theory. In which case even the root is not most important. Also, the notes he has listed as optional are not the only optional notes.
    – user50691
    Commented Jul 19, 2019 at 19:14
  • @b3ko yes that is chord voicing, but chord voicing is an additional step afterwards, you can a C chord with many different voicings, but the building notes of the voicing would be given by the chord made up by a quality and modifiers. Commented Jul 19, 2019 at 19:32

2 Answers 2


In order of building the chord symbol:

Letter and accidental for the root.

Chord (triad) types or qualities: major, minor, augmented, diminished. No symbol implies major.

Power chords are often shown with a 5 like A5 meaning just an A root and a fifth above, no third. I suppose this can be consider as applying at the same level as triadic type.

The next part is a little tricky. Basically, after triads there are seventh chords, then extended chords for ninths and higher. You called this "highest note." You might simply use the term "extension" for sevenths through thirteenths, extension being applied to simple triads.

About "seventh modifier", the default qualities of the 7 through 13 are those of a diatonic, dominant thirteenth chord. In other words, the default is to use only a number with the assumed qualities m7, M9, P11, M13. Use a sharp/flat modifier on the extension only if it differs from those assumed qualities.

Modifiers. This also is a bit tricky, because you have to account for the fact that modifiers overlap with the basic triad types. Example: Cmb5 is logical but unnecessary, because you can use the simple triad type Cdim.

Regarding omissions, I've seen 'omit' written on chord symbols, I think this isn't a well defined standard.

I am not sure that Suspended chords are a quality or a modifier

That's because the chord symbol system isn't totally logical and the sus isn't used consistently, often it isn't even used to label an actual suspension. Logically it should refer to a suspension of the tone below so a sus4 should be a suspension of the third. That's the triad level. Logically you might expect Cmin-sus4-7 but my convention the modifiers go last Cmin7sus4. Also, logically it's a modifier not a quality. Csus4 means C F G without the third you can't know the quality, you have to resolve the suspension to know the quality Csus4 Cm - in that example the ambiguous suspension resolved to a minor chord.

...also I don't know if a chord can only have one modifier, or can it have more?

You can have multiple modifiers, like G7#5sus4, there doesn't seem to be a convention about the order other than putting them last.

So, the object is something like:


  • Thanks for your reply, It makes much more sense in my head now, but I have one more question, which notes can be sharpened/flattened on a chord? Commented Jul 23, 2019 at 19:46
  • I think most of the sharp/flat modifications are covered here music.stackexchange.com/a/86961/23919 Commented Jul 23, 2019 at 19:53

See https://www.scales-chords.com/chordid.php for a remarkably thorough and accurate application of chord naming conventions.

I think (naively) the problem is comparable to converting values between number systems. The cumbersome example that comes to mind would be developing a systematic conversion between hexadecimal and roman numerals. Fundamentally, the issue focuses on the identification of multiple stacked intervals using "natural" language. Chord naming is based on conventions developed from the 10th century on-wards. Then add to that the complexity of translation between languages. The example I have is the German usage of "moll", "dur", "klein", and "groß". The German term "großer Dur Septakkord" becomes in English "major–major seventh". The German is more descriptive while the English sounds inarticulate and redundant. An exercise left to the student: get the French, Italians, Czechs, Russians, Poles, Chinese, Japanese, Koreans, and Arabs to agree on a standard naming system.

  • It is very interesting the perspective you are giving to this problem, yes, of course I'll check on naming conventions on other languages, this is something I would have never thought of. Also thanks for the web page referenced. Commented Jul 21, 2019 at 20:22

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