Phase Vocoder Part 3

Manipulating sound and resynthesising to create effects

This is the final lecture of a three-part series on the phase vocoder, a powerful tool for manipulating audio in the frequency domain. Where Lecture 19 explained how to estimate frequency components from the phase of FFT bins, this lecture now explains how to manipulate and resynthesise those components, producing a pitch shifter and other effects.

Table of contents

  1. What you’ll learn in this lecture
  2. What you’ll make in this lecture
  3. Code examples
  4. Recommended parts
  5. Additional references

Lecture 20: Phase Vocoder Part 3

What you’ll learn in this lecture

  • Modifying signals in the frequency domain
  • Converting frequency to phase
  • Analysis and synthesis windows

What you’ll make in this lecture

  • Pitch shifting, robotisation and whisperisation effects

Code examples

Find the code examples here

fft-robotisation: Zeroes the phase of each FFT bin at each hop to produce regularly spaced frequencies, leading to a robot-like effect when applied to a voice. You will modify the code to add analysis and synthesis windows, then make a version which produces a whisperisation effect instead.

fft-pitch-shifter: The capstone project of the phase vocoder lecture series. Convert from phase to frequency and back again, scaling the frequencies in the middle to shift the pitch of the sound without changing its timing.

fft-robotisation-v2: A different and more flexible approach to the robotisation effect, based on the principles used in the pitch shifter. You will implement code for rounding each frequency to the nearest multiple of a desired fundamental.

Running the examples in this course assumes that you have a Bela Starter Kit or Bela Mini Starter Kit.

No external components are required for this lecture.

Additional references

Additionally, here are some textbooks and other resources related to the Fast Fourier Transform and spectral audio processing: