adding kick-comb-dark-saw recipe
parent
bb7987fb66
commit
f4d27f14fc
|
@ -0,0 +1,272 @@
|
|||
|
||||
( // synthdefs
|
||||
|
||||
SynthDef(\dlywrangler, {
|
||||
arg out=0, in;
|
||||
var snd;
|
||||
snd = In.ar(in,2);
|
||||
snd = CombL.ar(snd, 1, Lag.ar(LFNoise0.ar(1).range(0.01,0.1),0.01), 3, mul:0.1) + snd;
|
||||
Out.ar(out, snd);
|
||||
}).add;
|
||||
|
||||
|
||||
SynthDef(\wiDel, {
|
||||
var snd = In.ar(\in.kr, 2);
|
||||
snd = CombL.ar(snd, 1, SinOsc.ar(0.02,[0,pi/2]).range(0.5,0.6), 10, mul:1) + snd;
|
||||
Out.ar(\out.kr(0), snd);
|
||||
}).add;
|
||||
|
||||
|
||||
SynthDef(\softSaw, {
|
||||
arg out = 0, freq = 40, oscdetune = 0.1, amp = 1, pan = 0,
|
||||
gate = 1, attackTime = 0.1, susLevel = 1.0, releaseTime = 1.0;
|
||||
var env, snd;
|
||||
oscdetune = oscdetune * 0.1;
|
||||
amp = amp * 0.4;
|
||||
|
||||
env = Linen.kr(gate, attackTime, susLevel, releaseTime, doneAction:2);
|
||||
|
||||
snd = VarSaw.ar(
|
||||
freq: [freq, freq * (1.003 + oscdetune)],
|
||||
width: SinOsc.kr(0.01,0.2).range(0.05,0.095));
|
||||
snd = snd + VarSaw.ar(
|
||||
freq: [(freq*2 * (1.001 - oscdetune)),(freq*2 * (1 + oscdetune))],
|
||||
width: SinOsc.kr(0.06,0.8).range(0.2,0.8));
|
||||
|
||||
|
||||
snd = Balance2.ar(snd.at(0), snd.at(1), pos: pan);
|
||||
|
||||
snd = snd * amp * env;
|
||||
|
||||
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, aenv, fenv, senv;
|
||||
|
||||
fenv = Env(levels:[2, 1, 0], times: [0.1, 0.5]).kr;
|
||||
freq = freq * fenv;
|
||||
freq = freq.max(10);
|
||||
|
||||
snd = LFTri.ar(freq) + SinOsc.ar(freq);
|
||||
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.9), 3000)
|
||||
* Env([1,1,0], [0.004,0.005]).kr );
|
||||
snd = snd + ( BPF.ar(WhiteNoise.ar(0.1), 9000)
|
||||
* Env([1,1,0], [0.002,0.002]).kr );
|
||||
|
||||
aenv = Env([1,1,0], [0.2,2], curve: -9).kr;
|
||||
snd = snd * aenv;
|
||||
|
||||
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);
|
||||
Out.ar(out, snd);
|
||||
}).add;
|
||||
|
||||
// SC808 drum snare
|
||||
SynthDef.new(\sc808sn, {
|
||||
arg amp=2, tone=340, tone2=189, snappy=0.3, gate=0, amp2=1, out=0;
|
||||
var noiseEnv, atkEnv, sig, noise, osc1, osc2, sum;
|
||||
noiseEnv = EnvGen.kr(Env.perc(0.001, 4.2, 1, -115), doneAction:2);
|
||||
atkEnv = EnvGen.kr(Env.perc(0.001, 0.8,curve:-95), doneAction:0);
|
||||
noise = WhiteNoise.ar;
|
||||
noise = HPF.ar(noise, 1800);
|
||||
noise = LPF.ar(noise, 8850);
|
||||
noise = noise * noiseEnv * snappy;
|
||||
osc1 = SinOsc.ar(tone2, pi/2) * 0.6;
|
||||
osc2 = SinOsc.ar(tone, pi/2) * 0.7;
|
||||
sum = (osc1+osc2) * atkEnv * amp2;
|
||||
sig = Pan2.ar((noise + sum) * amp * 2.5, 0);
|
||||
sig = HPF.ar(sig, 340);
|
||||
Out.ar(out, sig);
|
||||
}).add;
|
||||
|
||||
SynthDef.new(\sc808hh, {
|
||||
arg decay=0.42, amp=1, pan=0, out=0;
|
||||
var sig, sighi,siglow, sum, env, osc1, osc2, osc3, osc4, osc5, osc6;
|
||||
env = EnvGen.kr(Env.perc(0.005, decay, 1, -30),doneAction:2);
|
||||
osc1 = LFPulse.ar(203.52);
|
||||
osc2 = LFPulse.ar(366.31);
|
||||
osc3 = LFPulse.ar(301.77);
|
||||
osc4 = LFPulse.ar(518.19);
|
||||
osc5 = LFPulse.ar(811.16);
|
||||
osc6 = LFPulse.ar(538.75);
|
||||
sighi = (osc1 + osc2 + osc3 + osc4 + osc5 + osc6);
|
||||
siglow = (osc1 + osc2 + osc3 + osc4 + osc5 + osc6);
|
||||
sighi = BPF.ar(sighi, 8900, 1);
|
||||
sighi = HPF.ar(sighi, 9000);
|
||||
siglow = BBandPass.ar(siglow, 8900, 0.8);
|
||||
siglow = BHiPass.ar(siglow, 9000, 0.3);
|
||||
sig = BPeakEQ.ar((siglow+sighi), 9700, 0.8, 0.7);
|
||||
sig = sig * env * amp;
|
||||
sig = Pan2.ar(sig, pan);
|
||||
Out.ar(out, sig);
|
||||
}).add;
|
||||
|
||||
//s.sync; // ?
|
||||
|
||||
// fx buses
|
||||
~delay1 = Bus.audio(s, 2);
|
||||
~delay2 = Bus.audio(s,2);
|
||||
|
||||
|
||||
r = Routine {
|
||||
|
||||
// delays
|
||||
~dlywrang1 = Synth(\dlywrangler, [\out, 0, \in, ~delay1]);
|
||||
~widel1 = Synth(\wiDel, [\in, ~delay2, \out, 0]);
|
||||
|
||||
1.wait;
|
||||
(
|
||||
Pbindef(\x99,
|
||||
* [
|
||||
instrument: \tribd,
|
||||
octave:3,
|
||||
degree: Prand([1,2,3]/10,inf),
|
||||
dur: Pseq([3,2,Prand([2,3]),3,2,2]/8, inf),
|
||||
amp: 0.2
|
||||
]
|
||||
).play;
|
||||
);
|
||||
|
||||
3.wait;
|
||||
|
||||
( // snare
|
||||
Pbindef(\snp1,
|
||||
*[
|
||||
instrument: \sc808sn,
|
||||
dur: Pseq([Rest(1),Pxrand([1,1.5,0.5,Pn(0.5,4),Pn(0.25,2),Pn(0.25,2),Pn(0.25,2)])]/2,inf),
|
||||
amp: Prand([1,2,3]*0.05+0.2,inf),
|
||||
out: Prand([0,~delay1],inf)
|
||||
]
|
||||
).play;
|
||||
);
|
||||
|
||||
3.wait;
|
||||
|
||||
( // highhat
|
||||
Pbindef(\hhp1,
|
||||
* [
|
||||
instrument: \sc808hh,
|
||||
dur: 1/8,
|
||||
amp: Prand([1,2,3]/10, inf),
|
||||
out: Pwrand([~delay1,0],[0.7,0.3],inf),
|
||||
pan: Pfunc({rrand(-0.6,0.6)})
|
||||
]
|
||||
).play;
|
||||
);
|
||||
|
||||
10.wait;
|
||||
|
||||
( // dark saw
|
||||
Pbindef(\sawp1,
|
||||
*[
|
||||
instrument: \softSaw,
|
||||
dur: 10,
|
||||
attackTime: 5,
|
||||
releaseTime:5,
|
||||
legato:1,
|
||||
degree: Pseq([ [-2,3,11,20], [-2,5,7,21] ],inf),
|
||||
octave: 3,
|
||||
amp: [1,0.5,0.2,0.1] * 0.2,
|
||||
out: ~delay2
|
||||
]
|
||||
).play;
|
||||
);
|
||||
|
||||
90.wait;
|
||||
|
||||
Pbindef(\hhp1).stop;
|
||||
|
||||
10.wait;
|
||||
|
||||
Pbindef(\snp1).stop;
|
||||
|
||||
10.wait;
|
||||
|
||||
Pbindef(\x99).stop;
|
||||
|
||||
10.wait;
|
||||
|
||||
Pbindef(\sawp1).stop;
|
||||
|
||||
|
||||
|
||||
}.play;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
);
|
||||
|
||||
(
|
||||
|
||||
// delays
|
||||
~dlywrang1 = Synth(\dlywrangler, [\out, 0, \in, ~delay1]);
|
||||
~widel1 = Synth(\wiDel, [\in, ~delay2, \out, 0]);
|
||||
|
||||
)
|
||||
|
||||
( // kicker
|
||||
Pbindef(\x99,
|
||||
* [
|
||||
instrument: \tribd,
|
||||
octave:3,
|
||||
degree: Prand([1,2,3]/10,inf),
|
||||
dur: Pseq([3,2,Prand([2,3]),3,2,2]/8, inf),
|
||||
amp: 0.2
|
||||
]
|
||||
).play
|
||||
)
|
||||
|
||||
|
||||
( // highhat
|
||||
Pbindef(\hhp1,
|
||||
* [
|
||||
instrument: \sc808hh,
|
||||
dur: 1/8,
|
||||
amp: Prand([1,2,3]/7, inf),
|
||||
out: Pwrand([~delay1,0],[0.7,0.3],inf),
|
||||
pan: Pfunc({rrand(-0.6,0.6)})
|
||||
]
|
||||
).play
|
||||
)
|
||||
|
||||
( // snare
|
||||
Pbindef(\snp1,
|
||||
*[
|
||||
instrument: \sc808sn,
|
||||
dur: Pseq([Rest(1),Pxrand([1,1.5,0.5,Pn(0.5,4),Pn(0.25,2),Pn(0.25,2),Pn(0.25,2)])]/2,inf),
|
||||
amp: Prand([1,2,3]*0.05+0.2,inf),
|
||||
out: Prand([0,~delay1],inf)
|
||||
]
|
||||
).play
|
||||
)
|
||||
|
||||
( // dark saw
|
||||
Pbindef(\sawp1,
|
||||
*[
|
||||
instrument: \softSaw,
|
||||
dur: 10,
|
||||
attackTime: 5,
|
||||
releaseTime:5,
|
||||
legato:1,
|
||||
degree: Pseq([ [-2,3,11,20], [-2,5,7,21] ],inf),
|
||||
octave: 3,
|
||||
amp: [1,0.5,0.2,0.1] * 0.2,
|
||||
out: ~delay2
|
||||
]
|
||||
).play
|
||||
)
|
||||
|
Loading…
Reference in New Issue