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 memo