SuperCollider3 + ValhallaDelay
b = Buffer.readChannel(s, "~/sc_projects/samples/Junto_600/600_walking-mfischer.wav".absolutePath, channels:0);
(
SynthDef(\grbf, { |impulse = 10, rate = 1.0, pos = 0.5, dur = 1, lfo_freq = 1.3, env_atk = 1, env_rel = 1|
var pan = LFTri.ar(0.2).range(-0.25, 0.25);
var amp_lfo = LFTri.ar(lfo_freq).exprange(0.5, 0.8);
var trig = Impulse.ar(impulse + LFNoise1.ar(0.1).range(-1,1));
var env = EnvGen.ar(Env.perc(env_atk, env_rel), doneAction: 2) * 0.2;
var out = GrainBuf.ar(2,trig,dur + LFNoise0.ar(2.5).range(0.1, 0.5), b,rate,pos,4,pan, -1, 512) * amp_lfo * env;
Out.ar(0, out!2);
}).add;
)
(
Tdef(\texture, {
var size = 30;
var positions = Array.interpolation(size, 0.1, 0.8);
var durs = Array.interpolation(size, 0.1, 2);
var imp = Array.interpolation(size, 10, 15);
var rate = Array.interpolation(size, 0.7, 1);
var trem = Array.interpolation(size, 1.2, 0.8);
size.do{|i|
["iter ", i].postln;
Synth(\grbf, [
\pos, positions[i],
\impulse, imp[i],
\dur, durs[i],
\rate, rate[i],
\lfo_freq, trem[i],
\env_atk, rrand(3, 7),
\env_rel, rrand(6, 20)
]);
rrand(3,10).wait;
};
});
)
(
Tdef(\main, {
(0..4).do { |i|
Tdef(\texture).fork;
(i+1)*2.wait;
}
});
)
Tdef(\main).play;