Skip to content

Commit 56ef834

Browse files
committed
Sea of Souls - Club Mix
1 parent 58ff995 commit 56ef834

1 file changed

Lines changed: 117 additions & 0 deletions

File tree

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
// Sea of Souls - The Malfunctioning Collective (https://open.spotify.com/intl-es/album/7tTw8oiSCbyZWc0EPxJyui?si=YJn3dLUiTIaxqu_W8ObAcg)
2+
// Club Cover in Strudel by AlienMind (https://open.spotify.com/intl-es/artist/4Dy8FcAbbTvdMIpOA4jNbh?si=uj-FkR79Tr2_IZ3oW9CMuw)
3+
4+
// How to live perform
5+
// start by section 1, turn some knobs and on the loop turn section 1 onwards
6+
7+
8+
// Tempo 133 bpm at 4/4
9+
setCps(140/60/4)
10+
11+
// Section goes from 0 to 2
12+
const SECTION = 0
13+
14+
// Basic mixer with slider
15+
const RISER_VOL=slider(0,0,1)
16+
// We can control bass energies with low pass filters envelops
17+
const KICK_VOL=slider(0,0,1)
18+
const BASS_VOL=slider(0,0,1)
19+
const BASS_ENERGY=slider(1,1,4)
20+
const SUB_VOL=slider(0,0,1)
21+
const SUB_ENERGY=slider(1,1,4)
22+
const HH_VOL=slider(0,0,1)
23+
const SNARE_VOL=slider(0,0,1)
24+
const HHR_VOL=slider(0.174,0,1)
25+
const VOCALS_VOL=slider(1,0,1)
26+
27+
28+
29+
// This will add some notes to the base note
30+
const CHORD_PROGRESSION = [
31+
"0",
32+
"0",
33+
"<0 7 5 6>"
34+
]
35+
36+
// Bassline pattern
37+
const BASSLINE_PATTERN = [
38+
// Intro
39+
"0*16",
40+
// Verse
41+
"<[-13 0 -13 1]>*4",
42+
// Drop
43+
"<[-13 0 1 13]>*8"
44+
]
45+
46+
47+
// Vocals pattern
48+
const VOCALS_PATTERN = [
49+
"<<0 ~ ~ [~ ~] ~ ~ ~ ~ ~ ~> ~>",
50+
"<<0 1 2 [3 4] 5 6 7 8 9 10> ~>",
51+
"<<0 1 2 [3 4] 5 6 7 8 9 10> ~>"
52+
]
53+
54+
// Riser pattern
55+
const RISER_PATTERN = [
56+
// Intro
57+
"0.2*16",
58+
"<<0 0 0 0 0 0 0 0 0 0> ~>"
59+
]
60+
61+
62+
/////////////////////////////////////
63+
64+
// KICK - 4 on the floor
65+
$kick: s("[bd]*4").bank("tr909")
66+
//.dist("3:.3")
67+
.gain(KICK_VOL)
68+
.delay(0.3)
69+
._scope()
70+
// Sidechain kick to orbit 2,3 for pumping other overlapping instruments
71+
.duck("2:3").duckattack(.2).duckdepth(.8)
72+
73+
// Riser - useful for the intro
74+
$riser: s("pulse").orbit(4).seg(16).dec(.1).fm(time).fmh(time).gain(pick(RISER_PATTERN,SECTION))
75+
76+
// Snare
77+
$snare: s("[~ sd ~ sd]*2").slow(2).bank("tr909").gain(SNARE_VOL)._scope()
78+
79+
80+
// Upbeats only
81+
$hh: s("[~ hh]*4").bank("tr909").delay(0.3).gain(HH_VOL)._scope()
82+
83+
$hhr: s("hh!16").bank("yamaharm50").delay(0.1).gain(HHR_VOL)._scope()
84+
85+
86+
87+
// If we wanted to use a physical knob instead of a slider via MIDI
88+
// const cc = await midin('3- UMC404HD 192k MIDI In')
89+
// const BASS_ENERGY=cc(74)
90+
91+
// E-F-F# Bassline
92+
$bass: n(pick(BASSLINE_PATTERN,SECTION).add(pick(CHORD_PROGRESSION, SECTION))).fast(1).scale("f:phrygian")._pianoroll()
93+
// Heavy distortion
94+
//.dist("2:0.3")
95+
// Nice tb303 with adjustable energy
96+
.s("sawtooth").lpf(200).lpenv(BASS_ENERGY).lpq(12).gain(BASS_VOL)
97+
// Make it pump with the duck
98+
.orbit(2)
99+
100+
// // Random 303 bassline - not super random really, occasionally +1 octave
101+
lowendbass: n(irand(2).almostNever(x=>x.add(7)).sub(7).seg(16)).scale("f:phrygian")._pianoroll()
102+
//lowendbass: n(pick(BASSLINE_PATTERN,SECTION).almostNever(x=>x.add(7)).sub(7).seg(16)).scale("f:phrygian")._pianoroll()
103+
// Make it repeatable
104+
.rib(10,4)
105+
// Heavy distortion
106+
.dist("2:0.3")
107+
// Nice tb303 with adjustable energy
108+
.s("sawtooth").lpf(200).lpenv(SUB_ENERGY).lpq(12).gain(SUB_VOL)
109+
// Make it pump with the duck
110+
.orbit(3)
111+
112+
113+
114+
// Vocals
115+
$vocals: n(pick(VOCALS_PATTERN,SECTION)).s("sos-vocals").almostNever(x => x.delay(.5)).gain(VOCALS_VOL)._pianoroll()
116+
117+
//_$vocals2: n(rand).s("sos-vocals").gain(VOCALS_VOL)._pianoroll()

0 commit comments

Comments
 (0)