Strudelify

If I Only Had the Words (To Tell You)

Billy Joel

KeyD♭ majorTempo77 bpm
0:00/0:00
// If I Only Had the Words (To Tell You) — Billy Joel
// 76.5 bpm, 4/4, key C# 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 62 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(76.5/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "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.

// chords · piano
const piano = note(`<
  A@5 B C D E B F G H B C D E B F G I J K L M J N O P Q R S T U V W X P K L M J N O P Y Z AA AB P K L M J N O P AC AD@4
>`.pickRestart({
  A: "[~@14 gb3@2 bb3@3 gb3@2 f3@2 ~@2 c3@2 f3@2 ~@2 f3@2 ~@3 f3@2 ~@2 f3@2 bb3@2 f3@2 ~@2 gb3@2 bb3@3 gb3@2 ~@2 f3@2 c3@2 eb3@2 ~@2 f3@2 bb3@3 f3@2 [db3,f3,ab3]@3 ~ [c3,f3,a3]@3 ~, ~@12 eb3@6 ~@5 a3@4 ~@2 d3@6 ~@3 d3@7 ~ eb3@9 ~@8 d3@7 ~@10, ~@33 bb3@7 ~@15 a3@6 ~@19]/5", // Db F
  B: "[bb2,d3,f3]@3 ~ [bb2,d3,f3]@3 ~ [bb2,d3,f3]@3 ~ [bb2,d3,f3]@3 ~", // Bb
  C: "[bb2,eb3,g3]@3 ~ [bb2,eb3,g3]@3 ~ [bb2,eb3,g3]@3 ~ [bb2,d3,eb3,g3]@3 ~", // Eb Ebmaj7
  D: "[c3,eb3,g3]@3 ~ [c3,eb3,g3]@3 ~ [c3,eb3,g3]@3 ~ [c3,eb3,g3]@3 ~", // Cm
  E: "[c3,eb3,gb3,ab3]@3 ~ [c3,eb3,gb3,ab3]@3 ~ [c3,eb3,f3,a3]@3 ~ [c3,eb3,f3,a3]@3 ~", // Ab7 F7
  F: "[bb2,eb3,g3]@3 ~ [bb2,eb3,g3]@3 ~ [bb2,eb3,g3]@3 ~ [bb2,d3,g3]@3 ~", // Eb Gm
  G: "[c3,eb3,g3]@3 ~ [c3,eb3,g3]@3 ~ [c3,eb3,f3,a3]@3 ~ [c3,eb3,f3,a3]@4", // Cm F7
  H: "[bb2,d3,f3]@3 ~ [bb2,d3,f3]@3 ~ [db3,f3,ab3]@3 ~ [c3,f3,a3]@3 ~", // Bb Db F
  I: "[bb2,d3,f3]@3 ~ [bb2,d3,f3]@3 ~ [bb2,d3,f3,ab3]@3 ~ [ab2,c3,eb3,ab3]@3 ~", // Bb Bb7 Ab
  J: "[db3,f3,ab3]@3 ~ [db3,f3,ab3]@3 ~ [c3,f3,ab3]@3 ~ [c3,f3,ab3]@3 ~", // Db Fm
  K: "[db3,gb3,bb3]@3 ~ [db3,gb3,bb3]@3 ~ [db3,gb3,bb3]@3 ~ [db3,f3,gb3,bb3]@3 ~", // Gb Gbmaj7
  L: "[eb3,gb3,bb3]@3 ~ [eb3,gb3,bb3]@3 ~ [eb3,gb3,bb3]@3 ~ [eb3,gb3,bb3]@3 ~", // Ebm
  M: "[eb3,gb3,a3,b3]@3 ~ [eb3,gb3,a3,b3]@3 ~ [eb3,gb3,ab3,c4]@3 ~ [eb3,gb3,ab3,c4]@3 ~", // B7 Ab7
  N: "[db3,gb3,bb3]@3 ~ [db3,gb3,bb3]@3 ~ [db3,gb3,bb3]@3 ~ [db3,f3,bb3]@3 ~", // Gb Bbm
  O: "[eb3,gb3,bb3]@3 ~ [eb3,gb3,bb3]@3 ~ [eb3,gb3,ab3,c4]@3 ~ [eb3,gb3,ab3,c4]@4", // Ebm Ab7
  P: "[db3,f3,ab3]@3 ~ [db3,f3,ab3]@3 ~ [db3,f3,ab3]@3 ~ [db3,f3,ab3]@3 ~", // Db
  Q: "[c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~", // F
  R: "[db3,f3,bb3] ~ [db3,f3,bb3] ~ [db3,f3,bb3] ~ [db3,f3,bb3] ~ [db3,f3,bb3] ~ [db3,f3,bb3] ~ [db3,f3,bb3] ~ [db3,f3,bb3] ~", // Bbm
  S: "[c3,eb3,gb3,ab3] ~ [c3,eb3,gb3,ab3] ~ [c3,eb3,gb3,ab3] ~ [c3,eb3,gb3,ab3] ~ [c3,eb3,gb3,ab3] ~ [c3,eb3,gb3,ab3] ~ [c3,eb3,gb3] ~ [c3,eb3,gb3] ~, ~@6 ab3 ~", // Ab7 Cdim
  T: "[db3,f3,ab3] ~ [db3,f3,ab3] ~ [db3,f3,ab3] ~ [db3,f3,ab3] ~ [c3,f3,ab3] ~ [c3,f3,ab3] ~ [c3,f3,ab3] ~ [c3,f3,ab3] ~", // Db Fm
  U: "[db3,gb3,bb3] ~ [db3,gb3,bb3] ~ [db3,gb3,bb3] ~ [db3,gb3,bb3] ~ [eb3,gb3,bb3] ~ [eb3,gb3,bb3] ~ [eb3,gb3,bb3] ~ [eb3,gb3] ~, ~@7 bb3", // Gb Ebm
  V: "[c3,f3,ab3] ~ [c3,f3,ab3] ~ [c3,f3] ~ [c3,f3,ab3] ~ [c3,f3] ~ [c3,f3,ab3] ~ [c3,f3,ab3] ~ [c3,f3,ab3] ~, ~@2 ab3 ~ ab3 ~@3", // Fm F5 Fm F5 Fm
  W: "[bb2,eb3,gb3] ~ [bb2,eb3,gb3] ~ [bb2,eb3] ~ [bb2,eb3] ~ [bb2,eb3] ~ [bb2,eb3] ~ [bb2,eb3,gb3] ~ [bb2,eb3,gb3] ~, ~@2 gb3!4 ~@2", // Ebm Eb5 Ebm
  X: "[c3,eb3,gb3,ab3] ~ [c3,eb3,gb3,ab3] ~ [c3,eb3,gb3,ab3] ~ [c3,eb3,gb3,ab3] ~ [c3,eb3,gb3,ab3] ~ [c3,eb3,gb3,ab3] ~ [c3,eb3,gb3,ab3]@2 ~@2", // Ab7
  Y: "~ a3 ~ a3 ~ ab3 eb3 gb3, gb3 ~, ~@4 db4@4 c4@5 ~@3",
  Z: "[db3,f3,ab3]@3 ~ [db3,f3,ab3]@3 ~ [db3,gb3,bb3]@3 ~ [db3,gb3,bb3]@3 ~", // Db Gb
  AA: "[b2,eb3,gb3]@4 [b2,eb3,gb3]@3 ~ [bb2,eb3,g3]@3 ~ [bb2,eb3,g3]@3 ~", // B Eb
  AB: "[c3,eb3,gb3,ab3]@3 ~ [c3,eb3,gb3,ab3]@3 ~ [c3,eb3,gb3,ab3]@3 ~ [c3,gb3,ab3] ~ [c3,eb3,gb3,ab3] ~, ~@6 eb3 ~", // Ab7
  AC: "~@3 a3@2 ~@2 a3@2 ~@3 ab3@2 eb3@2, ~ gb3@9 ~@6, ~@5 db4@4 ~ c4@6",
  AD: "[gb3@2 ~@3 ab3@2 ~@2 ab3@3 ~@2 ab3@2 ~@2 ab3@2 ~@3 a3@2 ~@2 a3@2 ~@3 ab3@3 eb3@3 gb3@3 [db3,f3,ab3]@20 ~@3, ~@3 f3@7 ~@2 f3@7 ~@2 gb3@9 ~@34, ~@7 db4@7 ~@2 db4@4 ~@5 db4@4 ~ c4@8 ~@26]/4", // Db
})).s("gm_piano").gain(0.18).pan(0.6)

// bass · electric bass finger
const bass = note(`<
  ~@4 A B C D E F G H I B C D E F G H J K L M N O P Q R S T U V W X Y Z AA AB AC AD K AE AF AG ~ AH AI AJ AA AB AC AD K
  AE AF AG ~@5
>`.pickRestart({
  A: "~@8 db2@4 f2@3 ~", B: "bb1@5 ~ bb1 ~ bb1@7 ~", C: "eb2@5 ~ eb2 ~ eb2@4 d2@4", D: "c2@5 ~ c2 ~ c2@8",
  E: "eb1@6 eb1 ~ f1@4 a1@3 ~", F: "bb1@5 ~ bb1@2 d2@3 ~ d2@3 ~", G: "eb2@5 ~@3 eb2@4 d2@4",
  H: "c2@5 ~ c2 ~ f2@4 f2@3 ~", I: "bb1@5 ~ bb1@2 db2@4 f2@3 ~", J: "bb1@4 ~@2 bb1 ~ bb1@3 ~ ab1@4",
  K: "db2@5 ~ db2 ~ f2@3 ~ f2@3 ~", L: "gb2@5 ~ gb2 ~ gb2@4 f2@4", M: "eb2@5 ~ eb2 ~ eb2@3 ~ eb2@3 ~",
  N: "gb1@6 gb1 ~ ab1@4 c2@3 ~", O: "db2@5 ~ db2@2 f2@3 ~ f2@3 ~", P: "gb2@3 ~ gb2@2 f2@2",
  Q: "eb2@5 ~ eb2 ~ ab2@4 ab2@3 ~", R: "db2@4 ~@2 db2 ~ db2@3 ~ db2@2 ~@2", S: "f2@5 ~ f2 ~ f2@4 c2@4",
  T: "bb1@5 ~ bb1@2 db2@4 bb1@4", U: "ab1@4 ~@2 ab1@2 bb1@4 ab1@3 ~", V: "db2@5 ~ db2 ~ db2@3 ~ db2@2 ~@2",
  W: "~@6 f1@2 [eb1,eb3]@5 ~ eb1@2, gb1@3 ~@5, ~ f3 ~@2", X: "f2@4 ~@2 f2 ~ f2@3 ~ f2@4, ~@2 eb3@2 db3@3 ~",
  Y: "eb2@4 ~@2 eb2 ~ eb2@4 db2@2 bb1@2", Z: "ab1@2 ~ ab1 bb1@2 ab1 ~", AA: "db2@5 ~ db2 ~ db2@3 ~ db2@2 f2@2",
  AB: "gb2@6 db2@2 gb2@4 f2@2 gb2 f2", AC: "eb2@4 eb2@2 db2@2 eb2@3 ~ eb2@2 db2@2",
  AD: "b1@2 b1@3 ~ b1 ~ ab1@4 ab1 ~ ab1 ~", AE: "gb2@6 ~@2 gb2@4 f2@2 gb2 f2",
  AF: "eb2@5 ~ eb2@2 ab2@2 ab1 ~ ab1@2 c2@2", AG: "db2@5 ~ db2 ~ db2@2 eb2@2 db2@4",
  AH: "db2@4 db2 ~ db2@2 gb2@4 gb2@4", AI: "b1@4 b1@3 ~ eb2@4 eb2@4", AJ: "ab2@5 ~ ab2@2 gb2@4 ab2@3 ~",
})).s("gm_electric_bass_finger").gain(0.26)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@21 A B C D A B E F G H I J K L M N F B C D A B E ~@2 O P Q F B C D A B E ~@6
>`.pickRestart({
  A: "[f4,ab4,db5] [f4,ab4,c5]", B: "[gb4,bb4,db5]!2", C: "[gb4,bb4,eb5]!2", D: "[gb4,a4,b4,eb5] [ab4,c5,eb5]",
  E: "[gb4,bb4,eb5] [gb4,ab4,c5,eb5]", F: "[f4,ab4,db5]!2", G: "[f4,a4,c5] [f4,a4,c5,eb5]",
  H: "[f4,bb4,db5] [f4,ab4,bb4,db5]", I: "[ab4,c5,eb5] [ab4,c5,eb5,gb5]", J: "[f4,ab4,db5] [ab4,db5,f5]",
  K: "[gb4,bb4,db5,f5] [gb4,bb4,db5,eb5]", L: "[f4,ab4,c5]!2", M: "[gb4,bb4,eb5] [gb4,bb4,db5,eb5]",
  N: "[ab4,c5,eb5] [gb4,ab4,c5,eb5]", O: "[ab4,db5,f5] [bb4,db5,gb5]", P: "[b4,eb5,gb5] [bb4,eb5,g5]",
  Q: "[ab4,c5,eb5,gb5]!2", // Ab7
})).s("gm_string_ensemble_2").gain(0.11).pan(0.3)

// chords · string ensemble 2 · soft notes · Db
const string_ensemble_2_soft = note("<~@44 [[f4,ab4,db5]!2] ~@11 [[f4,ab4,db5]!2] ~@5>")
  .s("gm_string_ensemble_2").gain(0.06).pan(0.3)

// chords · piano
const piano_2 = note(`<
  A B@2 C@2 D E F G D E H I D E F G D E H J K L M N K L O P Q R S T U V W X K L M N K L O Y Z AA AB AC K L M N K L O AD
  AE@2 AF@3
>`.pickRestart({
  A: "~@3 [bb3,d4] [d4,f4] [f4,ab4] [eb4,gb4,eb5]@2", // Bb Dm Fm Ebm
  B: "[[eb4,gb4,eb5]@4 ~ [f4,a4,c5]@4 [f4,a4,c5]@4 [bb3,d4,bb4]@8 ~@3 [bb4,d5]@2 [d5,f5]@2 [bb4,d5,ab5]@2 [eb5,gb5]@2, ~@13 d5@5 ~@8 bb4 ~@5]/2", // Ebm F Bb Dm Bb7 Ebm
  C: "[~@2 [eb5,gb5]@3 ~@2 [f5,a5]@3 ~ [f5,a5]@3 ~ [f5,bb5,d6]@8 ~ [db4,f4,ab4]@3 ~ [c4,f4,a4]@3 ~]/2", // Ebm F Bb Db F
  D: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@3 ~", // Bb
  E: "[bb3,eb4,g4]@3 ~ [bb3,eb4,g4]@3 ~ [bb3,eb4,g4]@3 ~ [bb3,d4,g4]@3 ~", // Eb Gm
  F: "[c4,eb4,g4]@3 ~ [c4,eb4,g4]@3 ~ [c4,eb4,g4]@3 ~ [c4,eb4,g4]@3 ~", // Cm
  G: "[c4,eb4,gb4,ab4]@3 ~ [c4,eb4,gb4,ab4]@3 ~ [c4,eb4,f4,a4]@3 ~ [c4,eb4,f4,a4]@3 ~", // Ab7 F7
  H: "[c4,eb4,g4]@3 ~ [c4,eb4,g4]@3 ~ [c4,f4,a4]@3 ~ [c4,eb4,a4]@3 ~", // Cm F Adim
  I: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@3 ~ [db4,f4,ab4]@3 ~ [c4,eb4,f4,a4]@3 ~", // Bb Db F7
  J: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4,ab4]@3 ~ [ab3,c4,eb4,ab4]@3 ~", // Bb Bb7 Ab
  K: "[db4,f4,ab4]@3 ~ [db4,f4,ab4]@3 ~ [db4,f4,ab4]@3 ~ [db4,f4,ab4]@3 ~", // Db
  L: "[db4,gb4,bb4]@3 ~ [db4,gb4,bb4]@3 ~ [db4,gb4,bb4]@3 ~ [db4,f4,bb4]@3 ~", // Gb Bbm
  M: "[eb4,gb4,bb4]@3 ~ [eb4,gb4,bb4]@3 ~ [eb4,gb4,bb4]@3 ~ [eb4,gb4,bb4]@3 ~", // Ebm
  N: "[eb4,gb4,a4,b4]@3 ~ [eb4,gb4,a4,b4]@3 ~ [eb4,gb4,ab4,c5]@3 ~ [eb4,gb4,ab4,c5]@3 ~", // B7 Ab7
  O: "[eb4,gb4,bb4]@3 ~ [eb4,gb4,bb4]@3 ~ [eb4,ab4,c5]@3 ~ [eb4,gb4,c5]@3 ~", // Ebm Ab Cdim
  P: "[f3,ab3,db4]@3 ~ [f3,ab3]@3 ~ [f3,ab3]@3 ~ [f3,ab3,db4]@3 ~, ~@4 db4@7 ~@5", // Db Fm Db
  Q: "[f4,a4]@5 ~ [f4,a4]@2 [g4,bb4]@3 ~ [a4,c5]@2 ~@2", R: "[bb4,db5]@5 ~ c5@2 bb4@4 bb4@3 ~, ~@4 f4@3 ~",
  S: "[ab4,c5]@4 ~@2 [ab4,c5] ~ [bb4,db5]@3 ~ [c5,eb5]@3 ~", T: "[db5,f5]@5 ~ eb5@2 [ab4,db5]@4 ~@4, ~@6 c5 ~@9",
  U: "[f4,bb4]@3 ~ [f4,bb4]@2 ~@2 [eb4,gb4,bb4]@3 ~ [eb4,gb4,bb4]@2 ~@2", // Bb5 Ebm
  V: "[c4,f4,ab4]@4 ~@2 [f4,ab4] ~ [ab4,c5]@3 ~ [f4,ab4]@2 ~@2", // Fm Ab Fm
  W: "[eb4,gb4]@5 ~ [eb4,gb4] ~ [gb4,bb4]@2 ~@2 [gb4,db5]@3 ~", X: "[ab4,c5]@5 ~ [ab4,c5] ~ [bb4,db5]@3 ~ [c5,eb5]@3 ~",
  Y: "~@2 f4@3 [db5,f5] [db5,ab5] [db5,f5,b5], [db4,ab4] ~, [db5,f5]@6 ~@6 f5 ~@3", // Db Db5 Db7 Db5 Db
  Z: "[gb5,a5]@3 ~ [gb5,a5]@3 ~ [ab5,c6]@3 ~ [ab5,c6]@4", // Gbm Ab
  AA: "[db4,f4,ab4]@3 ~ [db4,f4,ab4]@3 ~ [db4,gb4,bb4]@4 [db4,gb4,bb4]@3 ~, [db5,f5,ab5]@7 ~@9", // Db Gb Db
  AB: "[b3,eb4,gb4]@4 [b3,eb4,gb4]@3 ~ [bb3,db4,eb4,g4]@3 ~ [bb3,db4,eb4,g4]@3 ~", // B Eb7
  AC: "[ab4,c5]@4 [gb3,ab3]@2 [ab4,c5] ~ [gb3,ab3,bb4,db5]@3 ~ [gb3,ab3,c5,eb5]@3 ~, [gb3,ab3]@3 ~@13", // Ab Gbsus2 Ab Gb Ab7 Gbsus2
  AD: "~@2 f4@3 [db5,f5] [f5,ab5] [db5,f5,b5], [db4,ab4] ~, [db5,f5]@6 ~@6 db5 ~@3", // Db Fm Db7 Db5 Db
  AE: "[~ [gb5,a5]@4 [gb5,a5]@4 ~ [ab5,c6]@4 [ab5,c6]@4 ~ [db4,f4]@9 ~@2 [db5,f5]@2, ~@19 [db5,f5]@7 ~@6]/2", // Gbm Ab Db
  AF: "[[db5,f5,ab5]@2 [db5,f5,b5]@2 ~ [gb5,a5]@3 ~ [gb5,a5]@3 ~@2 [ab5,c6]@5 [ab5,c6]@5 ~ [f5,ab5,db6]@20 ~@3]/3", // Db Db7 Gbm Ab Db
})).s("gm_piano").gain(0.24).pan(0.3)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@12 A B C D E F G ~ H ~@7 I J ~ K L M N ~ O P ~@6 Q ~ R S T P ~@6 Q ~@5
>`.pickRestart({
  A: "~@2 bb2@2 c3 d3 f3@2 [db3,f3]@4 [c3,eb3]@4", B: "[bb2,d3]@7 ~@9", C: "~@4 f3 eb3 d3 eb3", D: "c3@3 ~@5",
  E: "~@8 a3@4 g3@3 ~, ~@8 f3@7 ~", F: "[d3,bb3]@7 ~@9", G: "~ bb3 g3 eb3@3 ~@2",
  H: "~@4 f3 g3 bb3 ~ [d3,bb3]@4 [bb2,ab3]@3 ~", // Gm Bb7
  I: "~@2 [db3,f3] [eb3,gb3] f3@2 ab3@4 [db3,f3] [eb3,gb3] [f3,ab3]@2 [db3,gb3]@2, ~@4 ab3 ~@11", J: "[c3,f3] ~",
  K: "~@3 c3 db3@2 eb3@2", L: "f3@3 ~@5", M: "~@6 gb3 f3 eb3@6 ~@2", N: "~@6 ab3 gb3 f3@5 ~@3",
  O: "~ [ab3,c4] [bb3,db4] [c4,eb4]", P: "[ab3,db4,f4]@3 ~@5", Q: "~@2 [db3,f3] [eb3,gb3] ab3 ~ ab3@4 ~@6, ~ f3 ~@2",
  R: "[db3,f3,ab3]@5 ~ [db3,f3,ab3] ~ [db3,gb3,bb3]@3 ~ [db3,gb3,bb3]@3 ~", // Db Gb
  S: "[eb3,gb3,b3]@5 ~ [eb3,gb3,b3] ~ [eb3,g3,bb3]@3 ~ [eb3,g3,bb3,db4]@3 ~", T: "[ab2,c3] [ab3,c4] [bb3,db4] [c4,eb4]",
})).s("gm_electric_guitar_clean").gain(0.24).pan(0.3)

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

// drums · snare
const snare = s("sd").struct("<~@5 A@7 B A@7 B A@7 C A@7 B A@8 ~ A@2 C A@8 ~@5>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@5 x ~ x!3 ~", C: "~@2 x ~@3 x!2",
})).gain(0.26)

// drums · hihat
const hihat = s("hh").struct("<~@5 [x!4]!25 [x!8]!7 [x!4]!8 ~ [x!8]!3 [x!4]!8 ~@5>").gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<~@28 A B ~@15 C ~@2 A ~@9 B ~@3>".pickRestart({
  A: "~ x!3", B: "x", C: "~@7 x",
})).gain(0.26)

// drums · mid tom
const mid_tom = s("mt").struct("<~@28 A ~@16 B ~@2 A ~@8 C ~@4>".pickRestart({
  A: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2", B: "~@12 x!2 ~@2", C: "~@14 x!2",
})).gain(0.26)

// drums · open hat
const open_hat = s("oh").struct("<~@58 [~@3 x ~@12] ~@3>").gain(0.17)

// drums · crash
const crash = s("cr").struct("<~@5 A ~@15 A ~@7 A ~@7 A ~@8 A ~@2 A ~@12>".pickRestart({
  A: "x",
})).gain(0.26)

stack(
  piano, bass, string_ensemble_2, string_ensemble_2_soft, piano_2, electric_guitar_clean, kick, snare, hihat, low_tom,
  mid_tom, open_hat, crash
)

More by Billy Joel