The phase vocoder is one of the more powerful methods of manipulating sounds in the frequency domain. It is not a new technology: MIT's CSound[1] application (Linux version[2], on-line manual[3] and FAQ[4] also available), which was ported to the C language and Unix from the original MUSIC11 program originally written in assembler for the PDP-11 minicomputer by Barry Vercoe, contains phase vocoder software. However, the algorithm was of such complexity and computers of the time so short of processing power that it would often require many hours' processing to realise each second of audio output. Only recently has sufficient processing reached the desktop to make real-time phase vocoding a viable proposition.
A vocoder is an electronic signal processor consisting of a bank of filters spaced across the frequency band of interest. Originally, it was hoped that such a device would be able to reduce the bandwidth necessary for the transmission of voice telephony, but it rapidly found other applications in popular music. A voice signal could be analysed by the filter bank in real time, and the output applied to a voltage-controlled filter bank or an oscillator bank to produce a distorted reproduction of the original. The effect can be heard in some Electric Light Orchestra tracks, and in the theme music to the film ``Educating Rita''.
After Portnoff[5] demonstrated an efficient method of building the required filter banks digitally, the way was open for a computer-based implementation of a digital phase vocoder, bringing with it a vast number of possibilities for the analysis, manipulation and synthesis of audio. Wishing to use this technology to improve understanding of the relationship between a sound's timbre and its spectrum, I set about writing Sculptor, a real-time and interactive phase vocoder for Linux.