Copio a continuació el codi en SuperCollider d’aquesta peça, titulada Dents de serra. En aquesta ocasió la peça dura exactament una hora. Evoluciona durant els primers 30 minuts, fins el punt central de la peça, a partir del qual desfà els seus passos, de manera exacta, fins que torna al punt inicial.
(
SynthDef(\drone, {
arg dur=3600, fon=150;
var env, veu1, veu2, veu3, veu4, veu5, veu6, veu7, veu8, veu9, veu10, veu11, veu12, veu13, veu14, veu15, veu16, veu17, veu18, veu19;
env = EnvGen.kr(Env.new([0, 0.25, 0.25, 0], [5, dur-10, 5]), doneAction: 2);
veu1 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/19))
)*env;
veu2 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/2)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/18))
)*env;
veu3 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/3)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/17))
)*env;
veu4 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/4)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/16))
)*env;
veu5 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/5)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/15))
)*env;
veu6 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/6)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/14))
)*env;
veu7 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/7)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/13))
)*env;
veu8 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/8)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/12))
)*env;
veu9 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/9)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/11))
)*env;
veu10 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/10)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/10))
)*env;
veu11 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/11)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/9))
)*env;
veu12 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/12)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/8))
)*env;
veu13 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/13)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/7))
)*env;
veu14 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/14)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/6))
)*env;
veu15 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/15)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/5))
)*env;
veu16 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/16)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/4))
)*env;
veu17 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/17)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/3))
)*env;
veu18 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/18)), 0,
EnvGen.kr(Env.circle([0, 1], 1800/2))
)*env;
veu19 = VarSaw.ar(
EnvGen.kr(Env.circle([fon, fon*1.5], 1800/19)), 0,
EnvGen.kr(Env.circle([0, 1], 1800))
)*env;
Out.ar(0, Splay.ar([veu1, veu2, veu3, veu4, veu5, veu6, veu7, veu8, veu9, veu10, veu11, veu12, veu13, veu14, veu15, veu16, veu17, veu18, veu19]));
}).add
)
x = Synth(\drone);