GTA IV THEME COVER - GRAND CRASH AUTO

Hey all !

At some point, GTA, be it the first 2d game or its 3d open-world successors were heavy-weights and still are in the gaming industry. Not as underground as many titles we adore, it still layed down foundations that marked our digital gaming experience. GTA IV especially so with its darker atmosphere and social commentary.
Anyway let’s not dive too deep into a pseudo-analysis of GTA and simply take a dive into its soundtrack.
Mickael Hunter, aka “Pablo” made the theme song, a colorful but still melancholic track we tried to replicate and transform as well as we could.
We played it – in the video above – as a pre-made setup from which we could change the structure and arrangements on the fly.
And we hope you enjoy it 🙂

 

—> Fully livecoded with FoxDot and Troop. <—-
See the code below. – it might sound different in vanilla FoxDot as we are using some custom synths and samples but we encourage you to replace them with whatever suits you.

gta IV cover crash

Root.default = “C”
Master().reset()
Clock.bpm=144

Scale.default=”dorian”

e_all.stop()

p_all.only()

p5.amp=0
j1 >> mpluck([[0, 1, 2, 1, 0, 1 ,0, -1],-3], mverb=lininf(0,0.8,32), amp=lininf(0,0.5,32), oct=(PStep(8, 5, 6), 5, 7), pan=PWhite(-1,1), cut=1/2, dur=2, delay=0, hpf=lininf(0,400,32))
p0 >> pianovel([[0, 1, 2, 1, 0, 1 ,0, -1],-3], dur=1/2, velocity=PRand(20,60), velhard=0.2, amp=PGauss(0.4, 0.1), oct=PStep(7,6,5), rate=linvar([0.1,2],24), sus=0.3).unison(3).sometimes(“stutter”, oct=[6, 8], mverb=[0.6, 0.4])
p1 >> pianovel(p0.degree + 5, oct=PStep(4, 5, [6, 7]),velhard=[PGauss(0.2, 0.2), 0], velocity=PRand(40,88), delay=var([0,(0.125, 0)], [5, 3]), amp=linvar([0.3, 0.6], [16]), mverb=0.1).accompany(p0).unison(4).human()
p2 >> pianovel([p0.degree], oct=PStep([4, 7], 6, 7), dur=4, sus=4, rate=4, amp=[0.4, 0.2], delay=[0,0,(0,3)], lpf=9999).unison(2) + (0,2,4)

j1.dur=1/2
j1.mverb=0
p3 >> pianovel(( [[0, 1, 2, 1, 0, 1 ,0, -1],-3], 0), delay=[0, 0, (0, 1.5)], dur=2, velocity=[PRand(50,63),PRand(30,53)], amp=0.5,oct=var([(4, 5), (5, 6)], [8]), lpf=8080, sus=0.3).unison(3).sometimes(“stutter”)

p4 >> pianovel(( [[0, 1, 2, 1, 0, 1 ,0, -1],-3], 7) + var([0, 4]), delay=[0, 0, (0, 3.0)], dur=4, velocity=[PRand(50,53),PRand(30,53)], amp=0.7,oct=var([(4, 5), (5, 6)], [8]), lpf=8080, sus=0.3).unison(3).sometimes(“stutter”)
Root.default = 0

d1 >> play(“.{…u}..u…”, sample=5, hpf=var(PRand(4000)+10), rate=(.5,2)).sometimes(“stutter”)
d2 >> play(“.{…c}..c…”, sample=5, mverb=0, flanger=0, chorus=var(PWhite(0, 1)), amp=P*[0, 1], rate=(P*[.5,.5,.5,-1],2))

d3 >> play(“v…..(…{v.})(…{.v}))”, cut=2, sample=8, disto=0, drive=(0,var(PWhite(0,0.2)))).sometimes(“stutter”)
d4 >> play(“v…..(…{v[vv].}).”, sample=8, delay=0.5, hpf=400, amp=var([0, 1], [28, 4]))
d5 >> play(“(…(.p)).((p.).(p.).)((p.).(p.).)”, dur=1/4, sample=4, crush=8,bits=8)
d6 >> play(“-{-[–]}-.-{[—][–]}(-.)(-[—-])”, sample=2, amp=PCoin(PWhite(0, 1),0,0.5), hpf=6000, pan=PWhite(-1,1)).sometimes(“amen”).sometimes(“bubble”).sometimes(“stutter”, PRand(16), rate=PWhite(-1,5))
d7 >> play(“—.-{[—][–]}(-.)(-[—-])”, hpf=5000, sample=10, amp=PCoin(PWhite(0, 1), 0, 0.5), pan=PWhite(-1,1)).sometimes(“amen”).sometimes(“bubble”)
d8 >> play(“—.-{[—][–]}(-.)(-[—-])”, pan=PWhite(-1, 1), hpf=4000, amp=PCoin(PWhite(0, 1), 0, 0.5), sample=8).sometimes(“amen”).sometimes(“bubble”).every(4, “shuffle”)

Master().lpf=var([0, 4000, 6000, 15000], [24, 4, 2, 2])
Master().hpf=var([0, 20, 30, linvar([3200, 6400], 32)], [24, 4, 2, 2])
Master().cut=var([0, 1, 1/2, linvar([1/4, 1], 32)], [24, 4, 2, 2])

l9 >> play(“#”, amp=Master().lpf==15000)

Group(d6,d7,d8).stop()
p_all.stop()

d9 >> play(“x(x.).(x[.x])”, dur=1, sample=3)
d0 >> play(“v.”, sample=8, drive=var(PWhite(0,0.2))).sometimes(“stutter”, 2).stop()
s1 >> ssaw([[0, 1, 2, 1, 0, 1 ,0, -1],-3], amp=0.3, hpf=200, hpr=0.39, dur=1/2, phase=0, sus=linvar([0.6, 1], 16), mverb=1).unison(2)

Root.default = var([0, [-12, 7]], [8])

a0 >> bbass([[0, 1, 2, 1, 0, 1 ,0, -1],-3], dur=1/2, oct=6, hpf=1000, amp=0.7, bpf=0, shape=linvar([0,0.2],[32]), sus=linvar([0.1,2],[50,0]))

drop(6,2,2)

p_all.dur=4
s2 >> tb303([[0, 1, 2, 1, 0, 1 ,0, -1],-3], top=linvar([4000, 12000], [64, 32]), cutoff=linvar([400, 4000], [32, 32, 64]), hpf=4000, amp=0.2, hpr=0.2, dur=1/2, sus=linvar([0.6, 1], 16), cut=0, mverb=0).unison(2)
s3 >> ssaw([[0, 1, 2, 1, 0, 1 ,0, -1],-3], top=0, cutoff=0, hpf=0, amp=0.1, hpr=0.2, dur=1/2, sus=linvar([0.6, 1], 16), cut=0, mverb=0).unison(2)
s4 >> ssaw([0,2,P+(3,4),P+(6,7,8,14)], oct=(5.01, 3.99, 7), sawtype=0, sawmix=0.5, lpr=0.1, amp=(0.2, 0.1, 0.2), lpf=0, dur=8).unison(6).solo(0)
s5 >> ssaw([0,2,4], oct=4, dur=8, lpf=800, slide=1, slidedelay=6).unison(3)

l0 >> loop(“xhop16”, dur=16, sample=1, amp=0.5)
s1 >> soprano(p0.degree, vib=0, dur=8, oct=(3, 4), amp=0.2, lpf=4000, formant=0.2).unison(2).slider() + (0,2,4)

 

p_all.stop()
l1 >> loop(“xdrum8”, dur=16, sample=0, amp=0.5)
p6 >> pianovel([p0.degree], dur=4, sus=4).every(2, “stutter”)

l1 >> loop(“funk16”, dur=32, sample=0, amp=0.5)
l0 >> loop(“futur16”, dur=32, sample=0, amp=0.5)

 

p_all.lpf=50
p_all.stop()

p2.lpf=0
b1 >> bass([0,0,-1,7,7,-1], dur=[1/2,1/2,[rest(3)]], amp=1, oct=5, echo=0.25, sus=1).solo(0)
b2 >> jbass(4, dur=1/2, amplify=var([0,1],[3.5,0.5]), amp=1, echo=0.5, oct=4)
b3 >> dbass(P[3, 4, 4.5, [4, 3]].stutter(2), dur=1/4, oct=(4,5), amplify=var([0, 1], [6, 2]))

b4 >> bass([(0, [7, 3]), (0, [4, -1])], drive=linvar([0, 1], 32), oct=P(3, [4, [5, 6]])+1, room2=0, dur=[1/2, 1/2, [rest(1)]], scale=Scale.dorian).unison(2)

q4 >> play(“n”, dur=8, bit=4, crush=1, delay=2, amp=1, rate=[1, 0.5], echo=0.25)
p1 >> pianovel([[0, 1, 2, 1, 0, 1 ,0, -1],-3], delay=[0, 0, (0, 1.5)], dur=2, velocity=[PRand(50,83),PRand(30,53)], amp=0.7,oct=var([(4, 5), (5, 6)], [8]), lpf=8080, sus=0.3).unison(3).sometimes(“stutter”)

Root.default = var([0, [-2, 7]], [8])
Root.default = “G”

b_all.dur=1/2