Strudelify
The Millionaire cover art

1975

The Millionaire

Dr. Hook

KeyE♭ majorTempo89 bpm
0:00/0:00
// The Millionaire — Dr. Hook
// 89 bpm, 4/4, key Eb major. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(89/4)

const chords = arrange(
  // intro (2 bars)
  [2, "<[Eb@2 Bb@2]!2>"],
  // verse (10 bars)
  [10, "<[Eb@2 Bb@2]!2 [Cm@2 Gm@2] [Fm@2 Bb@2] [Eb@2 Bb@2]!2 [Cm@2 Gm@2] [Fm@2 Bb@2] Bb [Bb@2 ~@2]>"],
  // chorus (8 bars)
  [8, "<[Eb@2 Bb@2] [Cm@2 Gm@2] Ab Bb [Eb@2 Bb@2] [Cm@2 Gm@2] [Ab@2 Eb@2] [Ab@2 Fm Bb]>"],
  // trans (2 bars)
  [2, "<[Eb@2 Bb@2]!2>"],
  // verse (9 bars)
  [9, "<[Eb@2 Bb@2]!2 [Cm@2 Gm@2] [Fm@2 Bb@2] [Eb@2 Bb@2]!2 [Cm@2 Gm@2] [Fm@2 Bb@2] [Bb@2 ~@2]>"],
  // chorus (8 bars)
  [8, "<[Eb@2 Bb@2] [Cm@2 Gm@2] Ab Bb [Eb@2 Bb@2] [Cm@2 Gm@2] [Ab@2 Eb@2] [Ab@2 Fm Bb]>"],
  // bridge (9 bars)
  [9, "<Eb [Ab@2 Bb@2] [Eb@2 Eb7@2] [G@2 Cm@2] Fm [Ab@2 Abm@2] [Eb@2 Cm@2] [Ab@2 Ao@2] Bb>"],
  // chorus (10 bars)
  [10, "<[Eb@2 Bb@2] [Cm@2 Gm@2] Ab Bb [Eb@2 Bb@2] [Cm@2 Gm@2] [Ab@2 Eb@2] [Ab@2 Fm Bb] [Eb@2 Ab@2] [Eb@2 Bb@2]>"],
  // outro (4 bars)
  [4, "<[Eb@2 Bb@2]!4>"],
  // fadeout (4 bars)
  [4, "<[Eb@2 Bb@2]!4>"],
)
const bassline = arrange(
  [2, "<[eb2@2 bb2@2]!2>"],
  [10, "<[eb2@2 bb2@2]!2 [c2@2 g2@2] [f2@2 bb2@2] [eb2@2 bb2@2]!2 [c2@2 g2@2] [f2@2 bb2@2] bb2 [bb2@2 ~@2]>"],
  [8, "<[eb2@2 bb2@2] [c2@2 g2@2] ab2 bb2 [eb2@2 bb2@2] [c2@2 g2@2] [ab2@2 eb2@2] [ab2 g2 f2 bb2]>"],
  [2, "<[eb2@2 bb2@2]!2>"],
  [9, "<[eb2@2 bb2@2]!2 [c2@2 g2@2] [f2@2 bb2@2] [eb2@2 bb2@2]!2 [c2@2 g2@2] [f2@2 bb2@2] [bb2@2 ~@2]>"],
  [8, "<[eb2@2 bb2@2] [c2@2 g2@2] ab2 bb2 [eb2@2 bb2@2] [c2@2 g2@2] [ab2@2 eb2@2] [ab2 g2 f2 bb2]>"],
  [9, "<[eb2@2 db2@2] [ab2@2 bb2@2] eb2 [g2@2 c2@2] f2 ab2 [eb2 d2 c2@2] [ab2@2 a2@2] bb2>"],
  [10, "<[eb2@2 bb2@2] [c2@2 g2@2] ab2 bb2 [eb2@2 bb2@2] [c2@2 g2@2] [ab2@2 eb2@2] [ab2 g2 f2 bb2] [eb2@2 ab2@2] [eb2@2 bb2@2]>"],
  [4, "<[eb2@2 bb2@2]!4>"],
  [4, "<[eb2@2 bb2@2]!4>"],
)

// 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)

More by Dr. Hook