The third edition of "Digital Signal Processing for Audio Applications" is out. In the very first comment to the first edition someone said the book did not contain enough code, but only mathematics. The third edition introduces code samples in a separate volume 2.
Volume 2 of the third edition of the book contains Java code samples for several digital signal processing effects – distortion, delay, chorus, bass chorus, equalizer, reverb, compressor, wah wah, pitch shift. It is not always simple to translate the mathematics of DSP into code. This book does so in a logical progression. It starts with the simplest of effects – the simple distortion that cuts off or compresses the peaks of signals – and continues towards more complex effects such as the wah wah, which uses a sweeping infinite impulse response peak filter, and the pitch shift, which relies on phase and frequency adjustments to the Fourier transform segments.
The approach to all code segments is a brute force one. The code is not always elegant, as priority is given to ease of implementation. The code samples are easy to understand and replicate. All effects are designed with the Orinj effect framework in mind, so that they can be tested through Orinj, although a separate test audio player is also presented.
This book in its current and previous editions makes the argument that, in mathematics, much of DSP can be reduced to simple algebraic and trigonometric manipulations. In programming, DSP is similarly not complex. Developing code that modifies an audio signal according to the math is not the most intricate of problems. However, storing audio data, managing audio files, and designing an intuitive but functional user interface could be complex. Some related code samples are also provided.
Volume 1 derives and explains the mathematics behind DSP. It contains the work of previous editions, but there are some changes. The first edition of this book focused on signal frequencies – identifying them, filtering them out, changing their magnitude, and so on. This is a huge part of DSP for audio, but there is more. The second edition introduced wavelet transforms and data compression, more windows, and elliptic filters. The math portion of this third edition includes shelving and peak filters and improves the discussion of the Hilbert transform.