Strudelify

Poor Twisted Me

Metallica

KeyG♯ minorTempo120 bpm
0:00/0:00
// Poor Twisted Me — Metallica
// 120 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 122 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. 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.

// chords · overdriven guitar · "James Hetfield"
const overdriven_guitar = note(`<
  A B A C A D A E F G F H I J K@2 I L F H I M K@2 N ~ N ~ O P Q R S@2 T ~ T U V W X Y Z AA F H I M AB@2 N ~ AC ~ O P AD
  AE AF@2 T ~ T AG AH AI X Y I AJ AK AL AM@3 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 BS BT BU BR BV AT BW BH BX BY Z BZ CA@2 T ~
>`.pickRestart({
  A: "g#2@4 g#3 ~@19", B: "~@18 [f#3,b3,d#4]@4 a#3 ~", C: "~@2 [c#4,f4]@5 ~", D: "~@10 [f#3,b3,d#4] ~@7 a#3@4 ~@2",
  E: "~@3 [f#3,b3,d#4]@8 ~ g#3@2 f#3@2 d#3@2 c#3@4 ~@2", F: "g#2@4 g#3 ~ g#2@3 ~ g#3 ~@7 g#2 ~@3 g#3 ~",
  G: "~@6 g#2 ~@3 [f#3,b3,d#4]@2 ~@4 [b3,d#4] ~ [f#3,a#3]@3 ~@3", H: "~@6 g#2 ~@3 [f#3,c#4]@8 b3@2 g#3 ~ f#3 ~",
  I: "g#2@4 g#3@2 g#2@4 g#3 ~@7 g#2 ~@3 g#3 ~", J: "~@6 g#2 ~@2 [g#3,c#4] ~@8 b3@4 g#3 ~, ~@9 f#3 ~@2",
  K: "[g#2@3 ~ g#3 ~ g#2@3 ~ g#3 ~@5 g#2 ~ [b3,c#4]@2 ~ [g#3,b3,c#4]@6 ~ [b3,c#4] ~ [f#3,b3] ~@3 [f#3,b3]@8 g#3@4 ~@2]/2", // Bsus2 C#7 Bsus2 B5
  L: "~@6 g#2 ~@2 [g#3,c#4]@9 b3@4 g#3 ~", M: "~@6 g#2 ~@3 [g#3,c#4] ~@7 b3@4 g#3 ~, ~@9 f#3 ~@2",
  N: "g#2@2 g#3 g#2@2 g#3 ~@6", O: "g#2@3 ~ g#3@2 g#2@3 ~ g#3@2 ~@12", P: "~@18 [g#2,g#3]@5 ~",
  Q: "f#2@2 f#3 f#2@2 f#3 ~@6", R: "~@4 [g#3,b3] ~ [g#3,b3] ~@3 [g#3,c#4]@6 b3@6 g#3 ~",
  S: "[f#2@4 f#3@2 f#2@3 ~ f#3@2 ~@4 b3 ~ [f#3,b3] ~@3 [f#3,b3]@6 c#4 ~ [g#3,c#4]@2 ~@2 [g#3,c#4]@6 b3@5 ~@3]/2", // B5 C#5
  T: "g#2@4 g#3@2 g#2@4 g#3 ~@13", U: "~@18 c#5 ~@5",
  V: "[g#3,c#4]@4 ~@2 [g#3,c#4]@5 ~ [g#3,c#4]@5 ~ [g#3,c#4]@6, c#3@11 ~ c#3@12", // C#5
  W: "[b2,f#3,b3]@4 ~@2 [b2,f#3,b3]@5 ~ [b2,f#3,b3]@5 ~ [b2,f#3,b3]@5 ~", // B5
  X: "[f#2,c#3,f#3]@4 ~@2 [f#2,c#3,f#3]@5 ~ [f#2,c#3,f#3]@4 ~@2 [f#2,c#3,f#3]@4 ~@2", // F#5
  Y: "[d#3,a#3,d#4] ~ [d#3,a#3,d#4] ~ [d#3,a#3,d#4] ~ [d#3,a#3,d#4] ~ [d#3,a#3,d#4] ~ [d#3,a#3,d#4] ~ [d#3,a#3,d#4] ~ [d#3,a#3,d#4] ~ [d#3,a#3,d#4] ~ [d#3,a#3,d#4] ~ [d#3,a#3,d#4] ~ [d#3,a#3,d#4] ~", // D#5
  Z: "g#2@4 g#3@2 g#2@4 g#3 ~@7 g#2@4 g#3@2", AA: "~@6 g#2@4 [g#3,c#4]@8 b3@4 g#3 ~",
  AB: "[g#2@3 ~ g#3 ~ g#2@3 ~ g#3 ~@5 g#2 ~ [b3,c#4]@2 ~ [g#3,b3,c#4]@6 ~ [b3,c#4] ~ [f#3,a#3] ~@3 [f#3,b3]@8 g#3@4 ~@2]/2", // Bsus2 C#7 Bsus2 F# B5
  AC: "g#2@3 ~ g#3@2 g#2@4 g#3@2 ~@12", AD: "f#2@4 f#3@2 f#2@4 f#3@3 ~@2 f#3 ~@8",
  AE: "~@4 [g#3,b3] ~ [g#3,b3] ~@3 [g#3,c#4]@5 b3@6 g#3 ~@2", // G#m C#5
  AF: "[f#2@4 f#3@2 f#2@3 ~ f#3@2 ~@4 b3 ~ [f#3,b3] ~@3 [f#3,b3]@6 c#4 ~ [g#3,c#4]@2 ~@2 [g#3,c#4]@5 b3@5 ~@4]/2", // B5 C#5
  AG: "~@18 g#3 ~@5", AH: "[g#3,c#4]@4 ~@2 [g#3,c#4]@5 ~ [g#3,c#4]@5 ~ [g#3,c#4]@5 ~, c#3@11 ~ c#3@11 ~",
  AI: "[b2,f#3,b3]@4 ~@2 [b2,f#3,b3]@5 ~ [b2,f#3,b3]@5 ~ [b2,f#3,b3]@4 ~@2", // B5
  AJ: "~@6 g#2 ~@3 g#3 ~@5 g#3@2 f#3@2 ~@2 g#2 ~", AK: "g#2 ~@3 g#3 ~ g#2@4 g#3@2 ~@4 g#3 ~ g#3@2 f#3@2 d#3@2",
  AL: "g#3@2 f#3@2 d#3@2 g#3@2 f#3@2 d#3@2 g#3@2 f#3@2 d#3 ~ g#3 ~@5",
  AM: "[f#2,c#3] ~@3 [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~@3 [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~", // F#5
  AN: "[f#2,c#3]@2 ~@2 [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3]@2 ~@2 [f2,c3]@2 ~@2 [e2,b2]@2 ~@2", // F#5 F5 E5
  AO: "[d#2,a#2]@3 ~ [d#2,a#2] ~ [d#2,a#2] ~ [d#2,a#2] ~ [d#2,a#2] ~ [d#2,a#2]@2 ~@2 [d#2,a#2] ~ [d#2,a#2] ~ [d#2,a#2] ~ [d#2,a#2] ~", // D#5
  AP: "[d#2,a#2]@2 ~@2 [d#2,a#2] ~ [d#2,a#2] ~ [d#2,a#2] ~ [d#2,a#2] ~ [d#2,a#2]@4 ~@2 [d#2,a#2]@6", // D#5
  AQ: "[g#2,c#3]@5 ~ [g#2,c#3]@5 ~ [d#2,g#2,c#3]@5 ~ [d#2,g#2,c#3]@3 ~@3", // C#5 C#sus2
  AR: "[f#2,b2]@5 ~ b2 b2@4 ~ b2 b2@5 [f#2,b2]@5 ~, ~@3 f#2@2 ~ f#2@2 ~@4", // B5
  AS: "[f#2,c#3,f#3]@5 ~ [f#2,f#3]@5 ~ f#2 f#2@3 ~@2 [f#2,c#3,f#3]@4 ~@2, ~@2 c#3 ~ [c#3,f#3] ~@3", // F#5 F# F#5
  AT: "[d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~", // D#5
  AU: "[b3,d#4]@15 ~@3 g#3@4 f#3@2", AV: "g#3@3 ~ b3@2 ~@18", AW: "[b3,d#4]@9 g#3@2 f#3", AX: "g#3@3 ~ f#3@2 ~@18",
  AY: "c#4@2 d#4 ~ d#4 ~ d#4@6 c#4@2 d#4 ~ d#4 ~ d#4@5 ~", AZ: "f#4@2 g#4 ~ g#4 ~ g#4@6 f#4@2 g#4 ~ g#4 ~ g#4@5 ~",
  BA: "c#4@2 d#4 ~ d#4 ~ d#4 ~ d#4 ~ d#4 ~ c#4@2 d#4 ~ d#4 ~ d#4 ~ d#4 ~ d#4 ~",
  BB: "f#4@2 g#4 ~ g#4 ~ g#4 ~ g#4 ~ g#4 ~ c#4@2 d#4 ~ d#4 ~ d#4@5 ~",
  BC: "b2@4 b3@2 b2@4 b3@3 ~@3 [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,e4,f#4] ~ [b3,d4,e4,f#4] ~", // Bm
  BD: "[b3,d4,e4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,e4,f#4] ~ [b3,d4,e4,f#4] ~ [b3,d4,e4,f#4] ~ [b3,d4] ~ d4@5 ~, ~@6 b3 ~", // Bm
  BE: "b2@3 b3@2 ~ b2@4 b3@2 ~@12", BF: "~@6 d#3 ~", BG: "g#2@4 g#3@2 g#2@4 g#3@2 ~@6 g#2@4 g#3 ~",
  BH: "~@6 g#2@3 ~ [g#3,b3]@2 ~@4 b3@2 g#3@5 ~", BI: "g#2@4 g#3@2 g#2@3 ~ g#3 ~@7 g#2@3 ~ g#3 ~",
  BJ: "~@2 [g#3,b3]@7 ~@3", // G#m
  BK: "[f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~@3 [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~", // F#5
  BL: "[f#2,c#3,f#3] ~@3 [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~@3 [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~", // F#5
  BM: "[f#2,c#3,f#3] ~@3 [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~", // F#5
  BN: "[f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~ [f#2,c#3,f#3] ~@3 [f2,c3,f3]@2 ~@2 [e2,b2,e3]@2 ~@2", // F#5 F5 E5
  BO: "[a#2,d#3]@3 ~ [a#2,d#3] ~ [a#2,d#3] ~ [a#2,d#3] ~ [a#2,d#3] ~ [d#2,a#2,d#3]@3 ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~", // D#5
  BP: "[d#2,a#2,d#3]@3 ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3]@3 ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~ [d#2,a#2,d#3] ~", // D#5
  BQ: "[g#2,c#3]@4 ~@2 [g#2,c#3]@5 ~ [g#2,c#3]@5 ~ [g#2,c#3]@4 ~@2", // C#5
  BR: "[f#2,b2]@5 ~ [f#2,b2]@5 ~ [f#2,b2]@5 ~ [f#2,b2]@5 ~", // B5
  BS: "[f#2,c#3]@5 ~ [f#2,c#3]@5 ~ [f#2,c#3]@5 ~ [f#2,c#3]@4 ~@2", // F#5
  BT: "[g#2,d#3,g#3] ~ [d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~, ~@3 g#2@2 ~@19", // G#5
  BU: "[g#2,c#3]@5 ~ [g#2,c#3]@5 ~ [g#2,c#3]@5 ~ [g#2,c#3]@4 c3 ~", // C#5
  BV: "[f#2,c#3]@5 ~ [f#2,c#3]@5 ~ [f#2,c#3]@3 ~ c#3 ~ [f#2,c#3]@4 c#3 ~", BW: "g#2@4 g#3@2 g#2@4 g#3 ~@7 g#2@4 g#3 ~",
  BX: "g#2@2 g#3 g#2@2 g#3 ~@3 g#2@2 [g#3,c#4]", BY: "~@4 [g#3,c#4]@2 b3@4 g#3@2 ~@4 b3@2 g#3@4 f#3 ~",
  BZ: "~@6 g#2@3 ~ [g#3,b3]@2 ~@6 g#3@5 ~", // G#m
  CA: "[g#2@4 g#3@2 g#2@4 g#3@2 ~@6 [g#3,c#4]@10 ~@2 [g#3,c#4]@9 ~ b3@2 g#3@4 f#3@2]/2", // C#5
})).s("gm_overdriven_guitar").gain(0.64)

// bass · electric bass pick · "Jason Newstead"
const bass = note(`<
  ~@16 A B C D E F G@2 H ~ I ~ J K L@4 M@2 N O P Q R S N T U V W@2 X@2 Y ~ I ~ J K Z@2 AA@2 AB@2 N O P Q AC AD AE AF AG
  AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY@2 AZ@2 BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS
  BT BU BV BW BX BY BZ CA@2 I ~
>`.pickRestart({
  A: "g#2@4 ~@2 g#2@4 f#2 ~ g#2@4 ~@2 g#2@3 f#2@2 ~, g#1@11 ~ g#1@10 ~@2", B: "~@3 b2@2 ~@19, [g#1,g#2]@5 ~@19",
  C: "g#2@4 ~@2 g#2@3 f#2 ~@2 g#2@5 ~ g#2@3 f#2 ~@2, g#1@5 ~ g#1@5 ~", D: "g#2 f#2 ~@6, g#1@7 ~@17",
  E: "g#2@3 ~@3 g#2@4 f#2 ~ [g#1,g#2]@6 [g#1,g#2]@3 f#2@2 ~, g#1@3 ~@5", F: "~@4 b2@3 ~@14 d3 ~@2, [g#1,g#2] ~@3",
  G: "[g#2@3 ~@3 g#2@3 ~ f#2@2 [g#1,g#2]@2 ~ g#2 g#1 ~ b2@2 ~@2 b2@5 ~ b2@2 g#2@2 ~ g#2@6 f#2@6 ~@3, g#1@5 ~@19]/2", // G#
  H: "g#2@5 ~ g#2@4 ~@14", I: "g#1@2 g#2 g#1@2 g#2 ~@6", J: "g#1@3 ~ g#2@2 g#1@4 g#2 ~@13", K: "~@18 g#1@4 g#2 ~",
  L: "[f#1@3 f#1 ~ f#1 ~@6 f#1@4 f#1 ~ f#1 ~@3 f#1@4 ~@2 f#1 ~ f#1 ~@3 f#1@5 ~ f#2@2 f#1@3 ~ f#1 f#1@3 ~@2 f#2 ~ f#1@2 ~ f#2@4 ~@5 f#1@3 ~ [f#1,f#2]@6 ~@2 [f#1,g#2] ~@4 [f#1,f#2]@5 g#2@5 f#2 ~@2, ~@66 f#2 ~@29]/4", // F# F#sus2 F#
  M: "[g#1@4 g#2@2 g#1@4 g#2@2 ~@6 g#2@3 ~ f#2@2 g#2@3 b2@2 ~@19, ~@9 g#1@5 ~@10]/2",
  N: "g#2@4 ~@2 g#2@4 f#2 ~ g#2@4 ~@2 g#2@3 ~ f#2@2, g#1@10 ~@2 g#1@9 ~@3", O: "[g#1,g#2]@4 f#2 ~@19",
  P: "c#2@4 ~@2 c#2@5 ~ c#2@5 ~ c#2@4 c2 ~", Q: "b1@5 ~ b1@5 ~ b1@5 ~ b1 ~@3 b1 ~",
  R: "f#1@3 ~@3 f#1@4 ~@2 f#1@4 ~@2 f#1@2 ~@2 f#1@2",
  S: "d#2 ~@3 [d#1,d#2] ~ d#2 ~@3 d#1@2 d#2 ~ d#2 ~ d#2@2 d#1@2 ~@2 [d#1,d#2] ~, ~@10 d#2 ~@5 d#1 ~ d#2 ~@5", // D#
  T: "~@2 b2 ~@9, [g#1,g#2] ~@3", U: "g#2@4 ~@2 g#2@4 f#2 ~ g#2@5 ~ g#2@3 ~ f#2 ~, g#1@5 ~ g#1@5 ~",
  V: "g#2 f#2 ~@6, g#1 ~@3",
  W: "[g#2@3 ~@3 g#2@3 f#2 ~@2 [g#1,g#2]@6 [g#1,g#2]@3 f#2@2 ~ g#2@4 b2@3 ~@15 d3 ~, g#1@11 ~@12 g#1@6 ~@19]/2", // G#
  X: "[g#2@3 ~@3 g#2@3 ~ f#2@2 [g#1,g#2]@3 g#2 g#1 ~ b2@2 ~@2 b2@5 ~ b2@2 g#2@2 ~@2 g#2@6 f#2@6 ~@2, g#1@5 ~@19]/2", // G#
  Y: "g#2@5 ~ g#2@4 ~@14, g#1@11 ~@13",
  Z: "[f#1@3 ~ f#1 ~ f#1 ~@3 f#1@4 ~@2 f#1 ~ f#1 ~@3 f#1@4 ~@2 f#1 ~ f#1 ~@3 f#1@5 ~ f#2@2 f#1@3 ~ f#1 ~]/2",
  AA: "[f#1@3 ~ f#2 ~ f#1@2 ~@2 f#2@4 ~@4 f#1@3 ~ [f#1,f#2]@6 ~@2 [g#1,g#2] ~@3 [f#1,f#2]@5 ~ g#2@5 ~ f#2 ~, ~@18 f#2 ~@29]/2", // F# G# F#
  AB: "[g#1@4 g#2@2 g#1@4 g#2@2 ~@6 g#2@3 ~ f#2@2 g#2@4 b2@2 ~@18, ~@9 g#1@5 ~@10]/2",
  AC: "f#1@3 ~@3 f#1@4 ~@2 f#1@4 ~@2 f#1@2 ~@2 f#1@2, ~@18 d#1 ~@5",
  AD: "d#2 ~ d#2 ~ [d#1,d#2] ~ d#2 ~ d#2 ~ [d#1,d#2] d#1 d#2@2 d#2 ~ [d#1,d#2] ~ d#1@2 d#2 ~ [d#1,d#2] ~, ~@18 d#2 ~@5", // D#
  AE: "g#1@4 g#2@2 g#1@4 g#2@2 ~@4 g#2@2 g#1@4 g#2 ~", AF: "~@4 g#2@2 g#1@4 g#2 ~@5 g#2@2 g#1@3 ~@3",
  AG: "g#1@3 ~ g#2@2 g#1@4 g#2 ~@5 g#1 ~ g#2 ~ g#1 ~ g#2 ~",
  AH: "g#2 ~ g#1 ~ g#2 ~ g#2@2 g#1 ~ g#2@2 g#1 ~ g#2 g#1 ~ g#2 ~@6",
  AI: "f#1@2 ~@2 f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~@3 f#1 ~ f#1 ~ f#1 ~ f#1 ~",
  AJ: "f#1@3 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1@2 ~@2 f#1 ~ f#1 ~ f#1 ~ f#1 ~",
  AK: "f#1@6 f#1 ~@3 f#2@5 ~ f#1 ~ f#2@4 ~@2, ~@18 f#1 ~@5",
  AL: "[f#1,f#2]@4 ~@2 [f#1,f#2]@2 ~@4 [f#1,f#2]@3 ~ [f1,f2]@2 ~@2 [e1,e2]@2 ~@2", // F# F E
  AM: "[d#1,d#2]@3 ~ [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2]@4 d#2 ~ d#2@2 d#1 ~ d#2@2", // D#
  AN: "d#1@3 ~ d#2 ~ d#1 ~ d#2 ~ d#1@2 d#2@2 ~@2 d#1 ~ d#2@2 d#1 ~ d#2 d#1",
  AO: "c#2@4 ~@2 c#2@4 ~@2 c#2@5 ~ c#2@4 c2 ~", AP: "b1@3 b1@3 b2@2 b1@2 ~ a2",
  AQ: "f#1@2 ~@4 f#1@6 f#2 ~@3 f#2@2 f#1@2 ~@4",
  AR: "d#2 ~ d#2 ~ d#2 ~ d#2 ~ d#2 ~ d#2 ~ d#2 ~ d#2 ~ d#2 ~ d#2 ~ d#2 ~ d#2 ~",
  AS: "[g#1,g#2]@4 ~@2 g#2@3 ~ [f#2,g#2] ~ g#2@4 ~@2 g#2@4 f#2 ~, ~@2 g#2 ~@9, ~@5 g#1@6 ~ g#1@10 ~@2", // G# F#sus2
  AT: "[g#1,g#2]@2 b2 ~@6 g#2 ~@2", AU: "[g#1,g#2]@5 ~ [g#1,g#2]@4 f#2 ~ [g#1,g#2]@5 ~ [g#1,g#2]@4 f#2 ~",
  AV: "[g#1,g#2]@2 [f#1,f#2] ~@9", // G# F#
  AW: "[g#1,g#2]@5 ~ [g#1,g#2]@4 f#2 ~ [g#1,g#2] ~ [g#1,g#2] ~ g#2 ~ [g#1,g#2]@4 f#2 ~", AX: "[g#1,g#2]@2 b2 ~@9",
  AY: "[[g#1,g#2]@5 ~ [g#1,g#2]@4 f#2 ~ [g#1,g#2]@3 ~ g#2 ~ g#1@2 ~ g#1 g#1@5 b2 ~@2 b2 ~@2 b2@9 g#2@3 ~@3, ~@18 b2 ~@2 b2@6 ~@21]/2", // G#
  AZ: "[b1@4 b2@2 b1@3 ~ b2@3 ~@3 b1@2 b2 ~@2 b2@5 ~@2 b1@2 b2 ~@3 b2@5 b1@3 b2@4 ~@2]/2",
  BA: "b1@3 ~ b2@2 b1@3 ~ b2@2 ~@12", BB: "~@10 b1@11 ~@3",
  BC: "g#2@4 ~@2 g#2@4 f#2 ~ [g#1,g#2]@5 ~ [g#1,g#2]@4 f#2 ~, g#1@11 ~@13", BD: "[g#1,g#2]@2 [b1,b2] ~@9",
  BE: "[g#1,g#2]@5 ~ [g#1,g#2]@3 ~@3 [g#1,g#2]@4 ~@2 [g#1,g#2]@3 f#2 ~@2", // G#
  BF: "[g#1,g#2] ~@5 g#1@2 ~@3 g#1@2 ~@2 [g#1,g#2] ~ [g#1,g#2]@3 ~@4, ~@6 g#2 ~@4 g#2 ~@12", // G#
  BG: "[f#1,f#2]@3 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ [f#1,f#2]@3 f#1 f#2 ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~, ~@3 f#2@2 ~@7", // F#
  BH: "f#1@2 ~@2 [f#1,f#2] ~ [f#1,f#2] ~ f#1 ~ f#1 ~ f#1@2 ~@2 f#1 ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~, f#2 ~@23", // F#
  BI: "[f#1,f#2] ~@3 [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~@3 [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~", // F#
  BJ: "[f#1,f#2] ~@3 [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~ [f#1,f#2] ~@3 [f1,f2] ~@3 [e1,e2] ~@3", // F# F E
  BK: "[d#1,d#2]@3 ~ [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2]@2 d#1 ~ [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2] ~", // D#
  BL: "d#2@2 ~@2 [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2]@3 ~ [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2] ~ [d#1,d#2] ~, d#1 ~@23", // D#
  BM: "[c#1,c#2]@5 ~ [c#1,c#2]@4 ~@2 [c#1,c#2]@4 ~@2 c#2@4 c2 ~, ~@9 c#1 ~@2", BN: "b1@5 ~ b1@5 ~ b1@5 ~ b1@3 ~ b1 ~",
  BO: "f#1@4 ~@2 f#1@5 ~ f#1@5 ~ f#1@4 ~@2",
  BP: "[g#1,g#2]@2 ~@2 [g#1,g#2]@2 ~@2 [g#1,g#2]@3 ~ [g#1,g#2]@3 ~ [g#1,g#2]@2 ~@2 [g#1,g#2]@2 ~@2", // G#
  BQ: "~@6 f#2@2 ~@4 c#2@4 c#2@2 c#2@4 c2 ~, ~@6 d#1 ~@17", BR: "~@12 c#1@6 b1 ~@5, b1@2 ~",
  BS: "f#1@4 ~@2 f#1@4 ~@2 f#1@5 ~ f#1@4 ~@2",
  BT: "[d#1,a#1] ~ [d#1,a#1] ~ [d#1,a#1] ~ [d#1,a#1] ~ [d#1,a#1] ~ [d#1,a#1] ~ [d#1,a#1] ~ [d#1,a#1] ~ [d#1,a#1] ~ [d#1,a#1] ~ [d#1,a#1] ~ [d#1,a#1] ~", // D#5
  BU: "[g#1,g#2]@5 ~ g#2@3 ~ f#2@2 g#2@3 ~@3 [g#1,g#2]@4 f#2@2, ~@6 g#1@11 ~@7, ~@9 g#2@2 ~@13", // G#
  BV: "g#2 g#2@3 b2@2 ~@18, g#1 ~@5", BW: "[g#1,g#2]@4 ~@2 [g#1,g#2]@4 f#2 ~ [g#1,g#2]@4 ~@2 [g#1,g#2]@4 f#2@2",
  BX: "[g#1,g#2]@3 ~ g#1@2 g#2@2 ~@2 [g#1,g#2]@2 ~@4 g#2@2 [g#1,f#2]@3 ~ g#2 ~", // G# G#7
  BY: "[g#1,g#2]@3 ~@3 [g#1,g#2]@4 f#2 ~ [g#1,g#2]@5 ~ [g#1,g#2]@4 f#2 ~", BZ: "[g#1,g#2]@4 b2@2 ~@9 b2@6 g#2@2 ~",
  CA: "[g#1@5 ~ [g#1,g#2]@4 f#2 ~ [g#1,g#2]@3 ~ g#2 ~ b2@2 ~@2 [g#1,b2]@6 ~@2 g#1@3 ~@2 g#1 ~@6 g#2@5 ~, ~@17 g#1@3 ~@10 b2@12 ~@6]/2", // G# G#m
})).s("gm_electric_bass_pick").gain(0.72)

// other · distortion guitar · "Echo Repeats"
const distortion_guitar = note(`<
  A B C D E ~ F G H I J K L M H N ~@8 O ~ P Q R ~@5 S T U ~@13 O ~ V ~ W ~@16 X ~@10 Y Z AA AB AC AD ~@6 AE AD AF AG
  ~@14 AH D C D AI AJ ~@2 AK ~
>`.pickRestart({
  A: "~@3 g#2@2 g#3 ~@2 g#3 ~@3", B: "g#2@2 g#3 ~@9", C: "~@6 g#2@4 g#3@2 g#2@3 ~ g#3@2 g#2@4 g#3@2",
  D: "g#2@3 ~ g#3@2 ~@18", E: "~@6 g#2@4 g#3@2 g#2@3 ~ g#3@2 ~@6", F: "~@3 g#2@2 g#3 g#2@2 g#3 ~@2 g#3",
  G: "~@6 g#2@4 g#3@2 g#2@3 ~ g#3@2 g#2@3 ~@3", H: "~@6 g#2@2 g#3 g#2@2 g#3",
  I: "g#2@4 g#3@3 ~@5 g#2@4 g#3@2 g#2@3 ~@3", J: "~@6 g#2@4 g#3@2 ~@4 g#3@2 g#2@3 ~ g#3@2",
  K: "g#2@2 g#3 ~@2 g#3 g#2@2 g#3 ~@3", L: "~@6 g#2@3 ~ g#3@2 g#2@4 g#3@2 ~@4 g#3@2",
  M: "~@4 g#3@2 g#2@5 ~@5 g#3@2 g#2@3 ~@3", N: "g#2@3 ~ g#3 ~ g#2@4 g#3@2 g#2@4 g#3 ~@7",
  O: "~@3 g#2@2 g#3 g#2@2 g#3 ~@3", P: "~@3 g#2@2 g#3 g#2@2 ~ g#2@2 g#3", Q: "g#2 ~@5", R: "~@6 g#2@2 g#3 ~@3",
  S: "~@16 g#3 ~@5 g#3@2", T: "g#2 ~@7", U: "~@6 g#2@4 g#3 ~ g#2@3 ~@9", V: "~@6 g#2@4 g#3@2 g#2@5 ~ g#2@5 ~",
  W: "~@12 g#2@4 g#3@2 g#2@5 ~", X: "~@17 [g#4,c#5]@6 ~",
  Y: "g#3@4 ~@2 g#3@3 ~ f#3 ~ g#3@4 ~@2 g#3@3 ~ f#3 ~, g#2@11 ~ g#2@11 ~", Z: "[g#2,g#3]@4 b3 ~@19",
  AA: "g#3@4 ~@2 g#3@3 ~ f#3 ~ g#3@5 ~ g#3@4 f#3 ~, g#2@11 ~ g#2@11 ~", AB: "g#3@2 f#3 ~@9, g#2 ~@3",
  AC: "~@6 [g#2,g#3]@4 f#3 ~ g#3@4 ~@2 g#3@4 f#3@2, ~@6 g#2@5 ~", AD: "[g#2,g#3]@2 b3 ~@9",
  AE: "g#3@5 ~ g#3@4 f#3 ~ g#3@5 ~ g#3@3 ~ f#3 ~, g#2@11 ~ g#2@10 ~@2",
  AF: "g#3@5 ~ g#3@4 f#3 ~ [g#2,g#3]@5 ~ [g#2,g#3]@4 f#3 ~, g#2@11 ~@13", AG: "[g#2,g#3]@3 ~",
  AH: "~@6 g#2@3 ~ g#3@2 g#2@3 ~ g#3@2 g#2@4 g#3@2", AI: "~@6 g#2@3 ~ g#3@2 g#2@4 g#3@2 g#2@3 ~ g#3@2",
  AJ: "~@2 g#3 ~@9", AK: "~@3 g#2 ~@2",
})).s("gm_distortion_guitar").gain(0.2)

// other · distortion guitar · "Echo Repeats" · soft notes
const distortion_guitar_soft = note(`<
  A B ~ C D E F G ~ H I J F K ~@10 L M N O L P ~@4 Q O R S ~@12 L T U V W X ~@61 Y ~@2 Z ~
>`.pickRestart({
  A: "~@6 g#2@2 ~ g#2@2 g#3", B: "~@3 g#2@2 g#3 ~@6", C: "~@10 g#3 ~@13", D: "~@18 g#2@3 ~ g#3@2",
  E: "g#2@3 ~ g#3@2 g#2@3 ~ g#3@2 ~@12", F: "~@9 g#2@2 ~", G: "g#2@3 ~ g#3 ~@19", H: "~@6 g#2@4 g#3@3 ~@11",
  I: "~@4 g#2 ~@3", J: "~@3 g#2@2 ~@7", K: "g#2@4 ~@6 g#3@2 g#2@5 ~@7", L: "~@9 g#2@2 g#3", M: "g#2@2 g#3 ~@9",
  N: "~@8 g#3 ~@3", O: "~@2 g#3 ~@2 g#3 ~@6", P: "g#2@2 g#3 g#2@2 g#3 ~@6", Q: "~@6 g#2@2 ~ g#2@2 ~",
  R: "~@8 g#3 g#2@2 g#3", S: "g#2@4 g#3@3 ~@3 g#3 ~@13", T: "g#2 g#3 ~@4", U: "~@8 g#3 ~@2 g#3", V: "~@2 g#3 ~@9",
  W: "~@11 g#3", X: "g#2@4 g#3@2 g#2@4 g#3@3 ~@11", Y: "g#2@4 ~@2 g#2@3 ~ g#3@2 ~@12",
  Z: "~@6 g#2@3 ~ g#3@2 ~@4 g#3@4 ~@4",
})).s("gm_distortion_guitar").gain(0.1)

// bass · fretless bass
const bass_2 = note("<~@24 A@2 B@2 A@2 ~@20 A@2 C@2 D@2 ~@64 E ~>".pickRestart({
  A: "[~@11 g#1@30 ~@7]/2", B: "[~@14 g#1@29 ~@5]/2", C: "[~@10 g#1@29 ~@9]/2", D: "[~@11 g#1@32 ~@5]/2",
  E: "~@5 g#1@7",
})).s("gm_fretless_bass").gain(0.72)

// drums · kick
const kick = s("bd").struct(`<
  ~@16 A B C D C E F ~ A G C H I D H ~ J D K L M K N O P ~ A Q C D C E H ~ N G C H M L H ~ J D C D M K N O H ~ C L O R S
  T@3 S T C U D O C D J V C H W X K D K ~ C H K H Y@2 Z AA Y S C K@2 AB C U H K C D AC O C G O AD O ~
>`.pickRestart({
  A: "x ~@2 x ~ x ~@5 x", B: "x ~@5 x ~@3 x ~@4 x ~@6 x ~", C: "x ~@10 x", D: "x ~@2 x ~ x ~@2 x ~@3",
  E: "x ~@2 x ~ x ~@2 x!2 ~@2", F: "x ~ x!2 ~@2 x ~", G: "x ~@2 x ~@4 x ~@3", H: "x ~@2 x ~ x ~@3 x ~@2",
  I: "x ~@8 x ~@12 x ~", J: "x ~@6 x", K: "x", L: "x ~@5 x ~@3 x ~@4 x ~@8", M: "x ~@4 x ~@5 x", N: "x ~@2 x ~@7 x",
  O: "x!2 ~@2", P: "x ~@5 x ~@3 x ~@6 x ~@6", Q: "x ~@2 x ~ x ~@2 x ~@2 x", R: "~@11 x", S: "x ~@2 x!2 ~",
  T: "x!2 ~ x!2 ~", U: "x ~@2 x ~@4 x ~@2 x", V: "~ x ~ x ~@4", W: "x ~@2 x", X: "~ x ~@2", Y: "x!2", Z: "x!2 ~ x ~@2",
  AA: "x ~@3 x!2", AB: "x!3 ~@3", AC: "x ~@4 x ~@3 x ~@2", AD: "x ~ x",
})).gain(0.5)

// drums · snare
const snare = s("sd").struct(`<
  ~@14 A B C@7 D C@7 D C@5 E C@3 F C@7 G C@6 H D C@5 E C@3 I C@2 J K L@3 M L@2 C@3 E C@3 J C@3 N C@2 H O C@3 J L@3 P L@2
  C@3 Q C@3 R C@3 S C@3 T U ~
// … 52 more lines

More by Metallica