Strudelify
I Had Too Much To Dream (Last Night) cover art

1967 · I Had Too Much To Dream (Last Night)

I Had Too Much To Dream (Last Night)

The Electric Prunes

KeyD minorTempo141 bpm
0:00/0:00
// I Had Too Much To Dream (Last Night) — The Electric Prunes
// 141 bpm, 4/4, key D minor. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(141/4)

const chords = arrange(
  // intro (4 bars)
  [4, "<D5!2 Dm!2>"],
  // verse (18 bars)
  [18, "<Dm!2 C!2 Dm!2 C!2 Gm!2 Dm!2 Gm!2 Dm G!3>"],
  // pre-chorus (8 bars)
  [8, "<Dm!2 Dbm!2 [G@2 F@2] Eb [Eb ~@3] [~ ~@3]>"],
  // chorus (8 bars)
  [8, "<Dm G Dm G Dm G Dm A>"],
  // trans (4 bars)
  [4, "<[Dm@2 C@2] [Bb@2 C@2] [Dm@2 C@2] [Bb@2 C@2]>"],
  // verse (17 bars)
  [17, "<Dm!2 C!2 Dm!2 C!2 Gm!2 Dm!2 Gm!2 Dm G!2>"],
  // pre-chorus (8 bars)
  [8, "<Dm!2 Dbm!2 [G@2 F@2] Eb [Eb ~@3] [~ ~@3]>"],
  // chorus (8 bars)
  [8, "<Dm G Dm G Dm G Dm A>"],
  // trans (4 bars)
  [4, "<[Dm@2 C@2] [Bb@2 C@2] [Dm@2 C@2] [Bb@2 C@2]>"],
  // chorus (8 bars)
  [8, "<Dm G Dm G Dm G Dm A>"],
  // outro (12 bars)
  [12, "<[Dm@2 C@2] [Bb@2 C@2] [Dm@2 C@2] [Bb@2 C@2] [Dm@2 C@2] [Bb@2 C@2] [Dm@2 C@2] [Bb@2 C@2] [Dm@2 C@2] [Bb@2 C@2] [Dm@2 C@2] [Bb@2 C@2]>"],
  // fadeout (8 bars)
  [8, "<[Dm@2 C@2] [Bb@2 C@2] [Dm@2 C@2] [Bb@2 C@2] [Dm@2 C@2] [Bb@2 C@2] [Dm@2 C@2] [Bb@2 C@2]>"],
)
const bassline = arrange(
  [4, "<d2!4>"],
  [18, "<d2!2 c2!2 d2!2 c2!2 g2!2 d2!2 g2!2 d2 g2!3>"],
  [8, "<d2!2 db2!2 [g2@2 f2@2] eb2 [eb2 ~@3] [~ ~@3]>"],
  [8, "<d2 g2 d2 g2 d2 g2 d2 a2>"],
  [4, "<[d2@2 c2@2] [bb2@2 c2@2] [d2@2 c2@2] [bb2@2 c2@2]>"],
  [17, "<d2!2 c2!2 d2!2 c2!2 g2!2 d2!2 g2!2 d2 g2!2>"],
  [8, "<d2!2 db2!2 [g2@2 f2@2] eb2 [eb2 ~@3] [~ ~@3]>"],
  [8, "<d2 g2 d2 g2 d2 g2 d2 a2>"],
  [4, "<[d2@2 c2@2] [bb2@2 c2@2] [d2@2 c2@2] [bb2@2 c2@2]>"],
  [8, "<d2 g2 d2 g2 d2 g2 d2 a2>"],
  [12, "<[d2@2 c2@2] [bb2@2 c2@2] [d2@2 c2@2] [bb2@2 c2@2] [d2@2 c2@2] [bb2@2 c2@2] [d2@2 c2@2] [bb2@2 c2@2] [d2@2 c2@2] [bb2@2 c2@2] [d2@2 c2@2] [bb2@2 c2@2]>"],
  [8, "<[d2@2 c2@2] [bb2@2 c2@2] [d2@2 c2@2] [bb2@2 c2@2] [d2@2 c2@2] [bb2@2 c2@2] [d2@2 c2@2] [bb2@2 c2@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)