Strudelify

She Has a Girlfriend Now

Reel Big Fish

KeyC majorTempo136 bpm
0:00/0:00
// She Has a Girlfriend Now — Reel Big Fish
// 136 bpm, 4/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: Full arrangement: all 98 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(136/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 · trumpet
const trumpet = note(`<
  A B C D E F G H I J K L M N ~@2 O P ~@8 Q R S R T U ~@2 M V M W ~ X@2 Y E Z C AA C Z I AB ~@8 AC AD AE R AF@2 ~@2 M AG
  M AH ~@2 AI AJ AK@3 ~@4 AL AM AN@2 ~ AO AP AQ AR AS AT@2 AU AV AW AX@2
>`.pickRestart({
  A: "c5@5 ~@19", B: "f4@2 ~ f4@2 ~@4 g4@2 ~ g4@6 ~@6", C: "~@6 c5@3 g4@3 a4@3 c5@4 ~@2 a4@3",
  D: "~@3 g4@6 c4@3 e4@2 ~ e4@3 d4@2 c4@4", E: "~@6 c5@3 g4@2 ~ a4@3 c5@4 ~@2 a4@3",
  F: "~@3 g4@5 ~ c4@2 ~ [d#4,e4]@2 ~ e4@3 d4@3 c4@3", G: "~@6 c5@2 g4@3 ~ a4@3 c5@4 ~@2 a4@3",
  H: "~@3 g4@5 ~ c4@3 e4@2 ~ e4@3 d4@3 c4@3", I: "~@2 c5 g4 a4 c5 ~ a4", J: "~@3 g4@4 ~@2 c4@3 e4@2 ~ e4@3 d4@3 c4@3",
  K: "~@18 c4@2 c4@3 ~", L: "f4@3 e4@2 ~ f4@2 ~ d4@12 ~@3", M: "~@18 c4@2 ~ c4@2 ~",
  N: "a4@3 g#4@2 ~ a4@2 ~ c5@3 b4@10 ~@2", O: "c5 ~@5", P: "f4@2 ~ f4@3 ~@3 g4@2 ~ g4@8 ~@4",
  Q: "~@3 e5@3 ~@3 e5@3 ~@3 e5@3 ~@3 e5@2 ~", R: "c5@3 b4@2 c5@2 ~@2 e5@2 ~ d5@10 ~@2",
  S: "~@2 e5@4 ~@3 e5@4 ~@2 e5@3 ~@3 e5@2 ~", T: "~@3 e5@3 ~@3 e5@3 ~@3 e5@4 ~@2 e5@2 ~",
  U: "c5@2 b4@2 ~ c5@2 ~@2 e5@2 ~ d5@11 ~", V: "f4@3 e4@2 f4@2 ~@2 d4@14 ~", W: "a4@3 g#4@3 a4@2 ~ c5@3 b4@9 ~@3",
  X: "[~@23 c5@4 ~@21]/2", Y: "f4@3 f4@3 ~@3 g4@2 ~ g4@8 ~@4", Z: "~@3 g4@6 c4@3 e4@2 ~ e4@3 d4@3 c4@3",
  AA: "~@3 g4@6 c4@2 ~ e4@3 e4@3 d4@3 c4@3", AB: "~@3 g4@5 c4@3 e4@2 ~ e4@3 ~ d4@3 c4@3",
  AC: "~@3 e5@3 ~@2 e5@3 ~@4 e5@3 ~@3 e5@2 ~", AD: "c5@3 b4@2 ~@4 e5@2 ~ d5@9 ~@3",
  AE: "~@3 e5@3 ~@3 e5@3 ~@2 e5@3 ~@3 e5@2 ~@2",
  AF: "[~@3 e5@3 ~@3 e5@3 ~@3 e5@4 ~ e5@2 ~ c5@3 b4@3 c5@2 ~ e5@3 ~ d5@10 ~@2]/2", AG: "f4@3 e4@3 f4@2 ~ d4@13 ~@2",
  AH: "a4@3 g#4@3 a4@2 ~ c5@2 ~ b4@11 ~", AI: "c5 ~@7", AJ: "f4@2 ~ f4@2 ~@3 g4@2 ~@2 g4@6 ~@6",
  AK: "[~@23 c5@16 ~@4 b4@3 ~ c5@3 ~@22]/3", AL: "~@19 c5@5", AM: "~@6 c5@3 ~ b4@3 ~ c5@8 ~@2",
  AN: "[~@4 c5@3 ~@10 c5@10 ~ c5@3 ~@2 b4@3 ~ c5@10 ~]/2", AO: "~@3 c5@3 ~@2 b4@3 ~ c5@10 ~@2", AP: "~@14 c5@7 ~@3",
  AQ: "~@2 c5@3 ~ b4@3 ~@2 c5@13", AR: "~@12 c5@7 ~@5", AS: "c5@2 ~@3 b4@2 ~@2 c5@8 ~@7",
  AT: "[~@11 c5@6 ~@6 c5@3 ~ b4@3 ~@2 c5@10 ~@6]/2", AU: "~@10 e5@7 ~@5 e5@2", AV: "~@2 d5@3 ~@2 e5@11 ~@6",
  AW: "~@9 c5@6 ~@5 f4@3 ~", AX: "[~ e4@3 ~ c4@23 ~@20]/2",
})).s("gm_trumpet").gain(0.57)

// chords · overdriven guitar · "Guitar"
const overdriven_guitar = note(`<
  A B C D E F G H G D G I J K L M N O@2 P Q R S T E U E V W@3 X Y Z AA AB AC AD AE AF AG AH@2 AI AJ AK AL@2 E D G V AM V
  AN AO G AP AQ AR@4 AS@2 AT@2 AU AV D G V AG AW AX AY@2 AZ BA BB BC@2 BD@4 BE@2 BF BG BH BI@2 BJ@2 BK BL@2
>`.pickRestart({
  A: "[c3,g3,c4]@5 ~ [c3,c4]@3 g2@3 [a2,a3]@3 [c3,c4]@7 ~@2, ~@9 g3@2 ~@13", // C5 C A C
  B: "[f2,c3,f3]@2 ~@2 g#3 ~@4 [g2,a#2,d3,g3]@2 ~ [g2,d3]@7 ~@5, ~ [f2,c3,f3] ~@2 g3@3 ~", // F5 Gm G5 F5
  C: "c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~@2 a2 ~ a2@3 [e3,a3]@3 a2@2 ~", // C5 A5
  D: "f2@2 ~ f2@3 [c3,f3]@3 f2@2 ~ g2@2 ~ g2@3 [d3,g3]@3 g2@2 ~", // F5 G5
  E: "c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 ~ a2@3 [e3,a3]@3 a2@3", // C5 A5
  F: "f2 ~@2 f2@3 [c3,d3,f3,g3]@3 f2@2 ~ g2@2 ~ g2@3 [d3,g3]@3 g2@2 ~", // Csus4 G5
  G: "c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 ~ a2@3 [e3,a3]@3 a2@2 ~", // C5 A5
  H: "f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 ~@3 g2@2 ~, ~@18 [d3,g3]@5 ~", // F5 G5
  I: "f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 [d3,e3,g3]@3 g2@2 ~", // F5 Em7
  J: "c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 ~ a2@3 [e3,a3]@3 a2@2 ~, ~@9 g3 ~@2", // C5 A5
  K: "f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 ~@2 g2@2 ~@2, ~@9 [d3,g3]@2 ~", // F5 G5
  L: "c3@2 ~ c3@3 [g3,c4]@2 c3@2 ~@2 a2@2 ~ a2@3 [e3,a3]@3 a2@2 ~", // C5 A5
  M: "f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 [d3,g3]@2 g2@2 ~@2", // F5 G5
  N: "[c3,g3,c4]@4 ~@2 [c3,c4]@3 [g2,g3]@3 [a2,a3]@3 [c3,c4]@7 ~@2", // C5 C G A C
  O: "[[f2,c3,f3]@2 ~ [f2,c3,f3]@3 ~@3 [g2,d3,g3]@2 ~ g2@12 c3@2 ~ c3@3 ~@3 c3@2 ~ a2@2 ~ a2@3 ~@3 a2@3, ~@6 g3@8 ~ [g3,c4]@4 ~@5, ~@4 d3@3 ~@7 [e3,a3]@2]/2", // F5 G5 C5 A5
  P: "f2@2 ~ f2@3 ~@3 f2@3 g2@2 ~ g2@3 ~@2 g2@2 ~@2, ~@6 [c3,f3]@5 ~@7 [d3,g3]@4 ~@2", // F5 G5
  Q: "c3@2 ~ c3@3 ~@3 c3@2 ~ a2@2 ~ a2@3 [e3,a3]@3 a2@2 ~, ~@6 [g3,c4]@5 ~@13", // A5 C5
  R: "f2@2 ~ f2@3 ~@2 f2@2 ~@2 g2@2 ~ g2@2 [d3,g3]@3 g2@3 ~, ~@3 [c3,f3]@2 ~@7", // G5 F5
  S: "c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 ~ a2@3 [e3,a3]@3 [a2,b2]@2 ~", // C5 A5 Asus2
  T: "f2@2 ~ f2@3 ~@2 f2@3 ~ g2@2 ~ g2@3 [d3,g3]@3 g2@3, ~@3 [c3,f3]@2 ~@7", // G5 F5
  U: "f2@2 ~ f2@3 [c3,f3]@3 f2@2 g2@2 ~ g2@4 [d3,g3]@3 g2@2 ~", // F5 G5
  V: "f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 [d3,g3]@3 g2@2 ~", // F5 G5
  W: "[c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 a2@3 ~ e3@3 a2@2 f2@2 ~ f2@3 ~ c3@2 f2@3 g2@2 ~ g2@3 [d3,g3]@3 g2@3 c3@2 ~@2 c3@2 ~ g3@2 c3@2 ~ a2 ~@3 a2@3 ~@2 a2@3 ~, ~@17 a3@4 ~@32 c4@3 ~@10 [e3,a3]@4 ~@2]/3", // C5 G5 A5
  X: "f2@2 f2@4 [c3,f3]@3 f2@3 g2@2 ~ g2@3 [d3,g3]@2 g2@2 ~@2", Y: "[f2,c3,f3]@11 ~", Z: "[g2,d3,g3]",
  AA: "c3@2 ~ c3@3 ~@3 c3@2 ~ a2@2 a2@4 ~@3 a2@2 ~, ~@6 [g3,c4]@5 ~@7 [e3,a3]@5 ~", // C5 A5
  AB: "f2@2 ~ f2@3 ~@3 f2@2 ~ g2@2 ~ g2@3 [d3,g3]@3 g2@2 ~, ~@6 [c3,f3]@5 ~@13", // G5 F5
  AC: "c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 ~ a2@3 ~@2 a2@2 ~@2, ~@9 [e3,a3]@2 ~", // C5 A5
  AD: "f2@2 f2@4 ~@2 f2@2 ~ g2@2 ~ g2@3 ~@4 g2@2 ~, ~@6 [c3,f3]@4 ~@8 [d3,g3]@5 ~", // F5 G5
  AE: "c3@2 c3@4 [g3,c4]@3 c3@2 ~ a2@2 a2@4 [e3,a3]@3 a2@2 ~", // C5 A5
  AF: "f2@2 f2@3 ~ [c3,f3]@3 f2@2 ~ g2@2 ~ g2@3 [d3,g3]@2 g2@2 ~@2", // F5 G5
  AG: "[c3,g3,c4]@4 ~@2 [c3,c4]@3 [g2,g3]@3 [a2,a3]@3 [c3,c4]@6 ~@3", // C5 C G A C
  AH: "[~ c3@2 [f2,c3,f3]@3 ~@3 [g2,d3,g3]@2 ~ [g2,d3]@9 ~@2 c3@2 ~@2 c3@3 ~@3 c3@2 ~ a2@2 ~ a2@3 ~@3 a2@3, [f2,f3]@2 ~@10 g3@11 ~@7 [g3,c4]@6 ~@6 [e3,a3]@5 ~]/2", // F5 G5 F C5 A5
  AI: "f2@2 ~ f2@3 ~@3 f2@2 ~ g2@2 ~ g2@3 ~@3 g2@2 ~, ~@6 c3@4 ~@8 [d3,g3]@5 ~, ~@7 f3@4 ~@13", // G5
  AJ: "c3@2 ~ c3@3 ~@3 c3@2 ~ a2 ~@2 a2@3 [e3,a3]@3 a2@3, ~@6 [g3,c4]@5 ~@13", // A5 C5
  AK: "f2 ~@2 f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 [d3,g3]@3 g2@3", // F5 G5
  AL: "[c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2@2 ~ a2@3 [e3,a3]@3 a2@2 f2@2 ~@2 f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 [d3,g3]@3 g2@2 ~]/2", // C5 A5 F5 G5
  AM: "c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2 ~@2 a2@3 [e3,a3]@3 a2@2 ~", // C5 A5
  AN: "c3@2 ~ c3@3 [g3,c4]@3 c3@2 ~ a2 ~ a2@4 [e3,a3]@3 a2@3", // C5 A5
  AO: "f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2@2 ~ g2@3 [d3,g3]@3 g2 ~@2", // F5 G5
  AP: "f2 ~ f2@4 ~@2 f2@3 ~ g2@2 ~ g2@3 [d3,g3]@3 g2@3, ~@3 [c3,f3]@2 ~@7", // G5 F5
  AQ: "c3@2 ~ c3@3 [g3,c4]@3 c3@3 a2@2 ~ a2@3 [e3,a3]@3 a2@3", // C5 A5
  AR: "[f2@2 ~ f2@3 [c3,f3]@2 f2@3 g2@2 ~ g2@3 [d3,g3]@3 g2@3 c3@2 ~ c3@3 ~ g3@3 c3 ~@2 a2@3 a2@2 [e3,a3]@3 a2@3 f2@2 ~ f2@3 [c3,f3]@3 f2@3 g2 ~@3 g2@3 ~@2 g2@3 c3@2 ~ c3@4 ~@2 c3@2 ~@2 a2@2 a2@3 ~ d3@2 ~ a2@2 ~, ~@29 c4@4 ~@33 [d3,g3]@4 ~@8 [g3,c4]@4 ~@8 [e3,a3]@5 ~]/4", // F5 G5 A5 F5 G5 C5 A5
  AS: "[f2@2 ~ f2@3 ~@2 f2@4 g2@2 ~ g2@3 [d3,e3,g3]@2 g2@2 ~@2 [c3,f3]@20 ~@4, ~@6 [c3,f3]@4 ~@13 f2@20 ~@5]/2", // Em7 F5
  AT: "[[g2,d3,g3]@22 ~ c3@2 ~@2 c3@3 ~@3 c3@2 ~ a2@2 ~ a2@3 ~@3 a2@3, ~@30 [g3,c4]@5 ~@7 [e3,a3]@5 ~]/2", // G5 C5 A5
  AU: "f2@2 ~ f2@3 ~@3 f2@3 g2@2 ~ g2@3 ~@2 g2@3 ~, ~@6 [c3,f3]@5 ~@7 [d3,g3]@4 ~@2", // F5 G5
  AV: "c3 ~@2 c3@3 [g3,c4]@2 c3@2 ~@2 a2 ~ a2@3 [e3,a3]@4 a2@2 ~", // C5 A5
  AW: "[f2,c3,f3]@2 ~ [c3,f3]@3 ~@2 g2 [d3,g3]@2 ~ [d3,g3]@8 ~@4, ~@2 f2@3 ~@6 g2@9 ~@4", // F5 G5
  AX: "[c3,g3,c4] ~ [c3,g3,c4]@2 ~ [c3,c4]@2 ~ [c3,g3,c4]@2 ~ [c3,g3,c4]@2 ~ [a2,e3,a3]@2 ~@2 [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~, ~@2 g3 ~@9", // C5 C C5 A5
  AY: "[f3@4 ~ [f2,c3,f3]@2 ~ [f2,c3,f3]@2 ~ [g2,d3,g3]@5 ~ [g2,d3,g3]@2 ~@4 g3@2 g3@2 [c3,g3,c4]@2 ~ [c3,g3,c4]@2 ~ [c3,g3,c4]@2 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~ [f2,c3]@2, f2@2 ~@21 [c3,c4]@4 ~@19 f3 ~]/2", // F5 G5 C5 A5 F5 C
  AZ: "f3@2 [f2,c3,f3]@2 ~ [f2,c3,f3] ~ f3 c3 ~ [g2,d3]@2 ~@2 f2@2 ~ [g2,d3,g3]@2 ~@2 [c3,g3] ~ c3, ~@9 g3@3 ~ [c3,f3]@3 ~@5 c4@3, ~@11 g3", // F5 G5 C5 F5
  BA: "~@2 c3@2 [c3,g3,c4]@2 ~@2 c3@2 ~ [e3,a3]@2 ~ [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~@2 [f2,c3,f3]@2 ~, ~ [g3,c4]@2 ~@4 [g3,c4]@2 ~@15", // C5 A5 F5 C5
  BB: "~ f3@2 ~ [f2,c3,f3]@2 ~ [f2,c3,f3] ~ [g2,d3,g3]@3 ~ g3@2 ~ g3 ~@3 [c3,g3,c4]@3 ~, [f2,c3]@2 ~@13 [g2,d3]@2 ~@7", // F5 G5 C5 F5 G5
  BC: "[[c3,g3,c4]@2 ~ [c3,g3,c4]@2 ~@2 g3 ~@2 [a2,e3]@2 ~ [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~ [c3,f3] ~ f3@2 ~ [f2,f3]@2 ~ c3@2 f3 ~ [g2,d3,g3]@4 ~ [c3,f3]@4 [d3,g3]@2 ~ [c3,g3,c4]@5, ~@6 [c3,c4]@2 ~ a3@2 ~@8 f2@2 ~@2 c3@2 ~ [f2,f3]@2 ~@8 f2@6 ~@6]/2", // C5 A5 F5 F G5 F5 G5 C5 …
  BD: "[[c3,g3,c4]@3 ~@3 [a2,e3,a3]@7 ~@2 [f2,c3]@7 ~ c3@5 ~@2 d3@3 ~ [f2,c3,f3]@3 ~ [d3,g3]@2 ~@2 c3@4 ~ c3@4 ~@2 e3@7 ~@2 [f2,c3]@5 ~ c3 ~@2 c3@2 [f2,c3]@2 ~ [g2,d3,g3]@3 ~@2 [f2,c3,f3]@2 ~@2 [g2,d3,g3]@2 ~ [c3,g3,c4]@6 ~@2, ~@15 f3@13 ~@13 [g3,c4]@10 ~ [a2,a3]@7 ~@3 f3@10 ~@24, ~@22 f2@5 ~@2 [g2,g3]@4 ~@4 f2@2 ~@2 d4@2 ~@24 f2@2 ~ f2@2 ~@24]/4", // C5 A5 F5 G5 F5 G5 F5 G5 …
  BE: "[~@3 [a2,e3,a3]@5 ~@4 [f2,c3,f3]@4 ~@4 [f2,c3,f3] ~@2 [f2,c3,f3]@2 ~@2 [g2,d3,g3]@4 ~ a#2 ~@3 [g2,d3,g3]@2 ~ [c3,g3,c4]@6 ~@3, ~@31 [f2,c3,f3,g3]@3 ~@5 d3@2 ~@7]/2", // A5 F5 G5 C5 Fsus2
  BF: "~@2 [a2,e3,a3]@5 ~@4 f3@7 f3@4 ~@2, ~@10 f2@11 ~@3, ~@11 c3@12 ~", // A5
  BG: "~ [g2,d3,g3]@3 ~@2 [f2,c3,f3]@2 ~@2 [g2,d3,g3] ~@3 c4@6 ~@4, ~@13 [c3,g3]@7 ~@4", // G5 F5 G5 C5
  BH: "~ [a2,e3,a3]@5 ~@4 [c3,f3]@9 ~@5, ~@3 f2@3 ~@2", // A5 F5
  BI: "[[g2,d3,g3]@3 ~ [f2,c3,f3]@2 ~@2 [g2,d3,f3,g3]@2 ~@2 [c3,g3,c4]@6 ~@5 [e3,a3]@3 ~@6 [f2,c3,f3]@9 ~@5 [g2,d3,g3]@2, ~@12 b3 ~@10 a2@5 ~@4 e3 ~@15]/2", // G5 F5 G7 C5 A5 F5 G5
  BJ: "[~@3 [f2,c3,f3]@2 ~@2 [g2,d3,g3] ~@2 [c3,g3,c4]@5 ~@7 [a2,e3,a3]@5 ~@4 [f2,c3,f3]@9 ~@5 [g2,d3,g3]@3]/2", // F5 G5 C5 A5 F5 G5
  BK: "~@2 c3@2 ~ g2 [d3,g3]@2 ~ [c3,g3,c4]@5 ~@6 [a2,e3,a3]@4, ~ [f2,f3]@2 ~@21", // G5 C5 A5 F
  BL: "[~@5 f2@39 ~@4, ~@5 f3@35 ~@8, ~@5 c3@28 ~@15]/2",
})).s("gm_overdriven_guitar").gain(0.24)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B C D E F G H@2 I J K@2 L M N O P@2 Q R S M T U V W X@2 Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO@2 AP AQ AR
  AS F AN F AT AU AV AW AT AX AY AZ@2 BA BB BC BD BE BF@2 BG BH AJ BI BJ BK@3 BL BM BN BO@2 BP@4 BQ BR BS BT BU@4 BV@3
>`.pickRestart({
  A: "c3 ~@5, b2 ~@23", B: "[e2,f2]@2 ~ f2@3 ~@3 g2@2 ~ g2@8 ~@4", C: "~@3 c3@3 g3@3 c3@3 ~@3 a2@3 e3@2 a2@3 ~",
  D: "~@3 f2@3 ~@2 f2@3 ~ g2@2 ~ g2@3 ~@2 g2@3 ~, ~@3 c3@2 ~@4 d3@2 ~", E: "c3@2 c3@4 g3@3 c3@3 ~@2 a2@4 e3@3 a2@3",
  F: "~ f2 c3 f2 ~ g2 d3 g2", G: "c3@2 ~ c3@3 g3@3 c3@3 ~@2 a2@4 e3@3 a2@3",
  H: "[~@3 f2@3 c3@2 f2@3 g2@2 ~ g2@3 ~ d3@2 g2@3 c3@2 ~ c3@3 ~ g3@3 c3@3 ~@3 a2@3 e3@3 a2@3]/2",
  I: "~@3 f2@3 c3@3 f2@3 ~@3 g2 ~ g2@2 d3@2 g2 ~@2", J: "c3@2 ~ c3@3 g3@3 c3@2 ~@3 a2@3 e3@3 a2@3 ~",
  K: "[~@3 f2@3 c3@3 f2@3 ~@3 g2@3 d3@2 g2@3 c3@2 ~@2 c3@2 g3@3 c3@2 ~@5 a2@3 e3@3 a2@3]/2",
  L: "~@3 f2@3 c3@3 f2@3 g2@2 ~ g2@3 d3@3 g2@2 ~", M: "c3@2 ~ c3@3 g3@3 c3@3 ~@3 a2@3 e3@2 a2@3 ~",
  N: "f2@2 ~ f2@3 c3@3 f2@3 g2@2 ~ g2@3 d3@2 g2@2 ~@2", O: "c3 ~@7",
  P: "[f2@2 ~ f2@3 ~@3 g2@2 ~ g2@7 ~@4 c3@2 ~ c3@3 ~ g3@3 ~@8 a2@2 e3@2 a2@2 ~]/2",
  Q: "f2@2 ~ f2@3 ~@2 f2@3 g2@2 ~ g2@4 ~@2 g2@3 ~, ~@3 c3@2 ~@4 d3@2 ~",
  R: "c3@2 ~ c3@3 g3@2 c3@2 ~@5 a2@3 e3@3 a2@2 ~", S: "f2@2 ~ f2@3 c3@3 f2@3 ~@3 g2@3 d3@2 g2@2 ~@2",
  T: "~@3 f2@3 c3@3 f2@3 ~@3 g2@3 d3@2 g2@3 ~", U: "~@3 c3@3 g3@3 c3@2 ~@4 a2@3 e3@3 a2@2 ~",
  V: "f2@2 f2@4 ~@2 f2@2 ~ g2@2 ~ g2@3 ~ d3@2 g2@2 ~@2, ~@3 c3@2 ~@7", W: "c3@2 ~ c3@3 g3@2 c3@3 ~@3 a2@4 e3@3 a2@3",
  X: "[~@2 f2@4 c3@3 f2@3 ~@2 g2@4 d3@3 g2@2 c3@2 ~ c3@3 g3@3 c3@2 ~@2 a2@2 ~ a2@3 e3@3 a2@2 ~]/2",
  Y: "f2@2 ~ f2@3 ~@2 f2@2 ~@2 g2@2 g2@3 d3@3 g2@2 ~@2, ~@3 c3@2 ~@7",
  Z: "c3@2 ~ c3@3 g3@2 c3@2 ~@2 a2@2 a2@4 e3@2 a2@2 ~@2",
  AA: "f2@2 ~ f2@2 c3@3 f2@3 g2@2 ~ g2@3 ~@3 g2@2 ~@2, ~@9 d3@2 ~", AB: "f2@5 ~ f2@4 ~@2 f2@3 ~@2 f2@4 ~@3",
  AC: "g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~", AD: "c3@2 ~ c3@3 g3@2 c3@4 ~@2 a2@4 e3@3 a2@2 ~",
  AE: "~@3 f2@3 c3@3 f2@2 ~ g2@2 ~ g2@3 d3@3 g2@2 ~", AF: "c3@2 ~ c3@3 g3@3 c3@3 ~@3 a2@3 e3@2 ~ a2@3",
  AG: "~@3 f2@3 c3@3 f2@3 ~@3 g2@3 d3@2 g2@2 ~@2", AH: "c3@2 ~ c3@3 ~@2 c3@2 ~@5 a2@3 e3@3 a2@3, ~@3 g3@2 ~@7",
  AI: "~@3 f2@3 ~@2 f2@2 ~@2 g2@2 ~ g2@3 d3@2 g2@2 ~@2, ~@3 c3@2 ~@7", AJ: "c3 ~@5",
  AK: "f2@2 ~ f2@4 ~@2 g2@2 ~ g2@9 ~@3", AL: "c3@2 ~ c3@2 g3@3 c3@3 ~@4 a2@3 e3@3 a2@3",
  AM: "~@3 f2@3 c3@3 f2@3 ~@3 g2@3 d3@3 g2@2 ~", AN: "c3@2 ~ c3@3 g3@3 c3@3 ~@3 a2@3 e3@3 a2@3",
  AO: "[~@3 f2@3 c3@3 f2@3 ~@2 g2@4 d3@3 g2@2 c3@2 ~@2 c3@3 g3@3 c3@3 ~@2 a2@4 e3@3 a2@2 ~]/2",
  AP: "f2@2 ~ f2@3 c3@3 f2@2 ~ g2@2 ~@3 d3@5 ~@2", AQ: "c3@2 ~ c3@3 g3@3 c3@3 ~@3 a2@3 e3@3 a2@2 ~",
  AR: "f2@2 ~ f2@3 ~@3 f2@2 ~ g2@4 ~@2 d3@5 ~, ~@6 c3@5 ~@13",
  AS: "c3@2 ~ c3@3 ~@2 c3@3 ~@4 a2@3 ~@2 a2@3 ~, ~@3 g3@2 ~@4 e3@2 ~", AT: "~ c3 g3 c3 ~ a2 e3 a2",
  AU: "~@2 f2@4 ~@2 f2@3 g2@2 ~ g2@3 ~ d3@2 g2@3 ~, ~@3 c3@2 ~@7", AV: "c3@2 ~ c3@3 g3@3 c3@3 ~@2 a2@3 e3@5 ~@2",
  AW: "~@3 f2@3 c3@3 f2@3 ~@2 g2@3 ~ d3@2 g2@3 ~", AX: "~@3 f2@3 ~@2 f2@3 ~@4 g2@3 d3@3 g2@2 ~, ~@3 c3@2 ~@7",
  AY: "~@2 c3@3 g3@3 c3@2 ~@2 a2@2 a2@4 e3@2 a2@3 ~",
  AZ: "[~@2 f2@4 ~@2 f2@3 g2@2 ~ g2@3 d3@3 g2@2 ~ c3@2 ~ c3@3 g3@3 c3@4 ~@2 a2@4 e3@2 a2@3 ~, ~@3 c3@2 ~@19]/2",
  BA: "~@3 f2@3 ~@2 f2@2 ~ g2@2 ~ g2@3 d3@3 g2@2 ~@2, ~@3 c3@2 ~@7", BB: "f2@16 ~ f2@5 ~@2",
  BC: "g2@4 ~ g2@5 ~ g2@4 ~@3 g2@4 ~@2", BD: "c3@2 ~ c3@3 g3@3 c3@3 ~@2 a2@4 e3@2 a2@3 ~",
  BE: "f2@2 f2@3 ~ c3@3 f2@3 g2@2 ~ g2@3 ~@2 g2@3 ~, ~@9 d3@2 ~",
  BF: "[c3@2 ~ c3@3 g3@3 c3@3 ~@2 a2@3 ~ e3@2 a2@2 ~ f2@2 ~ f2@4 ~@2 f2@3 g2@2 ~ g2@3 ~ d3@3 g2@3, ~@15 c3@2 ~@7]/2",
  BG: "c3@2 ~ c3@3 g3@3 c3@2 ~ a2 ~@2 a2@3 e3@3 a2@2 ~", BH: "f2 ~@2 f2@3 c3@3 f2@2 ~ g2@2 ~ g2@2 ~ d3@2 g2@2 ~@2",
  BI: "f2@2 ~ f2@3 ~@3 g2@2 ~ g2@9 ~@3", BJ: "c3@4 ~ c3@4 ~@3 a2@4 ~@2 a2@3 ~@3",
  BK: "[f2@4 ~ f2@4 ~@3 g2@4 ~ g2@3 ~@3 c3@4 ~@2 c3@4 ~@2 a2@4 ~ a2@3 ~@3 f2@4 ~ f2@4 ~@3 g2@3 ~@3 g2@4 ~ c3@3]/3",
  BL: "~@3 c3@4 ~@2 a2@3 ~@3 a2@3 ~@3 f2@3", BM: "~@2 f2@3 ~@4 g2@3 ~@2 g2@3 ~@3 c3@4",
  BN: "~@2 c3@4 ~@2 a2@4 ~ a2@3 ~@3 f2@3 ~@2",
  BO: "[f2@3 ~ f2@2 ~@2 g2@3 ~ f2@2 ~ g2@2 ~@2 [c2,c3]@9 ~@2 a2@5 ~ a2@3 ~ f2@4 ~ f2@2 ~]/2", // C
  BP: "[~ f2 ~ f2@3 g2@3 ~ f2@3 g2 ~@3 [c2,c3]@5 ~@2 c3@4 ~ a2@6 ~@3 f2@7 ~ f2@5 ~ g2@3 ~@2 f2@3 g2@2 ~@2 [c2,c3]@5 ~ [c2,c3]@5 ~ a2@7 ~@2 f2@7 ~ f2@3, ~@23 c2@5 ~@29 d#2 ~@38]/4", // C
  BQ: "~@3 g2@4 f2@3 ~ g2@2 ~@2 [c2,c3]@7 ~@2", BR: "~@2 a2@5 ~@3 f2@4 ~@2 f2 ~@3 f2 ~ f2@2",
  BS: "~@2 g2@4 f2@3 ~ g2@2 ~@2 c2@6 ~@4, ~@13 c3@7 ~@4", BT: "a2@6 ~@3 f2@5 ~@2 f2 ~@2 f2@2 f2@3",
  BU: "[g2@4 ~ f2@3 g2@2 ~@2 [c2,c3]@8 ~@3 a2@7 ~@2 f2@13 ~ g2@4 ~ f2@3 ~ g2@2 ~ [c2,c3]@7 ~@5 a2@6 ~@2 f2@11 ~@2 f2@2 ~ g2@2]/4", // C
  BV: "[~ f2@3 ~ g2@2 ~@2 c3@9 ~@2 a2@7 ~@2 f2@35 ~@8, ~@8 c2@9 ~@55]/3",
})).s("gm_electric_bass_finger").gain(0.37)

// other · trombone
const trombone = note(`<
  A B C D C E F E C E G H I J ~@2 K L ~@8 M N O P Q R ~@2 S T S U ~@2 K B C V W X Y Z Y AA AB@2 AC@2 AD AE AF AG AH AI
  AJ@2 AK@2 ~@2 S AL S AM ~@3 AN ~ AO@2 ~@4 AP AQ AR AS AT AU AV AW AX AY AZ@2 BA BB BC BD@2
>`.pickRestart({
  A: "c4 ~@5, b3 ~@23", B: "f3@2 ~ f3@3 ~@3 g3@2 ~ g3@8 ~@4", C: "~@6 c4@3 g3@2 ~ a3@3 c4@4 ~@2 a3@3",
  D: "~@3 g3@5 ~ c3@2 ~ e3@2 ~ e3@2 ~ d3@3 c3@3", E: "~@3 g3@4 ~@2 c3@2 ~ e3@2 ~ e3@2 ~ d3@2 ~ c3@3",
  F: "~@6 c4@3 g3@2 ~ a3@3 c4@4 ~ a3@4", G: "~@17 c3@2 ~@2 c3@2 ~", H: "f3@3 e3@2 ~ f3@2 ~ d3@12 ~@3", I: "~@9 c3!2 ~",
  J: "a3@3 g#3@3 a3@2 ~ c4@2 ~ b3@11 ~", K: "c4 ~@7", L: "f3@3 f3@3 ~@3 g3@2 ~ g3@10 ~@2",
  M: "~@2 e4@3 ~@4 e4@3 ~@2 e4@3 ~@3 e4@2 ~@2", N: "c4@3 b3@3 ~@3 e4@2 ~ d4@10 ~@2",
  O: "~@3 e4@3 ~@3 e4@3 ~@2 e4@3 ~@3 e4@2 ~@2", P: "c4@3 b3@2 ~ c4 ~@2 e4@2 ~ d4@9 ~@3",
  Q: "~@3 e4@3 ~@3 e4@3 ~@3 e4@3 ~@3 e4@2 ~", R: "c4@2 ~ b3@2 ~ c4 ~@2 e4@2 ~ d4@9 ~@3", S: "~@18 c3@2 ~ c3@2 ~",
  T: "f3@3 e3@2 ~ f3@2 ~ d3@13 ~@2", U: "a3@3 g#3@2 ~ a3@2 ~ c4@2 ~ b3@10 ~@2",
  V: "~@3 g3@5 ~ c3@2 ~ e3@2 ~@2 e3@2 d3@3 c3@2 ~", W: "~@6 c4@3 g3@2 ~ a3@2 ~ c4@3 ~@4 a3@2",
  X: "~@3 g3@3 ~@3 c3@2 ~ e3@2 ~ e3@2 ~ d3@3 c3@3", Y: "~@6 c4@3 g3@2 ~ a3@3 c4@3 ~@3 a3@3",
  Z: "~@3 g3@5 ~ c3@2 ~ e3@2 e3@2 ~@2 d3@3 c3@2 ~", AA: "~@3 g3@3 ~@6 e4@2 ~ e4@2 ~ f4@2 ~ f#4@2 ~",
  AB: "[g4@6 ~ e4@4 ~ c4@6 ~@2 c4@2 ~ d#4@2 d4@2 ~@2 d4@2 ~ d#4@2 d4@2 ~@2 d4@2 ~@2 d#4@2 ~ d#4@2 ~, ~@28 d#4@2 ~@7 d#4@2 ~@9]/2",
  AC: "[e4@5 ~ c4@5 ~ g3@2 ~ d#4@11 ~ d4@2 ~ c4@2 ~ g3@2 ~ c4@6 ~@3 c4@2 ~]/2",
  AD: "c4@2 ~ c4@3 ~@3 c4@2 ~ c4@2 c4@3 ~@4 g3@3",
  AE: "~@2 g3@4 ~@2 g3@2 ~ e3@2 ~ g3@2 ~@3 f3@2 g3@2 ~, ~@13 f3@3 ~@2 e3@2 ~@4", AF: "c3@3 c3@2 ~@4 c4@12 ~@3",
  AG: "d#4@3 ~ d4@3 c4@3 ~ g4@8 ~@5", AH: "~@2 e4@3 ~@4 e4@3 ~@3 e4@3 ~@3 e4@2 ~", AI: "c4@3 b3@2 ~@4 e4@2 ~ d4@9 ~@3",
  AJ: "[~@3 e4@3 ~@3 e4@3 ~@2 e4@3 ~@3 e4@2 ~ c4@3 b3@2 ~@5 e4@2 ~ d4@6 ~@6]/2",
  AK: "[~@3 e4@3 ~@3 e4@3 ~@3 e4@3 ~@3 e4@2 c4@2 ~ b3@2 ~@4 e4@2 ~@2 d4@10 ~@2]/2", AL: "f3@3 e3@2 ~ f3@2 ~ d3@11 ~@4",
  AM: "a3@3 g#3@2 a3@2 ~@2 c4@2 ~ b3@12", AN: "f3@2 ~ f3@2 ~@4 g3@2 ~ g3@10 ~@2", AO: "[~ b3 ~@17 b3@3 ~ c4@3 ~@22]/2",
  AP: "~@19 c4@5", AQ: "~@6 c4@3 ~@2 b3@2 ~@2 c4@9", AR: "~@3 c4", AS: "~@5 c4@3 ~ [a#3,b3]@2 ~@2 c4@11",
  AT: "~@17 c4@7", AU: "~@4 c4@3 ~ b3@2 ~@2 c4@7 ~@5", AV: "~@5 c4@2 ~", AW: "~ c4 ~ b3 ~ c4@4 ~@3",
  AX: "~@14 c4@5 ~@5", AY: "~ c4@3 ~ b3@2 ~@2 c4@8 ~@7", AZ: "[~@12 c4@6 ~@5 c4@2 ~@2 b3@2 ~@3 c4@6 ~@10]/2",
  BA: "~@10 c4@7 ~@5 c4@2", BB: "~@2 b3@3 ~ c4@9 ~@9", BC: "~@9 c4@5 ~@6 f3@3 ~", BD: "[~ e3@3 ~ c3@27 ~@16]/2",
})).s("gm_trombone").gain(0.57)

// drums · kick
const kick = s("bd").struct(`<
  A B C D E F G@2 H I J K L M N O A B J M P Q P M G A R M S Q T U V W X Y I G Z AA AB AC AD G@2 AE G I G AF G Z G@5 A AG
  G@2 Z G AH AI ~ J Q G@2 AJ I A AC AK AL AM AN AO AP@2 AQ AR AS AT AU AV AU AW AX AY AZ AA BA BB BC BD ~
>`.pickRestart({
  A: "x", B: "x!2 ~ x!2 ~@3", C: "~ x ~@7 x ~@5 x ~@6 x ~", D: "~@4 x ~@5 x ~@2 x ~@2 x ~@5 x ~", E: "x!2 ~ x ~ x ~ x",
  F: "~@3 x ~@6 x ~@13", G: "x ~@2 x ~ x ~@2", H: "x ~@10 x ~@12", I: "x!2", J: "x ~@2 x ~ x ~ x",
  K: "~@3 x ~@5 x ~@5 x ~@4 x ~@3", L: "x ~@2 x ~@5 x ~@4 x ~@5 x ~@3", M: "~ x ~ x ~ x ~ x",
  N: "~@3 x ~@4 x ~@5 x ~@5 x ~@3", O: "~@2 x ~@6 x ~@5 x ~@4 x ~@3", P: "x ~@8 x ~@4 x ~@6 x ~@2",
  Q: "~ x ~ x ~ x ~@2", R: "~ x ~@7 x ~@5 x ~@5 x ~@2", S: "~@3 x ~ x ~ x", T: "x ~@8 x ~@4 x ~@8 x",
  U: "~@12 x ~@10 x", V: "~@6 x ~@5 x ~@4 x ~@6", W: "x ~ x!2 ~@4", X: "x ~@7 x ~@6 x ~@7 x", Y: "~@3 x ~ x ~@2",
// … 82 more lines

More by Reel Big Fish