Working with ChordRecognizer

Thanks @rank13 , I’ve downloaded the latest (2012) version for OSX and unfortunately, the midiChordAnalyzer VST is missing in the library and also the documentation. Before I check out older versions, can you confirm if this plugin gives the string as output or some other form that can be processed further?

My intention is to build triads from input notes (e.g. play C4 while the C major key is selected, you get C4-E4-G4, or C4-E4-G3, etc.). An early version can be found in this post. It currently works such that while playing (single notes), it will automatically select the inversion that results in the smallest overall change in voicing (e.g. play C4 and then A4, you’ll get C major C4-E4-G4 in root position and then A minor A4-C4-E4 in second inversion, but play C4 and then D4, you’ll get C: C4-E4-G4, and then Dm: D4-F4-A4, both in root position).

The next step is to allow for 7th chords, by hitting both the root and the third (e.g. C and E, I get a C major and E minor to form a Cmaj7: C-E-G-B in some order depending on which was hit first and what the last inversion was before that). As the code works now, if I hold two notes at the same time, I’ll get two triads with two bass notes (2 octaves lower than their roots). But I want to recognize that this is a C chord (whichever weird orchestral voicing is selected) and only play the C bass note and suppress the E (because that leads to low-frequency droning, that a keyboard player would avoid).

In order to do this I need to recognize the chord’s root. Maybe later, a few other bells and whistles.

I tried the ChordRecognizer and the only output I get is “D#”, whichever notes I play. So, please if you have some experience with this function, share an example.