LaTeX source and Python code for "Think DSP: Digital Signal Processing in Python", by Allen B. Downey.
Jupyter Notebook Other
Latest commit 13aaeca Oct 10, 2016 @AllenDowney Updating chap01
Failed to load latest commit information.
book Revert "Add .gitignore for code and book respectively." May 9, 2016
code Updating chap01 Oct 10, 2016 Update Feb 2, 2016


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.

Run the code for this book on Binder: Binder

This is a work in progress, so comments are welcome.

The book is under a Creative Commons license:

Attribution-NonCommercial-ShareAlike 3.0 Unported

The code is under the GNU GPL: GNU GPLv3


Special thanks to Freesound (, which is the source of many of the sound samples I use in this book, and to the Freesound users who uploaded those sounds. I include some of their wave files in the GitHub repository for this book, using the original file names, so it should be easy to find their sources.

Unfortunately, most Freesound users don't make their real names available, so I can only thank them using their user names. Samples used in this book were contributed by Freesound users: iluppai, wcfl10, thirsk, docquesting, kleeb, landup, zippi1, themusicalnomad, bcjordan, rockwehrmann, marchascon7, jcveliz. Thank you all!

Here are links to the sources: