Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
73 lines (55 sloc) 1.59 KB
/*
Mitchell Sigman (2011) Steal this Sound. Milwaukee, WI: Hal Leonard Books
pp. 18-19
Adapted for SuperCollider and elaborated by Nick Collins
http://www.sussex.ac.uk/Users/nc81/index.html
under GNU GPL 3 as per SuperCollider license
Minor SynthDef modifications by Bruno Ruviaro, June 2015.
*/
SynthDef("moogbass", {
arg out = 0, pan = 0, freq = 440, amp = 0.1, gate = 1, cutoff = 1000, gain = 2.0, lagamount = 0.01, att = 0.001, dec = 0.3, sus = 0.9, rel = 0.2, chorus = 0.7;
var osc, filter, env, filterenv, snd, chorusfx;
osc = Mix(VarSaw.ar(
freq: freq.lag(lagamount) * [1.0, 1.001, 2.0],
iphase: Rand(0.0,1.0) ! 3,
width: Rand(0.5,0.75) ! 3,
mul: 0.5));
filterenv = EnvGen.ar(
envelope: Env.asr(0.2, 1, 0.2),
gate: gate);
filter = MoogFF.ar(
in: osc,
freq: cutoff * (1.0 + (0.5 * filterenv)),
gain: gain);
env = EnvGen.ar(
envelope: Env.adsr(0.001, 0.3, 0.9, 0.2, amp),
gate: gate,
doneAction: 2);
snd = (0.7 * filter + (0.3 * filter.distort)) * env;
chorusfx = Mix.fill(7, {
var maxdelaytime = rrand(0.005, 0.02);
DelayC.ar(
in: snd,
maxdelaytime: maxdelaytime,
delaytime: LFNoise1.kr(
freq: Rand(4.5, 10.5),
mul: 0.25 * maxdelaytime,
add: 0.75 * maxdelaytime)
)
});
snd = snd + (chorusfx * chorus);
Out.ar(out, Pan2.ar(snd, pan));
}).add;
)
loadRelative("utilities.scd");
~addSynthDemo.value("moogbass",
Pmono(
"moogbass",
\amp, 0.5,
\midinote, Pseq([24, 36, 48, 36, 35, 36, 43, 48],inf),
\dur, Pstutter(8, Pseq([0.5, 0.25], inf)),
\gain, Pn(Pseries(2, 0.1, 19),inf),
\cutoff, Pn(Pseries(4000, 400, 18), inf),
\chorus, 0.7
);
)
You can’t perform that action at this time.