137 lines
3.1 KiB
Plaintext
137 lines
3.1 KiB
Plaintext
|
|
(
|
|
// function to partially match filename for buffers
|
|
~getSmp = { |regexp|
|
|
~smpBuffers.detect { |buf|
|
|
regexp.matchRegexp(buf.path)
|
|
}
|
|
};
|
|
)
|
|
|
|
(
|
|
SynthDef(\bufCyc, {
|
|
arg bufnum, gate=1, freq=440, chanDetune=1, out=0, amp = 1,
|
|
attackTime=0.01, releaseTime=1,
|
|
fltfact = 1
|
|
;
|
|
|
|
var snd, env;
|
|
|
|
env = Linen.kr(gate, attackTime:attackTime, releaseTime:releaseTime, doneAction:2);
|
|
|
|
freq = [freq, freq * (1 + (chanDetune * 0.0005))];
|
|
|
|
snd = BufRd.ar(
|
|
numChannels: 1,
|
|
bufnum: bufnum,
|
|
//phase: LFSaw.ar(BufDur.ir(bufnum).reciprocal).range(0, BufFrames.ir(bufnum)),
|
|
phase: LFSaw.ar(freq).range(0, BufFrames.ir(bufnum)),
|
|
loop: 1,
|
|
interpolation: 2);
|
|
|
|
snd = (snd * 0.5) + (snd.clip2(0.3) * 2);
|
|
|
|
snd = RLPF.ar(snd, (freq * fltfact).min(20000), rq: 0.3).clip2(1.0.linrand+0.8);
|
|
|
|
snd = snd * amp * env;
|
|
Out.ar(out, snd);
|
|
|
|
}).add;
|
|
)
|
|
|
|
Pdef(\x32).play
|
|
Pdef(\x32).fadeTime = 0;
|
|
|
|
(
|
|
Pdef(\x32,
|
|
Pbind(
|
|
\instrument, \bufCyc,
|
|
\bufnum, [~getSmp.value("0229"),~getSmp.value("0246")],
|
|
|
|
\dur, Pseq([0.20, 0.40, 0.60, Prand([0.20,0.60]), Prand([Pseq([0.10,0.10]), Pseq([0.30,0.10])])], inf) ,
|
|
\degree, Pseq([ 2, 2, 4, 1 ], inf),
|
|
|
|
\mtranspose, Pseq([ Pn([0], 10 ),
|
|
Pn([1], 5 ),
|
|
Pn([0], 10 ),
|
|
Pn([3], 4 ) ], inf),
|
|
|
|
\ctranspose, Pseq([ Pn([0], 50 ),
|
|
Pn([5], 5 ) ],inf),
|
|
|
|
\octave, [3, 2, 4],
|
|
\amp, [0.3, 0.5, 0.1] * 0.6,
|
|
|
|
\detune, [0.2, 0],
|
|
\chanDetune, 30,
|
|
\legato, Prand([0.8,0.6,0.4],inf),
|
|
\releaseTime, 0.01,
|
|
\fltfact, Prand([9,15,12,7],inf)
|
|
));
|
|
)
|
|
|
|
// cleaning up
|
|
Pdef(\x32).clear
|
|
Pdef(\x32).free
|
|
|
|
Pdef(\x33).play
|
|
Pdef(\x33).fadeTime = 0;
|
|
(
|
|
Pdef(\x33,
|
|
Pbind(
|
|
\instrument, \bufCyc,
|
|
\bufnum, [~getSmp.value("0246"),~getSmp.value("0229")],
|
|
|
|
\dur, Pseq([ 0.20,
|
|
0.40,
|
|
Prand([0.60,0.20]),
|
|
0.10,
|
|
0.10,
|
|
Prand([ Pseq([0.13,0.07]), Pseq([0.30,0.10]) ])
|
|
], inf),
|
|
|
|
\degree, Pseq([ [4,9], 2, 8, 4, 1], inf),
|
|
\mtranspose, Pseq([ Pn([0],10), Pn([3],10), Pn([0],10), Pn([5],5), Pn([7],2) ], inf),
|
|
\ctranspose, Pseq([ Pn([0],50), Pn([5],10) ], inf),
|
|
|
|
\octave, [4,5,6],
|
|
\legato, Prand([0.1,0.3,0.2,0.4],inf),
|
|
\releaseTime, Prand([0.1, 0.01, 0.02, 0.03, 0.05, 0.09],inf),
|
|
\fltfact, Prand([2,20,9],inf),
|
|
\amp, [0.7,0.5,0.1] * 0.2,
|
|
\detune, [0,0.3,-0.3],
|
|
\chanDetune, Pseq([-10,0,5,10,-5],inf),
|
|
));
|
|
)
|
|
|
|
Pdef(\x35).play
|
|
Pdef(\x35).fadeTime = 0;
|
|
(
|
|
Pdef(\x35,
|
|
Pbind(
|
|
\instrument, \bufCyc,
|
|
\bufnum, [~getSmp.value("0246"),~getSmp.value("0229")],
|
|
|
|
\dur, Pseq([ 0.20,
|
|
0.10,
|
|
Prand([0.10,0.20]),
|
|
0.10,
|
|
0.10,
|
|
Prand([ Pseq([0.13,0.07]),
|
|
Pseq([0.30,0.10]) ])
|
|
], inf),
|
|
|
|
\degree, Pseq([ [4,9], 2, 8, 4, 1 ], inf),
|
|
\mtranspose, Pseq([ Pn([0],10), Pn([3],10), Pn([0],10), Pn([5],5), Pn([7],2) ], inf),
|
|
\ctranspose, Pseq([ Pn([0],50), Pn([5],10) ], inf),
|
|
\octave, 5,
|
|
|
|
\detune, [0, 0.3, -0.3],
|
|
\chanDetune, Pseq([ -10, 0, 5, 10, -5 ], inf),
|
|
\legato, Prand([ 0.1, 0.05 ], inf),
|
|
\amp, [0.7, 0.5, 0.1] * 0.1,
|
|
\fltfact, Prand([ 2, 5 ], inf),
|
|
\releaseTime, Prand([ 0.01, 0.02, 0.05, 0.09 ], inf)
|
|
));
|
|
)
|