147 lines
3.9 KiB
Plaintext
147 lines
3.9 KiB
Plaintext
|
//
|
||
|
///////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
// GCD SINMODFEED /////////////////////////////////////////////////////////////////////////////////////////
|
||
|
// feedback of modulated SinOsc
|
||
|
|
||
|
// low rumble 0 ------------------------------------
|
||
|
(
|
||
|
SynthDef(\dNoz, {
|
||
|
arg out=0, gate=1, amp=0.1, envattackTime=0.001, release=0.001;
|
||
|
var snd, env;
|
||
|
env = Linen.kr(gate, envattackTime, 1, release, doneAction:2);
|
||
|
snd = WhiteNoise.ar(1);
|
||
|
snd = snd + SinOsc.ar(SinOsc.kr(10).range(40,60), mul:0.2);
|
||
|
snd = snd + Pulse.ar(SinOsc.kr(12).range(40,60), mul:0.1);
|
||
|
snd = snd.clip2(0.8);
|
||
|
|
||
|
snd = LPF.ar(snd, LFNoise2.ar(0.4).range(60,100), mul:3);
|
||
|
|
||
|
snd = snd.dup;
|
||
|
snd[1] = DelayL.ar(snd[1], 0.05, SinOsc.kr(0.2).range(0.001,0.003));
|
||
|
snd = snd * env * amp;
|
||
|
Out.ar(out, snd);
|
||
|
|
||
|
}).add;
|
||
|
);
|
||
|
(
|
||
|
// "LFTri bass drum kick" - by luka@lukaprincic.si
|
||
|
SynthDef(\tribd, {
|
||
|
arg out=0, gate=1, freq=77, amp=0.1;
|
||
|
var snd,snd1, aenv, fenv, senv;
|
||
|
|
||
|
fenv = Env(levels:[2, 1.2, 0], times: [0.1, 0.4]).kr;
|
||
|
freq = [freq,freq*2] * fenv;
|
||
|
freq = freq.max(10);
|
||
|
|
||
|
snd = LFTri.ar(freq) + SinOsc.ar(freq) * [1,0.3];
|
||
|
snd1 = SinOsc.ar(190, mul:3) * EnvGen.ar(Env.perc(releaseTime:0.1), gate) ;
|
||
|
snd = snd.sum * 0.9;
|
||
|
snd = LPF.ar(snd, freq * 4);
|
||
|
|
||
|
snd = snd + RLPF.ar( BrownNoise.ar(1),
|
||
|
Env(levels:[2000,500,90], times:[0.01,0.05]).kr, 0.3 );
|
||
|
|
||
|
snd = snd + ( BPF.ar(WhiteNoise.ar(0.5), 3000)
|
||
|
* Env([1,1,0], [0.004,0.005]).kr );
|
||
|
snd = snd + ( BPF.ar(WhiteNoise.ar(0.5), 7000)
|
||
|
* Env([1,1,0], [0.003,0.001]).kr );
|
||
|
|
||
|
aenv = Env([1,1,0], [0.2,2], curve: -9).kr;
|
||
|
snd = snd1 + snd * aenv;
|
||
|
snd = Limiter.ar(snd, 8);
|
||
|
|
||
|
senv = Linen.kr(releaseTime: 0.1, gate: gate, doneAction: Done.freeSelf);
|
||
|
snd = LeakDC.ar(snd);
|
||
|
snd = snd * amp * senv;
|
||
|
snd = Pan2.ar(snd, pos:0);
|
||
|
snd = snd.clip2;
|
||
|
Out.ar(out, snd);
|
||
|
}).add;
|
||
|
);
|
||
|
|
||
|
|
||
|
|
||
|
////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||
|
(
|
||
|
~clk3 = TempoClock.new(2.2);
|
||
|
//~myClock = TempoClock.new(2.2);
|
||
|
|
||
|
//~clk3 = TempoClock.tempo= 2.2 / 1;
|
||
|
{ // routine starts here
|
||
|
1.wait;
|
||
|
Ndef(\gcdmod).proxyspace.clock = ~clk3;
|
||
|
Ndef(\gcdmod).proxyspace.quant = 1;
|
||
|
Ndef(\gcdmod, {
|
||
|
var a = TDuty.ar(Dseq((0..3), inf) + 5 * SampleDur.ir);
|
||
|
var b = TDuty.ar(Dseq((3..0), inf) + 5.01 * SampleDur.ir);
|
||
|
var mod = 50;
|
||
|
var t = PulseCount.ar(a) % mod;
|
||
|
var u = PulseCount.ar(b) % mod;
|
||
|
var n, j, d, e, c;
|
||
|
|
||
|
d = LocalIn.ar(2);
|
||
|
n = gcd(t, u + [0, 1]);
|
||
|
e = n.linexp(0, mod, 70, 10000);
|
||
|
j = SinOsc.ar(e);
|
||
|
LocalOut.ar(j * d);
|
||
|
c = CombC.ar(j, 1, [0.009,0.007,0.008, 0.006] * LFNoise1.ar([0.01,0.01]).range(1.3,0.7), 30, mul:0.05);
|
||
|
j = j * LFNoise1.ar(0.2).range(0,0.5) + Splay.ar(c);
|
||
|
j = Greyhole.ar(j, damp:0.5, diff:0.5 size:4);
|
||
|
j = Limiter.ar(LPF.ar(HPF.ar(j, 100), LFNoise1.kr(0.1).exprange(200,18000)), 0.5, 0.55);
|
||
|
j = j * LFPulse.ar([2.2,4.4]*2, 0.96, width:LFNoise1.ar(0.2).range(0.8,0.95)).range(LFNoise1.ar(0.1).range(0,1),1);
|
||
|
j = j + LFPulse.ar([2.2,4.4], 0.96, mul: LFNoise1.kr(1/10).range(0,0.5) * Line.kr(0,1,30));
|
||
|
j = LeakDC.ar(j);
|
||
|
|
||
|
// Out.ar(0, j * EnvGate())
|
||
|
});
|
||
|
|
||
|
Ndef(\gcdkick).proxyspace.clock = ~clk3;
|
||
|
Ndef(\gcdkick).proxyspace.quant = 1;
|
||
|
Pdef(\gcdkick, {
|
||
|
Pbind(*[
|
||
|
instrument: \tribd,
|
||
|
dur: Pseq([
|
||
|
Rest(32),
|
||
|
Pseq(
|
||
|
[
|
||
|
Prand( [ Pseq([1.5,1.5]), 3 ] ),
|
||
|
3,
|
||
|
Prand([
|
||
|
4,
|
||
|
Pn(1,3),
|
||
|
Pn(Pseq([1/2,1,Prand([1/2,1.5])]),1)
|
||
|
])
|
||
|
] / 2, 32)
|
||
|
],inf),
|
||
|
//dur: 1,
|
||
|
//dur: Pseq([1.5,1,1.5,1/2,2,1/2,1.5,1/2,1/4,1/2,1/4,3],inf),
|
||
|
freq:77 + Prand((1..10)/5, inf),
|
||
|
octave:2,
|
||
|
amp:0.1
|
||
|
])
|
||
|
};);
|
||
|
Ndef(\gcdkick).mold(2, \audio, \elastic);
|
||
|
Ndef(\gcdkick)[0] = Pdef(\gcdkick);
|
||
|
|
||
|
|
||
|
Pbindef(\n1,
|
||
|
\instrument, \dNoz,
|
||
|
\dur, Pseq([20,Rest(10)],inf),
|
||
|
\amp, 0.5,
|
||
|
\legato, 1,
|
||
|
);
|
||
|
//Pdef(\n1).stop;
|
||
|
//Pdef(\n1).clear;
|
||
|
|
||
|
1.wait;
|
||
|
|
||
|
s.makeBundle(0.25, {
|
||
|
Pdef(\n1).play(~clk3, quant:1);
|
||
|
Ndef(\gcdmod).play;
|
||
|
Ndef(\gcdkick).play;
|
||
|
});
|
||
|
|
||
|
}.fork(~clk3)
|
||
|
)
|
||
|
///////////////////////////////////////////////////////////////////////////////////////
|