Strudelify
A Dream Goes On Forever cover art

1974

A Dream Goes On Forever

Todd Rundgren

KeyG majorTempo99 bpm
0:00/0:00
// A Dream Goes On Forever — Todd Rundgren
// 99 bpm, 4/4, key G major. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(99/4)

const chords = arrange(
  // intro (4 bars)
  [4, "<[Dm7@2 Esus E] [Am7@2 Bsus B] [Em7@3 A6] D9sus>"],
  // verse (8 bars)
  [8, "<C^7 Bm7 [Am7@2 B7@2] Em7 [Dm7@2 G6@2] [C^9@2 Bm7@2] [Am7@2 D7@2] G>"],
  // bridge (16 bars)
  [16, "<[Dm7@2 G6@2] [C^9@2 Bm7@2] [Am7@2 D7@2] G [Dm7@2 G7@2] [C^9@2 Bm7@2] [E9sus@2 E6@2] D9 C^7 Bm7 [Am7@2 B7@2] Em7 [Dm7@2 G6@2] [C^9@2 Bm7@2] [Am7@2 D7@2] G>"],
  // verse (8 bars)
  [8, "<[Dm7@2 G6@2] [C^9@2 Bm7@2] [Am7@2 D7@2] G [Dm7@2 G6@2] [C^9@2 Bm7@2] [Am7@2 D7@2] G>"],
  // interlude (4 bars)
  [4, "<[Dm7@2 Esus E] [Am7@2 Bsus B] [Em7@3 A6] D9sus>"],
  // verse (8 bars)
  [8, "<C^7 Bm7 [Am7@2 B7@2] Em7 [Dm7@2 G6@2] [C^9@2 Bm7@2] [Am7@2 D7@2] G>"],
  // outro (16 bars)
  [16, "<C^7 Bm7 [Am7@2 B7@2] Em7 [Dm7@2 G6@2] [C^9@2 Bm7@2] [Am7@2 D7@2] G [Dm7@2 Db7@2] [C^7@2 Bm7@2] [Am7@2 D7sus@2] G [Dm7@2 G6@2] [C^9@2 Bm7@2] [Am7@2 D7@2] G>"],
  // fadeout (8 bars)
  [8, "<[Dm7@2 G6@2] [C^9@2 Bm7@2] [Am7@2 D7@2] G [Dm7@2 G6@2] [C^9@2 Bm7@2] [Am7@2 D7@2] G>"],
)
const bassline = arrange(
  [4, "<[d2@2 e2@2] [a2@2 b2@2] [e2@3 a2] d2>"],
  [8, "<c2 b2 [a2@2 b2@2] e2 [d2@2 g2@2] [c2@2 b2@2] [a2@2 d2@2] g2>"],
  [16, "<[d2@2 g2@2] [c2@2 b2@2] [a2@2 d2@2] g2 [d2@2 g2@2] [c2@2 b2@2] e2 d2 c2 b2 [a2@2 b2@2] e2 [d2@2 c#2@2] [c2@2 b2@2] [a2@2 f#2@2] g2>"],
  [8, "<[d2@2 c#2@2] [c2@2 b2@2] [a2@2 f#2@2] g2 [d2@2 g2@2] [c2@2 b2@2] [a2@2 d2@2] g2>"],
  [4, "<[d2@2 e2@2] [a2@2 b2@2] [e2@3 a2] d2>"],
  [8, "<c2 b2 [a2@2 b2@2] e2 [d2@2 c#2@2] [c2@2 b2@2] [a2@2 f#2@2] g2>"],
  [16, "<c2 b2 [a2@2 b2@2] e2 [d2@2 c#2@2] [c2@2 b2@2] [a2@2 d2@2] g2 [d2@2 db2@2] [c2@2 b2@2] a2 g2 [d2@2 c#2@2] [c2@2 b2@2] [a2@2 d2@2] g2>"],
  [8, "<[d2@2 c#2@2] [c2@2 b2@2] [a2@2 f#2@2] g2 [d2@2 c#2@2] [c2@2 b2@2] [a2@2 f#2@2] g2>"],
)

// 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 Todd Rundgren