Strudelify
Heaven Must Have Sent You cover art

1979 · Women Of Motown

Heaven Must Have Sent You

Bonnie Pointer

KeyC majorTempo128 bpm
0:00/0:00
// Heaven Must Have Sent You — Bonnie Pointer
// 128 bpm, 4/4, key C major. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(128/4)

const chords = arrange(
  // intro (9 bars)
  [9, "<~ C!2 Am!2 F^7!2 G [Em@2 G@2]>"],
  // chorus (8 bars)
  [8, "<[Bb@2 Am@2] [Ab@2 G@2] [F@2 Em7@2] Dm7 [Bb@2 Am@2] [Ab@2 G@2] [F@2 Em7@2] Dm7>"],
  // verse (16 bars)
  [16, "<C!2 Am!2 F^7!2 G [Em@2 G@2] C!2 Am!2 F^7!2 G [Em@2 G@2]>"],
  // verse (16 bars)
  [16, "<C!2 Am!2 F^7!2 G [Em@2 G@2] C!2 Am!2 F^7!2 G [Em@2 G@2]>"],
  // chorus (8 bars)
  [8, "<[Bb@2 Am@2] [Ab@2 G@2] [F@2 Em7@2] Dm7 [Bb@2 Am@2] [Ab@2 G@2] [F@2 Em7@2] Dm7>"],
  // instrumental (16 bars)
  [16, "<C!2 Am!2 F^7!2 G [Em@2 G@2] C!2 Am!2 F^7!2 G [Em@2 G@2]>"],
  // verse (16 bars)
  [16, "<C!2 Am!2 F^7!2 G [Em@2 G@2] C!2 Am!2 F^7!2 G [Em@2 G@2]>"],
  // chorus (8 bars)
  [8, "<[Bb@2 Am@2] [Ab@2 G@2] [F@2 Em7@2] Dm7 [Bb@2 Am@2] [Ab@2 G@2] [F@2 Em7@2] Dm7>"],
  // instrumental (8 bars)
  [8, "<C!2 Am!2 F^7!2 G [Em@2 G@2]>"],
  // fadeout (8 bars)
  [8, "<C!2 Am!2 F^7!2 G [Em@2 G@2]>"],
)
const bassline = arrange(
  [9, "<~ c2!2 a2!2 f2!2 g2 [e2@2 g2@2]>"],
  [8, "<[bb2@2 a2@2] [ab2@2 g2@2] [f2@2 e2@2] [d2@2 g2@2] [bb2@2 a2@2] [ab2@2 g2@2] [f2@2 e2@2] [d2@2 g2@2]>"],
  [16, "<c2!2 a2!2 f2!2 g2 [e2@2 g2@2] c2!2 a2!2 f2!2 g2 [e2@2 g2@2]>"],
  [16, "<c2!2 a2!2 f2!2 g2 [e2@2 g2@2] c2!2 a2!2 f2!2 g2 [e2@2 g2@2]>"],
  [8, "<[bb2@2 a2@2] [ab2@2 g2@2] [f2@2 e2@2] [d2@2 g2@2] [bb2@2 a2@2] [ab2@2 g2@2] [f2@2 e2@2] [d2@2 g2@2]>"],
  [16, "<c2!2 a2!2 f2!2 g2 [e2@2 g2@2] c2!2 a2!2 f2!2 g2 [e2@2 g2@2]>"],
  [16, "<c2!2 a2!2 f2!2 g2 [e2@2 g2@2] c2!2 a2!2 f2!2 g2 [e2@2 g2@2]>"],
  [8, "<[bb2@2 a2@2] [ab2@2 g2@2] [f2@2 e2@2] [d2@2 g2@2] [bb2@2 a2@2] [ab2@2 g2@2] [f2@2 e2@2] [d2@2 g2@2]>"],
  [8, "<c2!2 a2!2 f2!2 g2 [e2@2 g2@2]>"],
  [8, "<c2!2 a2!2 f2!2 g2 [e2@2 g2@2]>"],
)

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