Strudelify

The One

Elton John

KeyB♭ majorTempo78 bpm
0:00/0:00
// The One — Elton John
// 78 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(78/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.

// bass · fretless bass · "Fretless Bs."
const bass = note(`<
  A B A B A B A B A B A C D E@2 F G H I J K L M N O P Q R S T U V W X Y Z ~ AA AB AC AD AE AF AG AH AI I AJ AK L AL N O
  P Q R AM AN AO V AP AQ AR AS AT AU AV AW AX AY AZ BA O P Q R BB BC BD BE BF BG O P Q R BB BC BD BE BF BG BH BI BJ BK
  BL BM BN BO BL BM BN BO BH BI BJ BK BH BI BJ BK BL BM BN BO BL BM BN BO BH BI BJ BK BP BQ ~
>`.pickRestart({
  A: "c2@6 c2@2 c2@4 c2@3 g1", B: "c2@3 c2 c2@4", C: "b1@3 b1 b1@2 b1@2", D: "bb1@3 bb1 bb1@2 bb1@2",
  E: "eb1@3 eb1 eb1@2 eb1@2", F: "f1@3 f1 f1@2 f1@2", G: "bb1!2", H: "bb1@6 f2 c3 bb2@3 f2 bb2@4", I: "a1@7 a1 a1@8",
  J: "bb1@4 bb1@4 bb1 bb1@2 bb1 bb1@4", K: "ab1!2", L: "g1@6 g1 d1 a1@4 b1@4", M: "c2@2 c2 d2",
  N: "f1@6 f1@2 f1@4 f1@2 f1!2", O: "bb1@5 ~ bb1 ~ bb1@4 bb1@4", P: "gb1@5 ~ gb1 ~ gb1@8",
  Q: "g1@6 g1@2 g1@3 bb1 d2@2 g2@2", R: "f2@3 f2 f1@2 f1@2", S: "gb1@5 ~ gb1 ~ gb1@2 db2 ab2 gb2@4",
  T: "f2@5 ~ f2 ~ f2@8", U: "bb1@6 bb1@2 bb2@3 f2 bb2@4", V: "eb2@6 bb1!2 eb2@2 bb1 eb2 d2@2 bb1 d2",
  W: "c2@5 ~ c2 ~ c2@4 c2@4", X: "f1@5 ~ f1 ~ f1@8", Y: "bb1@5 ~ bb1 ~ bb1@2 f2 bb2 bb1@4", Z: "bb1@5 ~ bb1 ~ bb1@8",
  AA: "~@6 g2 d3 c3@7 g2", AB: "c2", AC: "b1@2 g3 d3", AD: "bb2", AE: "eb2@7 bb2",
  AF: "eb2@5 ~ eb2 ~ eb2@3 ~@2 f2 g2 eb2, ~@6 eb2 ~", AG: "f2@6 f3 ~ f3@3 a2 bb2 d3 g2 f2",
  AH: "bb1@7 ~ bb1@3 bb1@3 bb1 f1", AI: "bb1@6 g2 bb2 eb3@3 eb3 bb2@4", AJ: "bb1@4 ~@2 bb1 ~ bb1@2 f2 c3 bb2!2 bb1 a1",
  AK: "ab1@7 ~ ab1@3 ab1 ~@2 ab1@2", AL: "c2@5 ~ c2 ~ c2@2 c2 d2 eb2@2 c2 eb2",
  AM: "gb1@5 ~ gb1 ~ gb1@2 db2 ab2 gb2@2 db2@2", AN: "f1@5 ~ f1 ~ f1@2 f1!2 g1@2 f1@2",
  AO: "bb1@5 ~ bb1 ~ bb1 ~ c2 ~ d2 ~ bb1 f2", AP: "c2@4 c2@3 ~ c2 ~ c2 ~ c2@2 d2 g2",
  AQ: "f2@4 f1@4 f1 ~ f1 ~ f1@2 f1!2", AR: "bb1@5 ~ bb1 ~ bb1@7 ~", AS: "bb2@3 c3 c3@2 d3@4 c3@2 bb2 g2 bb2@2",
  AT: "c2@5 ~ c2 ~ c2@7 ~", AU: "c2@5 ~ g1 ~ g1@8", AV: "c2@5 ~ c2 ~ c2@4 e3@4", AW: "b2@6 b1 ~ b1@8", AX: "bb1 bb2",
  AY: "eb1@8 eb2 eb2@2 bb2 eb3@2 bb2@2", AZ: "eb2@7 bb1 eb2@4 eb2 f2 g2 eb2", BA: "f2@7 ~ f2@4 a1 c2 f2 c2",
  BB: "gb1@5 ~ gb1 ~ gb1 db2 ab2 db2 ~ db2 gb1!2, ~@6 gb2 ~", BC: "f1@5 ~ f1 ~ f1@4 c2@4",
  BD: "bb1@2 d3@3 f1 g1 a1 bb1@2 ~ f2 bb2@2 bb1@2, ~@5 bb1 ~@2", BE: "eb2@5 ~ eb2 ~ eb2@3 eb3 d3 bb2 g2 d3",
  BF: "c3@5 ~ c2 ~ c2@6 bb2 g2", BG: "f1@5 ~ f1 ~ f1@4 f1@4", BH: "bb1@7 f2 d3@3 f2 ~ f2 bb2@2, ~@6 bb2 ~",
  BI: "bb1@7 gb2 a2@3 gb2 bb1@4", BJ: "eb2@7 bb1 eb2@4 d2@4", BK: "c2@7 c2 f1@4 f1@4",
  BL: "bb1@7 ~ bb1@3 bb1 f3@2 d3@2", BM: "bb1@5 ~ bb1 ~ bb1@4 c3@2 bb2@2", BN: "eb2@4 eb3 f3 eb3@2 eb2@4 d2@3 ~",
  BO: "c2@4 c2 d2 eb2 g2 f2@3 f2 d2@2 c2@2", BP: "eb2@7 ~ eb2@4 f2@4", BQ: "bb1",
})).s("gm_fretless_bass").gain(0.54).pan(0.4)

// chords · piano · "Piano 1"
const piano = note(`<
  ~ A@2 B C D E F ~@3 G@3 H I J K L M N O P Q R S T U V W X Y Z AA AB@2 ~@3 AC AD@2 H I J K L M N O P Q R S T U V W X Y
  Z AA AE@2 AF AG AH AI AJ AK AL AM AN AO@2 AP AQ@2 AR AS AT AU AV AW@2 AX AY AZ BA BB BC BD@2 BE BF BG BH BE BI BG BH
  BE BF BG BH BE BI BG BH BE BF BG BH BE BI BG BH BE BF BG BH BE BI BG BJ BK@2
>`.pickRestart({
  A: "[~@7 c4@4 ~@5, ~@5 g5@2 ~@9, ~@6 g4@3 ~@7]/2", B: "~@10 g4 c5 d5 g5 d5 g5", C: "[a3,a4,d5,gb5]@3 [gb3,gb4,a4,d5]",
  D: "[e4,g4,c5]@5 ~@2 g5, e3@4 ~ c4@3, ~@11 g4@5, ~@3 c5, ~@13 d5@3", E: "~ d4 [a3,a4] [gb3,gb4], gb5 ~",
  F: "~@8 c4@2 ~@3 e4 g4@2, e3, e4@11 c4@5, ~@2 g3@3 g3@3, ~@6 d4 ~",
  G: "[~@8 [g3,d4]@13 ~@2 f4, ~@11 g3@5 ~@27 g3@5, ~@3 d4 ~@7 bb3, ~@13 g4@29 ~@6]/3", H: "[bb3,eb4,g4]@15 ~",
  I: "[c4,f4,g4]@11 ~ [f3,c4,f4]@4", J: "[bb1,f3,bb3,d4]@3 [bb1,f3,bb3,d4], bb2",
  K: "[bb1,bb2,g3,bb3,eb4]@3 [bb1,bb2,bb3,eb4,f4]", L: "[a1,a2,a3,c4,f4]@3 [a1,a2,a3,c4,f4]",
  M: "[bb1,bb2,bb3,d4]@11 ~ [bb1,bb2,bb3,d4,f4]@4", // Bb
  N: "ab1@3 ~@3 [ab1,ab3,c4,f4]@2, [ab3,c4,f4]@3 ~, ab2@8 ab2@7 ~, ~@3 ab1@3 ~@2", // Fm
  O: "g1@3 g1 [a1,a2,a3,c4,f4]@2 [b1,b2,b3,d4,f4]@2, [g2,g3,b3,f4] ~", // F Bdim G7
  P: "c2@3 ~ [c3,g3,c4,eb4]@2 [d2,d3,bb3,d4,f4]@2, [c3,g3,c4,eb4] ~, ~@3 c2@3 ~@2", // Cm Bb Cm
  Q: "[f2,a3,c4,f4]@3 ~@4 f1, f1@5 ~ f1@4 f1@4 ~@2, ~@7 f2@5 [f2,f3,c4,f4]@4, ~@2 [a3,c4,f4] ~", // F F5 F
  R: "bb2@6 bb2@2 [bb2,f3,bb3,d4]@4 f3@2 ~ g3, [f3,bb3,d4]@2 ~ [bb3,d4], ~@7 bb2", // Bb
  S: "[gb2,gb3,a3,d4]@6 ~ gb3 ~@2 gb2@2 ~@2 gb2@2, ~@3 gb2 [gb3,a3,d4]@2 [gb3,a3,d4]@2", // D
  T: "[g3,bb3,d4]@6 ~ g3 [g3,bb3,d4]@4 ~@2 g2@2, g2@5 ~ g2@6 [g3,bb3,d4]@4", // Gm
  U: "[f2,f3]@6 f2@2 [bb3,d4]@2 ~ bb3 [bb3,g4]@4, [bb3,d4] f2, ~@8 f3 ~ g3@6", // F Bb Eb Bb
  V: "[gb2,bb3,db4,gb4]@6 ~@4 gb2 ~ gb2@4, ~@3 gb2@2 ~@3, ~@7 gb3@9, ~ [bb3,db4,gb4]", // Gb
  W: "f2@2 ~ f2!2 ~@2 f2, [bb3,d4,f4]@7 ~ f4@8, f3 ~@3 f3@8 [f3,bb3,d4]@4, ~@2 [bb3,d4] ~, ~@5 f2@2 ~", // Bb
  X: "~@2 bb2 ~ [f3,ab3,d4]@2 [bb1,f3,ab3,d4] bb1, [bb1,f3,ab3,d4]@3 bb1@3 ~@2, ~ bb2", // Ddim Bb7
  Y: "g3 eb3 [eb2,g3,bb3,eb4] [d2,f3,bb3,d4], [eb2,bb3,eb4] ~", // Eb Bb Eb5
  Z: "c2@3 ~@4 c2, [g3,c4,eb4]@3 [g3,c4,eb4], ~@6 c2@5 c2@3 ~@2, ~@8 c3@7 ~", // Cm
  AA: "~ [f2,f3,bb3,eb4], [f2,g3,bb3,eb4] ~, ~@3 f1@5", // Ebsus2 Eb
  AB: "[bb1@6 bb1 ~@7 bb4 c5 [f4,bb4,d5]@9 ~@2 c5 [bb1,bb2,f4,bb4,d5]@3 ~, bb2@7 ~, [f3,bb3,d4]@12 ~ f4@3 c5 ~@8 f4@2 ~@5, ~@2 bb1@2 bb1@3 ~, ~@13 bb4 ~@2]/2", // Bb
  AC: "~@13 d4@3, ~@11 g3@5, ~@3 g4", AD: "[[g3,d4,g4]@13 ~@2 f4, ~@27 g3@5, ~@7 bb3]/2",
  AE: "[bb1@6 bb1 ~@8 c5 [f4,bb4,d5]@9 ~@2 c5 [bb1,bb2,f4,bb4,d5]@3 ~, bb2@7 ~, [f3,bb3,d4]@12 ~ f4@3 ~@9 f4@2 ~@5, ~@2 bb1@2 bb1@3 ~, ~@14 bb4@2 c5 ~@9 bb4@2 ~@4]/2", // Bb
  AF: "d4 ~@2 d5 ~@5 gb5 ~@5 a4, ~ gb4@2 ~ gb5@2 d5@2 a5@2 ~ a4@2 d4@2 ~, ~@2 a4@3 a4@2 gb5@2 ~ d5@2 d5@2 gb4@2",
  AG: "[g4,e5]@6 g3 c4 ~ c5 g4 ~@2 c5 e5 g5, ~@8 e4@2 ~ c4@2 ~@3, ~@6 g4 ~", // C
  AH: "[a4,gb5]@5 a3 gb4 ~ gb4 d4 a3@3 a3 d4 a3, ~@7 g4@2 ~@7", AI: "[b3,g4]@6 g3 [b3,d4] g4 b3 d4 g4 a4@2 [d5,g5]@2",
  AJ: "~@2 g3 bb3 d4@2 g4@2 ~@4 g5@4, [bb4,d5,g5]@4 g5 bb4@3, ~@9 g4@2 d5@5", // Gm
  AK: "eb4@2 bb3@3 f4 g4 bb4 ~@2 bb4 ~ bb4 ~ bb4 g4, [eb5,g5,bb5]@7 ~ g5@2 ~@6, ~@9 eb5@2 g4@2 c5@2 ~", // Eb
  AL: "g5 f5 ~@2 f3 g3 bb3 c4 g5 f5 ~@2 g5 eb5 f5 g5, bb4@7 ~@5 [eb4,bb4]@4, eb4@4 ~@4 [eb4,bb4]@3 eb3@5, ~@2 eb5@5 ~@3 eb5@2 ~@4", // Eb5
  AM: "[f3,f4]@4 f3 c4 f4 g4 a4 g4 f4 ~ c5 d5!2 c5, [c5,f5,a5]@2 [c5,f5,a5] [f5,a5]", // F
  AN: "[bb2,bb3]@3 ~@4 c5 bb2@3 ~@4 c5, [f4,bb4,d5]@4 bb3@7 ~ bb3@3 ~, ~@3 bb2@5 ~@3 bb2@4 ~, ~@5 f4@7 ~ f4@2 ~, ~@6 bb4@2 [bb4,d5]@5 ~ bb4@2", // Bb
  AO: "[gb3@3 gb3 ~@5 a4 ~@4 a4 gb3 g3@3 ~@5 [bb4,d5,g5] ~ [bb4,d5]@2 ~@2 d5 g3, [a4,d5,gb5]@4 gb3@3 d5@2 ~ gb4@5 g4@5 g2@2 bb4@2 g3@6 bb4@2, ~@5 a4@3 gb3@4 gb3@3 ~@4 g3@4 g2@5 g2@3 ~, ~@6 gb5@3 ~@2 d4@2 d5@2 ~ [bb4,d5]@5 g4@7 ~ g4@2 ~]/2", // Gm Bb D Bb
  AP: "f3@2 ~@3 f4 [d5,f5] ~ [f2,bb4,d5,g5]@2 ~@4 bb4 f3, [f4,bb4,d5]@4 f2@3 f4@2 ~ f4@6, ~@3 f3@8 f2@2 d5@2 ~, ~@6 bb4@2 ~@4 [f3,bb4,f5]@3 ~", // Dm Gm7 Bb Bb5
  AQ: "[[gb2,gb3,gb4]@3 ~@9 [bb4,gb5]@2 db5 ~ f3@3 f3 ~@11 f4, [bb4,db5]@5 gb4@3 ~ gb4@5 ~ f4@5 ~ f4@2 d5@5 f4@2 ~@2, ~@3 gb2@5 gb2@5 ~@9 bb4@3 f4 bb4@3 [bb4,f5]@2 ~, ~@4 gb3@6 db5@2 ~@4 [bb4,d5,f5]@5 ~ f5@5 f2@5, ~@6 [bb4,gb5]@5 gb3@3 gb3@2 ~@4 f3@4 f3@6 f3@2]/2", // Gb Ebm Bbm Bb5 Bb Ebm
  AR: "bb2@2 ~@7 f4 [ab4,d5,f5]@2 ~@2 d5 bb2, [ab4,d5,f5]@4 bb3@11 ~, ~@3 bb2@4 [c5,f5]@2 ~@5 [ab4,f5]@2, ~@5 f4@3 bb2@4 bb2@3 ~, ~@6 ab4@3 ~@4 f4@3", // Ddim F5 Db
  AS: "[eb4,g4]@3 ~@4 eb5 ~ f5 eb5@2 ~@2 bb4@2, [bb4,eb5]@5 g4@3 [eb3,g5]@3 ~ [d3,d4,bb4,f5]@3 ~, eb3@2 ~ eb3@3 bb4@6 ~ d5@2 ~, ~@4 eb4@7 ~@5", // Eb Eb5 Eb Bb
  AT: "[c3,g4]@4 ~@3 [c3,eb5] [c3,g4]@3 ~@3 c5 [c3,eb5], c4@12 c4@3 ~, [c5,eb5]@5 g4@3 ~@3 c3@4 ~, ~@4 c3@2 c5@2 [c5,eb5]@5 g4@2 ~", // C5 Cm C5 Cm
  AU: "g4@4 f2@2 g4 ~ [f4,bb4,eb5]@2 [f4,bb4,eb5] ~ [f4,bb4,eb5]@4, [f3,bb4,eb5]@7 f2@4 f2@5, ~ f3", // Ebsus2
  AV: "[bb2,bb3,bb4,d5]@2 ~@5 c5 ~@7 f4, f5 ~ [bb4,d5,f5]@3 f4@3 [bb2,f5]@6 bb2@2, ~@3 bb2@3 bb4@2 bb4@2 bb4@3 [bb4,f5]@3, ~@4 bb3@7 bb3@4 ~, ~@9 f4@2 ~ f4@2 ~@2", // Bb Bb5
  AW: "[~@6 d5 ~ [gb2,d5,a5]@2 ~@2 a5 ~ d5 ~ g3@3 ~@3 [bb4,g5] ~@3 bb4 ~@3 bb4 [g3,g4], gb3@6 gb5@2 ~@4 [gb3,d5]@2 gb3@2 ~@3 g3@12 ~, [d5,gb5]@2 gb2@2 a4@4 ~@2 a4@4 ~ g4@5 g2@3 [bb4,d5,g5]@2 g4@4 d5@2 ~, ~ a4@2 [d5,a5]@2 gb2@2 gb3@4 gb2@2 gb5@2 ~ [bb4,d5]@5 g4@3 g2@3 g2@4 ~, ~@28 [bb4,g5]@3 ~]/2", // D Eb G D Gm D5 Bb Eb
  AX: "[f4,bb4,d5]@2 f4@2 ~@2 d5!2 ~@6 [f3,bb4] f4, f3@6 bb4@5 f2@2 d5@2 ~, f2@4 f2@3 f3@7 ~@2, ~@2 [bb4,d5]@3 f4@9 ~@2, ~@8 f2 f5 d5@2 [bb4,f5]@2 ~@2", // Bb Bb5 Bb Bb5
  AY: "~@2 gb4@2 ~@2 gb4@2 ~@3 bb4@2 gb5 ~ bb4, gb3, [bb4,db5,gb5]@4 gb2@4 gb2@5 [gb2,gb4,bb4]@3, ~@6 [bb4,db5]@3 gb4@4 ~@3, ~@10 gb5@3 ~ db5@2", // Gb Bbm
  AZ: "~ [f2,f3]@3 ~@3 [bb4,d5,f5]@2 ~@2 [bb4,d5,g5] ~@3 bb4, f4@4 f2@5 f2@3 f2@2 ~@2, ~ [bb4,d5,f5]@4 f3@8 [f3,f4,bb4,f5]@3, ~@6 f4@3 ~ f4@2 ~@2 d5@2", // F Bb Gm Bb Bb5
  BA: "~ bb2@3 ~@3 [ab4,d5] ~@7 ab4, f4@4 bb2@5 bb2@3 f5@2 d5@2, ~ [bb3,ab4,d5,f5]@4 bb3@11, ~@6 f4@2 [f4,ab4,d5]@2 f4@5 ~, ~@11 ab4@2 bb2@2 ~", // Abdim Bb7 Ddim
  BB: "bb2 [eb3,g4,bb4,eb5]@2 [g4,bb4,eb5] eb3 eb5 f5 eb5 f5 g5 f5 eb5 d5 ~@2 bb4, ~@5 [eb3,g4,bb4]@4 [eb3,g4,bb4]@3 [bb4,f5]@2 d5@2, ~@13 d4@3", // Eb Bb5
  BC: "~@5 c3@5 ~@5 c5, ~ c4@11 [c5,eb5]@2 g4@2, ~ [g4,c5,eb5]@9 c3@6, ~ g3@3, ~@11 g4@2 c4@3", // Cm
  BD: "[c3 ~@6 bb4 eb5 [f3,f4,bb4,eb5]@2 [f4,bb4,eb5] ~@4 f2 d5 bb4 f4@3 bb4 c5 d5 f5 d5 bb4@2 d5 f4 bb4, g4@5 f2@3 f2@4 f2@4 ~ [bb2,f3]@7 ~ [bb2,f3]@7, ~ [f3,bb4,eb5]@7 ~@5 [f3,f5]@4 ~@15, ~@6 g4@2 ~@5 bb4@2 bb4@2 ~@15, ~@14 eb5@3 ~@15]/2", // Ebsus2 Bb5 Ebsus2 F
  BE: "d5 gb5 d5 a4@3 a4 d5 gb5 a5@4 gb5 a4 d5, ~ [d3,a3]@7 ~ [d3,a3]@7", // D5
  BF: "gb5 g5 eb5 bb4@3 f3 g3 bb3 eb4 ~@2 eb5 g5 f5 eb5, ~ [eb3,bb3]@7 ~ [eb3,bb3]@2 bb4@2 ~@3, ~@10 g4@2 ~ [d3,bb3]@3", // Eb5 Gm
  BG: "d5 eb5 c5 g4@3 g4 ~ eb5 f4 g4 a4 bb4 c5 d5 eb5, ~ [c3,g3]@6 c5@2 [f2,c3]@7", // C5 F5
  BH: "f5 d5 bb4 f4@3 bb4 c5 d5 f5 d5 bb4@2 d5 f4 bb4, ~ [bb2,f3]@7 ~ [bb2,f3]@7", // Bb5
  BI: "gb5 g5 eb5 bb4@3 f3 g3 bb3 eb4 ~@2 eb5 g5 f5 eb5, ~ [eb3,bb3]@6 ~@2 [eb3,bb3]@2 bb4@2 ~@3, ~@10 g4@2 ~ [d3,bb3]@3", // Eb5 Gm
  BJ: "f5 [eb2,eb3,g4,bb4,eb5]@8 [eb2,eb3,g4,bb4,eb5]@4 [f2,f3,a4,c5,f5]@3", BK: "[~ [bb2,bb3,f4,bb4,f5]@17 ~@14]/2",
})).s("gm_piano").gain(0.59).pan(0.6)

// chords · epiano2 · "E.Piano 1"
const epiano2 = note(`<
  ~@8 A@2 B C D E F G H I J K L M N J H O P H Q R S T U V H K A@2 B C D E F G H I J K L M N J H O P H Q R S T U V H K
  A@2 B C D E F G H O P H Q R S T U V H O P H Q R S T U V W X Y Z W X Y Z W X Y Z W X Y Z W X Y Z W X Y Z W X Y Z W X Y
  Z AA AB@2
>`.pickRestart({
  A: "[[gb3,a3]@16 g3@3 ~@9 e4@4, d4@7 ~, ~ e3, ~@16 c4@8 c4@7 ~, ~@5 g3@3]/2", // Gbm
  B: "d4@3 ~@9 gb3@3 ~, gb4@15 ~, a3!2, ~ d4@3", C: "b3@3 ~@9 g4@4, g3@15 ~, d4@8 d4@7 ~, ~@4 b3@11 ~",
  D: "bb3@4 ~@8 g4@3 ~, g4@11 ~@5, d4@6 bb3@9 ~, ~@4 g3@11 ~, ~@8 d4@7 ~",
  E: "g4 ~@2 bb3, bb4@15 ~, eb4@7 ~ eb4@7 ~, ~@4 g4@11 ~", F: "g4@3 ~@9 bb3@3 ~, bb3@11 ~@5, eb4!2, ~@4 g4@11 ~",
  G: "f4@4 ~@8 a3@3 ~, g4@7 ~, c4!2, ~@4 f4@11 ~", H: "[f3,bb3,d4]@4 ~@2 [f3,bb3,d4] ~ [f3,bb3,d4]@7 ~",
  I: "[g3,bb3,eb4]@4 ~@2 [g3,bb3,eb4] ~ [g3,bb3,eb4]@7 ~", J: "[a3,c4,f4]@4 ~@2 [a3,c4,f4] ~ [a3,c4,f4]@8",
  K: "[f3,bb3,d4]@4 ~@2 [f3,bb3,d4] ~ [f3,bb3,d4]@8", L: "[ab3,c4,f4]@4 ~@2 [ab3,c4,f4] ~ [ab3,c4,f4]@7 ~",
  M: "[g3,b3,f4]@5 ~ [g3,b3,f4] ~ [a3,c4,f4]@4 [b3,d4,f4]@3 ~", // G7 F Bdim
  N: "[g3,c4,eb4]@4 ~@2 [g3,c4,eb4] ~ [g3,c4,eb4]@4 [bb3,d4,f4]@4", // Cm Bb
  O: "[gb3,a3,d4]@4 ~@2 [gb3,a3,d4] ~ [gb3,a3,d4]@7 ~", P: "[g3,bb3,d4]@4 ~@2 [g3,bb3,d4] ~ [g3,bb3,d4]@7 ~",
  Q: "[bb3,db4,gb4]@4 ~@2 [bb3,db4,gb4] ~ [bb3,db4,gb4]@7 ~", R: "[bb3,d4,f4]@4 ~@2 [bb3,d4,f4] ~ [bb3,d4,f4]@7 ~",
  S: "[ab3,d4,f4]@4 ~@2 [ab3,d4,f4] ~ [ab3,d4,f4]@7 ~", // Ddim
  T: "[g3,bb3,eb4]@4 ~@2 [g3,bb3,eb4] ~ [g3,bb3,eb4]@3 ~ [bb3,d4,f4]@4", U: "[g3,c4,eb4]@15 ~",
  V: "[g3,bb3,eb4]@7 ~ [f3,bb3,eb4]@8", // Eb Ebsus2
  W: "[bb2,d4,f4,bb4] ~@3 [bb2,d4,f4,bb4] ~@3 [bb2,d4,f4,bb4] ~@3 [bb2,d4,f4,bb4] ~@3", // Bb
  X: "[d3,d4,gb4,a4] ~@3 [d3,d4,gb4,a4] ~@3 [d3,d4,gb4,a4] ~@3 [d3,d4,gb4,a4] ~@3", // D
  Y: "[eb3,eb4,g4,bb4] ~@3 [eb3,eb4,g4,bb4] ~@3 [eb3,eb4,g4,bb4] ~@3 [eb3,eb4,g4,bb4] ~@3", // Eb
  Z: "[c3,c4,eb4,g4,bb4] ~@3 [c3,c4,eb4,g4,bb4] ~@3 [f3,c4,f4,a4] ~@3 [f3,c4,f4,a4] ~@3", // Cm7 F
  AA: "~@2 g4@6 ~ bb4 ~ bb4 ~ c5 a4 c5, [eb3,eb5]@2 [eb3,eb5] [f3,f5], ~ bb4@7 ~@2 g4@2 ~@4", // Eb F
  AB: "[[bb2,bb3,f4,bb4,d5]@9 ~@7]/2", // Bb
})).s("gm_epiano2").gain(0.32)

// chords · pad warm · "Warm Pad"
const pad_warm = note("<~@36 A B A C@2 D@2 E F@2 G@2 E H I@2 ~@56 J K L M N O L M J K L M N O L M P Q ~>".pickRestart({
  A: "[d6,gb6]", B: "[c6,e6]", C: "[d6,g6]", D: "[eb6,g6]/2", E: "[c6,f6]", F: "[d6,f6]/2", G: "[c6 d6, f6@31 ~]/2",
  H: "b5@2 c6 d6, f6", I: "[eb6 f6, c6]/2", J: "[d5,f5]@3 [d5,f5]", K: "[d5,gb5]@11 ~ [d5,gb5]@4",
  L: "[eb5,g5]@3 [d5,g5]", M: "[c5,g5] [c5,f5]", N: "[d5,f5]@11 ~ [d5,f5]@4", O: "[d5,gb5]@3 [d5,gb5]",
  P: "[eb5,f5]@7 ~ [eb5,f5]@3 ~ [c5,f5]@4", Q: "[d5,f5]",
})).s("gm_pad_warm").gain(0.2).pan(0.3)

// chords · pad new age · "Fantasia"
const pad_new_age = note(`<
  A B A B A B A B A B A C@4 D E F D G H I J K G A L E M E N O P Q R@2 A B A C@4 D E F D G H I J K G A L E M E N O P Q
  R@2 A B A C@4 D G A L E M E N O P Q G A L E M E N O P Q S T U V S W U X S T U V S W U X S T U V S W U X S T U V S W U
  X Y S ~
>`.pickRestart({
  A: "[a3,d4,gb4]", B: "[g3,c4,e4]", C: "[b3 ~ eb4@2, g4, d4 ~, ~ bb3@3]/4", D: "[a3,c4,f4]", E: "[bb3,d4,f4]",
  F: "[g3,bb3,eb4]", G: "[f3,bb3,d4]", H: "[ab3,c4,f4]", I: "[g3,b3]@2 [a3,c4] [b3,d4], f4",
  J: "[g3,c4,eb4]@3 [bb3,d4,f4]", K: "f4@3 eb4, [a3,c4]", L: "[bb3,d4,g4]", M: "[bb3,db4,gb4]", N: "[ab3,d4,f4]",
  O: "[bb3,eb4,g4]@3 [bb3,d4,f4]", P: "[g3,c4,eb4]", Q: "g3 f3, [bb3,eb4]", R: "[f3,bb3,d4]/2", S: "[f4,bb4,d5]",
  T: "[gb4,a4,d5]@15 ~", U: "[g4,bb4,eb5]", V: "[g4,c5,eb5] [a4,c5,f5]", W: "[gb4,a4,d5]", X: "[g4,c5,eb5] [f4,a4,c5]",
  Y: "[eb4,g4,bb4]@8 [eb4,g4,bb4]@3 ~ [f4,a4,c5]@4", // Eb F
})).s("gm_pad_new_age").gain(0.2).pan(0.7)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  A B ~@2 C D E F E G H I@4 J ~@8 K A L@2 M@2 N O P@2 Q@2 ~@16 R E S@2 T R U V W@2 X@2 Y Z Y AA@2 AB@2 AC R E S@2 T R U
  V W@2 R E S@2 T R U V W@2 AD AE AF AG AD AE AF AG AD AE AF AG AD AE AF AG AD AE AF AG AD AE AF AG AD AE AF AG AD AE AF
  AG AH AD ~
>`.pickRestart({
  A: "gb4", B: "~@5 g6 g5 g4, g4@7 ~", C: "[a4,gb5]@3 [gb4,d5]", D: "[g4,e5,c6]", E: "[a4,gb5]", F: "[c4,g4,c5]",
  G: "[g4,g5]", H: "gb5", I: "[b5 ~ eb5@2, d5 ~, ~ bb5@3]/4", J: "c5", K: "f4", L: "g4", M: "[gb4 f4, bb3@31 ~]/2",
  N: "[bb3,f4]", O: "g4@3 f4, bb3", P: "[g3 f3, eb4]/2", Q: "d4/2", R: "[bb4,f5]", S: "[bb4,g5]/2", T: "[bb4,gb5]",
  U: "[ab4,f5]", V: "[g4,eb5]@3 [f4,d5]", W: "[g4@4 ~@3 eb5, eb5@27 ~@5, ~ [f4,bb4]]/2", X: "[bb4,d5]/2", Y: "[d5,gb5]",
  Z: "[e5,g5]", AA: "[d5,g5]", AB: "[eb5,g5]", AC: "[c5,a5]", AD: "[d5,bb5]", AE: "[d5,a5]", AF: "[eb5,bb5]",
  AG: "[c5,bb5] [c5,a5]", AH: "[bb4,g5]@2 [bb4,g5] [c5,a5]",
})).s("gm_string_ensemble_1").gain(0.27)

// chords · string ensemble 1 · "Strings" · soft notes
const string_ensemble_1_soft = note("<~@2 A B ~@2 C ~@2 D E F@2 G@2 H ~@18 I@2 ~@26 J@2 ~@63>".pickRestart({
  A: "gb4", B: "[g4,d6,g6]", C: "d5", D: "c5", E: "a4", F: "g4/2", G: "bb4/2", H: "[f5,c6]", I: "bb3/2", J: "d7/2",
})).s("gm_string_ensemble_1").gain(0.18)

// drums · kick
const kick = s("bd").struct("<[x ~@2 x!2 ~@3]!36 ~@8 [x ~@2 x!2 ~@3]!80 [x ~ x!2] x!2>").gain(0.64)

// drums · rim
const rim = s("rim").struct("<~@36 [x!2 ~@2]!8 ~@83>").gain(0.43)

// drums · snare
const snare = s("sd").struct(`<
  ~@15 A B@20 ~@8 B@7 C B@11 D B@7 C B@23 C B@3 C B@3 C B@7 C B@3 C B@3 C B@4 E F G
>`.pickRestart({
  A: "~@12 x!2 ~@2", B: "~ x ~ x", C: "~@4 x ~@3 x ~@3 x!2 ~@2", D: "~ x!3", E: "x ~ x!2", F: "x ~@14 x", G: "x",
})).gain(0.57)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@15 A ~@7 B ~@9 A ~ C ~@7 D ~@7 E ~@9 E ~ E ~@7 E ~@7 C ~@9 C ~@5 E ~@3 E ~@3 E ~@7 E ~@3 E ~@3 E ~@7
>`.pickRestart({
  A: "~@7 x", B: "~@10 x!2 ~@4", C: "~@9 x ~ x ~@2 x ~", D: "~@12 x!3 ~", E: "~@11 x ~@2 x ~",
})).gain(0.5)

// drums · hihat
const hihat = s("hh").struct("<~@16 [x!16]!20 [~ x ~ x]!8 [x!16]!8 [x!12 ~ x!3]!72 ~@3>").gain(0.21)

// drums · mid tom
const mid_tom = s("mt").struct("<~@43 [~@5 x ~@2] ~@19 [~@10 x ~@2 x ~@2] ~@63>").gain(0.5)

// drums · open hat
const open_hat = s("oh").struct("<~@52 [~@3 x]!72 ~@3>").gain(0.36)

// … 23 more lines

More by Elton John