I am an intermediate graphics programmer. I want to learn audio/sound processing theory from the ground up.
Just like how "A pixel" and its components R,G,B,A is the fundamental part of Graphics programming. I want to know about sound programming in similar lines.
Can anyone point me to good links? Also I would like to know some libraries (preferably portable) which allow me to manipulate sound. Something which can directly work on mp3, amr files.
I don't mind book recommendations too :)
Before getting your hands dirty with the very low levels (C/C++) I'd suggest playing around with higher level tools such as Octave (a free Matlab clone). You might need to install the Signal Processing toolkit too. This should give you a good testbed for playing around with FFTs, convolution, filtering and the like, and also lets you graph the results. I'd suggest finding a good book on signal processing to get familiar with the concepts, then if you want to get into DSP algorithms, MusicDSP.org is worth a look.
If you want an existing framework to work with then look at CLAM.
A pixel in graphics programming is analogous to a single sampled point in audio. A digitised image is comprised of a 2d array of pixels; a digitised audio signal is comprised of a sequence of sample points, each point correponding to an amplitude. The rest you'll find in the books...
Some old but good practical texts which might be able to pick up cheaply on Amazon:
- Musical Applications of Microprocessors -- Hal Chamberlin
- Elements of Computer Music -- F. Richard Moore
- C Language Algorithms for Digital Signal Processing -- Paul M Embree & Bruce Kimble
Sound On Sound's Synth Secrets series provides a fairly good basic introduction to the concepts of sound synthesis.