Strudelify
The Longest Time cover art

1983 · An Innocent Man

The Longest Time

Billy Joel

KeyE♭ majorTempo92 bpm
0:00/0:00
// The Longest Time — Billy Joel
// 92 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 74 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(92/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · piano · "Chorus 4"
const piano = note(`<
  A B C D E ~@3 F G H I J ~@3 F G H K L D M D N ~@3 F G O I L P Q R Q@3 P S ~@3 F G T I J U Q R V Q@2 P W ~@3 F G X I Y
  Z AA AB AA AC@3 AD@2
>`.pickRestart({
  A: "~@10 c3@2 db3 ~ bb2 ~", B: "eb3@7 ~ d3@4 eb3@3 ~", C: "c3@4 c3 ~ eb3 ~ d3 ~ c3 ~ d3@2 c3 ~",
  D: "eb3@7 ~ d3@3 ~ eb3@3 ~", E: "c3@3 ~ c3 ~ eb3 ~ d3@2 c3 ~ d3@2 c3 ~", F: "~@12 f3@2 eb3 ~",
  G: "d3@7 ~ eb3@3 ~ eb3 ~ g3 ~", H: "f3@7 ~ g3@3 ~ g3 ~ bb3 ~", I: "ab3@5 ~ g3 ~ f3@2 ~@2 f3 ~ eb3 ~",
  J: "f3@5 ~ eb3 ~ eb3@6 ~@2", K: "ab3@5 ~ g3 ~ f3@3 ~ f3 ~ eb3 ~", L: "f3@4 ~@2 eb3 ~ eb3@6 ~@2",
  M: "c3@3 ~ c3 ~ eb3 ~ d3 ~ c3 ~ d3@2 c3 ~", N: "c3@3 ~ c3@2 eb3 ~ d3@2 c3 ~ d3@2 c3 ~",
  O: "f3@6 ~@2 g3@3 ~ g3 ~ bb3 ~", P: "~@2 f3@4 ~@2 f3 ~ f3 ~ f3 ~ f3 ~", Q: "~@2 g3@5 ~ g3 ~ g3 ~ g3 ~ g3 ~",
  R: "~@2 gb3@4 ~@2 gb3 ~ gb3 ~ gb3 ~ gb3 ~", S: "~@2 bb2 ~ bb2 ~ c3 ~ bb2@2 ~@2 c3 ~ d3 ~",
  T: "f3@6 ~@2 g3@3 ~ g3 ~ f3 ~", U: "~@2 f3@5 ~ f3 ~ f3 ~ f3 ~ f3 ~", V: "~@2 g3@4 ~@2 g3 ~ g3 ~ g3 ~ g3 ~",
  W: "~@2 bb2 ~ bb2 ~ c3 ~ bb2@3 ~ c3 ~ d3 ~", X: "f3@7 ~ g3@3 ~ g3 ~ f3 ~", Y: "f3@4 ~@2 eb3 ~ eb3@5 ~@3",
  Z: "eb4@7 ~ d4@3 ~ eb4@3 ~", AA: "c4@3 ~ c4 ~ eb4 ~ d4@2 c4 ~ d4@2 c4 ~", AB: "eb4@6 ~@2 d4@3 ~ eb4@3 ~",
  AC: "[eb4@6 ~ d4@3 ~ eb4@3 ~ c4@3 c4 ~ eb4 ~ d4@2 c4 ~ d4@2 c4 eb4@6 ~@2 d4@2 ~ eb4@3 ~ c4@3 ~]/3",
  AD: "[c4@2 eb4 ~@2 c4 ~ d4@2 c4 ~ eb4@15 ~@6, ~@2 d4 ~@13]/2",
})).s("gm_piano").gain(0.25).pan(0.8)

// bass · acoustic bass · "Bass"
const bass = note(`<
  ~ A B A C D E D F G H I J D E D F G H I K A B A L D M D F G H I N O P Q R S T U V D E D F G H I N O P Q R S W U V D E
  D X G H I N A Y A C Z@5
>`.pickRestart({
  A: "eb2@2 bb1 g1", B: "ab1@8 bb1@5 ~ bb1@2", C: "ab1@4 bb1@2 ~ bb1", D: "eb2 d2 c2 bb1", E: "ab1@4 eb2@2 ~ bb1",
  F: "a1@4 f1@4 bb1@3 ~ bb1@2 ab1@2", G: "g1 b1 c2@2", H: "d2@2 eb2 g1", I: "ab1 f1", J: "bb1@8 eb2@5 ~@3",
  K: "bb1@3 bb1 eb2@3 ~", L: "ab1@7 ~ bb1@4 ~@2 bb1@2", M: "ab1@8 eb2@5 ~ bb1@2", N: "bb1@4 eb2@3 ~", O: "bb1",
  P: "c2@6 ~ c2", Q: "d2@6 ~ d2", R: "eb2@6 ~ f1", S: "g1@6 ~ g1", T: "c2", U: "f1@15 ~", V: "bb1@6 ~ bb1", W: "c2@7 ~",
  X: "a1@2 f1@2 bb1@2 bb1 ab1", Y: "ab1@8 bb1@7 ~",
  Z: "[eb2@7 bb1@4 g1@4 ab1@7 bb1@4 ~@3 eb2@8 bb1@3 g1@4 ab1@7 ~ bb1@4 ~ bb1@2 eb2@15 ~@6, ~@14 bb1 ~@25]/5",
})).s("gm_acoustic_bass").gain(0.5)

// drums · kick
const kick = s("bd").struct(`<
  [x!4]!69
  [x ~@3 x ~@2 x ~@3 x ~@3 x]
  [~@2 x ~@3 x ~@3 x ~@2 x ~@2]
  [~ x ~@3 x ~@2 x ~@3 x ~@3]
  [x ~@3 x ~@2 x ~@3 x ~@4]
  ~
>`).gain(0.22)

// drums · snare
const snare = s("sd").struct(`<
  [~ x ~ x ~ x ~ x]!69
  [~@2 x ~@3 x ~@2 x ~@3 x ~@2]
  [~ x ~@2 x ~@3 x ~@3 x ~@2 x]
  [~@3 x ~@3 x ~@2 x ~@3 x ~]
  [~@2 x ~@2 x ~@3 x ~@6]
  ~
>`).gain(0.2)

stack(piano, bass, kick, snare)

More by Billy Joel