Strudelify
I've Passed This Way Before cover art

1967 · Sings Top Ten

I've Passed This Way Before

Jimmy Ruffin

KeyB♭ majorTempo111 bpm
0:00/0:00
// I've Passed This Way Before — Jimmy Ruffin
// 111 bpm, 4/4, key Bb major. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(111/4)

const chords = arrange(
  // intro (3 bars)
  [3, "<[Eb F Bb@2] Bb [Eb F ~@2]>"],
  // verse (8 bars)
  [8, "<[Bb@2 Dm@2] [Dm@2 Cm@2] Cm [Eb F Bb@2] [Bb@2 Dm@2] [Dm@2 Cm@2] Cm [Eb F Bb@2]>"],
  // chorus (8 bars)
  [8, "<[Bb@2 Dm@2] [Dm@2 Cm@2] Cm [Eb F Bb@2] [Bb@2 Dm@2] [Dm@2 Cm@2] Cm [Eb F Bb@2]>"],
  // interlude (1 bars)
  [1, "<[Eb F ~@2]>"],
  // verse (16 bars)
  [16, "<Bb Dm Gm [Eb@3 F] Bb Dm Gm [Eb@3 F] Bb Dm Gm [Eb@3 F] Bb Dm Gm G>"],
  // chorus (8 bars)
  [8, "<[C@2 Em@2] [Em@2 Dm@2] Dm [F G C@2] [C@2 Em@2] [Em@2 Dm@2] Dm [F G C@2]>"],
  // verse (16 bars)
  [16, "<C Em Am [F@3 G] C Em Am [F@3 G] C Em Am [F@3 G] C Em Am [F@3 G]>"],
  // interlude (4 bars)
  [4, "<C!2 G [G@2 Ab@2]>"],
  // chorus (8 bars)
  [8, "<[Db@2 Fm@2] [Fm@2 Ebm@2] Ebm [Gb Ab Db@2] [Db@2 Fm@2] [Fm@2 Ebm@2] Ebm [Gb Ab Db@2]>"],
  // outro (8 bars)
  [8, "<[Db@2 Fm@2] [Fm@2 Ebm@2] Ebm [Gb Ab Db@2] [Db@2 Fm@2] [Fm@2 Ebm@2] Ebm [Gb Ab Db@2]>"],
)
const bassline = arrange(
  [3, "<[eb2 f2 bb2@2] bb2 [eb2 f2 ~@2]>"],
  [8, "<[bb2@2 d2@2] [d2@2 d#2@2] [d#2@2 c2@2] [eb2 f2 bb2@2] [bb2@2 d2@2] [d2@2 d#2@2] [d#2@2 c2@2] [eb2 f2 bb2@2]>"],
  [8, "<[bb2@2 d2@2] [d2@2 d#2@2] [d#2@2 c2@2] [eb2 f2 bb2@2] [bb2@2 d2@2] [d2@2 d#2@2] [d#2@2 c2@2] [eb2 f2 bb2@2]>"],
  [1, "<[eb2 f2 ~@2]>"],
  [16, "<bb2 d2 g2 [eb2@3 f2] bb2 d2 g2 [eb2@3 f2] bb2 d2 g2 [eb2@3 f2] bb2 d2 g2!2>"],
  [8, "<[c2@2 e2@2] [e2@2 f2@2] [f2@2 d2@2] [f2 g2 c2@2] [c2@2 e2@2] [e2@2 f2@2] [f2@2 d2@2] [f2 g2 c2@2]>"],
  [16, "<c2 e2 a2 [f2@3 g2] c2 e2 a2 [f2@3 g2] c2 e2 a2 [f2@3 g2] c2 e2 a2 [f2@3 g2]>"],
  [4, "<c2!2 g2 [g2@2 ab2@2]>"],
  [8, "<[db2@2 f2@2] [f2@2 gb2@2] [gb2@2 eb2@2] [gb2 ab2 db2@2] [db2@2 f2@2] [f2@2 gb2@2] [gb2@2 eb2@2] [gb2 ab2 db2@2]>"],
  [8, "<[db2@2 f2@2] [f2@2 gb2@2] [gb2@2 eb2@2] [gb2 ab2 db2@2] [db2@2 f2@2] [f2@2 gb2@2] [gb2@2 eb2@2] [gb2 ab2 db2@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)

More by Jimmy Ruffin