Strudelify

I Believe in Father Christmas

Emerson, Lake & Palmer

KeyD majorTempo115 bpm
0:00/0:00
// I Believe in Father Christmas — Emerson, Lake & Palmer
// 115 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 11, 4/4 at bar 12, 2/4 at bar 37, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 2 "Guitar-1" named as a guitar, played on electric guitar clean (its vibraphone patch is not one); ch 3 "Guitar-2" named as a guitar, played on electric guitar clean (its glockenspiel patch is not one); ch 4 "Guitar-3" named as a guitar, played on electric guitar clean (its music box patch is not one); ch 5 "Guitar-4" named as a guitar, played on electric guitar clean (its tubular bells patch is not one)
// note: duplicate parts dropped: ch 11 "MiniMoog" lead 2 sawtooth (copy of ch 12 "MiniMoog*" synth bass 1)
// note: Full arrangement: all 95 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Guitar-4.
setcpm(115/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 · church organ · "Lake"
const church_organ = note(`<
  ~@10 A@2 B@4 C@4 D E@5 ~@10 F G F H F G F H I J K L M N O@2 ~@9 P@7 Q@2 R@2 S@2 T U V@2 ~@17
>`.pickRestart({
  A: "[~@21 [g5,b5]@4 [f#5,a5]@11 ~ f#5@2 e5@2 d5@4 [d5,e5]@8 [d4,d5]@4 [d5,e5]@7, ~@21 d5@15 ~ d5@4 ~@23]/2", // G F#m Dsus2 D Dsus2
  B: "[~ [d5,f#5]@11 ~@9 [g5,b5]@4 [f#5,a5]@11 ~ f#5@2 e5@2 d5@4 [d5,e5]@8 [d4,d5]@4 [d4,d5]@15 ~@13 [g5,b5]@4 [f#5,a5]@11 ~ f#5@2 e5@2 d5@4 [d5,e5]@8 [d4,d5]@4 [d5,e5]@7, ~@21 d5@15 ~ d5@4 ~@44 d5@15 ~ d5@4 ~@23]/4", // D G F#m Dsus2 D G F#m Dsus2 …
  C: "[~ [d5,f#5]@11 ~@9 [g5,b5]@4 [f#5,a5]@11 ~ f#5@2 e5@2 d5@4 [d5,e5]@8 [d4,d5]@4 [d4,d5]@15 ~@13 [a5,c6]@4 [a5,c6]@4 [g5,b5]@6 [f#5,a5]@6 [e5,g5]@4 [f#5,a5]@8 [f#5,a5]@4 [e5,g5]@7, ~@21 d5@15 ~ d5@4 ~@87]/4", // D G F#m Dsus2 D Am G F#m …
  D: "~ [d5,a5]@6 ~@6 [a5,c6]@6 [a5,c6]@6 [g5,b5]@7", // D5 Am G
  E: "[~ [d5,g5]@6 [g5,a5]@6 [f#5,a5]@4 [e5,g5]@4 [d5,a5]@4 [d5,a5]@16 ~@4 [a5,d6]@7 ~ [a5,d6]@2 [a5,d6]@6 [a5,c#6]@7 ~ [d5,a5]@2 [d5,b5]@6 [g5,b5]@4 [f#5,a5]@4 g5@2 a5@6 [d5,a5]@7 ~@5 [d5,e5]@4 [d5,f#5]@8 f#5@2 f#5@6 [a4,e5]@6 d5@2 [b3,b4]@4 [d4,d5]@19 ~@4, ~@85 e5@7 ~@25 d5@7 ~@36]/5", // G5 Gsus2 F#m Em D5 A D5 G …
  F: "~@8 [g5,b5]@4 [f#5,a5]@11 ~ f#5@2 e5@2 d5@4, ~@8 d5@15 ~ d5@4 ~@4", // G F#m
  G: "[d5,e5]@8 [d4,d5]@4 [d5,e5]@8 [d5,f#5]@11 ~", H: "[d5,e5]@8 [d4,d5]@4 [d4,d5]@15 ~@5",
  I: "~@3 d5 [a5,c6] [a5,c6]@3 [g5,b5]@3 [f#5,a5]@3 [e5,g5]@2", // Am G F#m Em
  J: "[f#5,a5]@4 [f#5,a5]@2 [e5,g5]@4 [d5,a5]@4 [d5,a5]!2", // F#m Em D5
  K: "[a5,c6]@5 [a5,c6]@5 ~ [a5,c6]@5 [g5,b5]@7 ~ [d5,g5]@2 [g5,a5]@6", // Am G G5 Gsus2
  L: "[f#5,a5]@2 [e5,g5]@2 [d5,a5]@2 [d5,a5]@4 ~@4 [d5,a5]!2", // F#m Em D5
  M: "[a5,d6]@7 ~ [a5,d6]@2 [a5,d6]@6 [a5,c#6]@7 ~ [d5,a5]@6 a5@2", // D5 A D5
  N: "[g5,b5]@4 [f#5,a5]@4 g5@2 a5@6 [d5,a5]@7 ~@5 [d5,e5]@4, ~@8 e5@7 ~@17", // G F#m D5 Dsus2
  O: "[[d5,f#5]@8 f#5@2 f#5@6 e5@4 d5@4 [c4,c5]@4 [d4,d5]@19 ~@17, ~@8 d5@7 ~ a4@8 ~@40]/2", // D C D
  P: "[~@24 [g5,b5]@4 [f#5,a5]@8 f#5@2 e5@6 d5@4 [d5,e5]@6 [d4,d5]@6 [d5,e5]@8 [a4,f#5]@12 ~@8 [g5,b5]@4 [f#5,a5]@8 f#5@2 e5@6 d5@4 [d5,e5]@8 [d4,d5]@4 [d4,d5]@15 ~@13 [g5,b5]@4 [f#5,a5]@11 ~ f#5@2 e5@2 d5@4 [d5,e5]@8 [d4,d5]@4 [d5,e5]@8 [d5,f#5]@11 ~@5 [g5,b5]@8 [f#5,a5]@4, ~@24 d5@11 ~ d5@8 ~@44 d5@11 ~ d5@8 ~@44 d5@15 ~ d5@4 ~@40 d5@11 ~]/7", // G F#m Dsus2 D Dsus2 D G F#m …
  Q: "[a5@4 a5@4 f#5@2 e5@2 d5@4 [d5,e5]@8 [d4,d5]@4 [d4,d5]@15 ~@13 [g5,c6]@6 ~@2, ~@2 d5 ~@13]/2", // Dsus2 D C5
  R: "[[g5,b5]@3 [f#5,a5]@3 g5 a5 [f#5,a5]@4 [f#5,a5]@2 [e5,g5]@4 [d5,a5]@4 ~@6 [g5,c6]@3 ~, ~@3 e5 ~@12]/2", // G F#m Em D5 C5
  S: "[[g5,b5]@6 [f#5,a5]@6 g5@2 a5@2 [f#5,a5]@8 [e5,g5]@4 [d5,a5]@12 ~@4 d6@2 d6@2 d6@4 ~ d6@5 ~ d6@4 ~, ~@12 e5@4 ~@28 a5@4 a5@13 ~@3]/2", // G F#m Em D5
  T: "[a5,c#6]@7 ~ [d5,a5]@7 ~ [g5,b5]@4 [f#5,a5]@4 g5@2 a5@6, ~@24 e5@7 ~", // A D5 G F#m
  U: "[d5,a5]@7 ~@5 [d5,e5]@4 f#5@4 ~ f#5@4 ~@2 f#5@4 ~, ~@16 d5@13 ~@3", // D5 Dsus2
  V: "[e5@2 d5@2 [c4,c5] [d4,d5]@3 d5@11 ~@13, a4@8 ~@8 d4@19 ~@29]/2", // C D
})).s("gm_church_organ").gain(0.25)

// other · electric guitar clean · "Guitar-2"
const electric_guitar_clean = note(`<
  A B C D E D F D G@8 H@8 I@2 J@7 K@3 L M L N L M L N O P O Q R L S T U V L W L W L X Y Z S AA AB AA S AA AB AC AD AE AF
  AG AH AI M AJ AK AH S AL S AL S AM AN ~@8
>`.pickRestart({
  A: "~@27 d5@5", B: "~@3 e5@2 d5@5 ~ c#5@6 ~@2 d5@2 c#5@5 ~ b4@5", C: "~@3 c#5@2 b4@5 ~ a4@6 ~@2 b4@2 a4@5 ~ g4@5",
  D: "~@3 a4@2 g4@5 ~ f#4@6 ~@2 g4@2 f#4@5 ~ e4@5", E: "~@3 e4@6 ~@2 e4@6 ~@2 e4@6 ~@2 g4@5",
  F: "~@3 e4@6 ~@2 f#4 ~ e4@9 ~@5 g4@5",
  G: "[~@3 e4@6 ~@2 f#4 ~ e4@9 ~@5 f#4@2 e4@9 ~@5 f#4@2 e4@10 ~@4 f#4@2 ~ e4@10 ~@5 g4@6 ~@2 g4@6 ~@2 f#4@6 ~@2 f#4@6 ~@2 e4@6 ~@2 e4@6 ~@2 f#4@6 ~@2 f#4@6 ~@2 g4@6 ~@2 g4@6 ~@2 f#4@6 ~@2 f#4@6 ~@2 e4@6 ~@2 f#4@6 ~@2 f#4@6 ~@2 f#4@6 ~@2 g4@6 ~@2 g4@6 ~@2 f#4@6 ~@2 f#4@6 ~@2 e4@6 ~@2 e4@6 ~@2 f#4@3]/8",
  H: "[~@5 f#4@6 ~@2 g4@6 ~@2 g4@6 ~@2 f#4@6 ~@2 f#4@6 ~@2 e4@6 ~@2 f#4@6 ~@2 f#4@6 ~@2 f#4@6 ~@2 g4@8 g4@8 g4@8 g4@8 f#4@8 f#4@8 e4@8 f#4@8 g4@8 g4@8 g4@8 g4@8 f#4@8 e4@8 f#4@8 f#4@8 a4@6 ~@2 a4@6 ~@2 a4@6 ~@2 a4@6 ~@2 g4@6 ~@2 g4@6 ~@2 f#4@3]/8",
  I: "[~@5 f#4@6 ~@2 f#4@6 ~@2 f#4@6 ~@2 e4@6 ~@2 e4@6 ~@2 f#4@6 ~@2 f#4@6 ~@5]/2",
  J: "[~@13 d5@6 ~@2 d5@6 ~@2 c#5@6 ~@2 c#5@6 ~@2 b4@6 ~@2 b4@6 ~@2 a4@6 ~@2 a4@6 ~@2 g4@6 ~@2 g4@6 ~@2 f#4@6 ~@2 f#4@6 ~@2 e4@6 ~@2 e4@6 ~@2 e4@6 ~@2 e4@6 ~@2 g4@6 ~@2 g4@6 ~@2 f#4@6 ~@2 f#4@6 ~@2 e4@6 ~@2 e4@6 ~@2 e4@6 ~@2 e4@6 ~@2 g4@6 ~@2 g4@6 ~@2 f#4@3]/7",
  K: "[~@5 f#4@6 ~@2 e4@6 ~@2 e4@6 ~@2 f#4@2 e4@9 ~@5 f#4 ~ e4@9 ~@5 f#4@2 e4@10 ~@5 f#4@2 e4@10 ~@6]/3",
  L: "g4@3 ~ g4@3 ~ f#4@3 ~ f#4@3 ~", M: "e4@3 ~ e4@3 ~ f#4@3 ~ f#4@3 ~", N: "e4@3 ~ f#4@3 ~ f#4@3 ~ f#4@3 ~",
  O: "g4!4", P: "f#4!2 e4 f#4", Q: "f#4 e4 f#4!2", R: "a4@3 ~ a4@3 ~ a4@3 ~ a4@3 ~", S: "f#4@3 ~ f#4@3 ~ e4@3 ~ e4@3 ~",
  T: "f#4@3 ~ f#4@3 ~@9", U: "d5@3 ~ d5@3 ~ c#5@3 ~ c#5@3 ~", V: "b4@3 ~ b4@3 ~ a4@3 ~ a4@3 ~",
  W: "e4@3 ~ e4@3 ~ e4@3 ~ e4@3 ~", X: "e4@6 ~@2 e4@6 ~@2 f#4@2 e4@9 ~@5", Y: "f#4@2 e4@9 ~@5 f#4 ~ e4@9 ~@5",
  Z: "f#4@2 e4@9 ~@5 g4@6 ~@2 g4@6 ~@2", AA: "f#4@3 ~ f#4@3 ~ g4@3 ~ g4@3 ~", AB: "f#4@3 ~ f#4@3 ~ e4@3 ~ f#4@3 ~",
  AC: "f#4@3 ~ f#4@3 ~ g4@4 g4@4", AD: "g4!2 f#4!2", AE: "e4 f#4 g4!2", AF: "g4!2 f#4 e4",
  AG: "f#4@4 f#4@4 a4@3 ~ a4@3 ~", AH: "a4@3 ~ a4@3 ~ g4@3 ~ g4@3 ~", AI: "f#4@3 ~ f#4@3 ~ f#4@3 ~ f#4@3 ~",
  AJ: "~@8 d5@3 ~ d5@3 ~", AK: "c#5@3 ~ c#5@3 ~ b4@3 ~ b4@3 ~", AL: "e4@3 ~ e4@3 ~ g4@3 ~ g4@3 ~",
  AM: "f#4@2 e4@9 ~@5 f#4@2 e4@9 ~@5", AN: "f#4@2 e4@10 ~@5 f#4@2 e4@10 ~@3",
})).s("gm_electric_guitar_clean").gain(0.3)

// other · electric guitar clean · "Guitar-3"
const electric_guitar_clean_2 = note(`<
  A@2 B@8 C D E F@12 G@2 D E F@3 H F I J K@2 L@8 M@6 N@6 O@2 P Q R S@8 T@6 U R V@7 W ~@8
>`.pickRestart({
  A: "[~@31 d4@6 ~@2 d4@6 ~@2 d4@6 ~@2 d4@7 ~ d4]/2",
  B: "[~@7 d4@6 ~@2 d4@6 ~@2 d4@7 ~ d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@4 d3@8 ~@4 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@4 d3@8 ~@4 d4@4 d3@8 ~@4 d4@4 d3@8 ~@5]/8",
  C: "d4@4 d3@9 ~@4 d4@6 ~@2 d4@6 ~", D: "~ d4@6 ~@2 d4@7 ~ d4@6 ~@2 d4@6 ~", E: "~ d4@6 ~@2 d4@7 ~ d4@8 d4@7",
  F: "~ d4@8 d4@8 d4@8 d4@7", G: "[~ d4@8 d4@8 d4@8 d4@4 d3@16 ~@4 d4@6 ~@2 d4@6 ~]/2", H: "~ d4@4 d3@8 ~@4 d4@8 d4@7",
  I: "~ d4@4 d3@8 ~@4 d4@4 d3@8 ~@3", J: "~ d4@4 ~ d3@8 ~@4 d4@4 ~ d3@9",
  K: "[~@4 d4@6 ~@2 d4@6 ~@2 d4@6 ~@2 d4@7 ~ d4@6 ~@2 d4@6 ~@2 d4@6 ~@2 d4@4]/2",
  L: "[~ d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4]/8",
  M: "[~ d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4 d3@4]/6",
  N: "[~@4 d4@6 ~@2 d4@6 ~@2 d4@6 ~@2 d4@7 ~ d4@6 ~@2 d4@6 ~@2 d4@6 ~@2 d4@7 ~ d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@4 d3@8]/6",
  O: "[~ d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4 d3@2]/2", P: "~ d4 d3@2 ~ d4 d3@2", Q: "~@2 d4@2 d3@4 ~@2 d4@3 ~ d4@2",
  R: "~@4 d4@6 ~@2 d4@7 ~ d4@6 ~@2 d4@4",
  S: "[~@4 d4@6 ~@2 d4@7 ~ d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@4]/8",
  T: "[~ d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4]/6",
  U: "d3@8 ~@2 d4@3 ~ d4@2",
  V: "[~@4 d4@6 ~@2 d4@7 ~ d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@4 d3@8 ~@4 d4@8 d4@8 d4@8 d4@8 d4@8 d4@8 d4@4 d3@8 ~@4 d4@4 d3@8]/7",
  W: "~@4 d4@4 d3@8 ~@5 d4@4 d3@7",
})).s("gm_electric_guitar_clean").gain(0.35).pan(0.4)

// other · electric guitar clean · "Guitar-4"
const electric_guitar_clean_3 = note("<~@30 [~@5 a4@6 ~@21] ~@24 [~@12 a4@3 ~] ~@25 [~@4 a4@3 ~@9] ~@13>")
  .s("gm_electric_guitar_clean").gain(0.3).pan(0.3)

// other · guitar harmonics · "Gt.Harmonics"
const guitar_harmonics = note("<~@41 A B ~@17 C@2 ~@33>".pickRestart({
  A: "~@5 d4 a3 f#4", B: "a4 ~", C: "[~@2 f#4 d4@3 f#4 d4@3 f#4 d4@3 ~@2]/2",
})).s("gm_guitar_harmonics").gain(0.5).pan(0.7)

// other · electric guitar jazz · "Guitar-5"
const electric_guitar_jazz = note("<~@51 A B C D E F G H I ~@17 J@3 K@2 L M N@2 ~@9>".pickRestart({
  A: "~@20 f#3@3 ~ g3@3 ~ f#3@3 ~", B: "a3@19 ~ f#3@3 ~ g3@3 ~ f#3@3 ~", C: "a3@19 ~ f#4@3 ~ g4@3 ~ f#4@3 ~",
  D: "a4@6 ~@2 g4@3 ~ f#4@3 ~ e4@6 ~@2 d4@3 ~ c#4@3 ~", E: "a3@19 ~@5 g3@3 ~ f#3@3 ~", F: "e3@7 ~ b3@7 ~ a3@7 ~ g3@7 ~",
  G: "a3@5 ~ g3@2 f#3@5 ~ g3@2 a3@7 ~ d4@3 ~ b3@3 ~", H: "g3@7 ~ f#3@3 ~ g3@3 ~ a3@7 ~ a3@7 ~", I: "d3@27 ~@5",
  J: "[~@4 f#3@3 ~ g3@3 ~ f#3@3 ~ a3@19 ~ f#3@3 ~ g3@3 ~ f#3@3 ~ a3@19 ~ f#4@3 ~ g4@3 ~ f#4@3 ~ a4@6 ~@2 g4@3 ~ f#4@3 ~]/3",
  K: "[e4@6 ~@2 d4@3 ~ c#4@3 ~ a3@19 ~@5 g3@3 ~ f#3@3 ~ e3@7 ~ b3@7 ~]/2", L: "a3@7 ~ g3@7 ~ a3@5 ~ g3@2 f#3@5 ~ g3@2",
  M: "a3@7 ~ d4@3 ~ b3@3 ~ g3@7 ~ f#3@3 ~ g3@3 ~", N: "[a3@7 ~ a3@7 ~ d3@27 ~@21]/2",
})).s("gm_electric_guitar_jazz").gain(0.45)

// other · pad poly · "GX1"
const pad_poly = note("<~@26 A@4 B@5 ~@16 C D E F G H I J K ~@5 L@5 ~@2 M N O P Q R S T U@2 V W X@2 ~@9>".pickRestart({
  A: "[~@9 a4@3 ~ d5@3 ~ c#5@3 ~ b4@3 ~ c#5@3 ~ d5@7 ~ b4@7 ~ a4@7 ~ b4@7 ~ f#4@7 ~ a4@7 ~ b4@3 ~ a4@3 ~ g4@7 ~ d5@7 ~ c#5@2 d5@5 ~ a4@19]/4",
  B: "[~@5 g4@3 ~ f#4@3 ~ e4@7 ~ b4@7 ~ a4@7 ~ g4@7 ~ a4@5 ~ g4@2 f#4@5 ~ g4@2 a4@7 ~ d5@3 ~ b4@3 ~ g4@7 ~ f#4@3 ~ g4@3 ~ a4@7 ~ a4@7 ~ d4@27 ~@24]/5",
  C: "~@28 a4@3 ~", D: "d5@3 ~ c#5@3 ~ b4@3 ~ c#5@3 ~ d5@7 ~ b4@7 ~", E: "a4@7 ~ b4@7 ~ f#4@7 ~ a4@7 ~",
  F: "b4@3 ~ a4@3 ~ g4@7 ~ d5@7 ~ c#5@2 d5@5 ~", G: "a4@20 ~@4 g4@3 ~ f#4@3 ~", H: "e4@7 ~ b4@7 ~ a4@7 ~ g4@7 ~",
  I: "a4@5 ~ g4@2 f#4@5 ~ g4@2 a4@7 ~ d5@3 ~ b4@3 ~", J: "g4@7 ~ f#4@3 ~ g4@3 ~ a4@7 ~ a4@7 ~", K: "d4@27 ~@5",
  L: "[~@12 d5@2 d5 ~@13 d5@2 ~@2 d5@2 ~@2 d5@2 ~@2 d5@2 ~@2 c#5@2 ~@2 a4@6 ~@2 b4 ~ g4@5 ~ a4@10 ~@2 d5@2 ~@14 d5@2 ~@2 d5@2 ~@2 d5@2 ~@2 d5@2 ~@2 c#5@2 ~@2 a4@6 ~@2 b4 ~ g4@5 ~ a4@10 ~@22, ~ [d4,a4]@2 d4@2 [d4,a4]@2 d4@2 ~]/5", // D5
  M: "~@20 a4 ~ a4 ~ g4@5 ~ e5 ~", N: "~@4 a5 ~ b5 ~ a5@8 ~@4 [d5,f#5] ~ [e5,g5] ~ [d5,f#5]@8, d5 ~",
  O: "~@4 [c#5,e5] ~ [b4,d5] ~ [c#5,e5]@8 ~@4 [b4,d5] ~ [a4,c#5] ~ [b4,d5]@8", // C#m Bm C#m Bm A Bm
  P: "~@4 [a4,c#5] ~ [g4,b4] ~ [a4,c#5]@8 ~@4 [d5,f#5] ~ [e5,g5] ~ [d5,f#5]@8", // A G A D Em D
  Q: "~@4 [d5,e5] ~ [e5,g5] ~ [e5,a5]@8 ~@4 [d5,f#5] ~ [e5,g5] ~ [d5,a5]@3 ~ [a4,d5]@3 ~", // Dsus2 Em A5 D Em D5
  R: "~@4 a5 ~ g5 ~ a5 ~ b5 ~ a5 ~@3 d6@3 ~ c#6@3 ~ b5@3 ~ c#6@3 ~, [a4,d5] ~", S: "d6@7 ~ b5@7 ~ a5@7 ~ b5@7 ~",
  T: "f#5@7 ~ a5@7 ~ b5@3 ~ a5@3 ~ g5@7 ~", U: "[d6@7 ~ c#6@2 d6@5 ~ a5@20 ~@4 g5@3 ~ f#5@3 ~ e5@7 ~ b5@7 ~]/2",
  V: "a5@7 ~ g5@7 ~ a5@5 ~ g5@2 f#5@5 ~ g5@2", W: "a5@7 ~ d6@3 ~ b5@3 ~ g5@7 ~ f#5@3 ~ g5@3 ~",
  X: "[a5@7 ~ a5@7 ~ d5@27 ~@21]/2",
})).s("gm_pad_poly").gain(0.45).pan(0.4)

// other · lead 4 chiff · "GX1*"
const lead_4_chiff = note(`<
  ~@26 A@4 B@5 ~@16 C D E F G H I J K ~@5 L@5 ~@2 M N O P Q R S T U@2 V@2 W@2 ~@9
>`.pickRestart({
  A: "[~@10 a5@3 ~ d6@3 ~ c#6@3 ~ b5@3 ~ c#6@3 ~ d6@7 ~ b5@7 ~ a5@7 ~ b5@7 ~ f#5@7 ~ a5@7 ~ b5@3 ~ a5@3 ~ g5@7 ~ d6@7 ~ c#6@2 d6@5 ~ a5@18]/4",
  B: "[~@6 g5@3 ~ f#5@3 ~ e5@7 ~ b5@7 ~ a5@7 ~ g5@7 ~ a5@5 ~ g5@2 f#5@5 ~ g5@2 a5@7 ~ d6@3 ~ b5@3 ~ g5@7 ~ f#5@3 ~ g5@3 ~ a5@7 ~ a5@7 ~ d5@27 ~@23]/5",
  C: "~@29 a5@3", D: "~ d6@3 ~ c#6@3 ~ b5@3 ~ c#6@3 ~ d6@7 ~ b5@7", E: "~ a5@7 ~ b5@7 ~ f#5@7 ~ a5@7",
  F: "~ b5@3 ~ a5@3 ~ g5@7 ~ d6@7 ~ c#6@2 d6@5", G: "~ a5@20 ~@4 g5@3 ~ f#5@3", H: "~ e5@7 ~ b5@7 ~ a5@7 ~ g5@7",
  I: "~ a5@5 ~ g5@2 f#5@5 ~ g5@2 a5@7 ~ d6@3 ~ b5@3", J: "~ g5@7 ~ f#5@3 ~ g5@3 ~ a5@7 ~ a5@7", K: "~ d5@27 ~@4",
  L: "[~@13 d6@2 d6 ~@13 d6@2 ~@2 d6@2 ~@2 d6@2 ~@2 d6@2 ~@2 c#6@2 ~@2 a5@6 ~@2 b5 ~ g5@5 ~ a5@10 ~@2 d6@2 ~@14 d6@2 ~@2 d6@2 ~@2 d6@2 ~@2 d6@2 ~@2 c#6@2 ~@2 a5@6 ~@2 b5 ~ g5@5 ~ a5@10 ~@21, ~@17 [d5,a5]@32 d5@32 [d5,a5]@32 d5@32 ~@15]/5", // D5
  M: "~@21 a5 ~ a5 ~ g5@5 ~ e6", N: "~@5 a6 ~ b6 ~ a6@8 ~@4 [d6,f#6] ~ [e6,g6] ~ [d6,f#6]@7, ~ d6@16 ~@15",
  O: "~@5 [c#6,e6] ~ [b5,d6] ~ [c#6,e6]@8 ~@4 [b5,d6] ~ [a5,c#6] ~ [b5,d6]@7", // C#m Bm C#m Bm A Bm
  P: "~@5 [a5,c#6] ~ [g5,b5] ~ [a5,c#6]@8 ~@4 [d6,f#6] ~ [e6,g6] ~ [d6,f#6]@7", // A G A D Em D
  Q: "~@5 [d6,e6] ~ [e6,g6] ~ [e6,a6]@8 ~@4 [d6,f#6] ~ [e6,g6] ~ [d6,a6]@3 ~ [a5,d6]@3", // Dsus2 Em A5 D Em D5
  R: "~@5 a6 ~ g6 ~ a6 ~ b6 ~ a6 ~@3 d6@3 ~ c#6@3 ~ b5@3 ~ c#6@3, ~ [a5,d6]@16 ~@15", S: "~ d6@7 ~ b5@7 ~ a5@7 ~ b5@7",
  T: "~ f#5@7 ~ a5@7 ~ b5@3 ~ a5@3 ~ g5@7", U: "[~ d6@7 ~ c#6@2 d6@5 ~ a5@20 ~@4 g5@3 ~ f#5@3 ~ e5@7 ~ b5@7]/2",
  V: "[~ a5@7 ~ g5@7 ~ a5@5 ~ g5@2 f#5@5 ~ g5@2 a5@7 ~ d6@3 ~ b5@3 ~ g5@7 ~ f#5@3 ~ g5@3]/2",
  W: "[~ a5@7 ~ a5@7 ~ d5@27 ~@20]/2",
})).s("gm_lead_4_chiff").gain(0.3).pan(0.6)

// bass · synth bass 1 · "MiniMoog*"
const bass = note("<~@36 A@3 B A@3 B C D E D E D F G H@2 I@5 J@2 K@7 L@5 M N O P Q@8 R@6 ~@4>".pickRestart({
  A: "d3@3 d3@2 b2@3", B: "d3@2 a2 d2@5", C: "d3@3 d3@3 a2@2", D: "d2@3 d3@3 a2@2", E: "d2@3 d3@2 d2 a2@2",
  F: "d2 d3 c3 g2", G: "d2@8 g2@8 d2@13 ~@3", H: "a2 d2@15", I: "d2@3 a1 d2@3 a1", J: "[d2@2 g2 d2 d2@12]/2",
  K: "[~@4 d3@3 d3@2 b2@3 d3@3 d3@2 b2@3 d3@3 d3@2 b2@3 d3@2 a2 d2@5 d3@3 d3@2 b2@3 d3@3 d3@2 b2@3 d3@3 d3]/7",
  L: "[~ b2@3 d3@2 a2 d2@5 d2@2 a2@3 d2 a2@2 d2@2 a2@3 d2 a2@2 d3 d2 a2@3 d2 a2@2 d2@2 a2@2]/5",
  M: "d3 d2 a2@2 d2@2 a2@2", N: "d2 a2 d2@2 a2@3 d2", O: "a2 d2!3", P: "c2 g2@2 e2 d2 a2 g2@2",
  Q: "[d2@3 a2 d2@7 a1 d2@2 a1 d2@4 a1 d2@2 a1 d2@4 a1 d2@2 a1 d2@4 a1 d2@2 a1 d2@4 a1 d2@2 a1 d2@4 a1 d2@2 a1 d2@4 a1 d2 a1 g1 f#1]/8",
  R: "[d1@67 d1@36 d1@38 d1@46 ~@5]/6",
})).s("gm_synth_bass_1").gain(0.25).pan(0.4)

// chords · piano · "Emerson L"
const piano = note("<~@86 A@3 B C@3 ~@2>".pickRestart({
  A: "[~@25 [d4,g4]@4 ~ f#4@4 ~ [d4,g4]@7 ~@2 [e4,b4]@7 ~@2 [g4,d5]@7 ~@2 [e4,b4]@7 ~@2 [f#4,a4]@4 ~ [g4,b4]@4 ~ [f#4,a4]@4 [g4,b4]@4 ~ [f#4,a4]@6]/3", // G5 E5 G5 E5 F#m G F#m G …
  B: "~@3 [d5,d6]@3 ~@2 [b4,b5]@3 ~@2 [g4,g5]@7 ~@4 [f#4,f#5]@3 ~@2 [g4,g5]@3", // D B G F# G
  C: "[~@2 [a4,a5]@8 ~@5 [d4,a4,a5]@6 c#4@4 ~@3 [d4,d5]@29 [d6,f#6,a6]@15 ~@24, ~@15 a3@13 ~@68]/3", // A D5 D
})).s("gm_piano").gain(0.45).pan(0.7)

// other · piano · "Unnamed Track"
const piano_2 = note("<~@87 A@3 B@5>".pickRestart({
  A: "[~@3 d3@4 e3@4 ~ b3@4 g3@5 c3@5 g3@4 d4@5 g3@4 d3@4 ~ g4@4 ~ f#4@4 c#4@4 ~ d4@4 d3@4 ~ [b2,b3]@4 ~ [g2,g3]@4 ~ [e2,e3]@4 ~ [d2,d3]@4 ~@2 [c#2,c#3]@4 ~ [b1,b2]@3, ~@3 a2@37 ~@56]/3", // B G E D C# B
  B: "[~@2 [a1,a2]@12 ~ [a1,a2]@12 ~ [d2,d3]@11 ~@3 [a1,a2]@12 ~@3 [d1,d2]@89 ~@14]/5", // A D A D
})).s("gm_piano").gain(0.5).pan(0.2)

// drums · tambourine
const tambourine = s("tb").struct("<~@26 A B@8 C D@25 E D@24 F ~@8>".pickRestart({
  A: "~@13 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2", B: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
  C: "~ x ~@4 x ~@3 x ~@21", D: "x!16", E: "~@8 x!8", F: "x ~ x ~ x ~ x ~ x ~ x ~@2 x ~ x ~@16",
})).gain(0.2)

stack(
  church_organ, electric_guitar_clean, electric_guitar_clean_2, electric_guitar_clean_3, guitar_harmonics,
  electric_guitar_jazz, pad_poly, lead_4_chiff, bass, piano, piano_2, tambourine
)

More by Emerson, Lake & Palmer