Phase Vocoder Part 1
Manipulating audio in the frequency domain
This lecture continues a series on block-based processing, and is the first of three lectures on the phase vocoder, a powerful tool for manipulating audio in the frequency domain. This lecture covers the overlap-add technique, a common approach to dividing a signal into blocks, manipulating it in the frequency domain, then reconstructing it.
This lecture also introduces multi-threaded audio processing, showing how to move time-consuming calculations into a lower priority real-time thread.
Table of contents
- What you’ll learn in this lecture
- What you’ll make in this lecture
- Code examples
- Recommended parts
- Additional references
Lecture 18: Phase Vocoder Part 1
What you’ll learn in this lecture
- Segmenting a real-time signal into windows
- Working with overlapping windows (overlap-add)
- Multi-threaded audio processing
What you’ll make in this lecture
- A phase vocoder framework with simple effects
fft-overlap-add: This code provides a template for implementing the overlap-add block-based processing technique, with an optional simple example of a robotisation effect.
fft-overlap-add-threads: This example extends
fft-overlap-add to move the FFT calculation to a lower-priority thread to allow glitch-free execution with small real-time audio buffer sizes.
No external components are required for this lecture.
Here are some textbooks and other resources related to the Fast Fourier Transform and spectral audio processing:
- Alan V. Oppenheim and Ronald W. Shafer, Discrete-Time Signal Processing, 3rd edition. Publisher link. See also the same class on MIT OpenCourseware.
- Julius O. Smith, Mathematics of the Discrete Fourier Transform (DFT) (free online textbook).
- Julius O. Smith, Spectral Audio Signal Processing (free online textbook).
- Joshua D. Reiss and Andrew McPherson, Audio Effects: Theory, Implementation and Application. Publisher link.
- Richard Boulanger and Victor Lazzarini, editors, The Audio Programming Book. Publisher link
- A visual introduction to the Fourier transform on YouTube from 3Blue1Brown
- Divide and Conquer: the FFT algorithm on YouTube from MIT OpenCourseWare (a mathematical explainer)