Acid something


Some fun drums and a bass thing

Started from this youtube tutorial.

No idea what tune it wants to be, if it even wants to have a tune at all. Enjoy the acid bass sounds. Started on the train on the way to Halsway in February.

// https://www.youtube.com/watch?v=t0gSNevoaFc&
// Techno like Charlotte de Witte
setcps(130 / 120 / 2);
let thisBank = "tr909";
Pattern.prototype.thisBank = function () {
return this.bank("tr909");
};
Pattern.prototype.thisScale = function (up) {
return this.scale("F#2:minor").transpose(12 * (up || 0));
};
let kick = s("bd:1*4").thisBank().postgain(2);
// no 909 shaker sample
let shakers = s("sh:1*16")
.bank("tr808")
.gain("[.3 .8 1 .9]!4")
.pan(rand.range(0.2, 0.8));
let hat = s("[- oh:1]*4").thisBank().clip(1);
let ride = s("rd*8")
.thisBank()
.gain("[.3 .7]!4")
.pan(rand.range(0.2, 0.8))
.clip(1)
.hpf(3400)
.postgain(0.3);
let rollBass = n("0*16")
.thisScale(-1)
.gain("[.4 .8 .9 .9]!4")
.s("supersaw")
.adsr(".001:.15:0:0.015")
.unison(3)
.spread(0.3)
.lpf(400)
.lpenv(4)
.hpf(260)
.hpq(20);
// slower pattern because you can't hear the sine wave if its both short and low
let subBass = n("0*16").thisScale(-1).gain("[.4 .9]!4").s("sine").distort(0.1);
let midbass = n("[- [0 -] [0 -] [<[0 2] [2 -]>]]")
.fast(2)
.thisScale(0)
.s("supersaw")
.adsr(".005:1:.4:.4")
.hpf(120)
.unison(5)
.detune(0.4)
.lpf(260)
.lpenv(3.5)
.gain("[[.6 1]!4]");
let reese = n("-2 -1 0@2")
.slow(4)
.thisScale(0)
.s("supersaw")
.unison(5)
.detune(0.5)
.spread(0.5)
.adsr("0:1:1:.005")
.lpf(400);
let strings = n("5 6 7@2")
.slow(4)
.thisScale(1)
.s("gm_string_ensemble_1")
.layer(
(x) => x.scaleTranspose(2),
(x) => x.scaleTranspose(0),
(x) => x.scaleTranspose(4),
)
.room("0.9:4");
let riff = n("[- [0 -] [0 -] [<[0 2] [2 -]>]]")
.fast(2)
.thisScale(2)
.s("triangle")
.adsr(".005:1:.4:.4")
.lpf(260)
.lpenv(2)
.add(note("0,.1,.2,-.3,-12"))
.gain(0.4)
.room(".6:2")
.rfade(0.1);
let synth303 = n("[[-7 0] [-7 0] [-7 0] [<[-7 2] [2 -7]>]]")
.fast(2)
.thisScale(1)
.s("supersaw")
.adsr(".005:.32:0:.015")
.lpf(30)
.lpa(0.005)
.lpenv(rand.range(4, 6))
.lpd(0.32)
.lps(0)
.lpr(rand.range(0.13, 0.15))
.lpq(24)
.unison(5)
.spread(0.9)
.distort("1.5:.4")
.pan(rand.range(0.4, 0.6))
.gain("[.5 .9 1 .9]!4");
let stutter = n("[[0 0] 0]")
.fast(4)
.thisScale(2)
.scaleTranspose("[5 <6 [6@3 7]> [4@13 3 4 <3 5>]@2]/4")
.transpose("0,12")
.clip("[.8 .95]!4 ")
.s("gm_choir_aahs")
.gain(1.5)
.room("0.9:4");
let beep = n("[[0 0] 0]")
.fast(4)
.thisScale(4)
.clip("[.6 .8]!4 ")
.s("sine")
.gain(0.2)
.room(".6:4");
$: kick;
$: stack(
stack(shakers, hat, ride).mask("<1 1 1 1 1 0 [0 1] 1 1 1>/16"),
rollBass.mask("<1 0 1 1 1 0 0 0 1 1>/16"),
reese.mask("<0 0 1 0 0 1 1 1 0 0>/16"),
subBass.mask("<1 1 1 1 1 0 1 1 1 1>/16"),
midbass.mask("<0 0 1 1 0 0 0 1 0 1>/16"),
riff.mask("<[0 1] [1 0] 1 0 0 0 [0 1] 1 1 1>/16"),
synth303.mask("<1 1 1 0 1 0 1 1 0 1>/16"), // TODO automate moving the filter on this guy
stutter.mask("<0 [1 0] [1 0] 0 0 1 1 1 [1 0] 0>/16"),
beep.mask("<1 1 1 1 0 [0 1] 1 1 0 1>/16"),
strings.mask("<0 0 0 0 0 0 1 1 [0 1] 0>/16"),
);