Skip to content

BillyDM/awesome-audio-dsp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Awesome Audio DSP

My curated list of audio DSP (digital signal processing) and plugin development resources. New resources may be added in the future.

"If I'm a total noob, where should I start?"

  • Designing Software Synthesizer Plug-Ins in C++ and Designing Audio Effect Plugins in C++ by Will Pirkle
    • These textbooks are a common recommendation for beginners.
    • The synthesizer one is better than the effect one imo, so go for that if you plan on only buying one.
    • ISBN-10: 0367510480 and 1138591939, ISBN-13: 978-0367510480 and 978-1138591936
  • projet μ by Yü Fang
    • A great free online course that teaches the basics of DSP from scratch using the C programming language. It's my personal go-to recommendation to beginners.
    • Does a great job of explaining concepts in code, along with helpful graphics.
    • Requires some knowledge of complex numbers and basic integral calculus. (There's really no way around this if you're learning DSP). It is also very Linux-focused, but the course can still be done using Windows or MacOS.
  • Think DSP - A great free online book that teaches many fundamental DSP concepts using Python.

I often get asked about beginner-friendly DSP learning resources which focus on the Rust programming language. Unfortunately there isn't really anything out there. I would suggest learning DSP in another language first and then translating that knowledge to Rust later. The choice of language doesn't really matter that much for learning DSP, the main difference comes when it's time to create full applications/plugins around your DSP code.

Contribute

Feel free to open a PR if you wish! All linked resources must satisfy the following conditions:

  • The resource must be genuinely useful to learn from. (Toy/hobby projects are allowed in Open Source Plugins & Software as long as the software is functional.)
  • Lists must be sorted in alphabetical order.
  • If you are self-promoting your own materials (and especially if you have a financial incentive to do so), provide evidence that the materials have been useful to others and that others recommend your materials.
  • Anything related to LLMs or other generative AI technologies will not be accepted. (The Machine Learning category is for non-generative neural network technology like noise removal, circuit simulations, and guitar amp simulations.)
  • Code repositories that have been "vibe coded" or which have used generative AI substantially will not be accepted.