I'm woking on a project for my thesis in computer science. It aims at implementing an application that allows the user to sing or whistle a melody in the pc's or smartphone's microphone and will identify which notes have been sung.
I need to first study the theory that is the basis of such a program and then implement it in matlab, java or c.
I have found a lot of information already on Stackoverflow, but I am a little confused (regarding FFT, pitch, etc.). I would be grateful if anyone could tell me what I should study and what the steps to implementation would be.