Strudelify
For The Good Times cover art

1970 · For the Good Times

For The Good Times

Ray Price

KeyE♭ majorTempo86 bpm
0:00/0:00
// For The Good Times — Ray Price
// 86 bpm, 4/4, key Eb major. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(86/4)

const chords = arrange(
  // intro (5 bars)
  [5, "<[~@2 Ab Gm7] Bb9sus Ab7b9 Eb6!2>"],
  // verse (17 bars)
  [17, "<Fm7 Bb7 [Eb@2 Eb6@2] [Eb^7@2 Eb6@2] Fm7 Bb7 [Eb@2 Eb6@2] Eb^7 Eb Ab Bb7 Eb!2 Ab Fm7 Bb7 Bb9sus>"],
  // chorus (16 bars)
  [16, "<Eb^7!2 Bb Bb7!3 Eb [Fm7@2 Bb7@2] [Eb@2 Eb^9@2] [Fm7@2 Eb7@2] [Ab^9@2 Ab6@2] [Abmadd9@2 Abm@2] Bb7 F9sus Bb7 Bb7b9>"],
  // trans (4 bars)
  [4, "<Eb^7 Bb9sus Eb!2>"],
  // verse (16 bars)
  [16, "<Fm7 Bb7 [Eb@2 Eb^7@2] [Eb6@2 Eb@2] Fm7 [Bb7sus@2 Bb7@2] [Eb@2 Eb^7@2] [Eb6@2 Eb@2] Ab Bb7 [Eb@2 Eb^7@2] [Eb6@2 Eb@2] Ab Fm7 Bb7 Bb9sus>"],
  // chorus (16 bars)
  [16, "<Eb^7!2 Bb Bb7!3 Eb [Fm7@2 Bb7@2] [Eb@2 Eb^9@2] [Fm7@2 Eb7@2] [Ab^9@2 Ab6@2] [Abmadd9@2 Abm@2] Bb7 F9sus Bb7 Bb7b9>"],
  // outro (5 bars)
  [5, "<Eb^7 Bb9sus Eb Bb9sus Eb>"],
)
const bassline = arrange(
  [5, "<[~@2 ab2 g2] bb2 ab2 eb2!2>"],
  [17, "<f2 bb2 eb2!2 f2 bb2 eb2!3 ab2 bb2 eb2!2 ab2 f2 bb2!2>"],
  [16, "<eb2!2 bb2!4 eb2 [f2@2 bb2@2] eb2 [f2@2 eb2@2] ab2!2 bb2 f2 bb2!2>"],
  [4, "<eb2 bb2 eb2!2>"],
  [16, "<f2 bb2 eb2!2 f2 bb2 eb2!2 ab2 bb2 eb2!2 ab2 f2 bb2!2>"],
  [16, "<eb2!2 bb2!4 eb2 [f2@2 bb2@2] eb2 [f2@2 eb2@2] ab2!2 bb2 f2 bb2!2>"],
  [5, "<eb2 bb2 eb2 bb2 eb2>"],
)

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