MIDI Chord Analysis
Hiya,
I'm sure this stuff has been done since 1987, so I don't want to reinvent the wheel again. Any pointing in the right direction would be greatly appreciated.
I have to identify chords coming in from a MIDI keyboard. That said, this is in a Jazz context, so the chords may go up to the 13th, such as C7b9b13 etc. The fundamental is rarely the lowest note in those chords. The project is not fleshed out yet, best case scenario would be that I only have to find the fundamental to get to the next step (i.e. microtonal adjustments).
Any suggestions as to where to look? Maybe there's a library out there (I looked at one, but it assumes the lowest note is the fundamental).
Thanks, Hans
cool, that's a start, thanks! I could probably modify it for my purposes. The list of chords in the getChordName.js is promising.
That said, it identifies the root as the lowest note in the chord, but in C Major 1st Inversion it says Root E, but it should say C. I'm sure I can extract the root from the chord identification.
Hans
in my analysis section i go step by step, so that each of the parts can be reused for other things as well.
- collect the chord members into a list of note number values
- sort the list
(when required you can now easily get the highest and the lowest note, or count their amount, or delete doubles)
- disassemble the note numbers into two numbers which represent octave and key
(61 62 75 => "5 5 6", "1 2 3")
- now you have the form ("1 2 3") of the chord.
and this can be compared against a premade chord lists stored in a coll in order to find exact match, partial match, multiple partial matches or no match ("1 2 3" will probably lead to "no match")
*) it could have been 3 1 2, but we sorted it.
thanks Roman! Hans
no java version chord maker
and detector
this is quite old stuff, I did not check it in detail,
but it should work.
thanks, I'll check it out!
this is quite old stuff
I can imagine lots of people have stuff lying around on their harddrives since the 1990s... ;-)
Hans