I wad looking to do something on this also. Just thinking on the best approach. One that I am thinking of its using some sort of machine learning. I am thinking of playing a musical note and getting my basys 3 to figure out what note it is.
My thinking is to play each note and get say 1000 samples of each note. Check what bits are 1 and 0. So, if my 1000 samples of a C have bit0 switched on 60% Of the time, bit1 is on 90% Of the time, bit2......the 1000 samples are stored in memory. If then a note is played, the board checks the sample of the note being played against the samples in memory. It checks all the 12 bits for this and if bit0 is on 61% and bit1 is on 89%..... there is a strong possibility it's the C.
Would this sound like a possible way to check for frequency?
As I say, this is just a thought.