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?