Rust Audio

Useful Links for DSP and Audio Programming

This is a companion discussion topic for the original entry at
1 Like

I realized that I should have put this together awhile ago instead of spamming the chat with this stuff over and over, sorry for not doing this earlier.


  • Designing Audio Effects in C++ - Will Pirkle
    • Great DSP theory, only math background needed is high school trig/algebra
    • Code examples in C++
  • Designing Software Synthesizer plugins in C++ - Will Pirkle
    • Strongly recommend reading the FX book first, but the code is more in line with the first edition
    • Strong chapter on virtual analog filters.
    • Code examples in C++
  • Applied Digital Signal Processing - Manolakis & Ingle
    • Code examples in MATLAB, almost everything is covered by GNU Octave’s signal package
    • Great overview of the FFT, sample rate conversion, and FIR filter design theory
    • Heavy on the math, but good practice problems
    • Includes a decent chapter on statistical signal processing
  • Discrete Time Signal Processing - Oppenheim & Schafer
    • the DSP bible
  • A Digital Signal Processing Primer
    • Good beginner textbook, more or less a “getting started” guide for audio DSP
  • Digital Audio Signal Processing - Zölzer
    • No code examples, but strong theory
    • Great chapter on IIR filter designs and discussion of topologies
  • DAFX - multiple authors
    • aka the digital audio cookbook, just about all you need for music signal processing
  • The Art of VA Filter Design - Vadim Zavalishin
    • Sort of the jumping off point for “zero delay feedback” (ZDF) filters (terrible name), very useful


Journal research tip: If you can’t afford access, be sure to search for the paper title in google first, many authors will host the PDFs of their publications on their own pages.



Non-Rust stuff that’s still useful

  • Intel IPP
    • C lib that’s more or less impossible to beat in performance, esp. for the FFT
    • on
  • FFTW
    • the “fastest fourier transform in the west”
    • C lib for the FFT, hard to beat in performance
    • Open source, but GPL
    • on
  • GNU Octave
    • open source alternative to MATLAB
    • signal and control packages have most of the DSP stuff you’ll need

Less audio specific

  • plotters
    • dope plotting library in Rust, useful for developing DSP algorithms if you don’t want to use MATLAB/Octave
  • Agner Fog’s optimization resources
    • the C++ optimization guide is still relevant for hand optimizing Rust code
    • excellent overview of the x86_64 ISA and instruction latency
  • Matt Godbolt’s Compiler Explorer
    • quick and ASM output for rustc with different versions
    • since DSP algorithms are small, it’s very useful for seeing things like auto vectorization
  • criterion
    • easily the best benchmarking solution in Rust today

I’ll update this post if I remember anything