Strudelify

Peer Gynt Op.23

Jim87i5

KeyC majorTempo40 bpm
0:00/0:00
// Peer Gynt Op.23 — Jim87i5
// 40 bpm, 2/4, key C 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 24, 4/4 at bar 25, 6/8 at bar 27, ...) are rendered on a constant 2/4 grid of one bar per cycle
// note: ch 1 "Piccolo" named as a pipe, played on piccolo (its cello patch is not one); ch 2 "Flute" named as a pipe, played on flute (its pizzicato strings patch is not one); ch 3 "B♭ Clarinet" named as a reed, played on clarinet (its tremolo strings patch is not one); ch 4 "B♭ Trumpet" named as a brass, played on trumpet (its string ensemble 2 patch is not one); ch 6 "Horn in F" named as a brass, played on brass section (its tremolo strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/798181; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(40/2)

// 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 · piccolo
const piccolo = note(`<
  A@2 B@2 A C D E F G H I F G H J K L M N O P Q R ~ S@2 T@5 U@3 V ~@9 W X@6 Y@2 Z AA AB AC AD AE AF AG AH AI AJ@2 AK AL
  AM@2 AN AO AP
>`.pickRestart({
  A: "[c3,g3]", B: "[g2,d3]", C: "[c3,a#3]", D: "f3 [g2,f3]", E: "[c3,e3,g3]", F: "f3 a3 a3@2, c3", G: "g3 e3 f3@2, c3",
  H: "f3 a3 g3 e3, c3", I: "[c3,f3]", J: "~@10 f5 g5 a5 b5 c6 d6, [c3,f3]", K: "e6 c6 e6 c6 g6 e6 g6 e6, [c3,g3]",
  L: "e6 d6 e6 g5 c6 g5 c6 g5, [c3,g3]", M: "d6 b5 d6 b5 g6 d6 g6 d6, [g2,d3]", N: "g6 b5 d6 b5 d6 b5 g5 b5, [g2,d3]",
  O: "e6 c6 e6 c6 g6 e6 g6 e6, [c3,g3] [b2,g3]", P: "a6 e6 a6 e6 c7 g6 c7 g6, [e3,a3] [e3,c4]",
  Q: "a6 f6 a6 f6 c6 f6 a6 c6, f3, a3@2 c4 a3", R: "g5 c6 e6 g6 c7 g6 e6 c6, [e3,g3]",
  S: "[~@2 g6 e6 d6 c6 d6 e6, [c3,e3,g3]]/2", // C
  T: "[g6@4 e6@3 d6@4 c6@4 d6@3 e6@4 g6@3 e6@4 d6@4 c6@3 d6@2 e6@2 d6@2 e6@2 g6@3 e6@4 g6@4 a6@3 e6@4 a6@3 g6@4 e6@4 d6@3 c6@7 ~ c6 [d6,e6] f6 g6@4 e6@4 d6@3 c6@4 d6@3 e6@4 g6@4 e6@3 d6@4 c6@4 ~ e6@2 d6@2 e6@2 g6@4 e6@3 g6@4 a6@3 e6@4 a6@4 [e3,g#3,b3,b6]@18 e6 f#6 g#6 a6 b6@3 g#6@4 f#6@3 e6@4 f#6@4 g#6@3 b6@4 g#6@4 f#6@3 e6@4 f#6@2 g#6@2 ~ g#6@2 b6@4 g#6@3 b6@4 c#7@4 g#6@3 c#7@4, [c3,g3,c4]@44 [c3,g3,c4]@11 [a3,c4,e4]@10 [c3,g3,c4]@22 [c3,g3,c4]@44 [c3,g3,c4]@11 [a3,c4,e4]@11 ~@22 [e3,g#3,b3]@44 ~@10 [g#3,b3,d#4]@11, ~@124 d6@2 ~@89 f#6@2 ~ [b2,f#3,b3]@11 ~@11]/5", // Dsus2 E C5 Am C5 Am E G#m …
  U: "[b6@4 g#6@3 f#6@4 e6@7 ~@4 b6@3 g#6@4 f#6@4 e6@3 f#6@4 g#6@4 b6@3 g#6@4 f#6@4 e6@3 f#6@2 g#6@2 f#6@2 ~ b6@4 g#6@4 b6@3 c#7@4 g#6@4 c#7@3 b6@4 g#6@4 f#6@3 e6@7 c#6@4 a5 g5@3 ~@2 a5 ~ g5@3 ~@2 a5 g5@3 ~@2 a5 g5@3 ~@3 a6 g6@3 ~@2 a6 g6@2, [e3,g#3,b3]@11 [e3,g#3,b3]@21 g#6 ~@39, ~@65 [b2,f#3,b3]@11 [g#3,b3,d#4]@11 [e3,g#3,b3]@22 ~@35]/3", // E B5 G#m E
  V: "~@3 a6 ~ g6@3 ~@2 a6 g6@3 ~@34",
  W: "~@33 b5 c6 ~ d6 e6 ~@3 [c3,f3,a3] ~ [c3,f3,a3] f6@3 [c3,f3,a3], ~@19 f6@3 ~@2", // F
  X: "[~@2 g6@3 [c3,e3,g3]!2 a6@3 [c3,e3,g3] ~@5 [c3,f3,a3]!2 ~@3 [c3,f3,a3] ~@2 c7@3 [c3,f3,a3] ~ [c3,f3,a3] a6@3 [c3,f3,a3] ~@4 [c3,e3,g3] ~ [c3,e3,g3] ~@3 [c3,e3,g3] ~@2 g6@3 [c3,e3,g3]!2 ~ a6@2 [c3,e3,g3] ~@2 f6@3 [c3,f3,a3]!2 ~ e7@3 [c3,f3,a3] ~ c7@3 [c3,e3,g3] ~ [c3,e3,g3] a6@3 [c3,e3,g3] ~@5 [c3,f3,a3]!2 ~@3 [c3,f3,a3] ~@2 g6@3 [c3,e3,g3] [c3,e3,g3] ~ a6@3 [c3,e3,g3] ~@4 [c3,f3,a3] ~ [c3,f3,a3] ~@3 [c3,f3,a3] ~@2 c7@2 [c3,f3,a3] ~ [c3,f3,a3] a6@3 [c3,f3,a3] ~@5 [c3,e3,g3]!2 ~@3 [c3,e3,g3] ~@2 g6@3 [c3,e3,g3]!2 ~ a6@3 [c3,e3,g3] ~@2 f6@2 [c3,f3,a3] ~ [c3,f3,a3] g6@3 [c3,e3,g3] ~@5 [c3,f3,a3]!2 ~@3 [c3,e3,g3] ~@5 [c3,f3,a3]!2 ~@4 [c3,f3,a3] ~ g6@3 [c3,e3,g3] ~ [c3,e3,g3] a6@3 [c3,e3,g3] ~@5 [c3,f3,a3]!2 ~@3 [c3,f3,a3] ~@2 c7@3 [c3,f3,a3]!2 ~ a6@2 [c3,f3,a3] ~@5 [c3,e3,g3] ~ [c3,e3,g3] ~@3 [c3,e3,g3] ~@2 g6@2 [c3,e3,g3] ~ [c3,e3,g3] a6@3 [c3,e3,g3] ~@2 f6@3 [c3,f3,a3]!2 ~ e7@2 [c3,f3,a3] ~@2 c7@3 [c3,e3,g3]!2 ~ a6@3 [c3,e3,g3] ~@4 [c3,f3,a3] ~ [c3,f3,a3] ~@3 [c3,f3,a3] ~@2 g6@3 [c3,e3,g3]!2 a6@3 [c3,e3,g3] ~@2 c7@3 [c3,f3,a3], ~@5 a#6@3 ~@2 g6@3 c7@6 c7@5 ~@3 d7@2 ~@4 a#6@3 g6@5 g6@6 ~@3 a#6@3 ~@2 g6@3 ~@3 f7@3 ~@3 d7@2 ~@3 a#6@2 ~@4 g6@3 f6@5 f6@6 ~@3 a#6@3 ~@3 g6@2 c7@6 c7@6 ~@2 d7@2 ~@4 a#6@3 g6@6 g6@5 ~@3 a#6@3 ~@3 g6@3 ~@2 c7@2 ~@4 a6@3 f6@5 c6@6 f6@6 f6@6 ~@2 a#6@2 ~@4 g6@3 c7@5 c7@6 ~@3 d7@3 ~@2 a#6@3 g6@6 g6@6 ~@2 a#6@2 ~@4 g6@3 ~@3 f7@3 ~@2 d7@3 ~@3 a#6@3 ~@3 g6@2 f6@6 f6@6 ~@3 a#6@3 ~@2 g6@3 ~@4]/6", // C F C F C F C F …
  Y: "[[c3,f3,a3] ~@4 [c3,f3,a3] ~ c7@3 [c3,f3,a3] ~ [c3,f3,a3] a6@3 [c3,f3,a3] ~@4 [c3,e3,g3] ~ [c3,e3,g3] ~@3 [c3,e3,g3] ~@2 g6@3 [c3,e3,g3]!2 ~ a6@2 [c3,e3,g3] ~@2 f6@3 [c3,f3,a3]!2 ~ g6@3 [c3,e3,g3] ~@4 [c3,f3,a3] ~ [c3,f3,a3] ~@3 [c3,f3,a3] ~@34, ~@2 c7@5 ~@3 d7@2 ~@4 a#6@3 g6@5 g6@6 ~@3 a#6@3 ~@2 g6@3 ~@3 c7@3 ~@3 a6@3 f6@5 f6@6 ~@32]/2", // F C F C F
  Z: "~@38 c6@6 ~@2 c6 ~",
  AA: "c6 c6@6 ~@3 c6!2 ~ [g5,c6]@3 [g5,c6]!2 ~ [g5,c6]@3 [g5,c6]@3 [g5,c6]@2 [g5,c6] ~ [g5,c6] [g5,c6]@3 [g5,c6]@3 [g5,c6]@3 [g3,g5,c6] ~ [g5,c6] [g5,c6]@3 [g5,c6]@3, ~@36 a3 ~@5 f3 ~@2 g3 ~@2", // C5
  AB: "[g5,c6]@3 [g3,g5,c6] [g5,c6] ~ [g5,c6]@3 f3 g3 [c3,g3,g5,c6]@26 ~@11, a3 ~@5 f3 ~@2 [g5,c6]@2 ~@37", // C5
  AC: "~@7 c3 ~ c3 c3@3 c3!2 ~ c3@3 c3!2 ~ [c3,f3] ~@2 [c3,g3] ~ [c3,a3] ~@2 c3 ~ c3 c3@3 c3 ~ c3 [c3,f3]@3 a3!2 ~ [c3,g3] ~@2", // F5 C5 F F5 C5
  AD: "[c3,e3] ~@2 c3@3 c3!2 ~ c3@2 c3 ~ c3 c3@3 c3 ~ c3 [c3,f3] ~@2 [c3,g3] ~@2 [c3,a3] ~@2 f3 a3 ~ [e3,c4]@6 c4 a#3 ~ a3 g3 f3 ~@2 [c3,a3] ~", // C F5 C5 F C F
  AE: "~ [c3,f3] ~@2 [c3,c6] ~ [c3,c6] [c3,c6]@3 [c3,c6]!2 ~ [c3,c6]@3 [c3,c6]!2 ~ [c3,f3,c6,f6] ~@2 [c3,g3,c6,g6] ~@2 [c3,a3,c6,a6] ~ [c3,c6] ~ [c3,c6] [c3,c6]@3 [c3,c6] ~ [c3,c6] [c3,f3,c6,f6]@3 [a3,a6] ~ [a3,a6] [c3,g3,c6,g6] ~@2 [c3,e3,c6,e6] ~@2", // F5 C F5 C5 F C F5 A …
  AF: "[c3,c6]@3 [c3,c6]!2 ~ [c3,c6]@3 [c3,c6]!2 [c3,c6]@3 [c3,c6] ~ [c3,c6] [c3,f3,c6,f6] ~@2 [c3,g3,c6,g6] ~@2 [c3,a3,c6,a6] ~@2 [f3,f6] [a3,a6] ~ [e3,c4,e6,c7]@6 [c4,c7] [a#3,a#6] ~ [a3,a6] [g3,g6] ~ [f3,f6] ~ [c3,a3,c6,a6] ~@2 [c3,f3,c6,f6] ~", // C F5 C5 F A C A# A …
  AG: "~@4 [f3,a3,f6,a6]@3 [f3,a3,f6,a6] ~ [f3,a3,f6,a6] [f3,a3,f6,a6]@3 [f3,a3,f6,a6]!2 ~ [f3,a3,f6,a6]@3 [d4,d7]@3 [f3,a3,f6,a6]@3 [d4,d7]@2 [f3,a3,f6,a6]@3 [d4,d7]@3 [f3,a3,f6,a6]@3 [e3,g3,e6,g6]@3 [d3,f3,d6,f6] ~@2 [c#3,e3,c#6,e6] ~@2 [d3,d6] ~@2", // F D F D F D F Em …
  AH: "[f3,a3,f6,a6]!2 ~ [f3,a3,f6,a6]@3 [f3,a3,f6,a6]!2 ~ [f3,a3,f6,a6]@2 [f3,a3,f6,a6] ~ [f3,a3,f6,a6] [f3,a3,f6,a6]@3 [d4,d7]@3 [f3,a3,f6,a6]@3 [d4,d7]@3 [f3,a3,f6,a6]@3 [d4,d7]@3 [g3,c4,g6,c7]@3 [f3,b3,f6,b6]@3 [e3,c4,e6,c7]@3 [g3,b3,g6,b6]@2 [e3,c4,e6,c7]@3 [f3,a3,f6,a6] ~", // F D F D F D C5 Fdim …
  AI: "[f3,a3,f6,a6] [f3,a3,f6,a6]@3 [f3,a3,f6,a6] ~ [f3,a3,f6,a6] [f3,a3,f6,a6]@3 [f3,a3,f6,a6]!2 ~ [f3,a3,f6,a6]@3 [d4,d7]@3 [f3,a3,f6,a6]@3 [d4,d7]@3 [f3,a3,f6,a6]@2 [d4,d7]@3 [f3,a3,f6,a6]@3 [e3,g3,e6,g6]@3 [d3,f3,d6,f6] ~@2 [c#3,e3,c#6,e6] ~@2 [d3,d6] ~@2 [f3,a3,f6,a6]!2 ~", // F D F D F D F Em …
  AJ: "[[f3,a3,f6,a6]@3 [f3,a3,f6,a6]!2 ~ [f3,a3,f6,a6]@3 [f3,a3,f6,a6]!2 [f3,a3,f6,a6]@3 [d4,d7]@3 [f3,a3,f6,a6]@3 [d4,d7]@3 [f3,a3,f6,a6]@3 [d4,d7]@3 [g3,c4,g6,c7]@3 [f3,b3,f6,b6]@3 [e3,c4]@3 c3!2 ~ c3@2 g3 ~ g3 g3@3 g3 ~ g3 g3@3 [f3,a3]@3 [g3,a#3]@3 [c3,g3]@6 [g3,a#3]@3 [f3,a3]@3 f3@5 [f3,a3]@3 [e3,g3,e6,g6]@3 [e3,g3,e6,g6]@3 [e3,g3,e6,g6]@3 [c3,g3,c6,g6]!2 ~ [c3,g3,c6,g6]@3, ~@35 [e6,c7]@47 ~@14]/2", // F D F D F D C5 Fdim …
  AK: "[c3,g3,c6,g6]!2 ~ [c3,g3,c6,g6]@3 [f3,a3,f6,a6]@3 [g3,a#3,g6,a#6]@2 [c3,g3,c6,g6]@6 [g3,a#3,g6,a#6]@3 [f3,a3,f6,a6]@3 [f3,f6]@6 [f3,a3,f6,a6]@3 [e3,g3,e6,g6]@3 [c4,c7]!2 ~ [c4,c7]@3 [c3,c6]!2 [c3,c6]@3 [c3,c6] ~", // C5 F Gm C5 Gm F Em C
  AL: "[c3,c6] [c3,c6]@3 [c3,c6] ~ [c3,c6] [c3,f3,c6,f6] ~@2 [c3,g3,c6,g6] ~@2 [c3,a3,c6,a6] ~@2 [c3,c6]!2 ~ [c3,c6]@3 [c3,c6]!2 ~ [c3,f3,c6,f6]@2 [a3,a6] ~ [a3,a6] [c3,g3,c6,g6] ~@2 [c3,e3,c6,e6] ~@2 [c3,c6]@3 [c3,c6] ~ [c3,c6] [c3,c6]@3 [c3,c6]!2 ~", // C F5 C5 F C F5 A C5 …
  AM: "[[c3,c6]@3 [c3,c6]!2 ~ [c3,f3,c6,f6] ~@2 [c3,g3,c6,g6] ~ [c3,a3,c6,a6] ~@2 [f3,f6] ~ [a3,a6] [e3,c4,e6,c7]@6 [c4,c7] ~ [a#3,a#6] [a3,a6] [g3,g6] ~ [f3,f6] ~@2 [c3,a3,c6,a6] ~@2 [c3,f3,c6,f6] ~@5 [c3,e3,c6,e6]@23 [f3,f6] ~@2 [e3,e6] ~@2 [f3,f6] ~@2 [e3,e6] ~ [f3,f6] ~@2 [e3,e6] ~@2 [f3,f6]@3 ~@3 [a3,a6]@6 ~@3]/2", // C F5 C5 F A C A# A …
  AN: "~@3 [f3,f6]@6 ~@5 [a3,a6]@6 ~@6 [f3,f6]@6 ~@6 [f3,f6]!2 ~ [f3,f6]@2 [f3,f6]@3 [f3,f6]@2", // F A F
  AO: "~ [f3,f6]@3 [f3,f6]@6 f6!2 ~ a3@12 f3@17 ~@6, ~@13 [f2,c3]@29 ~@6, ~@13 f6@3 ~@32", AP: "[f2,c3,f3,f7] ~@3",
})).s("gm_piccolo").gain(0.3)

// chords · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A@2 B@2 A C D E F G H I F G H I A@2 B@2 J K L M ~ N@2 O@4 P Q@3 R ~@9 S T@6 U@2 V W X ~@2 Y Z AA AB AC AD@2 AE AF AG@2
  AH AI AJ
>`.pickRestart({
  A: "[c4,g4]", B: "[d4,g4]", C: "[c4,a#4]", D: "f4 [g3,f4]", E: "[c4,e4]", F: "f4 a4 a4@2, c4", G: "g4 e4 f4@2, c4",
  H: "f4 a4 g4 e4, c4", I: "[c4,f4]", J: "[c4,g4] [b3,g4]", K: "[e4,a4] [e4,c5]", L: "a4@2 c5 a4, f4", M: "[e4,g4]",
  N: "[c4,g4]/2", // C5
  O: "[g4@4 e4@3 d4@4 c4@4 d4@3 e4@4 g4@3 e4@4 d4@4 c4@3 d4@2 e4@2 d4@2 e4@2 g4@3 e4@4 g4@4 a4@3 e4@4 a4@3 g4@4 e4@4 d4@3 c4@7 ~ c4 [d4,e4] f4 g4@4 e4@4 d4@3 c4@4 d4@3 e4@4 g4@4 e4@3 d4@4 c4@4 ~ e4@2 d4@2 e4@2 g4@4 e4@3 g4@4 a4@3 e4@4 a4@4 e4@18 e4 f#4 g#4 a4 b4@3 g#4@4 f#4@3 e4@4 f#4@3, ~@62 d4 ~@33]/4", // Dsus2
  P: "~ g#4@3 b4@4 g#4@4 f#4@3 e4@4 f#4@2 g#4@2 ~ g#4@2 b4@4 g#4@3 b4@4 c#5@4 g#4@3 c#5@4, ~@23 f#4@2 ~@23",
  Q: "[b4@4 g#4@3 f#4@4 e4@7 ~@4 b4@3 g#4@4 f#4@4 e4@3 f#4@4 g#4@4 b4@3 g#4@4 f#4@4 e4@3 f#4@2 g#4@2 f#4@2 ~ b4@4 g#4@4 b4@3 c#5@4 g#4@4 c#5@3 b4@4 g#4@4 f#4@3 e4@7 c#4@4 a3 g3@3 ~@2 a3 ~ g3@3 ~@2 a3 g3@3 ~@2 a3 g3@3 ~@3 a4 g4@3 ~@2 a4 g4@2, ~@32 g#4 ~@39]/3",
  R: "~@3 a4 ~ g4@3 ~@2 a4 g4@3 ~@34", S: "~@33 b3 c4 ~ d4 e4 f4@6 f4@4",
  T: "[~@2 g4@3 a#4@2 a4@3 g4@3 c5@6 c5@5 c5@3 d5@3 a4@3 a#4@3 g4@5 g4@6 g4@3 a#4@3 a4@2 g4@3 f4@3 f5@3 e5@3 d5@2 c5@3 a#4@3 a4@3 g4@3 f4@5 f4@6 g4@3 a#4@3 a4@3 g4@2 c5@6 c5@6 c5@2 d5@3 a4@3 a#4@3 g4@6 g4@5 g4@3 a#4@3 a4@3 g4@3 f4@2 c5@3 g4@3 a4@3 f4@5 c4@6 f4@6 f4@5 g4@3 a#4@3 a4@3 g4@3 c5@5 c5@6 c5@3 d5@3 a4@2 a#4@3 g4@6 g4@6 g4@2 a#4@3 a4@3 g4@3 f4@3 f5@3 e5@2 d5@3 c5@3 a#4@3 a4@3 g4@2 f4@6 f4@6 g4@3 a#4@2 a4@3 g4@3 c5@4]/6",
  U: "[~@2 c5@5 c5@3 d5@3 a4@3 a#4@3 g4@5 g4@6 g4@3 a#4@3 a4@2 g4@3 f4@3 c5@3 g4@3 a4@3 f4@5 f4@6 ~@32]/2",
  V: "~@38 c5@6 ~@2 c5 ~",
  W: "c5 c5@6 ~@3 c5!2 ~ [g4,c5]@3 [g4,c5]!2 ~ [g4,c5]@3 [g4,c5]@3 [g4,c5]@2 [g4,c5] ~ [g4,c5] [g4,c5]@3 [g4,c5]@3 [g4,c5]@3 [g4,c5] ~ [g4,c5] [g4,c5]@3 [g4,c5]@3", // C5
  X: "[g4,c5]@3 [g4,c5]!2 ~ [g4,c5]@3 [g4,c5]@2 [e4,c5]@26 ~@11", // C5 C
  Y: "~@4 c4 ~ c4 c4@3 c4!2 ~ c4@3 c4!2 ~ [c4,f4] ~@2 [c4,g4] ~@2 [c4,a4] ~ c4 ~ c4 c4@3 c4 ~ c4 [c4,f4]@3 a4 ~ a4 [c4,g4] ~@2 [c4,e4] ~@2", // F5 C5 F F5 C5 C
  Z: "c4@3 c4!2 ~ c4@3 c4!2 c4@3 c4 ~ c4 [c4,f4] ~@2 [c4,g4] ~@2 [c4,a4] ~@2 f4 a4 ~ [e4,c5]@6 c5 a#4 ~ a4 g4 ~ f4 ~ [c4,a4] ~@2 [c4,f4] ~", // F5 C5 F C F F5
  AA: "~@4 [f4,a4]@3 [f4,a4] ~ [f4,a4] [f4,a4]@3 [f4,a4]!2 ~ [f4,a4]@3 d5@3 [f4,a4]@3 d5@2 [f4,a4]@3 d5@3 [f4,a4]@3 [e4,g4]@3 [d4,f4] ~@2 [c#4,e4] ~@2 d4 ~@2", // F Em Dm C#m
  AB: "[f4,a4]!2 ~ [f4,a4]@3 [f4,a4]!2 ~ [f4,a4]@2 [f4,a4] ~ [f4,a4] [f4,a4]@3 d5@3 [f4,a4]@3 d5@3 [f4,a4]@3 d5@3 [g4,c5]@3 [f4,b4]@3 [e4,c5]@3 [g4,b4]@2 [e4,c5]@3 [f4,a4] ~", // F C5 Fdim C G C F
  AC: "[f4,a4] [f4,a4]@3 [f4,a4] ~ [f4,a4] [f4,a4]@3 [f4,a4]!2 ~ [f4,a4]@3 d5@3 [f4,a4]@3 d5@3 [f4,a4]@2 d5@3 [f4,a4]@3 [e4,g4]@3 [d4,f4] ~@2 [c#4,e4] ~@2 d4 ~@2 [f4,a4]!2 ~", // F Em Dm C#m F
  AD: "[[f4,a4]@3 [f4,a4]!2 ~ [f4,a4]@3 [f4,a4]!2 [f4,a4]@3 d5@3 [f4,a4]@3 d5@3 [f4,a4]@3 d5@3 [g4,c5]@3 [f4,b4]@3 [e4,c5]@46 [e4,g4]@3 [e4,g4]@3 [e4,g4]@3 [c4,g4]!2 ~ [c4,g4]@3]/2", // F C5 Fdim C Em C5
  AE: "[c4,g4]!2 ~ [c4,g4]@3 [f4,a4]@3 [g4,a#4]@2 [c4,g4]@6 [g4,a#4]@3 [f4,a4]@3 f4@6 [f4,a4]@3 [e4,g4]@3 c5!2 ~ c5@3 c4!2 c4@3 c4 ~", // C5 F Gm C5 Gm F Em
  AF: "c4 c4@3 c4 ~ c4 [c4,f4] ~@2 [c4,g4] ~@2 [c4,a4] ~@2 c4!2 ~ c4@3 c4!2 ~ [c4,f4]@2 a4 ~ a4 [c4,g4] ~@2 [c4,e4] ~@2 c4@3 c4 ~ c4 c4@3 c4!2 ~", // F5 C5 F F5 C5 C
  AG: "[c4@3 c4!2 ~ [c4,f4] ~@2 [c4,g4] ~ [c4,a4] ~@2 f4 ~ a4 [e4,c5]@6 c5 ~ a#4 a4 g4 ~ f4 ~@2 [c4,a4] ~@2 [c4,f4] ~@5 [c4,e4]@23 f4 ~@2 e4 ~@2 f4 ~@2 e4 ~ f4 ~@2 e4 ~@2 f4@3 ~@3 a4@6 ~@3]/2", // F5 C5 F C F F5 C
  AH: "~@3 f4@6 ~@5 a4@6 ~@6 f4@6 ~@6 f4!2 ~ f4@2 f4@3 f4@2", AI: "~ f4@3 f4@6 f4!2 ~ f4@3 ~@32", AJ: "[f4,f5] ~@3",
})).s("gm_clarinet").gain(0.2)

// chords · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A@2 B@2 A@2 C D E F G H E F G H A@2 B@2 I J K L M N@2 O@5 P@3 Q R S T U V@2 W@2 X@2 Y@6 Z@2 AA AB AC AD AE AF AG AH AI
  AJ AK@3 AL AM@2 AN AO AP
>`.pickRestart({
  A: "[e4@3 g4 g4@4 [c4,e4]@3 d4 c4@4, c2, c4 ~]/2", B: "[d4@3 e4 g4@3 e4 [b3,d4]@8, g2, b3 ~]/2",
  C: "[a3,d4]@3 e4 [b3,d4]@3 c4, f2", D: "[c2,c4]", E: "a4@3 c5 c5@4, [f2,f4]", F: "[g4,b4] [e4,g4] [f2,f4,a4]@2, g2 ~",
  G: "a4 c5 b4 g4, f4, f2 g2", H: "[f2,f4,a4]", I: "[c2,c4,e4]@3 g4 [g2,d4,g4]@4",
  J: "[a2,e4,a4,c5]@3 d5 [c2,g4,c5,e5]@4", K: "d5@3 c5 d5@2 [f4,a4]@2, f2, f4@3 ~", L: "[c2,e4,c5]",
  M: "d5@3 c5 d5@2 a4@2", N: "[c2,c5]/2", O: "[c2@44 c2@11 a2@10 c2@22 c2@44 c2@11 a2@11 e2@22 e2@43 b1@11 g#2@11]/5",
  P: "[e2@22 e2@43 b1@11 g#2@11 e2@22 a4 g4@3 ~@2 a4 ~ g4@3 ~@2 a4 g4@3 ~@2 a4 g4@3 ~@3 a5 g5@3 ~@2 a5 g5@2]/3",
  Q: "~@3 a5 ~ g5@3 ~@2 a5 g5@3 ~@2 g3@3 d4@3 ~ d4@3 e4@3 d4@3 c4@3 c4@3 ~ e4@3 f4@3 a4@3",
  R: "c5@3 a4@3 ~ a4@3 g4@3 g4@6 a4@3 ~ b3@3 b3@3 a4@3 g4@3 c4@3 ~ c4@3 e4@3 e4@3",
  S: "d4@3 e4@3 ~ d4@3 e4@3 d4@3 e4@3 d4@3 ~ g3@3 d4@3 d4@3 e4@3 d4@3 ~ c4@3 c4@3 e4@3",
  T: "f4@3 a4@3 ~ c5@3 a4@3 a4@3 g4@3 g4@6 ~ a4@3 b3@3 b3@3 a4@3 ~ g4@3 c4@3 c4@3",
  U: "e4@3 e4@3 ~ d4@3 e4@3 d4@3 e4@3 d4@3 ~ e4@3 d4@3 e4@3 d4@3 d4@6 ~ e4@6",
  V: "[c4@6 ~ a3@6 g3@6 g4@3 ~ d4@3 e4@3 f4@3 e4@3 d4@3 ~ c4@6 e4@6 c4@6 ~ a3@6 g3@6 ~ f#4@3 g4@3 a4@3 b4@3 d5@3 ~ c5@3 c5@6]/2",
  W: "[e4@6 ~ c4@6 a3@6 g3@6 ~ g4@3 d4@3 e4@3 f4@3 ~ e4@3 d4@3 c4@6 e4@6 ~ c4@6 a3@6 ~ g3@6 f#4@3 g4@3 a4@3 ~ b4@3 c5@3 g4@3]/2",
  X: "[b4@3 g4@3 c5@3 g4@3 b4@3 g4@3 c5@3 g4@3 b4@3 g4@3 c5@3 g4@3 b4@2 g4@3 c5@4 c4 ~ c4@4 c4 ~ c4@3 ~@8 c4@4 c4 c4@4 ~ c4 c4@3 ~@3 b3 c4 ~ d4 e4 f4@6 [f2,f4]@4, ~@86 f1@3 ~@7]/2", // F
  Y: "[~@2 [c2,g4]@3 a#4@2 [a#2,a4]@3 g4@3 c5@6 c5@5 [f1,c5]@3 d5@3 [f2,a4]@3 a#4@3 g4@5 g4@6 [c2,g4]@3 a#4@3 [a#2,a4]@2 g4@3 [f1,f4]@3 f5@3 [f2,e5]@3 d5@2 [c2,c5]@3 a#4@3 [g2,a4]@3 g4@3 f4@5 f4@6 [c2,g4]@3 a#4@3 [a#2,a4]@3 g4@2 c5@6 c5@6 [f1,c5]@2 d5@3 [f2,a4]@3 a#4@3 g4@6 g4@5 [c2,g4]@3 a#4@3 [a#2,a4]@3 g4@3 [f2,a2,f4]@2 c5@3 [c2,a#2,g4]@3 a4@3 f4@5 c4@6 f4@6 f4@5 [c2,g4]@3 a#4@3 [a#2,a4]@3 g4@3 c5@5 c5@6 [f1,c5]@3 d5@3 [f2,a4]@2 a#4@3 g4@6 g4@6 [c2,g4]@2 a#4@3 [a#2,a4]@3 g4@3 [f1,f4]@3 f5@3 [f2,e5]@2 d5@3 [c2,c5]@3 a#4@3 [g2,a4]@3 g4@2 f4@6 f4@6 [c2,g4]@3 a#4@2 [a#2,a4]@3 g4@3 [f1,c5]@4, ~@13 f1@3 ~@3 f2@3 ~@14 c2@3 ~@2 a#2@3 ~@37 f1@3 ~@2 f2@3 ~@14 f1@3 ~@3 f2@3 ~@14 c2@3 ~@3 a#2@3 ~@25 f2@3 ~@2 c2@3 ~@3 f1@3 ~@3 f2@3 ~@14 f1@3 ~@2 f2@3 ~@14 c2@3 ~@3 a#2@3 ~@36 f1@3 ~@3 f2@3 ~@18]/6", // C5 A#maj7 F5 F C5 A#maj7 F Fmaj7 …
  Z: "[~@2 c5@5 [f1,c5]@3 d5@3 [f2,a4]@3 a#4@3 g4@5 g4@6 [c2,g4]@3 a#4@3 [a#2,a4]@2 g4@3 [f2,a2,f4]@3 c5@3 [c2,a#2,g4]@3 a4@3 f4@5 f4@6 c5@6 ~@3 c5!2 c5@6 ~@3 c5 ~ c5!2 ~@2 a4 ~@2 f4 ~@2, ~@2 f2@3 ~@14 c2@3 ~@2 a#2@3 ~@26 f2@3 ~@2 f1@3 ~@35]/2", // F5 F C5 A#maj7 F C7
  AA: "a4 ~@2 c5 ~@2 a4 ~@2 c5 ~ f5 ~@2 c5@6 ~@3 c5 ~ c5 c5@6 ~@3 c5!2 ~ c5@6 ~@2 c5 ~",
  AB: "c5 c5@6 ~@3 c5!2 ~ [g4,c5]@3 [g4,c5]!2 ~ [g4,c5]@3 [g4,c5]@3 [g4,c5]@2 [g4,c5] ~ [g4,c5] [g4,c5]@3 [g4,c5]@3 [c2,g4,c5]@3 [g4,c5] ~ [g4,c5] [c2,g4,c5]@3 [c2,g4,c5]@3, ~@39 c2@2 ~@7", // C5
  AC: "[c2,g4,c5]@3 [g4,c5]!2 ~ [c2,g4,c5]@3 [c2,g4,c5]@2 [c2,g4,c5]@26 ~@11, ~@3 c2@2 ~@43", // C5
  AD: "~@10 c2@3 c2!2 ~ c2@3 c2!2 ~ f2 ~@2 f2 ~ f2 ~@2 c2 ~ c2 c2@3 c2 ~ c2 f2@3 f2!2 ~ c2 ~@2",
  AE: "c2 ~@2 c2@3 c2!2 ~ c2@2 c2 ~ c2 c2@3 c2 ~ c2 f2 ~@2 f2 ~@2 f2 ~@2 f2!2 ~ c2@6 ~ a#2 ~ a2 g2 f2 ~@2 f2 ~",
  AF: "~ f2 ~@2 [c2,c4] ~ [c2,c4] [c2,c4]@3 [c2,c4]!2 ~ [c2,c4]@3 [c2,c4]!2 ~ [f2,c4,f4] ~@2 [f2,c4,g4] ~@2 [f2,c4,a4] ~ [c2,c4] ~ [c2,c4] [c2,c4]@3 [c2,c4] ~ [c2,c4] [f2,c4,f4]@3 [f2,a4] ~ [f2,a4] [c2,c4,g4] ~@2 [c2,c4,e4] ~@2", // C F5 Fsus2 F C F5 F C5 …
  AG: "[c2,c4]@3 [c2,c4]!2 ~ [c2,c4]@3 [c2,c4]!2 [c2,c4]@3 [c2,c4] ~ [c2,c4] [f2,c4,f4] ~@2 [f2,c4,g4] ~@2 [f2,c4,a4] ~@2 [f2,f4] [f2,a4] ~ [c2,e4,c5]@6 c5 [a#2,a#4] ~ [a2,a4] [g2,g4] ~ [f2,f4] ~ [f2,c4,a4] ~@2 [f2,c4,f4] ~", // C F5 Fsus2 F C A# A G …
  AH: "~@4 [f4,a4]@3 [f4,a4] ~ [f4,a4] [f4,a4]@3 [f4,a4]!2 ~ [d2,f4,a4]@3 d5@3 [d2,f4,a4]@3 d5@2 [d2,f4,a4]@3 d5@3 [c2,f4,a4]@3 [e4,g4]@3 [d2,d4,f4] ~@2 [d2,c#4,e4] ~@2 [d2,d4] ~@2, ~@2 d2@3 d2@3 ~@16", // F Dm F Em Dm C#m D
  AI: "[f4,a4]!2 ~ [f4,a4]@3 [f4,a4]!2 ~ [f4,a4]@2 [f4,a4] ~ [f4,a4] [d2,f4,a4]@3 d5@3 [d2,f4,a4]@3 d5@3 [d2,f4,a4]@3 d5@3 [c2,g4,c5]@3 [c2,f4,b4]@3 [c2,e4,c5]@3 [c2,g4,b4]@2 [c2,e4,c5]@3 [f4,a4] ~, ~@3 d2@6 d2@5 ~@34", // F Dm C5 F C Cmaj7 C F
  AJ: "[f4,a4] [f4,a4]@3 [f4,a4] ~ [f4,a4] [f4,a4]@3 [f4,a4]!2 ~ [d2,f4,a4]@3 d5@3 [d2,f4,a4]@3 d5@3 [d2,f4,a4]@2 d5@3 [c2,f4,a4]@3 [e4,g4]@3 [d2,d4,f4] ~@2 [d2,c#4,e4] ~@2 [d2,d4] ~@2 [f4,a4]!2 ~, ~ d2@6 d2@6 ~@35", // F Dm F Em Dm C#m D F
  AK: "[[f4,a4]@3 [f4,a4]!2 ~ [f4,a4]@3 [f4,a4]!2 [d2,f4,a4]@3 d5@3 [d2,f4,a4]@3 d5@3 [d2,f4,a4]@3 d5@3 [c2,g4,c5]@3 [c2,f4,b4]@3 c2@3 ~@5 c2 ~ c2 c2@3 c2 ~ c2 c2@3 ~@6 c1@3 d1@3 e1@3 f1@3 g1@2 a1@3 a#1@3 [c2,e4,g4]@3 [c2,e4,g4]@3 [c2,e4,g4]@3 [c4,g4]!2 ~ [c4,g4]@3 [c4,g4]!2 ~ [c1,c4,g4]@3 [f1,f4,a4]@3 [g1,g4,a#4]@2 c1@3 d1@3 [e1,g4,a#4]@3 [f1,f4,a4]@3 g1@3 a1@3 [a#1,f4,a4]@3 [c2,e4,g4]@3 c5!2 ~ c5@3 c4!2 [c2,c4]@3 [c2,c4] ~, d2@6 d2@5 ~@24 [e4,c5]@47 ~@11 c1@6 ~@8 [c4,g4]@6 ~@6 f4@6 ~@19]/3", // F Dm C5 F C C5 F Gm …
  AL: "[c2,c4] [c2,c4]@3 [c2,c4] ~ [c2,c4] [f2,c4,f4] ~@2 [f2,c4,g4] ~@2 [f2,c4,a4] ~@2 [c2,c4]!2 ~ [c2,c4]@3 [c2,c4]!2 ~ [f2,c4,f4]@2 [f2,a4] ~ [f2,a4] [c2,c4,g4] ~@2 [c2,c4,e4] ~@2 [c2,c4]@3 [c2,c4] ~ [c2,c4] [c2,c4]@3 [c2,c4]!2 ~", // C F5 Fsus2 F C F5 F C5 …
  AM: "[[c2,c4]@3 [c2,c4]!2 ~ [f2,c4,f4] ~@2 [f2,c4,g4] ~ [f2,c4,a4] ~@2 [f2,f4] ~ [f2,a4] [c2,e4,c5]@6 c5 ~ [a#2,a#4] [a2,a4] [g2,g4] ~ [f2,f4] ~@2 [f2,c4,a4] ~@2 [f2,c4,f4] ~@5 [c2,c5,e5]@23 f5 ~@2 e5 ~@2 f5 ~@2 e5 ~ f5 ~@2 e5 ~@2 f2@6 [f2,a5]@6 ~@3, ~@64 f2@6 f2@5 f2@6 f5@3 ~@12]/2", // C F5 Fsus2 F C A# A G …
  AN: "~@3 f5@6 ~@5 [f2,a5]@6 ~@6 [f2,f5]@6 ~@6 [f2,f5]!2 ~ [f2,f5]@2 [f2,f5]@3 [f2,f5]@2", // F
  AO: "~ [f2,f5]@3 [f2,f5]@6 f5!2 ~ f2@29 ~@6, ~@13 f5@3 ~@32", AP: "[f2,f4,f5] ~@3",
})).s("gm_trumpet").gain(0.3)

// chords · brass section · "Horn in F"
const brass_section = note(`<
  A@2 B@2 A@2 C D E F G E@2 F G E A@2 B@2 ~@5 H@2 ~@8 I J K L M N@2 O@2 P@2 Q R S T U V W X Y Z AA ~@2 AB AC AD AE AF AG
  AH AI AJ AK@2 AL AM AN
>`.pickRestart({
  A: "c4/2", B: "[g3,d4]/2", C: "[a3,f4]", D: "[c4,e4]", E: "[c4,f4]", F: "[d4,g4] [c4,f4]", G: "[c4,f4] [d4,g4]",
  H: "[c4,e4]/2", I: "~@16 g3@3 d4@3 ~ d4@3 e4@3 d4@3 c4@3 c4@3 ~ e4@3 f4@3 a4@3",
  J: "c5@3 a4@3 ~ a4@3 g4@3 g4@6 a4@3 ~ b3@3 b3@3 a4@3 g4@3 c4@3 ~ c4@3 e4@3 e4@3",
  K: "d4@3 e4@3 ~ d4@3 e4@3 d4@3 e4@3 d4@3 ~ g3@3 d4@3 d4@3 e4@3 d4@3 ~ c4@3 c4@3 e4@3",
  L: "f4@3 a4@3 ~ c5@3 a4@3 a4@3 g4@3 g4@6 ~ a4@3 b3@3 b3@3 a4@3 ~ g4@3 c4@3 c4@3",
  M: "e4@3 e4@3 ~ d4@3 e4@3 d4@3 e4@3 d4@3 ~ e4@3 d4@3 e4@3 d4@3 d4@6 ~ e4@6",
  N: "[c4@6 ~ a3@6 g3@6 g4@3 ~ d4@3 e4@3 f4@3 e4@3 d4@3 ~ c4@6 e4@6 c4@6 ~ a3@6 g3@6 ~ f#4@3 g4@3 a4@3 b4@3 d5@3 ~ c5@3 c5@6]/2",
  O: "[e4@6 ~ c4@6 a3@6 g3@6 ~ g4@3 d4@3 e4@3 f4@3 ~ e4@3 d4@3 c4@6 e4@6 ~ c4@6 a3@6 ~ g3@6 f#4@3 g4@3 a4@3 ~ b4@3 c4@3 g3@3]/2",
  P: "[b3@3 g3@3 c4@3 g3@3 b3@3 g3@3 c4@3 g3@3 b3@3 g3@3 c4@3 g3@3 b3@2 g3@3 c5@4 c4 ~ c4@4 c4 ~ c4@3 ~@8 c4@4 c4 c4@4 ~ c4 c4@3 ~@11 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4]]/2", // F
  Q: "~@5 [g3,c4,e4]!2 ~@3 [g3,c4,e4] ~@5 [a3,c4,f4]!2 ~@3 [a3,c4,f4] ~@5 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~@4 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~@3", // C F C
  R: "~@2 [g3,c4,e4]!2 ~@3 [g3,c4,e4] ~@5 [a3,c4,f4]!2 ~@4 [a3,c4,f4] ~@4 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~@5 [a3,c4,f4]!2 ~@3 [a3,c4,f4] ~@5 [g3,c4,e4]", // C F C F C
  S: "[g3,c4,e4] ~@4 [g3,c4,e4] ~@4 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~@4 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~@5 [g3,c4,e4]!2 ~@3 [g3,c4,e4] ~@5 [g3,c4,e4]!2 ~@2", // C F C
  T: "~@2 [g3,c4,e4] ~@4 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [g3,c4,e4] ~@5 [a3,c4,f4]!2 ~@3 [g3,c4,e4] ~@5 [a3,c4,f4]!2 ~@4 [a3,c4,f4] ~@4 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4]", // C F C F C F C
  U: "~@5 [a3,c4,f4]!2 ~@3 [a3,c4,f4] ~@5 [a3,c4,f4]!2 ~@3 [a3,c4,f4] ~@5 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~@4 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~@3", // F C
  V: "~@2 [a3,c4,f4]!2 ~@3 [a3,c4,f4] ~@5 [g3,c4,e4]!2 ~@4 [g3,c4,e4] ~@4 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~@5 [g3,c4,e4]!2 ~@3 [g3,c4,e4] ~@5 [a3,c4,f4]", // F C F C F
  W: "[a3,c4,f4] ~@4 [a3,c4,f4] ~@4 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~@4 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~@5 [g3,c4,e4]!2 ~@3 [g3,c4,e4] ~@5 [a3,c4,f4]!2 ~@2", // F C F
  X: "~@2 [g3,c4,e4] ~@4 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~@2 c4@6 ~@3 c4!2 c4@6 ~@3 c4 ~ c4 f4 ~@2 c4 ~@2 a3 ~@2", // C F
  Y: "c4 ~@2 f4 ~@2 c4 ~@2 f4 ~ a4 ~@2 c4@6 ~@3 c4 ~ c4 c4@6 ~@3 c4!2 ~ c4@6 ~@2 c4 ~",
  Z: "c4 c4@6 ~@3 f4 g4 ~ a4 ~@2 g4 ~@2 f4 ~@2 g4 ~@2 a4 ~ g4 ~@2 f4 ~@2 f4 ~ g4 a4 ~@2 g4 ~@2 f4 ~@2 g4 ~@2",
  AA: "a4 ~@2 g4 ~@2 f4 ~@2 f4 g4 [c4,g4]@26 ~@11", // C5
  AB: "~@7 [a3,c4,f4]@3 ~@3 [a3,c4,f4]@3 ~@3 [a3,c4,f4] ~@2 [c4,e4,g4] ~@2 [c4,f4,a4] ~ c4 ~@2 [a3,c4,f4]@3 ~@3 [a3,c4,f4]@3 ~@3 [c4,e4,g4]@3 ~@3", // F C F C
  AC: "[c4,e4,g4]@3 ~@3 [a3,c4,f4]@3 ~@2 [a3,c4,f4]@3 ~@3 [a3,c4,f4] ~@2 [c4,e4,g4] ~@2 [c4,f4,a4] ~@2 [c4,f4,a4] ~@2 g4 ~ e4 ~ c4 ~ c4@3 ~@3 [a3,c4,f4] ~ [c4,f4,a4] ~@2 [a3,c4,f4] ~", // C F C F
  AD: "~@4 [d4,f4,a4]@6 [d4,f4,a4]@6 [d4,a4]@3 ~@3 [d4,a4]@3 ~@2 [d4,a4]@3 ~@3 [c4,c5]@3 ~@3 [d4,a4] ~@2 [d4,g4,a#4] ~@2 [d4,f4,a4] ~@2", // Dm D5 C D5 Gm Dm
  AE: "~@3 [d4,f4,a4]@6 [d4,f4,a4]@5 [d4,a4]@3 ~@3 [d4,a4]@3 ~@3 [d4,a4]@3 ~@3 [g4,e5]@3 [g4,d5]@3 [c4,c5]@3 [c4,b4]@2 [c4,g4]@3 ~@2", // Dm D5 C G5 C Cmaj7 C5
  AF: "~ [d4,f4,a4]@6 [d4,f4,a4]@6 [d4,a4]@3 ~@3 [d4,a4]@3 ~@3 [d4,a4]@3 ~@2 [c4,c5]@3 ~@3 [d4,a4] ~@2 [d4,g4,a#4] ~@2 [d4,f4,a4] ~@5", // Dm D5 C D5 Gm Dm
  AG: "[d4,f4,a4]@6 [d4,f4,a4]@5 [d4,a4]@3 ~@3 [d4,a4]@3 ~@3 [d4,a4]@3 ~@3 [g4,e5]@3 [g4,d5]@3 c4@3 c4!2 ~ c4@2 g4 ~ g4 g4@2", // Dm D5 C G5
  AH: "~ g4 ~ g4 g4@3 [f4,a4]@3 [g4,a#4]@3 [c4,g4]@6 [g4,a#4]@3 [f4,a4]@3 f4@5 [f4,a4]@3 [e4,g4]@3 [e4,g4]@3 [e4,g4]@3 [c4,g4]!2 ~ [c4,g4]@3", // F Gm C5 Gm F Em C5
  AI: "[c4,g4]!2 ~ [c4,g4]@3 [f4,a4]@3 [g4,a#4]@2 [c4,g4]@6 [g4,a#4]@3 [f4,a4]@3 f4@6 [f4,a4]@3 [e4,g4]@3 c5!2 ~ c5@3 c4!2 [a3,c4,f4]@3 ~@2", // C5 F Gm C5 Gm F Em F
  AJ: "~ [a3,c4,f4]@3 ~@3 [a3,c4,f4] ~@2 [c4,e4,g4] ~@2 [c4,f4,a4] ~@2 c4 ~@2 [a3,c4,f4]@3 ~@3 [a3,c4,f4]@3 ~@2 [c4,e4,g4]@3 ~@3 [c4,e4,g4]@3 ~@3 [a3,c4,f4]@3 ~@3", // F C F C F
  AK: "[[a3,c4,f4]@3 ~@3 [a3,c4,f4] ~@2 [c4,e4,g4] ~ [c4,f4,a4] ~@2 [c4,f4,a4] ~@2 g4 ~ e4 ~ c4 ~ c4@3 ~@3 [a3,c4,f4] ~@2 [c4,f4,a4] ~@2 [a3,c4,f4] ~@5 e4@23 f4@3 ~@3 f4@3 ~@2 f4@3 ~@3 f4@3 ~@3 [a3,c4,f4]@6 ~@3]/2", // F C F
  AL: "~@3 [a3,c4,f4]@6 ~@5 [a3,c4,f4]@6 ~@6 [a3,c4,f4]@6 ~@6 [a3,c4,f4]!2 ~ [a3,c4,f4]@2 [a3,c4,f4]@3 [a3,c4,f4]@2", // F
  AM: "~ [a3,c4,f4]@3 [a3,c4,f4]@6 f4!2 ~ f4@29 ~@6", AN: "f4 ~@3",
})).s("gm_brass_section").gain(0.45)

// chords · trombone
const trombone = note(`<
  ~@35 A B C D E F@2 G@2 H@2 I J K L M N O P Q R S ~@2 T U V W X Y Z@2 AA AB@2 AC AD AE
>`.pickRestart({
  A: "~@16 g2@3 d3@3 ~ d3@3 e3@3 d3@3 c3@3 c3@3 ~ e3@3 f3@3 a3@3",
  B: "c4@3 a3@3 ~ a3@3 g3@3 g3@6 a3@3 ~ b2@3 b2@3 a3@3 g3@3 c3@3 ~ c3@3 e3@3 e3@3",
  C: "d3@3 e3@3 ~ d3@3 e3@3 d3@3 e3@3 d3@3 ~ g2@3 d3@3 d3@3 e3@3 d3@3 ~ c3@3 c3@3 e3@3",
  D: "f3@3 a3@3 ~ c4@3 a3@3 a3@3 g3@3 g3@6 ~ a3@3 b2@3 b2@3 a3@3 ~ g3@3 c3@3 c3@3",
  E: "e3@3 e3@3 ~ d3@3 e3@3 d3@3 e3@3 d3@3 ~ e3@3 d3@3 e3@3 d3@3 d3@6 ~ e3@6",
  F: "[c3@6 ~ a2@6 g2@6 g3@3 ~ d3@3 e3@3 f3@3 e3@3 d3@3 ~ c3@6 e3@6 c3@6 ~ a2@6 g2@6 ~ f#3@3 g3@3 a3@3 b3@3 d4@3 ~ c4@3 c4@6]/2",
  G: "[e3@6 ~ c3@6 a2@6 g2@6 ~ g3@3 d3@3 e3@3 f3@3 ~ e3@3 d3@3 c3@6 e3@6 ~ c3@6 a2@6 ~ g2@6 f#3@3 g3@3 a3@3 ~ b3@3 c3@3 g2@3]/2",
  H: "[b2@3 g2@3 c3@3 g2@3 b2@3 g2@3 c3@3 g2@3 b2@3 g2@3 c3@3 g2@3 b2@2 g2@3 c4@4 c3 ~ c3@4 c3 ~ c3@3 ~@8 c3@4 c3 c3@4 ~ c3 c3@3 ~@11 [c3,f3,a3] ~ [c3,f3,a3] ~@3 [c3,f3,a3]]/2", // F
  I: "~@5 [c3,e3,g3]!2 ~@3 [c3,e3,g3] ~@5 [c3,f3,a3]!2 ~@3 [c3,f3,a3] ~@5 [c3,f3,a3] ~ [c3,f3,a3] ~@3 [c3,f3,a3] ~@4 [c3,e3,g3] ~ [c3,e3,g3] ~@3 [c3,e3,g3] ~@3", // C F C
  J: "~@2 [c3,e3,g3]!2 ~@3 [c3,e3,g3] ~@5 [c3,f3,a3]!2 ~@4 [c3,f3,a3] ~@4 [c3,e3,g3] ~ [c3,e3,g3] ~@3 [c3,e3,g3] ~@5 [c3,f3,a3]!2 ~@3 [c3,f3,a3] ~@5 [c3,e3,g3]", // C F C F C
  K: "[c3,e3,g3] ~@4 [c3,e3,g3] ~@4 [c3,f3,a3] ~ [c3,f3,a3] ~@3 [c3,f3,a3] ~@4 [c3,f3,a3] ~ [c3,f3,a3] ~@3 [c3,f3,a3] ~@5 [c3,e3,g3]!2 ~@3 [c3,e3,g3] ~@5 [c3,e3,g3]!2 ~@2", // C F C
  L: "~@2 [c3,e3,g3] ~@4 [c3,f3,a3] ~ [c3,f3,a3] ~@3 [c3,e3,g3] ~@5 [c3,f3,a3]!2 ~@3 [c3,e3,g3] ~@5 [c3,f3,a3]!2 ~@4 [c3,f3,a3] ~@4 [c3,e3,g3] ~ [c3,e3,g3] ~@3 [c3,e3,g3]", // C F C F C F C
  M: "~@5 [c3,f3,a3]!2 ~@3 [c3,f3,a3] ~@5 [c3,f3,a3]!2 ~@3 [c3,f3,a3] ~@5 [c3,e3,g3] ~ [c3,e3,g3] ~@3 [c3,e3,g3] ~@4 [c3,e3,g3] ~ [c3,e3,g3] ~@3 [c3,e3,g3] ~@3", // F C
  N: "~@2 [c3,f3,a3]!2 ~@3 [c3,f3,a3] ~@5 [c3,e3,g3]!2 ~@4 [c3,e3,g3] ~@4 [c3,f3,a3] ~ [c3,f3,a3] ~@3 [c3,f3,a3] ~@5 [c3,e3,g3]!2 ~@3 [c3,e3,g3] ~@5 [c3,f3,a3]", // F C F C F
  O: "[c3,f3,a3] ~@4 [c3,f3,a3] ~@4 [c3,f3,a3] ~ [c3,f3,a3] ~@3 [c3,f3,a3] ~@4 [c3,e3,g3] ~ [c3,e3,g3] ~@3 [c3,e3,g3] ~@5 [c3,e3,g3]!2 ~@3 [c3,e3,g3] ~@5 [c3,f3,a3]!2 ~@2", // F C F
  P: "~@2 [c3,e3,g3] ~@4 [c3,f3,a3] ~ [c3,f3,a3] ~@3 [c3,f3,a3] ~@2 c4@6 ~@3 c4!2 c4@6 ~@3 c4 ~ c4!2 ~@2 a3 ~@2 f3 ~@2", // C F
  Q: "a3 ~@2 c4 ~@2 a3 ~@2 c4 ~ f4 ~@2 c4@6 ~@3 c4 ~ c4 c4@6 ~@3 c4!2 ~ c4@6 ~@2 c4 ~",
  R: "c4 c4@6 ~@3 c4!2 ~ [g3,c4]@3 [g3,c4]!2 ~ [g3,c4]@3 [g3,c4]@3 [g3,c4]@2 [g3,c4] ~ [g3,c4] [g3,c4]@3 [g3,c4]@3 [g3,c4]@3 [g3,c4] ~ [g3,c4] [g3,c4]@3 [g3,c4]@3", // C5
  S: "[g3,c4]@3 [g3,c4]!2 ~ [g3,c4]@3 [g3,c4]@2 [e3,c4]@26 ~@11", // C5 C
  T: "~@7 [f3,a3]@6 [f3,a3]@6 [f3,a3] ~@2 [f3,a3] ~@2 [f3,a3] ~@4 [f3,a3]@6 [f3,a3]@6 [c3,e3,g3] ~@2 [c3,e3,g3] ~@2", // F C
  U: "[c3,e3,g3] ~@5 [f3,a3]@5 [f3,a3]@6 [f3,a3] ~@2 [f3,a3] ~@2 [f3,a3] ~@5 [c3,e3,a#3]@3 c3!2 ~ c3@3 [c3,e3,a#3]@3 [f3,a3] ~ [f3,a3] ~@2 [f3,a3] ~", // C F C7 F
  V: "~@4 [d3,f3,a3]@6 [d3,f3,a3]@6 [d3,a3]@3 ~@3 [d3,a3]@3 ~@2 [d3,a3]@3 ~@3 [c3,c4]@3 ~@3 [d3,a3] ~@2 [d3,g3,a#3] ~@2 [d3,f3,a3] ~@2", // Dm D5 C D5 Gm Dm
  W: "~@3 [d3,f3,a3]@6 [d3,f3,a3]@5 [d3,a3]@3 ~@3 [d3,a3]@3 ~@3 [d3,a3]@3 ~@3 [g3,e4]@3 [g3,d4]@3 [c3,c4]@3 [c3,b3]@2 [c3,g3]@3 ~@2", // Dm D5 C G5 C Cmaj7 C5
  X: "~ [d3,f3,a3]@6 [d3,f3,a3]@6 [d3,a3]@3 ~@3 [d3,a3]@3 ~@3 [d3,a3]@3 ~@2 [c3,c4]@3 ~@3 [d3,a3] ~@2 [d3,g3,a#3] ~@2 [d3,f3,a3] ~@5", // Dm D5 C D5 Gm Dm
  Y: "[d3,f3,a3]@6 [d3,f3,a3]@5 [d3,a3]@3 ~@3 [d3,a3]@3 ~@3 [d3,a3]@3 ~@3 [g3,e4]@3 [g3,d4]@3 [c3,c4]@3 ~@5 c4 ~ c4 c4@2", // Dm D5 C G5 C
  Z: "[~ c4 ~ c4 c4@3 ~@6 c3@3 d3@3 e3@3 f3@3 g3@2 a3@3 a#3@3 c4@3 [c3,c4]@3 [c3,c4]@3 ~@3 [c3,g3]@6 [c3,g3]@3 [f3,a3]@3 [g3,a#3]@2 c3@3 d3@3 e3@3 f3@3 g3@3 a3@3 a#3@3 c4@3 ~@8 [f3,a3]@5]/2", // C C5 F Gm F
  AA: "~ [f3,a3]@6 [f3,a3] ~@2 [f3,a3] ~@2 [f3,a3] ~@5 [f3,a3]@6 [f3,a3]@5 [c3,e3,g3] ~@2 [c3,e3,g3] ~@2 [c3,e3,g3] ~@5 [f3,a3]@6", // F C F
  AB: "[[f3,a3]@6 [f3,a3] ~@2 [f3,a3] ~ [f3,a3] ~@5 [c3,e3,a#3]@3 c3 ~ c3 c3@3 [c3,e3,a#3]@3 [f3,a3] ~@2 [f3,a3] ~@2 [f3,a3] ~@5 c3@11 c3@12 f3@3 ~@3 f3@3 ~@2 f3@3 ~@3 f3@3 ~@3 [c3,f3,a3]@6 ~@3, ~@41 e3@23 ~@32]/2", // F C7 F
  AC: "~@3 [c3,f3,a3]@6 ~@5 [c3,f3,a3]@6 ~@6 [c3,f3,a3]@6 ~@6 [c3,f3,a3]!2 ~ [c3,f3,a3]@2 [c3,f3,a3]@3 [c3,f3,a3]@2", // F
  AD: "~ [c3,f3,a3]@3 [c3,f3,a3]@9 f3@29 ~@6", AE: "f3 ~@3",
})).s("gm_trombone").gain(0.3)

// chords · trombone · soft notes
const trombone_soft = note("<~@16 A@2 B@2 C D E F ~ G@2 ~@30 H I J ~@13>".pickRestart({
  A: "[c3,g3]", B: "[g2,d3]", C: "[c3,g3] [b2,g3]", D: "[e3,a3] [e3,c4]", E: "a3@2 c4 a3, f3", F: "[e3,g3]",
  G: "[c3,e3]/2", H: "~@10 [f3,a3]@6 [f3,a3]@6 [f3,a3] ~@2 [f3,a3] ~ [f3,a3] ~@5 [f3,a3]@6 [f3,a3]@6 [c3,e3,g3] ~@2",
  I: "[c3,e3,g3] ~@2 [c3,e3,g3] ~@5 [f3,a3]@5 [f3,a3]@6 [f3,a3] ~@2 [f3,a3] ~@2 [f3,a3] ~@5 [c3,e3,a#3]@3 c3!2 ~ c3@3 [c3,e3,a#3]@2 [f3,a3] ~@2 [f3,a3] ~", // C F C7 F
  J: "~ [f3,a3] ~@46", // F
})).s("gm_trombone").gain(0.15)

// bass · tuba
const bass = note(`<
// … 164 more lines