Strudelify
Two Hearts cover art

1989

Two Hearts

Phil Collins

KeyG majorTempo155 bpm
0:00/0:00
// Two Hearts — Phil Collins
// 155 bpm, 4/4, key G major. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(155/4)

const chords = arrange(
  // intro (8 bars)
  [8, "<C!2 D G C!2 D G>"],
  // interlude (8 bars)
  [8, "<G A G A G A G A>"],
  // verse (16 bars)
  [16, "<G A G A G A G A Am Bm7 Am D7sus Am Bm7 Am D7sus>"],
  // chorus (8 bars)
  [8, "<C!2 D G C!2 D G>"],
  // interlude (8 bars)
  [8, "<G A G A G A G A>"],
  // verse (16 bars)
  [16, "<G A G A G A G A Am Bm7 Am D7sus Am Bm7 Am D7sus>"],
  // chorus (8 bars)
  [8, "<C!2 D G C!2 D G>"],
  // chorus (8 bars)
  [8, "<C!2 D G C!2 D G>"],
  // trans (2 bars)
  [2, "<[Eb@2 Ab@2] [F@2 Bb ~]>"],
  // bridge (16 bars)
  [16, "<B^7 Abm7 Bbm7 Db Abm7!2 Bbm7 Bb7sus B^7 Abm7 Bbm7 Db Abm7!2 Am7 D7sus>"],
  // chorus (8 bars)
  [8, "<C!2 D G C!2 D G>"],
  // chorus (8 bars)
  [8, "<C!2 D G C!2 D G>"],
  // chorus (8 bars)
  [8, "<C!2 D G C!2 D G>"],
  // fadeout (9 bars)
  [9, "<C!2 D G C!2 D G C>"],
)
const bassline = arrange(
  [8, "<c2!2 d2 g2 c2!2 d2 g2>"],
  [8, "<g2!8>"],
  [16, "<g2!8 a2 b2 c2 d2 a2 b2 c2 d2>"],
  [8, "<c2!2 d2 g2 c2!2 d2 g2>"],
  [8, "<g2!8>"],
  [16, "<g2!8 a2 b2 c2 d2 a2 b2 c2 d2>"],
  [8, "<c2!2 d2 g2 c2!2 d2 g2>"],
  [8, "<c2!2 d2 g2 c2!2 d2 g2>"],
  [2, "<[g2@2 ab2@2] [a2@2 bb2 ~]>"],
  [16, "<b2 ab2 bb2 eb2 ab2!2 bb2!2 b2 ab2 bb2 eb2 ab2!2 a2 d2>"],
  [8, "<c2!2 d2 g2 c2!2 d2 g2>"],
  [8, "<c2!2 d2 g2 c2!2 d2 g2>"],
  [8, "<c2!2 d2 g2 c2!2 d2 g2>"],
  [9, "<c2!2 d2 g2 c2!2 d2 g2 c2>"],
)

// 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 Phil Collins