Strudelify
KeyC majorTempo112 bpm
0:00/0:00
// Confusion — Electric Light Orchestra
// 112 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 9, 4/4 at bar 9, 2/4 at bar 25, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 101 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(112/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 · epiano2 · "Piano"
const epiano2 = note(`<
  A B@2 C@3 ~@20 D E@2 F@3 ~@21 G H I J K ~@21 L@2 M@2 N@2 M@2 O@2 P@2 Q@2 P@2 Q@2 P@2 R@2
>`.pickRestart({
  A: "~@21 [a4,c5,f5,a5] ~ [a4,c5,f5,a5]", // F
  B: "[[a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@3 [g4,c5,e5,g5]@11 ~ [g4,c5,e5,g5]@3 [a4,c5,e5,a5]@11 ~ [a4,c5,e5,a5] [a4,c5,a5] e5]/2", // F Am C Am
  C: "[[a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,e5,a5]@3 [g4,b4,e5,g5]@3 [g4,b4,e5,g5]@11 ~ [g4,g5]@3 [c5,e5,a#5,c6]@24 ~@15]/3", // Am A5 Em G C7
  D: "~@23 [a4,c5,f5,a5]", // F
  E: "[[c5,f5,a5] a4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@3 [g4,c5,e5,g5]@11 ~ [g4,c5,e5,g5]@3 [a4,c5,e5,a5]@11 ~ [a4,c5,e5,a5]]/2", // F Am C Am
  F: "[[a4,c5,e5,a5] ~ [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,e5,a5]@3 [g4,b4,e5,g5]@3 [g4,b4,e5,g5]@11 ~ [g4,g5]@3 [c5,e5,a#5,c6]@24 ~@13]/3", // Am A5 Em G C7
  G: "~ [a4,c5,f5,a5] ~ [a4,c5,f5,a5] [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4", // F
  H: "[a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@3 [g4,c5,e5,g5]@11 ~ [g4,c5,e5,g5]@2", // F Am C
  I: "~ [a4,c5,e5,a5]@11 ~ [a4,c5,e5,a5] ~ [a4,c5,e5,a5] [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4", // Am
  J: "[a4,c5,e5,a5]@4 [a4,e5,a5]@3 [g4,b4,e5,g5]@3 [g4,b4,e5,g5]@11 ~ [g4,g5]@2", K: "~ [c5,e5,a#5,c6]@23",
  L: "[~@16 [a4,c5,f5,a5]!2 ~ [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@3 [g4,c5,e5,g5]@11]/2", // F Am C
  M: "[~ [g4,c5,e5,g5]@3 [a4,c5,e5,a5]@11 ~ [a4,c5,e5,a5]!2 ~ [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,e5,a5]@3 [g4,b4,e5,g5]@3 [g4,b4,e5,g5]@11]/2", // C Am A5 Em
  N: "[~ [g4,b4,e5,g5]@3 [a4,c5,f5,a5]@11 ~ [a4,c5,f5,a5]!2 ~ [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@3 [g4,c5,e5,g5]@11]/2", // Em F Am C
  O: "[~ [g4,b4,e5,g5]@3 [a4,c5,f5,a5]@11 ~ [a4,c5,f5,a5]!2 ~ [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@2]/2", // Em F Am C
  P: "[~ [g4,c5,e5,g5]@11 ~ [g4,c5,e5,g5]@3 [a4,c5,e5,a5]@11 ~ [a4,c5,e5,a5]!2 ~ [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,c5,e5,a5]@4 [a4,e5,a5]@3 [g4,b4,e5,g5]@2]/2", // C Am A5 Em
  Q: "[~ [g4,b4,e5,g5]@11 ~ [g4,b4,e5,g5]@3 [a4,c5,f5,a5]@11 ~ [a4,c5,f5,a5]!2 ~ [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,e5,a5]@3 [g4,c5,e5,g5]@2]/2", // Em F Am C
  R: "[~ [g4,b4,e5,g5]@11 ~ [g4,b4,e5,g5]@3 [a4,c5,f5,a5]@11 ~ [a4,c5,f5,a5]!2 ~ [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 [a4,c5,f5,a5]@4 ~@5]/2", // Em F
})).s("gm_epiano2").gain(0.35).pan(0.3)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~ A B C D E F@2 G H I J K L I M K N I O P Q R S T U@2 V@8 W@2 X@2 Y@2 Z AA AB AC AD AE AF AG AH AI AJ@2 ~ AK AL AM@3
  AN AO AP@2 AQ AR AS AT AQ AU AS AV AW@2 AX AY@2 AZ@2 BA@2 BB BC BD BE BF BC BD BE BG@8 BH@5
>`.pickRestart({
  A: "~@12 [c2,c3]@8 ~ [c2,c3]@3", B: "[c2,c3]@5 ~@7 [a1,a2]@8 ~ [a1,a2]@3", C: "[a1,a2]@5 ~@7 [e2,e3]@8 ~ [e2,e3]@3",
  D: "[e2,e3]@5 ~ [e2,e3]@5 ~ [c2,c3]@8 ~ [c2,c3]@3", E: "[c2,c3]@5 ~@4 c2@3 f2@11 ~",
  F: "[e2@11 ~ d2@3 d2@5 ~ c2@5 ~@10 f2@11 ~]/2", G: "e2@11 ~ d2@3 d2@8 ~", H: "g1@19 ~@2 g1@3",
  I: "[c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~@7", J: "[a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@4 [a1,a2]@3",
  K: "[d2,d3]@8 ~ [d2,d3]@3 [d2,d3]@5 ~@7", L: "[g1,g2]@8 ~ [g1,g2]@3 [g1,g2]@5 ~@4 [g1,g2]@3",
  M: "[a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@7", N: "[g1,g2]@8 ~ g2@3 [g2,g3]@5 ~ [f2,f3]@5 ~",
  O: "c3@8 ~ c3@3 c3@5 ~ c3@5 ~, a#3@11 ~", P: "[f2,f3]@5 ~ f3@3 f2@3 [f2,f3]@5 ~@7",
  Q: "[f2,f3]@8 ~ [f2,f3]@3 [f2,f3]@5 ~ [g2,g3]@5 ~", R: "f3@11 ~ e3@11 ~", S: "d2@3 d2@5 ~ c2@5 ~@10",
  T: "f2@11 ~ e2@11 ~", U: "[[d2,d3]@3 [d2,d3]@5 ~@4 [g1,g2]@22 ~@14]/2",
  V: "[~@14 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~@7 [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@7 [e2,e3]@8 ~ [e2,e3]@3 [e2,e3]@5 ~ [e2,e3]@5 ~ [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~ c3@5 ~@4 f1@3 a1@3 c2@5 ~@4 f1@3 ~@6 d2@3 d2@3 d2@3 c2@3 c2@3 d#2@3 e2@3 ~@3 g1@3 b1@3 c2@3 ~@6 g1@3 ~@6 d2@3 d2@3 d2]/8", // C A E C
  W: "[~@2 [g2,g3]@5 ~ [g2,g3]@5 ~ [g2,g3]@3 [g2,g3]@3 [g2,g3]@3 [g2,g3]@3 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~@5]/2", // G C
  X: "[~@2 [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@4 [a1,a2]@3 [d2,d3]@8 ~ [d2,d3]@3 [d2,d3]@5 ~@5]/2", // A D
  Y: "[~@2 [g1,g2]@8 ~ [g1,g2]@3 [g1,g2]@5 ~@4 [g1,g2]@3 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~@5]/2", // G C
  Z: "~@2 [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@5", AA: "~@2 [d2,d3]@8 ~ [d2,d3]@3 [d2,d3]@5 ~@5",
  AB: "~@2 [g1,g2]@8 ~ g2@3 [g2,g3]@5 ~ [f2,f3]@4", AC: "~@2 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~@5",
  AD: "~@2 c3@8 ~ c3@3 c3@5 ~ c3@4, ~ a#3@11", AE: "~@2 [f2,f3]@5 ~ f3@3 f2@3 [f2,f3]@5 ~@5",
  AF: "~@2 [f2,f3]@8 ~ [f2,f3]@3 [f2,f3]@5 ~ [g2,g3]@4", AG: "~@2 [f2,f3]@11 ~ [e2,e3]@10",
  AH: "~@2 [d2,d3]@3 [d2,d3]@5 ~ [c2,c3]@5 ~@8", AI: "~@2 [f2,g#3]@11 ~ [e2,g3]@10",
  AJ: "[~@2 [d2,d3]@3 [d2,d3]@5 ~@4 [g1,g2]@22 ~@12]/2", AK: "~ g1@3 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~@3",
  AL: "~@4 [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@3", // A
  AM: "[~@4 [e2,e3]@8 ~ [e2,e3]@3 [e2,e3]@5 ~ [e2,e3]@5 ~ [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~ c3@5 ~@4 f1@3 a1@3 c2@5 ~@4 f1@2]/3", // E C
  AN: "~@7 d2@3 d2@3 d2@3 c2@3 c2@3 d#2@2", AO: "~ e2@3 ~@3 g1@3 b1@3 c2@3 ~@6 g1@2",
  AP: "[~@7 d2@3 d2@3 d2@3 [g2,g3]@5 ~ [g2,g3]@5 ~ [g2,g3]@3 [g2,g3]@3 [g2,g3]@3 [g2,g3]@3 [c2,c3]@8]/2", // G C
  AQ: "~ [c2,c3]@3 [c2,c3]@5 ~@7 [a1,a2]@8", AR: "~ [a1,a2]@3 [a1,a2]@5 ~@4 [a1,a2]@3 [d2,d3]@8",
  AS: "~ [d2,d3]@3 [d2,d3]@5 ~@7 [g1,g2]@8", AT: "~ [g1,g2]@3 [g1,g2]@5 ~@4 [g1,g2]@3 [c2,c3]@8",
  AU: "~ [a1,a2]@3 [a1,a2]@5 ~@7 [d2,d3]@8", AV: "~ g2@3 [g2,g3]@5 ~ [f2,f3]@5 ~ [c2,c3]@8",
  AW: "[~ [c2,c3]@3 [c2,c3]@5 ~@7 c3@8 ~ c3@3 c3@5 ~ c3@5 ~ [f2,f3]@5 ~ f3@2, ~@8 a#3@11 ~@5]/2", // C F
  AX: "~ f2@3 [f2,f3]@5 ~@7 [f2,f3]@8", // F
  AY: "[~ [f2,f3]@3 [f2,f3]@5 ~ [g2,g3]@5 ~ [f2,f3]@11 ~ [e2,e3]@11 ~ [d2,d3]@3 [d2,d3]@5]/2", // F G F E D
  AZ: "[~ [c2,c3]@5 ~@10 [f2,g#3]@11 ~ [e2,g3]@11 ~ [d2,d3]@3 [d2,d3]@5]/2", BA: "[~ [g1,g2]@6 ~@5]/2",
  BB: "~@4 g1@3 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5", BC: "~ [b1,b2]@5 ~ [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5",
  BD: "~@7 [e2,e3]@8 ~ [e2,e3]@3 [e2,e3]@5", BE: "~@7 [f2,f3]@8 ~ [f2,f3]@3 [f2,f3]@5",
  BF: "~@7 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5", // C
  BG: "[~@4 [f2,f3]@3 [f2,f3]@5 ~@4 [f2,f3]@3 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~ [b1,b2]@5 ~ [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@7 [e2,e3]@8 ~ [e2,e3]@3 [e2,e3]@5 ~@7 [f2,f3]@8 ~ [f2,f3]@3 [f2,f3]@5 ~@7 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~ [b1,b2]@5 ~ [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@7 [e2,e3]@8 ~ [e2,e3]@3 [e2,e3]@5 ~@7 [f2,f3]@5]/8", // F C B A E F C B …
  BH: "[~@4 [f2,f3]@3 [f2,f3]@5 ~@7 [c2,c3]@8 ~ [c2,c3]@3 [c2,c3]@5 ~ [b1,b2]@5 ~ [a1,a2]@8 ~ [a1,a2]@3 [a1,a2]@5 ~@7 [e2,e3]@8 ~ [e2,e3]@3 [e2,e3]@5 ~@7 [f2,f3]@8 ~ [f2,f3]@3 [f2,f3]@5 ~@12]/5", // F C B A E F
})).s("gm_electric_bass_finger").gain(0.35)

// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
  ~ A@5 B C B D E F G H I F G J I E K L M N O P ~ Q@5 ~@4 R S T U V S T W V R X Y Z AA Z AB ~@2 AC@5 ~@3 AD AE@2 AF@4 AG
  AH@2 AI AJ AK AL AM AL AN ~ AO AP AQ AR AS AP AQ AR AT AU AV AW AX AY AV AW AX AY AV AW AZ
>`.pickRestart({
  A: "[~@12 [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5 ~ [a3,e4,a4]@3 [a3,e4,a4]@8 ~ [a3,e4,a4]@5 ~ [e3,b3,e4]@5 ~ [e3,b3,e4]@3 [e3,b3,e4]@8 ~ [e3,b3,e4]@5 ~ [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@3]/5", // C5 A5 E5 C5 F5
  B: "[c4,g4,c5]@5 ~ [c4,g4,c5]@5 ~ [d4,a4,d5]@5 ~ [d4,a4,d5]@3 [d4,a4,d5]@3", // C5 D5
  C: "[c4,g4,c5]@5 ~ [c4,g4,c5]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@3", // C5 F5
  D: "[g3,d4,g4]@5 ~ [g3,d4,g4]@3 [g3,d4,g4]@8 ~ [g3,d4,g4]@5 ~", // G5
  E: "[c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~", F: "[a3,e4,a4]@5 ~ [a3,e4,a4]@16 ~@2",
  G: "[d4,a4,d5]@5 ~ [d4,a4,d5]@3 [d4,a4,d5]@8 ~ [d4,a4,d5]@5 ~", H: "[g3,d4,g4]@5 ~ [g3,d4,g4]@16 ~@2",
  I: "[c4,g4,c5]@5 ~ [c4,g4,c5]@16 ~@2", J: "[g3,d4,g4]@5 ~ [g3,d4,g4]@3 [g3,d4,g4]@8 ~ [f3,c4,f4]@5 ~",
  K: "[f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@8 ~ [f3,c4,f4]@5 ~", // F5
  L: "[f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@8 ~ [g3,d4,g4]@5 ~", // F5 G5
  M: "[f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@3 [c4,g4,c5]@5 ~ [c4,g4,c5]@5 ~", // F5 C5
  N: "[d4,a4,d5]@5 ~ [d4,a4,d5]@5 ~ [c4,g4,c5]@11 ~", O: "[f3,c4,f4]@5 ~ [f3,c4,f4]@5 ~ [c4,g4,c5]@11 ~",
  P: "[d4,a4,d5]@5 ~ [d4,a4,d5]@3 [d4,a4,d5]@8 ~@7", // D5
  Q: "[~@14 [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5 ~ [a3,e4,a4]@3 [a3,e4,a4]@8 ~ [a3,e4,a4]@5 ~ [e3,b3,e4]@5 ~ [e3,b3,e4]@3 [e3,b3,e4]@8 ~ [e3,b3,e4]@5 ~ [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~@11]/5", // C5 A5 E5 C5
  R: "~@2 [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@4", S: "~@2 [a3,e4,a4]@5 ~ [a3,e4,a4]@16",
  T: "~@2 [d4,a4,d5]@5 ~ [d4,a4,d5]@3 [d4,a4,d5]@8 ~ [d4,a4,d5]@4", U: "~@2 [g3,d4,g4]@5 ~ [g3,d4,g4]@16",
  V: "~@2 [c4,g4,c5]@5 ~ [c4,g4,c5]@16", W: "~@2 [g3,d4,g4]@5 ~ [g3,d4,g4]@3 [g3,d4,g4]@8 ~ [f3,c4,f4]@4",
  X: "~@2 [f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@8 ~ [f3,c4,f4]@4", // F5
  Y: "~@2 [f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@8 ~@5", // F5
  Z: "~@2 [f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@3 [c4,g4,c5]@5 ~ [c4,g4,c5]@4", // F5 C5
  AA: "~@2 [d4,a4,d5]@5 ~ [d4,a4,d5]@3 [d4,a4,d5]@3 [c4,g4,c5]@5 ~ [c4,g4,c5]@4", // D5 C5
  AB: "~@2 [d4,a4,d5]@5 ~ [d4,a4,d5]@3 [d4,a4,d5]@8 ~@5", // D5
  AC: "[~@4 [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5 ~ [a3,e4,a4]@3 [a3,e4,a4]@8 ~ [a3,e4,a4]@5 ~ [e3,b3,e4]@5 ~ [e3,b3,e4]@3 [e3,b3,e4]@8 ~ [e3,b3,e4]@5 ~ [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~@21]/5", // C5 A5 E5 C5
  AD: "~@16 [c4,g4,c5]@5 ~ [c4,g4,c5]@2", // C5
  AE: "[~ [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5 ~ [a3,e4,a4]@16 ~@2 [d4,a4,d5]@5 ~ [d4,a4,d5]@2]/2", // C5 A5 D5
  AF: "[~ [d4,a4,d5]@8 ~ [d4,a4,d5]@5 ~ [g3,d4,g4]@5 ~ [g3,d4,g4]@16 ~@2 [c4,g4,c5]@5 ~ [c4,g4,c5]@16 ~@2 [a3,e4,a4]@5 ~ [a3,e4,a4]@16 ~@2 [d4,a4,d5]@5 ~ [d4,a4,d5]@2]/4", // D5 G5 C5 A5 D5
  AG: "~ [d4,a4,d5]@8 ~ [d4,a4,d5]@5 ~ [g3,d4,g4]@5 ~ [g3,d4,g4]@2", // D5 G5
  AH: "[~ [g3,d4,g4]@8 ~ [f3,c4,f4]@5 ~ [c4,g4,c5]@5 ~ [c4,g4,c5]@16 ~@2 [c4,g4,c5]@5 ~ [c4,g4,c5]@2]/2", // G5 F5 C5
  AI: "~ [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@2", // C5 F5
  AJ: "~ [f3,c4,f4]@8 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@2", // F5
  AK: "~ [f3,c4,f4]@8 ~ [g3,d4,g4]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@2", // F5 G5 F5
  AL: "~ [f3,c4,f4]@3 [c4,g4,c5]@5 ~ [c4,g4,c5]@5 ~ [d4,a4,d5]@5 ~ [d4,a4,d5]@2", // F5 C5 D5
  AM: "~ [d4,a4,d5]@3 [c4,g4,c5]@5 ~ [c4,g4,c5]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@2", AN: "~ [d4,a4,d5]@8 ~@15",
  AO: "~@7 [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8", AP: "~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5 ~ [a3,e4,a4]@3 [a3,e4,a4]@8",
  AQ: "~ [a3,e4,a4]@5 ~ [e3,b3,e4]@5 ~ [e3,b3,e4]@3 [e3,b3,e4]@8", // A5 E5
  AR: "~ [e3,b3,e4]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@3 [f3,c4,f4]@8", // E5 F5
  AS: "~ [f3,c4,f4]@5 ~ [c4,g4,c5]@5 ~ [c4,g4,c5]@3 [c4,g4,c5]@8", // F5 C5
  AT: "~ [f3,c4,f4]@5 ~ [f3,c4,f4]@5 ~ [f3,c4,f4]@3 c4@3 [c4,g4,c5]@5, ~@2 [f3,f4]", // F5 C5 F
  AU: "~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5, ~ [f3,f4]@5 ~@18", // C5 A5 F
  AV: "~ [a3,e4,a4]@3 [a3,e4,a4]@8 ~ [a3,e4,a4]@5 ~ [e3,b3,e4]@5", // A5 E5
  AW: "~ [e3,b3,e4]@3 [e3,b3,e4]@8 ~ [e3,b3,e4]@5 ~ [f3,c4,f4]@5", // E5 F5
  AX: "~ [f3,c4,f4]@3 [f3,c4,f4]@8 ~ [f3,c4,f4]@5 ~ [c4,g4,c5]@5", // F5 C5
  AY: "~ [c4,g4,c5]@3 [c4,g4,c5]@8 ~ [c4,g4,c5]@5 ~ [a3,e4,a4]@5", AZ: "~ [f3,c4,f4]@3 [f3,c4,f4]@8 ~ [f3,c4,f4]@5 ~@6",
})).s("gm_acoustic_guitar_steel").gain(0.3).pan(0.2)

// chords · acoustic guitar steel · "Guitar2"
const acoustic_guitar_steel_2 = note(`<
  ~ A@5 B C B D E F G H I J K L I M N O P@2 Q R ~ S@5 ~@4 T@2 U@3 V@3 W X@3 Y@3 Z ~@2 AA AB AC AD AE ~@3 AF AG AH AI AJ
  AK AL AM AN AO AP AQ AR AS AT AU AV ~ AW@8 AX@8 AY@5
>`.pickRestart({
  A: "[~@12 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [e4,g4,a#4]@8 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@3]/5", // C Am Em Edim F
  B: "[e4,g4,c5]@8 ~ [e4,g4,c5]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@3", // C F
  C: "[e4,g4,c5]@8 ~ [e4,g4,c5]@3 [f4,g#4,c5]@8 ~ [f4,g#4,c5]@3", // C Fm
  D: "[f4,g4,c5]@8 ~ [f4,g4,c5]@5 ~ [f4,g4,c5]@5 ~ [f4,g4,c5]@3", // Fsus2
  E: "[e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3", F: "[e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@8 ~",
  G: "[f4,a4,d5]@8 ~ [f4,a4,d5]@5 ~ [f4,a4,d5]@5 ~ [f4,a4,d5]@3", // Dm
  H: "[d4,g4,b4]@8 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@3", I: "[e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@8 ~",
  J: "[e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3", // Am
  K: "[d4,f4,a4]@8 ~ [d4,f4,a4]@5 ~ [d4,f4,a4]@5 ~ [d4,f4,a4]@3", // Dm
  L: "[g4,b4,d5]@8 ~ [g4,b4,d5]@5 ~ [g4,b4,d5]@3 [f4,a4,c5]@5 ~", // G F
  M: "[e4,g4,a#4]@8 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@3", // Edim
  N: "[f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3", // F
  O: "[f4,g#4,c5]@8 ~ [f4,g#4,c5]@5 ~ [f4,g#4,c5]@3 [d4,g4,b4]@5 ~", // Fm G
  P: "[f4,a4,c5]@8 ~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@3", // F C
  Q: "[f4,g#4,c5]@8 ~ [f4,g#4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@3", R: "[f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~@10",
  S: "[~@14 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [e4,g4,a#4]@8 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@3 ~@10]/5", // C Am Em Edim
  T: "[~@2 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@7]/2", // C Am
  U: "[~@2 [f4,a4,d5]@8 ~ [f4,a4,d5]@5 ~ [f4,a4,d5]@5 ~ [f4,a4,d5]@3 [d4,g4,b4]@8 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@7]/3", // Dm G C
  V: "[~@2 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [d4,f4,a4]@8 ~ [d4,f4,a4]@5 ~ [d4,f4,a4]@5 ~ [d4,f4,a4]@3 [g4,b4,d5]@8 ~ [g4,b4,d5]@5 ~ [g4,b4,d5]@3 [f4,a4,c5]@4]/3", // Am Dm G F
  W: "~@2 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@7", // C
  X: "[~@2 [e4,g4,a#4]@8 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3 [f4,g#4,c5]@8 ~ [f4,g#4,c5]@5 ~@8]/3", // Edim F Fm
  Y: "[~@2 [f4,a4,c5]@8 ~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@3 [f4,g#4,c5]@8 ~ [f4,g#4,c5]@3 [e4,g4,c5]@10]/3", // F C F C Fm C
  Z: "~@2 [f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~@8", AA: "~@4 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5",
  AB: "~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5", // C Am
  AC: "~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5", // Am Em
  AD: "~ [e4,g4,b4]@3 [e4,g4,a#4]@8 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@5", AE: "~ [e4,g4,a#4]@3 ~@20", AF: "~@2 [e4,g4,c5]",
  AG: "~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8", AH: "~ [e4,a4,c5]@5 ~ [e4,a4,c5]@8 ~ [f4,a4,d5]@8",
  AI: "~ [f4,a4,d5]@5 ~ [f4,a4,d5]@5 ~ [f4,a4,d5]@3 [d4,g4,b4]@8", // Dm G
  AJ: "~ [d4,g4,b4]@5 ~ [d4,g4,b4]@5 ~ [d4,g4,b4]@3 [e4,g4,c5]@8", AK: "~ [e4,g4,c5]@5 ~ [e4,g4,c5]@8 ~ [e4,a4,c5]@8",
  AL: "~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [d4,f4,a4]@8", // Am Dm
  AM: "~ [d4,f4,a4]@5 ~ [d4,f4,a4]@5 ~ [d4,f4,a4]@3 [g4,b4,d5]@8", // Dm G
  AN: "~ [g4,b4,d5]@5 ~ [g4,b4,d5]@3 [f4,a4,c5]@5 ~ [e4,g4,c5]@8", AO: "~ [e4,g4,c5]@5 ~ [e4,g4,c5]@8 ~ [e4,g4,a#4]@8",
  AP: "~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@5 ~ [e4,g4,a#4]@3 [f4,a4,c5]@8", // Edim F
  AQ: "~ [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3 [f4,g#4,c5]@8", // F Fm
  AR: "~ [f4,g#4,c5]@5 ~ [f4,g#4,c5]@3 [d4,g4,b4]@5 ~ [f4,a4,c5]@8", // Fm G F
  AS: "~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@3 [f4,a4,c5]@8", // F C F
  AT: "~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@3 [f4,g#4,c5]@8", AU: "~ [f4,g#4,c5]@3 [e4,g4,c5]@11 ~ [f4,a4,c5]@8",
  AV: "~ [f4,a4,c5]@5 ~@18", // F
  AW: "[~@7 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@2]/8", // C Am Em F C Am Em F
  AX: "[~@4 [f4,a4,c5]@3 [f4,a4,c5]@8 ~ c5@3 c5@3 [f4,a4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [f4,a4,c5]@5, ~@16 [f4,a4]@5 ~@7 [f4,a4]@3 ~@161, ~@19 [e4,g4]@8 ~@165]/8", // F C Am Em F C Am Em …
  AY: "[~@4 [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3 [e4,g4,c5]@8 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@5 ~ [e4,g4,c5]@3 [e4,a4,c5]@8 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@5 ~ [e4,a4,c5]@3 [e4,g4,b4]@8 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@5 ~ [e4,g4,b4]@3 [f4,a4,c5]@8 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@5 ~ [f4,a4,c5]@3 ~@5]/5", // F C Am Em F
})).s("gm_acoustic_guitar_steel").gain(0.31).pan(0.8)

// chords · recorder · "Flute"
const recorder = note("<~@5 A@3 B@2 ~@21 C@5 ~@22 D E@2 F@2 ~@38>".pickRestart({
  A: "[~@18 c6@11 ~ a5@3 g5@3 e5@3 g5@3 a5@3 c5@13 ~@5 [f5,g#5]@3 [f5,g#5]@3 [f5,g#5]@3]/3", // Fm
  B: "[[e5,g5]@3 [e5,g5] e5 g5 [e5,g5]@3 [e5,g5]@3 [d5,f5]@3 [d5,f5]@3 [d5,f5]@3 [c5,f5,a5]@24 ~@3]/2", // Em Dm F
  C: "[~@20 c6@11 ~ a5@3 g5@3 e5@3 g5@3 a5@3 c5@13 ~@5 [f5,g#5]@3 [f5,g#5]@3 [f5,g#5]@3 [e5,g5]@3 [e5,g5]!2 ~ [e5,g5]@3 [e5,g5]@3 [d5,f5]@3 [d5,f5]@3 [d5,f5]@3 [c5,f5,a5]@24 ~]/5", // Fm Em Dm F
  D: "~@10 c6@11 ~ a5@2",
  E: "[~ g5@3 e5@3 g5@3 a5@3 c5@13 ~@5 [f5,g#5]@3 [f5,g#5]@3 [f5,g#5]@3 [e5,g5]@3 [e5,g5] ~ [e5,g5] [e5,g5]@2]/2", // Fm Em
  F: "[~ [e5,g5]@3 [d5,f5]@3 [d5,f5]@3 [d5,f5]@3 [c5,f5,a5]@24 ~@11]/2", // Em Dm F
})).s("gm_recorder").gain(0.35).pan(0.4)

// other · string ensemble 2 · "Strings"
const string_ensemble_2 = note(`<
  ~@27 A@5 ~@12 B C D E F G H I@3 J K L@3 ~@11 M N@2 O P@2 Q@2 R@2 S T U V S T U V W@8 X@5
>`.pickRestart({
  A: "[~@14 [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~@7 [a2,a3]@8 ~ [a2,a3]@3 [a2,a3]@5 ~@7 [e3,e4]@8 ~ [e3,e4]@3 [e3,e4]@5 ~ [e3,e4]@5 ~ [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~ c4@5 ~@11]/5", // C A E C
  B: "~@2 [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~@5", C: "~@2 c4@8 ~ c4@3 c4@5 ~ c4@4, ~ a#4@11",
  D: "~@2 [f3,f4]@5 ~ f4@3 f3@3 [f3,f4]@5 ~@5", E: "~@2 [f3,f4]@8 ~ [f3,f4]@3 [f3,f4]@5 ~ [g3,g4]@4",
  F: "~@2 [f3,f4]@11 ~ [e3,e4]@10", G: "~@2 [d3,d4]@3 [d3,d4]@5 ~ [c3,c4]@5 ~@8", H: "~@2 [f3,g#4]@11 ~ [e3,g4]@10",
  I: "[~@2 [d3,d4]@3 [d3,d4]@5 ~@4 [g3,c4]@37 ~@21]/3", J: "~@4 [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~@3",
  K: "~@4 [a2,a3]@8 ~ [a2,a3]@3 [a2,a3]@5 ~@3", // A
  L: "[~@4 [e3,e4]@8 ~ [e3,e4]@3 [e3,e4]@5 ~ [e3,e4]@5 ~ [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~ c4@5 ~@21]/3", // E C
  M: "~@2 [c3,c4]", N: "[~ [c3,c4]@3 [c3,c4]@5 ~@7 c4@8 ~ c4@3 c4@5 ~ c4@5 ~ [f3,f4]@5 ~ f4@2, ~@8 a4@11 ~@5]/2",
  O: "~ f3@3 [f3,f4]@5 ~@7 [f3,f4]@8", // F
  P: "[~ [f3,f4]@3 [f3,f4]@5 ~ [g3,g4]@5 ~ [f3,f4]@11 ~ [e3,e4]@11 ~ [d3,d4]@3 [d3,d4]@5]/2", // F G F E D
  Q: "[~ [c3,c4]@5 ~@10 [f3,g#4]@11 ~ [e3,g4]@11 ~ [d3,d4]@3 [d3,d4]@5]/2", R: "[~@4 [g2,g3]@35 ~@9]/2",
  S: "~@7 [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5", T: "~ [b2,b3]@5 ~ [a2,a3]@8 ~ [a2,a3]@3 [a2,a3]@5",
  U: "~@7 [e3,e4]@8 ~ [e3,e4]@3 [e3,e4]@5", V: "~@7 [f3,f4]@8 ~ [f3,f4]@3 [f3,f4]@5",
  W: "[~@4 [f3,f4]@3 [f3,f4]@5 ~@4 [f3,f4]@3 [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~ [b2,b3]@5 ~ [a2,a3]@8 ~ [a2,a3]@3 [a2,a3]@5 ~@7 [e3,e4]@8 ~ [e3,e4]@3 [e3,e4]@5 ~@7 [f3,f4]@8 ~ [f3,f4]@3 [f3,f4]@5 ~@7 [c3,c4]@8 ~ [c3,c4]@3 [c3,c4]@5 ~ [b2,b3]@5 ~ [a2,a3]@8 ~ [a2,a3]@3 [a2,a3]@5 ~@7 [e3,e4]@8 ~ [e3,e4]@3 [e3,e4]@5 ~@7 [f3,f4]@5]/8", // F C B A E F C B …
// … 102 more lines

More by Electric Light Orchestra