Articles

Risset Glissandos and Strange Loops

"One of my early desires as a musician was to sculpt and organize directly the sound material, so as to extend compositional control to the sonic level - to compose the sound itself, instead of merely composing with sounds."

–Jean-Claude Risset

A strange loop arises when, by moving only upwards or downwards, one finds oneself back where one started. The concept of a strange loop was proposed and extensively discussed by Douglas Hofstadter in Gödel, Escher, Bach. In it, he describes a beautifully-structured framework for exploring the question of how a sense of self arises out of something that has no self; to go from a state of meaninglessness to something that can refer to itself.

One kind of audible strange loop is called a Shepard tone. This illusion was invented by the psychologist Roger Shepard in 1964. He used a computer to create a series of tones that seems to rise forever. Jean-Claude Risset created a version of the scale where the tones glide continuously. The tone appears to rise (or descend) continuously in pitch, yet return to its starting note.

[ca_audio url_mp3="http://1cyjknyddcx62agyb002-c74projects.s3.amazonaws.com/files/2013/11/Risset-Gliss_01.mp3" url_ogg="" align="none"]

Risset used this technique famously in Computer Suite from Little Boy (1968) and Mutations (1969).

These pieces were the result of several years of collaboration with Max Matthews at Bell Labs, realized with Music V. Music V was an extension of Music III, (including Music III's innovative concept of generating units which pre-dated voltage control as a formal protocol), rewritten in Fortran, with added support for analog to digital conversion so one could manipulate digital audio directly. Music V was also distributed free of charge, at the request of Max Matthews, to stimulate research and the production of computer music. During his time at Bell Labs, Risset also compiled a catalog of computer synthesized sounds, including FM and additive examples, for a synthesis course he gave in 1969 with John Chowning at Stanford University.

I set about executing a Risset glissando in Max without referencing existing implementations. I deduced that one would need a master phasor, subdivided in 90 degree phase offsets to act as the control system for the effect. Each subdivided output controls the pitch of an oscillator that moves four octaves, thus the distance between the quadratic outputs is always an octave.

The second part of effect is controlling the output level of each oscillator. The most logical way to do this is to use the existing phase-offset phasor output. The output of half of a cosine function from 270 to 90 degrees produces the correct shape for our purposes. So, if we reduce the magnitude of our phasor output by half, and shift the phase by three quarters, we've achieved our goal. Now when the ramp controlling the output pitch is at its most extreme (at either edge), the oscillator output is inaudible.

My first implementation of the Risset glissando resulted in a new Beap oscillator type. These oscillators are designed to accept a 1v/oct input, so, as long as all oscillators are connected to the same master phasor output, they can be stacked and played like normal oscillators. In other words, one could think about musical structures using the normal rules of harmony.

In addition, I produced a Quadrature Risset Generator module, which, when given a 0-5v phasor input, will produce eight control voltages corresponding to a pitch and amplitude pair for each quadrature output. This module can be used with any Beap oscillator to produce Risset glissandos, or used in conjunction with quantizers to produce chromatic or diatonic Risset figures that endlessly rise or fall.

At this point, I migrated to MaxForLive to produce a couple polyphonic Risset synthesizers, one based on subtractive synthesis and one based on a simple two operator FM group.

Here is a generative Risset Ableton Live set. This uses one Aleatoric module to generate the notes, followed by a mutating MIDI delay, followed by the FM Risset Synthesizer set to a period of 32 measures.

Some example output:

[ca_audio url_mp3="http://1cyjknyddcx62agyb002-c74projects.s3.amazonaws.com/files/2013/11/Risset-Study-6.21_01.mp3" url_ogg="" align="none"]

These devices have been added to my Live 9 Inspiration Suite along some related devices like an aleatoric generator and a couple new delay effects. (click the Download .zip button). As always, the latest version of Beap, including the new Risset modules, can be found at the Beap site.

Computer music is still in its infancy and there is so much area to explore. Risset's work has inspired me to challenge some of my assumptions about music that I thought were fixed.

by Matthew Davidson on November 20, 2013

Creative Commons License
stringtapper's icon

Great article Matthew. Thank you for posting it. I look forward to checking out that Live set.

Dave

beheremeow's icon

Thanks Matthew for sharing your knowledge again. Great post.

oli larkin's icon

nice article. For anyone interested in this stuff, there is a collection of references in the manual for my Endless Series plug-in

I made Endless Series v2 using Max/Pluggo and a similar approach to what Matthew describes. One 3rd party object that i've found very useful for making quadrature phasors is Nathan Wolek's phasor.shift~ from the Granular Toolkit

s.m. snider's icon

this is amazing, i'm so glad i found this, thanks a lot.
a newbie question, but i couldn't figure out how to change the frequency in the lfo to make the osc fall instead of rise.
thanks for any help!

Roman Thilenius's icon


to reverse, just invert the phasor output using [!-~ 1.]

or better, exchange the phasor output with anything you like ... like i do it in this control rate version, which doesnt have an internal clock at all.

s.m. snider's icon

thanks for your quick reply Roman, and for the tip,
i didn't even know the [!-~] object existed.
👌