Strudelify
Madman Across the Water cover art

Madman Across The Water

Madman Across the Water

Elton John

KeyA minorTempo131 bpm
0:00/0:00
// Madman Across the Water — Elton John
// 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, A@4 for four bars: 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 Z AC@3 AD AE AF AG AH AI@2 AJ AK AL@2 AM
  AN AO@2 AP@2 AE AQ AR AS E AT AU AV AW AV AX@6 AY AV AZ@4 AX@2 AZ@2 AX@8 BA AV BB BC AX@2 BD@4 AX@2 BE@2 BF@2 BG@2
  AX@6 BH BI BH BJ BK BL BH BM BN BO BN BP BH BQ BR BS ~@3 BT BU BL BV BW BX BY BZ@2 CA CB@2 CC CD@2 CE@2 CF CG CH CI@4
  CJ CK@2 CL CM@3 CN@2 CO CP CQ@2 CR CS CT CU@2 CV CT CW@2 CX@2 CY CZ DA DB DC DD DE DD DF DG DH AV DI@2
>`.pickRestart({
  A: "[c4@21 ~@7 e4@3 ~]/2", B: "[c4@21 ~@7 g3@4]/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]@4 [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]@6 ~@9 c3@3 ~@2 [f#3,a3,d4]@4 [a3,d4]@6 ~@10, ~@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: "[~@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
  AD: "[g3,b3,d4]@7 ~ [e3,a3,b3,d4]@7 ~", AE: "e3@3 ~ e3@3 ~ [e3,g#3,b3,d4]@7 ~, [a3,b3,d4] ~",
  AF: "[e3,g#3,b3,d4]@7 ~ [a3,b3,c4,e4]@3 ~@5", AG: "[c3,g3,c4,e4] ~ [d3,f3,a3,d4] ~",
  AH: "~@2 [g3,b3,d4]@5 ~ [a3,c#4,e4]@8", // G A
  AI: "[[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
  AJ: "[a3,d4]@7 ~ [f3,a3,c4]@7 ~, f#3@5 ~@11", AK: "[g3,b3,d4]@7 ~ [a3,b3,c4,e4]@8",
  AL: "[[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
  AM: "[f#3,a3,d4]@7 ~ [f3,a3,c4]@7 ~", AN: "[g3,a3,b3,d4]@7 ~ [a3,b3,c4,e4]@8",
  AO: "[[c4,e4]@12 a3 ~ [a3,b3,c4,e4]@6 [a3,b3,c4,e4]@4 [f3,a3,c4]@7 ~, [a3,b3]@5 ~@11]/2", // C Am F Asus2
  AP: "[f3@2 ~@2 f3@6 ~@2 f3 ~ [f3,a3,c4]@5 ~ [f3,a3,c4]@3 ~ [e3,a3,b3,d4]@7 ~, [a3,c4]@3 ~@5]/2", // F Esus4 Am
  AQ: "[e3,g#3,b3,d4]@7 ~ [a3,c4,e4]@3 ~@5", AR: "~@2 [c2,c3,g3,c4,e4] ~", AS: "[a2,d3]@2 [c3,f3]@6 [g3,b3,d4]@7 ~",
  AT: "~@6 [b3,c4,d4,g4]@3 ~ [a3,b3,f#4]@5 ~", AU: "[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@3 ~@3 [a3,b3,c4,e4] ~",
  AV: "~@6 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~", AW: "[a3,b3,c4,e4]@3 ~ [b3,c4,e4]@2 ~ [b3,c4,e4], ~@4 a3 ~ a3@2",
  AX: "[[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
  AY: "[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@3 ~ [a3,b3,c4,e4]@4", // Am
  AZ: "[[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
  BA: "[a3,b3,c4,e4]@4 [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@6", BB: "[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@2",
  BC: "~@2 [b3,c4,d4,g4]@3 ~ [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~", // G Bm7
  BD: "[[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
  BE: "[[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
  BF: "[[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
  BG: "[[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
  BH: "[a3,b3,c4]@7 ~ [a3,b3,c4]@2 ~@6", BI: "~@6 [b3,c4,d4,g4]@6 [a3,b3,f#4]@3 ~",
  BJ: "~@6 [b3,c4,d4,g4]@6 [b3,d4,f#4]@3 ~", BK: "[a3,c4]@7 ~ [a3,b3,c4]@2 ~@6", BL: "~@6 [b3,c4,d4,g4]@6 [a3,b3]@3 ~",
  BM: "~@6 [b3,c4,d4,g4]@6 [b3,f#4]@3 ~", BN: "c4@7 ~ [a3,b3,c4]@2 ~@6", BO: "~@6 [c4,d4,g4]@5 ~ [b3,d4]@3 ~",
  BP: "~@6 [b3,d4]@6 [b3,d4]@3 ~, ~@3 g4@2 ~@3", BQ: "~@3 [b3,c4,d4]@3 f#4 ~, ~@3 g4@2 ~@3", BR: "c4@7 ~ [a3,c4]@2 ~@6",
  BS: "~@6 [c4,d4]@5 ~ b3@3 ~", BT: "~@6 [b3,d4]@6 b3@3 ~, ~@3 [c4,g4]@2 ~@3", BU: "a4@7 ~ [e4,a4,b4] ~@7, ~@4 e5 ~@3",
  BV: "[b3,c4,e4,g4]@7 ~ [b3,c4,e4,g4]@2 ~@6", BW: "~@6 [b3,c4,d4,g4]@9 ~",
  BX: "[b3,c4]@8 a3@2 c4@2 [a3,e4]@3 ~, e4@5 ~@3, a3@3 ~@5", // Cmaj7 A5
  BY: "~@4 b3@2 d4 ~ [g3,b3,g4]@4 [g3,b3,d4]@4, d4 ~@3, b3 ~@7, ~ g3@5 ~@10", // G
  BZ: "[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
  CA: "g3 ~ g3 ~@3 c4 c3, [c4,e4]@8 [g3,e4]@7 ~, ~@6 c3@7 ~@3", // C
  CB: "[[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
  CC: "[f3,a3,c4]@3 ~ [g3,b3,d4]@3 ~ [a3,b3,c4,e4]@7 ~", // F G Am
  CD: "[[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
  CE: "[[a3,b3,c4,e4]@3 ~@11 [a3,b3,d4,e4]@9 ~ a3@4 ~@2 a3@2, ~@3 [b3,c4,e4]]/2", // Am Asus4 Cmaj7
  CF: "~@2 a3@2 b3@2 a3 ~@5 g3@3 ~, ~ [c4,e4]@3 ~@4, ~@2 b3 ~@5 [b3,d4]@7 ~", // C Bm
  CG: "g3 ~@3 g3@3 ~@5 f3@3 ~, [b3,d4]@7 ~ [a3,c4]@7 ~", CH: "a3@2 f3@3 ~ f3@2 ~@2 f3@5 ~, c4@5 ~ [a3,c4]@9 ~",
  CI: "[[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
  CJ: "[g3,b3,d4]@7 ~ a3@3 ~ a3@3 ~, ~ [b3,c4,e4]", // G Cmaj7
  CK: "[[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
  CL: "g3@2 ~@2 g3@3 ~ a3@3 ~ a3@3 ~, [b3,d4]@7 ~ [b3,c4,e4]@7 ~", // Bm Cmaj7
  CM: "[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
  CN: "[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
  CO: "[g#3,b3,d4,e4]@4 [e3,g#3,b3,d4,e4]@3 ~ [c3,a3,c4,e4]@3 ~@5", CP: "[g3,b3,e4] ~ [f3,a3,c4,d4] ~",
  CQ: "[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
  CR: "~@2 [a3,b3,c4,e4]@5 ~@7 c3@2, ~ [g3,c4,e4]", CS: "~@4 d3@2 ~@2 f3@2 ~@2 f3@3 ~, [f#3,a3,d4]@7 ~ [a3,c4]@7 ~",
  CT: "g3@2 ~@2 g3@4 [a3,b3,c4,e4]@7 ~, [b3,d4]@7 ~@9", // Am Bm
  CU: "[[a3,b3]@3 ~ a3@5 ~@3 a3 ~ [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@3 ~@7 c3@2, [c4,e4]@3 ~@3 [g3,c4,e4]@2]/2", // Asus2 Am C
  CV: "~@4 d3 ~@3 f3@2 ~@2 f3@3 ~, [f#3,a3,d4]@7 ~ [a3,c4]@7 ~", // D Am
  CW: "[a3@3 ~ a3@6 ~@2 a3 ~ [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@4 [f3,a3,c4]@7 ~, [b3,c4,e4]@3 ~@5]/2", // Am F Cmaj7
  CX: "[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
  CY: "[a3,b3,d4]@15 ~", CZ: "[e3,g#3,b3,d4]@7 ~ [a3,b3,c4,e4]@5 ~@3", DA: "~@4 [c3,g3,c4,e4]@3 ~",
  DB: "~@2 [f3,a3,c4]@5 ~ [g3,a3,b3,d4]@7 ~", DC: "[a3,b3,c4,e4]@7 ~ [a3,b3,c4,e4]@8",
  DD: "~@6 [b3,c4,d4,g4]@5 ~ [a3,b3,d4,f#4]@3 ~", DE: "[a3,b3,c4,e4]@3 ~ [a3,b3,c4,e4]@3 ~",
  DF: "[a3,b3,c4,e4]@7 ~ b3@2 ~@2 [a3,b3]@4, ~ [c4,e4], ~@8 a3 ~@7", DG: "~@6 [b3,c4,d4,g4]@4 [a3,b3,f#4]@5 ~",
  DH: "a3@3 ~ a3@2 ~@2 [b3,c4]@2 ~@2 [a3,b3,c4]@4, [b3,c4,e4]@7 ~ e4@8, ~@8 a3 ~@7", DI: "[[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@4 ~@2 J@2 ~@2 I@2 ~@7 K ~ L M N ~ O P Q P R ~ S T U V@2 ~ W X Y ~@16
  Z ~@5 AA ~@10 AB ~@3 AA ~@4 AC ~@11 H ~@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]@21 ~ g3@4 ~@2 g3@4, ~@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: "[~@12 [b3,e4]@7 ~@13]/2",
  K: "~@6 d4 ~", L: "~@12 a3@3 ~", M: "b3@7 ~@9", N: "~@6 [d4,f#4] ~", O: "~@12 [a3,d4]@3 ~", P: "[a3,b3]@7 ~@9",
  Q: "~@6 b3@5 ~ [a3,f#4]@3 ~", R: "~@6 c4@6 [a3,f#4]@3 ~", S: "~@12 [a3,b3,d4]@3 ~", T: "[a3,b3]@7 ~ b3@2 ~@6",
  U: "~@6 [b3,g4]@5 ~ [a3,d4,f#4]@3 ~", V: "[[a3,b3,e4]@25 ~@7]/2", W: "~@12 [a3,d4,f#4]@3 ~", X: "[e4,b4,e5]@7 ~@9",
  Y: "~@12 [d4,f#4]@3 ~", Z: "f3 ~@3 a3@2 ~@10", AA: "~ b3@2 ~", AB: "~@4 b3 ~@11", AC: "~@15 f3",
})).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 C D I J K L M N O@2 P Q@2 R@2 S T U V W X Y Z AA AB AC Z AD AE AF AG AH@2 AI AJ AK AL AM AN
  AO AP AQ AR AM AS AT AU AV AS AV AW AX AY AZ AS BA AP BB AS BC BD BE AP BA AS BF BG BA AP BH BI@2 BJ BK BL BM BN BO BP
  BQ BP BQ BR BS BT BU BV BW BX BY BZ CA BP CB BR CC BP CD BP AO CE CF CE ~ CE ~ CE CG CE ~ CE ~ CE ~ CH CI CJ CK CL CM
  CN CO@3 CP@3 CQ CR@2 CS CT CU CV CW CX CV CY CZ DA@3 DB DC DD DE Y Z DF@2 Y Z DG DH DI DJ DK DL DM DN DO BG DP AP DQ
  AP DR AP DS DT@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: "~ a2 g2 d2 f2@4",
  J: "f2@2 ~@2 c2@2 ~@4 f2 ~@3 c2@2", K: "~ a1 ~ b1 c2@4", L: "~ g2 c2 c#2 d2@4", M: "d2@7 ~ f#2@4 f#2@4",
  N: "a2@2 f2 ~", O: "[g2@4 ~@4 a2@13 ~ d2@2 e2@2 g2@2 a2@4]/2", P: "g2 e2 d2 ~ f2@4", Q: "[g2@4 a2@7 e2@2 g2 a2@2]/2",
  R: "[g2 e2 d2 ~ c2@6 g2@2 g2@4]/2", S: "~ c2 d2 d#2 e2@2 e2@2", T: "e1@2 e1 d2 e2@2 e2@2",
  U: "e2@2 d2@2 c2@2 b1@2 a1@3 ~@5", V: "c2@3 ~@5 d2@2 ~@6", W: "e2@2 g2@3 ~@3 a2@8",
  X: "a2@4 ~@2 d2@2 e2@2 g2@2 a2@3 ~", Y: "a2@2 g2@2 e2@2 d2@2 c2@3 ~@5", Z: "d2@3 ~@5 f2@3 ~@5", AA: "g2 d2 ~@2 a1@4",
  AB: "a1@9 ~ c3@2 a2@2 g2@2", AC: "a2@2 e2@2 d2@2 a1@2 c2@3 ~@5", AD: "g2 d2 ~@2 a2@3 a2",
  AE: "a2@3 ~@3 e2@4 a2@2 e2@3 ~", AF: "a2@5 ~@3 f2@6 f2@2", AG: "f2@2 ~ f2 f1 f1@2 f1", AH: "[f1 d2 e2@3 e2 e2@2]/2",
  AI: "e2@4 a1 ~@3", AJ: "~@4 c2 ~@3", AK: "d2@2 f2@2 ~@4 [d2,g2]@3 ~@5", AL: "a2@8 a2@5 ~ e2@2",
  AM: "g1 a1 d2 e2@3 ~ e2", AN: "[a1,a2]@8 [a1,a2]@3 ~@3 d2@2", AO: "g1@2 a1@2 d2@2 e2@7 ~@3", AP: "a2@3 a2!2 ~@2 d2",
  AQ: "g1@2 a1@2 d2@2 e2@3 ~ e1@3 ~ g1@2", AR: "a2@2 a2!3 ~ d2!2", AS: "a2@2 a2!3 ~@2 d2",
  AT: "g1@2 a1@2 c2@2 d2@4 a1@2 e1@3 ~", AU: "a2!5 ~@2 d2", AV: "g1 a1 d2 e2@2 d2 e2 ~", AW: "a2@2 a2 c3 a2 ~@2 d2",
  AX: "g1 a1 d2 e2@3 e2!2", AY: "a2@3 a2 a2@2 c3@2 a2@2 ~@4 d2@2", AZ: "g1@2 a1@2 d2@2 e2@3 ~ g2@3 ~ g2 ~",
  BA: "g1 a1 d2 e2@2 e2@2 e2", BB: "g1 a1 d2 e2@2 e2!3", BC: "g1 a1 d2 e2@2 e2@2 g2", BD: "a2@2 a2@2 a2 ~@2 d2",
  BE: "g1 a1 d2 e2@2 g2@2 g#2", BF: "g1 a1 d2 g2@3 a2 ~", BG: "a2@7 ~ a2 ~@5 d2@2", BH: "g1!3 d2 e2 d2 e2 d2",
  BI: "[g2@2 a2@2 ~@2 e2@2 a2@2 e2 ~@3 g1@4 a1@4 c2@4 d2@3 ~ e2@2]/2", BJ: "a2@2 g2@2 e2@2 a1@2 a2@2 e2 ~@3 d2@2",
  BK: "~ d2 ~ e2 ~ g2 ~ a1", BL: "~ c2 ~ d2 ~ a1!2 d2", BM: "~@2 d#2@3 ~ e2@2 ~@2 a1@2 a1@2 ~@2",
  BN: "~@2 c2@2 ~@2 a1@3 ~ e2@3 ~ g2@2", BO: "~ a2!2 d2!2 d#2!2 e2", BP: "a2@4 a2 ~@3", BQ: "g1 a1 c2 d2 e2!3 g2",
  BR: "a2@3 a2!2 ~@3", BS: "g1 a1 d2 e1@3 e2 g2", BT: "a2!3 e2 a1 ~@3", BU: "g1 a1 d2 e1@4 ~", BV: "a2!3 c3 a2 ~@2 d2",
  BW: "g1@2 a1@2 d2@2 e2@2 e1@7 ~", BX: "a2!5 ~@3", BY: "g1@2 a1@2 d2@2 e1@3 ~ e1@2 g2@3 ~", BZ: "a2@2 a2@2 a2 ~@3",
  CA: "g1 a1 d2 e1@2 e2 g2 ~", CB: "g1@2 a1@2 d2@2 e2@4 g2@5 ~", CC: "g1 a1 d2 e2@3 g2@2", CD: "g1 a1 d2 e2@2 e1@3",
  CE: "a2", CF: "g1 a1 d2 e2@4 ~", CG: "~@3 a2", CH: "a2!2", CI: "g2!2", CJ: "f2", CK: "~ f2 e2 d2",
  CL: "c2@5 g2 c2 c#2", CM: "d2@13 ~@3", CN: "f#2@8 a2@4 a1@3 ~",
  CO: "[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",
  CP: "[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",
  CQ: "~@2 d3@2 ~@2 g2@2 f2@3 ~@3 c2@2", CR: "[~@4 f1@4 ~@2 a1@3 ~ c2@4 f2 ~ c2@2 a1@2 c2@7 ~]/2",
  CS: "e2@3 g2@2 ~ c2@2 d2@8", CT: "f#2 a2", CU: "d3@3 ~ f2@4", CV: "g2 a2", CW: "a2@2 ~@4 d2 ~ e2@2 g2@2 a2@2 c3@2",
  CX: "a2@2 g2@2 e2@2 c2 ~ f2@8", CY: "a2 ~@2 d2 e2 g2 a2 c3", CZ: "a2 g2 e2 a1 c2@4",
  DA: "[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", DB: "e2 ~ e2@2 d2@2 c#2@2 c2@2 ~@6",
  DC: "~@8 d2@3 ~@5", DD: "e2@2 g2@5 ~ a2@8", DE: "a2@6 g2@4 e2@2 g2@2 a2 ~",
  DF: "[g2@2 a2@2 d2@3 ~ a2@13 ~ d2@2 e2@2 g2@2 a2@2 c3@2, f2 ~@31]/2", DG: "g2 d2 ~@2 a2@2 a2!2",
  DH: "a2@9 ~ a2@2 g2@2 e2@2", DI: "d2 e2 d2 c2 f1@3 f1", DJ: "f1@2 f2!2 f1 f1@2 f1", DK: "f1@2 b1 c2 d2@2 d2@2",
  DL: "d2 e2 f2@2", DM: "e2@3 ~ e2@3 ~ a1@3 ~@5", DN: "~@8 c2@3 ~@5", DO: "d2@2 f2@2 ~@4 g2@3 ~@5",
  DP: "g1@2 a1@2 d2@2 e2@4 e1@3 ~ g2@2", DQ: "g1 a1 d2 e2 e1@2 e2!2", DR: "g1 a1 d2 e2@2 e1 e1@2",
  DS: "g1 a1 d2 e2@2 e1!3", DT: "[a1@13 ~@3]/2",
})).s("gm_fretless_bass").gain(0.3)

// bass · piano · "A.PIANO 2"
const bass_2 = note(`<
  ~@6 A B A B A B A B C D E F G H I J@8 K@4 L@2 M N@8 O P@3 Q@7 R S@3 T U@3 V W@7 X Y Z AA AB AA Z AA Z AA Z AA Z AA Z
  AA Z AA Z AA Z AA Z AA Z AA Z AA Z AA Z AA AC AA AD AE Z AA Z AA Z AA AF AA Z AA Z AG Z AA Z AA AB AH Z AA AI AJ AK B
  AK B AK B AK B AK AL AK B AK B AM@2 ~@2 AN B AN AL Z AO AP@2 G H@2 AQ@2 AR@8 AS@2 AT@3 AU@7 R AV@3 AW AX@3 AY AZ@6 BA
  BB BC Z AA Z AA Z AA Z AA BD@2
>`.pickRestart({
  A: "a1", B: "g1 a1 d2 e2@5", C: "~@3 a2, a1@15 ~", D: "~@12 g2@3 ~, g1@15 ~", E: "[f1,f2]@7 f2",
  F: "~@2 f2@4 f2@7 ~ f2 ~, f1@7 ~", G: "c2@15 ~", H: "d2@7 ~", I: "d2@12 d2 ~@3",
  J: "[[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
  K: "[~@2 f2@5 ~ c2@14 ~@2 d2@14 ~@2 d2@14 ~@2 [f1,f2]@7 ~]/4", // F
  L: "[g1@6 g2 ~@13 a2@2 ~@2 g1@2 a1@2 d2@2 e2@2, g2@4 ~@4 a1@15 ~@9]/2", M: "~ e2@2 ~ a1@3 ~",
  N: "[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@5 ~ c2@14 ~@2 d2@14 ~@2 d2@8, ~@24 a1@15 ~ g1@14 ~@2 f1@14 ~@2 f1@13 ~@43]/8",
  O: "~@2 f1 f2", P: "[~@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",
  Q: "[~@4 g2@4 ~@6 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@3 ~ a1@7 ~ a1@7 ~@9 g1@7 ~@21]/7", // A
  R: "c2 ~ d2 ~", S: "[~@2 [g1,g2]@5 ~ a1@14 a2@2 ~@2 a2@7 ~ a2@3 ~ a2@2 c2@6 ~@2, ~@12 a1@7 ~@5]/3",
  T: "d2@6 ~@2 f1@7 ~", U: "[g1@6 g2@2 a1@14 a2@2 ~@2 a2@11 ~ a2 ~ c2@8, ~@8 a1@5 ~@3]/3", V: "d2@7 ~ f1@6 f2@2",
  W: "[g1@6 g2@2 a1@14 a2@2 ~@2 a2@11 ~ a2 ~ f1@14 f2@2 ~@2 f2@8 f2@3 ~ f2 ~ e2@13 ~ e2 ~ e2@12 ~@2 e2 ~ a1@3 ~@5, ~@24 a1@15 ~ f2@12 ~@4 f1@14 ~@42]/7",
  X: "~@2 [c2,c3,g3,c4,e4] ~", Y: "[a2,d3]@2 [c3,f3]@6 g1@7 ~", Z: "~@6 a2@6 ~@2 a2 ~, a1@7 ~",
  AA: "g1@2 a1@2 d2@2 e2@3 ~ e2@3 ~ e2 ~", AB: "~@6 a2@7 ~@2 a2, a1@15 ~", AC: "~@8 a2@3 ~@3 a2 ~, a1@7 ~",
  AD: "~@6 a2@5 ~ a2@3 ~, a1@15 ~", AE: "~@2 a1@2 d2@2 e2@3 ~ e2@3 ~ e2 ~, ~ g1@2 ~@13",
  AF: "a1@6 a1@8 a2 ~, ~@3 a2@3 ~@2", AG: "g1@2 a1 ~ d2 ~ e2@3 ~ e2@3 ~ e2 ~", AH: "g1@2 a1@2 d2@2 e2@3 ~ e2@3 ~ e2@2",
  AI: "a1@5 ~@3 a2@2 ~@6, ~@5 a1@5 ~@6", AJ: "g1 ~ a1@2 d2@2 e2@10", AK: "a1@5 ~ a1@2 a2@2 ~@6",
  AL: "g1 ~ a1 ~ d2@2 e2@10", AM: "[a1@25 ~@7]/2", AN: "a1@5 ~ e2@2 a2@2 ~@6", AO: "~@10 g2@3 ~ g2 ~, g1@15 ~",
  AP: "~@10 f2@3 ~ f2@2, f1@7 ~", AQ: "[[f1,f2]@3 ~ [g1,g2]@3 ~@7 a2@6 ~@2 a2 ~ g1@2 a1@2 d2@2 e2@2, ~@4 a1@7 ~@5]/2",
  AR: "[~@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, ~@4 a1@7 ~@9 a1@7 ~ g1@7 ~ f1@15 ~@13]/8",
  AS: "[~@8 d2@14 ~@2 f1@6 f2 ~, ~@6 f2 ~]/2",
  AT: "[g1@6 g2 ~@7 a2@6 ~@2 a2 ~@3 a2@3 ~ [a1,a2]@4 a1@4 a2 ~ f1@6 f2 ~, g2@4 ~@4 a1@14 ~@2 a1@5 ~@11 f2@5 ~@3]/3", // A
  AU: "[g1@6 g2 ~@7 a2@6 ~@2 a2@2 ~@2 a2@4 ~@4 a2@3 ~ a2@2 c2@14 c2 ~@7 g2@7 ~ g2 ~@3 e2@12 ~@2 e2@11 ~ e2@2 ~@2 c2@3 ~@5, g2@4 ~@4 a1@14 ~@2 a1@5 ~ a1@8 ~@18 g1@14 ~@42]/7",
  AV: "[e2@2 g2@5 ~@9 a2@11 ~@3 a2@5 ~ a2 ~ a2@2 c2@8, ~@8 a1@15 ~@5 a1@10 ~@10]/3",
  AW: "d2@6 ~@2 f2@5 f2@2 ~, ~@8 f1@7 ~",
  AX: "[g1@6 g2 ~@7 a2@6 ~@2 a2@2 ~@2 a2@7 ~ a2@3 ~ a2 ~ c2@7 ~, g2@2 ~@2 a1@7 ~ a1@7 ~@5]/3",
  AY: "d2@5 ~@3 f1@6 f2 ~, ~@8 f2@5 ~@3",
  AZ: "[g1@6 g2 ~@7 a2@6 ~@2 a2@2 ~@2 a2@7 ~ a2@3 ~ a2 ~ f1@14 f2@2 ~@2 f2@8 f2@3 ~ f2@2 e2@5 ~ e2@7 ~ e2 ~ e2@6 e2 ~, g2@2 ~@2 a1@7 ~ a1@7 ~ f2@6 ~@2 f1@7 ~@13]/6",
  BA: "e2@4 ~@2 e2 ~ a1@4 ~@4", BB: "~@2 c2 ~", BC: "d2 f2@3 g2@3 ~", BD: "[a1@27 ~@5]/2",
})).s("gm_piano").gain(0.4).pan(0.1)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B C D E F G H I J K L M N@2 O P Q@2 R S T U@2 V@2 W X Y@2 Z AA@2 AB AC@4 AD@3 AE AF@2 AG AH@3 AI@5 AJ@2 AK AL AM@2
  AN AO AP AQ AR AS AT@2 AU@2 AV@2 AW AX AY AZ BA BB BC BD BE BF BE BG BH BI BJ BK BE BL BM BN BO BP BQ BR BS BT BE BU
  BV BW BX BY@2 BZ CA CB CC CD BA CE BS CF CG CH CI CJ CK CL CM CN BA CO@2 CP BC CQ C D E F G H I J CR L M CS C D E F CT
  H CU J CR L M CV@2 CW CX CY CZ@2 DA DB@3 DC@4 DD@2 DE DF DG DH DI@2 DJ@3 DK DL DM DN DO DP DQ@2 DR DS DT DU DV DW DX
  DY DZ@2 EA EB AW EC ED EE EF EG EF EH EI EJ EK@2
>`.pickRestart({
  A: "~@6 [b3,e4]@9 ~, a2, ~@2 e3@13 ~, ~@4 a3@11 ~", B: "b4 [b4,e5]@2 ~@3 [g3,b3,e4]@2, a2", C: "~ b3@5 e4@2 b3@8",
// … 352 more lines

More by Elton John