Digital Signal Processing References
This is a list of useful references for learning DSP programming. For each article or book, I will note what I found it useful for.
Oscillators and FM Synthesis
How to implement standard oscillators such as sine, saw, and square waves, as well as FM synthesis. Sine waves and FM synthesis are the easiest to implement, saw and square waves are a little bit more tricky.
- Antialiasing Oscillators in Subtractive Synthesis (2007)
- Vesa Välimäki and Antti Huovilainen
- The IEEE Signal Processing Magazine April 2007
- Explains Band-limited oscillators, enabling square wave and saw wave oscillators with no or little aliasing distortion at high frequencies
- The PolyBLEP approach performs well and sounds reasonable for realtime applications
- The Synthesis of Complex Audio Spectra by Means of Frequency Modulation (1977)
- John M. Chowning, Stanford Artificial Intelligence Laboratory
- Computer Music Journal Vol. 1., No. 2
- FM synthesis
Filters
These will help you implement filters like the Moog ladder filter, graphical equalizers, and DC filters.
- Non-linear Digital Implementation of the Moog Ladder Filter (2004)
- Antti Huovilainen
- Implementation of Moog-style filter
- Audio-EQ-Cookbook.txt
- Robert Bristow-Johnson
- Columbia University music-dsp mailing list archives
- Full implementation of standard equalizer filters
- DC Blocker
- from Introduction to Digital Filters with Audio Applications (2007)
- Julius O. Smith III
- DC filter, eliminates DC offset buildup
Delay-based effects, Reverb, Physical Modelling
A range of effects is based on feedback delays. A comb filter is a delay, an allpass filter is a comb filter with an added feed-forward, and delay, reverb, and physical modelling can be constructed out of comb and allpass filters.
- Natural Sounding Artificial Reverberations (1962)
- M. R. Schroeder, Bell Labs
- Standard reverb implementation
- Physical Audio Signal Processing (2010)
- Julius O. Smith III
- Physical modeling synthesis and reverb theory
- Feedback Comb Filter
- Allpass Filter - basic building block for reverbs
- Spin Semiconductor Knowledge Base: Audio Effects (2007)
- Keith Barr, founder of Alesis
- Useful tips for implementing reverbs and other effects
DSP Theory, Z-transform, Transfer Functions
DSP effects and filters can be specified as pseudocode, recurrence relations, or block diagrams, which are all relatively simple to translate into code. A deeper understanding of DSP theory is not required to implement your own DSP effects or even a synthesizer.
The key to understanding the often used block diagrams is that Z^-1 means a delay of one sample.
The formal mathematical filter theory will help understanding transfer functions, block diagrams including the use of Z^-1. The math concepts are intuitively quite difficult, and I recommend following a DSP course to fully understand these.
- Introduction to Digital Filters with Audio Applications (2007)
- Julius O. Smith III
- Formal mathematical filter theory
- DC Filter
- DAFX - Digital Audio Effects (2011)
- Udo Zolzer
- Implementations of a selection of effects
History
- The Digital Computer as a Musical Instrument (1963)
- Max Mathews
- The original proposal by Max Mathews
Unorganized References
- The Theory and Technique of Electronic Music (2007)
- Miller Puckette, author of the original Max