My first attempt in creating something aggressive.
I came up with with this fat bass which I am very proud of.
(
SynthDef(\bassline4, {
|
out=0, freq=440, pan=0.0, amp=1.0,
atk=0.05, rls=0.2,
sub=0.0, subwidth=0.5,
sync=0.0, // this is a sync ratio going from 0.0 (no effect) to 60 semitones (5 octave above)
voices = 1,
det=0.0,
cf = 1000,
rq = 0.1
|
var env, sig, spread;
env = EnvGen.ar(Env.perc(atk, rls), 1, doneAction:2);
voices = voices.clip(1, 16);
sig = Array.fill(16, {
|index|
var onoff = (voices.round(1) > index); // the ">" here will return 1 or 0 depending on voices
onoff * SyncSaw.ar(freq *Rand(1.0, det.midiratio), freq*(sync.midiratio));
});
sig = sig + Pulse.ar(freq*0.5, subwidth, mul:sub);
spread = (voices-1)/15;
sig = sig * env * voices.linexp(1, 16, 1.0, 0.3) * amp;
sig = RLPF.ar(sig, cf, rq);
sig = LeakDC.ar( sig.clip() );
Out.ar(out, Splay.ar(sig, spread));
}).add;
)
Also I would like to thank @scztt for helping me in understanding how to create an array of signal inside a SynthDef!
You can listen to it at this link.
Let me know and thank you so much for any suggestions.