The Shepard-Risset Glissando, derived from the Shepard Tone, is an auditory illusion in which the pitch of a sound appears to rise (or fall) continuously. This illusion is achieved by playing overlapping tones that are one octave apart and periodically fade in and out. It is often used in movies or games to create a sense of increasing intensity or the feeling that something is endless. In this post, we will see how to recreate this iconic effect in Atom Craft.
For our implementation we first need to prepare three looping pads or tones.
- Take your favorite synthesizer or virtual instrument, and play a steady note or chord you like for several seconds. It is better if the sound is not too modulated to avoid discontinuities later.
- Then, play the same tone/chord one octave higher, and finally one octave lower.
- Create seamless loops from these three pads.
- Once exported, import your sounds in Atom Craft’s Materials folder.
- Change the Override Loop information Flag property to True to ensure that all the Materials will loop properly.
We only used three loops, but adding more will help create a smoother glissando.
Now that we have our three loops ready, we can start implementing the glissando:
- Create a Polyphonic Cue.
- Add three tracks and import your materials from the lowest to the highest pitch.
- At the Cue level, add a Volume Automation with a 2 second fade-in in order to smooth the attack of the sound.
If you play the Cue now, you will only hear a steady sound. We need to modulate the pitch and the volume of the tracks (each corresponding to a different octave) by using an AISAC.
- In the Project Tree, create an AISAC named Glissando Control.
- Use this AISAC to control the Volume and the Pitch of each track.
- For each graph set the Control Type to Auto Modulation, the Type to Loop and finally the Time to 30000 msec. This will automate the movement of the AISAC.
To make an infinitely rising glissando, we must make each track continuously slide upward, one after the other.
- We start by drawing a triangular volume curve on the first track, with the Volume graph at 0, rising to 1 when the AISAC reaches 0.5, and finally going back to 0 at the end, so that it loops perfectly when the AISAC modulation is reset.
- Then we turn it into a smooth curve by setting the Curve Type for each point to a S Curve.
- To create a glissando effect, we need to periodically cross-fade between the three tracks, following the AISAC axis. For the second and third tracks, we therefore duplicate the first curve, but shifted, i.e., starting with the AISAC value at 0.333 and then 0.666, respectively.
- The three curves should look like sine waves with different phases.
For the infinite glissando effect to work, we need to go through a similar process for the three pitch graphs:
- On the first track, when the AISAC value is 0, the pitch should be equal to -2400. Then, when the AISAC value reaches 1, the pitch should increase to 2400. Since the volume should be at 0 when the pitch changes from -2400 to 2400, no artifacts will be heard.
- Do the same for the remaining two pitch curves, by offsetting the starting point by 0.333 and 0.666, respectively.
- Once you are done, the three pitch curves should look like three saw waves with different phases.
Now if you play the Cue, you should hear a continuous glissando.
Additional steps can make the sound more interesting, for example:
- Duplicate the track with the lowest pitch, but remove any AISAC control. This will add a constant sound that will mask a bit the cyclic pattern of the glissando.
- On the effects side, you can add a Phaser with a rate matching the AISAC’s Auto Modulation Time. It will add a layer of modulation.
- Finally, route the Cue to a dedicated Reverb bus to glue the tracks together and produce a denser sound.
This concludes our foray into the world of auditory illusions and the Shepard-Risset Glissando. Of course, you can try it with your own loops, make the sound continuously fall instead or endlessly rise, etc. Download our Atom Craft project to get started quickly and experiment!