Strudelify
KeyA♭ majorTempo206 bpm
0:00/0:00
// Krump — Scott McAllister
// 206 bpm, 4/4, key Ab 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 46, 3/4 at bar 46, 4/4 at bar 50, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 14 "Mellophone 2" french horn (copy of ch 13 "Mellophone 1" french horn)
// note: Transcription provider: pdmx. https://musescore.com/score/5900269; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 421 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(206/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.

// other · french horn · "Solo Trumpet"
const french_horn = note(`<
  ~@24 A@4 B@2 C@5 ~@2 D@3 E F ~@2 G@7 ~@7 H@8 ~@60 I J K@2 L M N O@2 P Q ~@2 R S R T ~@9 U V ~ W X ~@2 Y Z AA AB AC ~
  AD AE AF AG@2 ~ AH@3 ~@5 AI@5 AJ@5 ~@3 AK@4 AL AM AN ~@20 AO AP@8 AQ@4 AR@8 AS@3 AT@3 AU AV@4 ~@10 AW@5 AX@7 AY@4 AZ@5
  BA@2 BB@3 BC@2 BD BE@7 BF@2 BG@8 BH@8 ~@18 BI BJ BK BL BM BN@2 BO BP BQ BR@2 ~@10 BS@6 BT@2 BU@8 ~ BV@3 BW@2 BX BY BZ
  CA CB CC CD CE@2 ~@2 CF CG CH CI CJ CK@4 CL CM CN ~@9 CO@8 ~@4
>`.pickRestart({
  A: "[~@15 bb2@4 c3@4 ~ db3@4 f3@36]/4", B: "[f3@4 ~ a3@18 ~@9]/2", C: "[~@9 bb2@6 db3@7 e3@58]/5",
  D: "[~@4 eb3@7 gb3@6 db3@7 ~@2 ab3@2 ~@3 ab3@2 ~@2 ab3@2 ~@3 ab3 ~@2 ab3 ~@2 ab3 ~]/3",
  E: "~ ab3 ~ ab3 ~ ab3 ~@2 ab3 ~ ab3!2 ~ ab3!2 ~", F: "ab3!2 ~ ab3!2 ~ ab3!2 ~@8",
  G: "[eb3@6 gb3@7 g3@13 a3@27 f3@45 ~@14]/7", H: "[~@13 f3@107 ~@8]/8", I: "bb3@3 bb3@3 bb3@2",
  J: "bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3@2 a3 ~@5", K: "[~@2 bb3 ~ bb3 ~ bb3 ~ bb3@2 a3 ~ c4@12 g3@2 ~@6]/2",
  L: "db4@4 g3 ~@3", M: "ab3 ~ ab3 ~ a3 ~ a3 ~ eb4 ~ eb4 ~ d4 ~ d4 ~", N: "~@4 eb4!2 ~ eb4 d4 ~@7",
  O: "[eb4!2 ~ eb4 d4 ~@7 f4@12 c4@2 ~@6]/2", P: "~ db3@2 c4", Q: "a3 ~ a3@6", R: "~@4 eb3 e3 ~ f3 bb3@2 ~@2 bb3@2 ~@2",
  S: "eb3 e3 ~ f3 b3@2 ~@2 b3@2 ~@6", T: "eb3 e3 ~ f3 g3@2 ~@2 g3@2 ~@6", U: "~@8 db4 eb4 ~ e4 eb4 e4 ~ eb4",
  V: "db4 eb4 ~ e4 eb4 e4 ~ eb4 db4@2 ~@6", W: "~@12 f3 e3 ~ f3", X: "g3 f3 ~ g3 ab3 g3 ~ ab3 bb3@2 ~@6",
  Y: "~@4 f3 ~ f3 ~", Z: "f3 ~@2 f3 ~ f3 ~@2 f3 ~ f3 ~ f3 ~ f3 ~", AA: "f3!2 ~ f3!3 ~ f3 ~@8",
  AB: "~@8 f4 e4 ~ eb4 d4 db4 ~ c4", AC: "f4 e4 ~ eb4 d4 db4 ~ c4 b3@2 ~@6", AD: "~@4 a3!2 ~@2", AE: "~@2 a3!2 ~@4",
  AF: "a3 ~@7", AG: "[db3 eb3 ~ f3 eb3 f3 ~ g3 a3@16 ~@8]/2", AH: "[~ [f3,bb3]@4 ~]/3",
  AI: "[~ bb2@2 c3@2 db3@2 f3@2 bb3]/5", AJ: "[c4@2 bb3@4 ~ gb3@2 f3@2 eb3@2 f3 bb3@4 ~@2]/5", AK: "[~@3 b3@13]/4",
  AL: "~@2 f3 ~@2 f3 ~@2", AM: "f3@2 ~@6 db4@3 b3@2 g3@3", AN: "bb3 ~@3 bb3 ~@3", AO: "~@6 bb4 c5",
  AP: "[~ d5@41 ~ g4@2 c5@44 d5 eb5@4 d5@34, bb4 ~@63]/8", AQ: "[~@2 c5 d5@4 c5@21 eb3@36]/4",
  AR: "[~@5 d3@41 ~@26 g4@2 bb4@2 ~@27 gb5@10 a5@15, ~@46 d3@41 ~ gb3@40, ~@38 g4 ~@25, ~@77 d5@26 ~@25]/8",
  AS: "[~ c6 d6@40 ~@6]/3", AT: "[~@15 g4@2 a4@3 g4@2 bb4@5 g4@18 g4@3]/3", AU: "~ a4@3 g4@3 ~ bb4@8",
  AV: "[a4 ab4 g4@10 ab4 a4@40 ~@11]/4", AW: "[~@5 g3@2 a3@3 bb3@2 c4@3 bb3@62 ~@3]/5",
  AX: "[~@23 d5@5 gb5@5 a5@5 d6@3 c6@2 bb5@3 a5@2 gb5@21 ~@5 a5@5 d6@26 ~@3 d6@3 d6, ~ gb3@55]/7",
  AY: "[[eb6,e6,f6] gb6@49 g3@10 ~@2 g3@2]/4",
  AZ: "[~@4 g3@23 f3@15 ~@3 f3@2 d4@3 c4@3 bb3@2 g3@3 bb3@10 g3@3 ~@2 g3@3 ~@4]/5", BA: "[~ g3@3 ~@2 g3@23 gb3@3]/2",
  BB: "[~@2 gb3@3 ~@5 gb3@3 ~@2 gb3@3 d4@2 c4@3 bb3@3 a3@2 d4@3 c4@2 bb3@3 a3@2 bb3@3 a3@3 g3@2 f3@2]/3",
  BC: "[~ c4@2 d4@3 ~@2 bb3@23 ~]/2", BD: "bb3@3 ~@2 bb3@3 ~@4 bb3@3 ~",
  BE: "[~@2 bb3@3 ~@10 bb3@3 ~@2 bb3@3 ~@7 gb3@77 d4@3 c4@2]/7", BF: "[bb3@3 g3@3 eb3@26]/2",
  BG: "[~@10 gb5@5 gb5@2 eb5@3 gb5@2 ab5@3 bb5@3 ab5@2 gb5@3 eb5@2 db5@5 eb5@3 ~@3 f3@41 ~@38 f5@3, ~@4 gb3@41 ~@42 g3@41, ~@43 a4@33 ~@52]/8",
  BH: "[g5@3 f5@2 eb5@3 c5@2 bb4@21 bb4@2 ~ db5@2 d5@2 ~ e5@2 f5@21 g5@10 ab5@31 bb5 b5@20 ~@4, g3@41 ab3@82 ~@5, ~@33 c5@2 ~@3 eb5@2 ~@88]/8",
  BI: "~@5 bb3@4 bb3@2 ~@2 bb3@3", BJ: "~@5 bb3@2 bb3", BK: "~@2 bb3@3 ~@11", BL: "~@5 c4@4 ~ c4@2 ~@2 c4@2",
  BM: "~@3 c4@2 c4 ~ c4", BN: "[~@11 c4@4 c4@2 ~@3 c4@3 ~@9]/2", BO: "~ c4@4 c4@2 ~@2 c4@3 ~@4",
  BP: "~@9 bb3 ~@2 bb3@4", BQ: "~@2 bb3@4 bb3@2 ~@2 bb3@3 ~@2 bb3", BR: "[~@2 bb3@5 bb3@5 ~ bb3@5 ~@14]/2",
  BS: "[bb3@43 ~@3 c4@41 ~@9]/6", BT: "[~@7 eb3@8 g3@8 f3@5 g3@4]/2", BU: "[~@2 a3@5 bb3@8 c4@8 g3@33 gb3@69 ~@3]/8",
  BV: "[~@15 g3@6 ~ g3@2 ~@4 g3@6 ~ g3@2 ~@4 g3@2 ~@5]/3", BW: "[~@2 g3@6 g3@2 ~@4 g3@6 ~ g3@2 ~@4 g3@2 ~@3]/2",
  BX: "~@2 g3@3 a3 ~@2", BY: "~ bb3@6 db4@2 ~@5 d4@2", BZ: "~@6 g3@6 ~ a3@2 ~", CA: "~@3 bb3@6 ~ db4@2 ~@4",
  CB: "d4 ~@7", CC: "~@5 bb3@3", CD: "bb3@2 ~@9 bb3@5", CE: "[~ bb3@2 ~@9 bb3@6 ~ bb3@2 ~@11]/2", CF: "bb3@3 bb3@3 ~@2",
  CG: "~ b3@6 b3@6 ~@3", CH: "~ db4@3 db4@3 ~", CI: "~@3 c4@6 ~ c4@6", CJ: "~@4 bb3@6 ~ bb3@5",
  CK: "[~@5 b3@6 ~ b3@6 ~@5 db4@6 db4@6 ~@5 c4@6 c4@6 ~@5 bb3 ~@3 bb3 ~@2]/4", CL: "~ bb3 ~@4 bb3 ~@3 bb3 ~@2 bb3 ~@2",
  CM: "bb3 ~@2 bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3!2 ~", CN: "bb3!3 ~ bb3!2 ~ bb3!2 ~@7", CO: "[~@7 bb3@121]/8",
})).s("gm_french_horn").gain(0.4)

// other · trumpet · "Solo Flugelhorn"
const trumpet = note(`<
  ~@208 A@6 B@5 C@3 D@2 E@3 F@3 G@7 ~@6 H I@7 ~@17 J@6 ~@23 K L@4 ~@2 M@3 ~@3 N@5 ~@106
>`.pickRestart({
  A: "[~@15 bb4@2 ~ bb4@3 d5@39 g4@2 c5@28 ~@6, ~@17 c5@2 ~@77]/6",
  B: "[~ c5@2 bb4@2 d5@3 ~@2 eb5@3 d5@18 eb5@4 ~ d5@5 g4@2 c5@33 ~@4, bb4@2 ~@29 d5 ~@48]/5",
  C: "[~@2 bb4@2 ~ bb4@2 d5@41, ~@2 c5 ~@21]/3", D: "[g4@3 c5@28 ~]/2",
  E: "[~@4 bb4@2 c5@2 bb4@2 d5@3 ~@2 eb5@2 d5@28 ~ bb4@2]/3", F: "[g4@3 c5@3 ~@2 d5@3 c5@33 ~@4]/3",
  G: "[~@11 d4@2 f4@2 d4@2 f4@10 g4@10 a4@15 ~ bb4@7 a4 ~ ab4 g4@46 ~@3]/7", H: "~@4 g4@3 a4@2 g4@3 bb4@4",
  I: "[~ g4@18 g4@3 ~ a4@3 g4@3 bb4@8 a4 ~ ab4 g4@20 d4@41 ~@11]/7", J: "[~ gb5@2 e5@3 d5@82 ~@8]/6",
  K: "~@8 bb4@5 g4@3", L: "[a4 bb4@7 c5@7 bb4@2 b4@2 ~ db5@41 ~@3, ~@19 c5@2 ~@43]/4",
  M: "[~@12 f4@2 ~ f4@2 a4@31, ~@7 g4 ~@16]/3", N: "[~@5 db5 b4 eb5@31 ~@2, ~@9 b4@2 ~@69]/5",
})).s("gm_trumpet").gain(0.3)

// other · trombone · "Solo Trombone"
const trombone = note("<~@220 A@3 B@3 C@4 ~@3 D@4 ~@7 E F@6 ~@15 G H I J@5 ~@28 K L@4 ~@2 M N@5 ~@106>".pickRestart({
  A: "[~@4 a3 g3 bb3@18, ~@7 g3@2 ~@39]/3", B: "[db4 d4@4 c4@31 ~@12]/3",
  C: "[~@3 g4@3 f4@2 d4@3 c4@3 bb3@5 a3@41 ~@4]/4", D: "[~@12 a3@3 bb3@3 g3@2 d3@10 f3@31 ~@3]/4",
  E: "~@9 g3@2 a3@3 g3@2", F: "[~ bb3@5 g3@18 g3@3 a3@3 ~ g3@8 bb3@5 a3@41 ~@11]/6", G: "~@2 a4@5 ab4@9",
  H: "~ a4@5 ~ gb4@5 g4@4", I: "~ a4@15", J: "[bb4@5 a4@5 ~ a4@2 bb4@8 a4@10 a4@41 ~@8]/5",
  K: "a4@3 ~@2 a4@3 bb4@2 a4@3 f4@3", L: "[d4@2 f4@3 ~ f4@3 a4@3 ~ f4@5 d4@5 eb4@41]/4", M: "~@9 f4@7",
  N: "[g4@7 f4@7 ab4@62 ~@4]/5",
})).s("gm_trombone").gain(0.4)

// other · trumpet · "Trumpet 1"
const trumpet_2 = note(`<
  ~@27 A B@2 C@5 ~@2 D@3 E F ~@2 G@7 ~@7 H@8 ~@8 I J K L M N O P@2 Q R@2 S T S U V ~@20 W ~@2 X Y Z AA AB AC AD AE AF@2
  ~@25 AG AH ~@6 AI AJ AK AL AM AN AO ~ AP AQ AR ~ AS@2 AT@3 ~@10 AU AV@2 AW@2 ~@3 AX@6 AY ~@64 AZ BA BB@3 ~@2 BC@4 ~@2
  BD BE@2 BF BG@2 BH@2 BI@3 BJ@2 ~@2 BK@3 BL BM@3 BN BO@8 BP@8 ~@18 BQ BR BS BT BU BV@2 BW BX@4 ~@10 BY@4 BZ@8 ~ CA@3
  ~@6 CB CC CD CE CF ~ CG CH@2 ~@2 CI CJ CK CL CM CN CO CP@2 CQ CR CS ~@9 CT@8 ~ CU@3
>`.pickRestart({
  A: "~@3 a4@2 bb4@2 c5@2 ~ db5@2 f5@4", B: "[bb5@4 ~ [bb5,db6]@18 ~@9]/2", C: "[~@9 eb5@6 gb5@7 a5@58]/5",
  D: "[~@4 eb5@7 gb5@6 db5@7 ~@2 db5@2 ~@3 db5@2 ~@2 db5@2 ~@3 db5 ~@2 db5 ~@2 db5 ~]/3",
  E: "~ db5 ~ db5 ~ db5 ~@2 db5 ~ db5!2 ~ db5!2 ~", F: "db5!2 ~ db5!2 ~ db5!2 ~@8",
  G: "[eb5@6 gb5@7 g5@13 a5@27 bb5@45 ~@14]/7", H: "[~@13 f5@36 c6@72 ~@7]/8", I: "~@4 eb4!2 ~ eb4 gb4@2 ~@6",
  J: "g4 e4 g4 e4 eb4@2 ~@2", K: "eb4!2 ~ eb4 gb4@2 ~@2 eb4@2 gb4@2 bb4@2 db5@2", L: "eb5@8 eb5 ~ eb5 ~ eb5 ~ eb5 ~",
  M: "eb5@2 d5 ~ d5 ~ d5 ~ d5@2 db5 ~ db5 ~ db5 ~", N: "db5@2 c5 ~ c5 ~ c5@6 ~@4",
  O: "eb4@2 gb4@2 bb4@2 db5@2 eb5@2 d5 ~ d5 ~ d5 ~",
  P: "[d5@2 db5 ~ db5 ~ db5 ~ db5@2 c5 ~ c5 ~ c5@6 ~@4 eb4 gb4 ~ bb4 db5 eb5 ~ f5]/2",
  Q: "g5@2 gb5 ~ gb5 ~ gb5 ~ gb5@2 f5 ~ f5 ~ f5 ~", R: "[g5@3 e5@3 bb5@10]/2", S: "~@4 eb5 e5 ~ f5 bb5@2 ~@2 bb5@2 ~@2",
  T: "eb5 e5 ~ f5 b5@2 ~@2 b5@2 ~@6", U: "eb5 e5 ~ f5 db6@2 ~@2 db6@2 ~@6", V: "eb5", W: "~@6 bb5 ~",
  X: "~@8 gb5@2 f5 ~ f5 ~ f5 ~", Y: "f5@2 e5 ~ e5 ~ e5 ~ e5@2 eb5 ~ eb5 ~ eb5 ~", Z: "bb5@2 bb5 ~@3 bb5 ~@9",
  AA: "~@8 g4 ab4 a4 bb4 b4 c5 db5 d5", AB: "eb5 ~ eb5 ~@3 e5 ~", AC: "e5@2 ~@6 g4 ab4 a4 bb4 b4 c5 db5 d5",
  AD: "eb5 ~ eb5 ~@3 f5 ~", AE: "f5@2 ~@6 e5 f5 ~ gb5 g5 ab5 ~ a5", AF: "[bb5,eb6]/2",
  AG: "bb4 c5 ~ db5 c5 db5 ~ c5 bb4 c5 ~ db5 c5 db5 ~ c5", AH: "bb4 ~@7", AI: "~@4 c5 b4 ~ c5 db5 c5 ~ db5 d5 db5 ~ d5",
  AJ: "eb5 d5 ~ eb5 e5@2 ~@10", AK: "~@4 f5 ~ f5 ~", AL: "f5 ~@2 f5 ~ f5 ~@2 f5 ~ f5 ~ f5 ~ f5 ~",
  AM: "f5!2 ~ f5!3 ~ f5!2 e5 ~ eb5 d5 db5 ~ c5", AN: "f5 e5 ~ eb5 d5 db5 ~ c5 f5 e5 ~ eb5 d5 db5 ~ c5",
  AO: "[b4,b5] [c5,c6] ~ [db5,db6] [d5,d6] [eb5,eb6] ~ [e5,e6] [f5,f6]@2 ~@6", AP: "~@4 f5!2 ~@2", AQ: "~@2 a5!2 ~@4",
  AR: "db6 ~@7", AS: "[f5 g5 ~ a5 g5 a5 ~ b5 [a5,db6]@24]/2", AT: "[~ [bb5,f6]@4 ~]/3", AU: "c5 db5", AV: "f5/2",
  AW: "[a5@3 ~]/2", AX: "[~@12 [gb5,b5]@70 ~@6 e5@3 db5@2 b4@3]/6", AY: "f5 ~@3 [f5,bb5] ~@3", AZ: "~@7 bb3",
  BA: "c4@3 d4@3 eb4@2 f4@3 g4@2 a4@3", BB: "[bb4@3 a4@41 ~@4]/3", BC: "[~@5 a5@23 ~@4]/4",
  BD: "~@7 [eb5,bb5]@3 ~@2 [f5,c6]@2 [g5,d6]@2", BE: "[~@4 [eb5,bb5]@23 g5@3 ~@2]/2", BF: "f5@3 ~@5 g5@3 ~@2 f5@3",
  BG: "[~@10 g5@3 ~@2 f5@3 ~@7 g5@3 ~@4]/2", BH: "[~ g5@3 ~@2 g5@23 ~@3]/2",
  BI: "[~@2 gb5@3 ~@5 gb5@3 ~@2 gb5@23 ~@10]/3", BJ: "[~ g5@2 bb5@3 ~@2 g5@23 ~]/2",
  BK: "[~@5 c5@2 bb4@2 d5@31 ~@8, ~@2 bb4 ~@21]/3", BL: "~@7 gb4@5 a4@4", BM: "[~ c5@5 ~ d5@5 gb5@15 g5@21]/3",
  BN: "c5@10 g4@3 bb4@2 g4", BO: "[~@2 bb4@33 db5@51 ~ eb5@41]/8",
  BP: "[f5@31 bb4@2 ~ db5@2 d5@2 ~ e5@2 f5@21 g5@10 ~@31 b5@21 ~@4, ~@33 c5@2 ~@3 eb5@2 ~@32 ab5@51 ~@5]/8",
  BQ: "~@5 bb4@4 a4@2 ~@2 bb4 ~@2", BR: "a4 ~ bb4 ~@2 f5 ~@2 a4 ~ bb4@4 a4@2",
  BS: "~@2 bb4 ~@2 c5 ~@2 d5 ~@2 c5 ~ bb4 ~@2", BT: "a4 ~@2 bb4 ~ bb4@4 ~ a4@2 ~@2 bb4 ~",
  BU: "bb4 ~@2 a4 ~@2 c5@4 bb4@2 ~@2 c5 ~", BV: "[~ c5 ~ bb4 ~@2 c5 ~@2 d5 ~ d5@4 g4@2 ~@3 d5 ~@4 d5@3 d5@2 d5@2]/2",
  BW: "~@4 g4@3 d5@5 d5@4", BX: "[~ g4@5 ~ bb4@4 a4@2 ~@2 d5@5 bb4 ~ a4 bb4 c5 ~ d5 eb5 f5@22 ~@14]/4",
  BY: "[f5@8 d5 ~ f5@8 ~ d5 ~ f5@3 g5 ~@4 g5@14 g5@8 f5 ~@2 g5@8 f5 ~]/4",
  BZ: "[~ g5@2 a5 ~@5 a5@13 bb5@8 a5@5 ~ eb5 f5 ~ g5@8 f5@8 [bb5,d6]@8 [a5,c6]@8 [g5,bb5]@8 [f5,a5]@8 [g5,bb5]@33 ~@8]/8", // Bb Am Gm F Gm
  CA: "[~@6 gb4 ~ bb4 ~ c5 ~ d5 ~@4 bb5@28 ~@3, ~@5 gb5@10 ~]/3", CB: "~@12 c5 ~ d5 eb5",
  CC: "f5 gb5 g5 ab5 a5 ~@9 c5 d5", CD: "eb5 f5 gb5 g5 ab5 a5 ~@9 c5", CE: "d5 eb5 f5 gb5 g5 ab5 a5 ~@9",
  CF: "c5 d5 eb5 e5 f5 gb5 g5 ~@9", CG: "~@11 eb5@5", CH: "[~ eb5@2 ~@9 ab5@6 ~ ab5@2 ~@11]/2", CI: "~@8 f5 ~@3 f5 ~@3",
  CJ: "~@9 g5 ~@4 g5 ~", CK: "~@10 ab5 ~@4 ab5", CL: "~@12 ab5 ~@3", CM: "g5 ~@8 f5 e5 f5 ~ f5 ~@2",
  CN: "~ f5 ~@3 f5 ~ e5 f5 ~ gb5 ~@3 gb5 ~", CO: "~@2 f5 ~ e5 f5 ~ ab5 ~@3 ab5 ~@4", CP: "[~@3 f5@21 ~@5 bb4 ~@2]/2",
  CQ: "~ bb4 ~@4 bb4 ~@3 bb4 ~@2 b4 ~@2", CR: "c5 ~@2 db5 ~ db5 ~ db5 ~ db5 ~ db5 ~ d5 eb5 ~",
  CS: "e5 f5 gb5 ~ g5 ab5 ~ a5 bb5 ~@7", CT: "[~@7 bb5@121]/8", CU: "[e6 f6@33 ~@14]/3",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "Trumpet 3"
const trumpet_3 = note(`<
  ~@27 A B@2 C@5 ~@2 D@3 E F ~@2 G@7 ~@7 H@8 ~@8 I J K L M N O P@2 Q R@2 S T S U V ~@20 W ~@2 X Y Z AA AB AC AD AE AF@2
  ~@25 AG AH ~@6 AI AJ AK AL AM AN AO ~ AP AQ AR ~ AS@2 AT@3 ~@10 AU@5 ~@3 AV@6 AW ~@64 AX AY AZ@3 ~ BA@5 ~@2 BB BC@2 BD
  BE@2 BF@2 BG@3 BH@2 BI@5 BJ BK@4 BL@8 BM@8 ~@18 BN BO BP BQ BR BS@2 BT BU@4 ~@10 BV@4 BW@8 ~ BX@3 ~@6 BY BZ CA CB CC ~
  CD CE@2 ~@2 CF CG CH CI CJ CK CL CM@2 CN CO CP ~@9 CQ@8 ~@4
>`.pickRestart({
  A: "~@3 a4@2 bb4@2 c5@2 ~ db5@2 a4@4", B: "[bb4@4 ~ db5@18 ~@9]/2", C: "[~@9 eb4@6 gb4@7 a4@58]/5",
  D: "[~@4 bb4@7 db5@6 ab4@7 ~@2 ab4@2 ~@3 ab4@2 ~@2 ab4@2 ~@3 ab4 ~@2 ab4 ~@2 ab4 ~]/3",
  E: "~ ab4 ~ ab4 ~ ab4 ~@2 ab4 ~ ab4!2 ~ ab4!2 ~", F: "ab4!2 ~ ab4!2 ~ ab4!2 ~@8",
  G: "[eb4@6 gb4@7 gb4@13 a4@27 bb4@45 ~@14]/7", H: "[~@13 c5@107 ~@8]/8", I: "~@4 eb4!2 ~ eb4 gb4@2 ~@6",
  J: "g4 e4 g4 e4 eb4@2 ~@2", K: "eb4!2 ~ eb4 gb4@2 ~@2 eb4@2 gb4@2 bb4@2 db5@2", L: "eb5@8 eb5 ~ eb5 ~ eb5 ~ eb5 ~",
  M: "eb5@2 d5 ~ d5 ~ d5 ~ d5@2 db5 ~ db5 ~ db5 ~", N: "db5@2 c5 ~ c5 ~ c5@6 ~@4",
  O: "eb4@2 gb4@2 bb4@2 db5@2 eb5@2 d5 ~ d5 ~ d5 ~",
  P: "[d5@2 db5 ~ db5 ~ db5 ~ db5@2 c5 ~ c5 ~ c5@6 ~@4 eb4 gb4 ~ bb4 db5 eb5 ~ f5]/2",
  Q: "bb4@2 a4 ~ a4 ~ a4 ~ a4@2 ab4 ~ ab4 ~ ab4 ~", R: "[db5@3 bb4@3 e5@10]/2",
  S: "~@4 eb4 e4 ~ f4 bb4@2 ~@2 bb4@2 ~@2", T: "eb4 e4 ~ f4 b4@2 ~@2 b4@2 ~@6", U: "eb4 e4 ~ f4 db5@2 ~@2 db5@2 ~@6",
  V: "g4", W: "~@6 bb4 ~", X: "~@8 eb5@2 d5 ~ d5 ~ d5 ~", Y: "d5@2 db5 ~ db5 ~ db5 ~ db5@2 c5 ~ c5 ~ c5 ~",
  Z: "gb4@2 gb4 ~@3 gb4 ~@9", AA: "~@8 e4 f4 gb4 g4 ab4 a4 bb4 b4", AB: "c5 ~ c5 ~@3 db5 ~",
  AC: "db5@2 ~@6 e4 f4 gb4 g4 ab4 a4 bb4 b4", AD: "c5 ~ c5 ~@3 d5 ~", AE: "d5@2 ~@6 e4 f4 ~ gb4 g4 ab4 ~ a4",
  AF: "bb4/2", AG: "bb4 c5 ~ db5 c5 db5 ~ c5 bb4 c5 ~ db5 c5 db5 ~ c5", AH: "bb4 ~@7",
  AI: "~@4 c5 b4 ~ c5 db5 c5 ~ db5 d5 db5 ~ d5", AJ: "eb5 d5 ~ eb5 e5@2 ~@10", AK: "~@4 db5 ~ db5 ~",
  AL: "db5 ~@2 db5 ~ db5 ~@2 db5 ~ db5 ~ db5 ~ db5 ~", AM: "db5 c5 ~ b4 bb4 a4 ~ ab4 f5 e5 ~ eb5 d5 db5 ~ c5",
  AN: "f5 e5 ~ eb5 d5 db5 ~ c5 f5 e5 ~ eb5 d5 db5 ~ c5", AO: "b4 c5 ~ db5 d5 eb5 ~ e5 f5@2 ~@6", AP: "~@4 a4!2 ~@2",
  AQ: "~@2 db5!2 ~@4", AR: "f5 ~@7", AS: "[db5 eb5 ~ f5 db5 eb5 ~ f5 db5@24]/2", AT: "[~ bb4@4 ~]/3",
  AU: "[c5 bb4@6 bb4@2 ~]/5", AV: "[~@12 b4@70 ~@6 b4@3 g4@2 e4@3]/6", AW: "f4 ~@3 f4 ~@3", AX: "~@7 bb3",
  AY: "c4@3 d4@3 eb4@2 f4@3 g4@2 a4@3", AZ: "[bb4@3 a4@41 ~@4]/3", BA: "[~@5 d5@67 ~@8]/5",
  BB: "~@7 bb4@3 ~@2 c5@2 d5@2", BC: "[~@4 bb4@23 c5@3 ~@2]/2", BD: "c5@3 ~@5 c5@3 ~@2 c5@3",
  BE: "[~@10 c5@3 ~@2 c5@3 ~@7 bb4@3 ~@4]/2", BF: "[~ bb4@3 ~@2 bb4@23 ~@3]/2",
  BG: "[~@2 a4@3 ~@5 a4@3 ~@2 a4@23 ~@10]/3", BH: "[~ c5@2 d5@3 ~@2 bb4@23 ~]/2",
  BI: "[~@15 bb4@2 ~ bb4@2 d5@51 ~@9, ~@17 c5@2 ~@61]/5", BJ: "~@7 gb4@5 a4@4", BK: "[~ c5@26 c5@31 g4@3 bb4@2 g4]/4",
  BL: "[~@2 bb4@44 f4@41 g4@41]/8", BM: "[c5@41 b4@82 ~@5]/8", BN: "~@5 bb4@4 a4@2 ~@2 bb4 ~@2",
  BO: "a4 ~ bb4 ~@2 f5 ~@2 a4 ~ bb4@4 a4@2", BP: "~@2 bb4 ~@2 c5 ~@2 d5 ~@2 c5 ~ bb4 ~@2",
  BQ: "a4 ~@2 bb4 ~ bb4@4 ~ a4@2 ~@2 bb4 ~", BR: "bb4 ~@2 a4 ~@2 c5@4 bb4@2 ~@2 c5 ~",
  BS: "[~ c5 ~ bb4 ~@2 c5 ~@2 d5 ~ d5@4 g4@2 ~@3 d5 ~@4 d5@3 d5@2 d5@2]/2", BT: "~@4 g4@3 d5@5 d5@4",
  BU: "[~ g4@5 ~ bb4@4 a4@2 ~@2 d5@5 bb4 ~ a4 bb4 c5 ~ d5 eb5 bb4@22 ~@14]/4",
  BV: "[f4@8 d4 ~ f4@8 ~ d4 ~ f4@3 g4 ~@4 g4@14 g4@8 f4 ~@2 g4@8 f4 ~]/4",
  BW: "[~ g4@2 a4 ~@5 a4@13 bb4@8 a4@8 ~ bb4@16 d5@8 c5@8 bb4@8 a4@8 bb4@33 ~@8]/8",
  BX: "[~@6 gb4 ~ bb4 ~ c5@35 ~@3]/3", BY: "~@12 c5 ~ d5 eb5", BZ: "f5 gb5 g5 ab5 a5 ~@9 c5 d5",
  CA: "eb5 f5 gb5 g5 ab5 a5 ~@9 c5", CB: "d5 eb5 f5 gb5 g5 ab5 a5 ~@9", CC: "c5 d5 eb5 e5 f5 gb5 g5 ~@9",
  CD: "~@11 a4@5", CE: "[~ a4@2 ~@9 a4@6 ~ a4@2 ~@11]/2", CF: "~@8 bb4 ~@3 bb4 ~@3", CG: "~@9 b4 ~@4 b4 ~",
  CH: "~@10 db5 ~@4 db5", CI: "~@12 db5 ~@3", CJ: "c5 ~@12 bb4 ~@2", CK: "~ bb4 ~@8 c5 ~@3 c5 ~",
  CL: "~@7 db5 ~@3 db5 ~@4", CM: "[~@3 c5@21 ~@5 bb4 ~@2]/2", CN: "~ bb4 ~@4 bb4 ~@3 bb4 ~@2 bb4 ~@2",
  CO: "bb4 ~@2 bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4!2 ~", CP: "bb4!3 ~ bb4!2 ~ bb4!2 ~@7", CQ: "[~@7 bb4@121]/8",
})).s("gm_trumpet").gain(0.3)

// other · french horn · "Mellophone 1"
const french_horn_2 = note(`<
  ~@26 A B C@2 D@2 ~@5 E@3 F G ~@2 H@7 ~@7 I@8 ~@42 J K L M N O P@2 Q R S T S U V@2 ~@26 W X ~@4 Y Z ~ AA AB AC AD AE ~
  AF AG AH AI AJ AK AL@3 ~@7 AM@8 ~@5 AN@4 AO ~@63 AP AQ@3 ~@2 AR@6 ~@2 AS AT@6 AU@6 AV@3 ~ AW@5 AX@5 AY@4 AZ@8 ~@18 BA
  BB BC BD BE BF@2 BG BH@2 BI ~@11 BJ BK@3 BL BM@7 ~@10 BN BO BP BQ BR ~ BS@3 ~@2 BT BU BV BW BX BY BZ CA@2 CB CC CD ~@9
  CE@2 CF@8 ~@2
>`.pickRestart({
  A: "~@5 c4 db4 f4", B: "~ a4@2 bb4@7 db5@6", C: "[bb4@4 ~ c5@18 ~@9]/2", D: "[~@9 gb4@6 gb4@7 a4@4 ~@6]/2",
  E: "[~@4 eb4@7 gb4@6 db4@7 ~@2 db4@2 ~@3 d4@2 ~@2 eb4@2 ~@3 f4 ~@2 gb4 ~@2 g4 ~]/3",
  F: "~ ab4 ~ a4 ~ bb4 ~@2 b4 ~ ab4!2 ~ ab4!2 ~", G: "ab4!2 ~ ab4!2 ~ ab4!2 ~@8",
  H: "[eb4@6 gb4@7 bb4@13 b4@27 bb4@45 ~@14]/7", I: "[~@13 b4@13 f4@4 ~ b4@18 ~@36 f5@36 ~@7, ~@49 c5@72 ~@7]/8",
  J: "bb3 c4 db4 eb4 f4 gb4 ~@2", K: "bb3 c4 db4 eb4 f4 gb4 ab4@2", L: "~@4 g4 ~ g4 ~ g4@2 gb4 ~ gb4 ~ gb4 ~",
  M: "gb4@2 f4 ~ f4 ~ f4 ~ f4@2 e4 ~ e4@4", N: "~@2 bb3 c4 db4 eb4 f4 gb4", O: "~@4 gb4 ab4 ~ gb4 f4@2 e4@2 eb4@2 d4@2",
  P: "[db4@4 c4@4 b4@16 ~@4 gb4 ab4 ~ bb4]/2", Q: "b4@2 bb4 ~ bb4 ~ bb4 ~ bb4@2 a4 ~ a4 ~ a4 ~",
  R: "a4@2 ab4 ~ ab4 ~ ab4 ~ g4@2 gb4@2 f4@2 ~@2", S: "~@4 eb4 e4 ~ f4 bb4@2 ~@2 bb4@2 ~@2",
  T: "eb4 e4 ~ f4 b4@2 ~@2 b4@2 ~@6", U: "eb4 e4 ~ f4 db5@2 ~@2 db5@2 ~@6", V: "eb5/2",
  W: "~@8 f4 g4 ~ ab4 g4 ab4 ~ g4", X: "f4 g4 ~ ab4 g4 ab4 ~ g4 f4@2 ~@6", Y: "~@8 bb4 a4 ~ bb4 b4 bb4 ~ b4",
  Z: "c5 b4 ~ c5 db5@2 ~@10", AA: "~@4 a4 ~ a4 ~", AB: "a4 ~@2 a4 ~ a4 ~@2 a4 ~ a4 ~ a4 ~ a4 ~",
  AC: "a4 ab4 ~ g4 gb4 f4 ~ e4 ~@8", AD: "b4 bb4 ~ a4 ab4 g4 ~ gb4 b4 bb4 ~ a4 ab4 g4 ~ gb4",
  AE: "b4 bb4 ~ a4 ab4 g4 ~ gb4 f4@2 ~@6", AF: "~@4 eb5!2 ~@2", AG: "~@2 db5!2 ~@4", AH: "a4 ~@7",
  AI: "~@8 a4 b4 ~ db5 b4 db5 ~ eb5", AJ: "f5 ~", AK: "a4", AL: "[~ f5@4 ~]/3",
  AM: "[~@3 bb3@2 c4@2 db4@2 f4@2 c4@2 db4@2 f4@2 bb4@9 c5@4 ~@2]/8",
  AN: "[~@8 gb4@4 db5@8 gb4@4 db5@26 ~@6 e4@3 db4@2 b3@3]/4", AO: "f4 ~@3 f4 ~@3", AP: "~@9 d4@3 eb4@2 f4@2",
// … 200 more lines