Strudelify

Madman Across the Water

Elton John

KeyA minorTempo131 bpm
0:00/0:00
// Madman Across the Water — John Elton
// 131 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 23, 4/4 at bar 24) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 208 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(131/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 · "A.PIANO 2"
const piano = note(`<
  ~@6 A@2 B@2 ~ C ~ D E F G H I J K L M@4 N O P@3 Q R S T U V@2 W X Y@5 Z AA AB AC AD@3 AE AF AG AH AI AJ@2 AK AL AM@2
  AN AO AP@2 AQ@2 AR AS AT AU AV AW AX AY AZ AY BA@2 BB@2 BC@2 BD AY BE@2 BF@2 BG@2 BH@2 BA@2 BG@2 BC@2 BI@2 BJ BK BL BM
  BN@2 BO@2 BP@2 BG@2 BQ@2 BR@2 BS@2 BT@2 BU@2 BC@2 BV BW BV BX BY BZ BV CA CB CC CB CD BV CE CF CG ~@3 CH CI CJ CK CL
  CM CN CO@2 CP CQ@2 CR CS@2 CT@2 CU CV CW CX@4 CY CZ@2 DA DB@3 DC@2 DD DE DF@2 DG DH DI DJ@2 DK DL DM@2 DN@2 DO DP DQ
  DR AV DS DT DU DV DW DX AY DY@2
>`.pickRestart({
  A: "[c4@21 ~@7 e4@3 ~]/2", B: "[c4@5 ~@2 g3]/2", C: "~@3 [b3,d4]@5, ~@6 g3@5 ~@5", D: "~@3 d4@5",
  E: "[a3,b3,c4,e4]!2", F: "[g3,a3,b3,d4]@7 ~ [g3,a3,b3,d4]@7 ~", G: "[f3,g3,a3,c4]@7 ~ f3@3 ~ f3@4, ~ [g3,a3,c4]",
  H: "~@2 [f3,g3,a3,d4]@5 ~ f3@2 ~@2 f3@2 ~@2, ~@4 [g3,a3,c4]@3 ~", I: "[g3,c4,e4]@7 ~@5 c3@4, ~@8 [g3,c4,e4]@7 ~",
  J: "[f#3,a3,d4]@7 ~ [a3,d4]@6 d3@2", K: "[f#3,a3,d4]@6 ~@2 [a3,d4]@3 ~ [f#3,a3,d4]@3 ~, ~@3 d3@3 ~@2",
  L: "[f3,a3,c4]@2 ~@2 [g3,b3,d4]@2 ~@2 [a3,b3,c4,e4]@7 ~", // F G Am
  M: "[[a3,b3,c4,e4]@10 ~@4 [g3,b3,c4,d4]@6 [g3,b3,c4,d4]@3 ~ [a3,b3,c4,e4]@16 ~@6 [g3,b3,c4,d4]@6 [g3,b3,c4,d4]@4 [a3,b3,c4]@7 ~]/4", // Am G Am G Am
  N: "[a3,b3,c4,e4]@8 [g3,b3,d4]@7 ~", O: "[g3,b3,d4]@8 [f3,a3,c4]@7 ~",
  P: "[f3@3 ~ f3@5 ~@5 [a3,c4]@5 ~ [f3,a3,c4]@4 [e3,g3,c4]@6 ~@2 [g3,c4,e4]@6 c3@2 [f#3,a3,d4]@7 ~, [a3,c4]@12 f3@7 ~@11 c3@6 ~@12]/3", // Am F C D Am
  Q: "~@4 d3 ~ d3 ~ [f#3,a3,d4]@6 d3@2, [f#3,a3,d4] ~", // D
  R: "f#3@2 ~@2 f#3@3 ~ f3@2 ~@2 f3@3 ~, d4@7 ~@9, ~@2 a3@5 ~ [a3,c4]@7 ~, ~@4 d3 ~@11", // Am
  S: "g3@2 ~@2 g3@3 ~ [a3,b3,c4]@8, [b3,d4]@7 ~@9", T: "[a3,b3,c4]@6 ~ [g3,b3,d4,g4]",
  U: "~ [a3,b3,d4,f#4]@2 ~ [a3,b3,c4,e4]@4", V: "[[a3,b3,c4,e4]@2 ~@12 [g3,b3,d4,e4]@9 ~ [a3,b3,c4,e4]@7 ~]/2",
  W: "a3@3 ~ [a3,b3]@3 ~ [g3,b3,d4]@6 ~@2, [c4,e4] ~", X: "[g3,b3,d4]@3 ~ [g3,b3,d4]@4 [f3,a3,c4]@6 ~@2",
  Y: "[f3@2 ~@2 f3@6 ~@2 f3 ~ [f3,a3,c4]@5 ~ [f3,a3,c4]@3 ~ [e3,g3,c4]@6 ~@2 [e3,g3,c4]@6 c3@2 ~@8 f#3@3 ~@3 d3@2 ~@4 f#3@2 [f#3,a3,d4]@4 d3@2 [f#3,a3,d4]@3 ~ [f3,a3,c4]@5 ~@3, [a3,c4]@12 ~@18 c3@7 ~@3 [f#3,a3,d4]@8 [a3,d4]@12 ~@20, ~@46 d3@6 f#3@6 d3@7 ~@15]/5", // F C D F Am D D5
  Z: "[g3,b3,d4]@7 ~ [a3,c4,e4]@7 ~", AA: "a3@2 ~@2 a3@5 ~ a3@6, [c4,e4]", AB: "~@4 [a3,c4,e4]@4 [f3,a3,c4]@7 ~",
  AC: "[g3,b3,d4]@7 ~ [a3,c4,e4]@8", // G Am
  AD: "[~@4 a3@7 ~ a3 ~ [a3,c4,e4]@5 ~ [a3,c4,e4]@3 ~@9 g3@3 ~ g3@3 ~ [g3,b3,d4]@7 ~, [c4,e4]@12 ~@12 [g3,c4,e4]@8 [c4,e4]@7 ~@9, ~@30 c3@7 ~@11]/3", // Am G C
  AE: "[g3,b3,d4]@7 ~ [e3,a3,b3,d4]@7 ~", AF: "e3@3 ~ e3@3 ~ [e3,g#3,b3,d4]@7 ~, [a3,b3,d4] ~",
  AG: "[e3,g#3,b3,d4]@7 ~ [a3,b3,c4,e4]@3 ~@5", AH: "[c3,g3,c4,e4] ~ [d3,f3,a3,d4] ~",
  AI: "~@2 [g3,b3,d4]@5 ~ [a3,c#4,e4]@8", // G A
  AJ: "[[c#4,e4]@12 a3@2 [a3,c#4,e4]@5 ~ [a3,c#4,e4]@3 ~ [g3,c4,e4]@6 ~@2, a3@9 ~@23]/2", // C#m A C
  AK: "[a3,d4]@7 ~ [f3,a3,c4]@7 ~, f#3@5 ~@11", AL: "[g3,b3,d4]@7 ~ [a3,b3,c4,e4]@8",
  AM: "[[c4,e4]@12 a3 ~ [a3,b3,c4,e4]@6 [a3,b3,c4,e4]@3 ~ [c4,e4]@4 ~@4, [a3,b3]@10 ~@14 g3@7 ~]/2", // C Am C Asus2
  AN: "[f#3,a3,d4]@7 ~ [f3,a3,c4]@7 ~", AO: "[g3,a3,b3,d4]@7 ~ [a3,b3,c4,e4]@8",
  AP: "[[a3,b3,c4,e4]@12 a3@2 [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@4 [f3,a3,c4]@7 ~]/2", // Am F
  AQ: "[f3@3 ~ f3@5 ~@3 f3 ~ [f3,a3,c4]@5 ~ [f3,a3,c4]@3 ~ [e3,a3,b3,d4]@7 ~, [a3,c4]@13 ~@19]/2", // F Esus4 Am
  AR: "e3@3 ~ e3@3 ~ [e3,g#3,b3,d4]@7 ~, [a3,b3,d4]@7 ~@9", AS: "[e3,g#3,b3,d4]@7 ~ [a3,c4,e4]@3 ~@5",
  AT: "~@2 [c2,c3,g3,c4,e4] ~", AU: "[a2,d3]@2 [c3,f3]@6 [g3,b3,d4]@7 ~", AV: "[a3,b3,c4,e4]@7 ~ [a3,b3,c4,e4]@8",
  AW: "~@6 [b3,c4,d4,g4]@3 ~ [a3,b3,f#4]@5 ~", AX: "[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@3 ~@3 [a3,b3,c4,e4] ~",
  AY: "~@6 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~", AZ: "[a3,b3,c4,e4]@3 ~ [b3,c4,e4]@2 ~ [b3,c4,e4], ~@4 a3 ~ a3@2",
  BA: "[[a3,b3,c4,e4]@7 ~ a3@2 ~@2 a3@7 ~@3 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~, ~@8 [b3,c4,e4]@11 ~@13]/2", // Am G Bm7 Cmaj7
  BB: "[[a3,b3,c4,e4]@6 ~@2 a3@2 ~@2 a3@6 ~@4 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@4 ~@2, ~@4 [b3,c4,e4]@5 ~@7]/2", // Am G Bm7 Cmaj7
  BC: "[[a3,b3,c4,e4]@6 ~@2 a3@2 ~@2 a3@6 ~@4 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~, ~@4 [b3,c4,e4]@5 ~@7]/2", // Am G Bm7 Cmaj7
  BD: "[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@3 ~ [a3,b3,c4,e4]@4", // Am
  BE: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@11 ~@3 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~]/2", // Am G Bm7
  BF: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@10 ~@4 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@6]/2", // Am G Bm7
  BG: "[[a3,b3,c4,e4]@6 ~@2 a3@2 ~@2 a3@7 ~@3 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~, ~@8 [b3,c4,e4]@11 ~@13]/2", // Am G Bm7 Cmaj7
  BH: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@12 ~@2 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~]/2", // Am G Bm7
  BI: "[[a3,b3,c4,e4]@7 ~ a3@2 ~@2 a3@6 ~@4 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~, ~@4 [b3,c4,e4]@5 ~@7]/2", // Am G Bm7 Cmaj7
  BJ: "[a3,b3,c4,e4]@4 [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@6", BK: "~@6 [b3,c4,d4,g4]@4 [a3,b3,d4,f#4]@5 ~",
  BL: "[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@2", // Am
  BM: "~@2 [b3,c4,d4,g4]@3 ~ [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~", // G Bm7
  BN: "[[a3,b3,c4,e4]@6 ~@2 a3 ~@3 a3@7 ~@3 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~, ~@8 [b3,c4,e4]@11 ~@13]/2", // Am G Bm7 Cmaj7
  BO: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3]@3 ~ a3@6 ~@4 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~, ~@4 [c4,e4]@5 ~@7]/2", // Am Asus2 G Bm7 C
  BP: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3]@3 ~ a3@6 ~@4 [b3,c4,d4,g4]@4 [a3,b3,d4,f#4]@5 ~, ~@4 [c4,e4]@5 ~@7]/2", // Am Asus2 G Bm7 C
  BQ: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3,e4]@3 ~ a3@6 ~@4 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~, ~@4 c4@5 ~@7]/2", // Am Asus2 G Bm7
  BR: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@3 ~ [a3,b3,c4,e4]@7 ~@3 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~]/2", // Am G Bm7
  BS: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3]@3 ~ a3@7 ~@3 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~, ~@8 [c4,e4]@11 ~@13]/2", // Am Asus2 G Bm7 C
  BT: "[[a3,b3,c4,e4]@6 ~@2 a3@2 ~@2 a3@6 ~@4 [b3,c4,d4,g4]@4 [a3,b3,d4,f#4]@5 ~, ~@4 [b3,c4,e4]@5 ~@7]/2", // Am G Bm7 Cmaj7
  BU: "[[a3,b3,c4,e4]@7 ~ a3@2 ~@2 a3@6 ~@4 [b3,c4,d4,g4]@4 [a3,b3,d4,f#4]@5 ~, ~@4 [b3,c4,e4]@5 ~@7]/2", // Am G Bm7 Cmaj7
  BV: "[a3,b3,c4]@7 ~ [a3,b3,c4]@2 ~@6", BW: "~@6 [b3,c4,d4,g4]@6 [a3,b3,f#4]@3 ~",
  BX: "~@6 [b3,c4,d4,g4]@6 [b3,d4,f#4]@3 ~", BY: "[a3,c4]@7 ~ [a3,b3,c4]@2 ~@6", BZ: "~@6 [b3,c4,d4,g4]@6 [a3,b3]@3 ~",
  CA: "~@6 [b3,c4,d4,g4]@6 [b3,f#4]@3 ~", CB: "c4@7 ~ [a3,b3,c4]@2 ~@6", CC: "~@6 [c4,d4,g4]@5 ~ [b3,d4]@3 ~",
  CD: "~@6 [b3,d4]@6 [b3,d4]@3 ~, ~@3 g4@2 ~@3", CE: "~@3 [b3,c4,d4]@3 f#4 ~, ~@3 g4@2 ~@3", CF: "c4@7 ~ [a3,c4]@2 ~@6",
  CG: "~@6 [c4,d4]@5 ~ b3@3 ~", CH: "~@6 [b3,d4]@6 b3@3 ~, ~@3 [c4,g4]@2 ~@3", CI: "a4@7 ~ [e4,a4,b4] ~@7, ~@4 e5 ~@3",
  CJ: "~@6 [b3,c4,d4,g4]@5 ~ [a3,b3]@3 ~", CK: "[b3,c4,e4,g4]@7 ~ [b3,c4,e4,g4]@2 ~@6", CL: "~@6 [b3,c4,d4,g4]@9 ~",
  CM: "[b3,c4]@8 a3@2 c4@2 [a3,e4]@3 ~, e4@5 ~@3, a3@3 ~@5", // Cmaj7 A5
  CN: "~@4 b3@2 d4 ~ [g3,b3,g4]@4 [g3,b3,d4]@4, d4 ~@3, b3 ~@7, ~ g3@5 ~@10", // G
  CO: "[a3@2 ~@4 c4@2 [f3,a3]@3 ~@3 [a3,c4]@4 ~@4 c4@2 [a3,f4]@4 [f3,a3,c4]@3 ~, c4@2 a3@2 f4@3 ~@3 a3@2 ~@4, ~@2 f3@5 ~@5 f3@5 ~ f3@5 ~ f3@2 ~@6]/2", // F Am Dm F
  CP: "g3 ~ g3 ~@3 c4 c3, [c4,e4]@8 [g3,e4]@7 ~, ~@6 c3@7 ~@3", // C
  CQ: "[[a3,d4]@6 ~@8 d3 ~@5 f#3 ~ [f#3,a3]@2 ~@2 f#3@2 a3@2 d4 ~, ~@6 d3@6 a3@7 ~@13, ~@8 d4@13 ~ d4@6 ~@4, ~@8 f#3@10 d3@5 ~ d3@4 ~@4]/2", // D5 F#m
  CR: "[f3,a3,c4]@3 ~ [g3,b3,d4]@3 ~ [a3,b3,c4,e4]@7 ~", // F G Am
  CS: "[[a3,b3,c4,e4]@3 ~@11 [b3,c4,d4,g4]@5 ~ [a3,b3,d4,f#4]@3 ~ a3@4 a3@2 ~@2, ~@24 [b3,c4,e4]@7 ~]/2", // Am G Bm7 Cmaj7
  CT: "[[a3,b3,c4,e4]@3 ~@11 [a3,b3,d4,e4]@9 ~ a3@4 ~@2 a3@2, ~@3 [b3,c4,e4]]/2", // Am Asus4 Cmaj7
  CU: "~@2 a3@2 b3@2 a3 ~@5 g3@3 ~, ~ [c4,e4]@3 ~@4, ~@2 b3 ~@5 [b3,d4]@7 ~", // C Bm
  CV: "g3 ~@3 g3@3 ~@5 f3@3 ~, [b3,d4]@7 ~ [a3,c4]@7 ~", CW: "a3@2 f3@3 ~ f3@2 ~@2 f3@5 ~, c4@5 ~ [a3,c4]@9 ~",
  CX: "[[f3,a3,c4]@3 ~ [f3,a3,c4]@4 ~@8 e3@2 ~@2 e3@2 c3@2 [f#3,a3,d4]@6 ~@2 f#3@2 ~@4 d3@2 ~@4 f#3 ~@5 d3 ~ [f#3,a3,d4]@3 ~ f3@3 ~ f3@4, ~@8 [e3,g3,c4]@8 [g3,c4]@7 ~@9 [a3,d4]@11 ~@3 [f#3,a3,d4]@6 ~@4 [a3,c4]@7 ~, ~@14 c3@6 ~@10 d3@6 f#3@5 ~ d3@4 ~@18]/4", // F D C C5 D5 D Am
  CY: "[g3,b3,d4]@7 ~ a3@3 ~ a3@3 ~, ~ [b3,c4,e4]", // G Cmaj7
  CZ: "[[a3,b3]@3 ~ a3@5 ~@3 a3 ~ [a3,b3,c4,e4]@5 ~ [a3,c4,e4]@4 f3@3 ~ f3@3 ~, [c4,e4]@6 ~@4 b3 ~ [a3,c4]@4]/2", // Asus2 Am C Am
  DA: "g3@2 ~@2 g3@3 ~ a3@3 ~ a3@3 ~, [b3,d4]@7 ~ [b3,c4,e4]@7 ~", // Bm Cmaj7
  DB: "[a3 ~@3 a3@5 ~ [a3,b3,c4,e4]@4 [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@3 ~ [g3,c4,e4]@6 ~@2 g3@2 ~@2 g3@3 ~ g3@3 ~ g3@3 ~, [b3,c4,e4]@3 ~@7 c3@2 ~@4, ~@32 [c4,e4]@8 [b3,d4]@7 ~]/3", // Am C Cmaj7 C Bm
  DC: "[g3@2 ~@2 g3@3 ~ [a3,b3,e4]@5 ~@5 [a3,b3,e4]@4 e3 ~ [g#3,b3,e4]@6 e3@2, [b3,d4]@7 ~@7 [a3,b3,e4]@4 ~@14, ~@16 e3@5 ~@11]/2", // Asus2 E Bm Asus2
  DD: "[g#3,b3,d4,e4]@4 [e3,g#3,b3,d4,e4]@3 ~ [c3,a3,c4,e4]@3 ~@5", DE: "[g3,b3,e4] ~ [f3,a3,c4,d4] ~",
  DF: "[e3@2 [g3,b3,d4]@6 a3@4 ~@2 a3@3 ~ a3@3 ~ a3@3 ~ a3@4 ~@2, ~@4 [b3,c4,e4]@6 ~ [b3,c4,e4]@4 ~]/2", // G Cmaj7
  DG: "~@2 [a3,b3,c4,e4]@5 ~@7 c3@2, ~ [g3,c4,e4]", DH: "~@4 d3@2 ~@2 f3@2 ~@2 f3@3 ~, [f#3,a3,d4]@7 ~ [a3,c4]@7 ~",
  DI: "g3@2 ~@2 g3@4 [a3,b3,c4,e4]@7 ~, [b3,d4]@7 ~@9", // Am Bm
  DJ: "[[a3,b3]@3 ~ a3@5 ~@3 a3 ~ [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@3 ~@7 c3@2, [c4,e4]@13 ~@11 [g3,c4,e4]@8]/2", // Asus2 Am C
  DK: "~@4 d3 ~@3 f3@2 ~@2 f3@3 ~, [f#3,a3,d4]@7 ~ [a3,c4]@7 ~", DL: "g3@2 ~@2 g3@3 ~ [a3,b3,c4,e4]@7 ~, [b3,d4]@7 ~@9",
  DM: "[a3@3 ~ a3@6 ~@2 a3 ~ [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@4 [a3,c4]@8, [b3,c4,e4]@6 ~@6 f3@3 ~]/2", // Am Cmaj7
  DN: "[f3@2 ~@2 f3@6 ~@2 f3 ~ [f3,a3,c4]@5 ~ [f3,a3,c4]@3 ~ [a3,b3,d4]@7 ~, c4@13 ~@19, a3@5 ~@11]/2", // F Bm7
  DO: "[a3,b3,d4]@15 ~", DP: "[e3,g#3,b3,d4]@7 ~ [a3,b3,c4,e4]@5 ~@3", DQ: "~@4 [c3,g3,c4,e4]@3 ~",
  DR: "~@2 [f3,a3,c4]@5 ~ [g3,a3,b3,d4]@7 ~", DS: "~@6 [b3,c4,d4,g4]@5 ~ [a3,b3,d4,f#4]@3 ~",
  DT: "[a3,b3,c4,e4]@3 ~ [a3,b3,c4,e4]@3 ~", DU: "~@6 [b3,c4,d4]@6 [a3,b3,d4,f#4]@3 ~, ~@3 g4@2 ~@3",
  DV: "[a3,b3,c4,e4]@7 ~ b3@2 ~@2 [a3,b3]@4, ~ [c4,e4], ~@8 a3 ~@7", DW: "~@6 [b3,c4,d4,g4]@4 [a3,b3,f#4]@5 ~",
  DX: "a3@3 ~ a3@2 ~@2 [b3,c4]@2 ~@2 [a3,b3,c4]@4, [b3,c4,e4]@7 ~ e4@8, ~@8 a3 ~@7", DY: "[[a3,b3,c4,e4]@7 ~]/2",
})).s("gm_piano").gain(0.45).pan(0.7)

// chords · piano · "A.PIANO 2" · soft notes
const piano_soft = note(`<
  ~@6 A@2 B@2 C@2 D@2 ~@5 E F ~@41 G ~@11 H ~@34 I@2 J@2 ~@2 K@2 ~@2 I@2 ~@7 L ~ M N O ~ P Q R Q S ~ T U V W@2 ~ X Y Z
  ~@16 AA ~@5 AB ~@10 AC ~@3 AB ~@4 AD ~@11 AE ~@4
>`.pickRestart({
  A: "[[a3,b3]@21 ~ [g3,a3,b3]@9 ~, ~@22 d4@5 ~@5]/2", B: "[[a3,b3,e4]@10 ~ [a3,b3,d4]@5, ~@22 g3@5 ~@5]/2",
  C: "[[a3,b3,c4,e4]@21 ~@7 g3@4, ~@11 a3@5]/2", D: "[[a3,b3,c4,e4]@10 ~ g3@2 ~ g3@2, ~@11 [a3,b3]@5]/2", E: "~ f#3",
  F: "~@8 f#3@3 ~@5", G: "~@14 c4 ~", H: "~@5 d4@2 ~", I: "[~@12 b3@7 ~@13]/2", J: "[~@6 b3@3 ~@7]/2",
  K: "[~@12 [b3,e4]@7 ~@13]/2", L: "~@6 d4 ~", M: "~@12 a3@3 ~", N: "b3@7 ~@9", O: "~@6 [d4,f#4] ~",
  P: "~@12 [a3,d4]@3 ~", Q: "[a3,b3]@7 ~@9", R: "~@6 b3@5 ~ [a3,f#4]@3 ~", S: "~@6 c4@6 [a3,f#4]@3 ~",
  T: "~@12 [a3,b3,d4]@3 ~", U: "[a3,b3]@7 ~ b3@2 ~@6", V: "~@6 [b3,g4]@5 ~ [a3,d4,f#4]@3 ~", W: "[[a3,b3,e4]@25 ~@7]/2",
  X: "~@12 [a3,d4,f#4]@3 ~", Y: "[e4,b4,e5]@7 ~@9", Z: "~@12 [d4,f#4]@3 ~", AA: "f3 ~@3 a3@2 ~@10", AB: "~ b3@2 ~",
  AC: "~@4 b3 ~@11", AD: "~@15 f3", AE: "~@10 d4@5 ~",
})).s("gm_piano").gain(0.3).pan(0.7)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@23 A B C D E@3 F@3 G@3 H I D J K L M N O P@2 Q R@2 S@2 T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ@2 AK AL AM AN AO
  AP AQ AR AS AT AU AV AW AX AY AV AY AZ BA BB BC AV BD AR BE AV BF BG BH AR BD AV BI BJ BD AR BK BL@2 BM BN BO BP BQ BR
  BS BT BU BT BV BW BX BY BZ CA CB CC CD CE CF CG BV CH CF CI CF CJ CK CL CM ~ CM ~ CM CN CM ~ CM ~ CM ~ CO CP CQ CR CS
  CT CU CV@3 CW@3 CX CY@2 CZ DA DB DC DD DE DC DF DG DH@3 DI DJ DK DL Z AA DM@2 Z AA DN DO DP DQ DR DS DT DU DV DW DX DY
  DZ DY EA AR EB EC@2
>`.pickRestart({
  A: "~ a2", B: "~@3 d2 g1 a1 d2 e2", C: "e1@7 ~ a2@8", D: "~ e3 a2 e2 g2@4",
  E: "[~@2 d3@2 g2@2 d2@2 f2@17 ~ c2@2 f2@6 a1@2 a#1@2 ~@2 c2@8]/3",
  F: "[~@2 g2@2 c2@3 ~ d2@10 ~@4 a1 ~ d2 ~@3 d2@8 ~@4 f2@4 ~@4]/3",
  G: "[g2@4 ~@4 a2@13 ~ d2 ~ g1@2 a1@2 d2@2 e2@4 e2@2 e1@3 ~ a2@8]/3", H: "a2 ~@2 d2 g1 a1 d2 e2", I: "e1 a2",
  J: "~ a2 g2 d2 f2@4", K: "f2@2 ~@2 c2@2 ~@4 f2 ~@3 c2@2", L: "~ a1 ~ b1 c2@4", M: "~ g2 c2 c#2 d2@4",
  N: "d2@7 ~ f#2@4 f#2@4", O: "a2@2 f2 ~", P: "[g2@2 ~@2 a2@6 ~ d2 e2 g2 a2@2]/2", Q: "g2 e2 d2 ~ f2@4",
  R: "[g2@4 a2@7 e2@2 g2 a2@2]/2", S: "[g2 e2 d2 ~ c2@6 g2@2 g2@4]/2", T: "~ c2 d2 d#2 e2@2 e2@2",
  U: "e1@2 e1 d2 e2@2 e2@2", V: "e2@2 d2@2 c2@2 b1@2 a1@3 ~@5", W: "c2@3 ~@5 d2@2 ~@6", X: "e2@2 g2@3 ~@3 a2@8",
  Y: "a2@4 ~@2 d2@2 e2@2 g2@2 a2@3 ~", Z: "a2@2 g2@2 e2@2 d2@2 c2@3 ~@5", AA: "d2@3 ~@5 f2@3 ~@5", AB: "g2 d2 ~@2 a1@4",
  AC: "a1@9 ~ c3@2 a2@2 g2@2", AD: "a2@2 e2@2 d2@2 a1@2 c2@3 ~@5", AE: "d2@3 ~@5 f2@2 ~@6", AF: "g2 d2 ~@2 a2@3 a2",
  AG: "a2@3 ~@3 e2@4 a2@2 e2@3 ~", AH: "a2@5 ~@3 f2@6 f2@2", AI: "f2@2 ~ f2 f1 f1@2 f1", AJ: "[f1 d2 e2@3 e2 e2@2]/2",
  AK: "e2@4 a1 ~@3", AL: "~@4 c2 ~@3", AM: "d2@2 f2@2 ~@4 [d2,g2]@3 ~@5", AN: "a2@8 a2@5 ~ e2@2",
  AO: "g1 a1 d2 e2@3 ~ e2", AP: "[a1,a2]@8 [a1,a2]@3 ~@3 d2@2", AQ: "g1@2 a1@2 d2@2 e2@7 ~@3", AR: "a2@3 a2!2 ~@2 d2",
  AS: "g1@2 a1@2 d2@2 e2@3 ~ e1@3 ~ g1@2", AT: "a2@2 a2!3 ~ d2!2", AU: "g1@2 a1@2 d2@2 e2@7 ~ e2@2",
  AV: "a2@2 a2!3 ~@2 d2", AW: "g1@2 a1@2 c2@2 d2@4 a1@2 e1@3 ~", AX: "a2!5 ~@2 d2", AY: "g1 a1 d2 e2@2 d2 e2 ~",
  AZ: "a2@2 a2 c3 a2 ~@2 d2", BA: "g1 a1 d2 e2@3 e2!2", BB: "a2@3 a2 a2@2 c3@2 a2@2 ~@4 d2@2",
  BC: "g1@2 a1@2 d2@2 e2@3 ~ g2@3 ~ g2 ~", BD: "g1 a1 d2 e2@2 e2@2 e2", BE: "g1 a1 d2 e2@2 e2!3",
  BF: "g1 a1 d2 e2@2 e2@2 g2", BG: "a2@2 a2@2 a2 ~@2 d2", BH: "g1 a1 d2 e2@2 g2@2 g#2", BI: "g1 a1 d2 g2@3 a2 ~",
  BJ: "a2@7 ~ a2 ~@5 d2@2", BK: "g1!3 d2 e2 d2 e2 d2",
  BL: "[g2@2 a2@2 ~@2 e2@2 a2@2 e2 ~@3 g1@4 a1@4 c2@4 d2@3 ~ e2@2]/2", BM: "a2@2 g2@2 e2@2 a1@2 a2@2 e2 ~@3 d2@2",
  BN: "~ d2 ~ e2 ~ g2 ~ a1", BO: "~ c2 ~ d2 ~ a1!2 d2", BP: "~@2 d#2@3 ~ e2@2 ~@2 a1@2 a1@2 ~@2",
  BQ: "~@2 c2@2 ~@2 a1@3 ~ e2@3 ~ g2@2", BR: "~ a2!2 d2!2 d#2!2 e2", BS: "a2@8 a2 ~@7", BT: "g1 a1 c2 d2 e2!3 g2",
  BU: "a2@7 ~ a2@2 ~@6", BV: "a2@3 a2!2 ~@3", BW: "g1 a1 d2 e1@3 e2 g2", BX: "a2!3 e2 a1 ~@3", BY: "g1 a1 d2 e1@4 ~",
  BZ: "a2!3 c3 a2 ~@2 d2", CA: "g1@2 a1@2 d2@2 e2@2 e1@7 ~", CB: "a2!5 ~@3", CC: "g1@2 a1@2 d2@2 e1@3 ~ e1@2 g2@3 ~",
  CD: "a2@2 a2@2 a2 ~@3", CE: "g1 a1 d2 e1@2 e2 g2 ~", CF: "a2@4 a2 ~@3", CG: "g1@2 a1@2 d2@2 e2@4 g2@5 ~",
  CH: "g1 a1 d2 e2@3 g2@2", CI: "g1 a1 d2 e2@2 e1@3", CJ: "g1 a1 d2 e2@4 ~", CK: "a2@15 ~", CL: "g1@2 a1@2 d2@2 e2@9 ~",
  CM: "a2", CN: "~@3 a2", CO: "a2!2", CP: "g2!2", CQ: "f2", CR: "~ f2 e2 d2", CS: "c2@5 g2 c2 c#2", CT: "d2@13 ~@3",
  CU: "f#2@8 a2@4 a1@3 ~", CV: "[f2@3 ~ g2@2 ~@2 a2@13 ~ d2@2 g1@2 a1@2 d2@2 e2@7 ~@3 a2@2 a2@2 a2@4]/3",
  CW: "[a2@3 ~@3 d2@2 g1@2 a1@2 d2@2 e1@7 ~@3 a2@10 e3@2 a2@2 e2 ~ g2@2 g2@4 g2@2]/3",
  CX: "~@2 d3@2 ~@2 g2@2 f2@3 ~@3 c2@2", CY: "[~@4 f1@4 ~@2 a1@3 ~ c2@4 f2 ~ c2@2 a1@2 c2@7 ~]/2",
  CZ: "e2@3 g2@2 ~ c2@2 d2@8", DA: "f#2 a2", DB: "d3@3 ~ f2@4", DC: "g2 a2", DD: "a2@2 ~@4 d2 ~ e2@2 g2@2 a2@2 c3@2",
  DE: "a2@2 g2@2 e2@2 c2 ~ f2@8", DF: "a2 ~@2 d2 e2 g2 a2 c3", DG: "a2 g2 e2 a1 c2@4",
  DH: "[e1@6 f1@2 g1@4 g2@6 g1@3 ~ g1@2 e1@2 e1@10 d3@2 e3@2 e3@2 d3@2 b2@3 ~]/3", DI: "e2 ~ e2@2 d2@2 c#2@2 c2@2 ~@6",
  DJ: "~@8 d2@3 ~@5", DK: "e2@2 g2@5 ~ a2@8", DL: "a2@6 g2@4 e2@2 g2@2 a2 ~",
  DM: "[g2@2 a2@2 d2@3 ~ a2@13 ~ d2@2 e2@2 g2@2 a2@2 c3@2, f2 ~@31]/2", DN: "g2 d2 ~@2 a2@2 a2!2",
  DO: "a2@9 ~ a2@2 g2@2 e2@2", DP: "d2 e2 d2 c2 f1@3 f1", DQ: "f1@2 f2!2 f1 f1@2 f1", DR: "f1@2 b1 c2 d2@2 d2@2",
  DS: "d2 e2 f2@2", DT: "e2@3 ~ e2@3 ~ a1@3 ~@5", DU: "~@8 c2@3 ~@5", DV: "d2@2 f2@2 ~@4 g2@3 ~@5",
  DW: "a2@8 a2 ~@5 d2@2", DX: "g1@2 a1@2 d2@2 e2@4 e1@3 ~ g2@2", DY: "a2@6 a2@2 a2 ~@5 d2@2",
  DZ: "g1 a1 d2 e2 e1@2 e2!2", EA: "g1 a1 d2 e2@2 e1 e1@2", EB: "g1 a1 d2 e2@2 e1!3", EC: "[a1@13 ~@3]/2",
})).s("gm_fretless_bass").gain(0.3)

// bass · piano · "A.PIANO 2"
const bass_2 = note(`<
  ~@6 A B C B A B A B D E F G H I J K@8 L@4 M@2 N O@8 P Q@3 R@7 S T@3 U V@3 W X@7 Y Z AA AB AC AD AE AB AE AD AF AB AF
  AG AF AD AF AB AF AD AF AB AF AB AF AD AF AB AF AB AF AH AI AB AJ AK AF AB AF AB AF AB AL AD AF AD AM AG AF AG AF AH
  AN AH AA AB AO AP AQ AR AQ AP AQ AP AS AP AQ AR AQ AR AS AR AT@2 ~@2 AU AV AU AV AF AW AX@2 AY I AZ BA@2 BB@8 BC@2
  BD@3 BE@7 S BF@3 BG BH@3 BI BJ@6 BK BL BM AM AB AF AB AM AB BN AB BO@2
>`.pickRestart({
  A: "a1", B: "g1 a1 d2 e2@5", C: "a1@15 ~", D: "~@3 a2, a1@15 ~", E: "~@12 g2@3 ~, g1@15 ~", F: "[f1,f2]@7 f2",
  G: "~@2 f2@4 f2@7 ~ f2 ~, f1@7 ~", H: "c2@15 ~", I: "d2@7 ~", J: "d2@12 d2 ~@3",
  K: "[[f1,f2]@2 ~@2 [g1,g2]@2 ~@8 a2@8 e2 ~ g1@2 a1@2 d2@2 e2@10 ~@8 a2@4 ~@2 a2 ~ g1@2 a1@2 d2@2 e2@9 ~ a1@14 a2 ~ g1@14 g2 ~ f1@14 f2@2 ~@2 f2@6, ~@4 a1@7 ~@9 a1@7 ~@33 f1@4]/8", // F G
  L: "[~@2 f2@5 ~ c2@14 ~@2 d2@15 ~ d2@14 ~@2 [f1,f2]@7 ~]/4", // F
  M: "[g1@6 g2 ~@13 a2@2 ~@2 g1@2 a1@2 d2@2 e2@2, g2@4 ~@4 a1@15 ~@9]/2", N: "~ e2@2 ~ a1@3 ~",
  O: "[a1@3 ~@5 g1@2 a1@2 d2@2 e2@8 ~@8 a2@7 ~ a2@2 ~@6 g2@7 ~ g2 ~@7 f2@7 ~ f2@2 ~@2 f2@7 ~ f2@6 c2@14 ~@2 d2@14 ~@2 d2@8, ~@24 a1@15 ~ g1@14 ~@2 f1@14 ~@2 f1@13 ~@43]/8",
  P: "~@2 f1 f2", Q: "[~@4 g2@4 ~@6 a2@6 ~@2 a2@2 ~@6 a2@4 a2@3 ~@7 f2@3 ~, g1@6 ~@2 a1@14 ~@2 a1@13 ~@3 f1@7 ~]/3",
  R: "[~@4 g2@3 ~@7 a2@6 ~@2 a2@2 ~@2 a2@7 ~ a2@3 ~ a2@2 c2@14 ~@8 g2@7 ~ g2 ~ e2@13 ~ e2 ~ e2@15 ~ [a1,a2]@3 ~@5, g1@7 ~ a1@14 ~@2 a1@13 ~@19 g1@14 ~@42]/7", // A
  S: "c2 ~ d2 ~", T: "[~@2 [g1,g2]@5 ~ a1@14 a2@2 ~@2 a2@7 ~ a2@3 ~ a2@2 c2@6 ~@2, ~@12 a1@7 ~@5]/3",
  U: "d2@6 ~@2 f1@7 ~", V: "[g1@6 g2@2 a1@14 a2@2 ~@2 a2@11 ~ a2 ~ c2@8, ~@8 a1@5 ~@3]/3", W: "d2@7 ~ f1@6 f2@2",
  X: "[g1@6 g2 ~ a1@14 a2@2 ~@2 a2@10 ~@2 a2 ~ f1@14 f2@2 ~@2 f2@8 f2@3 ~ f2 ~ e2@13 ~ e2 ~ e2@12 ~@2 e2 ~ a1@3 ~@5, ~@12 a1@7 ~ f2@6 ~@2 f1@7 ~@21]/7",
  Y: "~@2 [c2,c3,g3,c4,e4] ~", Z: "[a2,d3]@2 [c3,f3]@6 g1@7 ~", AA: "~@6 a2@5 ~@3 a2 ~, a1@7 ~",
  AB: "g1@2 a1@2 d2@2 e2@3 ~ e2@3 ~ e2 ~", AC: "~@6 a2@7 ~@2 a2, a1@15 ~", AD: "g1@2 a1 ~ d2@2 e2@3 ~ e2@3 ~ e2 ~",
  AE: "~@6 a2@7 ~ a2 ~, a1@7 ~", AF: "~@6 a2@6 ~@2 a2 ~, a1@7 ~", AG: "g1@2 a1 ~ d2 ~ e2@3 ~ e2@3 ~ e2 ~",
  AH: "g1@2 a1@2 d2@2 e2@3 ~ e2@3 ~ e2@2", AI: "~@8 a2@3 ~@3 a2 ~, a1@7 ~", AJ: "~@6 a2@5 ~ a2@3 ~, a1@15 ~",
  AK: "~@2 a1@2 d2@2 e2@3 ~ e2@3 ~ e2 ~, ~ g1@2 ~@13", AL: "a1@6 a1@8 a2 ~, ~@3 a2@3 ~@2",
  AM: "~@6 a2@7 ~ a2 ~, a1@15 ~", AN: "~@6 a2@6 ~@3 a2, a1@7 ~", AO: "a1@5 ~@3 a2@2 ~@6, ~@5 a1@5 ~@6",
  AP: "g1 ~ a1@2 d2@2 e2@10", AQ: "a1@5 ~ a1@2 a2@2 ~@6", AR: "g1 ~ a1 ~ d2@2 e2@10", AS: "a1@5 ~ a1 ~ a2@2 ~@6",
  AT: "[a1@25 ~@7]/2", AU: "a1@5 ~ e2@2 a2@2 ~@6", AV: "g1 ~ a1 ~ d2@2 e2@9 ~", AW: "~@10 g2@3 ~ g2 ~, g1@15 ~",
  AX: "~@10 f2@3 ~ f2@2, f1@7 ~", AY: "c2@7 ~", AZ: "d2@13 ~@3",
  BA: "[[f1,f2]@3 ~ [g1,g2]@3 ~@7 a2@6 ~@2 a2 ~ g1@2 a1@2 d2@2 e2@2, ~@4 a1@7 ~@5]/2", // F G
  BB: "[~@2 e2@3 ~ e2@2 ~@6 a2@5 ~@3 a2 ~ g1@2 a1@2 d2@2 e2@9 ~@9 a2@5 ~ a2 ~@7 g2@6 ~@2 g2 ~@7 f2@5 ~@3 f2@6 ~@2 f2@3 ~ f2@2 ~@2 f2@2 c2@15 ~ d2@8, ~@8 a1@14 ~@18 a1@15 ~ g1@14 ~@2 f1@30 ~@26]/8",
  BC: "[~@8 d2@13 ~@3 f1@6 f2 ~, ~@6 f2 ~]/2",
// … 372 more lines

More by Elton John