The translation of MIDI to chords can be very accurate.

That is because all of the note-on data is right there, by the note, on the timeline, so there are not the same kind of problems faced when trying to extrapolate the chords from an audio file.

But -- there can be problems sometimes, simply because a MIDI file may contain notes from instruments that are not part of the "base" chord.

For example, the base chord might be a straight C Major. And that, of course if what the guitar player, likely the piano player, etc. would play there. Just the C Major notes of C, E and G, doubling some to suit.

But let's say there's a melody line also in that MIDI file where the melody is crossing *other* notes that are in the scale, in the key signature, but not in the straight C chord.

Well, the algorithm has no way of knowing those things. So it would look at the notes for the C chord and also see that one other note in the Melody, or maybe transition notes in the horn section, something like that -- and it would come up with something in the way of a chord that either has extensions on it that you wouldn't ordinarily put in the chord chart, such as "C6" or "C9" when in effect all you want is the C chord there.

The same problem may happen with slash chords, where you might have a situation where the C chord has an E in the bass: C/E

The chord interpreter might come up with "E+" -- Eaug -- simply because it is working off of the idea that the lowest note is the bass note for a chord.

But you should be able to manually fix the chords that do that and then get on with it. It is still quite the shortcut.


--Mac