Strudelify

Incantation and Dance

Avinash Singh

KeyF majorTempo138 bpm
0:00/0:00
// Incantation and Dance — Avinash Singh
// 138 bpm, 4/4, key F 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 (3/4 at bar 1, 4/4 at bar 62, 3/4 at bar 78, 4/4 at bar 79, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/2475101; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 249 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(138/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 · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@12 A B@3 ~@8 C ~@2 D@7 E@8 ~@12 F@6 ~@3 G@3 ~ H I@4 J K@3 L M ~ N O N P Q@2 R@2 S@2 T@2 U V U W X ~@2 Y Z AA AB@3
  AC@2 AD AE ~ AF AG@3 AH AI AJ AI AJ AK AL AM AN AO AJ ~@2 AP@3 ~@3 AQ AR AS AT AU AV AW AX ~@14 AY ~@5 AZ BA AZ BA ~@4
  BB BC BB BC BD BE ~@5 BF BG BH BG BI BJ BK BL BK BL BK BM BN BO BP BO BQ BR ~ BS ~ BT@2 BU BV@2 BW@2 BX BY BZ CA CB CC
  ~ CD CE CF ~@2 CG@2 ~@10 CH CI CJ@2 ~ CK CL CM ~ CN@8 ~
>`.pickRestart({
  A: "~@2 f4", B: "[g4@23 ~]/3", C: "~@3 gb4",
  D: "[~@21 bb4@6 ~ eb5@6 d5@6 g4@6 ~ eb5@6 d5@12 a4@13 bb4@6 a4@6 g4@19 a4@6 ~ bb4@6 c5@6 d5@13 a4@12 bb4@6 a4@6 ~ bb4@2]/7",
  E: "[a4@2 bb4@2 ~@25 d4@6 ~@157, ~ a4@47]/8", F: "[~@22 a4@15 bb4@107]/6", G: "[~@2 a4@12 b4@9 c5@48 ~]/3",
  H: "~@17 a4 b4 ~ c5@2 ~@2", I: "[~@23 c5@54 ~@12 c5 d5 ~ eb5@2 ~@2]/4", J: "~@11 c5 d5 ~ eb5@2 ~@8",
  K: "[~@11 eb5@60 ~]/3", L: "~@11 d5 eb5 ~ f5@2 ~@8", M: "~@14 d5 eb5 ~ f5@2 ~@5",
  N: "~@5 c5 d5 ~ c5 d5 ~ eb5@6 f5@2 ~@5", O: "~@2 d5@3 c5 d5 ~ eb5@3 c5 ~@2 f4 ~@9",
  P: "~@2 d5@3 c5 d5 ~ eb5@3 c5 ~@2 f4 ~@2 d5@3 bb4 ~@2 g4",
  Q: "[~@11 g4 ~@2 eb4@3 d4 ~@5 a4@3 ~@3 ab4 a4 ~ ab4 a4 ~ b4@6 c5 ~@6]/2",
  R: "[~@5 ab4 a4 ~ b4@3 c5@3 d5@3 d4@3 ~@3 a4@3 ~@3 ab4 a4 ~ ab4 a4 ~ b4@6 c5@3 ~@4]/2",
  S: "[~@2 a4@3 ab4 a4 ~ b4@3 c5@3 d5@3 eb4@3 ~@3 gb4@3 ~@3 f4 gb4 ~ f4 gb4 ~ ab4@6 a4 ~@2 eb4 ~@3]/2",
  T: "[~@2 gb4@2 ~ f4 gb4 ~ ab4@3 a4@3 b4@3 c5@3 ~@3 eb5@3 d5 eb5 ~@19 c5]/2", U: "d5 ~ c5 d5 ~ eb5@6 f5@2 ~@7 d5@3 c5",
  V: "d5 ~ eb5@3 c5 ~@2 f4 ~@14 c5", W: "d5 ~ eb5@3 c5 ~@2 f4 ~@2 d5@3 bb4 ~@2 g4 ~@6", X: "~@5 g4 ~@2 eb4@3 d4 ~@12",
  Y: "~@20 a3@3 ab3", Z: "a3 ~ b3@3 c4@3 d4@3 eb4@3 ~@3 gb4@3 ~@3 f4",
  AA: "gb4 ~ f4 gb4 ~ ab4@6 a4@3 eb4 ~@5 gb4@2 ~ f4",
  AB: "[gb4 ~ ab4@3 a4@3 b4@3 c5@3 ~@3 eb5@3 d5 eb5 ~ f5@3 gb5@3 g5@3 ~@9 c5 d5 ~ c5 d5 ~ eb5@6 f5@2 ~@7 d5@3 c5 d5 ~ eb5@3 c5]/3",
  AC: "[~@2 f4 ~@14 c5 d5 ~ c5 d5 ~ eb5@6 f5@2 ~@7 d5@3 c5 d5 ~ eb5@3 c5]/2", AD: "~@2 f4 ~@2 d5@3 bb4 ~@2 g4 ~@11 g4",
  AE: "~@2 bb4@3 eb4@3 ~@16", AF: "~@14 g4@3 f4 ~@6",
  AG: "[~@2 f4@3 eb4@3 ~@3 eb4@3 f4@3 ~@3 f4@3 g4@3 ~@3 g4@3 g4@3 ~@3 g4@3 g4@3 ~@3 g4@3 g4@3 ~@3 g5@3 ab5@3 ~@3 ab5@3 ab5@3 ~]/3",
  AH: "~@2 ab5@3 ab5@3 ~@3 ab5@3 ab5@3 ~@3 ab5@3 ~",
  AI: "~@5 db5 eb5 ~ f5 gb5 ~ [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5]", // Amaj7
  AJ: "ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 ~@7", // Amaj7
  AK: "~@5 d5 e5 ~ gb5 g5 ~ [a5,bb5] a5 bb5 [a5,bb5] a5 bb5 [a5,bb5] a5 bb5 [a5,bb5] a5 bb5 [a5,bb5]", // Bbmaj7
  AL: "a5 bb5 [a5,bb5] a5 bb5 db5 eb5 ~ f5 gb5 ~ [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5]", // Bbmaj7 Amaj7
  AM: "ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 ~@16", AN: "~@17 db5 eb5 ~ f5 gb5 ~ [ab5,a5]",
  AO: "ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5]", // Amaj7
  AP: "[~@5 ab4@42 bb4@18 ~@7]/3", AQ: "gb4@5 ab4@3", AR: "a4@7 ~", AS: "~@13 d5 ~ c5 d5 ~@7",
  AT: "~@15 c5 d5 ~ c5 d5 ~@4", AU: "~@12 c5 d5 ~ c5 d5 ~@7", AV: "~@9 c5 d5 ~ c5 d5 ~@7 c5 d5 ~",
  AW: "c5 d5 ~@7 c5 d5 ~ c5 d5 ~@4 c5 d5 ~ c5 d5 ~", AX: "~@3 c5 d5 ~ c5 ~@2 eb5@12 ~@3", AY: "~@4 f4@3 ~",
  AZ: "~ f5 ~ eb5@4 d5", BA: "eb5 ~ f5 ~ eb5 gb5 ~@2", BB: "~@12 c5 d5 ~ c5 d5 ~ eb5@6",
  BC: "f5 ~@2 g4@3 ~@12 c5 ~@2 f4@3", BD: "d5@3 bb4 ~@2 g4 ~@8 bb4@3 g4 ~@2 eb4@3", BE: "d4 ~@23",
  BF: "c5@3 ~@3 eb5@3 d5 eb5 ~ f5@3 gb5@3 ~@6", BG: "~@6 c5 d5 ~ c5 d5 ~ eb5@6 f5 ~@2 g4@3", BH: "~@12 c5 ~@2 f4@3 ~@6",
  BI: "~@12 c5 ~@2 f4@3 d5@3 bb4 ~@2", BJ: "g4 ~@8 bb4@3 g4 ~@2 eb4@3 d4 ~@5", BK: "~@6 ab5 a5 ~ ab5 a5 ~ b5@6 c6 ~@5",
  BL: "~@6 ab5 a5 ~ b5@3 c6@3 d6@3 ~@6", BM: "~@6 ab5 a5 ~ b5@3 c6@3 d6@3 eb6@3 ~@3", BN: "~@4 g6 ~@3",
  BO: "c6 d6 ~ c6 d6 ~ eb6@6 f6@2 ~@7 d6@3", BP: "c6 d6 ~ eb6@3 c6 ~@2 f5 ~@14",
  BQ: "c6 d6 ~ eb6@3 c6 ~@2 f5 ~@2 d6@3 bb5 ~@2 g5 ~@5", BR: "~@6 g5 ~@2 bb5@3 ~@12", BS: "~@5 eb4@3 ~@16",
  BT: "[~@20 g4@3 f4@2 ~@8 f4@3 eb4@3 ~@4 eb4@3 f4@2]/2", BU: "~@5 f4@3 g4@3 ~@4 g4@3 g4@3 ~@3",
  BV: "[g4@3 ~ g4@3 ~@3 g4@3 ~ g4@3 ~@3 g5@3 ab5@3 ~@4 ab5@3 ab5@3 ~@4 ab5@3 ab5@3 ~@2]/2",
  BW: "[~@2 ab5@3 ab5@3 ~@4 ab5@3 ~@6 db5@2 eb5@2 ~ gb5@2 ab5 a5 [ab5,a5] ab5 a5 ab5 a5 [ab5,a5] ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5 ab5 a5, ~@25 f5@2 ~@21]/2", // Amaj7
  BX: "[ab5,a5] ab5 a5 ab5 a5 [ab5,a5] ab5 a5 ab5 a5 [ab5,a5] ab5 a5 ~@11", // Amaj7
  BY: "~@2 db5@2 ~ f5@2 gb5@2 [ab5,a5] ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5 ab5 a5 [ab5,a5] ab5, ~@2 eb5 ~@9", // Amaj7
  BZ: "a5 ab5 a5 [ab5,a5] ab5 a5 ab5 a5 [ab5,a5] ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 a5 ~@6", // Amaj7
  CA: "~@8 e5@2 ~ g5@2 a5 bb5 a5 [a5,bb5] bb5 a5 bb5 a5 [a5,bb5] bb5 a5, ~@7 d5@2 ~ gb5@2 ~@12", // Bbmaj7
  CB: "bb5 [a5,bb5] a5 bb5 a5 bb5 [a5,bb5] a5 bb5 ~ eb5@2 f5@2 ~ ab5 a5 ab5 a5 [ab5,a5] ab5 a5 ab5 a5, ~@9 db5@2 ~@3 gb5@2 ~@8", // Bbmaj7 Amaj7
  CC: "[ab5,a5] ab5 a5 ab5 a5 [ab5,a5] ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 a5 ~@9", // Amaj7
  CD: "~@4 eb5@2 ~ gb5@2 ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5 ab5 a5 [ab5,a5] ab5 a5, ~@3 db5@2 ~ f5@2 ~@16", // Amaj7
  CE: "ab5 a5 [ab5,a5] ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5 ab5 a5 [ab5,a5] ab5 a5 ab5", // Amaj7
  CF: "a5 [ab5,a5] ab5 a5 ab5 [ab5,a5] a5 ~@17", // Amaj7
  CG: "[~@5 d5@4 ~ d5@4 d5@4 d5@4 ~ d5@4 d5@4 d5@4 ~ d5@4 d5@2 e5@2 f5@3 ~]/2", CH: "~@9 d5 eb5 f5",
  CI: "~ gb5@3 g5@3 ~@4 d5@2 ~@4 c5@2 d5@2 ~ d5@2, ~@21 c5@2 ~", CJ: "[eb5@4 ~@6 g4@2 ~@4 d5@2 ~@5 eb5@7 ~@18]/2",
  CK: "~@5 eb5@2 f5@3 gb5@3 g5@3 ~@4 d5@2 ~@2, ~@2 d5 ~@9",
  CL: "~@4 d5@2 ~ d5@2 eb5@4 ~@6 g4@2 ~@3, ~@3 c5@2 ~ c5@2 ~@16", CM: "~@2 d5@2 ~@4 eb5@7 ~@9",
  CN: "[~@13 c5@3 d5@3 eb5@56 f5@53 ~ c5@2 d5@46 d5@3 g5@3 ~@9, ~@64 d5 ~@31]/8",
})).s("gm_trumpet").gain(0.72)

// other · trumpet · "B♭ Trumpet" · soft notes
const trumpet_soft = note(`<
  ~@6 A@2 ~@10 B@7 C@3 ~@7 D E F@5 G@4 H@4 I@5 ~@73 J@2 ~@4 K ~@4 L M ~@2 N@6 O@2 P@4 Q@3 ~@6 R S ~@83
>`.pickRestart({
  A: "[~@2 f4@8 g4@31 ~@7]/2", B: "[~@3 gb4@23 ~@2]/7", C: "[g4@23 ~]/3", D: "~@11 eb4@6 ~ f4@6", E: "g4 d4",
  F: "[~ eb4@6 d4@6 ~ c4@18 d4@6 ~ eb4@6 f4@6 g4@13 d4@12 eb4@6 ~ d4@6 c4@19 d4@6 eb4@6]/5",
  G: "[f4@6 g4@13 d4@13 eb4@6 d4@6 c4@19 d4@6 eb4@7 f4@7 g4@13]/4", H: "[~ b4@29 a4@8 b4@30 c5@23 d5@5]/4",
  I: "[~@3 b4@31 a4@7 b4@46 g4@31 ~@2]/5", J: "[~@17 b4@15 ~@16]/2", K: "~@12 c5 ~@11", L: "~@7 d5 ~@13 f5 gb5 ~",
  M: "g5 ~@7", N: "[d4 c4 ~ d4@78 ~@3 c4@3 d4@3 eb4@42 f4@9 ~@3]/6", O: "[d4 c4 ~ d4@42 ~@3]/2",
  P: "[c4 d4 eb4@10 g4@16 ~@4]/4", Q: "[d4 c4 ~ d4@66 ~@3]/3", R: "~ f4 ~ eb4@4 d4",
  S: "eb4 ~@5 f4@3 ~@3 eb4@3 gb4@3 ~@6",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note(`<
  ~@6 A@2 ~@4 B C@3 ~@2 D@7 C@3 ~@3 E@5 F G@6 H@3 I@4 J K@4 L@5 ~@3 M@3 ~ N O@4 P Q@3 R S T U V U W X@2 Y@2 Z@2 AA@2 AB
  AC AB AD AE ~@2 AF AG AH AI@3 AJ@2 AK AL ~ AM AN@3 AO AP AQ AR AQ AS AT AU@2 ~ AV AQ AW AX@4 ~@2 AY AZ BA@4 BB BC BD
  ~@2 BE@6 BF@2 BG@4 BH@3 ~@2 BI BJ BI BJ BK BL ~@2 BM BN BM BN BO BP ~@3 BQ BR BS BT BU BT BV BW BX BY BX BY BX BZ CA
  CB CC CB CD CE ~ CF ~ CG@2 CH CI@2 CJ CK CL CM CN CO CP CQ@2 ~@2 CR CS CT CU@2 ~@10 CV CW CX@2 ~ CY CZ DA ~ DB@8 ~
>`.pickRestart({
  A: "[~@2 d4@8 eb4@31 ~@7]/2", B: "~@2 d4", C: "[eb4@23 ~]/3", D: "[~@9 eb4@23 e4@46 ~@3 e4@3]/7",
  E: "[~@13 a4@6 ~ bb4@6 c5@6 d5@13 a4@12 bb4@6 a4@6 ~ g4@19 a4@6 bb4@6 c5@6 d5@13]/5", F: "a4@12 bb4@6 ~ a4@5",
  G: "[~ g4@19 a4@6 bb4@6 c5@6 ~ d5@12 a4@13 bb4@6 a4@6 g4@19 a4@6 bb4@6 ~ c5@6 d5@12 a4@13 bb4@5]/6",
  H: "[~ a4@6 ~ g4@18 a4@6 ~ bb4@6 c5@6 d5@14 a4@13]/3", I: "[~ ab4@29 gb4@8 ab4@30 a4@23 b4@5]/4", J: "~ ab4@7",
  K: "[~@10 gb4@7 ab4@46 e4@31 gb4@2]/4", L: "[~@13 g4@107]/5", M: "[~@2 f4@12 g4@9 ab4@48 ~]/3",
  N: "~@17 f4 g4 ~ ab4@2 ~@2", O: "[~@23 ab4@54 ~@12 a4 b4 ~ c5@2 ~@2]/4", P: "~@11 a4 b4 ~ c5@3 ~@7",
  Q: "[~@11 c5@60 ~]/3", R: "~@11 d5 eb5 ~ f5@2 ~@8", S: "~@14 d5 eb5 ~ f5@2 ~@5",
  T: "~@8 d4 eb4 ~ f4@2 ~ gb4@3 g4 ~@5 d5", U: "~@11 eb5@4 ~@5 g4 ~@3", V: "~@2 d5 ~@5 eb5@2 ~@4 f4@3 g4 ~@5 d5",
  W: "~@2 d5 ~@5 eb5@2 ~@4 f4@3 g4 ~@6", X: "[~@2 c5@2 ~ ab4 ~@2 bb4@2 ~ g4 ~@2 eb4@3 d4 ~@5 a4@3 ~@18 d4@3 ~]/2",
  Y: "[~@2 a4@3 ~@12 d4@3 ~@3 a4@3 ~@18 d4@3 ~]/2",
  Z: "[~@2 a4@3 ~@12 eb4@3 ~@3 gb4@3 ~@3 f4 gb4 ~ f4 gb4 ~ ab4@6 a4@3 eb4 ~@3]/2",
  AA: "[~@2 gb4@2 ~ f4 gb4 ~ ab4@3 a4@3 b4@3 eb4 ~@5 gb4@2 ~@4 f4@3 gb4@3 g4 ~@5 d5 ~@6]/2",
  AB: "~@5 eb5@4 ~@5 g4 ~@5 d5 ~@3", AC: "~@2 eb5@2 ~@4 f4@3 g4 ~@5 d5 ~@6", AD: "~@2 eb5@2 ~@4 f4@3 g4 ~@8 c5@2 ~ ab4",
  AE: "~@2 bb4@2 ~ g4 ~@2 eb4@3 d4 ~@12", AF: "~@20 a3@3 ab3", AG: "a3 ~ b3@3 c4@3 d4@3 eb4@3 ~@3 gb4@3 ~@3 f4",
  AH: "gb4 ~ f4 gb4 ~ ab4@6 a4@3 eb4 ~@5 gb4@2 ~ f4",
  AI: "[gb4 ~ ab4@3 a4@3 b4@3 eb4 ~@5 gb4@2 ~@4 f4@3 gb4@3 g4 ~@5 d5 ~@11 eb5@4 ~@5 g4 ~@5 d5 ~@5 eb5@2 ~@2]/3",
  AJ: "[~@2 f4@3 g4 ~@5 d5 ~@11 eb5@4 ~@5 g4 ~@5 d5 ~@5 eb5@2 ~@2]/2", AK: "~@2 f4@3 g4 ~@8 c5@2 ~ ab4 ~@2 bb4@2 ~ g4",
  AL: "~@2 d4@3 eb4@3 ~@16", AM: "~@14 g4@3 f4 ~@6",
  AN: "[~@2 f4@3 eb4@3 ~@3 eb4@3 f4@3 ~@3 f4@3 g4@3 ~@3 g4@3 g4@3 ~@3 g4@3 g4@3 ~@3 g4@3 g4@3 ~@3 g4@3 ab4@3 ~@3 ab4@3 ab4@3 ~]/3",
  AO: "~@2 ab4@3 ab4@3 ~@3 ab4@3 ab4@3 ~@3 ab4@3 ~",
  AP: "~@11 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5]", // Amaj7
  AQ: "ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5]", // Amaj7
  AR: "ab5 a5 [ab5,a5] ab5 a5 ~@6 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5]", // Amaj7
  AS: "ab5 a5 [ab5,a5] ab5 a5 ~@6 [a5,bb5] a5 bb5 [a5,bb5] a5 bb5 [a5,bb5] a5 bb5 [a5,bb5] a5 bb5 [a5,bb5]", // Amaj7 Bbmaj7
  AT: "a5 bb5 [a5,bb5] a5 bb5 ~@6 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5]", // Bbmaj7 Amaj7
  AU: "[ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 ~@3 a4@9 b4@9 c5@3 ~@16]/2", AV: "~@17 db5 eb5 ~ f5 gb5 ~ [ab5,a5]",
  AW: "ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 [ab5,a5] ab5 a5 ~@7", // Amaj7
  AX: "[~@5 eb4@42 f4@18 gb4@15 ~@16]/4", AY: "b3@5 db4@3", AZ: "d4@7 ~",
  BA: "[~@6 eb5@7 ~@2 eb5@5 ~@2 eb5@5 ~@2 eb5@2 ~]/4", BB: "~ eb5@2 ~@2 eb5 ~@2", BC: "eb5@3 ~@6 eb4@12 f4 gb4 ~",
  BD: "g4 ~@7", BE: "[bb3 a3 ~ bb3@78 ~@3 a3@3 bb3@3 c4@42 d4@9 ~@3]/6", BF: "[bb3 a3 ~ bb3@42 ~@3]/2",
  BG: "[a3 bb3 c4@10 eb4@16 d4@3 ~]/4", BH: "[bb3 a3 ~ bb3@66 ~@3]/3", BI: "~ d5 ~ c5@4 b4", BJ: "c5 ~ d5 ~ c5 eb5 ~@2",
  BK: "~ d4 ~ c4@4 b3", BL: "c4 ~@5 d4@3 ~@3 c4@3 eb4@3 ~@6", BM: "g4 ~ d5 ~@5", BN: "~@9 d5@3 c5 d5 ~ eb5@3 ~@6",
  BO: "~@9 c5@3 ab4 ~@2 bb4@3 g4 ~@2 eb4@3", BP: "d4 ~@23", BQ: "eb4@3 ~@3 gb4@3 ~@3 f4 gb4 ~ f4 gb4 ~ ab4@6",
  BR: "a4@3 eb4 ~@5 gb4@2 ~ f4 gb4 ~ ab4@3 a4@3 b4@3", BS: "eb4 ~@5 gb4@2 ~@4 f4@3 gb4@3 g4@3 ~@3", BT: "d5 ~@7",
  BU: "~@3 d5@3 c5 d5 ~ eb5@3 ~@6 g4@3 ~@3", BV: "~@3 d5@3 c5 d5 ~ eb5@3 ~@12",
  BW: "~@3 c5@3 ab4 ~@2 bb4@3 g4 ~@2 eb4@3 d4 ~@5", BX: "~@6 ab4 a4 ~ ab4 a4 ~ b4@6 c5 ~@5",
  BY: "~@6 ab4 a4 ~ b4@3 c5@3 d5@3 ~@6", BZ: "~@6 ab4 a4 ~ b4@3 c5@3 d5@3 eb5@3 ~@3", CA: "~@12 g4 ~@5 d5 ~@5",
  CB: "~@6 eb5@4 ~@5 g4 ~@5 d5 ~@2", CC: "~@3 eb5@2 ~@4 f4@3 g4 ~@5 d5 ~@5", CD: "~@3 eb5@2 ~@4 f4@3 g4 ~@8 c5@2 ~",
  CE: "ab4 ~@2 bb4@2 ~ g4 ~@2 d4@3 ~@12", CF: "~@5 eb4@3 ~@16", CG: "[~@20 g4@3 f4@2 ~@8 f4@3 eb4@3 ~@4 eb4@3 f4@2]/2",
  CH: "~@5 f4@3 g4@3 ~@4 g4@3 g4@3 ~@3",
  CI: "[g4@3 ~ g4@3 ~@3 g4@3 ~ g4@3 ~@3 g4@3 ab4@3 ~@4 ab4@3 ab4@3 ~@4 ab4@3 ab4@3 ~@2]/2",
  CJ: "~@2 ab4@3 ab4@3 ~@4 ab4@3 ~@9",
  CK: "~@4 ab5 a5 [ab5,a5] ab5 a5 ab5 a5 [ab5,a5] ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5 ab5 a5", // Amaj7
  CL: "[ab5,a5] ab5 a5 ab5 a5 [ab5,a5] ab5 a5 ab5 a5 [ab5,a5] ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5 ab5 a5 [ab5,a5]", // Amaj7
  CM: "ab5 a5 ~@7 [ab5,a5] ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5 ab5 a5 [ab5,a5] ab5", // Amaj7
  CN: "a5 ab5 a5 [ab5,a5] ab5 a5 ab5 a5 [ab5,a5] ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5", // Amaj7
  CO: "ab5 a5 [ab5,a5] ab5 a5 ab5 a5 ~@6 a5 bb5 a5 [a5,bb5] bb5 a5 bb5 a5 [a5,bb5] bb5 a5", // Amaj7 Bbmaj7
  CP: "bb5 [a5,bb5] a5 bb5 a5 bb5 [a5,bb5] a5 bb5 ~@6 ab5 a5 ab5 a5 [ab5,a5] ab5 a5 ab5 a5", // Bbmaj7 Amaj7
  CQ: "[[ab5,a5] ab5 a5 ab5 a5 [ab5,a5] ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 a5 ~@3 a4@10 b4@9 c5@3 ~@8]/2", // Amaj7
  CR: "~@7 db5@2 ~ f5@2 gb5@2 ab5 [ab5,a5] a5 ab5 a5 [ab5,a5] ab5 a5 ab5 a5, ~@9 eb5@2 ~@13", // Amaj7
  CS: "[ab5,a5] ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5 ab5 a5 [ab5,a5] ab5 a5 ab5 a5 [ab5,a5]", // Amaj7
  CT: "ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ab5 [ab5,a5] a5 ab5 a5 ~@12", // Amaj7
  CU: "[~@5 d5@4 ~ d5@4 d5@4 d5@4 ~ d5@4 d5@4 d5@4 ~ d5@4 d5@2 e5@2 f5@3 ~]/2", CV: "~@9 d4 eb4 f4",
  CW: "~ gb4@3 g4@3 ~@4 d4@2 ~@4 c4@2 d4@2 ~ d4@2, ~@21 c4@2 ~", CX: "[eb4@4 ~@6 g4@2 ~@4 d4@2 ~@5 eb4@7 ~@18]/2",
  CY: "~@5 eb4@2 f4@3 gb4@3 g4@3 ~@4 d4@2 ~@2, ~@2 d4 ~@9",
  CZ: "~@4 d4@2 ~ d4@2 eb4@4 ~@6 g4@2 ~@3, ~@3 c4@2 ~ c4@2 ~@16", DA: "~@2 d4@2 ~@4 eb4@7 ~@9",
  DB: "[~@13 c4@3 d4@3 c4@56 d4@53 d4@3 g4@3 ~@4 f4@13 g4@3 ab4@3 ~@4 bb4@3 ~@3 ab4@3 b4@3 ~@4 d4@3 g4@3 ~@9]/8",
})).s("gm_trumpet").gain(0.72)

// other · french horn · "Horn in F"
const french_horn = note(`<
  A@8 ~ B@8 C@3 D@8 ~@4 E@4 F G@5 H@4 I@4 J K@4 L@5 ~@5 M@2 N ~ O@2 P Q ~ R@3 S T U@2 V@2 W@2 X@2 Y@2 Z@6 AA AB AC AB AD
  AE AF@3 AG@2 AH AI ~ AJ@2 AK AL@4 AM@2 AN@8 AO@3 ~@3 AP AQ@7 ~@3 AR@6 ~@5 AS ~@5 AT AU AV@2 ~@15 AW AX AY AX AZ BA BB
  BC BB BD BE BF BG@2 BH@2 BI BJ ~@3 BK BL BM BN BO BP@3 BQ@2 BR@4 BS@2 BT@2 ~ BU@2 ~ BV BW@2 BX@2 BY@2 BZ CA@2 CB CC@3
  CD CE CF CG CH@8 ~
>`.pickRestart({
  A: "[~@2 d4@59 ~ c4@7 d4@8 eb4@31 f4@15 d4@62 ~@7]/8",
  B: "[~@4 c4@8 d4@7 eb4@15 ~ g4@23 f4@7 d4@46 c4@8 d4@8 eb4@15 bb4@23 g4@8 a4@19]/8",
  C: "[~@4 f4@15 d4@8 db4@30 c4@8 db4@7]/3",
  D: "[~ eb4@30 db4@15 ~ e4@23 eb4@7 gb4@15 ~ db4@34 eb4@6 d4@19 a4@6 g4@6 c5@6 ~ a4@19 ~@2]/8",
  E: "[~@2 d4@6 eb4@6 f4@6 ~ g4@12 d4@13 eb4@6 d4@6 c4@19 d4@6 eb4@6 ~ f4@6]/4", F: "g4 d4",
  G: "[~ eb4@6 d4@6 ~ c4@18 d4@6 ~ eb4@6 f4@6 g4@13 d4@12 eb4@6 ~ d4@6 c4@19 d4@6 eb4@6]/5",
  H: "[f4@6 g4@13 d4@13 eb4@6 d4@6 c4@19 d4@6 eb4@7 f4@7 g4@13]/4", I: "[~ e4@29 d4@8 e4@30 f4@23 g4@5]/4", J: "~ e4@7",
  K: "[~@10 d4@7 e4@46 c4@31 d4@2]/4", L: "[~@13 eb4@107]/5", M: "[~@15 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3]/2",
  N: "b3 ~ c4@2 ~@20", O: "[~@3 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4@4 c4]/2", P: "d4 ~ eb4@2 ~@20",
  Q: "~@5 f3 g3 ~ ab3@2 ~@14",
  R: "[~@3 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4@4 d4 eb4 ~ f4@2 ~@8]/3",
  S: "~@8 d4 eb4 ~ f4@2 ~ f4 g4 ~ ab4@2 ~@5", T: "~@11 f4@2 ~ gb4@3 ~@3 f4 ~@3",
  U: "[~@2 eb4@12 d4@3 eb4 ~@5 f4@2 ~@4 eb4@3 gb4@2 ~@10 f4 ~@3]/2",
  V: "[~@2 eb4@12 d4@3 eb4 ~@5 f4@2 ~@4 eb4@3 gb4@2 ~@4 ab3@3 bb3@3 ~@4]/2",
  W: "[~@2 c4 ~@5 d4 ~@5 eb4@3 d3@3 ~@3 a3@3 ~@18 d3@3 ~]/2", X: "[~@2 a3@3 ~@12 d3@3 ~@3 a3@3 ~@18 d3@3 ~]/2",
  Y: "[~@2 a3@3 ~@12 gb3@3 ~@3 a3@3 ~@3 ab3 a3 ~ ab3 a3 ~ b3@6 c4 ~@2 gb3@3 ~]/2",
  Z: "[~@2 a3@3 ab3 a3 ~ b3@3 c4@3 d4@3 eb4@3 ~@3 gb4@3 d4 eb4 ~ f4@3 gb4@3 ~@3 f4 ~@5 eb4@12 d4@3 eb4 ~@5 f4@2 ~@4 eb4@3 gb4@2 ~@10 f4 ~@5 eb4@12 d4@3 eb4 ~@5 f4@2 ~@4 eb4@3 gb4@2 ~@4 a3@3 bb3@3 ~@6 c4 ~@3]/6",
  AA: "~@2 d4 ~@5 eb4@3 d4@3 ~@3 a3@3 ~@3 ab3", AB: "a3 ~ ab3 a3 ~ b3@6 c4 ~@2 d3@3 ~@3 a3@3 ab3",
  AC: "a3 ~ b3@3 c4@3 d4@3 d3@3 ~@3 a3@3 ~@3 ab3", AD: "a3 ~ b3@3 c4@3 d4@3 eb4@3 ~@3 gb4@3 ~@3 f4",
  AE: "gb4 ~ f4 gb4 ~ ab4@6 a4 ~@2 eb4@3 ~@3 eb4@2 ~@2",
  AF: "[~@2 a4@3 ~@3 a4@3 ~@3 a4@3 eb4@2 ~@4 f4@3 gb4@3 ~@3 f4 ~@5 eb4@12 d4@3 eb4 ~@5 f4@2 ~@4 eb4@3 gb4@2 ~@2]/3",
  AG: "[~@8 f4 ~@5 eb4@12 d4@3 eb4 ~@5 f4@2 ~@4 eb4@3 gb4@2 ~@2]/2", AH: "~@2 ab3@3 bb3@3 ~@6 c4 ~@5 d4 ~@3",
  AI: "~@2 bb3@3 ~@19", AJ: "[~@11 g3@3 ~@9 g3@3 ~@6 g3@3 ~@6 g3@3 ~@4]/2", AK: "~@2 g3@3 ~@6 g3@3 ~@6 g3@3 ~",
  AL: "[~@5 g3@3 ~@6 g3@3 ~@6 g3@3 ~@6 g3@3 ~@6 g3@3 ~@3 db4@3 db4@3 db4@27 ~@3 b3 db4 ~ d4@3 ~@7]/4",
  AM: "[~@3 e4 ~ db4@27 ~@3 b3 db4 ~ d4@3 ~@6 b3]/2",
  AN: "[db4 ~ d4@3 f4@22 e4 ~ db4@27 ~@3 a3@9 b3@9 c4@3 ~@9 bb1@24 a1@3 bb1@3 c2@2 ~@16 bb1@24 a1@3 bb1@3 c2@2 ~@23]/8",
  AO: "[~@5 eb4@42 f4@18 ~@7]/3", AP: "gb3@5 ab3@3", AQ: "[a3@51 ~@5]/7",
  AR: "[~ f3 ~ g3@78 ~@3 f3@3 g3@3 ab3@42 bb3@9 ~@3]/6", AS: "~@4 bb3@3 ~", AT: "~ bb3 ~ ab3@4 g3",
  AU: "ab3 ~ bb3 ~ ab3 b3 ~@2",
  AV: "[~@3 bb3@3 ~@3 ab3@3 c4 d4 ~ c4 d4 ~ eb4@9 c4 d4 ~ c4 d4 ~ eb4@3 c4 d4 ~ c4 d4 ~ eb4@3 ~@3]/2",
  AW: "~@21 f4 ~@2", AX: "~@3 eb4@12 d4@3 eb4 ~@5", AY: "f4@2 ~@4 eb4@3 gb4@2 ~@10 f4 ~@2",
  AZ: "f4@2 ~@4 eb4@3 gb4@2 ~@4 ab3@3 bb3@3 ~@3", BA: "~@3 c4 ~@5 d4 ~@5 eb4@3 d3@3 ~@3",
  BB: "a3@3 ~@3 ab3 a3 ~ ab3 a3 ~ b3@6 c4 ~@2 d3@3", BC: "~@3 a3@3 ab3 a3 ~ b3@3 c4@3 d4@3 d3@3 ~@3",
  BD: "~@3 a3@3 ab3 a3 ~ b3@3 c4@3 d4@3 eb4@3 ~@3", BE: "gb4@3 ~@3 f4 gb4 ~ f4 gb4 ~ ab4@6 a4 ~@2 eb4@3",
  BF: "~@3 eb4@2 ~@4 a4@3 ~@3 a4@3 ~@6", BG: "[~@15 f4 ~@5 eb4@12 d4@3 eb4 ~@5 f4@2 ~@4]/2",
  BH: "[eb4@3 gb4@2 ~@10 f4 ~@5 eb4@12 d4@3 eb4 ~@5 f4@2 ~@4]/2", BI: "eb4@3 gb4@2 ~@4 ab3@3 bb3@3 ~@6 c4 ~@2",
  BJ: "~@3 d4 ~@5 bb3@3 ~@12", BK: "~@17 g3@3 ~@4", BL: "~@6 g3@3 ~@7 g3@3 ~@5", BM: "~ g3@3 ~@7 g3@3 ~@7 g3@3",
  BN: "~@7 g3@3 ~@7 g3@3 ~@4", BO: "~@3 g3@3 ~@7 g3@3 ~@6 g3@2",
  BP: "[~@8 g3@3 ~@4 db4@3 db4@3 db4@30 ~@3 b3@2 db4@2 d4@3 ~@11]/3",
  BQ: "[e4@2 db4@30 ~@4 db4@2 d4@3 ~@7, ~@35 b3@2 ~@11]/2",
  BR: "[b3@2 ~ d4@3 ~ f4@24 e4@2 db4@30 ~@3 a3@10 b3@9 c4@3 ~@8, ~ db4 ~@46]/4",
// … 78 more lines