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?