Even under less unusual circumstances, summer often offers a little downtime to step back, acquire a little new wisdom, and spend some time learning a few new tricks to take with you as the seasons start to change (this summer may be more of an example of that than usual).
We're going to spend a little time looking at an area of audio processing in Max many beginning users find as interesting as it can be daunting: Frequency Domain Processing.
Beyond The Usual Suspects
You've probably run across MSP externals we use for frequency domain processing (fft~, ifft~, and pfft~), along with their helper objects, exotically named and otherwise (cartopol/cartopol~, fftin~, fftinfo~, fftout~, frameaccum~, framedelta~, poltocar/poltocar~, and vectral~) in your patching, even if you haven't used them.
You may even have noticed a pair of MSP tutorials as part of the Analysis series (MSP Analysis Tutorial 3: Using the FFT and MSP Analysis Tutorial 4: Signal Processing with pfft~) while exploring. You might even have cracked open some help files and Searched the Max examples folder and the Forums for examples now and then.
But it's summer and you've got some extra time. We'd like to recommend some other ways to explore frequency domain processing in your patching life. Let's get started!
Exploring Sound of the FFT
While most of us are well acquainted with time-based signal processing (delays, echos, phasing, flanging, etc.) frequency-based signal processing offers a few challenges - we need to wrap our heads around some new ideas, and to get some new sounds into our ears as well. One place to start is to explore some plug-ins and Max resources that let us actually hear what frequency domain processing give us.
Let's start with some free plug-ins and Max externals.
- Andrew Reeman's Spectral Suite (Windows and Macintosh) and Michael Norris's soundmagic spectral plug-ins (Macintosh only) are a good place to start. You can drop them into a vst~ object or your DAW, load up some audio material you know, and investigate plug-ins with intriguing names like Spectral Blurring, Spectral Gate, or Bin Scrambler. These ought to whet your interest nicely.
- Closer to Max/MSP home, Eric Lyon's FFTease suite of MSP external objects have provided hours of fun and edification to MSP users since around the turn of the century. Want to know what a dentist~, a thresher~, or drown~ does? Just fire up the help files!
MSP-based Tutorial Resources
In addition, there are MSP resources out there in patch form that will not only let you explore the sound palette, but also help you to understand the tools with which you're working.
- Jean-Francois Charles created a seminar's worth of FFT-based tutorial patches to accompany his Computer Music Journal article on Spectral Sound Processing Using Max/MSP and Jitter (Vol. 32/Fall, 2008). Together, they're a spectacular resource.
- One of the standard frequency domain tools is the Phase Vocoder. Richard Dudas and Cort Lippe created a fantastic two-part tutorial that covers the theory and construction of the phase vocoder. Between Part 1 and Part 2, you'll have a good working knowledge of the phase vocoder (and a cool pair of Max patches, too).
- We've spoken before about the array of tutorials, patches, and plain old good advice contained in Chris Dobrian's Max Cookbook (you can find more about that here). His section on indexing and accessing FFT bins and isolating single FFT bins will come in handy as you proceed.
- A little closer to home, you'll find some example patches that came along with the Max application you already own - there's a list of them here. That list includes a trio of really nice Max for Live devices, too!
(And your humble author even got in on the act with this far less theoretical (but enjoyable) creation of a video-based FFT audio filter tutorial).
Going For The One
For those of you with an appetite for the full banquet that is frequency domain processing wisdom, nothing beats Tim Place's magisterial 7-part Advanced Max video series on FFTs - the theory and practice Grand Tour of this listing. Tim's series includes
- An introduction which includes building a pair of spectral effects processing patches
- Exploring FFT windowing and applying this knowledge to the noise reduction and Forbidden Planet patches built in the introduction
- Visualizing FFT processing and exploring the use of various windowing types
- Creating a Max for Live device that does independent processing of each band of audio
- Using the Max SDK to create a pair of Max externals to make FFT Processing externals
- Using the external objects we've created to explore complex numbers in FFT processing
- Building an FFT-based pitch tracker
Tim's going to be contributing another group of amazing tutorials in the coming weeks that I think you'll find further enhance your Summer Of The Frequency Domain. Stay tuned!
I hope you've found this diverting set of patching resources to be an invitation to some summer explorations. Feel free to suggest other sources of inspiration you've found useful below.