Strudelify

icky thump

The White Stripes

KeyF♯ majorTempo82 bpm
0:00/0:00
// icky thump — The White Stripes
// 82 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 (1/4 at bar 1, 4/4 at bar 1, 3/4 at bar 2, 3/16 at bar 3, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 3 "Tenor Sax 1" named as a reed, played on tenor sax (its electric bass pick patch is not one); ch 4 "Tenor Sax 2" named as a reed, played on tenor sax (its slap bass 1 patch is not one); ch 5 "Bari Sax" named as a reed, played on baritone sax (its slap bass 2 patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5942733; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 89 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(82/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 · trombone · "Alto Sax 1"
const trombone = note(`<
  ~@2 A B C D ~ E F ~ G H I J K L M N O P Q@2 R@2 S ~ T U@2 V W X Y Z AA AB AC AD AE AF AG ~@4 AH ~ AI ~@2 AJ@2 AK AL@2
  AM AN K L AO AP O AQ AR ~ AS AT AU AV AW AX@2 AY AZ BA@2 BB BC BD BE BF BG BH P BI BJ BK@3
>`.pickRestart({
  A: "~@9 a3@2 a3@2 ~ d4@5 e4@5 ~@24", B: "~@39 a3@2 a3@2 ~ d4@4", C: "~ e4@5 ~@42",
  D: "~@20 a3@2 ~ a3@2 d4@5 e4@5 ~@13", E: "~@2 a3@2 ~ a3@2 d4@5 e4@5 d6@10 ~@21",
  F: "~@32 a3@2 ~ a3@2 [a2,d4]@5 [b2,e4]@5 ~", G: "~@14 a3@2 a3@2 ~ [a2,d4]@5 [b2,e4]@5 d6@10 ~@9", H: "~@22 a3!2",
  I: "~ [a2,d4]@5 [b2,e4]@5 ~@37", J: "~@25 a3@2 ~ a3@2 [a2,d4]@5 ~ [b2,e4]@6 ~@6", K: "~@9 a2@2 b2@2 ~@3",
  L: "~@4 a2 b2 ~@2", M: "~@7 a2@2 b2@2 ~@5", N: "f#3 ~ g#3 ~ f#3 g#3@2 ~ b2@2 ~@6", O: "~@5 [a2,d4]@2 [b2,e4]@2 ~@7",
  P: "~@2 [a2,d4] [b2,e4] ~@4", // D5 E5
  Q: "[~@9 [a2,d4]@5 [b2,e4]@6 ~@15 [f#3,a4]@3 ~@3 g#3@3 ~@3 [f#3,a4]@3 [g#3,b4]@6 ~@40, ~@41 b4 ~@54]/2", // D5 E5 F#m G#m
  R: "[~@41 a3@2 ~ a3@2 d4@5 e4@5 ~@40]/2", S: "~@23 a3@2 ~ a3@2 d4@5 e4@5 ~@10",
  T: "~@5 a3@2 a3@2 ~ d4@5 e4@5 d6@10 ~@18", U: "[~@35 a3@2 a3@2 ~ [a2,d4]@5 [b2,e4]@5 ~@46]/2",
  V: "~@17 a3@2 a3@2 ~ [a2,d4]@5 [b2,e4]@5 d6@3 d6 ~@12", W: "~@23 a3", X: "~ a3@2 [a2,d4]@5 [b2,e4]@5 ~@35",
  Y: "~@28 a3@2 ~ a3@2 [a2,d4]@5 [b2,e4]@6 ~@4", Z: "~@29 a2@6 b2@6 ~@7", AA: "~@13 a2@3 b2@3 ~@5",
  AB: "~@23 a2@6 b2@6 ~@13", AC: "~@2 f#3@3 ~@3 g#3@3 ~@3 f#3@3 g#3@6 ~@3 b2@6 ~@16",
  AD: "~@17 [a2,d4]@6 [b2,e4]@6 ~@19", AE: "~@7 [a2,d4]@3 [b2,e4]@3 ~@11",
  AF: "~@11 [a2,d4]@6 [b2,e4]@6 ~@15 [f#3,a4]@3 ~@3 g#3@3 ~, ~@44 b4 ~@3", AG: "~@2 [f#3,a4]@3 [g#3,b4]@12 ~@31",
  AH: "~@32 a2@5 b2@5 ~@6", AI: "~@18 a2@5 ~ b2@5 ~@19", AJ: "[~@40 [a2,d4]@5 ~ [b2,e4]@5 ~@45]/2",
  AK: "~@17 a3@2 ~ a3@2 [a2,d4]@5 [b2,e4]@5 d6@2 ~ d6@2 ~@11", AL: "[~@47 a3@2 ~ a3@2 [a2,d4]@5 [b2,e4]@5 ~@34]/2",
  AM: "~@29 a3@2 a3@2 ~ [a2,d4]@5 [b2,e4]@6 ~@3", AN: "~@5 a2 b2 ~", AO: "~ f#3 ~ g#3 ~ f#3 g#3@2 ~ b2@2 ~@5",
  AP: "~@3 [a2,d4] [b2,e4] ~@3", AQ: "~@4 [a2,d4]@2 [b2,e4]@2 ~@5 [f#3,a4] ~ g#3, ~@45 b4 ~@2",
  AR: "~ [f#3,a4] [g#3,b4]@2 ~@12", AS: "a3!2 [a2,d4]@2 [b2,e4]@2 ~@10", AT: "~@15 a3",
  AU: "a3 [a2,d4]@2 [b2,e4]@2 ~@11", AV: "~@14 a3!2", AW: "[a2,d4] [b2,e4] ~@6",
  AX: "[~@13 a3!2 [a2,d4]@2 [b2,e4]@2 ~@13]/2", AY: "~@12 a3!2 [a2,d4]@2", AZ: "[b2,e4] ~@7",
  BA: "[~@11 a3!2 [a2,d4]@2 [b2,e4]@2 ~@11 a2@2 b2@2]/2", BB: "~@11 a2@2 [b2,e4]@2 ~", BC: "~@5 [a2,d4] [b2,e4] ~",
  BD: "~@3 [f#3,a4] ~ g#3 ~ [f#3,a4] [g#3,b4]@3 [b2,e4]@2 ~@3, ~@15 b4 ~@32", BE: "~@4 [a2,d4] [b2,e4] ~@2",
  BF: "~@7 [a2,d4]@2 [b2,e4]@2 ~@5", BG: "~@6 [a2,d4]@2 [b2,e4]@2 ~@5 [f#3,a4]",
  BH: "~ g#3 ~ [f#3,a4] [g#3,b4]@3 [b2,e4]@2 ~@7, ~@3 b4 ~@44", BI: "~@3 [a2,d4]@2 [b2,e4]@2 ~@9",
  BJ: "~@2 [a2,d4]@2 [b2,e4]@2 ~@5 [f#3,a4] ~ g#3 ~ [f#3,a4], ~@39 b4 ~@8", BK: "[~@3 b4@16 b4@2 ~@3, ~@2 g#3 ~@13]/3",
})).s("gm_trombone").gain(0.3)

// chords · trombone · "Alto Sax 2"
const trombone_2 = note(`<
  ~@2 A B C D ~ E F ~ G H I J K L M N O P Q@2 R@2 S ~ T U@2 V W X Y Z AA AB AC AD AE AF AG ~@4 AH ~ AI ~@2 AJ@2 AK AL@2
  AM AN K L AO AP O AQ AR ~ AS AT AU AV AW AX@2 AY AZ BA@2 BB BC BD BE BF BG BH P BI BJ BK@3
>`.pickRestart({
  A: "~@9 f#3@2 f#3@2 ~ b3@5 b3@5 ~@24", B: "~@39 f#3@2 f#3@2 ~ b3@4", C: "~ b3@5 ~@42",
  D: "~@20 f#3@2 ~ f#3@2 b3@5 b3@5 ~@13", E: "~@2 f#3@2 ~ f#3@2 b3@5 b3@5 ~@31",
  F: "~@32 f#3@2 ~ f#3@2 [b2,b3]@5 [e2,b3]@5 ~", G: "~@14 f#3@2 f#3@2 ~ [b2,b3]@5 [e2,b3]@5 ~@19", H: "~@22 f#3!2",
  I: "~ [b2,b3]@5 [e2,b3]@5 ~@37", J: "~@25 f#3@2 ~ f#3@2 [b2,b3]@5 ~ [e2,b3]@6 ~@6", K: "~@9 g2@2 e2@2 ~@3",
  L: "~@4 g2 e2 ~@2", M: "~@7 g2@2 e2@2 ~@5", N: "d2 ~ e2 ~ d2 e2@2 ~ e2@2 ~@6", O: "~@5 [g2,b3]@2 [e2,b3]@2 ~@7",
  P: "~@2 [g2,b3] [e2,b3] ~@4", // G E5
  Q: "[~@9 [g2,b3]@5 [e2,b3]@6 ~@15 [d2,f#4]@3 ~@3 [e2,g#4]@3 ~@3 [d2,f#4]@3 [e2,g#4]@6 ~@40]/2", // G E5 D E D E
  R: "[~@41 f#3@2 ~ f#3@2 b3@5 b3@5 ~@40]/2", S: "~@23 f#3@2 ~ f#3@2 b3@5 b3@5 ~@10",
  T: "~@5 f#3@2 f#3@2 ~ b3@5 b3@5 ~@28", U: "[~@35 f#3@2 f#3@2 ~ [b2,b3]@5 [e2,b3]@5 ~@46]/2",
  V: "~@17 f#3@2 f#3@2 ~ [b2,b3]@5 [e2,b3]@5 ~@16", W: "~@23 f#3", X: "~ f#3@2 [b2,b3]@5 [e2,b3]@5 ~@35",
  Y: "~@28 f#3@2 ~ f#3@2 [b2,b3]@5 [e2,b3]@6 ~@4", Z: "~@29 g2@6 e2@6 ~@7", AA: "~@13 g2@3 e2@3 ~@5",
  AB: "~@23 g2@6 e2@6 ~@13", AC: "~@2 d2@3 ~@3 e2@3 ~@3 d2@3 e2@6 ~@3 e2@6 ~@16", AD: "~@17 [g2,b3]@6 [e2,b3]@6 ~@19",
  AE: "~@7 [g2,b3]@3 [e2,b3]@3 ~@11", AF: "~@11 [g2,b3]@6 [e2,b3]@6 ~@15 [d2,f#4]@3 ~@3 [e2,g#4]@3 ~",
  AG: "~@2 [d2,f#4]@3 [e2,g#4]@12 ~@31", AH: "~@32 b2@5 e2@5 ~@6", AI: "~@18 b2@5 ~ e2@5 ~@19",
  AJ: "[~@40 [b2,b3]@5 ~ [e2,b3]@5 ~@45]/2", AK: "~@17 f#3@2 ~ f#3@2 [b2,b3]@5 [e2,b3]@5 ~@16",
  AL: "[~@47 f#3@2 ~ f#3@2 [b2,b3]@5 [e2,b3]@5 ~@34]/2", AM: "~@29 f#3@2 f#3@2 ~ [b2,b3]@5 [e2,b3]@6 ~@3",
  AN: "~@5 g2 e2 ~", AO: "~ d2 ~ e2 ~ d2 e2@2 ~ e2@2 ~@5", AP: "~@3 [g2,b3] [e2,b3] ~@3",
  AQ: "~@4 [g2,b3]@2 [e2,b3]@2 ~@5 [d2,f#4] ~ [e2,g#4]", AR: "~ [d2,f#4] [e2,g#4]@2 ~@12",
  AS: "f#3!2 [b2,b3]@2 [e2,b3]@2 ~@10", AT: "~@15 f#3", AU: "f#3 [b2,b3]@2 [e2,b3]@2 ~@11", AV: "~@14 f#3!2",
  AW: "[b2,b3] [e2,b3] ~@6", AX: "[~@13 f#3!2 [b2,b3]@2 [e2,b3]@2 ~@13]/2", AY: "~@12 f#3!2 [b2,b3]@2",
  AZ: "[e2,b3] ~@7", BA: "[~@11 f#3!2 [b2,b3]@2 [e2,b3]@2 ~@11 g2@2 e2@2]/2", BB: "~@11 g2@2 [e2,b3]@2 ~",
  BC: "~@5 [g2,b3] [e2,b3] ~", BD: "~@3 [d2,f#4] ~ [e2,g#4] ~ [d2,f#4] [e2,g#4]@3 [e2,b3]@2 ~@3",
  BE: "~@4 [g2,b3] [e2,b3] ~@2", BF: "~@7 [g2,b3]@2 [e2,b3]@2 ~@5", BG: "~@6 [g2,b3]@2 [e2,b3]@2 ~@5 [d2,f#4]",
  BH: "~ [e2,g#4] ~ [d2,f#4] [e2,g#4]@3 [e2,b3]@2 ~@7", BI: "~@3 [g2,b3]@2 [e2,b3]@2 ~@9",
  BJ: "~@2 [g2,b3]@2 [e2,b3]@2 ~@5 [d2,f#4] ~ [e2,g#4] ~ [d2,f#4]", BK: "[~@3 g#4@16 g#4@2 ~@3, ~@2 e2 ~@13]/3",
})).s("gm_trombone").gain(0.3)

// other · tenor sax · "Tenor Sax 1"
const tenor_sax = note(`<
  A@2 B C D E F G H I J K L@2 M N O P Q R S@4 T U V@5 W X Y Z AA AB AC AD AE AF@3 AG AH@2 AI AJ@2 AK AL@2 AM@3 AN AO M N
  AP AQ Q AR AS@3 AT AU@2 AV AW@2 AX AY AZ@2 BA BB BC BD BE BF BG R BH BI BJ@3
>`.pickRestart({
  A: "[~@37 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@4]/2",
  B: "~ e2@4 ~@4 [e2,d3]@2 d3@2 ~ [d2,f#3]@5 [e2,e3]@5 ~@5 e2@5 ~@5 e2@5 ~@4, ~@11 e2 ~@36", // E7 D E
  C: "~ e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@4 ~@4 [e2,d3]@2 d3@2 ~ [d2,f#3]@4, ~@41 e2 ~@6", // E7 D
  D: "~ [e2,e3]@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@2", // E
  E: "~@3 e2@5 ~@5 e2@4 ~@3 [e2,d3]@2 ~ d3@2 [d2,f#3]@5 [e2,e3]@5 ~@5 e2@5 ~@3, ~@23 e2 ~@24", // E7 D E
  F: "~@2 e2@5 ~@6 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@4 ~",
  G: "~@2 [e2,d3]@2 ~ d3@2 [d2,f#3]@5 [e2,e3]@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~, ~@5 e2 ~@42", // E7 D E
  H: "~@4 e2@5 ~@5 e2@5 ~@5 e2@4 ~@4 [e2,d3]@2 ~ d3@2 [d2,f#3]@5 [e2,e3]@5 ~, ~@35 e2 ~@12", // E7 D E
  I: "~@4 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@4",
  J: "~@6 e2@4 ~@4 [e2,d3]@2 d3@2 ~ [d2,f#3]@5 [e2,e3]@5 ~@5 e2@5 ~@5 e2@4, ~@16 e2 ~@31", // E7 D E
  K: "~@6 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@4 ~@4 [e2,d3]@2 d3@2, ~@46 e2 ~", // E7
  L: "[~ [d2,f#3]@5 [e2,e3]@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@4 ~@3 [e2,d3]@2 ~ d3@2 [d2,f#3]@5 ~ e2@12, ~@76 e2 ~@7 e3@6 ~@6]/2", // D E E7 D
  M: "~@9 g2@2 e2@2 ~@3", N: "~@4 g2 e2 ~@2", O: "~@7 g2@2 e2@2 ~@5", P: "d2@3 ~@3 e2 ~@5 d2@3 e2@6 ~@3 e2@6 ~@18",
  Q: "~@5 [g2,f#3]@2 [e2,e3]@2 ~@7", R: "~@2 [g2,f#3] [e2,e3] ~@4",
  S: "[~@9 f#3@5 e3@6 ~@15 d3@3 ~@3 e3@3 ~@3 d3@3 e3@6 ~@3 e2@78 d3@2 ~ d3@2 f#3@5 [e2,e3]@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@6 e2@4]/4", // E
  T: "~@6 e2@5 ~@5 e2@4 ~@3 [e2,d3]@2 ~ d3@2 [d2,f#3]@5 [e2,e3]@5 ~@5 e2@5, ~@26 e2 ~@21", // E7 D E
  U: "~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@3",
  V: "[~@5 [e2,d3]@2 d3@2 ~ [d2,f#3]@5 [e2,e3]@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@4 ~@4 [e2,d3]@2 d3@2 ~ [d2,f#3]@5 [e2,e3]@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@4 ~@4 [e2,d3]@2 d3@2 ~ [d2,f#3]@5 [e2,e3]@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@4 ~@3 [e2,d3]@2, ~@7 e2 ~@77 e2 ~@77 e2 ~@76]/5", // E7 D E E7 D E E7 D …
  W: "~ d3@2 [d2,f#3]@5 [e2,e3]@5 ~@5 e2@5 ~@6 e2@5 ~@5 e2@5 ~@4, ~ e2 ~@46", // D E
  X: "~ e2@5 ~@5 e2@5 ~@5 e2@4 ~@3 [e2,d3]@2 ~ d3@2 [d2,f#3]@5 e3@6 ~@4, ~@31 e2 ~@16", Y: "~@29 g2@6 e2@6 ~@7",
  Z: "~@13 g2@3 e2@3 ~@5", AA: "~@23 g2@6 e2@6 ~@13", AB: "~@2 d2@3 ~@3 e2 ~@5 d2@3 e2@6 ~@3 e2@6 ~@16",
  AC: "~@17 [g2,f#3]@6 [e2,e3]@6 ~@19", AD: "~@7 [g2,f#3]@3 [e2,e3]@3 ~@11",
  AE: "~@11 [g2,f#3]@6 [e2,e3]@6 ~@15 [d2,d3]@3 ~@3 e3@3 ~, ~@44 e2 ~@3", // Gmaj7 E D
  AF: "[~@2 [d2,d3]@3 [e2,e3]@12 d2@12 e1@12 f1@11 g1@12 d2@12 e1@12 f1@11 g1@12 d2@12 e1@11 f1@10]/3", // D E
  AG: "~@2 g1@12 d2@12 e1@11 f1@11",
  AH: "[~ g1@12 e2@5 ~@5 e2@5 ~@6 e2@5 ~@6 e2@5 ~@5 e2@5 ~@6 e2@5 ~@6 e2 ~@2 d2@5 e2@5 ~@6]/2",
  AI: "e2@5 ~@5 e2@5 ~@6 e2@5 ~@6 e2@5 ~@5 e2@5 ~",
  AJ: "[~@5 e2@5 ~@6 e2 ~ d2@5 ~ e2@5 ~@5 e2@5 ~@6 e2@5 ~@6 e2@5 ~@6 e2@5 ~@5 e2@5 ~@6 e2@5 ~@3]/2",
  AK: "~@3 e2 ~ d2@5 ~ e2@5 ~@5 e2@5 ~@6 e2@5 ~@6 e2@5",
  AL: "[~@38 e2 ~ [d2,f#3]@5 ~ [e2,e3]@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@5]/2", // D E
  AM: "[e2@5 ~@5 e2@5 ~@2 d3@2 ~ d3@2 [d2,f#3]@5 [e2,e3]@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@6 e2@5 ~@5 e2@5 ~@5 e2@5 ~@2 d3@2 ~ d3@2 [d2,f#3]@5 [e2,e3]@5 ~@5 e2@5 ~@5 e2@5 ~@5 e2@5 ~@4, ~@20 e2 ~@77 e2 ~@45]/3", // D E D E
  AN: "~ e2@5 ~@5 e2@5 ~@5 e2@5 ~@3 d3@2 d3@2 ~ [d2,f#3]@5 [e2,e3]@9, ~@31 e2 ~@16", AO: "~@5 g2 e2 ~",
  AP: "~@3 d2@3 ~@3 e2 ~@5 d2@3 e2@6 ~@3 e2@6 ~@15", AQ: "~@3 [g2,f#3] [e2,e3] ~@3", AR: "~@4 f#3@2 e3@2 ~@5 d3 ~ e3",
  AS: "[~ d3 e3@2 ~ e2@27 d3!2 [d2,f#3]@2 [e2,e3]@2 ~@2 e2@2 ~@2 e2@2 ~@2, ~@99 e2 ~@44]/3", // D E
  AT: "e2@6 ~@6 e2@6 ~@6 e2@6 ~@6 e2@4 ~@5 [e2,d3]@3", // E7
  AU: "[d3@3 [d2,f#3]@6 [e2,e3]@6 ~@6 e2@6 ~@6 e2@6 ~@6 e2@6 ~@6 e2@6 ~@6 e2@6 ~@6 e2@4 ~@5 [e2,d3]@3 d3@3, e2 ~@92 e2 ~@2]/2", // D E E7
  AV: "[d2,f#3] [e2,e3] ~ e2 ~ e2 ~ e2", // D E
  AW: "[~@6 e2@6 ~@6 e2@6 ~@6 e2@4 ~@5 [e2,d3]@3 d3@3 [d2,f#3]@6 [e2,e3]@6 ~@6 e2@6 ~@6 e2@6 ~@6 e2@6 ~@3, ~@42 e2 ~@53]/2", // E7 D E
  AX: "~@3 e2@6 ~@6 e2@6 ~@6 e2@4 ~@5 [e2,d3]@3 d3@3 [d2,f#3]@6, ~@39 e2 ~@8", AY: "[e2,e3] ~ e2 ~ e2 ~ e2 ~",
  AZ: "[e2@6 ~@6 e2@6 ~@6 e2@4 ~@5 [e2,d3]@3 d3@3 [d2,f#3]@6 [e2,e3]@6 ~@33 g2@6 e2@6, ~@36 e2 ~@59]/2", // E7 D E
  BA: "~@11 g2@2 [e2,e3]@2 ~", BB: "~@5 f#3 [e2,e3] ~",
  BC: "~@3 [d2,d3] ~ e3 ~ [d2,d3] [e2,e3]@3 [e2,e3]@2 ~@3, ~@15 e2 ~@32", BD: "~@4 [g2,f#3] [e2,e3] ~@2",
  BE: "~@7 [g2,f#3]@2 [e2,e3]@2 ~@5", BF: "~@6 f#3@2 e3@2 ~@5 d3", BG: "~ e3 ~ d3 e3@3 [e2,e3]@2 ~@7",
  BH: "~@3 [g2,f#3]@2 [e2,e3]@2 ~@9", BI: "~@2 f#3@2 e3@2 ~@5 d3 ~ e3 ~ d3",
  BJ: "[~@21 d2@4 e1@4 g1@4 a1@4 a#1@4 b1@16 [e1,e3]@6 ~@9, ~@3 e3@16 ~@5]/3", // E
})).s("gm_tenor_sax").gain(0.3)

// other · tenor sax · "Tenor Sax 2"
const tenor_sax_2 = note(`<
  ~@2 A B C D ~ E F ~ G H I J ~@4 K L M@2 N@2 O ~ P Q@2 R S T U ~@4 V W X Y ~@9 Z@2 AA AB@2 AC ~@4 AD K AE AF ~ AG AH AI
  AJ AK AL@2 AM AN AO@2 AP AQ AR AS AT AU AV L AW AX AY@3
>`.pickRestart({
  A: "~@9 b2@2 b2@2 ~ d3@5 b2@5 ~@24", B: "~@39 b2@2 b2@2 ~ d3@4", C: "~ b2@5 ~@42",
  D: "~@20 b2@2 ~ b2@2 d3@5 b2@5 ~@13", E: "~@2 b2@2 ~ b2@2 d3@5 b2@5 ~@31", F: "~@32 b2@2 ~ b2@2 d3@5 b2@5 ~",
  G: "~@14 b2@2 b2@2 ~ d3@5 b2@5 ~@19", H: "~@22 b2!2", I: "~ d3@5 b2@5 ~@37", J: "~@25 b2@2 ~ b2@2 d3@5 ~ b2@6 ~@6",
  K: "~@5 d3@2 b2@2 ~@7", L: "~@2 d3 b2 ~@4", M: "[~@9 d3@5 b2@6 ~@15 a2@3 ~@3 b2@3 ~@3 g#2@3 b2@6 ~@40]/2",
  N: "[~@41 b2@2 ~ b2@2 d3@5 b2@5 ~@40]/2", O: "~@23 b2@2 ~ b2@2 d3@5 b2@5 ~@10", P: "~@5 b2@2 b2@2 ~ d3@5 b2@5 ~@28",
  Q: "[~@35 b2@2 b2@2 ~ d3@5 b2@5 ~@46]/2", R: "~@17 b2@2 b2@2 ~ d3@5 b2@5 ~@16", S: "~@23 b2",
  T: "~ b2@2 d3@5 b2@5 ~@35", U: "~@28 b2@2 ~ b2@2 d3@5 b2@6 ~@4", V: "~@17 d3@6 b2@6 ~@19", W: "~@7 d3@3 b2@3 ~@11",
  X: "~@11 d3@6 b2@6 ~@15 a2@3 ~@3 b2@3 ~", Y: "~@2 g#2@3 b2@12 ~@31", Z: "[~@40 d3@5 ~ b2@5 ~@45]/2",
  AA: "~@17 b2@2 ~ b2@2 d3@5 b2@5 ~@16", AB: "[~@47 b2@2 ~ b2@2 d3@5 b2@5 ~@34]/2",
  AC: "~@29 b2@2 b2@2 ~ d3@5 b2@6 ~@3", AD: "~@3 d3 b2 ~@3", AE: "~@4 d3@2 b2@2 ~@5 a2 ~ b2", AF: "~ g#2 b2@2 ~@12",
  AG: "b2!2 d3@2 b2@2 ~@10", AH: "~@15 b2", AI: "b2 d3@2 b2@2 ~@11", AJ: "~@14 b2!2", AK: "d3 b2 ~@6",
  AL: "[~@13 b2!2 d3@2 b2@2 ~@13]/2", AM: "~@12 b2!2 d3@2", AN: "b2 ~@7", AO: "[~@11 b2!2 d3@2 b2@2 ~@15]/2",
  AP: "~@13 b2@2 ~", AQ: "~@5 d3 b2 ~", AR: "~@3 a2 ~ b2 ~ g#2 b2@3 b2@2 ~@3", AS: "~@4 d3 b2 ~@2",
  AT: "~@7 d3@2 b2@2 ~@5", AU: "~@6 d3@2 b2@2 ~@5 a2", AV: "~ b2 ~ g#2 b2@3 b2@2 ~@7", AW: "~@3 d3@2 b2@2 ~@9",
  AX: "~@2 d3@2 b2@2 ~@5 a2 ~ b2 ~ g#2", AY: "[~@3 b2@16 b2@2 ~@3]/3",
})).s("gm_tenor_sax").gain(0.3)

// other · baritone sax · "Bari Sax"
const baritone_sax = note(`<
  ~@2 A B C D ~ E F ~ G H I J ~@4 K L M@2 N@2 O ~ P Q@2 R S T U ~@4 V W X Y ~@9 Z@2 AA AB@2 AC ~@4 AD K AE AF ~ AG AH AI
  AJ AK AL@2 AM AN AO@2 AP AQ AR AS AT AU AV L AW AX AY@3
>`.pickRestart({
  A: "~@9 a2@2 a2@2 ~ d3@5 e3@5 ~@24", B: "~@39 a2@2 a2@2 ~ d3@4", C: "~ e3@5 ~@42",
  D: "~@20 a2@2 ~ a2@2 d3@5 e3@5 ~@13", E: "~@2 a2@2 ~ a2@2 d3@5 e3@5 ~@31", F: "~@32 a2@2 ~ a2@2 d3@5 e3@5 ~",
  G: "~@14 a2@2 a2@2 ~ d3@5 e3@5 ~@19", H: "~@22 a2!2", I: "~ d3@5 e3@5 ~@37", J: "~@25 a2@2 ~ a2@2 d3@5 ~ e3@6 ~@6",
  K: "~@5 d3@2 e3@2 ~@7", L: "~@2 d3 e3 ~@4", M: "[~@9 d3@5 e3@6 ~@15 d2@3 ~@3 e2@3 ~@3 d2@3 e2@6 ~@40]/2",
  N: "[~@41 a2@2 ~ a2@2 d3@5 e3@5 ~@40]/2", O: "~@23 a2@2 ~ a2@2 d3@5 e3@5 ~@10", P: "~@5 a2@2 a2@2 ~ d3@5 e3@5 ~@28",
  Q: "[~@35 a2@2 a2@2 ~ d3@5 e3@5 ~@46]/2", R: "~@17 a2@2 a2@2 ~ d3@5 e3@5 ~@16", S: "~@23 a2",
  T: "~ a2@2 d3@5 e3@5 ~@35", U: "~@28 a2@2 ~ a2@2 d3@5 e3@6 ~@4", V: "~@17 d3@6 e3@6 ~@19", W: "~@7 d3@3 e3@3 ~@11",
  X: "~@11 d3@6 e3@6 ~@15 d2@3 ~@3 e2@3 ~", Y: "~@2 d2@3 e2@12 ~@31", Z: "[~@40 d3@5 ~ e3@5 ~@45]/2",
  AA: "~@17 a2@2 ~ a2@2 d3@5 e3@5 ~@16", AB: "[~@47 a2@2 ~ a2@2 d3@5 e3@5 ~@34]/2",
  AC: "~@29 a2@2 a2@2 ~ d3@5 e3@6 ~@3", AD: "~@3 d3 e3 ~@3", AE: "~@4 d3@2 e3@2 ~@5 d2 ~ e2", AF: "~ d2 e2@2 ~@12",
  AG: "a2!2 d3@2 e3@2 ~@10", AH: "~@15 a2", AI: "a2 d3@2 e3@2 ~@11", AJ: "~@14 a2!2", AK: "d3 e3 ~@6",
  AL: "[~@13 a2!2 d3@2 e3@2 ~@13]/2", AM: "~@12 a2!2 d3@2", AN: "e3 ~@7", AO: "[~@11 a2!2 d3@2 e3@2 ~@15]/2",
  AP: "~@13 e3@2 ~", AQ: "~@5 d3 e3 ~", AR: "~@3 d2 ~ e2 ~ d2 e2@3 e3@2 ~@3", AS: "~@4 d3 e3 ~@2",
  AT: "~@7 d3@2 e3@2 ~@5", AU: "~@6 d3@2 e3@2 ~@5 d2", AV: "~ e2 ~ d2 e2@3 e3@2 ~@7", AW: "~@3 d3@2 e3@2 ~@9",
  AX: "~@2 d3@2 e3@2 ~@5 d2 ~ e2 ~ d2", AY: "[~@3 e2@16 e2@2 ~@3]/3",
})).s("gm_baritone_sax").gain(0.3)

// other · trumpet · "Trumpet 1"
const trumpet = note("<~@7 A@4 ~@15 B C D E F G H ~@7 I J ~ K L ~@2 M N O ~@36 P@3>".pickRestart({
  A: "[~@22 a5@5 a5@2 ~ g5@2 a5@5 a5@2 ~ g5@2 a5@5 a5@2 ~ g5@2 a5@5 a5@2 ~ g5@2 a5@2 ~ a5@2 g5@2 ~ a5@5 g5@2 ~ b5@8 ~@9 g5@5 g5@5 g5@2 ~ e5@2 g5@5 g5@2 ~ e5@2 g5@5 g5@2 ~ e5@2 g5@5 g5@2 ~ e5@2 g5@2 ~ g5@2 g5@2 ~ e5@2 g5@2 ~ g5@2 g5@2 ~ e5@4 ~@30]/4",
  B: "~@25 a5@5 ~@18", C: "~@7 a5@5 a5@2 ~ g5@2 ~@31", D: "~@2 g5@5 g5@3 g5 ~ g5@3 e5 ~ g5@3 ~@28", E: "~@37 a5@5 ~@6",
  F: "~@19 a5@2 ~@3 a5@2 ~@22", G: "~@13 e5@5 e5@3 ~ f#5@3 g5@3 ~ a5@3 g5@3 f#5@3 ~ e5@3 f#5@3 g5@3",
  H: "~ e5@10 d5@10 b4@10 ~@17", I: "~@17 d5@6 c5@2 a4@3 ~@20", J: "~@16 d5@6 c5@2 a4@3 ~@21",
  K: "~@2 g5@6 f5@2 d5@3 ~@35", L: "~ g5@6 f5@2 d5@3 ~@36",
  M: "~@18 a5@3 a5@3 a5@2 b5@3 e5@3 ~@2 a5@3 ~@3 a5@2 a5@3 a5@3",
  N: "b5@3 e5@2 g5@3 ~@3 a5@2 a5@3 a5@3 a5@2 a5@3 b5@5 b5@5 ~ b5@2 b5@3 g5@3 g5@2 g5@3",
  O: "a5@5 ~@11 b5@5 b5@4 b5@3 b5@4 a5@4 b5@3 b5@4 b5@5", P: "[~@3 b5@16 b5@2 ~@3]/3",
})).s("gm_trumpet").gain(0.3)

// other · trumpet · "Trumpet 1" · soft notes
const trumpet_soft = note("<~@50 [b5@3 b5@2 b5@5 ~ b5@2 b5@3 b5@5 b5@3 b5@3 b5@3 b5@4 b5@6 b5@5 ~@3] ~@38>")
  .s("gm_trumpet").gain(0.2)

// other · trumpet · "Trumpet 2"
const trumpet_2 = note("<~@10 A B ~@14 C D E F G H I ~@7 J K L M ~@3 N O P ~@2 Q@3 ~@27 R S T U V@3>".pickRestart({
  A: "~@34 a5@5 a5@2 g5@2 ~ a5@2 a5@2", B: "~ a5@2 g5@2 ~ a5@5 a5@2 ~ g5@2 a5@5 a5@2 ~ g5@2 a5@5 g5@2 ~ a5@5 g5@2 b5@7",
  C: "~@30 a5@2 ~ g5@2 ~@13", D: "~@17 a5@2 ~ a5@2 a5@2 ~ g5@2 ~@21", E: "~@20 d5 ~ d5@5 g5@2 ~@3 g5@2 ~@3 d5@10 ~",
  F: "~@42 a5@3 g5 ~@2", G: "~@29 a5@2 g5@2 ~ a5@2 ~@12",
  H: "~@13 e5@5 e5@3 ~ f#5@3 g5@3 ~ a5@3 g5@3 f#5@3 ~ e5@3 f#5@3 g5@3", I: "~ e5@10 d5@10 b4@10 ~@17",
  J: "~@29 e5@6 d5@2 b4@3 ~@8", K: "~@28 e5@6 d5@2 b4@3 ~@9", L: "~@19 f5@3 d#5 c5", M: "~@37 f5@6 d#5@2 c5@3",
  N: "~@18 a4@3 a4@3 a4@2 b4@3 e4@3 ~@2 a4@3 ~@3 a4@2 a4@3 a4@3",
  O: "b4@3 e4@2 g4@3 ~@3 a4@2 a4@3 a4@3 a4@2 a4@3 b4@5 b4@5 ~ b4@2 b4@3 g4@3 g4@2 g4@3",
  P: "a4@5 ~@11 b4@5 b4@4 b4@3 b4@4 d5@4 c5@3 b4@4 b4@5",
// … 168 more lines

More by The White Stripes