Maybe Thursday


A march/reel thing

Started from this youtube tutorial.

In which I learn about things crashing when you have too much reverb/delay going on, and discover the orbit function.

This track isn’t masked out into an arrangement (yet). It really enjoys crossfading between tune and riff/synth by using different values in degradeBy.

// @by caro401
// https://www.youtube.com/watch?v=c3Abnhix0bs
// Remix a pop hit into melodic house via EDM Tips
// tune: "I Think It's Thursday" by Mike McGoldrick - https://thesession.org/tunes/9711
Pattern.prototype.thisScale = function (up) {
return this.scale("Db2:minor").transpose(12 * (up || 0));
};
// orbit 1 for small reverb
// orbit 2 for moar reverb
setcps(123 / 120 / 2);
let tune = n(
`[[2 0 0 -1 0@2 -1 0] [2 3 3 2 3@2 4 3] [2 7 7 6 7@2 6 4] [2 3 3 2 3 6 4 3]
[2 0 0 -1 0@2 -1 0] [2 3 3 2 3@2 4 3] [2 7 7 6 7@2 6 4] [2 3 3 2 3 - - -]]!2
[[3 7 7 6 7@2 6 4] [3 7 7 6 7@2 6 7] [9@2 7 6 9@2 7 6] [4 7 6 4 3 2 0 2]
[3 7 7 6 7@2 6 4] [3 7 7 6 7@2 6 7] [9@2 7 6 9@2 7 6] [4 7 6 4 3@3 2]]!2
`,
)
.slow(16)
.thisScale(2)
.s("folkharp")
.hpf(700)
.gain(1.5)
.room(0.2)
.rfade(0.2)
.orbit(1);
let kick = s("bd:1*4").bank("ace").gain(1.6);
let clap = s("[- cp]*2").bank("tr505").gain(0.5).orbit(1);
let shakers = stack(
s("sh*16")
.bank("rm50")
.n(choose(2, 3))
.att(rand.range(0, 0.1))
.pan(rand.range(0.2, 0.8))
.jux(rev), //thanks yaxu
s("sh*16").bank("xr10").postgain(0.5).pan(rand.range(0, 0.5)),
s("sh*16")
.bank("t3")
.n(choose(0, 2))
.clip(0.7)
.postgain(0.8)
.pan(rand.range(0.5, 1)),
)
.gain("[.2 .6 1 .7]!4")
.postgain(0.2)
.crush(8)
.hpf(300)
.orbit(1);
// use the bitcrusher to get more mids in the shakers
let pianoChords = n("[0,2,4,6]@2 [-2,0,2,4,6]@2 [-5,6,4,2,8]@3 [-1,1,3,7]")
.clip(1)
.slow(4)
.thisScale(1)
.s("piano")
.orbit(1);
let bass = n("0!4 -2!4 -5!6 < -1 -5 >!2")
.clip(1)
.slow(4)
.thisScale()
.s("sawtooth")
.adsr(".4:.4:.9:.6")
.lpf(200)
.lpattack(0.2)
.lpd(0.2)
.lpenv(4);
let subbass = n("0@2 -2@2 -5@3 < -1 -5>")
.slow(4)
.thisScale()
.s("sine")
.postgain(4);
// .superimpose(x=>x.transpose(-12)) // if working on speakers that can make noise there
let riff = n("4 6 9 2 4 6 9 2 4 9 - 8 - 2 6 4")
.thisScale(2)
.s("supersaw,z_noise,sine")
.crush(rand.range(7, 12))
.lpf(435)
.lpenv(5)
.lpa(0)
.lpd(0.1)
.lps(0.46)
.lpr(1)
.hpf(100)
.adsr("0:.005:.4:.06")
.unison(3)
.detune(perlin.range(0.1, 0.3))
.spread(perlin.range(0.1, 0.7))
.pan(rand)
.gain("[.5 .8 1 .9]!4")
.delay(".25:0.1:0.7")
.room(0.2)
.orbit(3);
let synth = n("[- - [- 4] [- 9]] [- [- 8] - [- <9 10 7 11>]]")
.slow(2)
.thisScale(2)
.s("sawtooth")
.adsr("0:.375:.4:1")
.echo(3, 1 / 16, 0.7)
.pan(rand.range(0.4, 0.6))
.room(".2:4")
.orbit(2)
.lpf(1500);
let pad = n("[0,2,4,6]@2 [0,2,5,6]@2 [6,4,2]@3 [1,3,6]")
// shimmer /LFO
// .superimpose(x=> x.ply("16@2 16@2 24@3 8").clip(.8)).gain(.5)
.slow(4)
.thisScale(1)
.s("supersaw")
.unison(3)
.spread(rand.range(0.4, 0.8))
.adsr("0:3:.9:.2")
// move the LPF range around a bit!
.lpf(rand.range(680, 750))
.lpenv(4)
.lpattack(0)
.lpdecay(0.5)
.lpsustain(0.5)
.lpq(3)
.hpf(100)
.orbit(2);
$: kick;
$: stack(
clap,
shakers,
bass,
subbass,
pianoChords,
// pad.postgain(.8),
riff.degradeBy(0.9), //.postgain(.5),
// synth,//.degrade(),
tune.degradeBy(0.7),
);