Strudelify

6 Horn Quartets Op.35

Nicolay Tcherepnin

KeyB♭ majorTempo55 bpm
0:00/0:00
// 6 Horn Quartets Op.35 — Nicolay Tcherepnin
// 55 bpm, 4/4, key A# 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 (1/4 at bar 1, 4/4 at bar 1, 12/8 at bar 30, 1/8 at bar 56, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/6207433; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 169 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(55/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
const french_horn = note(`<
  A@5 B C@3 D@3 E@3 ~@7 F@7 G@3 ~@3 H@6 I@2 J K L M@2 N O ~ P@2 ~@2 Q R@2 S T@2 U V W@2 ~ X@2 ~ Y@4 Z S AA@2 AB V AC AD
  AE AF AG ~ AH AI@2 AJ AK AL@3 AM AN@2 AO@3 AP AQ@3 AR ~@65
>`.pickRestart({
  A: "[~@10 ab4@7 ab4@26 ab4@4 ab4@7 gb4@15 gb4@7 gb4@7 f4@7 ~ ab4@11 bb4@3 f4@15 gb4@7 g4@7 ~ ab4@25]/5",
  B: "ab4@4 ab4@7 gb4@15 gb4@6", C: "[~ gb4@7 ~ f4@7 ab4@11 gb4@4 f4@22 f4@7 f4@7 eb4@7 ~ db4@11 c4@3 c4@7]/3",
  D: "[~ db4@14 f4@7 ~ f4@7 eb4@7 db4@11 c4@4 db4@22 f4@7 f4@7 ~ eb4@7]/3", E: "[ab4@44 eb4@15 f4@11 eb4@3 eb4@22 ~]/3",
  F: "[~@10 f4@7 f4@7 ~ eb4@14 f4@7 ~ f4@7 eb4@15 f4@7 f4@7 eb4@7 ~ gb4@11 f4@3 f4@22 f4@37 eb4@15 eb4@16 ~@29]/7",
  G: "[~@21 g4@7 e4@13 e4@3 g4@2 b4@3 a4@2 g4@8 e4@13 e4@2 d4@3 c4@3 ~@16]/3",
  H: "[~@10 g4@3 c5@13 g4@2 c5@13 b4@2 a4@8 g4@51 g4@3 c5@13 g4@2 c5@13 b4@3 a4@3 g4@4 f4@4 e4@17 e4@2 d4@3 c4@2 d4@3 ~@18]/6",
  I: "[~@5 g4@8 e4@12 e4@3 g4@3 b4@2 a4@3 g4@7 e4@13 e4@3 d4@2 c4@3]/2", J: "~@15 g4", K: "~ c5@13 g4@2 c5@13 b4@3",
  L: "a4@7 g4@20 ~ e4@2 d4@2", M: "[~ c4@3 d4@2 e4@20 ~ g4@2 c5@13 g4@2 c5@13 b4@3 a4@4]/2",
  N: "g4@4 f4@3 e4@17 e4@3 d4@2 c4@3", O: "d4@2 c4@23 ~@7", P: "[~@20 e4@3 g4@23 ~@18]/2",
  Q: "~@9 bb4!2 ~@5 bb4!2 ~@2 bb4!2 ~ bb4!3 ~ bb4!2 ~@2 bb4",
  R: "[bb4 ~@5 bb3!2 ~@5 bb4!3 ~@5 bb3!2 ~@6 bb4@28 bb4!3 ~@4]/2", S: "~ bb4!2 ~@5 bb4!2 ~@5 bb4!3 ~@5 bb4!2 ~@5 bb4!2",
  T: "[~@5 bb4!3 ~@5 bb4!2 ~@5 g4 f4@6 g4!2 f4@6 g4 f4@2 [f4,a4] ~ c5 f4 a4 c5 f4 ~ a4 c5 ~ g4!2 f4@6 g4 f4@6, ~@21 g4 ~@42]/2", // F
  U: "g4 f4@2 f4 a4 c5 f4 a4 ~ c5 f4 a4 c5 ~@2 bb4 bb4@6 bb4!2 ~@2 bb3 ~@2 bb4!3, ~ g4 ~@30",
  V: "~ bb3!2 ~@2 bb4!2 ~ bb3!3 ~ bb4!2 ~@2 bb3!2 ~ bb4!3 ~ bb3!2 ~@2 bb4!2 ~ bb3!2",
  W: "[bb3 ~ bb4!2 ~@2 eb4!2 ~@2 eb4 eb4@2 eb4@2 eb4@2 ~ eb4@2 d4@3 d4@4 d4@26 ~@11]/2",
  X: "[~@24 g4@2 ~ b4@2 a4@6 b4 ~ b4@10 ~@17]/2",
  Y: "[~@16 g4@2 ~ b4@2 a4@6 g4 ~ g4@10 ~@2 gb4!2 gb4@27 gb4!2 ~ gb4@27 gb4!2 gb4@12 ~@3 ab4@11]/4",
  Z: "~ bb4!2 bb4@20 ~@9",
  AA: "[~@5 bb4!3 ~@5 bb4!2 ~@5 bb4!2 ~@5 g4!2 f4@6 g4 f4@6 g4 f4@2 f4 a4 c5 f4 a4 ~ c5 f4 a4 c5 ~@2 g4 f4@6, ~@43 g4 ~@20]/2",
  AB: "g4 f4@6 g4!2 f4!2 a4 c5 f4 ~ a4 c5 f4 a4 ~ c5 ~ bb4 bb4@6 bb4!3, ~ g4 ~@30",
  AC: "bb3 ~ bb4!2 ~@2 bb3!2 ~ bb4!3 g4!2 eb4!2 ~ db4 db4@6 db4 db4@6 db4",
  AD: "db4 db4@2 c4@2 bb3@2 ~ a3@2 ab3 ~ g3 ~ db4 db4@6 db4!2 db4@6 db4 db4@2",
  AE: "c4@2 ~ bb3@2 a3@2 ~ ab3 g3 ~ db4!2 f4@6 g4 f4@6 g4 [f4,g4] f4!4", // Fsus2
  AF: "f4!3 f4@3 bb4@4 eb4@6 eb4 eb4@6 eb4!2 eb4@7", AG: "~ eb3!2 ~ eb3!4 ~@3 f3 ~@3 eb3!2 ~@15",
  AH: "~@7 c4@4 f4@2 e4@2 d4@2 ~ c4@4 d4@2 a3@4 c4@4, ~@17 a3@2 ~@13",
  AI: "[d4@2 a3@2 c4@2 d4@2 ~ d4@4 g4@4 a4@2 d4@2 g4@2 a4@2 d4@2 g4@3 a4@4 g4@2 e4@2 d4@4 c4@6 f4@2 e4@2 ~ a3@2 c4@4 d4@2 a3@3, ~@4 a3 ~@21 d4 ~@5]/2",
  AJ: "~ c4@4 d4@2 a3@2 ~ d4@2 a3@2 d4@4 g4@4 a4@2 d4@2 g4@2 a4@2 d4@2, ~@9 c4@2 ~@21",
  AK: "g4@3 a4@4 g4@2 a4@2 f4@6 f4@4 ~ d5@2 c5@2 a4@2 g4@4, ~@21 c5@2 ~@9",
  AL: "[f4@2 ~@17 d4@4 a4@2 b4@2 a4@2 gb4@2 e4@3 d4@2 ~@27 e4@2 d4@4 c4@2 d4@4 g4@2 ~ g4@2 e4@2 d4@4 c4@2 d4@4 g4@4, ~@77 a4@2 ~@17]/3",
  AM: "a4@2 d4@2 ~ a4@2 d4@2 g4@4 a4@4 g4@2 ~ a4@2 c5@6 c4@4, ~@2 g4 ~@13",
  AN: "[~@2 f4@2 e4@2 d4@2 a3@2 c4@4 ~ a3@4 c4@4 d4@2 a3@2 c4@2 d4@2 ~ d4@4 g4@4 a4@2 d4@2 g4@2 a4@2 d4@2 g4@3 a4@4 g4@2 e4@2 d4@3, ~@14 d4@2 ~@15 a3@2 ~@31]/2",
  AO: "[~ c4@5 f4@2 e4@2 d4@2 a3@2 c4@4 d4@2 a3@3 c4@4 d4@2 a3@2 c4@2 d4@2 a3@2 d4@4 g4@3 a4@2 d4@2 g4@2 a4@2 d4@2 g4@4 a4@3 g4@2 a4@2 f4@6 f4@4 c5@2 ~ c5@2 a4@2 g4@4 f4@6 ~@4, ~@77 d5@2 ~@17]/3",
  AP: "~@9 d4@4 g4@2 a4@2 g4@2 ~ d4@4 c4@6 ~@2, ~@19 e4@2 ~@11", AQ: "[~@11 c4@17 d4@17 c4@17 d4@17 d4@17]/3",
  AR: "~ a4@15 a4@2 f4 ~@13",
})).s("gm_french_horn").gain(0.25).pan(0.2)

// other · french horn · soft notes
const french_horn_soft = note(`<
  ~@15 A B C@3 D@3 ~@5 E@2 ~ F ~@8 G@2 ~ H ~@5 I J ~@2 K@2 L ~@8 M@3 N@3 ~@2 O ~@17 P Q ~@6 R@3 ~@2 S@2 T U ~@62
>`.pickRestart({
  A: "~@7 ab4@25", B: "ab4@4 ab4@7 gb4@15 gb4@6",
  C: "[~ gb4@7 ~ f4@7 ab4@11 bb4@4 f4@14 gb4@7 ~ g4@7 ab4@26 ab4@3 ab4@7]/3",
  D: "[~ gb4@14 gb4@7 ~ gb4@7 f4@7 ab4@11 gb4@4 f4@22 ~@22]/3", E: "[~@3 db4@5 ~ db4@29 ~@26]/2", F: "~@15 d4@3 e4@14",
  G: "[~@14 c4@23 ~@27]/2", H: "d4@2 e4@15 ~@15", I: "~@25 g4@7", J: "~@14 e4@2 g4@3 b4@2 a4@3 g4@8",
  K: "[~@17 e3@3 g3@31 ~@13]/2", L: "~ bb4!3 ~@28", M: "[~@25 d4!2 d4@27 d4!2 ~ d4@27 d4!2 d4@2 ~@8]/3",
  N: "[~@17 d4!2 d4@27 d4!2 ~ d4@27 d4!2 d4@2 ~@16]/3", O: "~@18 ab4!2 ~@12",
  P: "~@2 f4@4 bb4@4 f4@2 ~ f4@2 bb4@2 f4@2 ~@13, ~@6 bb4 ~@9",
  Q: "~@4 d4@4 g4@4 d4@2 g4@2 d4@2 g4@2 d4@2 d4@3 g4@2 a4@2 g4@2 ~", R: "[~@28 f4@13 ~@21 c4@13 ~@21]/3",
  S: "[~@21 a4@34 ~ a4@3 a4 ~ a4 ~ a4]/2", T: "a4!2 ~ a4@5 ~ a4@3 a4 ~ a4 ~ a4!3 ~ a4@5 ~ a3@3 a3 ~ a3",
  U: "~ a3!3 ~ a3@5 ~ a3@3 ~ a3!2 ~ a3!3 ~ a3@5 ~@5",
})).s("gm_french_horn").gain(0.15).pan(0.2)

// other · french horn
const french_horn_2 = note("<~@109 A B C D E F ~@8 G H I@2 E J K L M C D E J K A B C N@3 ~@26>".pickRestart({
  A: "db4@2 eb4 f4 ab4@8 gb4@2 bb4@2", B: "f4@2 eb4 db4 c4@2 bb3@2 ab3@8", C: "eb4@6 db4 eb4 f4@4 db4@2 bb3@2",
  D: "bb3", E: "gb4@2 f4 eb4 f4@2 bb3@2", F: "f4@4 eb4@2 f4 eb4 bb3@6 ~@2", G: "db4@2 eb4 db4 c4@2 db4 eb4",
  H: "f4@4 g4@4 ab4@6 gb4 f4", I: "[eb4@6 db4 eb4 f4@4 db4@2 bb3@18]/2", J: "f4@4 eb4@2 f4 eb4 bb3@6 c4@2",
  K: "db4@2 c4 bb3 ab3@4", L: "db4@2 eb4 db4 c4@2 db4@2", M: "ab3@2 ab3 g3 ab3@4", N: "[bb3@23 ~]/3",
})).s("gm_french_horn").gain(0.25).pan(0.2)

// other · french horn · soft notes
const french_horn_soft_2 = note("<~@106 A B@2 ~@5 C D ~@4 E@2 F ~@46>".pickRestart({
  A: "~@7 a3", B: "[a3@4 a3@4 a3@41 ~@15]/2", C: "~@7 c4", D: "db4@2 c4 bb3 ab3@4", E: "bb4/2", F: "ab4@3 eb4@5",
})).s("gm_french_horn").gain(0.15).pan(0.2)

// other · french horn
const french_horn_3 = note("<~@145 A B@5 C@2 D E F G H ~@3 I@2 J@4 ~@2>".pickRestart({
  A: "~@20 bb3@6 ~ d4@5",
  B: "[~ f4@6 f4@6 f4@6 ~ f4@6 g4@12 f4@13 f4@6 bb4@6 a4@6 ~ bb4@6 d5@6 c5@6 ~ bb4@6 c5@12 f4@13 f4@6 bb4@6 f4@6 ~ g4@6 d4@6 ~@9]/5",
  C: "[~@29 bb3@6 d4@6 f4@6 ~ f4@6 f4@6 f4@4]/2", D: "~@2 g4@13 f4@12 f4@5", E: "~@2 bb4@6 a4@6 bb4@6 d5@6 ~ c5@5",
  F: "~ bb4@6 c5@13 f4@12", G: "f4@6 ~ bb4@6 f4@6 g4@6 d4@6 ~", H: "eb4@3 ~@29",
  I: "[~@19 c4@6 d4@6 eb4@13 d4@15 f4@5]/2",
  J: "[~@2 g4@6 a4@6 bb4@22 d5@6 c5@6 ~ c5@6 bb4@25 f4@6 bb4@6 ~ f4@6 g4@7 d4@6 eb4@4 d4@4 ~@8]/4",
})).s("gm_french_horn").gain(0.4).pan(0.2)

// other · french horn · soft notes
const french_horn_soft_3 = note("<~@142 A B@3 ~@4 C@2 ~@5 D@3 E@2 ~@4 F G@2>".pickRestart({
  A: "~@7 c4", B: "[db4@8 c4@4 ~ bb3@4 ab3@17 bb3@35 ~@27]/3", C: "[~@23 eb4@3 d4@3 c4@6 ~ bb3@25 ~@3]/2",
  D: "[~@3 d4@3 c4@6 bb3@25 ~@6 f4@6 ~ f4@6 eb4@6 d4@6 c4@6 ~ bb3@15 f4@6]/3",
  E: "[~ f4@6 eb4@6 d4@6 c4@6 ~ bb3@19 ~@19]/2", F: "~@3 c4", G: "[bb3@35 ~@29]/2",
})).s("gm_french_horn").gain(0.2).pan(0.2)

// other · french horn · "Horn in F"
const french_horn_4 = note(`<
  A@5 B C@3 D@3 E@3 F B G@2 ~@3 H@7 I@3 ~@3 J@3 K@4 ~ L M N@3 O@2 ~ P@2 ~@3 Q R S T@2 U@2 V W X Y@7 Z S AA@2 AB@2 AC AD
  AE AF AG ~@2 AH@2 AI AJ AK@3 AL ~ AM@2 AN@2 AO ~@2 AP AQ ~@16 AR@2 AS AT AU AV AW ~@3 AX AY AZ@2 BA BB BC ~@8 BD BE
  BF@6 BG BH BI BJ BK@2 BL BM BN@2 BO@3 BP BQ@2
>`.pickRestart({
  A: "[~@10 f4@7 f4@26 f4@4 f4@7 eb4@15 db4@7 c4@15 f4@11 gb4@3 f4@7 ~ db4@7 eb4@7 e4@7 ~ f4@25]/5",
  B: "f4@4 f4@7 eb4@15 db4@6", C: "[~ c4@15 f4@11 eb4@4 db4@22 db4@7 db4@7 c4@7 ~ a3@11 a3@3 a3@7]/3",
  D: "[~ bb3@14 db4@7 ~ db4@7 c4@7 a3@11 a3@4 bb3@22 db4@7 db4@15]/3",
  E: "[c4@11 f4@4 eb4@7 db4@15 c4@7 bb3@7 ab3@7 ~ g3@11 ab3@3 ab3@22 ~]/3", F: "~@7 f4@25",
  G: "[~ c4@15 f4@11 gb4@4 f4@7 db4@7 eb4@7 ~ e4@7 ~@4]/2",
  H: "[~@10 db4@7 db4@22 db4@7 ~ db4@22 db4@7 db4@15 c4@14 db4@22 f3@7 ~ gb3@14 g3@15 bb3@15 ab3@16 ~@29]/7",
  I: "[~@21 e4@7 c4@13 c4@3 e4@2 g4@3 f4@2 e4@8 c4@13 c4@2 g3@3 e3@2 g3@3 ~@14]/3",
  J: "[~@10 e4@3 e4@13 e4@2 e4@13 g4@2 f4@8 e4@20 ~ e4@2 d4@3 c4@2 d4@3 ~@14]/3",
  K: "[~@6 e4@3 e4@13 e4@2 e4@13 g4@3 f4@3 e4@4 c4@4 g3@50 ~@27]/4", L: "~@15 c4", M: "~ e4@13 c4@2 e4@13 e4@3",
  N: "[c4@7 c4@20 ~ g3@31 c4@2 e4@13 c4@2 e4@13 e4@3 c4@4]/3", O: "[c4@4 c4@3 c4@17 g3@33 ~@7]/2",
  P: "[~@20 c4@3 e4@31 ~@10]/2", Q: "bb4@28 bb4!2 ~@2", R: "~@3 bb3!3 ~@5 bb4!2 ~@5 bb3!2 ~@9 bb3!2 ~",
  S: "~@4 bb3!3 ~@5 bb3!2 ~@5 bb3!2 ~@5 bb3!3 ~@3",
  T: "[~@2 bb3!2 ~@5 bb3!2 ~@5 bb3!3 ~ eb4 eb4@6 eb4!2 eb4@6 eb4 eb4@2 [eb4,f4] ~ a4 eb4 f4 a4 eb4 ~ f4 a4 ~ eb4!2 eb4@6 eb4 eb4@6]/2", // Ebsus2
  U: "[eb4 eb4@2 eb4 f4 a4 eb4 f4 ~ a4 eb4 f4 a4 ~@2 bb4!2 bb3 eb4 ~ f4 g4 eb4 ab4@2 ~ f4 g4@2 eb4 ~ f4@2 c4@2 d4 ~ eb4 f4 g4 eb4 ~ eb4@2 ~@2 bb3 ~ eb4 f4 g4 eb4 ~ ab4@2 f4 g4@2 ~ eb4 f4@2 c4@2]/2",
  V: "~ f4 g4 eb4@4 ~@25", W: "~@25 b3!2 b3@2 ~ gb4@2", X: "b3@2 ~ b3@19 b3!2 ~ b3@2 gb4@2 ~ b3@2",
  Y: "[b3@20 ~@4 d4@2 ~ g4@2 gb4@6 d4 ~ d4@10 ~@2 b3!2 b3@2 ~ gb4@2 b3@2 ~ b3@19 b3!2 ~ b3@2 gb4@2 ~ b3@2 b3@20 b3!2 b3@2 d4@2 ~ g4@2 gb4@6 d4 ~ d4@10 ~@2 eb4!2 eb4@2 ~ bb4@2 eb4@2 ~ eb4@19 eb4!2 ~ eb4@2 bb4@2 ~ eb4@2 eb4@20 eb4!2 eb4@12 ~@3 eb4@11]/7",
  Z: "~ f4!2 f4@20 ~@9",
  AA: "[~@2 bb3!2 ~@5 bb3!2 ~@5 bb3!3 ~@5 bb3!2 ~ eb4!2 eb4@6 eb4 eb4@6 eb4 eb4@2 eb4 f4 a4 eb4 f4 ~ a4 eb4 f4 a4 ~@2 eb4 eb4@6]/2",
  AB: "[eb4 eb4@6 eb4!4 f4 a4 eb4 ~ f4 a4 eb4 f4 ~ a4 ~ bb4!2 bb3 ~ eb4 f4 g4 eb4 ~ ab4@2 f4 g4@2 ~ eb4 f4@2 c4@2 ~ d4 eb4 f4 g4 ~ eb4 eb4@2 ~@3 bb3 eb4 f4 g4 ~ eb4 ab4@2 f4 ~]/2",
  AC: "g4@2 eb4 f4@2 ~ c4@2 f4 g4 ~ eb4@2 ~@4 bb4!2 bb3 eb4 ~ f4 g4 eb4 bb4 bb3 ~ eb4 f4 g4 eb4",
  AD: "~ bb4@2 ab4@2 g4@2 ~ f4@2 g4 ~ eb4 ~ bb4!2 bb3 ~ eb4 f4 g4 eb4 ~ bb4 bb3 eb4 f4 g4 ~ eb4 bb4@2",
  AE: "ab4@2 ~ g4@2 f4@2 ~ g4 eb4 ~ bb4!2 eb4@6 eb4 eb4@6 eb4!6",
  AF: "eb4!3 eb4@3 d4@4 eb4 ~ c4 ~ bb3 ~@5 c4 bb3 ~@4 c4 ~ bb3 ~@2 ab3", AG: "g3 ~@3 f3 ~@2 g3 ~@3 bb3 ~@20",
  AH: "[~@9 bb3@3 ~ d4@3 ~ d4 ~ d4 ~ d4!3 ~ d4 ~ d4@3 d4@4 d4@2 bb3@2 bb3@6 ~@20]/2",
  AI: "~@14 bb3@3 ~ d4@3 ~ d4 ~ d4 ~ d4!3 ~ d4 ~", AJ: "d4@3 d4@4 d4@2 e4@2 f4@6 f4@5 e4@6 eb4@4",
  AK: "[~@13 d4@2 ~@4 d4@6 db4@6 c4@5 ~@12 b3@2 ~@4 bb3@4 ~@5 bb3@2 bb3@6 bb3@4 d4@5 bb3@2 bb3@6 d4@4 d4@4]/3",
  AL: "d4@2 d4@2 d4 d4@2 d4@2 d4@4 d4@4 d4@2 ~ d4@2 e4@7 ~@3",
  AM: "[bb3@3 ~ d4@3 ~ d4 ~ d4 ~ d4!3 ~ d4 ~ d4@3 d4@4 d4@2 bb3@2 bb3@6 ~@29]/2",
  AN: "[~@5 bb3@3 ~ d4@3 d4 ~ d4 ~ d4!3 ~ d4 ~ d4@4 d4@3 d4@2 e4@2 f4@6 eb4@21 ~@4]/2", AO: "~@9 bb3@21 ~@2",
  AP: "~@15 bb3@4 bb3@3 ~ bb3 ~ bb3 ~ bb3!3 ~ bb3", AQ: "~ e4@3 d4@3 ~ d4 ~ d4 ~ d4!3 ~ e4 ~ f4 ~@13",
  AR: "[bb3@3 c4 db4@6 c4@2 bb3@2 ab3 gb3]/2", AS: "f3@3 g3 ab3@4", AT: "db4@2 c4 bb3 ab3@2 bb3 c4",
  AU: "db4@2 c4 bb3 eb4@2 db4@2 c4@8", AV: "bb3", AW: "gb3", AX: "db4@2 eb4 f4 ab4@8 gb4@2 bb4@2",
  AY: "f4@2 eb4 db4 c4@2 bb3@2 ab3@8", AZ: "bb3/2", BA: "eb4@2 c4!2 db4@2 bb3@2", BB: "bb3@7 ab3",
  BC: "ab3@2 ab3 g3 ab3@4", BD: "~@20 f3@6 ~ bb3@5", BE: "~ c4@6 eb4@6 d4@6 ~ bb3@6 bb3@6",
  BF: "[c4@6 d4@13 d4@6 eb4@6 f4@6 ~ f4@6 f4@6 f4@6 ~ d4@6 c4@12 c4@13 d4@6 d4@6 f4@6 ~ bb3@6 bb3@6 bb3@6 a3@6 ~ bb3@25 f3@6 bb3@6 c4@6 ~ c4@6 d4@6 bb3@4]/6",
  BG: "~@2 bb3@13 a3@12 c4@5", BH: "~@2 f4@6 f4@6 f4@6 f4@6 ~ f4@5", BI: "~ f4@6 e4@13 f4@12",
  BJ: "f4@6 ~ eb4@6 d4@9 c4@3 bb3@6 ~", BK: "[bb3@6 a3@6 bb3@25 ~@6 bb3@6 ~ c4@3 a3@3 bb3@3 c4@5]/2",
  BL: "~ bb3@6 ~ a3@12 g3@6 c4@6", BM: "~ bb3@6 g3@3 a3@3 bb3@9 ~@10",
  BN: "[~@19 a3@6 a3@6 bb3@6 a3@6 ~ bb3@15 d4@5]/2",
  BO: "[~@2 eb4@6 eb4@6 d4@22 f4@6 g4@6 ~ f4@3 eb4@3 d4@25 f4@9 eb4@6 ~]/3", BP: "d4@6 c4@7 bb3@15 a3@4",
  BQ: "[bb3@35 ~@29]/2",
})).s("gm_french_horn").gain(0.25).pan(0.8)

// other · french horn · "Horn in F" · soft notes
const french_horn_soft_4 = note(`<
  ~@18 A@2 B@3 ~@5 C@2 ~ D ~@5 E@2 ~@2 F@2 G ~@5 H@3 ~ I@2 ~@11 J ~@5 K ~@11 L M N O P ~ Q R ~ S@2 ~ T U V W X Y@2 Z@2
  AA AB AC@2 ~@7 AD AE@3 ~@24 AF@2 ~@14 AG@2 ~@7
>`.pickRestart({
  A: "[~@28 f4@26 f4@3 f4@7]/2", B: "[~ eb4@14 db4@7 ~ c4@14 f4@11 eb4@4 db4@22 ~@22]/3",
  C: "[~@3 ab3@5 ~ ab3@29 ~@26]/2", D: "~@9 c4@7", E: "[~@9 e4@10 ~@13]/2", F: "[~@5 c4@51 c4@3 b3@2 a3@3]/2",
  G: "b3@2 c4@15 ~@15", H: "[~@25 e4@20 ~ c4@2 e4@3 g4@2 f4@3 e4@28 ~@12]/3", I: "[~@17 c3@3 e3@31 ~@13]/2",
  J: "~@20 b3!2 b3@2 ~@8", K: "~@18 eb4!2 ~@12", L: "~@5 a3@3 a3@3 ~ a3 ~ a3 ~ a3!3 ~ a3 ~ a3@3 ~ a3@3 a3 ~ a3",
  M: "~ a3!3 ~ a3 ~ a3@3 ~ a3@3 ~ a3 ~ a3!4 ~ a3 ~ a3@3 ~ a3@3 ~", N: "a3 ~ a3 ~ a3!3 ~ a3 ~@23",
  O: "~@12 a3@3 ~ a3@3 ~ a3!2 ~ a3!3 ~ a3 ~ a3@3", P: "~ a3@3 ~ a3 ~ a3 ~ a3!2 ~ a3 ~@19",
  Q: "~@2 eb4@4 d4@4 d4@2 db4@2 ~ db4@2 d4@2 ~@13", R: "~@4 c4@4 b3@4 b3@2 bb3@2 ~@2 bb3@2 b3@2 ~@3 d4@6 ~",
  S: "[~@28 bb3@2 a3@4 a3@3 ~ a3 ~ a3 ~ a3!3 ~ a3 a3@3 ~ a3@3 ~ a3 ~ a3 ~ a3!3 ~ a3]/2",
  T: "~@3 a3@3 a3@3 ~ a3 ~ a3 ~ a3!3 ~ a3 ~ a3@3 a3@3 ~ a3 ~ a3 ~ a3", U: "a3!2 ~ a3 ~@28", V: "~@28 eb4@3 ~",
  W: "eb4!2 ~ d4!3 ~ d4 ~@22 bb3@2", X: "~@2 bb3 ~ bb3 a3!3 ~ a3 ~ bb3@4 bb3@3 ~ bb3 ~ bb3 ~ bb3!2 ~ bb3 ~ a3@4",
  Y: "[a3@3 ~ a3 ~ a3 ~ a3!4 ~ bb3@4 bb3@3 ~ bb3 ~ bb3 ~ bb3!4 ~ a3@4 a3@3 ~ a3 ~ a3 ~ a3!3 ~ a3 ~@17]/2",
  Z: "[~@21 f4@34 ~ f4@3 f4 ~ f4 ~ f4]/2", AA: "f4!2 ~ f4@5 ~ f4@3 f4 ~ f4 ~ f4!3 ~ f4@5 ~ f3@3 f3 ~ f3",
  AB: "~ f3!3 ~ f3@5 ~ f3@3 ~ f3!2 ~ f3!3 ~ f3@5 ~ f3@4", AC: "[f3@4 f3@4 f3@41 ~@15]/2", AD: "db4@3 eb4",
  AE: "[f4@3 g4 ab4@10 bb4@10]/3", AF: "[~@2 db3@35 ~@27]/2", AG: "[~@23 a3@3 bb3@19 ~@19]/2",
})).s("gm_french_horn").gain(0.15).pan(0.8)

// other · french horn · "Horn in F"
const french_horn_5 = note(`<
  ~@7 A@2 B ~@2 C@2 ~@7 D E@7 ~@12 F@3 G H I@2 J ~@7 K L M@3 N@2 O ~@2 P@2 ~ Q ~@2 R S T U@2 V@2 W@3 X ~@9 Y Z ~@4 AA AB
  ~@23 AC AD ~@2 AE AF AG AH AI AJ AK AE AL AM ~@8 AN AO@5 AP@2 AQ AR AS AT AU ~@3 AV@2 AW@4 ~@2
>`.pickRestart({
  A: "[~@28 eb2@15 f2@14 bb2@7]/2", B: "~ ab2@7 gb2@7 ~@17", C: "[gb3@22 f3@15 ~@27]/2", D: "~@20 db3@7 c3@5",
  E: "[~@3 bb2@7 ab2@7 gb2@22 ~@8 g2@22 ab2@7 bb2@15 ab2@14 db2@22 db2@7 ~ eb2@29 ab2@31 ~@29]/7",
  F: "[~@5 c2@54 g2@8 ~@27 c3@2]/3", G: "~ a2@13 c3@2 a2@13 e3@3", H: "f3@7 c3@23 ~@2",
  I: "[~@27 c3@2 a2@13 c3@2 a2@13 e3@3 f3@4]/2", J: "c3@4 f2@3 c2@19 ~@6",
  K: "~ bb3 eb4 ~ f4 g4 eb4 ab4@2 ~ f4 g4@2 eb4 ~ f4@2 c4@2 d4 ~ eb4 f4 g4 eb4 ~ eb4@2 ~@2 bb3 ~",
  L: "eb4 f4 g4 eb4 ~ ab4@2 f4 g4@2 ~ eb4 f4@2 c4@2 ~ f4 g4 eb4@4 ~@5 bb3 g3 bb3 eb4",
  M: "[~ g3 c4@2 d4 ~ eb4@2 g3 ab3@2 ~ ab3@3 ab3 ~ ab3 bb3 g3 g3@2 ~@3 bb3 g3 ~ bb3 eb4 g3 c4@2 ~ d4 eb4@2 g3 ~ ab3@2 ab3@2 ab3 ~ bb3 g3@4 ~@2 eb3 f3@6 eb3!2 f3@6 eb3 f3@2 [a3,c4] ~ eb4 a3 c4 eb4 a3 ~ c4 eb4 ~@16, ~@53 eb3 ~@42]/3", // Am
  N: "[~@5 eb4 a3 c4 ~ eb4 a3 c4 eb4 ~@2 eb4!2 eb3 g3 ~ ab3 bb3 g3 c4@2 ~ d4 eb4@2 g3 ~ ab3@2 ab3@4 ab3!2 bb3 g3 ~ g3@2 ~@2 eb3 ~ g3 ab3 bb3 g3 ~ c4@2 d4 eb4@2 ~ g3 ab3@2 ab3@2]/2",
  O: "~ ab3 bb3 g3@4 ~@25", P: "[~@27 g3@2 d3@6 ~@29]/2", Q: "~@19 g3@2 d3@6 g3 ~@4", R: "~@21 b3@11",
  S: "~ bb3!2 bb3@20 ~@9", T: "~@3 bb3 g3 ~ bb3 eb4 g3 c4@2 ~ d4 eb4@2 g3 ~ ab3@2 ab3@4 ab3!2 bb3 g3 ~ g3@2 ~@2",
  U: "[bb3 ~ g3 bb3 eb4 g3 ~ c4@2 d4 eb4@2 ~ g3 ab3@2 ab3@2 ~ ab3 bb3 g3@4 ~@2 eb3!2 f3@6 eb3 f3@6 eb3 f3@2 a3 c4 eb4 a3 c4 ~ eb4 a3 c4 eb4 ~@9, ~@43 eb3 ~@20]/2",
  V: "[~@11 c4 eb4 a3 ~ c4 eb4 a3 c4 ~ eb4 ~ eb4!2 eb3 ~ g3 ab3 bb3 g3 ~ c4@2 d4 eb4@2 ~ g3 ab3@2 ab3@4 ab3!2 bb3 ~ g3 g3@2 ~@3 eb3 g3 ab3 bb3 ~ g3 c4@2 d4 ~]/2",
  W: "[eb4@2 g3 ab3@2 ~ ab3@2 ab3 bb3 ~ g3@2 ~@7 eb3!2 eb3@6 eb3 eb3@16 ~@5 eb3 eb3@6 eb3 eb3@16 ~ eb3!2 c3@6 ~@7 eb3 [c3,eb3] c3!4]/3", // Cm
  X: "c3!3 c3@3 bb2@4 eb3 ~ ab2 ~ eb2 ~@5 ab2 eb2 ~@10", Y: "~@7 c2@9 g2@2 c3@6 c3@8",
  Z: "~@2 g3@2 c3@4 ~ c3@13 c2@8 ~@2", AA: "~@7 f2@17 ~@8", AB: "~@9 c2@17 ~@6", AC: "db4@2 eb4 f4 ab4@8 gb4@2 bb4@2",
  AD: "f4@2 eb4 db4 c4@2 bb3@2 ab3@8", AE: "eb3@2 ab3!2 db3@2 gb3@2", AF: "db3@2 c3@2 bb2@2 ab3 gb3",
  AG: "f3@2 eb3!2 ab2@4", AH: "db3@2 c3 bb2 ab2@2 bb2@2", AI: "db3@2 eb3 db3 c3@4", AJ: "eb3 db3", AK: "eb3",
  AL: "db3@2 c3@2 db3@3 ab2", AM: "db3 ~@3", AN: "~@20 bb2@6 ~ bb2@5",
  AO: "[~ a2@6 a2@6 bb2@6 ~ d3@6 eb3@12 bb2@13 bb3@3 a3@3 g3@6 f3@3 ~ eb3@3 d3@6 bb2@6 f3@6 ~ g3@3 f3@3 e3@12 f3@13 bb3@6 g3@6 d3@6 ~ eb3@6 bb2@6 ~@9]/5",
  AP: "[~@29 bb2@6 g2@6 f2@6 ~ a2@6 bb2@6 d3@4]/2", AQ: "~@2 g2@6 ~ bb2@6 d3@12 f3@3 eb3@2",
  AR: "~@2 d3@6 c3@6 bb2@6 bb2@6 ~ f3@5", AS: "~ d3@6 c3@13 f3@12", AT: "a3@6 ~ g3@6 f3@6 eb3@6 bb2@3 a2@3 ~",
  AU: "g2@3 ~@13", AV: "[~@19 f3@6 d3@6 c3@6 f2@6 ~ bb2@15 bb2@5]/2",
  AW: "[~@2 eb3@6 c3@6 bb2@22 bb2@6 eb3@6 ~ f3@6 g3@25 a3@6 g3@6 ~ f3@6 eb3@7 bb2@6 g2@4 f2@4 ~@8]/4",
})).s("gm_french_horn").gain(0.35).pan(0.7)

// other · french horn · "Horn in F" · soft notes
// … 34 more lines