Hello, 1. I've created sample app that could help you (it analyzes sound from mic and writes recognized freq to console if recored sound was loud enough, I can send it to you if you'll give your mail, or some other way to send zip file) 2. As for your questions: When analyzing sound (especially sound that is recorded in real time, like getting is from mic) you do want to analyze it in small chunks. Small does not need to mean very small, it depends on what you want to do. I'd recommend to make such solution that will be configurable, fe. if you want to stick with wav files, make this parameter configurable, and to check which sound you were playing: analyze whole wave file, divided into chunks of size X, and check what frequencies you have found. By changing chunk size you can see what happens. And yes, first 16kB of data will be unusuable for you then. FreqStep is SampleRate / outputSample.Length, your right (remember that FFT code you have used, returned only 1st half of array, so your length will be smaller then it should be after real FFT function). And yes, frequency that you will get is freq. that you can compare to table from link (or generate this table with method I have gave you earlier). (Just to make sure: MaxFoundValue is NOT that value, but index of that value, right?, because if it's value, which is magnitude, then no, it won't work ;-) ).