Search this site
Embedded Files

Home Blog

Blog

Synthesising Shepard Tones 🎹

A "Shepard Tone" is an auditory illusion where a sound appears to either infinitely rise or descend in pitch, named after its creator Roger Shepard.


Here I'll share a method to synthesise Shepard Tones. I'll be doing this in Phase Plant, but other software synthesisers can do the trick too.


The way that a Shepard Tone works (using a rising Shepard Tone as an example) is by having multiple oscillators that ascend in pitch, with a volume curve that gradually fades in and fades out. By stacking this setup multiple times and offsetting each oscillator in time, we can create the effect that the sound is continuously rising in pitch.


Firstly, set up a sine oscillator. We'll use two LFOs to control its level and frequency.


We want its volume to fade in and out gradually, so we'll need the level LFO to have something of a hill-like shape. Phase Plant's LFO section has a "Cosine" preset which is just right for this.


For the pitch LFO, we just want a ramp that moves in the direction we want the pitch to move. I set my pitch LFO to modulate the sine oscillator from 5 Hz to 2000 Hz.


A line which covers upwards to a peak, then downwards again, like a hill

Level LFO shape

A straight, diagonal line, pointing upwards and right

Pitch LFO shape

Both LFOs should have the same frequency, which should be very slow. I like how it sounds at 0.01 Hz.


Once these LFOs are assigned to modulate the oscillator, we have the main building blocks set up.


We'll want to duplicate this setup several times. The exact number of copies is fairly arbitrary, but having too few would make it obvious when the sound repeats, and too many would simply be tedious to set up! I went with 8 copies.


We now need to adjust the phase of the LFOs for each oscillator, so that one oscillator fades in as another one fades out, and so that the frequency of each oscillator is distinct. To calculate the phase offset needed, we need to divide 360 (i.e. one full phase rotation) by the number of oscillators, which in my case gives an increment of 45 degrees.


Then we need to set each oscillator's assigned LFOs to have their phase be offset by the index of that oscillator multiplied by the phase increment.


For eight oscillators, that gives the following values:

  • 1: -180

  • 2: -135

  • 3: -90

  • 4: -45

  • 5: 0

  • 6: 45

  • 7: 90

  • 8: 135


Send in a MIDI note, and you should hear a Shepard Tone!


At this point I added some FX to taste. I added a very slow flanger to add some very gradual movement to it. I also added a slow delay with no feedback, which has a similar effect to adding more oscillators but without us having to go through the repetitive process of adding all the necessary oscillators and LFOs.


Additional resources

  • This article is also available as a video here

  • An interesting use of Shepard Tones from the game "Grapple Dogs" is presented in this video, where the item pickup sound effect appears to rise in pitch every time the player collects an item

By Matt J Hart


Return to Blog Homepage

© Sound ArmouryContact: soundarmoury@gmail.com
Google Sites
Report abuse
Google Sites
Report abuse