Strudelify

Big Space Battle

Sean Roman

KeyG majorTempo114 bpm
0:00/0:00
// Big Space Battle — Sean Roman
// 114 bpm, 4/4, key G 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, 12/8 at bar 29, 9/8 at bar 37, 4/4 at bar 56) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 1 "Flute" named as a pipe, played on flute (its marimba patch is not one); ch 2 "Flute" named as a pipe, played on flute (its tuba patch is not one); ch 3 "Flute" named as a pipe, played on flute (its piano patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5956775; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(114/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 · flute
const flute = note("<A@7 ~ B C D E@3 F@2 G@3 H I J@3 K L@3 M@8 N@8 O P@8 Q@2 ~@18>".pickRestart({
  A: "[[g2,g5]@7 [g2,g5]@48 [a2,a5]@7 [f#2,f#5]@48 ~ [b2,b5]@6 [b2,b5]@48 ~ [a2,b5]@4 [c3,c6]@5 [c3,c6]@46 e2 ~@2]/7", // G A F# B Asus2 C
  B: "~@11 e2 ~@2 g2 ~@17", C: "~@21 d#2 ~@2 d#2 ~@2 f#2 ~@2 e2 ~", D: "~ g2 ~@30",
  E: "[~@6 e2 ~@5 e5@2 f#5@3 g5@5 ~ a5@5 ~ b4@5 a5@5 ~ g5@3 f#5@3 e5@3 ~@2 e2 ~@2 g2 ~@2 e5@3 f#5@3 g5@5 ~ a5@5 b4@5 ~ a5@5 ~ g5@3 f#5@2 e5@3 ~@2]/3",
  F: "[~ e2 ~@2 e2 ~@2 d#5@3 e5@2 f#5@5 ~ g5@5 ~ a4@5 ~ b5@5 a5@3 g5@3 f#5@3 ~@3 d#2 ~@2 f#2 ~ d#5@3 e5@3 f#5@5 ~, ~@38 e2 ~@13 e2 ~@2 g2 ~@8]/2",
  G: "[g5@5 a4@5 ~ g5@5 ~ f#5@3 e5@3 ~@5 e2 ~@2 g2 ~@8 e2 ~@2 g2 ~@7 e2 ~@2 g2 ~@5 g2 ~ a2 ~@2 f#2 ~@8 e2@2 ~@18 e2@2, ~@23 d#5@46 ~@27]/3",
  H: "~ g2@2 ~ e2@2 ~@17 e2@2 ~@7", I: "~@11 e2@2 ~ e2@2 ~ e2@2 ~@13",
  J: "[~@5 b5@4 ~@2 e2@3 f#2@2 g2@6 a2@6 b1@6 a2@5 g2@3 f#2@3 e2@6 a5@3 c6@37 ~@5, ~@9 b5@37 ~@50]/3",
  K: "b5@4 ~@2 e2@2 ~ f#2@3 g2@5 a2@6 b1@6 b2@3, ~ b5 b5@6", L: "[~@2 a2@3 g2@3 f#2@6 a5@4 c6@78]/3",
  M: "[~@11 d2@48 d2@48 d5@21, ~@22 d6@91 ~@5 d6@91 ~@47]/8",
  N: "[~@6 d5@34 ~@2 d5@11 ~ c5@23 ~ d5@23 ~ c5@11 ~ a4@34 ~@2 d5@23 ~ a4@11 ~ d5@34 ~@2 f5@11 ~ g5@22]/8",
  O: "~ [d2,a5]@15", P: "[~@3 [d#2,c6]@18 [g2,d6]@18 [d#2,c6]@18 [d2,a5]@18 [f2,c6]@18 [c2,g5]@18 [f2,c6]@17]/8",
  Q: "[~ [b1,b5]@3 [d2,d6]@3 [g2,g6]@12 ~@13]/2", // B D G
})).s("gm_flute").gain(0.3)

// other · flute
const flute_2 = note("<A@7 ~@4 B@3 C@2 D@3 ~@2 E@3 F G@3 H@8 I@8 J K@8 L@2 ~@18>".pickRestart({
  A: "[e5@7 e5@46 ~@2 a5@7 f#5@46 ~@3 g5@6 g5@46 ~@3 f#5@4 g5@4 ~ g5@44 ~@5]/7",
  B: "[~@12 e5@2 f#5@3 g5@5 ~ a5@5 ~ b4@5 a5@5 ~ g5@3 f#5@3 e5@3 ~@8 e5@3 f#5@3 g5@5 ~ a5@5 b4@5 ~ a5@5 ~ g5@3 f#5@2 e5@3 ~@2]/3",
  C: "[~@7 d#5@3 e5@2 f#5@5 ~ g5@5 ~ a4@5 ~ b5@5 a5@3 g5@3 f#5@3 ~@8 d#5@3 e5@3 f#5@5 ~]/2",
  D: "[g5@5 a4@5 ~ g5@5 ~ f#5@3 e5@3 d#5@46 ~@27]/3", E: "[~@5 g5@4 g5@37 ~@5 f#5@3 d#5@37 ~@5]/3", F: "g5!2 g5@6",
  G: "[~@7 f#5@2 d#5@39]/3", H: "[~@22 d5@91 ~@5 d5@91 ~@5 d5@42]/8",
  I: "[~@6 a#4@11 ~ a4@23 ~ b4@34 ~@2 a#4@23 ~ a4@11 ~ f4@23 ~ a4@11 ~ a4@23 ~ f4@11 ~ a#4@34 ~@2 d5@11 ~ d#5@22]/8",
  J: "~ a5@15", K: "[~@3 c6@17 ~ d6@17 ~ c6@17 ~ a5@17 ~ c6@17 ~ g5@17 ~ c6@17]/8", L: "[~@2 b5@6 d6@6 g6@23 ~@27]/2",
})).s("gm_flute").gain(0.3)

// other · clarinet · "B♭ Clarinet"
const clarinet = note("<A@7 ~@4 B@3 C@2 D@3 ~@2 E@3 F@5 ~@2 G ~@2 H@4 I@6 J@3 K L@5 M@2 ~@18>".pickRestart({
  A: "[b4@7 b4@48 b4@7 b4@48 ~ e5@6 e5@48 ~ f#5@4 d#5@5 d#5@46 ~@3]/7",
  B: "[~@12 e4@2 f#4@3 g4@6 a4@6 b3@5 a4@6 g4@3 f#4@3 e4@3 ~@8 e4@3 f#4@3 g4@6 a4@5 b3@6 a4@6 g4@3 f#4@2 e4@3 ~@2]/3",
  C: "[~@7 d#4@3 e4@2 f#4@6 g4@6 a3@6 b4@5 a4@3 g4@3 f#4@3 ~@8 d#4@3 e4@3 f#4@6]/2",
  D: "[g4@5 a3@6 g4@6 f#4@3 e4@3 d#4@48 ~@25]/3", E: "[~@5 b5@4 b5@39 ~@3 a5@3 c6@39 ~@3]/3",
  F: "[b5@4 b5@4 b5@35 ~@3 a5@4 c6@100 ~@10]/5", G: "~@5 a4@6 ~@5",
  H: "[~@5 a4@6 f5@18 d5@6 g5@2 f5@2 e5@2 f5@6 d5@6 f5@2 e5@2 d5@2 e5@5]/4",
  I: "[~ c5@6 d5@12 c5@6 a4@12 a4@6 f5@12 d5@6 d5@2 e5@2 f5@2 g5@6 e5@6 a5@6 g5@11]/6",
  J: "[~ a5@12 a5@6 c6@9 a#5@3 a5@3 g5@3 g5@2 a5@2 a#5@2 a#5@5]/3", K: "~ g5@6 c6@9",
  L: "[a#5@3 a5@3 g5@3 f#5@3 a5@3 d6@6 d5@6 f5@9 d#5@3 d5@3 c5@3 c5@2 d5@2 d#5@2 d#5@6 c5@6 f5@9 d#5@3 d5@3 c5@2]/5",
  M: "[~ b4@3 d5@3 g5@12 ~@13]/2",
})).s("gm_clarinet").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note("<A@7 ~@11 B C D E F G H I J K L ~@15 M N@8 O@2 ~@18>".pickRestart({
  A: "[g4@7 g4@48 a4@7 f#4@48 ~ b4@6 b4@48 ~ f#4@4 c5@5 c5@46 ~@3]/7",
  B: "~@10 b3 ~@2 c4 ~@2 b3 a3 g3 ~@2 b3 ~@2 c4 ~@2 b3 a3 ~ g3 ~",
  C: "~ b3 ~@2 c4 ~ b3 ~ a3 g3 ~@2 b3 ~@2 c4 ~@2 b3 a3 ~ g3 ~ b3 ~@2 c4 ~@2 b3 ~ a3",
  D: "g3 ~@2 b3 ~@2 c4 ~@2 b3 a3 g3 ~@2 b3 ~@2 c4 ~@2 b3 a3 ~ g3 ~@2 b3 ~@2 c4 ~ b3",
  E: "~ a3 g3 ~@2 b3 ~@2 a3 ~@2 b3 a3 ~ g3 ~ b3 ~@2 a3 ~@2 b3 ~ a3 g3 ~@2 b3 ~@2 a3",
  F: "~@2 b3 a3 g3 ~@2 b3 ~@2 a3 ~@2 b3 a3 ~ g3 ~@2 d#4 ~@2 f4 ~ d#4 ~ d4 c4 ~@2 d#4 ~",
  G: "~ f4 ~@2 d#4 d4 ~ c4 ~ d#4 ~@2 f4 ~@2 d#4 ~ d4 c4 ~@2 d#4 ~@2 f4 ~@2 d#4 d4 c4 ~@2",
  H: "b3 ~@2 a3 ~@2 b3 a3 ~ g3 ~@2 b3 ~@2 a3 ~ b3 ~ a3 g3 ~@2 b3 ~@2 a3 ~@2 b3 a3 ~",
  I: "g3 ~ b3 ~@2 a3 ~@2 b3 ~ a3 g3 ~@2 d#4 ~@2 f4 ~@2 d#4 d4 c4 ~@2 d#4 ~@2 f4 ~@2 d#4",
  J: "d4 ~ c4 ~@2 d#4 ~@2 f4 ~ d#4 ~ d4 c4 ~@2 d#4 ~@2 f4 ~@2 d#4 d4 ~ c4 ~ d#4 ~@2 f4 ~",
  K: "~ d#4 ~ d4 c4 ~@2 d#4@2 ~ f4@2 ~@3 d4@2 c4@2 ~ d#4@2 ~ f4@2 ~@2 d#4@2 ~ c4@2, ~@14 d#4@2 ~@13 d4@2 ~",
  L: "~@2 d#4@3 ~@2 f4@3 ~@2 d#4@3 d4@2 c4@3 ~@12", M: "~ a4@15",
  N: "[~@3 c5@18 d5@18 c5@18 a4@18 c5@18 g4@18 c5@17]/8", O: "[~ b4@3 d5@3 g5@12 ~@13]/2",
})).s("gm_alto_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<A@7 ~@11 B C D E F G H I J K L ~@44>".pickRestart({
  A: "[e4@7 e4@48 a4@7 f#4@48 ~ g4@6 g4@48 ~ f#4@4 g4@5 g4@46 ~@3]/7",
  B: "~@10 e3 ~@2 f#3 ~@2 e3 f#3 g3 ~@2 e3 ~@2 f#3 ~@2 e3 f#3 ~ g3 ~",
  C: "~ e3 ~@2 f#3 ~ e3 ~ f#3 g3 ~@2 e3 ~@2 f#3 ~@2 e3 f#3 ~ g3 ~ e3 ~@2 f#3 ~@2 e3 ~ f#3",
  D: "g3 ~@2 e3 ~@2 f#3 ~@2 e3 f#3 g3 ~@2 e3 ~@2 f#3 ~@2 e3 f#3 ~ g3 ~@2 e3 ~@2 f#3 ~ e3",
  E: "~ f#3 g3 ~@2 b3 ~@2 e4 ~@2 b3 a3 ~ g3 ~ b3 ~@2 e4 ~@2 b3 ~ a3 g3 ~@2 b3 ~@2 e4",
  F: "~@2 b3 a3 g3 ~@2 b3 ~@2 e4 ~@2 b3 a3 ~ g3 ~@2 d#3 ~@2 f3 ~ d#3 ~ d3 c3 ~@2 d#3 ~",
  G: "~ f3 ~@2 d#3 d3 ~ c3 ~ d#3 ~@2 f3 ~@2 d#3 ~ d3 c3 ~@2 d#3 ~@2 f3 ~@2 d#3 d3 c3 ~@2",
  H: "b3 ~@2 e4 ~@2 b3 a3 ~ g3 ~@2 b3 ~@2 e4 ~ b3 ~ a3 g3 ~@2 b3 ~@2 e4 ~@2 b3 a3 ~",
  I: "g3 ~ b3 ~@2 e4 ~@2 b3 ~ a3 g3 ~@2 d#3 ~@2 f3 ~@2 d#3 d3 c3 ~@2 d#3 ~@2 f3 ~@2 d#3",
  J: "d3 ~ c3 ~@2 d#3 ~@2 f3 ~ d#3 ~ d3 c3 ~@2 d#3 ~@2 f3 ~@2 d#3 d3 ~ c3 ~ d#3 ~@2 f3 ~",
  K: "~ d#3 ~ d3 c3 ~@2 d#3@2 ~ f3@2 ~@3 d3@2 c3@2 ~ d#3@2 ~ f3@2 ~@2 d#3@2 ~ c3@2, ~@14 d#3@2 ~@13 d3@2 ~",
  L: "~@2 d#3@3 ~@2 f3@3 ~@2 d#3@3 d3@3 ~@14",
})).s("gm_tenor_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone" · soft notes
const tenor_sax_soft = note("<~@28 A B@6 C@3 D@3 E@3 F G@8 H@2 ~@18>".pickRestart({
  A: "~@17 c3@3 ~@2 d3@10", B: "[~ d3@6 d3@6 d3@6 d3@6 d3@6 d3@6 e3@6 d3@5]/3",
  C: "[~ d3@6 d3@6 d3@6 d3@6 d3@6 d3@6 d3@6 e3@5]/3", D: "[~ e3@6 f3@6 f3@6 e3@6 f3@6 f3@6 e3@6 d3@5]/3",
  E: "[~ d3@6 d3@6 g3@6 g3@6 g3@6 f3@6 d#3@6 d#3@5]/3", F: "~ f4@15",
  G: "[~@3 g4@18 a#3@18 g4@18 f#4@18 g#4@18 d#4@18 g#4@17]/8", H: "[~ b3@3 d4@3 g4@12 ~@13]/2",
})).s("gm_tenor_sax").gain(0.2)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note("<A@7 B C D E F G H I J K L M N O P Q R S T U V W@8 X@8 Y@8 Z@3 ~@18>".pickRestart({
  A: "[g2@7 g2@48 a2@7 f#2@48 ~ b2@6 b2@48 ~ a2@4 c3@5 c3@46 g2 ~@2]/7",
  B: "a2 ~@2 g2 f#2 ~ e2 ~ g2 ~@2 a2 ~@2 g2 ~ f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 e2 ~@2 g2",
  C: "~@2 a2 ~@2 g2 f#2 ~ e2 ~@2 g2 ~@2 a2 ~ g2 ~ f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 ~ e2",
  D: "~ g2 ~@2 a2 ~@2 g2 ~ f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2",
  E: "~ e2 ~@2 g2 ~@2 a2 ~ g2 ~ f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 ~ e2 ~ g2 ~@2 a2 ~@2",
  F: "g2 ~ f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 ~ e2 ~@2 g2 ~@2",
  G: "a2 ~ g2 ~ f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 ~ e2 ~ g2 ~@2 a2 ~@2 g2 ~ f#2 e2 ~@2 g2",
  H: "~@2 a2 ~@2 g2 f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 ~ e2 ~@2 g2 ~@2 a2 ~ g2 ~ f#2 e2 ~",
  I: "~ g2 ~@2 a2 ~@2 g2 f#2 ~ e2 ~ g2 ~@2 a2 ~@2 g2 ~ f#2 e2 ~@2 f#2 ~@2 g2 ~@2 f#2 e2",
  J: "d#2 ~@2 f#2 ~@2 g2 ~@2 f#2 e2 ~ d#2 ~@2 g2 ~@2 a2 ~ g2 ~ f#2 e2 ~@2 g2 ~@2 a2 ~@2",
  K: "g2 f#2 ~ e2 ~ f#2 ~@2 g2 ~@2 f#2 ~ e2 d#2 ~@2 f#2 ~@2 g2 ~@2 f#2 e2 d#2 ~@2 g2 ~@2 a2",
  L: "~@2 g2 f#2 ~ e2 ~@2 g2 ~@2 a2 ~ g2 ~ f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 ~ e2 ~ g2 ~",
  M: "~ a2 ~@2 g2 ~ f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 ~ e2 ~",
  N: "~ g2 ~@2 a2 ~ g2 ~ f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 ~ e2 ~ g2 ~@2 a2 ~@2 g2 ~ f#2",
  O: "e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 ~ e2 ~@2 g2 ~@2 a2 ~ g2",
  P: "~ f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 ~ e2 ~ g2 ~@2 a2 ~@2 g2 ~ f#2 e2 ~@2 g2 ~@2 a2",
  Q: "~@2 g2 f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 ~ e2 ~@2 d#2 ~@2 f2 ~ d#2 ~ d2 c2 ~@2 d#2 ~",
  R: "~ f2 ~@2 d#2 d2 ~ c2 ~ d#2 ~@2 f2 ~@2 d#2 ~ d2 c2 ~@2 d#2 ~@2 f2 ~@2 d#2 d2 c2 ~@2",
  S: "g2 ~@2 a2 ~@2 g2 f#2 ~ e2 ~@2 g2 ~@2 a2 ~ g2 ~ f#2 e2 ~@2 g2 ~@2 a2 ~@2 g2 f#2 ~",
  T: "e2 ~ g2 ~@2 a2 ~@2 g2 ~ f#2 e2 ~@2 d#2 ~@2 f2 ~@2 d#2 d2 c2 ~@2 d#2 ~@2 f2 ~@2 d#2",
  U: "d2 ~ c2 ~@2 d#2 ~@2 f2 ~ d#2 ~ d2 c2 ~@2 d#2 ~@2 f2 ~@2 d#2 d2 ~ c2 ~ d#2 ~@2 f2 ~",
  V: "~ d#2 ~ d2 c2 ~@2 d#2@2 ~ f2@2 ~@3 d2@2 c2@2 ~ d#2@2 ~ f2@2 ~@2 d#2@2 ~ c2@2, ~@14 d#2@2 ~@13 d2@2 ~",
  W: "[~@2 d#2@3 ~@2 f2@3 ~@2 d#2@3 d2@2 c2@3 ~@2 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 e3@4 g3@4 a#3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 e3@4 g3@4 a#3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 d3@4 f3@4 a3@4 d3@4 f3@2]/8",
  X: "[~ a3@2 d3@2 g3@2 a#3@2 d3@2 f3@2 a3@2 d3@2 f3@2 a3@2 d3@2 f3@2 a3@2 e3@2 a3@2 c4@2 e3@2 a3@2 c4@2 f3@2 a#3@2 d4@2 f3@2 a#3@2 d4@2 e3@2 a3@2 c4@2 f3@2 a3@2 c4@2 f3@2 a3@2 c4@2 e3@2 a3@2 c#4@2 d3@2 f3@2 a3@2 d3@2 f3@2 a3@2 d3@2 f3@2 a3@2 g3@2 a#3@2 d4@2 g3@2 a#3@2 d4@2 g3@2 a#3@2 d4@2 f3@2 a3@2 d4@2 d#2@2 g2@2 a#2@2 d#3@2 g3@2 a#3]/8",
  Y: "[~ d4@2 a3@2 f3@2 d4@2 a3@2 f3@2 d3@2 a2@2 f2@2 c3@2 d#3@2 g3@2 c3@2 d#3@2 g3@2 c3@2 d#3@2 g3@2 g2@2 a#2@2 d3@2 g2@2 a#2@2 d3@2 g2@2 a#2@2 d3@2 c3@2 d#3@2 g3@2 c3@2 d#3@2 g3@2 c3@2 d#3@2 g3@2 a2@2 c3@2 f#3@2 a2@2 c3@2 f#3@2 a2@2 c3@2 f#3@2 g#2@2 c3@2 f3@2 g#2@2 c3@2 f3@2 g#2@2 c3@2 f3@2 g2@2 c3@2 d#3@2 g2@2 c3@2 d#3@2 g2@2 c3@2 d#3@2 g#2]/8",
  Z: "[~ c3@2 f3@2 g#2@2 c3@2 f3@2 g#2@2 c3@2 f3@2 b2@3 d3@3 g3@12 ~@13]/3",
})).s("gm_baritone_sax").gain(0.25)

// other · bassoon
const bassoon = note("<A@7 ~@4 B@3 C@2 D@3 ~@2 E@3 F@5 ~@15 G H@8 I@2 ~@18>".pickRestart({
  A: "[g2@7 g2@48 a2@7 f#2@48 ~ b2@6 b2@48 ~ a2@4 c3@5 c3@46 ~@3]/7",
  B: "[~@12 e3@2 f#3@3 g3@6 a3@6 b2@5 a3@6 g3@3 f#3@3 e3@3 ~@8 e3@3 f#3@3 g3@6 a3@5 b2@6 a3@6 g3@3 f#3@2 e3@3 ~@2]/3",
  C: "[~@7 d#3@3 e3@2 f#3@6 g3@6 a2@6 b3@5 a3@3 g3@3 f#3@3 ~@8 d#3@3 e3@3 f#3@6]/2",
  D: "[g3@5 a2@6 g3@6 f#3@3 e3@3 d#3@48 ~@25]/3", E: "[~@5 e3@4 e3@39 ~@3 f#3@3 d#3@39 ~@3]/3",
  F: "[e3@4 e3@4 e3@35 ~@3 f#3@4 d#3@100 ~@10]/5", G: "~ f3@15",
  H: "[~@3 g3@18 a#3@18 g3@18 f#3@18 g#3@18 d#3@18 g#3@17]/8", I: "[~ b2@3 d3@3 g3@12 ~@13]/2",
})).s("gm_bassoon").gain(0.3)

// other · bassoon · soft notes
const bassoon_soft = note("<~@6 A@6 ~@61>".pickRestart({
  A: "[~@29 e2@43 ~@3 e2@43 ~@2 d#2@3 e2@43 ~@26]/6",
})).s("gm_bassoon").gain(0.2)

// other · trumpet · "B♭ Trumpet"
const trumpet = note("<A@7 ~@11 B C D ~ E@2 ~ F@4 ~@15 G@3 H I@5 J@2 ~@18>".pickRestart({
  A: "[b4@7 b4@48 b4@7 b4@48 ~ e5@6 e5@48 ~ f#5@4 d#5@5 d#5@46 ~@3]/7", B: "~@4 b5 ~@3", C: "~@12 c6@3 a5@3 ~@11 b5@3",
  D: "~@23 b5@3 c6@3 a5@3", E: "[~@24 c5@3 d5@3 d#5@6 f5@5 g4@6 f5@6 d#5@3 d5@3 c5@5]/2",
  F: "[~@20 c5@2 d5@3 d#5@6 f5@6 g4@5 f5@6 d#5@3 d5@3 c5@54 ~@20]/4",
  G: "[~@13 a4@6 c5@9 a#4@3 a4@3 g4@3 g4@2 a4@2 a#4@2 a#4@5]/3", H: "~ g4@6 c5@9",
  I: "[a#4@3 a4@3 g4@3 f#4@3 a4@3 d5@6 d5@6 f5@9 d#5@3 d5@3 c5@3 c5@2 d5@2 d#5@2 d#5@6 c5@6 f5@9 d#5@3 d5@3 c5@2]/5",
  J: "[~ b4@3 d5@3 g5@12 ~@13]/2",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note("<A@7 ~@11 B C D ~ E@2 ~ F@4 ~@15 G@3 H I@5 J@2 ~@18>".pickRestart({
  A: "[g4@7 g4@48 a4@7 f#4@48 ~ b4@6 b4@48 ~ b4@4 c5@5 c5@46 ~@3]/7", B: "~@4 e5 ~@3", C: "~@12 a4@3 f#4@3 ~@11 e5@3",
  D: "~@23 g4@3 a4@3 f#4@3", E: "[~@24 c4@3 d4@3 d#4@6 f4@5 g3@6 f4@6 d#4@3 d4@3 c4@5]/2",
  F: "[~@20 c4@2 d4@3 d#4@6 f4@6 g3@5 f4@6 d#4@3 d4@3 c4@54 ~@20]/4",
  G: "[~@13 a3@6 c4@9 a#3@3 a3@3 g3@3 g3@2 a3@2 a#3@2 a#3@5]/3", H: "~ g3@6 c4@9",
  I: "[a#3@3 a3@3 g3@3 f#3@3 a3@3 d4@6 d4@6 f4@9 d#4@3 d4@3 c4@3 c4@2 d4@2 d#4@2 d#4@6 c4@6 f4@9 d#4@3 d4@3 c4@2]/5",
  J: "[~ b3@3 d4@3 g4@12 ~@13]/2",
})).s("gm_trumpet").gain(0.4)

// other · trombone
const trombone = note("<A@7 ~@11 B C D E F ~ G@2 ~@18 H@3 I J@5 K@2 ~@18>".pickRestart({
  A: "[b3@7 b3@48 b3@7 b3@48 ~ e4@6 e4@48 ~ f#4@4 d#4@5 d#4@46 ~@3]/7", B: "~@4 g2 ~@3", C: "~@12 c3@3 a2@3 ~@11 g2@3",
  D: "~@23 b2@3 c3@3 a2@3", E: "~@11 e3@3 f#3@2 g3@6 a3@6 b2@4", F: "~@2 a3@5 g3@3 f#3@3 e3@6 ~@13",
  G: "[~@6 e3@3 f#3@3 g3@5 a3@6 b2@6 b3@5 a3@3 g3@3 f#3@6 ~@18]/2",
  H: "[~@13 a3@6 c4@9 a#3@3 a3@3 g3@3 g3@2 a3@2 a#3@2 a#3@5]/3", I: "~ g3@6 c4@9",
  J: "[a#3@3 a3@3 g3@3 f#3@3 a3@3 d4@6 d4@6 f4@9 d#4@3 d4@3 c4@3 c4@2 d4@2 d#4@2 d#4@6 c4@6 f4@9 d#4@3 d4@3 c4@2]/5",
  K: "[~ b3@3 d4@3 g4@12 ~@13]/2",
})).s("gm_trombone").gain(0.4)

// other · trombone · "Bass Trombone"
const trombone_2 = note("<A@7 ~@11 B C D E F ~ G@2 ~@18 H I@8 J@2 ~ K L M@4 N@7 O@4>".pickRestart({
  A: "[g2@7 g2@48 a2@7 f#2@48 ~ b2@6 b2@48 ~ a2@4 c3@5 c3@46 ~@3]/7", B: "~@5 e2 ~@9 e2",
  C: "~ g2@2 ~ e2@2 ~@17 e2@2 ~@7", D: "~@11 e2@2 ~ e2@2 ~ e2@2 ~@13", E: "~@11 e3@3 f#3@2 g3@6 a3@6 b2@4",
  F: "~@2 a3@5 g3@3 f#3@3 e3@6 ~@13", G: "[~@6 e3@3 f#3@3 g3@5 a3@6 b2@6 b3@5 a3@3 g3@3 f#3@6 ~@18]/2", H: "~ d2@15",
  I: "[~@3 d#2@18 g2@18 d#2@18 d2@18 f2@18 c2@18 f2@17]/8", J: "[~ b2@3 d3@3 g3@12 ~@13]/2", K: "~@9 g3@7",
  L: "~ c4@30 ~", M: "[d4@20 d#4@5 f4@5 d#4@30 ~ g3@22 g3@8 c4@23 d4@7 d#4@7]/4",
  N: "[~ c4@8 d#4@5 c4@5 g4@5 f4@45 g3@15 ~ c4@22 d4@8 d#4@11 c4@4 g4@11 ~ d#4@3 c5@30 ~ c4@15 d#4@5 d4@5 c4@5 g4@18]/7",
  O: "[~@2 d#4@5 c4@5 ~ g3@15 d#4@15 c4@61 ~@24]/4",
})).s("gm_trombone").gain(0.3)

// chords · piano · "Grand Piano"
const piano = note("<A@7 ~ B C D E F ~ G H I J K L M N@3 O@4 P@8 Q@8 R@6 S T@2 U@2 ~@18>".pickRestart({
  A: "[[g3,b3,e4,g4,b4]@7 [g3,b3,e4,g4,b4]@46 ~@2 [a3,b3,a4,b4]@7 [f#3,b3,f#4,b4]@46 ~@3 [b3,e4,g4,b4,e5]@6 [b3,e4,g4,b4,e5]@46 ~@3 [a3,b3,f#4,a4,b4,f#5]@4 [c4,d#4,g4,c5,d#5]@4 ~ [c4,d#4,g4,c5,d#5]@44 ~@2 [e1,e2] ~@2]/7", // Em Asus2 B5 Em B7 Cm E
  B: "~@11 [e1,e2] ~@2 [g1,g2] ~@17", C: "~@21 [d#1,d#2] ~@2 [d#1,d#2] ~@2 [f#1,f#2] ~@2 [e1,e2] ~",
  D: "~ [g1,g2] ~@30", E: "~@6 [e1,e2] ~@25", F: "~@19 [e1,e2] ~@2 [g1,g2] ~@9", G: "~ [e1,e2] ~@2 [e1,e2] ~@27",
  H: "~@6 [e1,e2] ~@8 [d#1,d#2] ~@2 [f#1,f#2] ~ [e1,e2] ~@2 [g1,g2] ~@8", I: "~@28 [e1,e2] ~@2 [g1,g2]",
  J: "~@8 [e1,e2] ~@2 [g1,g2] ~@7 [e1,e2] ~@2 [g1,g2] ~@5 [g1,g2] ~ [a1,a2] ~", K: "~ [f#1,f#2] ~@8 [e1,e2] ~@21",
  L: "~@12 [e1,e2] ~@2 [f#1,f#2] ~@7 [e1,e2] ~@8", M: "~@20 [e1,e2] ~@5 [f#1,f#2] ~@2 [d#1,d#2] ~@2",
  N: "[~@5 [e2,b3,g4,b4,e5]@3 ~@3 e2@3 g2@2 e2@3 f#2@3 e2@3 g2@3 e2@3 f#2@3 e2@2 g2@3 e2@3 f#2@3 e2@3 g2@3 [c3,a3,f#4,a4,f#5]@3 d3@2 c3@3 g3@3 c3@3 d3@3 c3@3 g3@2 c3@3 d3@3 c3@3 g3@3 c3@3 d3@3 c3@2 g3@3, ~@8 f#2@3 ~@85, ~@9 [b3,g4,b4,e5]@37 ~@8 [c4,d#4,c5,d#5]@37 ~@5]/3", // Em F#dim Em Cm
  O: "[[e2,b3,g4,b4,e5]@3 ~@3 e2@2 ~ g2@3 e2@3 f#2@2 e2@3 g2@3 e2@3 f#2@3 e2@3 g2@2 e2@3 f#2@3 e2@3 g2@3 [c3,a3,f#4,a4,f#5]@3 ~@3 c3@2 g3@3 c3@3 d3@3 c3@3 g3@3 c3@3 d3@2 c3@3 g3@3 c3@3 d3@3 c3@3 g3@3 ~@36, ~@3 f#2@3 ~@43 d3@3 ~@76, ~@4 [b3,g4,b4,e5]@4 [b3,g4,b4,e5]@33 ~@9 [c4,d#4,c5,d#5]@63 ~@15]/4", // Em F#dim Em Cm
  P: "[~@106 a4@11 ~@85 a4@11 ~ f5@34 ~@2 d5@6, ~@22 [a2,d3,f3,a3]@91 ~@5 [a2,d3,f3,a3]@91 ~@5 [d3,f3,a3]@42]/8", // Dm
  Q: "[~@6 g5@4 f5@4 e5@4 f5@11 ~ d5@11 ~ f5@4 e5@4 d5@4 e5@11 ~ c5@11 ~ [a#2,d3,f3,d5]@23 ~ [a2,c3,e3,c5]@11 ~ [c3,f3,a4]@23 ~ [c#3,e3,a4]@11 ~ [f2,a2,d3,f5]@23 ~ [d2,f2,a2,d5]@11 ~ d5@4 e5@4 f5@4 g5@11 ~ [g2,a#2,d3,e3,e5]@11 ~ [d3,f3,a3,a5]@11 ~ [d#3,g3,a#3,g5]@22, ~@6 d3@34 ~@2 [d3,f3]@11 ~ [c3,e3]@23 ~@37 a2@34 ~@38 [g2,a#2,d3,g3]@23 ~@47, ~@6 [g3,a#3]@11 ~ [f3,a3]@23 ~ b3@34 ~@180]/8", // A# Am F A Dm Em7b5 Dm D# …
  R: "[~@2 [a2,d3,f3,a3]@34 ~@2 d#4@4 c5@4 g5@4 c6@23 ~ g4@6 d5@6 d6@4 a#5@4 g5@4 d5@4 g4@4 f4@4 ~@4 c5@4 g5@4 ~@12 d#4@11 ~ d4@6 a4@6 f#5@6 a5@6 d6@11 ~ g#4@6 f5@4, ~@2 a5@23 ~@85 d#4@11 ~ c6@23 ~@47]/6", // Dm
  S: "~ c6@3 f5@3 g#4@3 f5@3 g4@3",
  T: "[d#5@3 c6@3 d#5@3 ~@2 d#5@2 c6@2 g#4@3 f5@3 c6@3 f5@3 g#4@3 f5@2, ~@18 g4@11 ~@35]/2",
  U: "[~@2 b4@6 d5@6 g5@23 ~@27]/2",
})).s("gm_piano").gain(0.3)

stack(
// … 3 more lines