Search code examples
wavpitch-trackingaudio

Display WAV file pitch


I'm new to the audio world, and I've been assigned a task I'm not sure how to deal with. I need to display a graph representing the pitch of a WAV file. The WAV file can be polyphonic, and then I need to display the pitch graph of the dominant (read: with the strongest volume) instrument (or human voice singing). I'm quite familiar with .NET, and knows next to nothing in C, C++, Java.

I started a research in the web, and from what I understood pitch detection of polyphonic WAV files is a not solved problem, but I don't need the exact pitch, just to know if it's higher from the next one, and what is its length.

My questions are:

  1. Where should I start for learning the theory behind this task? Are there any recommended books for that?

  2. Is there any API/tool that can do that?

Thanks,

ML


Solution

  • You can use Fourier Analysis to extract the constituent frequencies of the wave. Here's a related SO question: Fast Fourier Transform in C#