Strudelify
Drivin' Wheel cover art

1977 · Night Shift

Drivin' Wheel

Foghat

KeyD majorTempo138 bpm
0:00/0:00
// Drivin' Wheel — Foghat
// 138 bpm, 4/4, key D major. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(138/4)

const chords = arrange(
  // intro (12 bars)
  [12, "<D!2 C [G@2 D@2] D!2 C [G@2 D@2] D!2 C [G@2 D@2]>"],
  // verse (8 bars)
  [8, "<D!2 C [G@2 D@2] D!2 C [G@2 D@2]>"],
  // pre-chorus (8 bars)
  [8, "<A G A G A G A G>"],
  // chorus (9 bars)
  [9, "<[D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C G] G ~>"],
  // trans (4 bars)
  [4, "<D!2 C [G@2 D@2]>"],
  // verse (8 bars)
  [8, "<D!2 C [G@2 D@2] D!2 C [G@2 D@2]>"],
  // pre-chorus (8 bars)
  [8, "<A G A G A G A G>"],
  // chorus (8 bars)
  [8, "<[D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C G] G>"],
  // trans (2 bars)
  [2, "<D!2>"],
  // bridge (8 bars)
  [8, "<G!4 A!4>"],
  // solo (19 bars)
  [19, "<[D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C@2] G!4 A!8>"],
  // chorus (11 bars)
  [11, "<[D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C G] G ~ G5 D5>"],
  // verse (18 bars)
  [18, "<D!2 C [G@2 D@2] D!2 C [G@2 D@2] D!2 C [G@2 D@2] Am!2 C [G@2 D@2] C!2>"],
  // chorus (20 bars)
  [20, "<[D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C@2] G>"],
  // fadeout (12 bars)
  [12, "<[D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C@2] G [D@2 C@2] G>"],
)
const bassline = arrange(
  [12, "<d2!2 c2 [g2@2 d2@2] d2!2 c2 [g2@2 d2@2] d2!2 c2 [g2@2 d2@2]>"],
  [8, "<d2!2 c2 [g2@2 d2@2] d2!2 c2 [g2@2 d2@2]>"],
  [8, "<a2 g2 a2 g2 a2 g2 a2 g2>"],
  [9, "<[d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2 g2] g2 ~>"],
  [4, "<d2!2 c2 [g2@2 d2@2]>"],
  [8, "<d2!2 c2 [g2@2 d2@2] d2!2 c2 [g2@2 d2@2]>"],
  [8, "<a2 g2 a2 g2 a2 g2 a2 g2>"],
  [8, "<[d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2 g2] g2>"],
  [2, "<d2!2>"],
  [8, "<g2!4 a2!4>"],
  [19, "<[d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2!4 a2!8>"],
  [11, "<[d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2 g2] g2 ~ g2 d2>"],
  [18, "<d2!2 c2 [g2@2 d2@2] d2!2 c2 [g2@2 d2@2] d2!2 c2 [g2@2 d2@2] a2!2 c2 [g2@2 d2@2] c2!2>"],
  [20, "<[d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2>"],
  [12, "<[d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2 [d2@2 c2@2] g2>"],
)

// chords · gm_piano
const keys = chord(chords).voicing().s("gm_piano").gain(0.8)
// bass · gm_electric_bass_finger
const bass = note(bassline).s("gm_electric_bass_finger").gain(0.9)
// drums
const drums = s("[bd hh] [sd hh] [bd hh] [sd hh]").gain(0.8)

stack(keys, bass, drums)