LaTeX source and Python code for Think DSP: Digital Signal Processing in Python, by Allen B. Downey.
The premise of this book (and the other books in the Think X series) is that if you know how to program, you can use that skill to learn other things. I am writing this book because I think the conventional approach to digital signal processing is backward: most books (and the classes that use them) present the material bottom-up, starting with mathematical abstractions like phasors.
With a programming-based approach, I can go top-down, which means I can present the most important ideas right away. By the end of the first chapter, you can break down a sound into its harmonics, modify the harmonics, and generate new sounds.
This is a work in progress, so comments are welcome.
The book is under a Creative Commons license:
Attribution-NonCommercial-ShareAlike 3.0 Unported http://creativecommons.org/licenses/by-nc-sa/3.0/
The code is under the GNU GPL: GNU GPLv3 http://www.gnu.org/licenses/gpl.html