Strudelify

Israel's Son

Silverchair

KeyD minorTempo120 bpm
0:00/0:00
// Israel's Son — Silverchair
// 120 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 138 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(`<
  A@3 B C@3 ~@11 D@3 E F G H I J@3 K L M N O P@2 Q R S T@2 U@2 V@2 W@3 X Y@2 Z@2 AA@3 AB AC AD@2 AE@3 AF AG AH@2 AI AJ
  AK@2 AL@2 AM@4 AN@2 AO AP@3 AQ AR AS@3 AT@4 AU AV@2 AW AX AY AZ BA ~ BB@5 BC BD BE@2 BF BG BH@4 BI BJ BK BL BM BN@2 BO
  BP BQ BR@3 BS@2 BT BU BV BW@3 ~
>`.pickRestart({
  A: "[~@17 d1@4 ~@3 d1@5 ~ f1@3 g1@2 ~ c2@12 ~ d1@5 ~@2 f1@5 d2@5 ~ d1@3 ~@3 d1@5 ~ f1@3 ~@2 g1@3 c2@9]/3",
  B: "~@2 d1@5 ~@2 f1@6 d2@5 d1@4 ~@3 d1@4 ~",
  C: "[~ f1@2 g1@3 ~ c2@12 d1@4 ~@2 f1@6 d2@6 d1@4 ~@2 d1@5 f1@4 g1@3 c2@12 d1@4 ~ f1@5 ~ d2@2 ~@16]/3",
  D: "[~@7 d1@3 ~@2 d1@4 ~ f1@3 ~ g1@2 c2@10 d1@5 ~@2 g1@5 ~ d2@5 d1@3 ~@2 d1@4 ~@3 g1@3 c2@11 d1@5 ~@2 f1@2 g1@2 ~ d2@5 d1@2, ~@39 f1@6 ~@17 f1@3 ~@31]/3",
  E: "~@4 d1@4 ~ f1@2 g1@3 c2@11 d1@4 ~ f1@2", F: "g1@3 d2@5 d1@3 ~@4 d1@4 ~@2 g1@2 ~ c2@8, ~@10 f1 ~@5",
  G: "~ d1@3 ~@3 f1@2 g1@3 ~ d2@5 d1@3 ~@3 d1@3 ~@2 f1@3", H: "g1@3 c2@10 d1@3 ~@3 f1@2 g1@2 ~ d2@5 d1@3",
  I: "~@3 d1@3 ~@2 f1@2 g1@3 c2@10 d1@4 ~ f1@2 g1@2",
  J: "[~ d2@6 d1@3 ~@2 d1@4 ~@2 f1@3 g1@2 c2@11 d1@4 ~@4 g1@3 d2@5 d1@3 ~@3 d1@4 ~@3 g1@3 c2@10 ~ d1@4 ~@2 g1@3 ~ d2@5 d1@3 ~, ~@40 f1@4 ~@17 f1@4 ~@17 f1@3 ~@11]/3",
  K: "~@2 d1@4 ~ f1@2 g1@3 c2@10 d1@4 ~@4 g1@2, ~@7 f1", L: "~@2 d2@4 d1@3 ~@3 d1@3 ~@4 g1@2 c2@11, ~@18 f1@3 ~@11",
  M: "~ d1@5 f1@2 g1@3 ~ d2@5 d1@2 ~@3 d1@3 ~@2 f1@2 g1@3",
  N: "~ c2@10 ~ d1@4 ~@2 g1@4 ~ d2@4 d1@3 ~@2, ~@17 f1@3 ~@12",
  O: "d1@4 ~@2 f1@2 g1@3 c2@10 ~ d1@3 ~@2 g1@4 ~, ~@27 f1@2 ~@3",
  P: "[d2@4 d1@3 ~@3 d1@5 ~ g1@4 ~ f1@8 d1@6 ~ e1@5 ~ f1@5 d1@4 ~@3 d1@5 g1@4 ~]/2", Q: "f1@9 d1@5 e1@5 f1@6 d1@4 ~@3",
  R: "d1@4 g1@4 ~ f1@9 d1@5 ~ e1@5 f1@3", S: "~@2 eb1@4 ~@2 eb1@4 ~ eb1@4 ~@2 eb1@3 ~@2 ab1@4 ~ ab1@3",
  T: "[~@3 ab1@3 ~@2 ab1@4 ~ d1@3 ~@4 d1@4 ~ g1@4 ~ f1@7 ~@3 d1@3 ~ f1@2 g1@3 ~ c2@4 ~@2 d1@3 ~@2 d1@3]/2",
  U: "[~ f1@2 g1@3 c2@11 d1@4 ~@4 g1@2 ~@2 d2@6 d1@3 ~@2 d1@3 ~@3 g1@3 ~ c2@10 d1@4, ~@24 f1@3 ~@18 f1@3 ~@16]/2",
  V: "[~@3 [f1,g1]@4 ~ d2@6 d1@3 ~@2 d1@3 ~@2 f1@2 g1@3 ~ c2@9 ~ d1@3 ~@3 [f1,g1]@4 ~ d2@4 d1@3 ~@4 d1@2]/2", // Fsus2
  W: "[~@4 g1@3 ~ c2@9 ~ d1@3 ~@3 f1@2 g1@2 ~@2 d2@5 d1@3 ~@4 d1@3 ~ f1@2 g1@3 c2@9 ~@3 d1@3 ~@3 f1@2 g1@3 ~ d2@4 ~ d1@3 ~@2 d1@4 ~ f1@2 g1@3 ~, ~ f1 ~@30]/3",
  X: "~ c2@8 ~@3 d1@3 ~@3 g1@3 ~ d2@5 ~ d1@3 ~, ~@17 f1@3 ~@12",
  Y: "[~@2 d1@4 ~ f1@2 g1@4 c2@8 ~@3 d1@3 ~@5 g1@3 ~ d2@4 ~ d1@3 ~@3 d1@3 ~@2 g1@5 c2@7, ~@30 f1@4 ~@18 f1@3 ~@9]/2",
  Z: "[~@4 d1@3 ~@6 g1@3 ~ d2@2 ~ d1@3 ~@2 d1@3 ~@3 g1@4 c2@9 ~@2 d1@3 ~ f1@4 g1@2 ~ d2@4 d1@3, ~@10 f1@5 ~@15 f1@3 ~@31]/2",
  AA: "[~@3 d1@3 ~@2 f1@2 g1@3 c2@10 ~ d1@3 ~@3 g1@5 ~@2 d2@4 d1@3 ~@4 d1@3 ~@2 [f1,g1]@5 c2@9 ~@2 d1@3 ~@4 g1@4 ~ d2@5 d1@3 ~@3 d1@4, ~@29 f1@4 ~@42 f1@4 ~@17]/3", // Fsus2
  AB: "~ g1@5 f1@11 d1@5 e1@5 f1@5", AC: "~@2 d1@3 ~@2 d1@4 ~@2 g1@4 ~ f1@10 d1@4",
  AD: "[~ e1@5 f1@5 ~ d1@3 ~@2 d1@5 ~ g1@4 ~ f1@9 d1@5 ~ e1@4 ~ f1@4 eb1@4 ~@2 eb1@3 ~ eb1@2]/2",
  AE: "[~@4 eb1@3 ~@2 ab1@3 ~@2 ab1@3 ~@3 ab1@2 ~@4 ab1@3 ~@2 d1@3 ~@2 d1@4 ~ g1@4 ~@2 f1@9 ~ d1@5 e1@4 ~ f1@4 ~ d1@3 ~@3 d1@5 g1@5 f1@8]/3",
  AF: "~@2 d1@5 ~@2 e1@5 f1@5 ~ d1@3 ~@3 d1@5 ~", AG: "g1@4 ~ f1@9 d1@5 ~ e1@4 f1@4 ~ eb1@3",
  AH: "[~@2 eb1@3 ~ eb1@3 ~@2 ab1@3 ~@2 ab1@3 ~@2 ab1@3 ~@2 d1@3 ~@2 d1@5 g1@2 ~@6 c2@9 d1@2 f1@2 g1@2 ~@2 d2@2 ~]/2",
  AI: "~@3 d1 ~ d1@2 f1@2 ~ c2@10 ~@2 d1@4 f1@2 g1@3 ~", AJ: "d2@5 d1@3 ~@2 d1@4 ~@3 g1@3 ~ c2@11, ~@15 f1@4 ~@13",
  AK: "[d1@4 f1@2 g1@3 ~ c2@2 ~@2 d1@2 ~@3 d1@3 ~ f1@2 g1@3 c2@9 d1@3 ~@2 g1@3 b1@3 ~ d2@5 ~ d1@3 ~@2 d1@4, ~@9 d2@6 ~@26 f1@3 ~@20]/2",
  AL: "[~@3 g1@4 c2@12 d1@4 ~@3 g1@5 d2@5 ~@2 d1@2 ~@2 d1@3 ~@2 g1@2 ~ c2@9 ~ d1@3 ~, ~@2 f1@3 ~@19 f1@5 ~@2 c2@2 ~@13 f1@2 ~@16]/2",
  AM: "[~@2 g1@3 ~@2 d2@5 ~ d1@3 ~@2 d1@3 ~@2 f1@2 g1@2 c2@10 ~ d1@4 ~@2 g1@2 ~@2 d2@5 d1@3 ~@2 d1@4 ~ f1@2 g1@3 ~ c2@9 d1@4 ~@3 f1@2 g1@2 ~ d2@4 ~ d1@3 ~@6 d1@2 ~@3 g1@3 ~ c2@10 ~ d1@4, ~ f1@3 ~@3 c2 ~@35 f1@3 ~@62 f1@3 ~@17]/4",
  AN: "[~@2 g1@3 ~@2 d2@4 ~ d1@2 ~@2 d1@4 ~@5 g1@3 c2@10 d1@3 ~@4 g1@3 ~ d2@5 d1@3 ~@2 d1@3 ~@2, ~ f1@3 ~@19 f1@4 ~@17 f1@3 ~@17]/2",
  AO: "~ g1@4 c2@10 ~ d1@5 ~@3 g1@2 ~@2 d2@4, f1@3 ~@19 f1@4 ~@6",
  AP: "[~ d1@2 ~@3 d1@3 ~@2 g1@4 c2@9 d1@4 ~@4 g1@2 ~ d2@4 ~ d1@3 ~@2 d1@3 ~ f1@2 g1@3 c2@8 ~ d1@4 ~@3 g1@3 ~@2 d2@4 ~ d1@3 ~@2 d1@4 ~@4 g1@3, ~@10 f1@3 ~@17 f1@4 ~@35 f1@3 ~@19 f1@4 ~]/3",
  AQ: "~ c2@10 ~ d1@4 ~ f1@4 g1@3 ~ d2@3 ~@2 d1@2", AR: "~@5 f1@2 g1@3 c2@10 d1@5 ~ f1@3 g1@2 ~",
  AS: "[~ c2@4 d1@3 ~@3 d1@4 ~ f1@2 g1@3 ~@3 c2@4 ~@2 f1@17 ~@4 d1@3 ~@3 d1@4 ~ g1@4 f1@10 d1@6 e1@5 f1@4 d1@3 ~@2, ~ d2@2 ~@93]/3",
  AT: "[~@3 d1@3 g1@5 ~ f1@8 d1@5 ~ e1@4 f1@5 d1@3 ~@3 d1@4 ~ g1@5 f1@9 ~ d1@5 e1@4 ~ f1@4 ~ eb1@3 ~@2 eb1@3 ~@2 eb1@3 ~@2 eb1@3 ~ ab1@3 ~@2 ab1@3 ~@2 ab1@3 ~@2 ab1@4 ~@3 d1@3 ~@2 d1@5 ~]/4",
  AU: "~ g1@4 f1@7 ~ d1@4 ~@3 e1@4 ~ f1@5 d1@2, f1 ~@15",
  AV: "[~@4 d1@3 ~@2 g1@4 ~ f1@11 d1@5 ~ e1@4 f1@5 d1@3 ~@4 d1@3 ~ g1@4 ~@2 f1@7]/2",
  AW: "~@2 d1@5 e1@4 ~@2 f1@3 ~ eb1@4 ~@2 eb1@3 ~ eb1@2 ~@3",
  AX: "eb1@2 ~@2 ab1@3 ~@4 ab1@2 ~@5 ab1@2 ~@4 ab1@3 ~@2 eb1@2 ~", AY: "~@9 d1@3 ~@20", AZ: "~@7 d1@3 ~@22",
  BA: "~@15 d1@4 ~@13",
  BB: "[~@31 d1@3 ~@3 d1@5 a1@3 g1@7 d1@4 f1@2 ~ g1@3 c2@6 g1@5 ~ d1@2 ~@2 d1@4 ~ g1@2 f1@6 ~ d1@3 f1@2 ~ g1@2 c2@6 g1@4 ~@3 d1@2 ~@2 d1@4 ~ g1@2 f1@7 ~@2 d1@2 f1@2 ~ g1@3 c2@4 ~ g1@3 ~@2 d1@3 ~@2 d1@4]/5",
  BC: "~ g1@3 f1@6 ~ d1@2 f1@3 g1@3 c2@5 g1@3 ~@2 d1@2 ~", BD: "~ d1@4 ~ g1@2 f1@6 ~ d1@2 f1@2 g1@3 c2@5 ~ g1@4",
  BE: "[~@2 d1@2 ~@3 d1@4 ~ g1@2 f1@7 ~ d1@2 f1@2 g1@2 ~@2 c2@6 g1@4 ~@2 d1@2 ~@2 d1@6 g1@2 f1@7 ~ d1@2]/2",
  BF: "~ f1@2 g1@2 ~ c2@6 g1@3 ~@5 d1@2 ~@3 d1@5 g1@2", BG: "~ f1@5 ~ d1@2 ~ f1@2 g1@2 ~ a1@6 ~ g1@4 ~@2 d1@2 ~@2",
  BH: "[~ d1@4 ~ g1@2 ~ f1@6 d1@2 ~ f1@2 ~ g1@2 c2@6 ~ g1@4 ~@2 d1@2 ~@2 d1@4 ~@2 g1@3 f1@6 d1@3 f1@2 g1@2 ~ a1@6 ~ f1@3 ~@2 d1@3 ~@2 d1@4 ~@2 g1@2 f1@7 d1@2 ~ f1@2 g1@2 ~ c2@6 ~ g1@4 d1@3 ~@3 d1@3 ~@3 g1@2]/4",
  BI: "f1@4 ~@4 d1@2 ~@2 g1@2 ~@2 a1@5 ~ g1@3 ~@2 d1@3 ~@2, ~@11 f1@3 ~@18", BJ: "~ d1@5 ~@26",
  BK: "~@4 d1 ~@4 d1@4 ~@19", BL: "~@7 d1@2 ~ d1@4 ~@18", BM: "~@6 d1 ~@3 d1@4 ~@18",
  BN: "[~@6 d1@2 ~@2 d1@5 g1@2 f1@7 d1@2 ~ g1@2 ~ c2@5 ~ g1@5 d1@2 ~@2 d1@4 ~@2 f1@6 ~@2 f1@2 g1@3, ~@13 f1 ~@11 g1 ~@3 d1 ~@2]/2",
  BO: "c2@5 ~ g1@4 d1@2 ~@2 d1@4 g1@2 f1@6 d1@2 f1@2 g1@2",
  BP: "~ c2@4 ~ g1@4 d1@2 ~@2 d1@2 ~@2 g1@2 f1@5 d1@2 f1@2 g1@2 ~",
  BQ: "~ b1@4 ~ a1@2 ~@2 d1@2 ~@2 d1@4 ~@2 g1@2 f1@6 d1@2 f1@2",
  BR: "[~ g1 ~ c2@5 g1@4 ~ d1@2 ~@2 d1@3 ~ g1@2 f1@6 d1@2 f1@2 g1@2 ~ c2@5 ~ g1@4 d1@2 ~@2 d1@3 ~ g1@2 f1@7 d1@2 f1@2 g1@2 ~ c2@4 ~ g1@3 ~@2 d1@2 ~ d1@3 ~ g1@2 f1@7]/3",
  BS: "[~ d1 ~@2 g1@2 b1@5 ~@2 g1@3 ~ d1@2 ~ d1@3 ~ g1@2 f1@9 ~ d1 g1@2 c2@5 ~ g1@4 d1@2 ~ d1@3 ~@2 g1@2 f1@5, ~@3 f1@2 ~@31 f1@2 ~@26]/2",
  BT: "~ d1@2 f1@3 g1@2 c2@4 ~ g1@3 ~@2 d1@2 ~ d1@3 ~@3 f1@5, ~@13 g1 ~@2",
  BU: "~ d1@2 f1@2 g1@2 ~ c2@5 g1@4 d1@2 ~@2 d1@3 ~@2 g1@2 f1@4",
  BV: "~@3 f1@2 g1@2 c2@4 ~ g1@4 d1@2 ~ d1@2 g1@2 f1@4 ~@2 g1@3, ~@2 d1@2 ~@23 d1@2 ~@3, ~@14 f1 ~",
  BW: "[~ c2@2 ~ g1@3 d1@2 ~ d1@2 ~@2 g1@2 f1@3 ~@3 g1@2 c2@4 g1@3 d1@2 ~ d1@2 ~@3 f1@3 ~ d1 f1@2 g1@2 c2@3 ~ g1@2 ~ d1@2 ~ d1@2 ~@3 d1@30 ~@3, ~@21 f1@2 ~@15 g1@2 ~@56]/3",
})).s("gm_electric_bass_finger").gain(0.51)

// bass · electric bass pick
const bass_2 = note("<~@6 A B@4 C@3 D@3 E ~@120>".pickRestart({
  A: "~@20 d1@4 ~@2 d1@5 ~",
  B: "[f1@3 g1@3 c2@13 d1@6 f1@5 d2@6 d1@3 ~@4 d1@5 f1@3 g1@2 ~ c2@12 d1@6 f1@5 ~ d2@6 d1@4 ~ d1@5 ~ f1@3 g1@2 ~ c2@12 d1@5 ~ f1@5 d2@4]/4",
  C: "[~ d1@4 ~@2 d1@5 f1@3 g1@2 ~ b1@10 ~ d1@5 f1@5 ~ d2@5 d1@4 ~@2 d1@5 f1@3 g1@2 ~ c2@12 d1@5 f1@5 d2@5 ~ d1@4 ~@2]/3",
  D: "[d1@5 ~ f1@3 g1@2 ~ c2@12 d1@5 f1@6 d2@4 d1@5 ~@2 d1@4 ~@2 f1@3 g1@3 c2@10 d1@5 ~ f1@7 d2@6 d1@4 ~@2 d1@3]/3",
  E: "~@2 d1@11 ~ f1@14 ~@4",
})).s("gm_electric_bass_pick").gain(0.51)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@12 A B ~ C D E@2 F G@2 H I J K L@2 M N O P Q R S T@3 U@3 V W X@3 Y@2 Z AA@2 AB@2 AC AD@2 AE AF AG@2 AH@2 AI@3 ~@21
  AJ AK AL AM AN@3 AO@2 AP AQ ~@41
>`.pickRestart({
  A: "~@7 [d2,a2]@2 ~ [d2,a2]@2 ~ [d2,a2]@2 [d2,a2]@4 ~@13", // D5
  B: "~@22 d2 ~ [d2,a2]@2 ~ [d2,a2]@2 [d2,a2]@3, ~@21 a2@2 ~@9", // D5
  C: "~@3 [d2,a2]@2 ~ d2@2 [d2,a2]@2 ~ [d2,a2]@4 ~@17, ~@5 a2@2 ~@25", // D5
  D: "~@16 [d2,a2]@2 [d2,a2]@2 ~ [d2,a2]@2 [d2,a2]@4 ~@5", // D5
  E: "[~@14 [f2,c3]@21 ~@4 d2@3 ~@2 d2@4 ~@3 g2@3 ~ c3@9, ~@50 f2@3 ~@11]/2", // F5
  F: "~@2 d2@5 ~ [f2,g2]@4 ~ d3@3 ~@3 [d2,a2]@3 ~@2 [d2,a2]@5 ~ f2@2", // Fsus2 D5
  G: "[~ g2@2 c3@12 d2@4 ~@2 g2@3 ~ d3@3 ~@2 [d2,a2]@4 ~@2 [d2,a2]@5 f2@2 g2@2 ~ c3@11 d2@3 ~@2 f2@2, ~@20 f2@3 ~@41]/2", // D5
  H: "g2@3 d3@3 ~@3 [d2,a2]@3 ~@2 [d2,a2]@4 ~ f2@2 g2@2 ~ c3@8", // D5
  I: "~@2 d2@3 ~@2 [f2,g2]@4 ~ d3@3 ~@4 d2@3 ~@2 [d2,a2]@4 ~ f2@3, ~@18 a2@3 ~@11", // Fsus2 D5
  J: "g2@2 ~ c3@11 d2@3 ~@3 g2@3 ~ d3@3 ~@3 d2@2, ~@19 f2@3 ~@7 f2@3, ~@30 g2 ~",
  K: "~@2 [d2,a2]@4 ~ f2@2 ~ g2@2 ~ c3@9 d2@4 ~@2 g2@4, ~@27 f2@3 ~@2", // D5
  L: "[~ d3@3 ~@3 [d2,a2]@3 ~@3 d2@5 f2@2 g2@2 ~@2 c3@10 d2@4 ~@3 g2@3 ~ d3@3 ~@3 [d2,a2]@3 ~@2 d2@5 ~ f2@2, ~@12 a2@4 ~@24 f2@3 ~@13 a2@3 ~@5]/2", // D5
  M: "~ g2 ~ c3@10 d2@4 ~@3 g2@2 ~ d3@4 ~@2 [d2,a2]@3, ~@19 f2@3 ~@10", // D5
  N: "~@2 [d2,a2]@4 ~@3 g2@3 c3@11 d2@4 ~ [f2,g2]@4, ~@4 f2 ~@11", // D5 Fsus2
  O: "~ d3@4 ~@2 [d2,a2]@3 ~@2 [d2,a2]@5 f2@3 g2@2 ~ c3@9", // D5
  P: "~@2 d2@5 [f2,g2]@4 ~ d3@3 ~@2 [d2,a2]@3 ~@3 a2@4 ~ f2@2 g2@2, ~@22 d2@5 ~@5", // Fsus2 D5
  Q: "~ c3@11 d2@4 ~ [f2,g2]@4 ~ d3@4 ~@2 [d2,a2]@3 ~", R: "~ [d2,a2]@5 f2@2 g2@3 ~ c3@9 d2@4 ~@2 g2@4 ~, ~@13 f2@2 ~",
  S: "[c3,d3]@3 ~@3 [d2,a2]@3 ~@2 [d2,a2]@3 ~@2 [g2,d3]@3 ~@2 [f2,c3]@8 ~@3", // Csus2 D5 G5 F5
  T: "[[d2,a2]@3 ~@2 [e2,b2]@4 ~ [f2,c3]@3 ~@3 d2@3 ~@2 [d2,a2]@2 ~@3 [g2,d3]@3 ~@2 [f2,c3]@8 ~@2 [d2,a2]@3 ~@2 [e2,b2]@4 ~@2 c3@3 ~@2 [d2,a2]@4 ~@2 [d2,a2]@3 ~@2 [g2,d3]@3 ~@2 [f2,c3]@7 ~@4 [d2,g2,a2]@2 ~@3 [e2,b2]@3 ~@2 [f2,c3]@2, ~@15 a2@3 ~@33 f2@4 ~@41]/3", // D5 E5 F5 D5 G5 F5 D5 E5 …
  U: "[~@3 [eb2,bb2]@4 ~ [eb2,bb2]@4 ~@2 [eb2,bb2]@3 ~@2 [eb2,bb2]@2 ~@3 [ab2,eb3]@4 ~@2 [ab2,eb3]@4 ~ [ab2,eb3]@4 ~ [ab2,eb3]@2 ~@4 [d2,a2]@3 ~@2 [d2,a2]@4 ~ g2@4 c3@8 ~@3 d2@3 ~ f2@2 a2@2 ~@3 d3@3 ~@3 d2@2 ~@3 d2@3, ~@28 f2 ~@19]/3", // Eb5 Ab5 D5
  V: "~@2 f2@2 g2@3 ~ b2@8 ~@2 d2@2 ~@2 f2@2 g2@3 ~@2 d3@3, ~@8 c3@3 ~@21",
  W: "~@3 d2@2 ~@2 d2@2 ~@3 f2@2 g2@2 ~@3 b2@2 ~@8 d2@3, ~@9 c3@4 ~@3",
  X: "[~ f2@2 g2@2 ~@3 d3@3 ~@3 d2@2 ~@3 d2@2 ~@3 f2@3 g2@2 ~ c3@9 ~ d2@3 ~@3 g2@3 ~@2 d3@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@5 ~ g2@4 ~ c3@9 ~@3 d2@3 f2@2 ~ a2 ~@3 d3@2, ~@45 f2@3 ~@19 f2@2 ~@20 g2@3 ~@4]/3", // D5
  Y: "[~@4 [g2,a2]@2 ~@3 [d2,a2]@4 ~ f2@2 g2@3 ~ c3@9 ~@2 d2@4 f2@3 ~ a2 ~@2 d3@2 ~@4 [d2,a2]@3 ~@2 [d2,a2]@3 ~@4 g2@4, ~@3 d2@3 ~@32 g2@2 ~@19 f2@2 ~@3]/2", // Gsus2 D5
  Z: "~ c3@8 ~@3 d2@4 f2@2 g2@2 ~@2 d3@3 ~@3 [d2,a2]@3 ~", // D5
  AA: "[~@2 [d2,a2]@4 ~@2 g2@2 ~@3 c3@9 ~@2 d2@4 ~ f2@2 g2@2 ~@3 d3@2 ~@3 [d2,a2]@3 ~@3 a2@3 ~@2 f2@2 g2@2 ~ c3@7, ~@7 f2@3 ~@36 d2@3 ~@15]/2", // D5
  AB: "[~@7 d2@2 f2@2 a2@2 ~@2 d3@2 ~@3 [d2,a2]@3 ~@2 [d2,a2]@2 ~@4 g2@4 c3@7 ~@3 d2@4 f2@2 g2@2 ~@2 d3@2 ~@4 [d2,a2]@2 ~, ~@30 f2@3 ~@31]/2", // D5
  AC: "~@2 [d2,a2]@4 ~ f2@3 g2@3 c3@9 ~@2 d2@4 f2@4", // D5
  AD: "[a2@2 ~@2 d3@2 ~@4 [g2,a2]@2 ~@3 a2@5 ~@3 g2@3 c3@10 ~ d2@4 ~ f2@3 g2@2 ~@2 c3@2 ~@4 g2@2 ~@2 [d2,a2]@4 ~, ~@9 d2@3 ~@3 d2@3 ~@3 f2@4 ~@29 [d2,a2]@3 ~@7]/2", // Gsus2 D5
  AE: "~ [g2,d3]@4 ~ [f2,c3]@9 ~@2 [d2,a2]@4 ~@2 b2@3 ~@2 [f2,c3]@3 ~, ~@22 e2@3 ~@7", // G5 F5 D5 F5
  AF: "~@2 [d2,g2]@3 ~@2 [d2,a2]@2 ~@4 [g2,d3]@3 ~@2 f2@8 ~@2 [d2,a2]@3 ~, ~@17 c3@8 ~@7", // G5 D5 G5 D5
  AG: "[~ [e2,b2]@3 ~@2 [f2,c3]@3 ~@3 [d2,a2]@3 ~@2 [d2,a2]@2 ~@3 [g2,d3]@3 ~@3 f2@8 ~@2 [d2,a2]@3 ~@2 [e2,b2]@3 ~@2 [f2,c3]@3 ~@2 [eb2,bb2]@3 ~@2 bb2@3 ~ [eb2,bb2]@2, ~@27 c3@8 ~@22 eb2@4 ~@3]/2", // E5 F5 D5 G5 D5 E5 F5 Eb5
  AH: "[~@4 [eb2,bb2]@3 ~@2 [ab2,eb3]@4 ~@2 [ab2,eb3]@3 ~@2 [ab2,eb3]@3 ~@3 ab2@3 ~@2 [d2,a2]@2 ~@3 [d2,a2]@2 ~@4 d3@3 ~@2 [f2,c3]@8 ~@2 [d2,a2]@3 ~@2 [e2,b2]@2, ~@25 eb3@2 ~@14 g2@3 ~@20]/2", // Eb5 Ab5 D5 F5 D5 E5
  AI: "[~@3 [f2,c3]@3 ~@3 [d2,a2]@2 ~@3 [d2,a2]@2 ~@3 [g2,d3]@3 ~@3 c3@10 ~ [d2,a2]@2 ~@4 [f2,c3]@3 ~@2 [e2,b2]@2 ~@4 b2 ~@4 [d2,a2]@2 ~@4 d3@3 ~@29, ~@24 f2@10 ~@29 g2@3 ~@30]/3", // F5 D5 G5 D5 F5 E5 D5
  AJ: "~@18 [d2,g2]@3 ~@2 d2@2 ~@4 [g2,d3]@3", // G5
  AK: "~@2 [f2,c3]@8 ~@2 [d2,a2]@2 ~@3 [e2,b2]@3 ~@2 [f2,c3]@3 ~@3 [d2,a2]@3 ~", // F5 D5 E5 F5 D5
  AL: "~ [d2,a2]@2 ~@3 [a2,e3]@3 ~@2 [g2,d3]@5 ~@4 [d2,a2]@3 ~@2 [e2,b2]@3 ~@2 [f2,c3]@2", // D5 A5 G5 D5 E5 F5
  AM: "~@3 [d2,a2]@3 ~@2 [d2,a2]@2 ~@4 [g2,d3]@3 ~@3 f2@7 ~@3 [d2,a2]@2, ~@19 c3@7 ~@6", // D5 G5 D5
  AN: "[~@2 [e2,b2]@3 ~@2 [f2,c3]@3 ~@2 [eb2,bb2]@3 ~@2 [eb2,bb2]@3 ~@2 [eb2,bb2]@3 ~@2 [eb2,bb2]@2 ~@2 [ab2,eb3]@3 ~@3 ab2@2 ~@3 ab2@2 ~@3 [ab2,eb3]@2 ~@3 d2@2 ~@3 [d2,a2]@2 ~@4 [g2,d3]@3 ~@2 [f2,c3]@7 ~@4 [d2,a2]@2 ~@3 [e2,b2]@3 ~@2 [f2,c3]@2 ~@3 [d2,a2]@2, ~@36 eb3@3 ~@2 eb3@2 ~@53]/3", // E5 F5 Eb5 Ab5 D5 G5 F5 D5 …
  AO: "[~@4 [d2,a2]@3 ~@2 [g2,d3]@3 ~@3 [f2,c3]@8 ~@3 [d2,a2]@3 ~@2 [e2,b2]@3 ~@2 c3@3 ~@2 [d2,a2]@2 ~@3 [d2,a2]@2 ~@4 [g2,d3]@2 ~@3 [f2,c3]@7, ~@35 f2@3 ~@26]/2", // D5 G5 F5 D5 E5 D5 G5 F5
  AP: "~@3 [d2,a2]@2 ~@3 [e2,b2]@2 ~@3 db3@2 ~@3 [eb2,bb2]@3 ~@3 eb2@3 ~@2 bb2@3, ~@23 bb2@3 ~@2 eb2@3 ~", // D5 E5 Eb5
  AQ: "~@2 [eb2,bb2]@3 ~@3 eb3@3 ~@2 eb3@4 ~ [ab2,eb3]@3 ~@2 [ab2,eb3]@3 ~@2 [eb2,bb2]@4, ~@7 ab2@3 ~@2 ab2@3 ~@17", // Eb5 Ab5 Eb5
})).s("gm_distortion_guitar").gain(0.51)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@96 A B C D@2 E@5 F G H@3 I J@2 K L@2 M@2 N O P@2 Q R S@4 T U V W X@2 Y@3
>`.pickRestart({
  A: "~@15 [d2,a2]", B: "~@2 d2@4 ~ g2@2 ~ f2@8 d2@2 f2@2 g2@2 ~@2 c3@6, ~ a2 ~@14",
  C: "~ a2@2 ~@4 [d2,a2]@2 ~@3 d2@4 ~ g2@2 ~ f2@7 ~ d2@2 ~ f2, ~@6 a2 ~@9", // D5
  D: "[~ g2@2 ~ c3@6 ~ g2 ~@4 [d2,a2]@3 ~@2 [d2,a2]@5 ~ g2@2 f2@6 ~ d2@2 ~ f2@2 g2@2 ~ c3@6 ~ g2@2 ~@3 [d2,a2]@2 ~@3 d2@3, ~@30 a2 ~]/2", // D5
  E: "[~ g2@2 ~ f2@6 ~ d2@2 f2 g2@2 ~ b2@7 ~ a2@3 ~@3 [d2,a2]@3 ~@3 [d2,a2]@4 ~@2 g2@3 f2@7 d2@2 f2@2 ~ g2@4 c3@5 ~ g2@2 ~@3 [d2,a2]@2 ~@3 a2@2 ~@2 g2@2 ~ f2@7 d2@2 ~ f2@2 g2@2 ~ c3@7 g2@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@5 ~ g2@2 f2@6 ~ d2@2 f2@2 ~ g2@2 c3@7 g2@2 ~@4 [d2,f2,g2]@2 ~@2 [d2,a2]@4, ~@77 d2@5 ~@78]/5", // D5 G7 D5
  F: "~ g2@2 ~ f2@6 ~ d2@2 f2 ~ g2@2 c3@7 a2@2 ~@3 d2@2 ~, ~@14 b2 ~",
  G: "~ [d2,b2]@3 ~@2 g2@2 f2@6 ~ d2@2 f2@2 g2@2 ~ c3@6 g2@3 ~", // G
  H: "[~@2 [d2,a2]@2 ~@3 [d2,a2]@4 ~ g2@3 f2@8 d2@2 f2@2 g2@2 ~ c3@6 ~ g2@2 ~@3 [d2,a2]@2 ~@3 [d2,a2]@5 g2@2 ~ f2@8 d2@2 f2@2 ~ g2@2 c3@6 ~@2 g2@3 ~@2 d2@2 f2 ~@3 [d2,f2]@3 ~@2 b2@2]/3", // D5 Dm
  I: "~ g2@4 ~@3 d2@2 f2@2 ~ g2@2 ~ b2@7 a2@2 ~@3 [d2,a2]@2 ~@2", // D5
  J: "[~@3 d2@3 ~ g2@2 f2@7 ~ d2@2 f2@2 g2@2 ~ c3@7 a2@2 ~@4 g2@2 ~@3 d2@2 ~@2 g2@2 f2@7 ~ d2@2 f2@2 g2@3 ~, ~@2 a2@2 ~@32 d2@2 ~@3 b2@2 ~@21]/2",
  K: "b2@6 g2@3 ~@3 f2@2 ~@3 d2@5 c3 ~@3 g2@5 ~, c3 ~@10 d2@2 ~@4 f2@2 ~@13",
  L: "[~@2 f2@2 ~ g2@2 ~ c3@2 ~@4 g2@3 ~@3 [d2,a2]@3 ~@3 d2@5 g2@2 f2@7 ~ d2@2 f2@2 ~ g2@2 c3@5 ~ a2@2 ~@4 [d2,a2]@3 ~, ~ d2@2 ~@22 a2@4 ~@35]/2", // D5
  M: "[~ [d2,a2]@5 ~@3 g2@2 f2@7 d2@2 f2 ~ g2@2 ~ b2@6 g2@3 ~@3 a2@2 ~@2 [d2,a2]@4 ~ g2@2 ~ f2@5 d2@2 g2@4 c3@4, ~@36 d2@2 ~@18 f2 ~@7]/2", // D5
  N: "~@2 a2 ~@3 d2@2 ~ d2@2 ~@2 a2@2 ~ g2@5 ~@2 f2@2 g2@2 a2 ~@4, ~@5 g2@2 ~ g2@2 ~@12 d2@2 ~@8",
  O: "~ c3 ~@3 [d2,g2]@2 ~@3 d2@2 ~ a2@2 ~ g2@3 ~@3 f2@2 g2@2 ~ c3@4 ~, ~@9 g2@2 ~@10 d2@2 ~@9", // G5
  P: "[~ g2@3 ~@2 [d2,a2]@2 ~@3 [d2,a2]@4 g2@2 f2@6 ~@2 f2@2 g2@2 ~ c3@7 a2@2 ~@2 d2@2 ~@2 d2@3 ~ a2@2 g2@6 d2@2 f2@2 g2@2 ~, ~@12 d2 ~@7 g2 ~ g2 ~@9]/2", // D5
  Q: "b2@6 g2@2 ~@3 a2@2 ~ [d2,a2]@2 ~@2 g2@2 f2@6 d2@2 f2@2 g2@2, ~@5 d2 ~@10", // D5
  R: "~ b2@5 ~ a2@2 ~@2 a2@2 ~ [d2,a2]@3 ~ g2@2 f2@5 d2@2 f2@2 g2@2 ~, ~@5 d2 ~@10", // D5
  S: "[b2@6 g2@3 ~@2 a2@3 ~ [d2,a2]@3 ~@3 f2@8 d2@2 ~ f2 ~ c3@6 ~ g2@2 ~@2 [d2,a2]@2 ~@2 [d2,a2]@3 ~ g2@2 f2@6 ~@2 f2@2 g2@2 ~ c3@6 g2@2 ~@2 [d2,a2]@2 ~@2 [d2,a2]@3 ~ g2@2 f2@6 ~ d2@2 f2 g2@2 ~ c3@5 ~ g2@3 ~@2 d2 ~@2 [d2,a2]@4 g2@2 f2@6 ~, ~@10 d2@2 ~@8 g2@2 ~@9 g2@3 ~@28 d2@2 ~@47 a2@2 ~@15]/4", // D5
  T: "~ f2@2 ~ g2@2 c3@5 ~@2 g2@2 ~@2 [d2,a2]@2 ~@2 a2@3 ~@2 f2@6, d2@2 ~@18 d2@4 ~ g2@2 ~@5", // D5
  U: "~ d2@2 [f2,g2]@3 c3@6 ~ g2@3 ~ a2@2 b2 ~ [d2,a2]@4 g2@2 f2@5", // Fsus2 D5
  V: "~ d2@2 f2@2 g2@2 a2@5 ~ [d2,g2]@2 ~@3 [d2,a2]@2 ~ [d2,a2]@5 g2@2 f2@4", // G5 D5
  W: "~ d2@2 ~ g2@3 ~ c3@5 ~@2 g2@3 ~ a2@2 ~ d2@4 a2@2 ~@2 g2@2, ~@3 f2@2 ~@13 d2@2 ~@2 a2@2 ~@8",
  X: "[~@3 f2 [d2,g2]@3 ~ [a2,b2]@2 d3@3 ~ a2@2 ~@2 f2 d2@2 a2@2 ~ a2@2 g2@3 ~@2 [d2,f2]@2 g2@2 c3@3 ~ g2@2 ~ d2 a2@2 [d2,a2]@3 ~ f2@4 ~ [d2,f2]@2 g2@2 c3@2 ~@2 g2@2, ~@23 d2@3 ~@22 g2@2 ~@14]/2", // G5 Asus2 Dm D5 Dm
  Y: "[~ [d2,a2]@2 ~ a2 ~ g2@2 f2@2 d2@2 f2@2 d2@2 c3@4 f2@2 ~@5 a2@37 ~@32, ~@3 d2@2 ~@7 g2@4 ~@7 [d2,g2]@42 ~@31]/3", // D5 G5
})).s("gm_overdriven_guitar").gain(0.51)

// other · guitar harmonics
const guitar_harmonics = note("<~@66 A@6 B@2 C@2 ~@62>".pickRestart({
  A: "[~@12 a3@36 g3@41 a3@2 b3@32 c4@40 ~@29]/6", B: "[~ g3@24 ~@7]/2", C: "[~@19 a3@35 ~@10]/2",
})).s("gm_guitar_harmonics").gain(0.51)

// drums · kick
const kick = s("bd").struct(`<
  ~@18 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 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 W BN BO BP BQ BR AO BS BP BT BU BV BW BX BY BZ CA CB CC CD CE
  CF CG CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV CW CX CY CZ DA DB DC DD DE CX DF DG DH DI DJ ~@2
>`.pickRestart({
  A: "~@6 x ~@4 x ~@10 x ~@8 x", B: "~@2 x ~@16 x ~@4 x ~@7", C: "~@3 x ~@10 x ~@14 x ~@2", D: "~@3 x ~@9 x ~@8 x ~@9",
  E: "~@3 x ~@9 x ~@2", F: "~@9 x ~@2 x ~@3", G: "~@2 x ~@8 x ~@16 x ~@3", H: "~ x ~@10 x ~@8 x ~@2 x ~@7",
  I: "~@8 x ~@4 x ~@10 x ~@7", J: "x ~@2 x ~@15 x ~@4 x ~@7", K: "~@2 x ~@7 x ~@2 x ~@15 x ~@2",
  L: "~@2 x ~@9 x ~@8 x ~@10", M: "~@6 x ~@6 x ~@9 x ~@6 x ~", N: "~@2 x ~@14 x ~@4 x ~@9",
  O: "~ x ~@7 x ~ x ~@16 x ~@3", P: "~ x ~@9 x ~@20", Q: "~@4 x ~@4 x ~@19 x ~@2", R: "~@7 x ~@2 x ~@5",
  S: "~@9 x ~@16 x ~@3 x ~", T: "~@19 x ~@12", U: "~@3 x ~@4 x ~@10 x ~@4 x ~@7", V: "~@10 x ~@6 x ~@5 x ~@8",
  W: "~ x ~@6 x ~@2 x ~@15 x ~@4", X: "x ~@10 x ~@7 x ~@2 x ~@9", Y: "~@5 x ~@5 x ~@9 x ~@6 x ~@2 x",
  Z: "~@14 x ~@2 x ~@2 x ~@8 x ~@2", AA: "~@3 x ~@10 x ~", AB: "~@3 x ~@10 x ~@6 x ~@2 x ~@4 x ~@2",
  AC: "~@11 x ~@4 x ~@9 x ~@5", AD: "~@2 x ~@2 x ~@15 x ~@5 x ~@4", AE: "~@5 x ~@7 x ~@2 x ~@15",
  AF: "x ~@4 x ~@9 x ~@7 x ~@2 x ~@5", AG: "~@9 x ~@4 x ~@9 x ~@7", AH: "x ~@2 x ~@14 x ~@3 x ~@9",
  AI: "x ~@6 x ~@2 x ~@14 x ~@3 x ~@2", AJ: "~@7 x ~@6 x ~@2 x ~@14", AK: "~ x ~@4 x ~@17 x ~@7", AL: "~@3 x!2 ~@3",
  AM: "~@4 x ~@14 x ~@5 x ~@6", AN: "~@12 x ~@14 x ~@4", AO: "~ x ~@18 x ~@11", AP: "~@3 x ~@5 x ~@4 x ~@4 x ~@4 x ~@7",
  AQ: "~@14 x ~@6 x ~@10", AR: "~@8 x ~@15 x ~@4 x ~@2", AS: "~@17 x ~@14", AT: "x ~@2 x ~@8 x ~@3",
  AU: "~@2 x ~@4 x ~@3 x ~@4 x ~@4 x ~@6 x ~@3", AV: "~@20 x ~@10 x", AW: "~@6 x ~ x ~@12 x ~@3 x ~@5 x",
  AX: "~@10 x ~@8 x ~ x ~@10", AY: "~@6 x ~@4 x ~@9 x ~@6 x ~ x ~", AZ: "~@12 x ~@2 x ~@2 x ~@8 x ~@4",
  BA: "~@3 x ~@20 x ~@5 x ~", BB: "~@8 x ~@7 x ~@2 x ~@12", BC: "~@2 x ~@5 x ~@9 x ~@6 x ~@2 x ~@3",
  BD: "~@12 x ~@4 x ~@10 x ~@3", BE: "~@2 x ~@3 x ~@14 x ~@2 x ~@2 x ~@4", BF: "~ x ~ x!2 ~@3",
  BG: "~ x ~@4 x ~@10 x ~@7 x ~@2 x ~@3", BH: "~@6 x ~@5 x ~@4 x ~@9 x ~@3 x", BI: "~@4 x ~@2 x ~@13 x ~@5 x ~@4",
  BJ: "~@9 x ~@4 x ~@2 x ~@13 x", BK: "~@5 x ~@11 x ~@4 x ~ x ~@7", BL: "~@6 x ~@5 x ~@14 x ~@3 x",
  BM: "~@17 x ~@5 x ~@8", BN: "x ~@11 x ~@6 x ~@2 x ~@9", BO: "~@5 x ~@8 x ~@17", BP: "~@13 x ~@4 x ~@13",
  BQ: "~@7 x ~@14 x ~@4 x ~@4", BR: "~@7 x ~@6 x ~", BS: "~@2 x ~@3 x ~@4 x ~@4 x ~@5 x ~@9",
  BT: "~@5 x ~@15 x ~@4 x ~@5", BU: "~@13 x ~@15 x ~@2", BV: "~ x ~@20 x ~@9", BW: "~@5 x ~@5 x ~@3 x ~@4 x ~@4 x ~@6",
  BX: "~@14 x ~@4 x ~@12", BY: "~@20 x ~@4 x ~@6", BZ: "~@6 x ~@19 x ~@4 x", CA: "~@11 x ~@19 x",
  CB: "~@3 x ~@7 x ~@5 x ~@2 x ~@11", CC: "~@2 x ~@3 x ~@2 x ~@6", CD: "~ x ~@9 x ~@4 x ~@13 x ~",
  CE: "~ x ~@2 x ~@15 x ~@3 x ~@7", CF: "~@6 x ~ x ~ x ~@6 x ~@6 x ~@4 x ~@2", CG: "~@10 x ~ x ~@2 x ~@14 x ~",
// … 76 more lines

More by Silverchair