The author of this book is well known as the creator of the Max/MSP and Pure Data (PD) audio programming languages, which have been the tools of choice for creating new audio- and event-processing systems for over 20 years. Pure Data examples are used throughout the book to illustrate the processes described. These additionally provide very useful instruction in how to use the language, although this is not the book’s main purpose. The chapters focus on a range of topics in musical signal synthesis and modification, leaving some more recent topics such as physical modelling. Topics outside music signal processing such as algorithmic composition are not covered.
The presentation is detailed and technical, with numerous equations and diagrams. While the knowledge of mathematics assumed is minimal, it is applied rigorously to develop the structures required, and many readers may find the going heavy. There is still plenty of material that is very accessible, however. The author’s individual, sometimes quirky and humorous, approach to problems is in evidence throughout; expect subsection headings such as ‘Sneaky triangle waves’ and ‘Phase bashing’. The book often leans towards the author’s own research work, making a very informative and personal read. Conversely, it sometimes does not fully represent the breadth of work in a given area. In such a technical book, it is difficult bring aesthetics into the discussion in a comfortable way. Aesthetic intent is of course implicit in the design of music signal-processing algorithms, but it is rarely discussed at length. Instead there is a kind of aesthetics of engineering that tends to dominate. The aesthetics of the music is often affected by this. The author approaches the book from an engineering perspective, while clearly being very musically aware. There is no direct discussion of musical intent, but the detail of description implies that these considerations are not far from the surface.
The opening chapters cover some basic material, sinusoids, an introduction to PD, sampling, interpolation, control and polyphony management. An interesting section on ‘timbre stretching’ demonstrates an inexpensive time-domain technique for generating and controlling tones from short samples. The main description of synthesis begins in Chapter 5, ‘Modulation’, where frequency and phase modulation, and waveshaping are examined in detail. Chapter 6, ‘Designer Spectra’, extends the earlier material of timbre stretching, to methods for controlling spectra more precisely, again just using time-domain processes. This leads to the Phase Aligned Format Algorithm, which provides a building block for constructing complex formant sounds. Chapter 7, ‘Time Shifts and Delays’, introduces delays and filtering. The machinery of z-transforms is described in a low-key, friendly way, specifically to then talk about comb filters. This provides a basis for reverberation structures using power-conserving networks. Interpolation and pitch shifting with variable delays are also covered. Chapter 8, ‘Filters’, applies z-transform theory to describe a wide range of filters, and includes a section on building filters from elementary filter units. Filters that are used for generating or processing control-rate signals are given some welcome space. Chapter 9, ‘Fourier Analysis and Resynthesis’, takes a precise look at this subject using the language built up in the previous chapters on filters. The precision in this case is completely necessary. Applications discussed include vocoding, companding and time stretching, noise–pitch separation and phase-vocoding reverberators, which may be unfamiliar to a number of readers. Chapter 10, ‘Classical Waveforms’, provides more time-domain synthesis, this time for waveforms approximated by line segments. Following an analysis of symmetry properties, waveform aliasing is carefully quantified and controlled.
Each chapter concludes with exercises, which are mostly of a technical, quantitative nature. These provide a detailed check on the reader’s understanding of each chapter’s contents. The final question, asking for the sum of the sequence of inverse squares, is a fitting end, capturing the playfulness of the author, and his unified approach to mathematics and music.
In summary this is a very valuable book for those wishing to delve into some detailed practical music-signal processing, even though it is sometimes a personal rather than comprehensive viewpoint. Those looking for a more plug-and-play approach might have difficulties with the technical description, although the large number of PD examples will be found ripe for repurposing. There are few books that use PD as extensively. One other that is recommended is Designing Sound by Andy Farnell (Bournemouth: Applied Scientific Press, 2008), which, although focused on environmental sound synthesis, will also be of interest to computer musicians.