Strudelify

Unchained Melody

Baxter

KeyC majorTempo64 bpm
0:00/0:00
// Unchained Melody — Baxter
// 64 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 59 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(64/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 1"
const piano = note(`<
  A B C D E B D F G B C D H I J K A D B L C M N O P Q R S T Q R U V W X Y Z AA AB AC AD AE AF AG AH AI AJ@2 AK AL AM AN
  AO AP AQ@2 AR AS AT
>`.pickRestart({
  A: "[e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3", // C
  B: "[e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3", // Am
  C: "[f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3", // F
  D: "[d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3", // G
  E: "[e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3, ~@6 c5 ~@5 g4 ~@5 g4 ~@5", // C Em C
  F: "~@4 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3, [g1,g2]@47 ~", // G
  G: "[e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,c5] ~@3 [g4,c5]@2 ~@2 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3, ~@20 g4@2 ~@2 e4 ~@23", // C C5 C
  H: "[e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3", // C Em C
  I: "[e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@2 [e4,a4] ~@4 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3, ~@11 c5@2 ~@11 a4@2 ~@22", // Am A5 Am C Am
  J: "[d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3, ~@14 g4 ~@9", // G
  K: "[d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3, ~@12 b4 ~@11", // G G5 G
  L: "[e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3 [e4,g4,b4] ~@3", // Em
  M: "[g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3", // G
  N: "[g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3", // C
  O: "~@4 [e4,g4,a#4] ~@3 [e4,g4] ~@2 [e4,g4,a#4]@13 ~@4 [e4,g4] ~@3 [e4,g4,a#4] ~@3 [e4,g4,a#4]@12, ~@4 a#4 ~@9 a#4 ~@9", // Edim Em Edim Em Edim
  P: "~@4 f4@3 ~ a4@4 c5@4 a4@3 ~ f4@4 ~@4 g4@4 b4@3 d5@3 ~ b4@4 g4@4 ~",
  Q: "~@4 f4@3 ~ a4@3 c5@4 ~ a4@4 f4@3 ~@5 d#4@4 g4@4 a#4@4 g4@4 d#4@4",
  R: "~@4 f4@3 ~ a4@4 c5@4 a4@3 ~ f4@4 ~@4 g4@4 b4@4 d5@4 b4@4 g4@4",
  S: "~@4 c5@4 e5@3 g5@4 ~ e5@4 c5@3 ~@5 c5@3 ~ e5@4 g5@4 e5@4 c5@2 ~@2",
  T: "~@4 f4@3 ~ a4@4 c5@4 a4@4 f4@2 ~@6 g4@4 b4@4 d5@4 b4@4 g4@3 ~",
  U: "~@4 e4@4 g4@4 c5@4 g4@4 e4@3 ~ c4@4 e4@4 g4@4 c5@4 g4@4 e4@4",
  V: "~@4 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5]@12 ~@4 [e4,g4,c5] ~@2 g4 [e4,c5] ~@3 [e4,c5]@12, ~@35 g4@12 ~", // C
  W: "~@4 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5]@12 ~@3 [e4,a4] c5 ~@2 a4 [e4,c5] ~@3 e4@12, ~@35 [a4,c5]@13", // Am A5 C Am
  X: "~@4 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5]@12 ~@4 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5]@12", // F
  Y: "~@4 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5]@12 ~@4 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5]@10 ~@2", // G
  Z: "~@4 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5]@12 ~@4 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5]@12", // C
  AA: "~@4 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5]@12 ~@4 a4 ~@3 [e4,a4,c5] ~@3 [e4,a4,c5]@9 ~@3", // Am
  AB: "~@4 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5]@12 ~@4 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5]@7 ~@5", // G
  AC: "~@4 [b4,d5,g5] ~@3 [b4,d5,g5] ~@2 b4 [d5,g5] ~@3 [d5,g5,b5] ~@3 [f5,g5,b5,d6] ~@2 [d5,g5,b5] ~@3 [g5,b5] d6 ~@2 [b5,d6,g6] ~@4 [b5,d6,f6,g6] ~@11", // G G5 G G7 G G7
  AD: "~@8 g4 ~@3 [c5,e5]@8 g4@2 ~ g4 ~@4 [g4,c5,e5] ~@2 c5 g4 ~@3 [g4,c5,e5]@11 ~, ~@3 g4 ~@8", // C
  AE: "~@12 a4@6 ~@2 a4@2 ~@2 a4 ~@3 [a4,c5,e5] ~@3 a4 ~@3 [a4,c5,e5]@10 ~@2, ~ [c5,e5] ~@2", // Am C
  AF: "[a4,c5,f5]@11 ~ [a4,c5,f5] ~@3 a4 ~@11 [a4,c5,f5] ~@3 a4 ~@3 [a4,c5,f5]@8 ~@4", // F
  AG: "g5@11 ~@2 g5@7 d5@4 b4 ~@3 [b4,d5,g5] ~@3 b4 ~@2 [b4,d5] g5 ~@3 [d5,g5,b5] ~@3 [b4,d5,g5] ~@3, [b4,d5]@3 ~@5", // G Bm G Bm
  AH: "~@12 [e5,g5]@4 ~@4 e5 ~@7 [e5,g5,c6] ~@3 [e5,g5] ~@3 [e5,g5,c6]@7 ~@5, ~@12 c6 ~@35", // Em C Em C
  AI: "[c5,e5] ~@7 c5 ~@3 [e5,a5]@8 ~@7 [c5,e5] b5 ~@2 a5 [c5,e5] ~@3 [c5,e5,b5] ~@3 [c5,e5,a5]@5 ~@3, ~@12 c5@5 ~@31", // C A5 C Cmaj7 Am
  AJ: "[[g4,b4,d5]@8 ~@4 [b4,d5,g5]@5 ~@3 [d5,g5] ~@3 [d5,g5,b5]@5 ~@3 [g5,b5,d6] ~@3 [g5,b5,d6]@5 ~@2 b5 [d6,f6,g6] ~@2 [b5,d6,g6]@5 ~@4 [b5,d6,g6] ~@2 d6 [b5,g6] ~@2 [b5,d6,g6] ~@3 [b5,d6,g6] ~@2 g6 a6 ~ c7 d7 c7 b6 a6 g6 ~ a6 b6 c7 d7 c7 [a6,b6] [f6,g6] [c6,d6,e6] b5 ~@3 b4 a4 g4 ~, ~@36 b6 ~@7 a5 [e5,f5] c5 ~, ~@89 g5@2 d5@2 ~@3]/2", // G G5 G G7 G Em G Asus2 …
  AK: "~@3 [e4,g4] c5 ~@2 e4 [g4,c5] ~@2 e4 [g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3 [e4,g4,c5] ~@3", // Em C5 C
  AL: "[d4,g4,b4] ~@3 [d4,g4] b4 ~@2 [d4,g4,b4] ~@3 [d4,g4] b4 ~@2 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3 [d4,g4,b4] ~@3", // G G5 G G5 G
  AM: "[e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 [e4,a4,c5] ~@3 a4 c5 ~ a5 ~@2 e5 a5 c6 ~@2 a5 c6 e6 ~ a5 ~ c6@2 e6 a6 a5 ~ e6 a6 ~ a5 ~ e6 a6 ~@2, ~@18 e5@2 ~ c5@3 ~@2 e5@3 ~@9 c6@2 ~@3 c6@2 ~@3", // Am
  AN: "~@12 [g4,b4,e5] ~@3 [g4,b4,e5] ~@2 [g4,b4] e5 ~@3 [e5,g5]@5 ~@2 [g4,b4,e5] ~@4 [g4,b4,e5]@10 ~@2, ~@23 b4@5 ~@20", // Em G Em
  AO: "[a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3", // F
  AP: "[b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3 [b4,d5,g5] ~@3", // G
  AQ: "[[g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 c5@11 [c5,c6] ~@4 [d5,d6] ~@3 [c5,c6] ~@2 [a4,b4,c5] e5 ~ b4 b5 [a4,c5,e5] [b4,b5] b5 ~ [a4,c5,e5] a5@2 a4 [a4,c5,e5,a5] a4 ~ a4 [a4,c5,e5] ~@3 [a4,c5,e5] ~@3 a4@12 [a4,a5] ~@3 [b4,b5] ~@3 [a4,a5] ~@2 a4, ~@24 [g4,e5]@20 ~@3 b5@2 ~@23 [c5,e5]@20 ~@4]/2", // C D C Am B Am A B …
  AR: "[f4,a4,c5] ~ a4 a5 [f4,a4,c5] a5 ~ a5 [f4,a4,c5] ~ a5 ~ [f4,a4,c5] ~@3 [f4,a4,c5] ~@2 f4 [a4,c5] ~@2 f4 [g#4,c5] ~@3 [f4,g#4,c5] ~@3 [f4,g#4,c5] ~@3 [f4,g#4,c5] ~@3 [f4,g#4,c5] ~@3 [f4,g#4,c5] ~@3, a5 ~@23", // F Am G# Fm
  AS: "~@27 c6 ~ g6 c7@2 g6 e6 c6 [e6,g6] c7 ~ [e6,g6] c6 e6 g6 c7 g6 e6 c6 ~ g6, [e4,g4,c5], ~@14 e6 ~@8 e6", // Em C
  AT: "c7 ~@47",
})).s("gm_piano").gain(0.11).pan(0.2)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B C D A B D E F G H I F G I@2 F I G J C K A@2 L M L N L M O P Q R S T U V W X F G H I F G I@2 U Y Z AA AB I U Z AC
  AD ~
>`.pickRestart({
  A: "c3@19 ~ c3@4 c3@11 ~ c3@11 ~", B: "a2@19 ~ a2@4 a2@11 ~ a2@11 ~", C: "f2@19 ~ f2@4 f2@11 ~ f2@11 ~",
  D: "g2@19 ~ g2@4 g2@11 ~ g2@11 ~", E: "g2@19 ~ g2@4 g2@11 ~ g1@11 ~", F: "c2@19 ~ c2@4 c2@11 ~ c2@11 ~",
  G: "a1@19 ~ a1@4 a1@11 ~ a1@11 ~", H: "f1@19 ~ f1@4 f1@11 ~ f1@11 ~", I: "g1@19 ~ g1@4 g1@11 ~ g1@11 ~",
  J: "e2@19 ~ e2@4 e2@11 ~ e2@11 ~", K: "g2@19 ~ g2@4 g2@11 ~ g2@4 a2@4 b2@3 ~", L: "f2@19 ~ f2@3 ~ g2@19 ~ g2@4",
  M: "f2@19 ~ f2@3 ~ d#2@19 ~ d#2@4", N: "c3@19 ~ c3@3 ~ c3@12 c2@3 ~ d2@4 e2@3 ~", O: "f2@19 ~ f2@4 g2@11 ~ g1@11 ~",
  P: "c2@12 c2@12 g1@11 ~ g1@3 ~ a1@3 ~ b1@3 ~", Q: "c2@18 ~@2 c2@4 c2@11 ~ c2@11 ~",
  R: "a1@19 ~ a1@3 ~ a1@11 ~ a1@7 ~ a1@3 ~", S: "f1@18 ~@2 f1@3 ~ f1@11 ~ f1@11 ~",
  T: "g1@19 ~ g1@3 ~ g1@10 ~@2 g1@3 ~ a1@3 ~ b1@3 ~", U: "c2@19 ~ c2@3 ~ c2@11 ~ c2@11 ~",
  V: "a1@17 ~@3 a1@3 ~ a1@11 ~ a1@12", W: "g1@19 ~ g1@3 ~ g1@11 ~ g1@12", X: "g1@18 ~@2 g1@3 ~ g1@12 g1@12",
  Y: "g1@19 ~ g1@3 ~ g1@11 ~ g1@11 ~", Z: "a1@19 ~ a1@3 ~ a1@11 ~ a1@11 ~", AA: "e2@19 ~ e2@3 ~ e2@11 ~ e2@11 ~",
  AB: "f2@19 ~ f2@3 ~ f2@11 ~ f2@11 ~", AC: "~ f1@22 ~ f1 ~@3 f1 ~@3 f1 ~@3 f1 ~@3 f1 ~@3 f1 ~@3", AD: "c2@23 ~",
})).s("gm_electric_bass_finger").gain(0.19).pan(0.1)

// chords · electric guitar jazz · "+HAWAI GTR"
const electric_guitar_jazz = note(`<
  A B C D A B D@2 A B C D A B D@2 A D E F C D A G H I H A H I H A@2 B C D A B D@2 A B C D A B J D A D E F C D A K L M ~
>`.pickRestart({
  A: "~@6 [e4,g4,c5] ~@11 [e4,g4,c5] ~@5", B: "~@6 [e4,a4,c5] ~@11 [e4,a4,c5] ~@5",
  C: "~@6 [c4,f4,a4] ~@11 [c4,f4,a4] ~@5", D: "~@6 [d4,g4,b4] ~@11 [d4,g4,b4] ~@5",
  E: "~@6 [c4,e4,a4] ~@11 [c4,e4,a4] ~@5", F: "~@6 [b3,e4,g4] ~@11 [b3,e4,g4] ~@5",
  G: "~@6 [e4,g4,a#4] ~@11 [e4,g4,a#4] ~@5", H: "~@6 [c4,f4,a4] ~@11 [d4,g4,b4] ~@5",
  I: "~@6 [c4,f4,a4] ~@11 [a#3,d#4,g4] ~@5", J: "~@13 b4@2 ~@21 [d4,g4,b4]@2 ~@10, ~@6 [d4,g4] ~@17",
  K: "~@13 a4@10 ~@2 a4@10 ~@2 a4@10 ~, ~@6 [c4,e4]@5 ~ [c4,e4]@5 ~ [c4,e4]@5 ~", // C
  L: "~@12 [c4,f4,a4]@9 ~@3 [c4,f4,g#4] ~@3 [c4,f4,g#4] ~@3 [c4,f4,g#4] ~@3 [c4,f4,g#4] ~@3 [c4,f4,g#4] ~@3 [c4,f4,g#4] ~@3", // F Fm
  M: "~ [g4,c5]@47, e4@47 ~", // C5
})).s("gm_electric_guitar_jazz").gain(0.2).pan(0.1)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~@7 A B@4 C@2 D@2 E F G@2 H I@3 J K L M J N O P Q@2 R S@2 T U@2 V@3 W X@2 Y@4 Z@2 H AA AB AC AD AE ~
>`.pickRestart({
  A: "~@12 g3@11 ~ b3@11 d4@12 ~",
  B: "[[c4,g4]@11 e4@11 ~ g4@12 c5@24 e4@11 ~ a4@13 c5@24 f4@11 d5@11 ~ c5@12 b4@12 ~ g4@12 e5@11 d5@12 ~]/4", // C5
  C: "[~@11 e5@12 g5@12 ~ c6@23 e5@12 a5@13 c6@12]/2", D: "[b5,d6]/2", E: "c6", F: "b5@11 g5@13 b5@11 d6@13",
  G: "[~ c6@48 b5@47, ~ e6@95]/2", H: "[c6,f6]", I: "[d6@12 e6@23 ~, g6@139 ~@5]/3",
  J: "[f5,a5] [g5,b5] [f5,a5] ~ [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] ~ [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] ~ [g5,b5] [f5,a5] [g5,b5] [a5,c6] [g5,b5] ~ [a5,c6] [g5,b5] [a5,c6] [g5,b5] [a5,c6] [g5,b5] [a5,c6] [g5,b5] ~ [a5,c6] [g5,b5] [a5,c6] [g5,b5] [a5,c6] [g5,b5] [a5,c6] [g5,b5] ~ [a5,c6] [g5,b5]", // F G F G F G F G …
  K: "[f5,a5] [g5,b5] [f5,a5] ~ [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] ~ [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] ~ [g5,b5] [f5,a5] [d#5,g5] [f5,a5] [d#5,g5] ~ [f5,a5] [d#5,g5] [f5,a5] [d#5,g5] [f5,a5] [d#5,g5] [f5,a5] ~ [d#5,g5] [f5,a5] [d#5,g5] [f5,a5] [d#5,g5] [f5,a5] [d#5,g5] [f5,a5] ~ [d#5,g5] [f5,a5] [d#5,g5]", // F G F G F G F G …
  L: "[f5,a5] [g5,b5] a5 f5 [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] ~ [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] ~ [g5,b5] [f5,a5] [g5,b5] [a5,c6] [g5,b5] ~ [a5,c6] [g5,b5] [a5,c6] [g5,b5] [a5,c6] [g5,b5] [a5,c6] [g5,b5] ~ [a5,c6] [g5,b5] [a5,c6] [g5,b5] [a5,c6] [g5,b5] [a5,c6] [g5,b5] ~ [a5,c6] [g5,b5]", // F G F G F G F G …
  M: "c6 d6 c6 ~ d6 c6 d6 c6 d6 c6 d6 c6 ~ d6 c6 d6 c6 d6 c6 d6 c6 ~ d6 c6 d6 c6 d6 c6 d6 c6 ~ d6 c6 d6 c6 d6 c6 d6 c6 ~ d6 c6 d6 c6 d6 c6 d6 ~, g5@43 ~@5",
  N: "[f5,a5] [g5,b5] [f5,a5] ~ [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] ~ [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] [g5,b5] [f5,a5] ~ [g5,b5] [f5,a5] [d#5,g5] [f5,a5] [d#5,g5] ~ [f5,a5] [d#5,g5] [f5,a5] [d#5,g5] [f5,a5] [d#5,g5] [f5,a5] [d#5,g5] ~ [f5,a5] [d#5,g5] [f5,a5] [d#5,g5] [f5,a5] [d#5,g5] [f5,a5] [d#5,g5] ~ [f5,a5] [d#5,g5]", // F G F G F G F G …
  O: "[a4,a5] [b4,b5]", P: "[g5,c6]@47 ~", Q: "[[e5,c6]@95 ~]/2", R: "[f5,c6]",
  S: "[g5@35 d6@12 g5@25 g6@24, b5@47 e6@48 ~]/2", T: "[c6,e6]", U: "[[b5,d6]@47 ~]/2",
  V: "[~@12 e5@12 g5@11 c6@24 e5@12 ~ a5@11 c6@25 f5@12 d6@12 c6@12]/3", W: "b5@11 ~ g5@12 e6@11 d6@13",
  X: "[~@12 e5@12 g5@11 c6@24 e5@12 ~ a5@12 b5 c6@11]/2",
  Y: "[[b5,d6]@70 ~ [b5,d6]@2 ~ [b5,d6]@3 ~ [b5,d6]@3 ~ [b5,d6]@3 ~ [b5,d6]@3 ~ [b5,d6]@3 ~@2 [c6,e6]@48 ~ d6@47 ~, ~@143 b5@49]/4", // Bm C
  Z: "[c6@47 b5@48 ~, e6@95 ~]/2", AA: "[d6,g6]@15 ~", AB: "d6 c6@2 b5", AC: "~ b5@11 a5@36", AD: "e6@11 d6@23 ~ d6@13",
  AE: "~ e5@47, c6@47 ~",
})).s("gm_string_ensemble_2").gain(0.36).pan(0.9)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2_2 = note(`<
  ~@7 A B@4 C@2 D@2 E F G H I@2 J K@7 L@2 M N@2 O@2 P Q@2 R@3 S T@2 U@2 J M V W X Y Z AA AB AC ~
>`.pickRestart({
  A: "~@12 g2@11 b2@12 d3@12 ~",
  B: "[e3@11 e3@11 ~ g3@12 c4@24 e3@12 a3@12 c4@24 f3@12 d4@11 c4@13 b3@12 g3@13 e4@12 d4@12]/4",
  C: "[~@11 e3@12 g3@13 c4@23 e3@12 a3@13 c4@12]/2", D: "[g3@31 ~]/2", E: "c3@47 ~", F: "b2@11 g2@13 b2@11 d3@12 ~",
  G: "~@11 e3@12 d3@12 c3@12 ~", H: "g2", I: "[f2@47 g2@48 ~]/2", J: "c3",
  K: "[~@12 c3@32 ~@3 c4@24 d4@24 c4@24 a#3@24 c4@24 d4@24 e4@45 ~@3 c4@24 d4@24 c4@24 a#3@24 c4]/7",
  L: "[~@24 d4@23 e4@47 ~@2]/2", M: "g3", N: "[a3@31 ~]/2", O: "[b2@36 d3@11 c3@49]/2", P: "a2", Q: "[g2@31 ~]/2",
  R: "[~@12 e4@12 g4@12 c5@23 e4@12 a4@12 ~ c5@24 f4@11 ~ d5@12 c5@12]/3", S: "b4@12 g4@12 e5@11 d5@12 ~",
  T: "[~@12 e4@12 g4@12 c5@23 e4@12 a4@13 c5@12]/2",
  U: "[g4@70 ~ g4@2 ~@2 g4@2 ~@2 g4@2 ~@2 g4@2 ~@2 g4@2 ~@2 g4@2 ~@3]/2", V: "a3", W: "e3", X: "f3@47 ~", Y: "g3@11 ~",
  Z: "d4@11 c4@24 b3@12 ~", AA: "b3@11 ~ a3@36", AB: "e4@11 d4@23 ~ d4@12 ~", AC: "c4@47 ~",
})).s("gm_string_ensemble_2").gain(0.27).pan(0.9)

// other · orchestral harp · "HARP"
const orchestral_harp = note(`<
  A B C D E F D@2 E F C D E F D@2 E D G H C D E I J K J E J K J E@2 F C D E F D@2 E F C D E F D@2 E D F H C D E F L ~@2
>`.pickRestart({
  A: "c4 ~@3 e4 ~@3 g4 ~@3 c5 ~@3 g4 ~@3 e4 ~@3 c4 ~@3 e4 ~@3 g4 ~@3 c5 ~@3 c4 ~@3 b3 ~@3",
  B: "a3 ~@3 c4 ~@3 e4 ~@3 a4 ~@3 e4 ~@3 c4 ~@3 a4 ~@3 e4 ~@3 c4 ~@3 a3 ~@3 c4 ~@3 e4 ~@3",
  C: "f3 ~@3 a3 ~@3 c4 ~@3 f4 ~@3 c4 ~@3 a3 ~@3 f3 ~@3 a3 ~@3 c4 ~@3 f4 ~@3 c4 ~@3 a3 ~@3",
  D: "g3 ~@3 b3 ~@3 d4 ~@3 g4 ~@3 d4 ~@3 b3 ~@3 g3 ~@3 b3 ~@3 d4 ~@3 g4 ~@3 d4 ~@3 b3 ~@3",
  E: "c4 ~@3 e4 ~@3 g4 ~@3 c5 ~@3 g4 ~@3 e4 ~@3 c4 ~@3 e4 ~@3 g4 ~@3 c5 ~@3 g4 ~@3 e4 ~@3",
  F: "a3 ~@3 c4 ~@3 e4 ~@3 a4 ~@3 e4 ~@3 c4 ~@3 a3 ~@3 c4 ~@3 e4 ~@3 a4 ~@3 e4 ~@3 c4 ~@3",
  G: "a3 ~@3 c4 ~@3 e4 ~@2 a4 ~@4 e4 ~@3 c4 ~@3 a3 ~@3 c4 ~@3 e4 ~@3 a4 ~@3 e4 ~@3 c4 ~@3",
  H: "e3 ~@3 g3 ~@3 b3 ~@3 e4 ~@3 b3 ~@3 g3 ~@3 e3 ~@3 g3 ~@3 b3 ~@3 e4 ~@3 b3 ~@3 g3 ~@3",
  I: "c4 ~@3 e4 ~@3 g4 ~@3 a#4 ~@3 g4 ~@3 e4 ~@3 c4 ~@3 e4 ~@3 g4 ~@3 a#4 ~@3 g4 ~@3 e4 ~@3",
  J: "f3 ~@3 a3 ~@3 c4 ~@3 f4 ~@3 c4 ~@3 a3 ~@3 g3 ~@3 b3 ~@3 d4 ~@3 g4 ~@3 d4 ~@3 b3 ~@3",
  K: "f3 ~@3 a3 ~@3 c4 ~@3 f4 ~@3 c4 ~@3 a3 ~@3 d#3 ~@3 g3 ~@3 a#3 ~@3 d#4 ~@3 a#3 ~@3 g3 ~@3",
  L: "f3 ~@3 a3 ~@3 c4 ~@3 f4 ~@3 c4 ~@3 a3 ~@3 g#3 ~@23",
})).s("gm_orchestral_harp").gain(0.2).pan(0.2)

// other · timpani
const timpani = note("<~@32 A B ~@12 C@2 D ~@7 E F ~>".pickRestart({
  A: "c3!48", B: "a2 ~@47", C: "g2!48", D: "[g2,c3] ~@47", E: "g2!3 ~ g2!44", F: "[g2,c3] c3!47",
})).s("gm_timpani").gain(0.22).pan(0.1)

// chords · trombone
const trombone = note("<~@32 A B C D B E@3 B@2 C F B G H I J K L M N K O P Q R ~>".pickRestart({
  A: "~@12 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4]@10 ~ [c4,e4]@12 ~", // C
  B: "~@11 [c4,e4] ~@4 [c4,e4] ~@3 [c4,e4] ~@2 [c4,e4]@10 ~@2 [c4,e4]@12 ~", // C
  C: "~@11 [a3,f4] ~@4 [a3,f4] ~@3 [a3,f4] ~@2 [a3,f4]@9 ~@3 [a3,f4]@12 ~", // Dm
  D: "~@11 [b3,d4] ~@4 [b3,d4] ~@3 [b3,d4] ~@2 [b3,d4]@10 ~@2 [b3,d4]@11 ~@2", // Bm
  E: "[~@11 [c4,e4] ~@4 [c4,e4] ~@3 [c4,e4] ~@2 [c4,e4]@10 ~@2 [c4,e4]@10 ~@2 [b3,d4]@88 ~@9]/3", // C Bm
  F: "~@11 [b3,d4] ~@4 [b3,d4] ~@3 [b3,d4] ~@2 [b3,d4]@9 ~@3 [b3,d4]@12 ~", // Bm
  G: "~@11 [c4,e4] ~@4 [c4,e4] ~@3 [c4,e4] ~@2 [c4,e4]@10 ~@2 [c4,e4]@11 ~@2", H: "[b3,d4]@47 ~",
  I: "[b3,d4] ~@3 [b3,d4] ~@2 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@4", // Bm
  J: "~@12 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4]@9 ~@3 [c4,e4]@11 ~", // C
  K: "~@12 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4] ~@3 [b3,d4]@9 ~@3 [b3,d4]@11 ~", // Bm
  L: "~@12 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4]@10 ~@2 [c4,e4]@12", // C
  M: "~@12 [b3,e4] ~@3 [b3,e4] ~@3 [b3,e4] ~@3 [b3,e4]@9 ~@2 [b3,e4]@11 ~@2", // E5
  N: "~@12 [a3,f4] ~@3 [a3,f4] ~@3 [a3,f4] ~@3 [a3,f4]@9 ~@3 [a3,f4]@12", // Dm
  O: "~@12 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4]@9 ~@3 [c4,e4]@12", // C
  P: "~@12 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4] ~@3 [c4,e4]@9 ~@3 [c4,e4]@8 ~@4", // C
  Q: "~@12 [a3,f4] ~@3 [a3,f4] ~@2 a3 f4 ~@3 [g#3,f4] ~@2 [g#3,f4] ~@3 [g#3,f4] ~@3 [g#3,f4] ~@3 g#3 f4 ~@3 [g#3,f4] ~@3", // Dm C#
  R: "[g3,e4]@47 ~", // C
})).s("gm_trombone").gain(0.27).pan(0.8)

// other · trumpet
const trumpet = note("<~@48 A ~ B C D E ~@2 F G ~>".pickRestart({
  A: "~@12 g4 ~@3 g4 ~@2 g4 ~@4 c5@8 ~@3 g4 ~ g4@11", B: "~@12 e4 ~@3 e4 ~@3 e4 ~@3 a4@8 ~@2 e4 ~ e4@12",
  C: "~@31 e4@4 g4@8 b4@5", D: "a4@24 ~@8 f4@4 a4@7 c5@5", E: "b4@15 ~",
  F: "~@24 c4 ~@3 c4@2 ~@2 c4 ~@2 d4@2 ~@3 c4 ~@3 d4 ~@3", G: "e4",
})).s("gm_trumpet").gain(0.44).pan(0.8)

// drums · kick
const kick = s("bd").struct("<~@32 A B@2 C D E@2 B@8 F G B@6 E H F ~>".pickRestart({
  A: "x ~@2 x ~ x", B: "x ~@4 x!2 ~@4 x", C: "x ~@19 x ~@3 x ~@22 x", D: "~@5 x!2 ~@4 x", E: "x ~@4 x!2 ~@5",
  F: "x ~@46 x", G: "~@5 x!2 ~@3 x!2", H: "x",
})).gain(0.14).pan(0.1)

// drums · rim
const rim = s("rim").struct("<[~ x ~ x]!32 ~@27>").gain(0.14).pan(0.1)

// drums · snare
const snare = s("sd").struct("<~@32 A@3 B A@11 C A@2 D A@5 E F ~>".pickRestart({
  A: "~ x ~ x", B: "~@3 x ~@4 x!4", C: "~@11 x ~@3 x ~@4 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4",
  D: "~@12 x ~@22 x ~@12", E: "~@3 x ~@2 x!6", F: "~@47 x",
})).gain(0.14).pan(0.1)

// drums · low tom
// … 36 more lines