Strudelify
And When I Die cover art

1968 · Blood, Sweat & Tears

And When I Die

Blood, Sweat & Tears

KeyA majorTempo252 bpm
0:00/0:00
// And When I Die — Blood, Sweat & Tears
// 252 bpm, 4/4, key A 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 216, 4/4 at bar 218) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 248 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(252/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.

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@17 A B C D E F G H@4 I J C K L F M N@4 O@4 P Q R S@3 T U V S W X Y Z AA AB AC@3 AD AE AD AE T S AF AG T S AH AI AJ
  AK AL AM AN V AD AE AD AE AD AE AD AO ~@3 AP@2 I J AQ K L AR AS@4 AT AU AV AW AX AY G AZ BA BB BC BD BE BF@3 BG BH BI
  BF BJ BK BL BM BN BO BP@3 BF BQ BF BQ BG BR BS BT BG BU BV BW BG BX BY BZ CA CB BF BQ BF BQ BF BQ BF BQ ~ CC@4 B AU D
  E F G CD@4 CE CF CG CH CI CJ CK CL@3 CM@2 CN@14 CO ~@40 CP CQ CP CQ CP CQ CP CQ
>`.pickRestart({
  A: "~@5 a1@3", B: "~@9 d2@6 ~", C: "~@7 a1@6 ~@3", D: "~@3 d2@3 ~@2", E: "~@5 a1@6 ~@5", F: "~@3 d2@6 ~@7",
  G: "~ a1@3 ~@4", H: "[d2@6 ~@9 a1@6 ~@9 d2@6 ~@8 a1@6 ~@9 d2@5]/4", I: "~@9 a1@6 ~", J: "~@4 d2@3 ~",
  K: "~@5 d2@6 ~@5", L: "~@2 a1@3 ~@3", M: "~ a1@6 ~@9", N: "[d2@6 ~@8 e2@6 ~@9 d2@6 ~@9 a1@6 ~@8 a1@6]/4",
  O: "[~@9 g2@3 ~@3 g2@8 ~@2 d2@3 ~@3 d2@8 ~@2 g2@3 ~@3 d2@8 ~@2 e2@6 ~]/4", P: "~ e2@6 ~@2 b1@6 ~",
  Q: "~ c#2@6 ~@2 d2@6 ~", R: "~ e2@6 ~@2 a1@3 ~@4", S: "~ d2@3 ~@5 a1@3 ~@4", T: "~ a1@3 ~@5 d2@3 ~@4",
  U: "~ c#2@3 ~@5 b1@3 ~@4", V: "~ e2@3 ~@5 a1@3 ~@4", W: "~ d2@3 ~ a1@3 ~ b1@6 ~", X: "~ b1@6 ~@2 c#2@6 ~",
  Y: "~ c#2@3 ~ e2@3 ~ f#2@6 ~", Z: "~ f#2@3 ~ c#2@3 ~ a1@6 ~", AA: "~ a1@6 ~@6 d2@3", AB: "~@5 c#2@3 ~@5 b1@3",
  AC: "[~ e2@32 ~@8 a1@3 ~@4]/3", AD: "~ d2@3 ~@9 d2@3", AE: "~ a1@3 ~@5 a1@3 ~@4", AF: "~ a1@3 ~@5 d2@3 ~ e1@3",
  AG: "~ f#1@3 ~ g#1@3 ~ a1@3 ~@4", AH: "~ a1@3 ~@5 d2@3 ~ d2@3", AI: "~ e2@3 ~ f#2@3 ~ g2@3 ~@4",
  AJ: "~ g2@3 ~@5 d2@3 ~@4", AK: "~ d2@3 ~@5 g2@3 ~@4", AL: "~ d2@3 ~@5 e2@3 ~@4", AM: "~ e2@3 ~@5 b1@3 ~@4",
  AN: "~ c#2@3 ~@5 d2@3 ~@4", AO: "~ a1@3 ~@12", AP: "[~@12 a1@6 ~@9 d2@5]/2", AQ: "~@3 a1@3 ~@2", AR: "~ d2@3 ~@4",
  AS: "[~ a1@6 ~@8 d2@6 ~@9 a1@6 ~@9 d2@6 ~@8 a1@5]/4", AT: "~@5 d2@3", AU: "~@4 a1@3 ~", AV: "~@7 d2@6 ~@3",
  AW: "~@3 e2@3 ~@2", AX: "~@2 d2@3 ~@3", AY: "~@3 a1@6 ~@7", AZ: "g2@3 ~@3 g2@8 ~@2", BA: "d2@3 ~@3 d2@8 ~@2",
  BB: "g2@3 ~@3 d2@8 ~@2", BC: "e2@3 ~ e2@3 ~", BD: "b1@3 ~ c#2@3 ~", BE: "d2@3 ~ e2@3 ~", BF: "a1@3 ~@5 d2@3 ~@5",
  BG: "a1@3 ~@5 a1@3 ~@5", BH: "d2@3 ~@5 c#2@3 ~@5", BI: "b1@3 ~@5 e2@3 ~@5", BJ: "a1@3 ~@5 d2@3 ~ a1@3 ~",
  BK: "b1@3 ~ b1@3 ~", BL: "c#2@6 ~@2 c#2@3 ~ e2@3 ~", BM: "f#2@6 ~@2 f#2@3 ~ c#2@3 ~", BN: "a1@3 ~ a1@3 ~",
  BO: "~@4 d2@3 ~@5 c#2@3 ~", BP: "[~@4 b1@3 ~ e2@32 ~@8]/3", BQ: "~@4 d2@3 ~ a1@3 ~@5", BR: "b1@3 ~@5 b1@3 ~@5",
  BS: "c#2@3 ~@5 g#1@3 ~ c#2@3 ~", BT: "b1@3 ~@5 f#1@3 ~ b1@3 ~", BU: "f#1@3 ~@5 f#2@3 ~@5",
  BV: "b1@3 ~@5 b2@3 ~ f2@3 ~", BW: "e2@3 ~@5 b1@3 ~ e2@3 ~", BX: "c#2@3 ~@5 c#2@3 ~@5", BY: "d2@3 ~@5 d2@3 ~@5",
  BZ: "f2@3 ~@5 f2@3 ~@5", CA: "a#2@3 ~ f2@3 ~", CB: "b2@3 ~ e2@3 ~",
  CC: "[a1@6 ~@9 d2@6 ~@8 a1@6 ~@9 d2@6 ~@8 a1@6]/4", CD: "[~ d2@6 ~@8 e2@6 ~@9 d2@6 ~@9 a1@6 ~@8 a1@5]/4",
  CE: "~@10 g2@3 ~@3", CF: "g2@8 ~@2 d2@3 ~@3", CG: "d2@8 ~@2 g2@3 ~@3", CH: "d2@4 ~ e2@3", CI: "~ e2@3 ~ b1@3",
  CJ: "~ c#2@3 ~ d2@3", CK: "~@2 e2@6 ~@2 a1@3 ~@3", CL: "~@2 d2@3 ~@5 a1@3 ~@3",
  CM: "[~@2 c#2@2 c#2 ~ e2@3 ~ a1@3 ~ e2@5 ~ c#2@5 ~ d2 ~ d2 ~ d#2@2]/2",
  CN: "[~@2 e2 ~ e2 ~ g2 ~ e2 ~ a1@3 ~ e2@5 ~ c#2@5 ~ d2 ~ d2 ~ d#2@2]/2", CO: "~@2 e2 ~ e2 ~ g2 ~ e2 ~@7",
  CP: "~@2 a1@3 ~@5 d2@3 ~@3", CQ: "~@6 d2@3 ~ a1@3 ~@3",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · piano
const piano = note(`<
  ~@18 A B@3 C D E F G H I J@2 K@3 L M N O P Q@4 R S T U@3 V W U@2 X Y Z AA AB W AC@3 AD AE AD AF@2 AG@4 AH@3 AI AJ@2 AK
  AL AM@5 AD AE AD AN ~@4 AO AP AQ@2 AR@3 L M AS O AT AU AV@2 AW@2 AX AY AZ BA BB BC BD BE@3 BF BG BH BE BI BJ BK BL BM
  BG BN@3 BE BO BE BO BF BP BQ BP BF@2 BH BR BF BS BH BT BU BV BE BO BE BO BE BO BE BO ~ BW BX BY BZ CA CB@3 CC CD CE CF
  CG CH CI CJ CK CL@4 CM@3 CN CO CP CO CP CO CP CO CP CO CP CO CP CO CP CO CP ~@40 CQ CR CS CR CQ CR CQ CR
>`.pickRestart({
  A: "~ [c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3 ~@8", // F#m7
  B: "[[b3,d4,f#4,a4]@6 ~@9 [c#4,e4,f#4,a4]@3 [c#4,e4,f#4,a4]@3 ~@8 [b3,d4,f#4,a4]@6 ~@9 [c#4,e4,f#4,a4]@3 ~]/3", // Bm7 F#m7 Bm7 F#m7
  C: "[c#4,e4,f#4,a4]@3 ~@8 [b3,d4,f#4,a4]@5", D: "~@9 [c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3",
  E: "~@4 [b3,d4,f#4,a4]@3 ~", F: "~@6 [c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3 ~@3", G: "~@5 [b3,d4,f#4,a4]@6 ~@5",
  H: "~@4 [c#4,e4,f#4,a4]@3 [c#4,e4,f#4,a4]@3 ~@6", I: "~ [b3,d4,f#4,a4]@3 ~@4",
  J: "[~ [c#4,e4,f#4,a4]@3 [c#4,e4,f#4,a4]@3 ~@8 [b3,d4,f#4,a4]@6 ~@9 [c#4,e4,f#4,a4]@2]/2", // F#m7 Bm7 F#m7
  K: "[~@2 [c#4,e4,f#4,a4]@3 ~@8 [b3,d4,f#4,a4]@6 ~@8 [c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3 ~@8 [b3,d4,f#4,a4]@6]/3", // F#m7 Bm7 F#m7 Bm7
  L: "~@8 [c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3 ~", M: "~@7 [b3,d4,f#4,a4]@6 ~@3",
  N: "~@6 [b3,d4,f#4,a4]@3 [b3,d4,f#4,a4]@3 ~@4", O: "~@2 [b3,d4,f#4,a4]@3 ~@3",
  P: "~@3 [c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3 ~@6", // F#m7
  Q: "[~ [c#4,e4,f#4,a4]@6 ~@2 [b3,d4,g4]@2 [b3,d4,g4] ~@3 [b3,d4,g4]@3 ~@3 [b3,d4,g4]@2 ~@2 [a3,d4,f#4]@2 [a3,d4,f#4] ~@3 [a3,d4,f#4]@3 ~@3 [a3,d4,f#4]@2 ~@2 [b3,d4,g4]@2 [b3,d4,g4]@2 ~@2 [a3,d4,f#4]@5 ~ [a3,d4,f#4]@3 ~ [a3,d4,e4]@7]/4", // F#m7 G D G D Asus4
  R: "~ [a3,d4,e4]@8 [a3,d4,f#4]@7", S: "~ [b3,e4,g#4]@8 [a3,d4,f#4]@7", T: "~ [a3,d4,f#4]@8 ~@4 [a3,c#4,e4]@3",
  U: "~@5 [a3,d4,f#4]@3 ~@5 [a3,c#4,e4]@3", V: "~@5 [a3,c#4,e4]@3 ~@5 [c#4,f#4,a4]@3",
  W: "~@5 [b3,e4,g#4]@3 ~@5 [a3,d4,f#4]@3", X: "~ [a3,d4,f#4]@3 ~ [a3,c#4,e4]@3 ~ [a3,d4,f#4]@6 ~",
  Y: "~ [a3,d4,f#4]@6 ~@2 [b3,e4,g#4]@6 ~", Z: "~ [b3,e4,g#4]@6 ~@2 [a3,c#4,e4,f#4]@6 ~",
  AA: "~ [a3,c#4,e4,f#4]@6 ~@2 [a3,c#4,e4,g4]@6 ~", AB: "~ [a3,c#4,e4,g4]@6 ~@6 [c#4,f#4,a4]@3",
  AC: "[~ [d4,f#4,a4]@32 ~@12 [a3,c#4,e4]@3]/3", AD: "~@5 [a3,d4,f#4]@3 ~@5 [a3,d4,f#4]@3",
  AE: "~ [a3,c#4,e4]@3 ~@9 [a3,c#4,e4]@3", // A
  AF: "[~ [a3,c#4,e4]@3 ~@5 [a5,c#6,e6]@3 ~ [a3,c#4,e4,e5]@2 [a5,c#6,e6]@5 ~ [a3,c#4,e4,d5,d6]@3 ~ c6@3 ~ [a3,d4,f#4,c5,d5,f#5,a5]@3]/2", // A D7
  AG: "[~ [c5,d5,f#5,a5]@3 ~ [a3,d4,f#4,f#5,a5,c6]@3 ~ [a5,c#6,e6]@3 ~ [a3,c#4,e4]@2 [a5,c#6,e6]@5 ~ [a3,c#4,e4,d5,d6]@3 ~ [d5,f#5,a5,c6]@3 ~@12 [d5,f#5] [a5,c#6,e6]@3 ~ [a3,c#4,e4]@2 [a5,c#6,e6]@5 ~ [a3,c#4,e4,d5,d6]@3 ~ c6@3 ~ [a3,d4,f#4,c5,d5,f#5,a5]@3, ~@13 e5 ~@15 [a3,d4,f#4,a5,c6]@2 [a5,c6]@2 [a5,c6]@2 [a5,c6]@2 [a3,d4,f#4,a5,c6]@2 [a5,c6]@2 ~@23, ~@30 [d5,f#5]@2 [d5,f#5]@2 [d5,f#5]@2 [d5,f#5]@2 [d5,f#5]@2 ~@5 e5 ~@18]/4", // D7 A D7 D A D7 Am D7 …
  AH: "[~ [c5,d5,f#5,a5]@3 ~ [a3,d4,f#4,f#5,a5,c6]@3 ~ [a5,c#6,e6]@3 ~ [a3,c#4,e4,e5]@2 [a5,c#6,e6]@5 ~ [a3,c#4,e4,d5,d6]@3 ~ [d5,f#5,a5,c6]@3 ~ [a5,c6] ~@3 [d5,f#5] a5 ~@6 [g5,b5,d6]@3 ~ [b3,d4,g4]@2 d6, ~@29 [a3,d4,f#4,d5,f#5]@2 [d5,f#5]@2 ~ [d5,f#5]@2 [d5,f#5]@2 [d5,f#5]@2 [d5,f#5]@2 ~@3 d5 ~@2, ~@30 [a5,c6]@2 [a5,c6]@2 ~ [a5,c6]@2 [a3,d4,f#4,a5,c6]@2 [a5,c6]@2 ~@7]/3", // D7 A D7 Am D G D Am …
  AI: "~ [g5,d6]@3 ~ [b3,d4,g4,g5,d6]@3 ~ c6@3 ~ [a3,c4,f#4,c5,d5,f#5,a5]@3", // G5 G D7
  AJ: "[~ [c5,d5,f#5,a5]@3 ~ [a3,c4,f#4,c6]@3 ~ [g5,b5,d6]@3 ~ [b3,d4,g4]@2 [g5,d6]@5 ~ [a3,c4,f#4,c5,c6]@3 ~ [a3,d4,e4,a4,a5]@6 ~, ~@13 d5 ~@18]/2", // D7 F#dim G G5 F#dim Asus4
  AK: "~ [a5,a6]@3 ~ [a5,a6]@3 ~ [a3,d4,f#4,d6,d7]@6 ~, ~ [a3,d4,e4]@6 ~@9", // A D Asus4
  AL: "~ [b3,e4,g#4,c#6,c#7]@6 ~@2 [a5,a6]@3 ~ [e5,e6]@3, ~@9 [a3,d4,f#4]@6 ~", // C#m7 A E D
  AM: "[~ [f#5,f#6]@3 ~ [a5,a6]@3 ~ [a5,a6]@3 ~@56 a5@2 ~@7 [a3,c#4,e4]@3, ~ [a3,d4,f#4]@6 ~@6 [a3,c#4,e4,a6]@2 a6@2 a6@2 a6@2 [a3,d4,f#4,a6]@2 a6@2 a6@2 a6@2 [a3,d4,f#4,a6]@2 a6@2 [a3,c#4,e4,a6]@2 a6@2 a6@2 a6@2 a6@2 a6@2 [a3,c#4,e4,a6]@2 a6@2 a6@2 a6@2 [a3,d4,f#4,a6]@2 a6@2 a6@2 a6@2 [a3,d4,f#4,a6]@2 a6@2 [a3,c#4,e4,a6]@2 a6@2 ~@11, ~@7 a5 a5!8 a5!8 a5!8 a5!2 ~@6]/5", // F# A D A D A D A
  AN: "~ [a3,c#4,e4]@3 ~@12", AO: "~@3 [c#4,e4,f#4,a4]@2 ~@2 [c#4,e4,f#4,a4]@2 ~@7", AP: "~ [b3,d4,f#4,a4]@2 ~@5",
  AQ: "[[c#4,e4,f#4,a4]@2 ~@2 [c#4,e4,f#4,a4]@2 ~@9 [b3,d4,f#4,a4]@4 ~@11 [c#4,e4,f#4,a4]@2]/2", // F#m7 Bm7 F#m7
  AR: "[~ [c#4,e4,f#4,a4]@3 ~@8 [b3,d4,f#4,a4]@6 ~@9 [c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3 ~@8 [b3,d4,f#4,a4]@6]/3", // F#m7 Bm7 F#m7 Bm7
  AS: "~@5 [c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@3 ~@4", AT: "~@3 [c#4,e4,f#4,a4]@3 [c#4,e4,f#4,a4]@3 ~@7",
  AU: "~ [b3,d4,f#4,a4]@6 ~@9", // Bm7
  AV: "[[c#4,e4,f#4,a4]@3 [c#4,e4,f#4,a4]@3 ~@8 [b3,d4,f#4,a4]@6 ~@9 [c#4,e4,f#4,a4]@3]/2", // F#m7 Bm7 F#m7
  AW: "[~ [c#4,e4,f#4,a4]@3 ~@8 [b3,d4,f#4,a4]@6 ~@8 [c#4,e4,f#4,a4]@3 ~ [c#4,e4,f#4,a4]@2]/2", // F#m7 Bm7 F#m7
  AX: "~@9 [b3,d4,f#4,a4]@6 ~", AY: "[b3,d4,g4]@2 [b3,d4,g4] ~@3 [b3,d4,g4]@3 ~@3 [b3,d4,g4]@2 ~@2",
  AZ: "[a3,d4,f#4]@2 [a3,d4,f#4] ~@3 [a3,d4,f#4]@3 ~@3 [a3,d4,f#4]@2 ~@2", // D
  BA: "[b3,d4,g4]!2 ~ [a3,d4,f#4]@3 [a3,d4,f#4]@2", BB: "[a3,d4,e4]!2", BC: "[a3,d4,f#4] [b3,e4,g#4]",
  BD: "[a3,d4,f#4]!2", BE: "~@4 [a3,c#4,e4]@3 ~@5 [a3,d4,f#4]@3 ~", BF: "~@4 [a3,c#4,e4]@3 ~@5 [a3,c#4,e4]@3 ~",
  BG: "~@4 [c#4,f#4,a4]@3 ~@5 [b3,e4,g#4]@3 ~", BH: "~@4 [a3,d4,f#4]@3 ~@5 [a3,d4,f#4]@3 ~",
  BI: "~@4 [a3,c#4,e4]@3 ~ [a3,d4,f#4]@3 ~ [a3,c#4,e4]@3 ~", BJ: "[a3,d4,f#4]@3 ~ [a3,d4,f#4]@3 ~",
  BK: "[b3,e4,g#4]@3 ~ [b3,e4,g#4]@3 ~", BL: "[a3,c#4,e4,f#4]@3 ~ [a3,c#4,e4,f#4]@3 ~",
  BM: "[a3,c#4,e4,g4]@3 ~ [a3,c#4,e4,g4]@3 ~", BN: "[~@4 [a3,d4,f#4]@3 ~ [d4,f#4,a4]@32 ~@8]/3",
  BO: "~@4 [a3,d4,f#4]@3 ~ [a3,c#4,e4]@3 ~@5", BP: "~@4 [b3,d4,f#4]@3 ~@5 [b3,d4,f#4]@3 ~",
  BQ: "~@4 [c#4,e4,g#4]@3 ~@5 [c#4,e4,g#4]@3 ~", BR: "~@4 [g#3,d4,e4]@3 ~@5 [g#3,d4,e4]@3 ~",
  BS: "~@4 [g3,c#4,e4]@3 ~@5 [g3,c#4,e4]@3 ~", BT: "~@4 [a3,c4,f4]@3 ~@5 [a3,c4,f4]@3 ~",
  BU: "[a#3,d4,f4]@3 ~ [a#3,c#4,f#4]@3 ~", BV: "[b3,d4,f#4]@3 ~ [g#3,b3,e4]@3 ~",
  BW: "~@7 [c#4,e4,f#4,a4]@2 ~@2 [c#4,e4,f#4,a4]@2 ~@3", BX: "~@3 [b3,d4,f#4,a4]@2 ~@3",
  BY: "~@5 [c#4,e4,f#4,a4]@2 ~ [c#4,e4,f#4,a4]@2 ~@6", BZ: "~@3 [b3,d4,f#4,a4]@4 ~@9",
  CA: "~@2 [c#4,e4,f#4,a4]@2 ~ [c#4,e4,f#4,a4]@2 ~@9", // F#m7
  CB: "[[b3,d4,f#4,a4]@4 ~@11 [c#4,e4,f#4,a4]@2 ~@2 [c#4,e4,f#4,a4]@2 ~@9 [b3,d4,f#4,a4]@4 ~@10 [c#4,e4,f#4,a4]@2 ~@2]/3", // Bm7 F#m7 Bm7 F#m7
  CC: "[c#4,e4,f#4,a4]@2 ~@9 [b3,d4,f#4,a4]@4 ~", CD: "~@9 [c#4,e4,f#4,a4]@2 ~@2 [c#4,e4,f#4,a4]@2 ~",
  CE: "~@2 [b3,d4,f#4,a4] ~", CF: "~@7 [b3,d4,f#4,a4]@2 ~ [b3,d4,f#4,a4]@2 ~@4", CG: "~@5 [b3,d4,f#4,a4]@4 ~@7",
  CH: "~@4 [c#4,e4,f#4,a4]@2 ~ [c#4,e4,f#4,a4]@2 ~@7", CI: "~@2 [c#4,e4,f#4,a4]@4 ~@4 [b3,d4,g4]@2 [b3,d4,g4] ~@3",
  CJ: "[b3,d4,g4]@3 ~@3 [b3,d4,g4]@2 ~@2 [a3,d4,f#4] ~ [a3,d4,f#4] ~@3", // G D
  CK: "[a3,d4,f#4]@3 ~@3 [a3,d4,f#4]@2 ~@2 [b3,d4,g4]@2 [b3,d4,g4] ~@3", // D G
  CL: "[[a3,d4,f#4]@3 ~@3 [a3,d4,f#4]@2 ~@2 [a3,d4,e4]@8 [a3,d4,e4]@8 [a3,d4,f#4]@8 [b3,e4,g#4]@8 [a3,d4,f#4]@8 [a3,d4,f#4]@8 ~@4 [a3,c#4,e4]@2]/4", // D Asus4 D E D A
  CM: "~@6 [a3,d4,f#4]@3 ~@5 [a3,c#4,e4]@2", CN: "~@6 [a3,c#4,e4]@3 ~@7",
  CO: "~@2 [a3,e4,g4] ~ [a3,e4,g4]@3 ~ [a3,e4,g4]@5 ~ [a3,d4,f#4]@2", CP: "~@2 [a3,c#4,e4]@3 ~ [a3,b3,d4]@3 ~@7",
  CQ: "~@6 [a3,c#4,e4]@3 ~@5 [a3,d4,f#4]@2", CR: "~@6 [a3,d4,f#4]@3 ~ [a3,c#4,e4]@3 ~@3",
  CS: "~@2 [a3,c#4,e4]@3 ~@5 [a3,d4,f#4]@3 ~@3", // A D
})).s("gm_piano").gain(0.28)

// other · trumpet · "Trumpet2"
const trumpet = note(`<
  ~@18 A B@2 C D E F ~@28 G@5 H I ~@23 J K L K M ~@4 N O P@2 Q R@2 S T U V W X Y@2 Q Z AA AB@3 AC AD AE AF@3 AG AH AI AJ
  ~ AK AL AM AN AO AP@3 ~@3 AQ AR@2 AS@2 AT@2 AU@2 AV AW AX@2 AY AZ BA@4 BB BC BB BD ~@33 BE@2 BF@7 ~@48
>`.pickRestart({
  A: "~ f#4@2 ~@2 f#4@2 ~@9", B: "[f#4@4 ~@10 f#4 f#4@2 ~ f#4@2 ~@9 f#4@3]/2", C: "~@12 f#4@2 ~ f#4",
  D: "f#4@2 ~@8 f#4 f#4@4 ~", E: "~@9 f#4@2 ~ f#4 f#4@2 ~", F: "~@7 f#4 f#4@4 ~@4",
  G: "[~@9 f#4@16 g#4@16 f#4@16 g4@16 ~@4 f#4@2 ~]/5", H: "~@5 e4@2 ~@6 d4@2 ~", I: "~ f#4@15", J: "~@13 c#5@2 ~",
  K: "~@5 d5@2 ~@6 d5@2 ~", L: "~ c#5@2 ~@10 c#5@2 ~", M: "~ c#5@2 ~@13", N: "~@3 f#4@2 ~@2 f#4@2 ~@7",
  O: "~ f#4@2 ~@5", P: "[f#4 ~@3 f#4 ~@10 f#4@4 ~@11 f#4@2]/2", Q: "~ f#4@2 ~@9 f#4@4",
  R: "[~@11 f#4@2 ~@2 f#4@2 ~@9 f#4@4 ~@2]/2", S: "~@4 f#4 ~ f#4 ~", T: "~@7 f#4@4 ~@5", U: "~@5 f#4@2 ~@2 f#4@2 ~@5",
  V: "~ f#4 ~@2", W: "~@3 f#4@2 ~ f#4@2 ~@8", X: "~ f#4@4 ~@11", Y: "[f#4@2 ~ f#4@2 ~@9 f#4@4 ~@11 f#4@2 ~]/2",
  Z: "~@5 f#4 ~ f#4", AA: "~@9 f#4@4 ~@3", AB: "d4@2 d4 ~@3 d4@3 ~@3 d4@2 ~@2", AC: "d4@3 ~@5", AD: "d4 e4",
  AE: "f#4 d4", AF: "~@2 e4 ~@3 f#4 ~", AG: "~@2 e4 ~ e4@4", AH: "f#4 e4", AI: "d4 f#4", AJ: "e4 ~", AK: "~ f#4",
  AL: "g#4@15 ~", AM: "a4 b4 c#5 a4", AN: "f#4 ~", AO: "~@2 f#4 ~@3 e4 ~", AP: "[~@4 d4@2 ~@2 f#4@39 ~]/3",
  AQ: "~@8 c#4@3 e4@4 ~", AR: "[f#4@11 ~ f#4@8 e4@4 c#4@4 b3@4]/2", AS: "[c#4@3 ~ e4@16 ~@4 c#4@4 e4@3 ~]/2",
  AT: "[f#4@12 f#4@7 ~ e4@2 ~@2 c#4@8]/2", AU: "[b3@19 ~@5 c#4@4 e4@3 ~]/2", AV: "f#4@7 ~ f#4@8",
  AW: "e4@6 f#4@6 e4@3 ~", AX: "[c#4@4 a3@2 ~@2 a3@4 f#3@2 ~ a3@9 a3@3 ~ a3@3 ~]/2", AY: "d4@8 c#4@7 ~",
  AZ: "a3@4 e4@3 ~ f#4@4 a4@3 ~", BA: "[a4@7 ~]/4", BB: "~@2 c#5 ~@3 d5 ~", BC: "~@4 d5 ~@3 c#5@2 ~@6",
  BD: "~@4 d5 ~@3 e5@2 ~@6", BE: "[~@3 e4@2 a4@11]/2",
  BF: "[~@2 e4@4 d4@2 ~@2 a4@23 ~ e4@4 d4@2 ~@2 a4@23 ~ e4@4 d4@2 ~@2 a4@23 ~ e4@4 e4@2 ~@8]/7",
})).s("gm_trumpet").gain(0.59)

// chords · harmonica · "Harmonic"
const harmonica = note(`<
  A@6 B@5 C@4 D@2 E@5 ~@39 F G H G I ~@29 J@4 K@3 L@4 ~@26 M N M N ~@14 O P O P O P O P ~@3 Q R@8 ~@14 S T U@2 S T U@2 S
  T U@2 S T V@2 W X Y@2 Z AA AB AC@2 ~@31 AD AE AF AG AH AI AJ AK
>`.pickRestart({
  A: "[~@5 a4@8 c#5@8 ~ e5@8 ~ f#5@42 ~ a4@8 c#5@7 ~ c#5@6]/6", B: "[~@3 a4@40 ~ f#4@8 a4@10 c#5@7 e5@11]/5",
  C: "[~@2 c#5@5 a4@22 ~ f#4@9 ~ a4@22 ~@2]/4", D: "[f#4@9 c#5@9 ~@2 a4@8 ~@4]/2", E: "[~ a4@65 ~@14]/5",
  F: "~@13 [c#4,e4,a4]@3", G: "~@5 [d4,f#4,a4]@4 ~@4 [d4,f#4,a4]@3", H: "~ [c#4,e4,a4]@4 ~@8 [c#4,e4,a4]@3",
  I: "~ [c#4,e4,a4]@4 ~@11", J: "[~@6 c#5@7 ~ e5@35 e5@8 f#5@7]/4", K: "[~ a5@44 c5@3]/3", L: "[b4@4 a4@7 a4@51 ~@2]/4",
  M: "~ [c#4,e4,a4] ~ [d4,f#4,a4]", N: "~ [d4,f#4,a4] [c#4,e4,a4] ~", O: "~ [a3,c#4,e4] ~ [a3,d4,f#4]",
  P: "~ [a3,d4,f#4] [a3,c#4,e4] ~", Q: "~@3 a4", R: "[~@3 c#5@4 a4@3 ~ d5@4 e5@36 ~ e5@2 d#5@7 a4@8 a4@46 ~@13]/8",
  S: "~@2 a4@2 a4@3 ~ a4@2 g4@3 ~ e4@2", T: "~@2 e4@7 ~@7", U: "[~@2 a4@2 a4@3 ~ a4@6 a4@4 c#5@7 ~@7]/2",
  V: "[~@2 a4@2 a4@3 ~ a4@6 a4@4 c#5@7 ~@5 [c#4,e4,a4]@2]/2", W: "~@6 [c#4,e4,a4]@2 ~@5 [c#4,e4,a4]@3",
  X: "~@6 [c#4,e4,a4]@3 ~@4 [c#4,e4,a4]@3", Y: "~@3 [c#4,e4,a4] ~@3 [c#4,e4,a4]",
  Z: "~@5 [c#4,e4,a4]@2 ~@7 [c#4,e4,a4]@2", AA: "~@5 [c#4,e4,a4]@3 ~@6 [c#4,e4,a4]@2",
  AB: "~@5 [c#4,e4,a4]@2 ~@6 [c#4,e4,a4]@2 ~", AC: "[~@5 [c#4,e4]@2 ~@25, ~@5 a4@18 ~@9]/2",
  AD: "~@3 [a4,c#5,e5] ~@3 [a4,d5,f#5]", AE: "~@7 [a4,f#5]@2 ~@2 [a4,c#5,e5]@2 ~@3, ~@7 d5 ~@8",
  AF: "~@7 [c#5,e5]@2 ~@5 [a4,d5] ~, ~@7 a4 ~@6 f#5@2", AG: "~@7 [a4,d5,f#5] ~@3 [a4,c#5,e5]@2 ~@3",
  AH: "~@7 [a4,c#5] ~@6 [a4,f#5]@2, ~@7 e5@2 ~@5 d5 ~", AI: "~@7 [d5,f#5] ~@3 [a4,c#5,e5]@2 ~@3, ~@7 a4@2 ~@7",
  AJ: "~@6 [a4,c#5,e5]@2 ~@6 [a4,d5] ~, ~@7 f#5", AK: "~@7 [a4,d5,f#5] ~@3 [a4,c#5,e5] ~@4",
})).s("gm_harmonica").gain(0.48)

// other · trombone
const trombone = note(`<
  ~@18 A B@2 C D E F ~@28 G@5 H I ~@23 J K L M N ~@3 O P Q R S T U V W@3 X Y Z AA AB AC AD AE AF AG AH AI AJ AK@2 AL AM
  AN AO AP AQ ~ AR AS AT AU AV AW@3 ~@3 AX AY@2 AZ@2 BA@2 BB@2 BC BD BE@2 BF BG BH@4 BI BJ BI BK ~@34 BL BM BN BO BP BQ
  BR BO ~@16 BS@2 BT@2 BU@8 BV@5 BW@5 ~@6 BX BY BZ CA
>`.pickRestart({
  A: "~ e3 ~ e3 ~@4", B: "[d3@4 ~@11 e3@2 ~ e3@2 ~@9 d3@3]/2", C: "~@13 e3@2 ~", D: "e3@2 ~@9 d3@3 ~@2",
  E: "~@9 e3@2 ~@2 e3@2 ~", F: "~@4 d3 ~@3", G: "[~@9 b2@16 c#3@16 c#3@16 c#3@16 ~@4 c#3@2 ~]/5",
  H: "~@5 b2@2 ~@6 a2@2 ~", I: "~ d3@15", J: "~@9 a1@3 ~@4", K: "~ d2@3 ~@9 d2@2 ~", L: "~ a1@3 ~@5 a1@2 ~@5",
  M: "~ d2@2 ~@9 d2@3 ~", N: "~ a1@3 ~@12", O: "~@3 a1", P: "~@11 d2@4 ~", Q: "~@9 a1@4 ~@3", R: "~@2 d2 ~",
  S: "~@3 a1@2 ~@3", T: "~@5 d2@4 ~@7", U: "~ a1 ~@2", V: "~ d2@2 ~@5", W: "[~ a1@5 ~@9 d2@4 ~@11 a1@5 ~@9 d2@4]/3",
  X: "~@11 a1@5", Y: "~@10 d2@5 ~", Z: "~@9 a1@5 ~@2", AA: "~@7 d2@6 ~@3", AB: "~@5 e2@5 ~@6", AC: "~ d2 ~@2",
  AD: "~@3 a1@5 ~@8", AE: "~ a1@6 ~@9", AF: "g2 ~ g2@2 ~@3 g2@4 ~@5", AG: "d2 ~@2 d2 ~@2 d2@3 ~@3 d2@2 ~@2",
  AH: "g2 ~@2 g2@2 ~@2 d2@3 ~@2 d2@4", AI: "~ e2@5 ~@10", AJ: "b1 c#2", AK: "[d2@7 ~ e2@6 ~ a1@3 ~@7 d2@3 ~@4]/2",
  AL: "a1@3 ~@5 d2@3 ~@5", AM: "a1@2 ~@6 d2@3 ~@5", AN: "a1@3 ~@5 a1@7 ~", AO: "d2 c#2", AP: "~ b1@7 e2@8", AQ: "a1 ~",
  AR: "~ a2", AS: "b2", AT: "c#3@8 e3@7 ~", AU: "f#3@3 ~", AV: "~@2 e3 ~@3 d3 ~", AW: "[~@2 a2 ~ d3@20]/3",
  AX: "~@8 c#3@4 e3@3 ~", AY: "[f#3@11 ~ f#3@8 e3@3 ~ c#3@4 b2@2 ~@2]/2", AZ: "[c#3@2 e3@18 ~@4 c#3@4 e3@3 ~]/2",
  BA: "[f#3@11 ~ f#3@8 e3@3 ~ c#3@8]/2", BB: "[b2@20 ~@4 c#3@4 e3@3 ~]/2", BC: "f#3@7 ~ f#3@7 ~",
  BD: "e3@5 f#3@6 ~ e3@3 ~", BE: "[c#3@4 a2@3 ~ a2@4 f#2@2 a2@9 ~ a2@2 ~@2 a2@2 ~@2]/2", BF: "d3 c#3",
  BG: "a2@4 e2@3 ~ f#2@4 a2@2 ~@2", BH: "[a2@27 ~@5]/4", BI: "a1 ~@3 d2 ~@3", BJ: "~@4 d2@3 ~ a1@3 ~@5",
  BK: "~@3 d2@2 ~@3 a1@2 ~@6", BL: "~@2 e3@2 ~ e3@2 ~@2 e3@5 d3@2", BM: "~@2 c#3@3 ~ b2@4 ~@6",
  BN: "~@3 e3 ~ e3@2 ~@2 e3@4 ~ d3@2", BO: "~@2 c#3@3 ~ b2@3 ~@7", BP: "~@2 e3 ~ e3@2 ~@2 e3@5 ~ d3@2",
  BQ: "~ c#3@2 b2@2 ~@3", BR: "~@2 e3 ~ e3@2 ~@2 e3@6 d3@2", BS: "[~ b2@7]/2", BT: "[~@3 c#3@13]/2",
  BU: "[~@7 d3@33 ~ e3@32 ~@2 f3@50 ~@3]/8", BV: "[~@14 d3@33 c#3@33]/5", BW: "[~ d3@67 ~@12]/5", BX: "~ a1 ~@3 d2 ~@2",
  BY: "~@6 d2@3 ~@2 a1@3 ~@2", BZ: "~@3 a1@2 ~@6 d2@2 ~@3", CA: "~@6 d2@3 ~ a1@3 ~@3",
})).s("gm_trombone").gain(0.58)

// other · alto sax · "Sax"
const alto_sax = note(`<
  ~@18 A B@2 C D E ~@29 F@5 G H@3 ~@21 I J K J L ~@4 M N O@2 P Q@2 R S T U V W X@2 P Y Z AA AB AC ~ AD AE AF@2 ~@10 AG
  AH@3 ~@22 AI AJ AI AK ~@34 AL AM AN AO AL AM AN AP ~@44 AQ AR AS@2
>`.pickRestart({
  A: "~ c#5@2 ~@2 c#5@2 ~@9", B: "[b4@4 ~@11 c#5@2 ~ c#5@2 ~@9 b4@3]/2", C: "~@6 c#5 ~", D: "c#5@2 ~@9 b4@4 ~",
  E: "~@9 c#5@2 ~@2 c#5@2 ~", F: "[~@9 d5@16 e5@16 e5@32 ~@4 e5@2 ~]/5", G: "~@5 c#5@2 ~@6 c#5@2 ~",
  H: "[~ a4@39 ~@8]/3", I: "~@13 a5@2 ~", J: "~@5 a5@2 ~@6 a5@2 ~", K: "~ a5@2 ~@10 a5@2 ~", L: "~ c#6@2 ~@13",
  M: "~@3 e5@2 ~@2 e5@2 ~@7", N: "~ d5@2 ~@5", O: "[e5 ~@3 e5 ~@10 d5@4 ~@11 e5@2]/2", P: "~ e5@2 ~@9 d5@4",
  Q: "[~@11 e5@2 ~@2 e5@2 ~@9 d5@4 ~@2]/2", R: "~@4 e5 ~ e5 ~", S: "~@7 d5@4 ~@5", T: "~@5 e5@2 ~@2 e5@2 ~@5",
  U: "~ d5 ~@2", V: "~@3 e5@2 ~ e5@2 ~@8", W: "~ d5@4 ~@11", X: "[e5@2 ~ e5@2 ~@9 d5@4 ~@11 e5@2 ~]/2",
  Y: "~@5 e5 ~ e5", Z: "~@9 e5@4 ~@3", AA: "b4@2 b4 ~@3 b4@3 ~@3 b4@2 ~@2", AB: "a4@2 a4 ~@3 a4@3 ~@3 a4@2 ~@2",
  AC: "b4@2 b4 ~@3 a4@3 ~@3 a4@2 ~@2", AD: "a4 b4", AE: "d5 a4", AF: "~@2 c#5 ~@3 d5 ~", AG: "~@2 e5 ~@3 c#5 ~",
// … 122 more lines

More by Blood, Sweat & Tears