Strudelify
Chicago cover art

1971 · Songs For Beginners

Chicago

Graham Nash

KeyA minorTempo81 bpm
0:00/0:00
// Chicago — Graham Nash
// 81 bpm, 4/4, key A minor. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(81/4)

const chords = arrange(
  // intro (4 bars)
  [4, "<[Am Dm Am Dm]!4>"],
  // verse (8 bars)
  [8, "<[Am Dm Am Dm]!2 [G C G C] [Am Dm Am Dm]!3 [G C G C] [Am Dm Am@2]>"],
  // chorus (6 bars)
  [6, "<[G@2 F@2] Em [G@2 F@2] [Em@2 D@2] [G@2 D7@2] [G@2 ~@2]>"],
  // trans (2 bars)
  [2, "<[Am Dm Am Dm]!2>"],
  // verse (8 bars)
  [8, "<[Am Dm Am Dm]!2 [G C G C] [Am Dm Am Dm]!3 [G C G C] [Am Dm Am@2]>"],
  // chorus (10 bars)
  [10, "<[G@2 F@2] Em [G@2 F@2] [Em@2 D@2] [G@2 D7@2] [G@2 D@2] [G@2 D7@2] G!2 [G@2 ~@2]>"],
  // trans (2 bars)
  [2, "<[Am Dm Am Dm]!2>"],
  // verse (8 bars)
  [8, "<[Am Dm Am Dm]!2 [G C G C] [Am Dm Am Dm]!3 [G C G C] [Am Dm Am@2]>"],
  // chorus (12 bars)
  [12, "<[G@2 F@2] Em [G@2 F@2] [Em@2 D@2] [G@2 D7@2] [G@2 D@2] [G@2 D7@2] G!4 [G@2 ~@2]>"],
  // outro (14 bars)
  [14, "<[G@2 F@2] E [G@2 F@2] E [G@2 F@2] E [G@2 F@2] E [G@2 F@2] E [G@2 F@2] E [G@2 F@2] E>"],
  // fadeout (8 bars)
  [8, "<[G@2 F@2] E [G@2 F@2] E [G@2 F@2] E [G@2 F@2] E>"],
)
const bassline = arrange(
  [4, "<a2!4>"],
  [8, "<a2!2 g2 a2!3 g2 a2>"],
  [6, "<[g2@2 f2@2] e2 [g2@2 f2@2] [e2@2 d2@2] d2 [d2@2 ~@2]>"],
  [2, "<a2!2>"],
  [8, "<a2!2 g2 a2!3 g2 a2>"],
  [10, "<[g2@2 f2@2] e2 [g2@2 f2@2] [e2@2 d2@2] d2!3 [d2@2 g2@2] [g2@2 f2@2] [f2@2 ~@2]>"],
  [2, "<a2!2>"],
  [8, "<a2!2 g2 a2!3 g2 a2>"],
  [12, "<[g2@2 f2@2] e2 [g2@2 f2@2] [e2@2 d2@2] d2!3 [d2@2 g2@2] [g2@2 f2@2] f2!2 [f2@2 ~@2]>"],
  [14, "<[g2@2 f2@2] e2 [g2@2 f2@2] e2 [g2@2 f2@2] e2 [g2@2 f2@2] e2 [g2@2 f2@2] e2 [g2@2 f2@2] e2 [g2@2 f2@2] e2>"],
  [8, "<[g2@2 f2@2] e2 [g2@2 f2@2] e2 [g2@2 f2@2] e2 [g2@2 f2@2] e2>"],
)

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