Strudelify

guns for hands

Molly Brooks

KeyF♯ majorTempo130 bpm
0:00/0:00
// guns for hands — Molly Brooks
// 130 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: Transcription provider: pdmx. https://musescore.com/score/3881781; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 142 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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.

// chords · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A B A C A D A B A B A B A B E F G H I J K L M N G O P J Q R S T@2 U V W@2 X E Y M Y Z@4 E Y M Y Z@4 AA AB@2 AC@2 AD@2
  AE E N AF AG AH AI AJ AK AL AM@2 AN V AO@2 X E Y M Y Z@4 AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI
  BJ BK BL BM BN BO BP BQ BR@3 ~@8 BS@4 BT BU BV BW BX@4 BY BZ CA CB@2
>`.pickRestart({
  A: "g#4@3 g#4@3 g#4@4 g#4@3 a#4@3", B: "c#5@2 g#4 d#5@3 c#5@4 a#4@2 g#4@4",
  C: "c#5@2 g#4 d#5@3 c#5@4 a#4@2 g#4@2 a#4@2", D: "c#5@2 g#4 c#5@3 c#5@3 ~ a#4@2 g#4@2 ~@2", E: "~@6 f#4!2",
  F: "f#4!4 c#5@2 a#4@2", G: "~@6 f4!2", H: "f4@4 f4@4 c#5@4 d#5 ~ a#4@2", I: "g#4@2 ~@4 c#5 ~ a#4@2 g#4@6",
  J: "~@6 c#5@2 d#5@2 c#5 ~ a#4@4", K: "~@3 c#5 a#4 g#4@3", L: "~@4 c#5@2 c#5@2 d#5@2 c#5 ~ a#4@2 g#4 ~",
  M: "f#4@2 ~@4 f#4!2", N: "f#4@2 f#4!2 c#5@2 a#4@2", O: "f4@2 f4@2 f4@2 f4@2 c#5@4 d#5 ~ a#4@2",
  P: "g#4@4 ~@2 c#5@2 a#4@2 g#4@3 ~@3", Q: "~@3 c#5 a#4@2 g#4@2", R: "~@6 c#5@2 d#5@2 c#5 ~ a#4@2 g#4 ~",
  S: "f#4@2 ~@4 a#4!2", T: "[a#4@2 g#4@2 g#4@10 g#4!2]/2", U: "g#4@2 g#4@2 g#4@2 f#4@2 a#4@4 f#4 ~ f#4@2",
  V: "d#4@6 a#4 g#4", W: "[g#4@4 g#4@4 g#4@4 a#4@6 g#4@2 g#4@2 g#4@3 ~ g#4@2 g#4@2 g#4 ~]/2",
  X: "~@2 g#4@2 g#4 ~ g#4@2 g#4 ~ g#4@2 g#4 ~ g#4@2", Y: "c#4@2 ~ f#4!2 g#4 f#4 f4",
  Z: "[f#4@4 ~@6 f#5@2 f#5@2 [a#4,f#5]@4 [a#4,f#5]@2 [a#4,f#5] ~ [a#4,f#5]@4 [a#4,f#5]@2 [a#4,f#5] ~ [a#4,f#5]@4 [a#4,c#5,f#5]@4 ~@8 g#4@4 g#4@4 g#4@4 ~@2 c#4@4]/4", // D#m F#
  AA: "~@6 a#4 g#4", AB: "[a#4 g#4 a#4 g#4 a#4 c#5 a#4 g#4@7 a#4 g#4]/2",
  AC: "[a#4 g#4 a#4@2 a#4 c#5 a#4 g#4@4 c#5 a#4 g#4 ~@2]/2", AD: "[~@3 c#5 d#5 c#5 a#4@5 c#5 a#4 g#4 ~@2]/2",
  AE: "~@2 c#5!2 d#5@2 c#5@2", AF: "~@7 f5", AG: "f5!2 f5@2 f5@2 f#5@2", AH: "~@3 f#5 f5@2 f#5@2", AI: "a#5 f#5 f5 f#5",
  AJ: "c#5@2 f#5 f5 f5@2 f#5!2", AK: "a#5 f#5!3 f5@2 f#5@2", AL: "~@6 a#4!2",
  AM: "[[c#4,a#4]@4 a#4 [f4,g#4]@3 a#4 [f#4,g#4]@11 [f4,g#4]@8 g#4@2 g#4@2]/2", // F# Fm F#sus2 Fm
  AN: "[c#4,g#4] [f4,g#4] [f#4,g#4] [c#4,f#4] [f4,a#4]@2 f#4!2", AO: "[g#4@2 g#4@2 g#4@2 a#4@3 g#4!2 g#4@2 g#4!3]/2",
  AP: "[d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~", // D#m
  AQ: "[d#4,f#4,a#4]@2 ~@3 [d#4,f#4,a#4]@2 ~@2 [d#4,f#4,a#4]@2 ~@3 [d#4,f#4,a#4]@2", // D#m
  AR: "~@2 [d#4,f#4,a#4]@3 ~@2 [d#4,f#4,a#4]@3 ~@2 [d#4,f#4,a#4]@3 ~", // D#m
  AS: "~@2 [d#4,f#4,a#4]@3 ~@2 [d#4,f#4,a#4]@6 f#4@3", AT: "g#4@2 f#4@3 f4@3 d#4@3 c#4@3 ~@2",
  AU: "~ [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@3 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@2 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~", // D#m
  AV: "~@2 [d#4,f#4,a#4] ~@5 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3 [d#4,f#4,b4] ~", // D#m B
  AW: "[d#4,f#4,b4] ~@3 [d#4,f#4,b4]!2 ~@3 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3 [c#4,f#4,a#4]", // B F#
  AX: "~ [c#4,f#4,a#4] ~@3 [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@3 [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@2", // F#
  AY: "[c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@3 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~@3 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~", // F# C#
  AZ: "~@2 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~@8 [d#4,f#4,a#4] ~ [d#4,f#4,a#4]", // C# D#m
  BA: "~@3 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@3 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@3 [d#4,f#4,a#4]", // D#m
  BB: "~@4 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3", // B
  BC: "[d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3 [c#4,f#4,a#4]!2 ~@2", // B F#
  BD: "~ [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@3 [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@3 [c#4,f#4,a#4] ~ [c#4,f#4,a#4]", // F#
  BE: "~@3 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~@2 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~@3 [c#4,f4,g#4,c#5] ~", // C#
  BF: "[c#4,f4,g#4,c#5] ~@3 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~@3 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@3", // C# D#m
  BG: "[d#4,f#4,a#4]!2 ~@3 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@3 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@2", // D#m
  BH: "~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@2 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~", // B
  BI: "~@2 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3 [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@3 [c#4,f#4,a#4] ~", // B F#
  BJ: "[c#4,f#4,a#4] ~@3 [c#4,f#4,a#4]!2 ~@3 [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@3 [c#4,f4,g#4,c#5]", // F# C#
  BK: "~ [c#4,f4,g#4,c#5] ~@3 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~@3 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~@2", // C#
  BL: "[c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~@3 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@3 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~", // C# D#m
  BM: "~@2 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@3 [d#4,f#4,a#4]!2 ~@3 [d#4,f#4,b4] ~ [d#4,f#4,b4]", // D#m B
  BN: "~@3 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3 [d#4,f#4,b4]", // B
  BO: "~ [d#4,f#4,b4] ~@2 [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@3 [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@3", // B F#
  BP: "[c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@3 [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@3 [c#4,f4,g#4,c#5]!2 ~@2", // F# C#
  BQ: "~ [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~@3 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~@3 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5]", // C#
  BR: "[[d#4,f#4,a#4]@31 f4@8 ~@9]/3", BS: "[~@3 f#4@2 f#4@2 c#4@4 ~@2 f#4@2 f#4@2 g#4@2 f#4@2 f4@2 f#4@4 ~@5]/2",
  BT: "~ f#5@2 f#5@2 [a#4,f#5]@4 [a#4,f#5]@2 [a#4,f#5] ~ [a#4,f#5]@3", // D#m
  BU: "~ [a#4,f#5]@2 [a#4,f#5] ~ [a#4,f#5]@4 [a#4,c#5,f#5]@4 ~@3", BV: "~@5 g#4@4 g#4@4 g#4@3", BW: "~@3 c#4@4 ~@9",
  BX: "[~@3 [f#4,f#5]@2 [f#4,f#5]@2 [c#4,c#5]@4 ~@2 [f#4,f#5]@2 [f#4,f#5]@2 [g#4,g#5]@2 [f#4,f#5]@2 [f4,f5]@2 [f#4,f#5]@4 ~@5]/2", // F# C# F# G# F# F F#
  BY: "~ f#5@2 f#5@2 a#5@4 a#5@2 a#5 ~ a#5@3", BZ: "~ a#5@2 a#5 ~ a#5@4 f#5@4 ~@3", CA: "~@5 g#5@4 g#5@4 g#5@3",
  CB: "[~@3 a#5@2 g#5@2 f#5@16 ~@9]/2",
})).s("gm_trumpet").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  ~@6 A B A B A B A B ~@8 C D E F G H I J K L@2 M N O@2 P ~@4 Q@4 R S R S T@3 U ~ V W V X Y Z AA C D AB AC AD AE AF AG
  AH AI@2 AJ@2 O@2 P ~@8 AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB@2 BC BD@2 BE BF BG AW BH BI BJ@3 BK BL BK
  BL BK BL BM@2 BN@4 BO BP BQ BR BS@2 BN@2 BO BP BT@3
>`.pickRestart({
  A: "g#4@3 g#4@3 g#4@4 g#4@3 a#4@3", B: "c#5@2 g#4 d#5@3 c#5@4 a#4@2 g#4@4", C: "~@6 f#4!2",
  D: "f#4@2 f#4!2 c#5@2 a#4@2", E: "~@6 f4!2", F: "f4@2 f4@2 f4@2 f4@2 f4@4 f4 ~ f4@2",
  G: "f#4@4 ~@2 c#5@2 f#4@2 f4@3 ~@3", H: "~@6 c#5@2 f#5@2 f5 ~ c#5@4", I: "~@3 c#5 a#4@2 g#4@2",
  J: "~@6 c#5@2 b4@2 g#4 ~ f#4@2 f4 ~", K: "f#4@2 ~@4 a#4!2", L: "[c#4@2 f4@2 f#4@6 f4@4 f4!2]/2",
  M: "c#4@2 f4@2 f#4@2 c#4@2 f4@4 f#4 ~ f#4@2", N: "d#4@6 c#5 b4",
  O: "[b4@4 b4@4 b4@4 c#5@6 b4@2 b4@2 b4@3 ~ b4@2 b4@2 b4 ~]/2", P: "~@2 g#4@2 c#4 ~ c#4@2 f4 ~ f4@2 f#4 ~ g#4@2",
  Q: "[~@10 f#5@2 f#5@2 a#4@4 a#4@2 a#4 ~ a#4@4 a#4@2 a#4 ~ a#4@4 f#4@4 ~@8 b4@4 b4@4 b4@4 ~@2 f4@2 f#4@2]/4",
  R: "f#4@2 ~@4 f#4!2", S: "c#4@2 ~ f#4!2 g#4 f#4 f4",
  T: "[f#4@4 ~@10 a#4@4 a#4@2 a#4 ~ a#4@4 a#4@2 a#4 ~ a#4@4 f#4@4 ~@8 g#4@2]/3", U: "~ g#4 ~ g#4 ~@2 f4 f#4",
  V: "~@6 a#4 g#4", W: "a#4 g#4 a#4 g#4 a#4 c#5 a#4 g#4", X: "a#4 g#4 a#4 c#5 a#4 g#4 ~@2", Y: "~@7 c#5",
  Z: "d#5 c#5 a#4 c#5 a#4 g#4 ~@2", AA: "~@2 g#4!2 f4@2 f#4@2", AB: "~@7 f4", AC: "c#4!2 f4@2 f4@2 f#4@2",
  AD: "~@3 f#4 f4@2 f#4@2", AE: "a#4 f#4 f4 f#4", AF: "c#4@2 f#4 f4 f4@2 f#4!2", AG: "a#4 f#4!3 f4@2 f#4@2",
  AH: "~@6 a#4!2", AI: "[a#4@4 a#4 g#4@3 a#4 g#4@23]/2", AJ: "[g#4!3 f#4 f#4@3 g#4@3 f#4@3 d#4 c#5 b4]/2",
  AK: "f#4 ~ f#4 ~ f#4 ~ f#4 ~", AL: "f#4@2 ~@3 f#4@2 ~@2 f#4@2 ~@3 f#4@2", AM: "~@2 f#4@3 ~@2 f#4@3 ~@2 f#4@3 ~",
  AN: "~@2 f#4@3 ~@2 f#4@6 f#4@3", AO: "g#4@2 f#4@3 f4@3 d#4@3 c#4@3 ~@2",
  AP: "~ [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@3 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~@2 [d#4,f#4,a#4] ~ [d#4,f#4,a#4] ~", // D#m
  AQ: "~@2 [d#4,f#4,a#4] ~@5 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3 [d#4,f#4,b4] ~", // D#m B
  AR: "[d#4,f#4,b4] ~@3 [d#4,f#4,b4]!2 ~@3 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3 [c#4,f#4,a#4]", // B F#
  AS: "~ [c#4,f#4,a#4] ~@3 [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@3 [c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@2", // F#
  AT: "[c#4,f#4,a#4] ~ [c#4,f#4,a#4] ~@3 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~@3 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~", // F# C#
  AU: "~@2 [c#4,f4,g#4,c#5] ~ [c#4,f4,g#4,c#5] ~@11", AV: "~@9 f#4 ~@2 f#4 g#4@3", AW: "~ f#4@3 ~@4",
  AX: "f#4 ~@2 f#4 g#4@3 ~@2 f#4@6 ~", AY: "~@7 f#4 ~@2 f#4 g#4@3 ~@2", AZ: "g#4@6 ~@2 a#4 ~ g#4@3 ~ f#4 ~",
  BA: "~ f#4 ~ g#4@3 ~ f#4@6 ~@3", BB: "[~@5 f#4 ~@2 f#4 ~ g#4@3 ~ f#4@6 ~@8 f#4 ~@2 f#4]/2", BC: "~ g#4 ~@3 f#4@6 ~@5",
  BD: "[~@4 f#4 ~ f#4 ~ g#4 ~@3 c#4@6 ~@3 c#4 ~@2 d#4@3 f#4 ~@2 f#4 g#4]/2", BE: "~@3 f#4@6 ~@7",
  BF: "~@2 f#4 ~@2 f#4 g#4 ~@3 f#4@6", BG: "~@9 f#4 ~@2 f#4 g#4 ~@2", BH: "f#4 ~@2 f#4 g#4 ~@4 g#4@6 ~",
  BI: "~@7 f#4 ~@2 f#4 g#4 ~@4", BJ: "[[d#4,f#4,a#4]@31 f4@8 g#4@3 g#4@3 g#4@3]/3",
  BK: "~ g#4@3 a#4@3 c#5@2 g#4 d#5@3 c#5@3", BL: "~ a#4@2 g#4@4 g#4@3 g#4@3 g#4@3",
  BM: "[~ g#4@3 a#4@3 c#5@2 a#4@2 c#5@12 ~@9]/2",
  BN: "[~@3 f#4@2 f#4@2 c#4@4 ~@2 f#4@2 f#4@2 g#4@2 f#4@2 f4@2 f#4@4 ~@5]/2", BO: "~@5 a#4@4 a#4@2 a#4 ~ a#4@3",
  BP: "~ a#4@2 a#4 ~ a#4@4 f#4@4 ~@3", BQ: "~@5 g#4@2 ~@2 g#4@2 ~@2 g#4@2 ~", BR: "~@3 f4@2 f#4@2 ~@9",
  BS: "[~@3 f#5@2 f#5@2 c#5@4 ~@2 f#5@2 f#5@2 g#5@2 f#5@2 f5@2 f#5@4 ~@5]/2",
  BT: "[~@5 g#4@2 ~@2 g#4@2 ~@2 g#4@2 g#5@2 ~@2 a#5@2 g#5@2 f#5@16 ~@9]/3",
})).s("gm_alto_sax").gain(0.4)

// other · trombone
const trombone = note(`<
  A@2 B@2 C B D@2 E@2 F G D E ~@16 H I J@2 K L M@2 A@2 B@2 N O C B P@2 Q@2 R S P R T@2 U@2 V T V W T@2 U@2 V T V W X@5 Y
  Z AA A@2 B@2 AB O A B AC AD AE AF AG AH AI AJ AK AL@2 AM AN AO AP AQ AR AS AT AU AV AW AX@2 AY AZ BA BB BC@8 BD@3 BE
  BF BG BH BI BJ BF BK BE BF BG BH BI BJ BF BL@2
>`.pickRestart({
  A: "f#4@3 f#4@3 f#4@4 f#4@2 f#4@2 f#4@2", B: "c#4@3 c#4@3 c#4@4 c#4@2 c#4@2 c#4@2",
  C: "f#4@3 f#4@3 f#4@4 f#4@2 f#4@2 d#4@2", D: "~ f#3 ~ f#3 ~ f#3 ~ f#3", E: "~ c#3 ~ c#3 ~ c#3 ~ c#3",
  F: "~ d#3 ~ d#3 ~ d#3 ~ d#3", G: "~ b3 ~ b3 ~ b3 ~ b3", H: "~ [f#3,b3]@3", I: "~ [f#3,a#3]@3", J: "[~ g#3@6 a#3]/2",
  K: "~ b3@3", L: "~ a#3@3", M: "[~ g#3@7]/2", N: "d#3@3 d#3@3 d#3@4 d#3@2 d#3@2 d#3@2",
  O: "b3@3 b3@3 b3@4 b3@2 b3@2 b3@2", P: "~ c#4 ~ c#4 ~ c#4 ~ c#4", Q: "~ g#3 ~ g#3 ~ g#3 ~ g#3",
  R: "~ a#3 ~ a#3 ~ a#3 ~ a#3", S: "~ f#4 ~ f#4 ~ f#4 ~ f#4", T: "f#3@3 f#3@3 f#3@2", U: "f3@3 f3@3 f3@2",
  V: "a#3@3 a#3@3 a#3@2", W: "g#3@3 g#3@3 g#3@2",
  X: "[~ [d#3,f#3,b3]@4 [c#3,f#3,a#3]@4 [f3,g#3]@6 [f#3,a#3]@2 [d#3,f#3,b3]@3]/5", Y: "~ [c#3,f#3,a#3]@3",
  Z: "~ [f3,g#3]@3", AA: "[f3,g#3]", AB: "d#4@3 d#4@3 d#4@4 d#4@2 d#4@2 d#4@2", AC: "d#3 ~ d#3 ~ d#3 ~ d#3 ~",
  AD: "d#3@2 ~@3 d#3@2 ~@2 d#3@2 ~@3 d#3@2", AE: "~@2 d#3@3 ~@2 d#3@3 ~@2 d#3@3 ~", AF: "~@2 d#3@3 ~@2 d#3@6 d#3@3",
  AG: "d#3@2 d#3@3 d#3@3 d#3@3 d#3@3 d#4@2", AH: "~@6 d#4 ~@3 d#4@3 ~@3", AI: "~ d#4 ~@3 b3@3 ~@5 b3 ~@2",
  AJ: "~ b3@3 ~@4 b3 ~@3 f#4@3 ~", AK: "~@4 f#4 ~@3 f#4@3 ~@4 f#4",
  AL: "[~@3 c#4@3 ~@5 c#4 ~@3 c#4@3 ~@3 c#4@3 d4@2 d#4@3 ~@3]/2", AM: "~@2 d#4 ~@3 d#4@3 ~@5 d#4 ~",
  AN: "~@2 b3@3 ~@4 b3 ~@3 b3@3", AO: "~@5 b3 ~@3 f#4@3 ~@4", AP: "f#4 ~@3 f#4@3 ~@5 g#4 ~@3",
  AQ: "c#4@3 ~@4 c#4 ~@3 c#4@3 ~@2", AR: "~@3 c#4 ~@3 d#4@3 ~@5 d#4", AS: "~@2 d#4@3 ~@5 d#4 ~@3 b3@2",
  AT: "~@6 b3 ~@3 b3@3 ~@3", AU: "~ b3 ~@3 f#4@3 ~@5 f#4 ~@2", AV: "~ f#4@3 ~@4 f#4 ~@3 c#4@3 ~",
  AW: "~@4 c#4 ~@3 c#4@3 ~@4 c#4", AX: "[~@3 d#4@3 ~@5 d#4 ~@3 d#4@3 ~@5 d#4 ~@2 b3@3 ~@3]/2",
  AY: "~@2 b3 ~@3 b3@3 ~@5 b3 ~", AZ: "~@2 f#4@3 ~@4 f#4 ~@3 f#4@3", BA: "~@5 g#4 ~@3 c#4@3 ~@4",
  BB: "c#4 ~@3 c#4@3 ~@5 c#4 ~@3", BC: "[~@31 f3@8 f#3@32 c#4@32 d#4@16 b3@9, [d#2,d#3]@39 ~@89]/8",
  BD: "[~@7 f#3@16 c#4@16 ~@2 f#3@2 ~@2 f#3@2 ~]/3", BE: "~ f#3@2 ~@2 f#3@2 ~@2 f#3@2 ~@2 f#3@2 ~",
  BF: "~ f#3@2 ~@2 f#3@2 ~@2 c#3@2 ~@2 c#3@2 ~", BG: "~ c#3@2 ~@2 c#3@2 ~@2 c#3@2 ~@2 c#3@2 ~",
  BH: "~ c#3@2 ~@2 c#3@2 ~@2 d#3@2 ~@2 d#3@2 ~", BI: "~ d#3@2 ~@2 d#3@2 ~@2 b3@2 ~@2 b3@2 ~",
  BJ: "~ b3@2 ~@2 b3@2 ~@2 f#3@2 ~@2 f#3@2 ~", BK: "~ c#3@2 ~@2 c#3@2 ~@2 f#3@2 ~@2 f#3@2 ~",
  BL: "[~ c#3@2 ~@2 c#3@2 f#4@16 ~@9]/2",
})).s("gm_trombone").gain(0.3)

// other · trombone · soft notes
const trombone_soft = note("<~@14 A@2 B@2 C A C D A@2 B@2 C A C D ~@112>".pickRestart({
  A: "f#3@3 f#3@3 f#3@2", B: "f3@3 f3@3 f3@2", C: "a#3@3 a#3@3 a#3@2", D: "g#3@3 g#3@3 g#3@2",
})).s("gm_trombone").gain(0.2)

// bass · tuba · "Euphonium"
const bass = note(`<
  A@2 B@2 C B D@2 E@2 F G D E ~@16 H I J@2 H@2 K@2 A@2 B@2 L M C B D@2 E@2 F G D E N@4 O P O Q N@4 O P O Q R S@2 T U V@2
  W A@2 B@2 L M A B X Y Z@2 AA AB AC AD AE AF@2 AG AH AI AJ AK AL AM AN AO AP AQ AR@2 AS AT AU AV AW@8 AX@3 AY AZ BA BB
  BC BD AZ BE AY AZ BA BB BC BD AZ BF@2
>`.pickRestart({
  A: "f#3@3 f#3@3 f#3@4 f#3@2 f#3@2 f#3@2", B: "c#3@3 c#3@3 c#3@4 c#3@2 c#3@2 c#3@2",
  C: "f#3@3 f#3@3 f#3@4 f#3@2 f#3@2 d#3@2", D: "~ c#3 ~ c#3 ~ c#3 ~ c#3", E: "~ g#2 ~ g#2 ~ g#2 ~ g#2",
  F: "~ a#2 ~ a#2 ~ a#2 ~ a#2", G: "~ f#3 ~ f#3 ~ f#3 ~ f#3", H: "~ f#3@3", I: "~ c#3@3", J: "[~ f3@6 f#3]/2",
  K: "[~ f3@7]/2", L: "d#3@3 d#3@3 d#3@4 d#3@2 d#3@2 d#3@2", M: "b2@3 b2@3 b2@4 b2@2 b2@2 b2@2", N: "c#3@3 c#3@3 c#3@2",
  O: "f#3@3 f#3@3 f#3@2", P: "d#3@3 d#3@3 d#3@2", Q: "f3@3 f3@3 f3@2", R: "~@6 a#3!2",
  S: "[a#3@4 a#3 g#3@3 a#3 g#3@19 g#3@2 g#3@2]/2", T: "g#3!3 f#3 a#3@2 f#3!2", U: "d#3@6 a#3 g#3",
  V: "[g#3@2 g#3@2 g#3 a3 a#3@3 g#3!2 g#3@2 g#3!3]/2", W: "~ g#3!7", X: "d#3 ~ d#3 ~ d#3 ~ d#3 ~",
  Y: "d#3 ~ a#2@2 ~ d#3 ~@3 d#3 ~ a#2@2 ~ d#3 ~", Z: "[~@2 d#3 ~@2 a#2@2 d#3 ~@4 d#3 ~@2 a#2@3 d#3 ~@4 d#3@6 d#3@3]/2",
  AA: "~@2 d#3@3 ~@3 d#3@3 ~@3 d#3@2", AB: "~@6 d#3 ~@3 d#3@3 ~@3", AC: "~ d#3 ~@3 b2@3 ~@5 b2 ~@2",
  AD: "~ b2@3 ~@4 b2 ~@3 f#3@3 ~", AE: "~@4 f#3 ~@3 f#3@3 ~@4 f#3",
  AF: "[~@3 c#3@3 ~@5 c#3 ~@3 c#3@3 ~@3 c#3@3 d3@2 d#3@3 ~@3]/2", AG: "~@2 d#3 ~@3 d#3@3 ~@5 d#3 ~",
  AH: "~@2 b2@3 ~@4 b2 ~@3 b2@3", AI: "~@5 b2 ~@3 f#3@3 ~@4", AJ: "f#3 ~@3 f#3@3 ~@5 f#3 ~@3",
  AK: "c#3@3 ~@4 c#3 ~@3 c#3@3 ~@2", AL: "~@3 c#3 ~@3 d#3@3 ~@5 d#3", AM: "~@2 d#3@3 ~@5 d#3 ~@3 b2@2",
  AN: "~@6 b2 ~@3 b2@3 ~@3", AO: "~ b2 ~@3 f#3@3 ~@5 f#3 ~@2", AP: "~ f#3@3 ~@4 f#3 ~@3 c#3@3 ~",
  AQ: "~@4 c#3 ~@3 c#3@3 ~@4 c#3", AR: "[~@3 d#3@3 ~@5 d#3 ~@3 d#3@3 ~@5 d#3 ~@2 b2@3 ~@3]/2",
  AS: "~@2 b2 ~@3 b2@3 ~@5 b2 ~", AT: "~@2 f#3@3 ~@4 f#3 ~@3 f#3@3", AU: "~@5 f#3 ~@3 c#3@3 ~@4",
  AV: "c#3 ~@3 c#3@3 ~@5 c#3 ~@3", AW: "[~@31 f3@8 f#3@32 c#4@32 d#4@16 b3@9, d#3@39 ~@89]/8",
  AX: "[~@7 f#3@16 c#4@16 ~@2 c#3@2 ~@2 c#3@2 ~]/3", AY: "~ c#3@2 ~@2 c#3@2 ~@2 c#3@2 ~@2 c#3@2 ~",
  AZ: "~ c#3@2 ~@2 c#3@2 ~@2 g#2@2 ~@2 g#2@2 ~", BA: "~ g#2@2 ~@2 g#2@2 ~@2 g#2@2 ~@2 g#2@2 ~",
  BB: "~ g#2@2 ~@2 g#2@2 ~@2 a#2@2 ~@2 a#2@2 ~", BC: "~ a#2@2 ~@2 a#2@2 ~@2 f#3@2 ~@2 f#3@2 ~",
  BD: "~ f#3@2 ~@2 f#3@2 ~@2 c#3@2 ~@2 c#3@2 ~", BE: "~ g#2@2 ~@2 g#2@2 ~@2 c#3@2 ~@2 c#3@2 ~",
  BF: "[~ g#2@2 ~@2 g#2@2 f#3@16 ~@9]/2",
})).s("gm_tuba").gain(0.3)

// bass · tuba · "Euphonium" · soft notes
const bass_soft = note("<~@14 A@4 B C B D A@4 B C B D ~@112>".pickRestart({
  A: "c#3@3 c#3@3 c#3@2", B: "f#3@3 f#3@3 f#3@2", C: "d#3@3 d#3@3 d#3@2", D: "f3@3 f3@3 f3@2",
})).s("gm_tuba").gain(0.2)

// bass · tuba
const bass_2 = note(`<
  A@2 B@2 C B D@2 E@2 F G D H ~@16 I J K@2 L M N@2 A@2 B@2 O P C B D@2 E@2 F G D E Q@2 R@2 S T U@2 Q@2 R@2 S T U V W@5 M
  X Y A@2 B@2 O P A B F Z AA AB@2 AC AD AE AF AG@2 AH AI AJ AK AL AM AN AO AP AQ AR AS@2 AT AU AV AW AX@8 AY@8 AZ@8 BA@4
>`.pickRestart({
  A: "f#2@3 f#2@3 f#2@4 f#2@2 f#2@2 f#2@2", B: "c#2@3 c#2@3 c#2@4 c#2@2 c#2@2 c#2@2",
  C: "f#2@3 f#2@3 f#2@4 f#2@2 f#2@2 d#2@2", D: "f#2 ~ f#2 ~ f#2 ~ f#2 ~", E: "c#2 ~ c#2 ~ c#2 ~ c#2 ~",
  F: "d#2 ~ d#2 ~ d#2 ~ d#2 ~", G: "b2 ~ b2 ~ b2 ~ b2 ~", H: "~ [g#2,c#3] ~ [g#2,c#3] ~ [g#2,c#3] ~ [g#2,c#3]",
  I: "~ b2@3", J: "~ a#2@3", K: "[~ c#3@6 d#3]/2", L: "~ [b2,d#3]@3", M: "~ [a#2,c#3]@3", N: "[~ c#3@7]/2",
  O: "d#2@3 d#2@3 d#2@4 d#2@2 d#2@2 d#2@2", P: "b1@3 b1@3 b1@4 b1@2 b1@2 b1@2", Q: "a#2@3 a#2@3 a#2@2",
  R: "g#2@3 g#2@3 g#2@2", S: "d#3@3 d#3@3 d#3@2", T: "b2@3 b2@3 b2@2", U: "c#3@3 c#3@3 c#3@2",
  V: "[f3,g#3]@3 [f3,g#3]@3 [f3,g#3]@2", W: "[~ [b2,d#3]@4 [a#2,c#3]@4 c#3@6 [d#3,f#3]@2 [b2,d#3]@3]/5",
  X: "~ [c#3,f3]@3", Y: "[c#3,f3]", Z: "d#2@2 ~@3 d#2@2 ~@2 d#2@2 ~@3 d#2@2", AA: "~@2 d#2@3 ~@2 d#2@3 ~@2 d#2@3 ~",
  AB: "[~@2 d#2@3 ~@2 d#2@6 d#2@5 d#2@6 d#2@6 d#2@2]/2", AC: "~@6 d#2 ~@3 d#2@3 ~@3", AD: "~ d#2 ~@3 b1@3 ~@5 b1 ~@2",
  AE: "~ b1@3 ~@4 b1 ~@3 f#2@3 ~", AF: "~@4 f#2 ~@3 f#2@3 ~@4 f#2",
  AG: "[~@3 c#2@3 ~@5 c#2 ~@3 c#2@3 ~@3 c#2@3 d2@2 d#2@3 ~@3]/2", AH: "~@2 d#2 ~@3 d#2@3 ~@5 d#2 ~",
  AI: "~@2 b1@3 ~@4 b1 ~@3 b1@3", AJ: "~@5 b1 ~@3 f#2@3 ~@4", AK: "f#2 ~@3 f#2@3 ~@5 f#2 ~@3",
  AL: "c#2@3 ~@4 c#2 ~@3 c#2@3 ~@2", AM: "~@3 c#2 ~@3 d#2@3 ~@5 d#2", AN: "~@2 d#2@3 ~@5 d#2 ~@3 b1@2",
  AO: "~@6 b1 ~@3 b1@3 ~@3", AP: "~ b1 ~@3 f#2@3 ~@5 f#2 ~@2", AQ: "~ f#2@3 ~@4 f#2 ~@3 c#2@3 ~",
  AR: "~@4 c#2 ~@3 c#2@3 ~@4 c#2", AS: "[~@3 d#2@3 ~@5 d#2 ~@3 d#2@3 ~@5 d#2 ~@2 b1@3 ~@3]/2",
// … 180 more lines