Strudelify
KeyF majorTempo100 bpm
0:00/0:00
// Hungarian Schnapsodie — Leonhard Paul Lacsap13 from tkdchamp2021
// 100 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 (4/4 at bar 1, 2/4 at bar 49, 4/4 at bar 68, 2/4 at bar 132) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/4801746; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 145 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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 · trombone
const trombone = note(`<
  ~@3 A@2 B C D E F G H I J K L M N ~ O P Q R S T U@2 V ~@8 W X Y Z AA@2 AB AC ~@8 AD AE AF AG AH ~@5 AI AJ AK AL ~ AM
  ~@16 AN@2 AO@2 AP@2 AQ AR@5 AS AT AU ~@16 AV AW AX AY AZ BA BB BC ~@10 BD@2 BE@2 BF@3 BG BH BI BJ@2
>`.pickRestart({
  A: "[~@20 a3@4 f3@3 g3@2 a3@11 f4@8 db4@8 d4@8]/2", B: "e4 d4 bb3@6 ~@2 e4@2 f4@2 g4@2",
  C: "a4@2 ~@2 ab3@4 a3@4 bb4@4 ab4@4 a4@2 ~@2 e4@4 f4 e4@3", D: "d4@3 db4 d4 db4 d4 e4 f4@2 a3@2 f3 e3 f3 g3",
  E: "a3 d3 bb4 db4 e4 d4 d5 c5", F: "bb4@3 g4 d4 bb3 g3 d3 bb2 ~ e5@4 d5@2", G: "c5@3 gb4 g4 a4 bb4 c5",
  H: "a4@3 a5@5 a4@6 ~@2", I: "a2@3 e3@2 db3@3 a3@3 e3@2 db4@3 a3@2 e4@2 db4@2 a4@2 e4@2 f4 e4 eb4@2 e4@2",
  J: "g4@6 f4@2 f4@6 e4@2 d4@3 db4 d4@3 e4 f4@3 e4 f4@3 d4", K: "e4@2 ~@2 ab2@3 a2 ~@2 g3@2 bb3@2 a3 d4",
  L: "db4 f4 e4 g4 f4 a4 g4@2 g4@2 bb4@2 a4@2 g4@2", M: "g4@4 ~@2 g4@2 f4@2 e4 d4 g4 f4 e4 d4",
  N: "g4 f4 e4 d4 g4 f4 e4 d4 g4 f4 e4 d4 g4 f4 e4 d4 g4 f4 e4 d4 g4 f4 e4 d4 g4 f4 e4 d4 g4 f4 e4 d4",
  O: "g4 f4 e4 d4 g4 f4 e4 d4 g4 f4 e4 d4 g4 f4 e4 d4 g4@2 f4@2 e4@2 d4@2 d4@4 ~@4", P: "~ d5 eb5 e5", Q: "f5@8 f5!8",
  R: "f5!12 e5@4", S: "d5 bb4 g4 d4 bb4 g4 d4 bb3", T: "g4 d4 bb3 g3 d4 bb3 g3 d3 bb3 g3 d3 g3@2 d4@3",
  U: "[e4@4 f4@4 g4@4 a4@7 bb4@5 a4@5 a4@5 ~ g4@5 g4@5 f4@5 ~ f4@5 e4@8]/2", V: "d4 f4@3 db4 e4@3 d4@2 d4!2 d4@4",
  W: "a2@3 e3@3 ~ db3@3 a3@3 e3@3 ~ db4@3 a3@2 e4@2 ~ db4@2 a4@2 ~ e4@2",
  X: "f4 ~ e4 eb4@2 e4@2 ~ g4@7 f4@2 ~ f4@7 e4@2 ~ d4@4",
  Y: "db4 d4@4 e4 f4@4 e3 f3@5 a2 e3 a3 ~ db4 e4 a4 e4 ~ db4 a3 e3 bb2 ~ d3 f3",
  Z: "bb3 d4 ~ f4 bb4 a4 d4 ~ bb3 f3 d3 ab2 ~ eb3 ab3 db4 eb4 ~ ab4 eb4 db4 ab3 ~ eb3 a2 a3!2 ~ e3 db4!2 a3",
  AA: "[~ e4!2 db4 a4 ~ a4 g4@5 f4@5 ~@5 d5@30 ~@5 d5@2 db5@2 ~ c5@2]/2",
  AB: "b4@2 ~ bb4@2 a4@2 ~ ab4@2 g4@2 ~ gb4 f4 e4 ~ eb4 d4 db4 c4 ~ b3 bb3 a3 ab3 ~ g3 f3 e3 eb3 ~",
  AC: "d3 d3@5 d3@5 d3@5 d3@5 d3@10 ~", AD: "~@20 ab4@2 ~ a4@2 f4@2 ~ d4@2 d4 ~",
  AE: "e4 f4 e4 d4 ~ e4 f4 e4 d4 ~ e4 f4 e4 d4 ~ e4 f4@2 d4@2 ~@3 d4 ~ e4 f4 e4 d4 ~ e4 f4",
  AF: "e4 d4 ~ f4 e4@7 d4@2 ~ bb3@5 ~@5 g3@2 g4@2 ~@3 g3",
  AG: "~ a3 bb3 a3 g3 ~ a3 bb3 a3 g3 ~ e3 f3@2 f4@2 ~@3 f3 ~ g3 a3 g3 f3 ~ g3 a3 g3 f3 ~ g3",
  AH: "ab3@2 ab4@5 f4@5 d4@5 b3@2 ~ d4@2 db4@5 c4@2 ~ db4@2",
  AI: "ab4@2 ~ a4@2 f4@2 ~ d4@2 d4 ~ e4 f4 e4 d4 ~ e4 f4 e4 d4 ~ e4 f4 e4 d4 ~ e4 f4@2 d4@2",
  AJ: "~@3 d4 ~ e4 f4 e4 d4 ~ e4 f4 e4 d4 ~ f4 e4@7 d4@2 ~ bb3@5 ~",
  AK: "~@4 c4 d4 e4 ~ f4 g4 f4 e4 ~ d4 c4 a3 f3 ~ d4 c4 a3 f3 ~@2 d4 e4 gb4 ~ g4 a4 g4 gb4",
  AL: "~ e4 d4!2 g4 ~ g4 a4!2 bb4 ~ bb4 a4!2 g4 ~ g4 f4!2 e4 ~ e4 d4 c4 bb3 ~ c4 d4@2 bb3@2 ~",
  AM: "~@8 a3!2 b3 ~ b3 c4!2 db4 ~ db4 d4@5 d5@2 ~@7", AN: "[~@17 c4@8 g3@24 a3@8 bb3@4 c4@3]/2",
  AO: "[~ bb3@4 a3@4 bb3@4 a3@8 f3 g3 ab3 g3@25 ~@15]/2", AP: "[~@17 c5@8 g4@24 a4@4 bb4@4 c5@4 bb4@3]/2",
  AQ: "~ a4@2 bb4@2 a4@12 f4 g4 ab4 g4@12",
  AR: "[~@17 c6@8 g5@24 a5@4 bb5@4 c6@2 bb5@2 a5@2 g5@2 c6@2 bb5@2 a5@2 g5@2 c6@2 bb5@2 a5@2 g5@2 d6@32 d4@3 ~ db4@3 c4@3 ~ b3@3 bb3@3 a3@3 ~ ab3@3 g3@4 a3@4 bb3@4 c4@4 ~@7]/5",
  AS: "~ d4@24 eb4@7", AT: "~ db4@4 db4@8 d4@12 d4@4 d4@3",
  AU: "~ d4@4 d4@4 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 ~@7",
  AV: "~ g3!2 gb3!2 g3!2 a3!2 bb3!2 a3!2 bb3!2 c4!2 d4!2 c4!2 bb3!2 c4!2 d4!2 g3!2 bb3!2 d4",
  AW: "d4 g4!2 eb4!2 bb3!2 g4!2 f4!2 g4!2 eb4!2 f4!2 d4!2 c4!2 bb3!2 c4!2 d4!2 g3!2 bb3!2 d4",
  AX: "d4 eb4!2 f4!2 d4!2 eb4!2 c4!2 d4!2 bb3!2 c4!2 a3!2 bb3!2 g3!2 a3!2 bb3!2 d4!2 g4!2 a4",
  AY: "a4 bb4@2 ~@4 bb4@2 a4@4 g4@4 gb4@4 gb5@4 gb4@4 ~@3",
  AZ: "~ g3!2 gb3!2 g3!2 a3!2 bb3!2 a3!2 bb3!2 c4!2 d4!2 db4!2 d4!2 eb4!2 d4!2 bb3!2 c4!2 d4",
  BA: "d4 eb4!2 g4!2 gb4!2 g4!2 a4!2 g4!2 f4!2 eb4!2 eb4@3 d4 eb4 d4 eb4 d4 ~@7",
  BB: "~ c4 b3 c4 d4 eb4 d4 eb4 d4 c4@2 eb4@2 d4@2 c4@2 bb3 a3 g3 gb3 g3 gb3 g3 a3 bb3 a3 bb3 c4 d4 db4 d4",
  BC: "eb4 f4 d4 e4 db4 eb4 c4 d4 bb3 a3 bb3 a3 g3 gb3 g3 a3 gb3 g3@2 ~@13",
  BD: "[~@4 db4@7 d4@6 bb3@7 g3@7 g3@3 a3@3 bb3@3 ~ a3@3 g3@3 a3@3 ~ bb3@3 a3@3 g3@3 ~ a3@3]/2",
  BE: "[bb3@3 a3@3 ~ g3@3 a3@3 bb3@7 g3@20 bb3@13 g3@11]/2",
  BF: "[~@4 a3@2 bb3@2 ~ g3@2 a3@2 ~ a3@2 bb3@2 ~ bb3@2 a3@2 bb3@3 bb3@3 g3@40 ~@14 f3 a3 c4 eb4 f4 eb4 c4 a3 f3 a3 c4 eb4 f4, ~@3 g3@2 ~@3 a3@2 ~@3 bb3@2 ~@3 a3@2 ~@76]/3",
  BG: "eb4 c4 a3 f3 bb3 d4 f4 g4 f4 d4 bb3 f3 bb3 d4 f4 g4 f4 d4 bb3 a3 db4 e4 g4 a4 g4 e4 db4 a3 db4 e4 g4 a4",
  BH: "g4 e4 db4 d4!2 eb4!2 d4!2 e4!2 d4!2 f4!2 d4!2 gb4!2 g4@2 ~@11", BI: "~@19 d4!2 eb4!2 e4!2 f4!2 gb4!2 g4!2 ab4",
  BJ: "[ab4 a4!2 bb4!2 b4!2 c5!2 db5!2 d5@12 eb5@6 ~@2 g5@4 bb5@16 g5@3 ~@10]/2",
})).s("gm_trombone").gain(0.48)

// other · trombone
const trombone_2 = note("<~@48 A@2 B C@2 ~@6 D@2 E ~@69 F@3 ~@11>".pickRestart({
  A: "[~@18 d3 ~ f3 d4@5 bb3@5 a3@5 f3@2 e3@2 ~ d3@5 db3@2 d3@2 ~@6 d3 e3 f3 ~ e3 d3 e3 f3]/2",
  B: "~ e3 d3 e3 f3 ~ e3 d3 e3 f3 ~ e3 e3@2 e3@5 eb3@2 ~ e3@5 ~@2 g3 ~ a3",
  C: "[bb3 a3 g3 ~ a3 bb3 a3 g3 ~ a3 bb3@2 ~ g3@2 a3@2 bb3@2 ~ a3@5 g3@5 a3@10 ~@24, ~@6 a3 ~@25]/2",
  D: "[~@26 d3 ~ f3 d4@5 bb3@5 a3@5 f3@2 e3@2 ~ d3@5 db3@2 d3@2 ~@6]/2",
  E: "d3 e3 f3 ~ e3 d3 e3 f3 ~ e3 d3 e3 f3 ~ e3 d3 e3@4 ~@12",
  F: "[~@4 g3 bb3 g4@5 eb4@5 d4@5 bb3@2 ~ a3@2 g3@5 gb3@2 ~ g3@2 ~@5 g3 ~ a3 bb3 a3 g3 ~ a3 bb3 a3 g3 ~ a3 bb3 a3 g3 ~ a3 bb3 a3 a3@7 a3@13 ~@15]/3",
})).s("gm_trombone").gain(0.3)

// other · trumpet · "Bb Trumpet"
const trumpet = note(`<
  A B C D ~@23 E F G H I F J K L M N O ~ P ~ Q R@3 S@2 T ~@7 U V@2 W ~@6 X Y@2 Z@3 AA@2 AB@4 AC AD@2 AE@2 AF@2 ~@60
>`.pickRestart({
  A: "~ d5 ~ d5", B: "~@4 d5@5 db5 c5 b4 bb4 a4 ab4 g4", C: "~ f4 ~ e4", D: "~@2 g4@3 ~@3", E: "~@5 a4 f4 g4",
  F: "a4 f5 db5 d5", G: "e5 d5 bb4@2 ~ e5 f5 g5", H: "a5 ab5 a5 bb5 ab5 a5 e5 f5",
  I: "d5@3 db5 d5 db5 d5 e5 f5@2 a4@2 f4 e4 f4 g4", J: "e5 d5 bb4@2 ~ e5!2 d5", K: "c5@2 gb4@2 g4 gb4 g4 ab4",
  L: "a4@3 ~", M: "~@2 ab3@2 ~ a3@2 bb3@2 ~ bb3@2 c4@2 ~ db4@2 e4@2 ~ a4@5 ~@7",
  N: "~@10 a3@2 ~ bb3@2 c4@2 ~ bb3@2 db4@2 ~ d4@2 f4@2 ~ a4@4", O: "~@16 e5@5 ~@11", P: "~@12 d5@5 ~@15",
  Q: "~@4 c5@5 ~@7", R: "[~ a4@5 f4@5 g4@5 a4@10 d5@20 f5@5 e5@5 d5@5 bb4@5 g4@5 d4@5 f5@5 d5@5 b4@5 ab4@5]/3",
  S: "[bb4@5 a4@5 a4@5 g4@5 g4@5 f4@5 f4@5 e4@5 d4@2 f4@7 ~ db4@2 e4@7 ~ d4@2 ~@2]/2", T: "~ db4@2 ~@3 d4@5 ~@21",
  U: "~@20 a4 bb4 a4 ~ ab4 a4 bb4 a4 ~ ab4 a4@2",
  V: "[~@8 f4@2 e4@5 d4@2 ~ e4@5 ~@5 bb4@2 a4@5 ab4@2 ~ a4@2 ~@8 g5@2 g5@5 gb5@2 ~ g5@5 ~]/2",
  W: "~@9 bb5@5 b5@5 db6@5 ~@8", X: "~@15 c4@2 c5@2 ~@13", Y: "[~@14 g5@9 d5@9]/2",
  Z: "[e5@4 f5@4 g5@4 ~ f5@4 e5@9 d5@9 e5@4 ~ f5@4 g5@4 f5@4 ~ e5@4 d5@4 ~ f5@4 e5@4 ~ d5@25]/3",
  AA: "[~@4 e5@2 f5@2 gb5@2 g5@18 d5@18 gb5@4 eb5@4 ~ eb5@4 d5@4 ~]/2",
  AB: "[d5@8 g4@9 a4@36 d5@21 eb5@4 e5@3 f5@4 gb5@3 g5@18 d5@18 e5@4]/4", AC: "f5@4 ~ g5@4 f5@4 ~ e5@18",
  AD: "[f5@4 e5@4 e5@4 ~ d5@4 d5@4 ~ db5@4 db5@4 ~ g4@4 a4@27 ~@2]/2",
  AE: "[~@7 g4@6 d5@2 ~ g4@26 g4@7 d5@2 g4@9 g4@3 d5]/2", AF: "[g4@3 ~ d5 g4@9 a4@27 ~@23]/2",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "Bb Trumpet" · soft notes
const trumpet_soft = note("<~@100 A B C D@2 E@2 F G B C H@2 I@2 ~@7 J K L M@2 K N O@2 ~@8 P Q R@2 S T>".pickRestart({
  A: "~@25 g4@2 a4@5", B: "~ bb4@2 a4@6 bb4@2 c5@6 d5@12 bb4@3", C: "~ d5@16 g5@8 g5@7",
  D: "[~ f5@8 eb5@8 d5@32 eb5@12 eb5@3]/2",
  E: "[~ d5@4 eb5@4 d5@4 c5@4 bb4@6 a4@2 bb4@2 a4@2 bb4@2 c5@2 d5@4 [g4,g5]@4 [a4,a5]@4 [bb4,bb5]@4 [a4,a5]@8 [bb4,bb5]@7]/2", // G A Bb A Bb
  F: "~ [c5,c6]@4 [bb4,bb5]@4 [a4,a5]@4 [g4,g5]@4 [gb4,gb5]@15", G: "~@17 g4@2 gb4@6 g4@2 a4@5",
  H: "[~ f5@8 eb5@8 d5@32 eb5@4 d5@4 c5@4 bb4@3]/2",
  I: "[~ a4@4 bb4@4 c5@4 db5@4 d5@2 c5@2 bb4@2 a4@2 g4@2 bb4@2 c5@2 db5@2 d5@2 eb5@2 c5@2 d5@2 bb4@2 c5@2 a4@2 bb4@2 g4@2 ~@2 d5@4 d5@4 d5@3]/2",
  J: "~@21 d5@4 d5@4 d5@3", K: "~ g4@2 gb4@2 g4@2 a4@2 bb4@2 a4@2 bb4@2 c5@2 d5@6 bb4@2 d5@7",
  L: "~ g5@4 g5@4 f5@4 eb5@4 d5@15",
  M: "[~ eb5@4 eb5@4 d5@4 c5@4 bb4@6 a4@2 g4@2 a4@2 bb4@2 b4@2 c5@4 bb4@4 a4@4 g4@4 d5@15]/2",
  N: "~ g5@6 bb5@2 a5@4 g5@4 f5@15",
  O: "[~ eb5@4 eb5@4 d5@4 c5@4 bb4@2 c5@2 d5@2 e5@2 gb5@2 g5@2 a5@2 bb5@2 c6@4 bb5@4 a5@4 g5@4 [d5,d6]@15]/2", // D
  P: "~@19 eb4@2 ~@11", Q: "~@3 d4@2 ~@14 g4@2 ~@11",
  R: "[~@3 a4@2 ~@6 bb4@2 ~@6 bb4@2 eb4 f4 g4@2 ab4@2 bb4@2 b4@2 c5@2 d5@2 c5@2 d5@2 eb5@2 ~@23]/2",
  S: "~@11 d5@4 ~@17", T: "~@3 eb5@2 ~@2 d5@2 ~@2 d5@8 g5 g4@2 ~@10",
})).s("gm_trumpet").gain(0.2)

// other · trumpet · "Bb Trumpet"
const trumpet_2 = note(`<
  A B C D ~@23 E F G H I J K L M ~@7 N@3 O@2 P ~@7 Q R@2 S ~@6 T U@2 V@3 W@2 X@4 Y Z@2 AA@2 AB@2 ~@60
>`.pickRestart({
  A: "~ a4 ~ a4", B: "~ a4@2 ~", C: "~ d4 ~ d4", D: "~@2 eb4@3 ~@3", E: "~@5 f4 d4 e4", F: "f4 a4 e4 f4",
  G: "g4 f4 g4@2 ~ db5 d5 e5", H: "db5 c5 db5 d5 c5 db5 g4 a4", I: "f4@3 e4 f4 e4 f4 g4 a4@2 f4@2 d4 db4 d4 e4",
  J: "f4 a4!2 bb4", K: "c5 bb4 g4@2 ~ g4!2 f4", L: "e4@2 eb4@2 e4 eb4 e4!2", M: "f4@3 ~",
  N: "[~ d4@5 a3@5 db4@5 d4@10 f4@20 a4@5 a4@5 g4@5 d4@5 bb3@5 g3@5 b4@5 ab4@5 f4@5 d4@5]/3",
  O: "[e4@5 d4@5 d4@5 db4@5 bb3@5 a3@5 a3@5 g3@5 f3@2 ~@8 g3@2 ~@8 f3@2 ~@2]/2", P: "~ g3@2 ~@3 f3@5 ~@21",
  Q: "~@20 db4 d4 db4 ~ c4 db4 d4 db4 ~ c4 db4@2",
  R: "[~@8 d4@2 db4@5 c4@2 ~ db4@5 ~@5 d4@2 db4@5 c4@2 ~ db4@2 ~@8 d5@2 db5@5 c5@2 ~ db5@5 ~]/2",
  S: "~@9 d5@5 eb5@5 e5@5 ~@8", T: "~@5 b3 b4 ~@9", U: "[~@14 d5@9 bb4@9]/2",
  V: "[c5@4 d5@4 e5@4 ~ d5@4 c5@9 bb4@9 c5@4 ~ d5@4 e5@4 d5@4 ~ c5@4 bb4@4 ~ d5@4 c5@4 ~ bb4@25]/3",
  W: "[~@10 d5@18 bb4@18 d5@4 c5@4 ~ c5@4 bb4@4 ~]/2", X: "[bb4@8 d4@9 g4@36 c5@35 d5@18 bb4@18 c5@4]/4",
  Y: "d5@4 ~ e5@4 d5@4 ~ c5@18", Z: "[d5@4 c5@4 c5@4 ~ bb4@4 bb4@4 ~ a4@4 a4@4 ~ e4@4 e4@27 ~@2]/2",
  AA: "[~@7 d4@6 bb4@2 ~ d4@26 d4@7 bb4@2 d4@9 d4@3 bb4]/2", AB: "[d4@3 ~ bb4 d4@9 e4@27 ~@23]/2",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "Bb Trumpet" · soft notes
const trumpet_soft_2 = note("<~@102 A B@2 C@2 D E F G H I J@2 ~@7 K L M N@2 L O P@2 ~@8 Q R S@2 T U>".pickRestart({
  A: "~@17 eb5@8 eb5@7", B: "[~ d5@8 c5@8 bb4@32 c5@12 c5@3]/2",
  C: "[~ bb4@4 c5@4 bb4@4 a4@4 g4@6 gb4@2 g4@2 gb4@2 g4@2 a4@2 bb4@4 bb4@4 c5@4 d5@4 db5@8 d5@7]/2",
  D: "~ eb5@4 d5@4 c5@4 bb4@4 a4@15", E: "~@17 bb3@2 a3@6 bb3@2 c4@5", F: "~ d4@2 gb4@6 g4@2 a4@6 bb4@12 g4@3",
  G: "~ bb4@16 eb5@8 eb5@7", H: "~ d5@8 c5@8 c5@15", I: "~ b4@16 c5@4 bb4@4 a4@4 g4@3",
  J: "[~ f4@4 g4@4 a4@4 g4@4 f4@2 a4@2 g4@2 f4@2 eb4@2 g4@2 a4@2 g4@2 gb4@2 g4@2 e4@2 gb4@2 d4@2 eb4@2 c4@2 d4@2 bb3@2 ~@2 gb4@4 g4@4 a4@3]/2",
  K: "~@21 d4@4 e4@4 gb4@3", L: "~ d4@2 db4@2 d4@2 gb4@2 g4@2 gb4@2 g4@2 a4@2 bb4@6 g4@2 bb4@7",
  M: "~ eb5@4 eb5@4 d5@4 c5@4 bb4@15",
  N: "[~ c5@4 c5@4 bb4@4 a4@4 g4@6 gb4@2 d4@2 gb4@2 g4@2 ab4@2 a4@4 g4@4 g4@4 eb4@4 a4@15]/2",
  O: "~ eb5@6 g5@2 f5@4 eb5@4 d5@15",
  P: "[~ c5@4 c5@4 bb4@4 a4@4 g4@2 a4@2 bb4@2 c5@2 d5@2 e5@2 gb5@2 g5@2 a5@4 g5@4 f5@4 eb5@4 c6@15]/2",
  Q: "~@19 a4@2 ~@11", R: "~@3 bb4@2 ~@14 a4@2 ~@11",
  S: "[~@3 f4@2 ~@6 f4@2 ~@6 g4@2 eb4 f4 g4@2 ab4@2 bb4@2 b4@2 c5@2 d5@2 eb5@2 f5@2 g5@2 ~@23]/2", T: "~@11 c5@4 ~@17",
  U: "~@3 c5@2 ~@2 c5@2 ~@2 c5@8 d5 g4@2 ~@10",
})).s("gm_trumpet").gain(0.2)

// other · trumpet · "Bb Trumpet"
const trumpet_3 = note(`<
  A B C D ~@25 E F G ~@4 H I J ~ K ~ L M@3 N@2 O ~@7 P Q@2 R ~@7 S@2 T@3 U@2 V@4 W X@2 Y@2 Z@3 ~@10 AA ~ AB ~@46
>`.pickRestart({
  A: "~ f4 ~ f4", B: "~ f4@2 ~", C: "~ a3 ~ g3", D: "~@2 bb3@3 ~@3", E: "~@5 g4 a4 bb4",
  F: "e4 eb4 e4 f4 eb4 e4 bb4 db5", G: "a4@4 a4 g4 a4 db5 d5@2 ~@6",
  H: "~@2 c4@2 ~ db4@2 d4@2 ~ db4@2 eb4@2 ~ e4@2 a4@2 ~ db5@5 ~@7",
  I: "~@10 db4@2 ~ d4@2 e4@2 ~ d4@2 e4@2 ~ f4@2 bb4@2 ~ d5@4", J: "~@16 a4@5 ~@11", K: "~@12 f4@5 ~@15",
  L: "~@4 f4@5 ~@7", M: "[~ f4@5 d4@5 e4@5 f4@10 a4@20 d5@5 c5@5 bb4@5 g4@5 e4@5 d4@5 d5@5 b4@5 ab4@5 f4@5]/3",
  N: "[g4@5 f4@5 f4@5 e4@5 e4@5 d4@5 d4@5 db4@5 a3@2 ~@8 a3@2 ~@8 a3@2 ~@2]/2", O: "~ a3@2 ~@3 a3@5 ~@21",
  P: "~@20 e4 f4 e4 ~ eb4 e4 f4 e4 ~ d4 e4@2",
  Q: "[~@8 a3@2 a3@5 a3@2 ~ a3@5 ~@5 g4@2 g4@5 gb4@2 ~ g4@2 ~@8 bb5@2 a5@5 ab5@2 ~ a5@5 ~]/2",
  R: "~@9 g5@5 ab5@5 a5@5 ~@8", S: "[~@14 bb4@9 g4@9]/2",
  T: "[a4@4 bb4@4 c5@4 ~ bb4@4 a4@9 g4@9 a4@4 ~ bb4@4 c5@4 bb4@4 ~ a4@4 g4@4 ~ bb4@4 a4@4 ~ g4@25]/3",
  U: "[~@10 bb4@18 g4@18 bb4@4 a4@4 ~ a4@4 g4@4 ~]/2", V: "[g4@8 bb3@9 db4@36 gb4@35 bb4@18 g4@18 a4@4]/4",
  W: "bb4@4 ~ c5@4 bb4@4 ~ g4@18", X: "[bb4@4 a4@4 a4@4 ~ g4@4 g4@4 ~ d4@4 d4@4 ~ bb3@4 db4@27 ~@2]/2",
  Y: "[~@7 bb3@6 g4@2 ~ bb3@26 bb3@7 g4@2 bb3@9 bb3@3 g4]/2", Z: "[bb3@3 ~ g4 bb3@9 db4@27 ~@8 c4@32 ~@15]/3",
  AA: "~@17 d4@15", AB: "~ eb4@8 d4@23",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "Bb Trumpet" · soft notes
const trumpet_soft_3 = note("<~@100 A B@2 C@3 D E@4 F@2 G H ~@7 I J K L@2 J M N@2 ~@8 O P Q@2 R S>".pickRestart({
  A: "~@25 d4@7", B: "[~ d4@16 d4@32 eb4@15]/2", C: "[~ f4@16 d4@32 c4@32 bb3@8 bb3@7]/3", D: "~ d4@8 g4@8 g4@8 g4@7",
  E: "[~ g4@8 f4@4 eb4@4 d4@4 gb4@8 gb4@8 gb4@8 gb4@4 d4@32 d4@32 eb4@15]/4", F: "[~ f4@16 d4@32 eb4@4 ~@11]/2",
  G: "~ eb4@4 ~@12 d4@2 ~@6 d4@2 ~@5", H: "~ gb4@2 ~@6 gb4@2 ~@6 g4@2 ~@2 a4@4 bb4@4 c5@3", I: "~@21 d4@4 d4@4 d4@3",
  J: "~ bb3@2 a3@2 bb3@2 c4@2 d4@2 d4@2 e4@2 gb4@2 g4@6 d4@2 g4@7", K: "~ bb4@4 bb4@4 a4@4 g4@4 f4@15",
  L: "[~ a4@4 a4@4 g4@4 gb4@4 d4@6 c4@2 bb3@2 d4@2 d4@2 f4@2 eb4@4 e4@4 eb4@4 db4@4 gb4@15]/2",
  M: "~ bb4@6 eb5@2 d5@4 c5@4 c5@8 b4@7",
  N: "[~ g4@4 g4@4 gb4@4 d4@4 d4@2 e4@2 gb4@2 g4@2 a4@2 bb4@2 c5@2 d5@2 eb5@4 e5@4 c5@4 db5@4 gb5@15]/2",
  O: "~@19 f4@2 ~@11", P: "~@3 f4@2 ~@14 e4@2 ~@11",
  Q: "[~@3 d4@2 ~@6 d4@2 ~@6 eb4@2 eb4 f4 g4@2 ab4@2 bb4@2 b4@2 c5@2 d5@2 eb5@2 f5@2 g5@2 ~@23]/2",
  R: "~@11 gb4@4 ~@17", S: "~@3 a4@2 ~@2 a4@2 ~@2 a4@8 bb4 g4@2 ~@10",
})).s("gm_trumpet").gain(0.2)

// other · trombone
const trombone_3 = note(`<
  A B C D E F G H I J K L M N ~ O P ~@3 Q ~@2 R ~@2 S T U V W X U Y Z AA AB AC@2 ~ AD ~ AE AF@3 AG AH AI ~@3 AJ AK@2 AL
  AM AN@3 ~@2 AO AP AQ AR AS AT@2 AU@3 AV@2 AW@5 AX@2 AY@5 ~@10 AZ ~ BA ~@46
>`.pickRestart({
  A: "~ a3 ~ a3", B: "~ a3@2 ~", C: "~ d3 ~ c3", D: "~@2 eb3@3 ~@3", E: "~ d4 ~ a3", F: "~ d4 ~ e4", G: "d4 ~ db4 ~",
  H: "d4 e3 d3 ~", I: "~ d4 ~ d4", J: "~ d4 ~ bb3", K: "~ e4 ~ e4", L: "~ c4@2 e4", M: "db4@2 db4 ~", N: "bb3 d4",
  O: "e4 ~@3 db4@4", P: "d4 ~@3", Q: "~ f4@3", R: "e4 d4@3", S: "e4 ~@3", T: "a3 ~ a3 ~ a3@2 ~@2",
  U: "~ a3 f3 a3 ~ a3 f3 a3", V: "~ bb3 f3 bb3 ~ bb3 g3 bb3", W: "~ a3 e3 a3 ~ a3 g3 a3", X: "f3 a3 e3 a3 f3@2 ~@2",
  Y: "~ bb3 f3 bb3 ~ d4 bb3 d4", Z: "~ c4 g3 c4 ~ c4 g3 c4", AA: "~ a3 f3 a3 f3@2 ~@2", AB: "db4@10 db4@5 ~",
  AC: "[~@8 bb3@20 d4@20 e4@5 ~@11]/2", AD: "~@12 d4@5 ~@15", AE: "~@4 d4@5 ~@7",
  AF: "[~@21 f3@5 d3@5 f3@5 ~@5 d3@5 f3@5 a3@5 g3@5 e3@5 g3@5 bb3@5 b2@3 d3@3 ~ f3@3 ab3@3 b3@3 ~ d4@3]/3",
  AG: "db4@5 ~@27", AH: "~@4 f3 ~@4 g3 ~@4 f3 ~", AI: "~ g3@2 ~@3 f3@5 ~@7 f3@2 ~@12", AJ: "~@15 f3",
  AK: "[~@3 f3@2 ~@3 f3@2 ~@3 f3@2 ~@3 f3@2 ~ f3@5 a3@5 c4@5 ~@2 bb3@2 ~@3 bb3@2 ~ bb3@5 a3@5 bb3@2 ~@6]/2",
  AL: "~@2 e3@2 ~@3 e3@2 ~@3 d3@2 ~@8 d3@2 ~@3 d3@2 ~@3", AM: "d3@2 f3@5 ab3@5 b3@5 f3@2 ~ f3@2 e3@5 eb3@2 ~ e3@2",
  AN: "[~@3 d3@5 db3@10 ~@2 a2@2 ~ a3@5 f3@10 ~@2 a3@2 ~ a4@5 ~@15 d4@5 db4@2 ~@3 bb3@5 a3@5 g3@5 ~@8]/3",
  AO: "~@10 f3@2 ~@3 f3@2 ~@3 f3@2 ~@3 f3@2 ~@3 f3@2", AP: "~ f3@5 a3@5 c4@5 ~@2 bb3@2 ~@3 bb3@2 ~ bb3@5 ~",
  AQ: "~@2 e3 ~@4 c3 ~@4 gb3 ~@3", AR: "~ d3 ~@4 d3 ~@4 d3 ~@4", AS: "~@5 bb3@2 bb4@2 ~@23",
// … 69 more lines