View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide

Risset rhythm - eternal accelerando

Home   How To   Code Pool   Public Library   Theory   Events
Roger Shepard invented a method for creating a musical scale which can seem to increase in pitch forever. Jean-Claude Risset extended this and applied it to rhythm as well as pitch, realising that a sound could be created whose tempo appeared to speed up (or slow down) indefinitely.

Here's one way to achieve this effect in SuperCollider, taking a recorded breakbeat as a basis:

// Written by Dan Stowell, September 2006

b = Buffer.read(s,"sounds/break2.snd"); // Provide a simple breakbeat loop
(
var ampTable = Signal.hanningWindow(1024,100).squared;
var ampBuf = Buffer.loadCollection(s, ampTable);


SynthDef("accelerando_inf1", { arg out=0,bufnum=0;
	
	var pos, posses, pitches, amps, sons;
	
	// "pos" is a kind of master pitch control, linear varying between one and zero
	pos = Phasor.ar(1, 0.007 / SampleRate.ir, 0, 1);
	
	posses = (pos + ((0..4)/5)).wrap(0.0, 1.0); // Evenly spaced circularly within 0 to 1
	
 	pitches = (0.2 * 2.0.pow(posses * 5));
	
	amps = BufRd.kr(1, ampBuf.bufnum, posses * BufFrames.ir(ampBuf.bufnum));
	
	sons = (PlayBuf.ar(1, bufnum, pitches.poll(100), loop:1) * amps * 10);
	
	Out.ar(out,
		Pan2.ar(sons.mean.softclip)
	)
}).play(s,[\out, 0, \bufnum, b.bufnum]);
)


Here's a recording: Risset_accelerando_beat1.mp3

Other methods were discussed too: http://elists.resynthesize.com/sc-users/2006/09/1632851/

Link to this Page