Strudelify

Why Go

Pearl Jam

KeyE minorTempo120 bpm
0:00/0:00
// Why Go — Pearl Jam
// 120 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 8 pad bowed (copy of ch 5 distortion guitar); ch 11 lead 4 chiff (copy of ch 5 distortion guitar); ch 9 pad bowed (copy of ch 6 distortion guitar); ch 12 lead 4 chiff (copy of ch 6 distortion guitar)
// note: Full arrangement: all 99 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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
const bass = note(`<
  ~@2 A B@2 C@2 D E F G H I@2 J@2 K L M N@3 O P Q R S T U@2 V@3 W X@5 ~ Y@2 Z AA AB AC AD AE@2 AF AG AH@2 AI AJ@3 AK@2
  AL@2 AM AN AO@2 AP AQ AR@2 AS@6 AT AU AV@2 AW AX AY AZ@2 BA@2 BB BC BD@8 BE@2 ~
>`.pickRestart({
  A: "~@6 g1@4 e1@4 ~@3 e1@2 ~ a1@2 e2@4 ~@2 e1@4, ~@19 g1@2 ~@11",
  B: "[~ g1@2 a1@3 ~ d2@4 e1@3 ~@4 e1@2 ~ a1@2 ~ e2@4 ~@3 e1@4 g1@3 a1@3 d2@4 ~@2 e1@3 ~@2 e1@3 ~ a1@2 ~ e2@3 ~@2, ~@20 g1@3 ~@32 g1@2 ~@7]/2",
  C: "[~@2 e1@4 ~@2 a1@4 d2@5 e1@3 ~@2 e1@3 g1@3 a1@2 e2@5 ~ e1@3 ~ g1@2 a1@3 ~ d2@4 ~ e1@3 ~@2 e1@4 ~ a1@2 ~, ~@3 g1@2 ~@25 g1 ~]/2",
  D: "e2@4 ~@3 e1@4 g1@3 a1@2 d2@4 ~@3 e1@3 ~@4 e1@2", E: "g1@2 a1@2 ~ e2@3 ~@4 e1@4 g1@2 a1@3 ~@2 d2@4 e1@3 ~@2",
  F: "~ e1@3 ~ a1@3 e2@2 ~@5 e1@4 g1@2 a1@3 ~ d2@4 ~ e1@2, ~@4 g1@3 ~@25",
  G: "~@4 e1@3 ~ a1@2 ~ e2@4 ~@3 e1@4 g1@2 a1@3 ~ d2@4, ~@7 g1@2 ~@23",
  H: "e1@3 ~@3 e1@3 g1@2 a1@2 e2@3 ~@3 e1@4 g1@2 a1@3 ~ d2@3",
  I: "[~ e1@4 ~@2 e1@3 ~ a1@3 e2@3 ~@4 e1@3 ~ g1@2 a1@3 ~ d2@3 ~@2 e1@2 ~@4 e1@2 g1@2 a1@2 ~ e2@3 ~@3 e1@4 g1@2 a1@3, ~@5 g1 ~@26]/2",
  J: "[~ d2@3 ~ e1@3 ~@5 g1@3 a1@3 e2@3 ~@4 e1@3 ~@2 a1@3 ~ d2@3 ~@2 e1@3 ~@2 e1@3 ~ a1@2 ~ e2@2 ~@4 e1@4 g1@2, ~@12 e1@3 ~@15 g1@3 ~@15 g1@3 ~@13]/2",
  K: "a1@3 ~ d2@2 ~@2 e1@3 ~@3 e1@2 g1@2 a1@3 e2@2 ~@4 e1@3 g1@2",
  L: "a1@3 ~ d2@3 ~@2 e1@3 ~@3 e1@3 ~ a1@2 ~ e2@2 ~@4 e1@4, ~@9 g1 ~@6",
  M: "~@2 a1@3 ~ d2@3 ~@2 e1@3 ~@2 e1@2 g1@2 a1@2 ~ e2@2 ~@4 e1@3, ~ g1@2 ~@29",
  N: "[~ g1@2 a1@3 ~ d2@3 ~ e1@3 ~@5 g1@2 a1@3 e2@2 ~@4 e1@5 g1 a1@4 d2@3 ~ e1@3 ~@5 g1@2 a1@2 e2@3 ~@4 e1@4 g1@2 a1@3 ~ d2@2 ~@2 e1@4 ~@2 e1@2 g1@2 a1@2 e2@3 ~@4, ~@17 e1@4 ~@29 e1@4 ~@42]/3",
  O: "~ e1@2 g1@2 a1@3 ~ d2@3 ~@2 e1@3 ~@6 a1@3 e2@3 ~@3, ~@5 e1 ~@2, ~@22 g1@3 ~@7",
  P: "~ e1@4 g1@2 a1@3 d2@3 ~@2 e1@3 ~@3 e1@2 ~ a1@3 e2@3 ~@2, ~@23 g1@3 ~@6",
  Q: "~@3 e1@3 g1@2 a1@3 ~ d2@3 ~ e1@3 ~@5 g1@2 a1@2 e2@3 ~, ~@11 e1@2 ~@3",
  R: "~@3 e1@3 ~ g1@2 a1@3 d2@3 ~@2 e1@4 ~@3 g1@3 a1@2 e2@3, ~@23 e1@3 ~@6",
  S: "~@7 g1@2 a1@2 d2@4 ~@4 e1@3 ~@6 a1@2 e2@2, ~@4 e1@5 ~@16 e1@4 ~@3, ~@27 g1@2 ~@3",
  T: "~@6 e1@3 g1@3 a1@3 d2@4 ~ e1@3 ~@2 e1@3 ~ a1@3, ~@28 g1@3 ~",
  U: "[~ e2@2 ~@3 e1@4 ~@2 a1@3 ~ d2@4 ~ e1@3 ~@3 e1@2 ~@2 a1@2 ~ e2@2 ~@4 e1@3 g1@2 a1@3 ~ d2@4 ~ e1@3 ~@2 e1@2 ~ a1@2, ~@11 g1@3 ~@15 g1@4 ~@28 g1@3]/2",
  V: "[~ e2@3 ~@4 e1@4 ~ a1@3 ~ d2@3 ~@3 e1@2 ~@6 a1@3 ~@2 e2@3 ~@3 e1@4 g1@2 a1@3 ~ d2@4 e1@3 ~@5 g1@2 a1@3 ~ e2@3 ~@3 e1@4 g1@2 a1@3 ~ d2@4 e1@3 ~@3, ~@12 g1@3 ~@13 e1@3 ~@31 e1@5 ~@29, ~@29 g1@4 ~@63]/3",
  W: "~@2 g1@2 a1@3 e2@3 ~@4 e1@3 g1@2 a1@3 ~@2 d2@4 e1@3 ~, e1 ~@7",
  X: "[~@5 a1@3 ~ e2@3 ~@4 e1@4 ~ a1@3 ~ d2@3 ~@3 e1@3 ~@3 g1@3 a1@3 e2@3 ~@7 g1@3 a1@4 ~ d2@5 e1@93 ~, ~@2 e1@4 ~@30 e1@3 ~@11 e1@5 ~@105, ~@2 g1 ~@7 g1 ~@69]/5",
  Y: "[~@6 e1@3 ~@12 g1@2 a1@2 e2@3 ~@3 e1@5 ~ a1@3 d2@3 ~ e1@3 ~@3 e1 ~ g1@2 a1@2 ~ e2@3 ~@4, ~@19 e1@4 ~@13 g1@2 ~@26]/2",
  Z: "e1@3 g1@2 a1@3 ~ d2@4 e1@3 ~@4 g1@3 a1@2 ~ e2@3 ~@3, ~@9 e1@2 ~@5",
  AA: "e1@4 g1@2 a1@3 ~ d2@3 ~ e1@3 ~@3 e1@2 g1@2 a1@2 ~ e2@2 ~@3",
  AB: "~@4 g1@3 a1@3 ~ d2@3 ~@2 e1@3 ~@4 g1@2 a1@2 e2@2 ~@3, ~ e1@5 ~@15 e1@4 ~@7",
  AC: "~ e1@4 g1@2 a1@3 ~ d2@2 ~@2 e1@3 ~@5 g1@2 a1@2 ~ e2@2 ~@2, ~@22 e1@3 ~@7",
  AD: "~@2 e1@4 g1@3 a1@3 d2@2 ~@2 e1@3 ~@5 g1@3 a1@2 ~ e2@2, ~@23 e1@3 ~@6",
  AE: "[~@4 e1@4 g1@2 a1@3 d2@3 ~ e1@2 ~@3 e1@4 ~ [g1,a1]@3 ~ e2@2 ~@4 e1@3 g1@3 a1@3 ~ d2@3 ~ e1@4 ~@5 g1@2 a1@2, ~@29 e1@2 ~]/2", // Gsus2
  AF: "~ e2@5 e1@3 g1@3 a1@3 d2@3 ~ e1@3 ~@5 g1@2 a1@2 ~, ~@25 e1@4 ~@3",
  AG: "~ e2@2 ~@4 e1@4 g1@2 a1@5 d2@3 ~ e1@3 ~@2 e1@3 g1@2",
  AH: "[a1@3 ~ e2@3 ~@6 g1@3 a1@4 d2@4 e1@3 ~@3 e1@3 ~ a1@3 ~ e2@3 ~@3 e1@5 g1@2 a1@3 d2@4 ~ e1@3 ~@2, ~@10 e1@5 ~@18 g1@2 ~@29]/2",
  AI: "~@5 e1@4 g1@3 a1@3 e2@5 ~@2 e1@4 ~ a1@3 ~@2, ~@13 g1 ~@2",
  AJ: "[~ d2@3 ~@2 e1@3 ~@2 e1@4 [g1,a1]@3 ~ e2@4 ~@6 g1@2 a1@3 ~@11 e1@39 ~@6 e2@2 ~@2 e2@2, ~@26 e1@5 ~@65]/3", // Gsus2
  AK: "[~@6 g1@4 ~@2 g1@3 a1@3 b1@7 ~@2 b1@3 ~ b1@4 ~@3 g1@4 ~@2 a1@2 b1@3 d2@5 ~ d2@2 ~ d2@2 ~@4, ~@35 a1@5 ~@3 g1@2 ~@19]/2",
  AL: "[~@2 e1@5 ~@3 g1@2 a1@3 b1@7 ~@2 b1@3 ~ b1@3 a1@4 g1@5 ~@2 g1@2 ~ b1@3 d2@6 ~@2 d2@3 ~ d2@2 ~@2, ~@9 e1@2 ~@33 a1@2 ~@18]/2",
  AM: "~@3 e1@4 ~@3 e1@2 g1@2 a1@2 b1@7 ~ b1@7 ~, d2@5 ~@27",
  AN: "a1@4 g1@4 ~@3 a1@2 b1@3 d2@6 ~@2 d2@3 ~ d2@2 ~@2, ~@5 g1 ~@10",
  AO: "[d2@4 e1@3 ~@3 e1@2 g1@3 a1@2 b1@7 ~ b1@2 ~@4 a1@4 ~@3 g1@2 ~ b1@3 d2@12 d2@2 ~@2 d2@4, ~@20 a1 ~@11]/2",
  AP: "~@4 e1@4 ~@3 e1@3 g1@2 a1@2 b1@5 ~@3 b1@3 ~ b1@2",
  AQ: "~ a1@4 g1@4 ~@4 a1@2 b1@3 ~@2 b1@4 ~@2 c2@3 ~ c2@2, ~@6 g1 ~@9",
  AR: "[~@2 c2@2 ~@2 e1@3 ~@3 e1@2 ~ a1@3 b1@6 ~@2 b1@2 ~@2 b1@3 a1@3 ~ g1@2 a1 b1@3 d2@10 ~@3 d2@4 ~ d2@2 ~, ~@14 g1@3 ~@47]/2",
  AS: "[~ d2@2 ~@3 e1@3 ~@2 e1@2 g1@2 a1@2 b1@6 ~@3 b1@3 ~ b1@4 a1@4 g1@4 ~@2 g1@2 a1@2 b1@3 d2@6 ~@2 d2@3 ~ d2@3 ~ d2@3 e1@3 ~@2 e1@3 g1@2 a1@2 b1@7 ~@2 b1@2 ~@2 b1@3 a1@3 ~@2 g1@2 a1 b1@2 d2@8 ~@2 d2@3 ~@2 d2@2 ~ d2@4 ~ e1@3 ~@2 e1@3 ~ a1@3 b1@6 ~@2 b1@3 ~ b1@3 ~ a1@5 g1@4 ~@4 a1@2 b1@3 d2@6 ~@2 d2@2 ~@2 d2@2 ~, ~@139 g1@2 ~@30 g1@3 ~@18]/6",
  AT: "~ d2@3 ~ e1@3 ~@3 e1@2 ~ a1@3 b1@5 ~@3 b1@2 ~@2 b1@3, ~@13 g1@3 ~@16",
  AU: "~ a1@2 ~ g1@2 b1@3 d2@10 ~@2 d2@3 ~ d2@2 ~@2 d2@3",
  AV: "[~ e1@3 ~@5 e1@2 ~ a1@3 b1@5 ~@3 b1@3 ~ b1@4 a1@5 g1@4 ~@2 g1@3 ~ b1@3 d2@6 ~@2 d2@3 ~@2 d2@2, ~@11 g1@3 ~@31 a1@2 ~@17]/2",
  AW: "~ d2@3 ~ e1@3 ~@3 e1@2 g1@2 a1@2 b1@5 ~@2 b1@2 ~@2 b1@4",
  AX: "~ a1@2 ~ g1@2 b1@3 d2@7 ~@2 d2@3 ~@2 d2@3 d2@2 ~@2 d2@2, ~@6 a1 ~@25",
  AY: "~@6 e1@4 ~@4 g1@2 a1@2 b1@5 ~@2 b1@2 ~@2 b1@3, ~@13 e1@2 ~@17",
  AZ: "[~ a1@3 g1@4 ~@2 g1 b1@3 d2@6 ~@2 d2@3 ~ d2@2 ~@2 d2@6 e1 ~@6 e1@2 ~ a1@2 b1@5 ~@3 b1@2 ~@2 b1@4, ~@10 a1@2 ~@33 g1@3 ~@16]/2",
  BA: "[a1@4 g1@4 ~ g1@2 ~ b1@3 d2@6 ~@2 d2@3 ~ d2@2 ~@2 d2@4 ~ e1@3 ~@3 e1@2 g1@2 a1@3 b1@5 ~@3 b1@3 ~ b1@3, ~@11 a1@2 ~@51]/2",
  BB: "~ a1@4 g1@3 ~@2 g1@2 a1@2 b1@2 d2@6 ~@2 d2@3 ~ d2@3 ~", BC: "d2@2 e1@2 ~ e1 g1 a1 b1@3 ~ b1 ~ b1@2",
  BD: "[a1@3 g1@2 ~ b1@3 d2@7 ~ d2@7 ~@2 d2@4 e1@4 ~@4 e1@2 g1@2 a1@2 b1@4 ~@4 b1@2 ~@2 b1@4 ~ a1@5 g1@3 ~@4 g1@2 ~ b1@3 d2@6 ~ d2@3 ~@2 d2@2 ~ d2@4 e1@3 ~@3 e1@2 g1@2 a1@2 b1@5 ~@3 b1@3 ~ b1@4 a1@5 g1@3 ~@2 g1@2 a1@2 b1@3 d2@6 ~ d2@3 ~@2 d2@2 ~@2 d2@4 e1@3 ~@3 e1@2 g1@2 a1@2 b1@5 ~@3 b1@2 ~@2 b1@4 a1@4 g1@4 ~@2 [g1,a1]@2 b1@4 ~@2 d2@5 ~ d2@3 ~ d2@2 ~@2 d2@4 e1@3 ~@2 e1@2 g1@2 a1@3 b1@5 ~@2 b1@2 ~@2 b1@3 a1@3, ~@5 a1@2 ~@68 a1@2 ~@179]/8", // Gsus2
  BE: "[~ g1@2 a1@2 b1@2 d2@41 ~@16]/2",
})).s("gm_electric_bass_finger").gain(0.51)

// chords · electric guitar muted
const electric_guitar_muted = note("<~@15 A B C@2 D E@2 F G H I J@2 K L M N ~@7 O@2 P Q R S T U V ~@51>".pickRestart({
  A: "~@9 [e2,b2]@2 ~@3 e2@2 e2@3 [e2,b2]@2 ~@4 [e2,b2]@2 ~@2 e2 b2 ~, ~@14 b2@5 ~@13", // E5
  B: "[e2,b2]@2 ~@2 [e2,b2]@2 [e2,b2] ~ [e2,b2]@2 ~@4 [e2,b2] ~ [e2,b2] ~ e2 b2 ~ [e2,b2]@2 ~@4 [e2,b2]@2 ~@2 [e2,b2]", // E5
  C: "[~ [e2,b2] ~@3 e2 b2 ~ e2 [e2,b2]@2 ~@4 [e2,b2] ~ [e2,b2] ~ e2 ~@2 b2@2 ~@3 [e2,b2] ~@4 b2 ~ [e2,b2]@2 ~@2 [e2,b2] ~ [e2,b2]@2 ~ b2@2 ~@4 [e2,b2] ~ b2@2 e2 ~ [e2,b2]@2 ~@4 [e2,b2]@2 ~, ~@21 e2@2 ~@8 e2@2 ~@9 e2@2 ~@7 e2 ~@12]/2", // E5
  D: "~ [e2,b2] ~ [e2,b2]@2 ~@2 e2 b2 ~ [e2,b2] ~ [e2,b2]@2 ~@3 [e2,b2] ~ [e2,b2] ~@3 b2@2 [e2,b2]@2 ~@3 [e2,b2] ~, ~@11 e2 ~@4", // E5
  E: "[~@2 [e2,b2] ~ [e2,b2]@2 ~@2 [e2,b2]@2 ~@2 [e2,b2]@2 ~@4 e2 b2 e2 b2@2 e2 ~ b2@2 ~@4 [e2,b2]@2 ~ e2 ~@2 [e2,b2]@2 ~@2 [e2,b2] ~ [e2,b2] ~ [e2,b2]@2 ~@4 [e2,b2] ~ e2 b2 [e2,b2]@2 ~ [e2,b2] ~@5, ~@12 e2 ~@19]/2", // E5
  F: "[e2,b2] ~@2 e2 b2 [e2,b2]@2 ~@3 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~@5 [e2,b2] ~ [e2,b2] ~ [e2,b2]@2 ~ [e2,b2]@2 ~@3", // E5
  G: "~ [e2,b2] ~@2 [e2,b2] ~ [e2,b2] ~@25", H: "~@16 b2@3 ~@5 [e2,b2]!2 ~@3 b2@3, ~@15 e2@3 ~@10 e2@3 ~",
  I: "~@4 b2@2 ~@3 [e2,b2] ~@3 [e2,b2] ~ e2 b2 ~ b2@2 ~@5 [e2,b2] ~@3 [e2,b2]@3, ~@3 e2@2 ~@12 e2@2 ~@13", // E5
  J: "[~@6 [e2,b2]@2 ~@2 [e2,b2]@2 ~@4 [e2,b2] ~ [e2,b2] ~ [e2,b2]@3 ~@3 [e2,b2] ~@4 [e2,b2]@4 ~@3 [e2,b2]@2 ~@4 e2 ~@3 [e2,b2] ~ [e2,b2] ~ [e2,b2]@2 ~@5 [e2,b2] ~@4, ~@43 b2@2 ~@19]/2", // E5
  K: "[e2,b2]@2 ~@5 [e2,b2]@2 ~@3 e2 ~@2 [e2,b2] ~ [e2,b2] ~@3 [e2,b2]@2 ~@5 e2 b2 ~@2, ~@11 b2@2 ~@19", // E5
  L: "~ [e2,b2]@2 ~@6 [e2,b2]@2 ~@3 [e2,b2] ~@2 e2 b2 ~@2 b2@2 ~@5 [e2,b2] ~@3, ~@10 e2 ~@5", // E5
  M: "~ [e2,b2]@2 ~@6 [e2,b2]@2 ~@2 [e2,b2]@2 ~@2 [e2,b2] ~ [e2,b2] ~ [e2,b2]@2 ~@5 [e2,b2] ~ [e2,b2]@2", // E5
  N: "~@2 [e2,b2]@3 ~@5 [e2,b2] ~@3 [e2,b2] ~ [e2,b2]@2 ~@2 [e2,b2]@2 ~@10", // E5
  O: "[~@31 e2@3 ~@3 [e2,b2]@2 ~@5 [e2,b2] [e2,b2]@2 ~ e2 b2 e2 ~@2 e2@2 ~@4 [e2,b2] ~ [e2,b2]@2 ~, ~@51 b2@4 ~@9]/2", // E5
  P: "~@2 b2@3 ~@3 b2@2 ~ e2 b2 ~ e2@2 ~@2 [e2,b2] ~ [e2,b2] ~ [e2,b2]@2 ~@4 e2 ~ e2@2, ~ e2@3 ~@3 e2@2 ~@4 b2@2 ~@13 b2@4", // E5
  Q: "~@2 [e2,b2]@3 ~@3 e2 b2 [e2,b2]@3 ~@2 [e2,b2]@3 ~ e2 b2 ~ e2@3 ~@3 [e2,b2] ~ [e2,b2]@2, ~@21 b2@4 ~@7", // E5
  R: "~@3 [e2,b2]@4 ~@2 [e2,b2]@2 ~@2 e2 ~ [e2,b2]@3 ~@2 [e2,b2]@2 ~@2 [e2,b2]@4 ~@2 e2 ~", // E5
  S: "[e2,b2]@2 ~@2 [e2,b2]@3 ~@2 [e2,b2] ~ [e2,b2]@3 ~ [e2,b2]@2 ~@2 [e2,b2]@2 ~@2 [e2,b2]@5 ~ [e2,b2]@3", // E5
  T: "~@4 b2@3 ~@2 e2 b2 [e2,b2]@2 ~@3 b2@2 ~ [e2,b2] ~@3 e2@5 ~@2 [e2,b2]@2, ~@3 e2@3 ~@9 e2@2 ~@3 e2@2 ~@10, ~@21 b2@8 ~@3", // E5
  U: "[e2,b2]@4 [e2,b2]@5 ~ e2@2 e2@2 ~@2 [e2,b2]@3 ~@2 e2 e2@2 ~ e2@4 ~@2 [e2,b2], ~@10 b2@4 ~@6 b2@9 ~@3", // E5
  V: "~ [e2,b2]@3 ~@2 [e2,b2]@4 ~@2 [e2,b2]@2 ~@2 e2 e2@3 ~@2 [e2,b2]@2 ~@8, ~@4 b2 ~@3", // E5
})).s("gm_electric_guitar_muted").gain(0.26)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@6 A@2 B C D E F G H ~@8 I J K L@2 M N O P@2 Q R S T ~@6 U@2 V W X Y@6 ~@45
>`.pickRestart({
  A: "[~@5 e4@12 ~ e4 ~ e4@2 ~ e4 ~ e4 ~ e4!2 ~ e4 e4@2 e4 ~ e4 ~ e4!2 ~@2 e4 e4@5 ~ g#4!2 ~ g#4 ~ [e4,g#4] ~ [e4,g#4]!2 ~ e4 g#4 [e4,g#4] ~ [e4,g#4] ~]/2", // E
  B: "[e4,g#4] ~ g#4 ~ g#4@2 ~@2 g#4 ~ [g4,g#4] ~ [g4,g#4] ~ g4@5 g4 ~ g4@2 ~ f#4@2 f#4@2 f#4 ~ f4 ~, ~@14 g#4 ~@8 g#4@2 ~@7", // E G#maj7
  C: "f4 ~ f#4@3 f#4 ~ f#4 ~ f#4 ~ f#4!2 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~ f#4 ~@2 f#4 ~ f#4",
  D: "~ f#4 ~ f#4@5 ~ [e4,f#4] ~ e4 ~ e4@9 f4 ~ a4 b4 c5 d5 ~ e5 f5 ~", // Esus2
  E: "~ a5@2 ~@3 g5@3 f5@2 ~@2 f5@3 ~@2 g5@2 ~@4 e5@2 d5@2 ~ d5 ~@2, g5@2 ~@2 a5@5 ~@3 g5@2 ~@18",
  F: "~ c5 ~ c5 b4@2 c5@2 ~ d5@2 ~ a4 ~@2 [b4,d5]@2 a4@2 f4 ~@2 f4 a4@2 b4@2 a4@2 e4@3, ~@11 c5@2 ~ c5@3 ~@15", // Bm
  G: "f4@2 ~ a4 f4@2 d4@4 ~ [f4,g4]@2 [d4,e4]@2 ~ d4 ~@2 c4@2 d4@2 ~ d4@3 ~ b3@3 ~, ~@2 g4@2 ~@19 e4@3 ~ c4@2 ~@3", // Fsus2 Dsus2
  H: "[c4,d4]@3 ~@2 [b3,f4]@3 ~ [b3,c4]@3 ~@20, ~ d#4 ~@6", I: "~@16 a3@3 ~@9 [e3,b3]@3 ~, ~@15 d3@3 ~@14",
  J: "~@17 e3@3 ~@9 [e3,b3]@3, ~@4 b3 ~@3", K: "~@16 [e3,b3]@3 ~@10 [e3,b3]@3",
  L: "[~@19 e3@3 ~@9 [e3,b3]@3 ~@17 [e3,b3]@4 ~@9, ~@9 b3@2 ~@21]/2", M: "~ b3@3 ~@17 [e3,b3]@4 ~@7, e3@3 ~@29",
  N: "~@2 [e3,b3]@4 ~@15 [e3,b3]@4 ~@7", O: "~@2 b3@3 ~@16 [e3,b3]@4 ~@7, ~ e3@4 ~@27",
  P: "[~@2 b3@13 ~@9 e2@5 ~ e2@3 ~ a2@2 e3@5 ~@3 e2@5 a2@5 d3@4 ~ e2@4 ~, ~@33 g2@2 ~@14 g2@3 ~@12]/2",
  Q: "~@2 g2@3 a2@2 e3@4 ~@2 e2@3 ~@4 a2@3 ~ d3@4 e2@3 ~, ~ e2@3 ~@14 g2@4 ~@10",
  R: "~@4 [e2,g2]@2 a2@2 ~ e3@5 ~ e2@4 g2@3 a2@4 d3@4 e2@2", // Em
  S: "~@3 e2@3 ~@2 a2@2 ~ e3@5 ~ e2@4 g2@3 a2@2 d3@5 ~, ~@3 g2@2 ~@11", T: "~ e2@31",
  U: "[~@14 b3@6 g#3@5 ~ e3@16 ~@6 [e3,b3]@3 ~@9 [e3,b3]@4]/2", V: "~@4 [e3,b3]@4 ~@8 [e3,b3]@3 ~@9 [e3,b3]@4",
  W: "~@4 [e3,b3]@3 ~@9 [e3,b3]@3 ~@10 [e3,b3]@3", X: "~@17 [e3,b3]@4 ~@8 [e3,b3]@3",
  Y: "[~@4 b3@2 ~ e3 b3 ~ [e3,b3]@7 ~@2 e2@5 ~ e2@4 g2@2 a2@2 e3@4 ~ e2@3 g2@2 a2@3 ~ d3@4 e2@3 ~@3 e2@3 g2@2 a2 e3@5 ~@2 e2@4 g2@2 a2@4 d3@5 e2@3 ~@4 e2@2 ~@2 a2@2 e3@5 ~@2 e2@4 ~@2 a2@3 ~ d3@5 ~ e2@3 ~@2 e2@3 g2@2 a2@2 e3@4 ~@3 e2@5 g2@2 a2@4 d3@4 ~ e2@7 ~@3 e2@13 ~@13, ~@3 e3@2 ~@89 g2@4 ~@11 g2@4 ~@79]/6", // E5
})).s("gm_distortion_guitar").gain(0.26)

// other · distortion guitar
const distortion_guitar_2 = note("<~@23 A ~@29 B C@4 ~@6 D@3 E@8 F G H I@3 ~@18>".pickRestart({
  A: "~@3 e4@4 f4@4 f#4@4 ~@17", B: "~@20 g4@2 a4@2 ~ c5@2 d5@5, ~@12 b4 ~@3",
  C: "[~ e5@6 ~ e5@2 ~ e5 ~ e5 ~ e5!2 ~ e5 ~ e5!2 ~ e5 ~ e5 e5@3 d5@6 ~ d5@2 ~ c5 ~@4 b4@2 ~ b4 ~ b4!2 ~ b4 ~ b4@4 ~ a4@3 a4@7 ~ b4@3 b4 ~@2 b4!2 ~ b4 ~ b4!2 ~ b4 ~ b4 ~ b4@4 ~ b4@8 ~@27]/4",
  D: "[~@23 a4@3 d5@2 ~@5 a4@2 e5@2 ~ a4@2 ~ d5@2 ~@3 d5@2 a4 ~ e5 ~ a4 ~@2 d5@2 a4 e5@2 ~ a4@2 ~@2 a4 ~@2 d5 a4 ~@2 a4@2 ~ g5@13 ~ d5@2 e5@2 ~ b5@2, ~@31 e5@2 ~@7 e5@2 ~@3 e5@2 ~@4 d5@2 ~ e5@2 ~@4 d5@2 ~ e5@2 ~@2 e5@2 ~@2 e5@5 ~@20, ~@32 d5@2 ~@3 d5@2 ~@5 a4@2 ~@18 d5@2 ~@22 a4@2 ~@6]/3",
  E: "[~ g5@3 ~ f5@2 e5@2 ~ [a4,e5]@2 ~ f5@3 e5 ~ e5 ~@2 d5@2 ~ a4@2 ~ d5@2 c5@2 g4@2 b4@2 ~ a4@2 d5@8 ~ d5@3 ~ d5@2 ~ d5@3 ~@2 [e5,f5] ~@4 d5@2 ~@2 f5@2 [d5,e5]@2 ~@2 [c5,d5]@2 b4 ~@3 a4@2 ~ a4@2 ~ g4@3 f4 ~@3 c4@2 ~ d4@2 e4@2 f4@10 c4@3 ~ g4@2 a4@2 b4 [c5,d5]@2 [e5,f5] g5@2 ~@4 a5 g5@2 ~@2 g5@2 f5 ~@3 g5@3 f5@3 ~ d5@2 ~ g5@2 ~@2 d5 g5@2 ~ a#5@11 b5@6 a5@3 f5@4 d5@2 a#5@2 a#5@2 ~@2 a5 ~ a5@2 a5@4 ~@2 g#5@6 ~@2 g5@4 ~@2 f5@2 ~@2 e5@4 ~@2 d5@8 ~ d5@9 c5@5 ~ d5@4 ~ e5@2 ~ c5, ~ a5 ~@7 f5@2 ~@2 e5 ~@12 e5@3 ~@6 c5@3 ~@24 g5@2 ~@3 g5@3 ~@3 e5@3 ~@3 b4@2 ~@14 e4@2 ~@17 f4 ~@141, ~@63 e5@2 ~ a4@2 ~@4 a4@6 c5@2 ~@47 b5@2 ~@3 a5@3 ~@2 a5@5 ~@9 a5@4 ~@99 d5@2]/8", // A5 Fmaj7 Dsus2 Csus2 Fmaj7
  F: "~@2 a4@3 f5@6 e5@6 d5@3 ~@3 b4@2 a4@2 b4@4 ~, ~@22 c5@3 ~@7",
  G: "~ a4@5 ~ g4@6 ~ c5@3 ~ a4@4 ~@3 a5@3 g5@2 f5@2, ~@17 b4@3 ~@12",
  H: "~ d5@3 f5@6 g5@3 ~ f5@2 ~ d5@4 ~@2 f5@2 [d5,e5] ~ c5 ~@2 e5@2, ~ e5 ~@20 g5@3 ~@4 f5@3", // Dsus2
  I: "[d5@2 ~ e5@7 ~@2 f5@5 ~@2 g5@2 ~@2 c5@5 ~ a5@2 ~ f5@2 ~@3 f5@2 ~ e5 ~@3 e5 ~ d5 ~@4 [d5,e5]@2 g5@5 a#5@5 a5@3 b5@5 a5@6 g5 [e5,f5] [c5,d5] b4 ~@15, ~@2 c5@2 ~@27 g5@2 ~ e5@2 g5@2 ~@4 g5@3 ~@3 g5@3 ~@45, ~@35 a5@2 ~@6 f5@2 ~@4 f5@5 ~@42]/3", // Dsus2 Fmaj7 Csus2
})).s("gm_distortion_guitar").gain(0.26)

// drums · kick
const kick = s("bd").struct(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK ~@3 AL AM AN AO 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@2 BS BT BU BV BS BW BX BY BZ CA CB CC ~ CD CE
  CF CG CH CI CJ CK ~@2
>`.pickRestart({
  A: "~@7 x ~@4 x ~@4 x ~@6 x ~@3 x ~@3", B: "~@2 x ~@4 x ~@5 x ~@7 x ~@9 x", C: "~@10 x ~@5 x ~@5 x ~@6 x ~@2",
  D: "~ x ~@6 x ~@3 x ~@5 x ~@6 x ~@6", E: "x ~@3 x ~@5 x ~@4 x ~@4 x ~@7 x ~@3",
  F: "~@2 x ~@3 x ~@6 x ~@3 x ~@5 x ~@6 x ~", G: "~@9 x ~@12 x ~@2 x ~@5 x", H: "~@5 x ~@4 x ~@3 x ~@5 x ~@4 x ~@5 x",
  I: "~@6 x ~@5 x ~@3 x ~@6 x ~@3 x ~@4", J: "~ x ~@6 x ~@6 x ~@3 x ~@6 x ~@4 x",
  K: "~@4 x ~@7 x ~@5 x ~@4 x ~@4 x ~@3", L: "~ x ~@4 x ~@6 x ~@5 x ~@4 x ~@5 x ~",
  M: "~@2 x ~@5 x ~@6 x ~@5 x ~@4 x ~@5", N: "x ~@3 x ~@5 x ~@6 x ~@5 x ~@3 x ~@4", O: "~@2 x ~@3 x ~@4 x ~@6 x ~@13",
  P: "~@7 x ~@4 x ~@6 x ~@5 x ~@3 x ~@2", Q: "~@4 x ~@3 x ~@5 x ~@5 x ~@6 x ~@3 x",
  R: "~@5 x ~@4 x ~@4 x ~@6 x ~@5 x ~@3", S: "~ x ~@4 x ~@4 x ~@4 x ~@5 x ~@6 x ~@2",
  T: "~@2 x ~@10 x ~@4 x ~@5 x ~@5 x ~", U: "~@2 x ~@5 x ~@3 x ~@5 x ~@6 x ~@5 x",
  V: "~@3 x ~@5 x ~@4 x ~@4 x ~@6 x ~@5", W: "x ~@3 x ~@6 x ~@2 x ~@5 x ~@5 x ~@5",
  X: "~ x ~@3 x ~@10 x ~@4 x ~@6 x ~@3", Y: "~@2 x ~@3 x ~@6 x ~@3 x ~@4 x ~@6 x ~@2",
  Z: "~@3 x ~@3 x ~@5 x ~@3 x ~@5 x ~@7 x", AA: "~@5 x ~@3 x ~@5 x ~@2 x ~@5 x ~@6 x",
  AB: "~@5 x ~@3 x ~@11 x ~@4 x ~@5", AC: "x ~@5 x ~@4 x ~@5 x ~@3 x ~@4 x ~@5",
  AD: "~ x ~@5 x ~@3 x ~@5 x ~@3 x ~@5 x ~@4", AE: "~ x ~@5 x ~@4 x ~@6 x ~@3 x ~@5 x ~@2",
  AF: "~@3 x ~@13 x ~@7 x ~@5 x", AG: "~@6 x ~@5 x ~@2 x ~@6 x ~@3 x ~@5", AH: "x ~@6 x ~@6 x ~@3 x ~@6 x ~@3 x ~@2",
  AI: "~@3 x ~@5 x ~@6 x ~@3 x ~@5 x ~@3 x ~", AJ: "~@4 x ~@6 x ~@10 x ~@9", AK: "~ x ~@2",
  AL: "~@6 x ~@2 x ~@2 x ~@2 x", AM: "~@2 x ~@5 x ~@4 x ~@4 x ~@6 x ~@5 x", AN: "~@3 x ~@5 x ~@3 x ~@5 x ~@5 x ~@6",
  AO: "x ~ x ~@2 x ~ x ~@2 x ~@2 x ~@2", AP: "~@5 x ~@9 x ~@5 x ~@5 x ~@4", AQ: "x ~@3 x ~@6 x ~@3 x ~@5 x ~@6 x ~@3",
  AR: "~@2 x ~@3 x ~@5 x ~@3 x ~@5 x ~@6 x ~@2", AS: "~@3 x ~@3 x ~@5 x ~@4 x ~@5 x ~@5 x ~",
  AT: "~@8 x ~@10 x ~@4 x ~@6 x", AU: "~@5 x ~@3 x ~@5 x ~@5 x ~@4 x ~@5", AV: "~ x ~@6 x ~@3 x ~@5 x ~@4 x ~@6 x ~",
  AW: "~@4 x ~@5 x ~@4 x ~@5 x ~@4 x ~@4 x", AX: "~@7 x ~@5 x ~@3 x ~@14", AY: "~ x ~@14", AZ: "~@18 x ~@3 x ~@8 x",
  BA: "~@7 x ~@17 x ~@6", BB: "~@29 x ~@2", BC: "~ x ~@5 x ~@6 x ~@5 x ~@3 x ~@6 x",
  BD: "~@3 x ~@4 x ~@6 x ~@5 x ~@3 x ~@6", BE: "x ~@3 x ~@4 x ~@6 x ~@4 x ~@3 x ~@6",
  BF: "~ x ~@3 x ~@3 x ~@7 x ~@6 x ~@2 x ~@4", BG: "~ x ~@3 x ~@4 x ~@6 x ~@5 x ~@3 x ~@4",
  BH: "~ x ~@2 x ~@5 x ~@6 x ~@5 x ~@3 x ~@4", BI: "~ x ~@3 x ~@4 x ~@7 x ~@8 x ~@4", BJ: "~@3 x ~ x ~@3 x ~@2 x ~ x ~",
  BK: "~@2 x ~@3 x ~@5 x ~@6 x ~@4 x ~@3 x ~@3", BL: "~@3 x ~@3 x ~@3 x ~@7 x ~@5 x ~@3 x ~@2",
  BM: "~@2 x ~@4 x ~@3 x ~@5 x ~@14", BN: "~@3 x ~@4 x ~@2 x ~@7 x ~@4 x ~@3 x ~@3",
  BO: "~@2 x ~@4 x ~@3 x ~@7 x ~@4 x ~@3 x ~@3", BP: "~@3 x ~@3 x ~@4 x ~@6 x ~@9 x ~@2",
  BQ: "~@4 x ~@4 x ~@7 x ~@5 x ~@2 x ~@5", BR: "~ x ~@3 x ~@4 x ~@6 x ~@4 x ~@3 x ~@5", BS: "x",
  BT: "~@4 x ~@4 x ~@12 x ~@3 x ~@5", BU: "~ x ~@3 x ~@4 x ~@7 x ~@5 x ~@2 x ~@4", BV: "~ x ~ x ~ x ~@2 x ~@4 x ~@2",
  BW: "~@6 x ~@3 x ~@5 x ~@5 x ~@2 x ~@6", BX: "x ~@2 x ~@4 x ~@6 x ~@6 x ~@2 x ~@6",
  BY: "x ~@3 x ~@4 x ~@6 x ~@6 x ~@2 x ~@5", BZ: "x ~@4 x ~@4 x ~@6 x ~@4 x ~@3 x ~@5",
  CA: "~ x ~@3 x ~@4 x ~@6 x ~@4 x ~@4 x ~@4", CB: "~ x ~@3 x ~@3 x ~@7 x ~@4 x ~@3 x ~@5",
  CC: "x ~@4 x ~@4 x ~@6 x ~@5 x ~@6 x ~", CD: "~@5 x ~@4 x ~@5 x ~@4 x ~@3 x ~@6",
  CE: "x ~@3 x ~@4 x ~@5 x ~@5 x ~@3 x ~@5 x", CF: "~@4 x ~@3 x ~@7 x ~@5 x ~@2 x ~@6",
  CG: "x ~@3 x ~@3 x ~@6 x ~@9 x ~@6", CH: "~@3 x ~@4 x ~@7 x ~@3 x ~@4 x ~@5 x",
  CI: "~@3 x ~@4 x ~@6 x ~@4 x ~@4 x ~@5 x", CJ: "~@3 x ~@4 x ~@5 x ~@9 x ~@5 x ~", CK: "~@5 x ~@26",
})).gain(0.51)

// drums · snare
const snare = s("sd").struct(`<
  A B C D E F G H I J K F L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF D AG AH AI ~@3 AJ T U V AK K AL Y AM L AN AO
  AP ~ AQ AR AS AT Z AU AB AU AV AW AX A AY AZ BA BB BC BD BE AB AC AU BF BG AC BH BI BJ BK AU AC AV AU BL BM BN BO BK
  BP BO BQ BR AI ~ BS
>`.pickRestart({
  A: "~@13 x ~@16 x ~", B: "~@15 x ~@11 x ~@4", C: "~@2 x!2 ~ x!2 ~@11 x ~@13", D: "~@3 x ~@16 x ~@11",
  E: "~@6 x ~@16 x ~@8", F: "~@8 x ~@16 x ~@6", G: "~@4 x ~@6 x ~ x ~ x ~ x ~ x ~@3 x ~@8", H: "~ x ~@14 x ~@15",
  I: "~ x ~@17 x ~@12", J: "~@3 x ~@17 x ~@10", K: "~@7 x ~@16 x ~@7", L: "~@5 x ~@8 x ~", M: "~@6 x ~@8 x",
  N: "~@14 x ~@10 x ~@3 x ~ x", O: "~ x ~ x!2 ~@10 x ~@15 x", P: "~@15 x ~@16", Q: "~ x ~@15 x ~@14",
  R: "~ x ~@7 x ~@6", S: "~@3 x ~@3 x!2 ~@10 x ~@12", T: "~@4 x ~@16 x ~@10", U: "~@5 x ~@15 x ~@10",
  V: "~@3 x ~@7 x ~@4", W: "~@7 x ~ x ~ x!2 ~@10 x ~@8", X: "~@9 x ~@15 x ~@6", Y: "~@9 x ~@16 x ~@5",
  Z: "~@10 x ~@16 x ~@4", AA: "~@11 x ~@3 x ~ x ~@9 x ~@4", AB: "~@13 x ~@14 x ~@3", AC: "~@13 x ~@15 x ~@2",
  AD: "~@15 x ~@15 x", AE: "~@9 x ~@3 x ~@2 x ~@15", AF: "~ x ~@16 x ~@13", AG: "~@5 x ~@16 x ~@9",
  AH: "~@7 x ~@10 x ~@7 x!2 ~ x ~ x", AI: "~@2 x!2 ~ x ~@26", AJ: "~@3 x ~@15 x ~@12", AK: "~ x ~@6 x ~ x!3 ~@9 x ~@9",
  AL: "~ x ~ x", AM: "~@5 x ~@5 x ~ x ~ x ~ x ~@9 x ~@4", AN: "~@7 x ~@8", AO: "x ~@16 x ~@14",
  AP: "~@2 x ~@15 x ~@4 x ~@3 x!3 ~@2", AQ: "x ~@4 x ~ x ~@16 x ~ x ~ x ~@3", AR: "~ x ~@5 x ~@13 x ~@10",
  AS: "~@2 x ~ x ~@4 x ~ x ~@2 x ~@4 x ~ x ~@3 x ~ x ~@4", AT: "~@9 x ~@17 x ~@4", AU: "~@3 x ~@3 x",
  AV: "~@12 x ~@16 x ~@2", AW: "~@13 x ~@9 x ~@7 x", AX: "x!6 ~@10", AY: "~@7 x ~@7 x", AZ: "~@15 x ~@14 x ~",
  BA: "~@14 x ~@9 x!2 ~@4 x ~", BB: "x!2 ~@5 x ~@7 x", BC: "~@14 x ~@16 x", BD: "~@15 x ~@9 x ~@6",
  BE: "~@6 x!2 ~ x ~ x ~@3 x ~ x ~@5 x!2 ~@3 x ~@3", BF: "~@5 x ~ x ~ x ~ x ~@3 x ~ x ~@4 x ~ x ~@3 x ~@3",
  BG: "x ~@2 x ~@3 x", BH: "~@12 x ~@9 x ~@6 x ~@2", BI: "~@4 x!2 ~@2 x ~ x ~@4 x ~ x ~@4 x ~ x ~@3 x ~@3",
// … 94 more lines

More by Pearl Jam