Strudelify
Am I Evil? cover art

Garage Inc.

Am I Evil?

Metallica

KeyG majorTempo192 bpm
0:00/0:00
// Am I Evil? — Metallica
// 192 bpm, 4/4, key G 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 76, 4/4 at bar 77) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 3 "Guitar 2" distortion guitar (copy of ch 2 "Guitar 1" distortion guitar)
// note: Full arrangement: all 369 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(192/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.

// other · distortion guitar · "Guitar 1"
const distortion_guitar = note(`<
  A@2 B@5 C@4 D@3 E F@3 E G@3 E H@3 E I@3 J@4 K@4 L M@3 N O@3 P Q@3 R S@8 T@3 U@4 V W X Y Z AA@5 AB AC AD@2 AE@4 AF@2 AG
  AH AI AC AD@2 AE@4 AF@2 AG AH AI AC AD@2 AE@4 AF@2 AG AH AI AC AJ@2 AK@4 AL@2 AM AN AO AC AD@2 AE@4 AF@2 AG AH AI AC
  AD@2 AE@4 AF@2 AG AH AI AC AD@2 AE@4 AF@2 AM AN AP AQ AR@2 AS@4 AF@2 AG AH AI AC AD@2 AT@2 AU@2 AF@2 AV@8 AW@4 AX AY
  AX AZ AX AY AX BA BB BC BB BD BB BC BB BD BB BC BB BD BB BC BB BD AX AY AX AZ AX AY AX AZ BB BC BB BD BB BC BB BD BB
  BC BB BD BB BC BB BD AX AY AX AZ AX AY AX AZ BE@2 BF BG@12 BB@4 BG@10 AX@2 BH@2 BI@2 BJ@2 BG@10 BB@4 BG@4 AX AY AX AZ
  AX AY AX BA BB BC BB BD BB BC BB BD BB BC BB BD BB BC BB BD AX AY AX AZ AX AY AX AZ AX AY AX AZ AX AY AX@2 BK BL BK BL
  BK BL BM BN AG AH AI AC AD@2 AE@4 AF@2 AG AH BO ~
>`.pickRestart({
  A: "[~@2 [e2,e3,b3,e4]@23 [d3,a3,d4]@4 [e3,b3,e4]@3]/2", // E5 D5 E5
  B: "[~ [f3,c4,f4]@23 [g3,d4,g4]@7 [e3,b3]@8 e2@3 e2@2 e2@3 [e3,b3]@7 e2@3 e2@3 e2@2 [e3,b3]@8 e2@2 e2@3 e2@2 e2@3]/5", // F5 G5 E5
  C: "[e2@3 e2@2 e2@3 e2@2 e2@3 [e3,b3]@7 e2@3 e2@3 e2@2 [e3,b3]@8 e2@2 e2@3 e2@3 [e3,b3]@7 e2@3 e2@2 e2@3 e2@2 e2@3]/4", // E5
  D: "[e2@3 e2@2 e2@3 e2@2 [e3,b3]@8 e2@2 e2@3 e2@3 [e3,b3]@7 e2@3 e2@2 e2@3 [e3,b3]@7]/3", // E5
  E: "~ e2@2 e2@3 e2@2 e2@3 e2@2 e2@3",
  F: "[e2@3 e2@2 e2@3 [e3,b3]@7 e2@3 e2@2 e2@3 [e3,b3]@8 e2@2 e2@3 e2@2 [e3,b3]@8 e2@2]/3", // E5
  G: "[e2@3 e2@2 [e3,b3]@8 e2@2 e2@3 e2@2 [e3,b3]@8 e2@3 e2@2 e2@3 [e3,b3]@8 e2@2 e2@2]/3", // E5
  H: "[e2@3 [e3,b3]@7 e2@3 e2@2 e2@3 [e3,b3]@8 e2@2 e2@3 e2@2 [e3,b3]@8 e2@3 e2@2 e2@2]/3", // E5
  I: "[[e3,b3]@8 e2@2 e2@3 e2@2 [e3,b3]@8 e2@3 e2@2 e2@3 [e3,b3]@7 e2@3 e2@3 e2@2 e2@2]/3", // E5
  J: "[~ e2@2 e2@3 e2@2 e2@3 e2@2 [e3,b3]@8 e2@3 e2@2 e2@3 [e3,b3]@7 e2@3 e2@3 e2@2 [e3,b3]@8 e2@2 e2@3 e2@3 e2@2 e2@2]/4", // E5
  K: "[~ e2@2 e2@3 e2@2 e2@3 [e3,b3]@8 e2@2 e2@3 e2@2 [e3,b3]@8 e2@2 e2@3 e2@3 [e3,b3]@7 e2@3 e2@2 e2@3 e2@3 e2@2 e2@2]/4", // E5
  L: "~ e2@2 e2@3 e2@2 [e3,b3]@8", // E5
  M: "[e2@3 e2@2 e2@3 [e3,b3]@7 e2@3 e2@2 e2@3 [e3,b3]@8 e2@2 e2@3 e2@2 e2@3 e2@3 e2@2 e2@2]/3", // E5
  N: "~ e2@2 e2@3 [e3,b3]@7 e2@3", // E5
  O: "[e2@3 e2@2 [e3,b3]@8 e2@2 e2@3 e2@2 [e3,b3]@8 e2@3 e2@2 e2@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@2]/3", // E5 D5
  P: "~ [d3,a3,d4]@2 [e3,b3,e4]@8 e2@2 e2@3", // D5 E5
  Q: "[e2@3 [e3,b3]@7 e2@3 e2@2 e2@3 [e3,b3]@8 e2@2 e2@3 e2@2 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@2]/3", // E5 D5
  R: "~ [e3,b3,e4]@7 e2@3 e2@2 e2@3", // E5
  S: "[[e3,b3]@8 e2@2 e2@3 e2@2 [e3,b3]@8 e2@3 e2@2 e2@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@2 [e3,b3,e4]@8 e2@2 e2@3 e2@2 [e3,b3]@8 e2@3 e2@2 e2@3 [e3,b3]@7 e2@3 e2@3 e2@2 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4]@3 e2@7 b2@8 a#2@5]/8", // E5 D5 E5 D5
  T: "[~@3 f3@7 e3@8 b3@8 a#3@7 f4@8 e4@7]/3",
  U: "[~ f4@7 g4@15 ~@4 g4 a4@11 b4@15 b3 e4 ~ g4 b3 e4 g4 b3 e4 g4, ~@8 f#4 ~@30 a4 ~@24]/4",
  V: "b3 e4 g4 b3 e4 g4 b3 e4 ~ g4 b3 e4 g4 b3 e4 g4", W: "b3 d#4 f#4 b3 d#4 f#4 b3 d#4 ~ f#4 b3 d#4 f#4 b3 d#4 f#4",
  X: "b3 d#4 f#4 b3 d#4 f#4 b3 d#4 ~ f#4 b3 e4 g4 b3 e4 g4", Y: "b3 e4 g4 b3 e4 g4 b3 f#4 ~ a4 b3 f#4 a4 b3 e4 g4",
  Z: "b3 e4 g4 b3 d#4 f#4 b3 d#4 ~ f#4 b3 d#4 f#4 b3 d#4 f#4",
  AA: "[b3 d#4 f#4 b3 d#4 f#4 b3 d#4 ~ f#4 b3 d#4 f#4@55 ~@13]/5", AB: "~@6 e2@2 ~ e2@2 e2@2 ~ e2@2",
  AC: "[g2,d3]@2 e2@2 ~ e2@2 [a2,e3]@2 ~ e2@2 e2@2 e2@2", // G5 A5
  AD: "[~ [a#2,f3]@7 [a2,e3]@5 e2@2 e2@2 ~ e2@2 e2@2 [g2,d3]@2 ~ e2@2 e2@2 ~ [a2,e3]@2]/2", // A#5 A5 G5 A5
  AE: "[e2@2 e2@2 ~ e2@2 [a#2,f3]@7 [a2,e3]@5 e2@2 ~ e2@2 e2@2 e2@2 ~ [g2,d3]@2 e2@2 ~ e2@2 [a2,e3]@2 e2@2 ~ e2@2 e2@2 ~ [a#2,f3]@7 [a2,e3]@5 e2@2 e2@2 e2@2]/4", // A#5 A5 G5 A5 A#5 A5
  AF: "[~ e2@2 [g2,d3]@2 ~ e2@2 e2@2 [a2,e3]@2 ~ e2@2 e2@2 ~ e2@2 [a#2,f3]@7 [a2,e3]@5]/2", // G5 A5 A#5 A5
  AG: "e2@2 e2@2 ~ e2@2 e2@2 ~ [g2,d3]@2 e2@2 e2@2", AH: "~ [a2,e3]@2 e2@2 ~ e2@2 e2@2 [a#2,f3]@6",
  AI: "~@2 [a2,e3]@4 e2@2 ~ e2@2 e2@2 ~ e2@2", // A5
  AJ: "[~ [a#2,f3]@7 [a2,e3]@5 b2@2 b2@2 ~ b2@2 b2@2 [d3,a3]@2 ~ b2@2 b2@2 ~ [e3,b3]@2]/2", // A#5 A5 D5 E5
  AK: "[b2@2 b2@2 ~ b2@2 [f3,c4]@7 [e3,b3]@5 b2@2 ~ b2@2 b2@2 b2@2 ~ [d3,a3]@2 b2@2 ~ b2@2 [e3,b3]@2 b2@2 ~ b2@2 b2@2 ~ [f3,c4]@7 [e3,b3]@5 b2@2 b2@2 b2@2]/4", // F5 E5 D5 E5 F5 E5
  AL: "[~ b2@2 [d3,a3]@2 ~ b2@2 b2@2 [e3,b3]@2 ~ b2@2 b2@2 ~ b2@2 [f3,c4]@7 [e3,b3]@5]/2", // D5 E5 F5 E5
  AM: "b2@2 b2@2 ~ b2@2 b2@2 ~ [d3,a3]@2 b2@2 b2@2", AN: "~ [e3,b3]@2 b2@2 ~ b2@2 b2@2 [f3,c4]@6",
  AO: "~@2 [e3,b3]@4 e2@2 ~ e2@2 e2@2 ~ e2@2", AP: "~@2 [e3,b3]@4 b2@2 ~ b2@2 b2@2 ~ b2@2",
  AQ: "[d3,a3]@2 b2@2 ~ b2@2 [e3,b3]@2 ~ b2@2 b2@2 b2@2", // D5 E5
  AR: "[~ [f3,c4]@7 [e3,b3]@5 b2@2 b2@2 ~ b2@2 b2@2 [d3,a3]@2 ~ b2@2 b2@2 ~ [e3,b3]@2]/2", // F5 E5 D5 E5
  AS: "[b2@2 b2@2 ~ b2@2 [f3,c4]@7 [e3,b3]@5 b2@2 ~ b2@2 b2@2 b2@2 ~ [d3,a3]@2 b2@2 ~ b2@2 [e3,b3]@2 b2@2 ~ b2@2 b2@2 ~ [f3,c4]@7 [e3,b3]@5 e2@2 e2@2 e2@2]/4", // F5 E5 D5 E5 F5 E5
  AT: "[e2@2 e2@2 ~ e2@2 [a#2,f3]@7 [a2,e3]@5 [e3,b3]@5 ~@2 [d3,a3]@5 ~]/2", AU: "[~ [c3,g3]@12 e2!3]/2",
  AV: "[[e3,b3]@5 ~@2 [d3,a3]@5 ~@2 [c3,g3]@24 [e3,b3]@5 ~@3 [d3,a3]@5 ~@2 [c3,g3]@24 [e3,b3]@5 ~@2 [d3,a3]@5 ~@2 [c3,g3]@24 [e3,b3]@5 ~@2 [d3,a3]@5 ~]/8", // E5 D5 C5 E5 D5 C5 E5 D5 …
  AW: "[~ [c3,g3]@31]/4", AX: "[a2,e3]@2 a2@2 a2!2 ~ a2 [a2,e3]@2 a2@2 a2!2 ~ a2",
  AY: "[a2,e3]@2 a2@2 a2!2 ~ a2 [g2,d3]@4 [d3,a3]@4", AZ: "[a2,e3]@2 a2@2 a2!2 ~ a2 [c3,g3]@4 [g2,d3]@4",
  BA: "[a2,e3]@2 a2@2 a2!2 ~ a2 [g3,c4]@8", BB: "e2@2 e2@2 e2!2 ~ e2 e2@2 e2@2 e2!2 ~ e2",
  BC: "e2@2 e2@2 e2!2 ~ e2 e2@2 [d3,a3]@6", BD: "e2@2 e2@2 e2!2 ~ e2 [d3,a3]@3 [d3,a3]@2 [d3,a3]@3", BE: "[e3,b3]/2",
  BF: "[g2,d3] [a2,e3]", BG: "[b2,f#3]@2 b2@2 b2!2 ~ b2 [b2,f#3]@2 b2@2 b2!2 ~ b2",
  BH: "[f2,c3]@2 f2@2 f2!2 ~ f2 [f2,c3]@2 f2@2 f2!2 ~ f2", // F5
  BI: "[a#2,f3]@2 a#2@2 a#2!2 ~ a#2 [a#2,f3]@2 a#2@2 a#2!2 ~ a#2", // A#5
  BJ: "[f#2,c#3]@2 f#2@2 f#2!2 ~ f#2 [f#2,c#3]@2 f#2@2 f#2!2 ~ f#2", BK: "e2@2 [e3,b3]@2 [d3,a3] [d3,a3]@2 e2",
  BL: "[d3,a3]@2 [d3,a3]@4 e2@2 a2 b2 ~ d3 e3 d3 ~ b2", BM: "e2@2 [e3,b3]@2 [d3,a3] [d3,a3]@2 ~",
  BN: "[d3,a3] [d3,a3]@2 ~ [d3,a3]@2 [a2,e3]@2", BO: "~@2 [a2,e3]@5 ~@9",
})).s("gm_distortion_guitar").gain(0.4)

// other · overdriven guitar · "Guitar 3"
const overdriven_guitar = note(`<
  ~@189 A B@4 ~@59 C D E F G H I J I@2 K L M@2 N O P Q R S T U T V W X Y@2 Z@2 AA@2 AB@2 AC AD AE@2 AF@2 AG@2 AH AI AJ
  AK AL@2 AM AN@3 ~@64
>`.pickRestart({
  A: "~@3 e3@5 ~@2 f#3@6", B: "[~@2 g3@9 e3@43 ~@10]/4", C: "e4@10 b4@2 a4 f#4 ~ a4", D: "a4@5 [g#4,c5] d#5 e5",
  E: "d#5 [d5,e5] ~ b4 d5 e5 ~ f#5 d#5 [d5,e5] ~ b4 d5 b4 ~ a#4", F: "a4@6 a4 b4",
  G: "d5@3 c#5@2 b4 ~ c#5 b4 a4 f#4 [a4,b4] a4 f#4@3", H: "a4 f#4 ~ e4 f#4 e4 ~ d4 e4 d4 ~ b3 d4@2 d4@2",
  I: "e4@2 b4@2 a4 f#4 ~ e4 d4 [d4,e4] ~ b3 d4!2 ~ d4", J: "[e4,g#4]@3 d4@2 d4@3 b3@6 d4@2",
  K: "e4@2 b4@2 a4 f#4 ~ e4 d4 [d4,e4] ~ b3 d4@4", L: "b5@3 c6@2 d6@3 d6@8",
  M: "g5 e5 ~ f#5 e5 c#5 ~ e5 g5 e5 ~ f#5 e5 c#5 ~ e5", N: "g5@3 f#5@2 e5@3 d5@3 e5@2 d5@3",
  O: "c#5@3 b4@2 c#5@3 g4@4 g4@2 d4@2", P: "e4@2 b4@2 d5 b4 ~ f#4 c#5 b4 ~ f#4 d5 b4 ~ f#4",
  Q: "e5 b4 ~ f#4 d5 b4 ~ f#4 c#5 b4 ~ f#4 d5 b4 ~ f#4", R: "d5@3 c#5@2 b4@3 a4@3 b4@2 a4@3",
  S: "g#4@3 f#4@2 g#4@3 d4@4 d4@4", T: "b3 d#4 ~ f#4 b3 d#4 ~ f#4 b3 d#4 ~ f#4 b3 d#4 ~ f#4",
  U: "b3 e4 ~ g4 b3 e4 ~ g4 b3 e4 ~ g4 b3 e4 ~ g4", V: "e4 g#4 ~ b4 e4 g#4 ~ b4 e4 g#4 ~ b4 e4 g#4 ~ b4",
  W: "e4 a4 ~ c5 e4 a4 ~ c5 e4 a4 ~ c5 e4 a4 ~ c5", X: "e4 g#4 ~ b4 e4 g#4 ~ b4 e4 g#4 b4 e4 g#4 b4 a4 c#5",
  Y: "e5 c#5 ~ a4 e5 c#5 ~ a4 e5 c#5 ~ a4 e5 c#5 ~ a4", Z: "f5 c#5 ~ a4 f5 c#5 ~ a4 f5 c#5 ~ a4 f5 c#5 ~ a4",
  AA: "f5 c#5 ~ a#4 f5 c#5 ~ a#4 f5 c#5 ~ a#4 f5 c#5 ~ a#4",
  AB: "g#5 c#5 ~ a#4 g#5 c#5 ~ a#4 g#5 c#5 ~ a#4 g#5 c#5 ~ a#4", AC: "f#5 d5 ~ b4 f#5 d5 ~ b4 f#5 d5 ~ b4 f#5 d5 ~ b4",
  AD: "f#5 d5 ~ b4 f#5 d5 ~ b4 f#5 d5 ~ b4 f#5@3 b4", AE: "e4 g#4 ~ b4 b3 d#4 ~ f#4 e4 g4 ~ b4 b3 d4 ~ f#4",
  AF: "b3 d#4 ~ f#4 g3 b3 ~ d4 b3 d#4 ~ f#4 g3 b3 ~ d4", AG: "g3 b3 ~ d4 d3 f#3 ~ a3 g3 b3 ~ d4 d3 f#3 ~ a3",
  AH: "d3 f#3 ~ a3 a2 c#3 ~ e3 d3 f#3 ~ a3 a2 c#3 ~ e3", AI: "a3@10 e4 f#4 a4!2 b4!2",
  AJ: "d5 b4!3 e5 b4!3 d5 b4 ~ b4 e5 b4!3", AK: "d5!2 b4!2 e5 b4!3 d5 [b4,c#5] b4!2 e5 b4!3",
  AL: "[d5 [b4,c#5] b4!2 ~ b4 ~ a4 c5 [a4,a#4] c5 [a4,b4] f4 e4 ~ [d4,f#4]@3 e4@2 d4@2 d4@4 d4@2 f#4!2 ~ a4]/2", // Bsus2 A#maj7 Asus2 D
  AM: "a4@8 a4 f#4 ~ e4 f#4 e4 ~ d4",
  AN: "[e4 d4 ~ b3 d4@2 d4@2 ~@2 d5@10 c#5@2 b4@2 c#5@2 b4 c#5 b4@2 a4@4 g4 a4 g4@4 d4@8]/3",
})).s("gm_overdriven_guitar").gain(0.48)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A@2 B@3 ~@6 C@8 D@8 E@7 F@8 G@4 H I@3 J K@4 L M@6 N@4 ~@12 O@2 P@6 Q R S T U@2 V@3 W X@2 Q R S T U@2 Y Z@3 X@2 Q R S T
  AA@2 AB@4 AC@2 AD AE AF T U@2 AG AH@3 X@2 Q R S T AI@2 AJ@4 X@2 Q AK@2 T U@2 AJ@4 X@2 AD AE AL AM AN@2 AO@4 X@2 Q AP@2
  T U@2 AQ@2 AR AS X@2 AT@4 AU@2 AV AW AX@4 AY AZ AY BA AY AZ AY BB BC BD BC BE BC BD BC BE BC BD BC BE BC BD BC BE AY
  AZ AY BA AY AZ AY BB BC BD BC BE BC BD BC BE BC BD BC BE BC BD BC BE AY AZ AY BA AY AZ AY BA BF@2 BG BH@12 BC@4 BH@10
  BI@2 BJ@2 BK@2 BL@2 BH@10 BC@3 BM BH@4 AY AZ AY BA AY AZ AY BB BC BD BC BE BC BD BC BE BC BD BC BE BC BD BC BE AY AZ
  AY BA AY AZ AY BA AY AZ AY BA AY AZ AY BA BN BO BN BO BN BO BP BQ BR ~ BS@2 BT@2 AJ@4 X@2 Q R BU BV
>`.pickRestart({
  A: "[~@2 e2@23 d2@4 e2@3]/2", B: "[~ f2@23 g1@7 e1@8 ~@9]/3", C: "[~@10 e1@46 b1@15 ~ a#1@46 f1@10]/8",
  D: "[~@5 e1@31 e1@15 b1@15 ~ a#1@46 f1@15]/8", E: "[e1@46 b1@15 a#1@46 ~ f2@4]/7",
  F: "[~@11 e2@31 e1@15 b1@15 a#1@46 f1@10]/8", G: "[~@6 e1@46 d2@2 d2@3 d2@3 d2@2 d2@2]/4", H: "~ d2@2 e2@8 e1@2 e1@3",
  I: "[e1@3 e1@4 ~@3 e1@3 e1@2 e1@3 e1@4 ~@4 e1@2 e1@3 e1@2 d2@3 d2@2 d2@3 d2@3 d2@2 d2@2]/3",
  J: "~ e2@4 ~@3 e1@3 e1@2 e1@3",
  K: "[e1@4 ~@4 e2@2 e2@3 e2@2 e2@8 e2@3 e2@2 e2@3 d2@2 d2@3 d2@2 d2@3 d2@3 d2@2 e2@4 ~@4 e1@2 e1@3 e1@2 e1@3]/4",
  L: "~@5 e1@3 e1@2 e1@3 e1@3",
  M: "[~@4 e1@3 e1@3 e1@2 d2@3 d2@2 d2@3 d2@2 d2@3 d2@3 e1@7 b1@8 a#1@8 f2@7 e2@8 b2@8 a#2@7 f3@8 e3@7]/6",
  N: "[~ f3@7 g3@46 ~@10, ~@8 f#3 ~@55]/4", O: "[~@13 [e1,e2]@19]/2",
  P: "[~@14 d2@5 [e1,e2]@26 d2 e2@4 d2@2 ~ b1@2 d2@2 ~ e2@16 d2@2 ~ e2@2 g2@2 ~ e2@2 d2@2 b1@2 ~ a#1@2 a1@2 ~ g1@2]/6", // E
  Q: "e1@2 e1@2 ~ e1@2 e1@2 ~ g1@2 e1@2 e1@2", R: "~ a1@2 e1@2 ~ e1@2 e1@2 a#1@6",
  S: "~@2 a1@4 e1@2 ~ e1@2 e1@2 ~ e1@2", T: "g1@2 e1@2 ~ e1@2 a1@2 ~ e1@2 e1@2 e1@2",
  U: "[~ a#1@7 a1@5 e1@2 e1@2 ~ e1@2 e1@2 g1@2 ~ e1@2 e1@2 ~ a1@2]/2",
  V: "[e1@2 e1@2 ~ e1@2 a#1@7 a1@5 e1@2 ~ e1@2 e1@2 e1@2 ~ g1@2 e1@2 ~ e1@2 a1@2 e1@2 ~ e1@2 e1@2 ~ a1@2]/3",
  W: "a#1@2 b1@2 ~ d2@2 e2@2 ~ e1@2 e1@2 e1@2", X: "[~ e1@2 g1@2 ~ e1@2 e1@2 a1@2 ~ e1@2 e1@2 ~ e1@2 a#1@7 a1@5]/2",
  Y: "e1@2 e1@2 ~ e1@2 d2@2 ~ e2@2 d2@2 b1@2",
  Z: "[~ a1@2 e1@2 ~ e1@2 e1@2 e1@2 ~ g1@2 e1@2 ~ e1@2 a1@2 e1@2 ~ e1@2 e1@2 ~ a#1@7 a1@5 e1@2 e1@2 e1@2]/3",
  AA: "[~ a#1@7 a1@5 b1@2 b1@2 ~ b1@2 b1@2 d2@2 ~ b1@2 b1@2 ~ e2@2]/2",
  AB: "[b1@2 b1@2 ~ b1@2 f2@7 e2@5 b1@2 ~ b1@2 b1@2 b1@2 ~ d2@2 b1@2 ~ b1@2 e2@2 b1@2 ~ b1@2 b1@2 ~ f2@7 e2@5 b1@2 b1@2 b1@2]/4",
  AC: "[~ b1@2 d2@2 ~ b1@2 b1@2 e2@2 ~ b1@2 b1@2 ~ b1@2 f2@7 e2@5]/2", AD: "b1@2 b1@2 ~ b1@2 b1@2 ~ d2@2 b1@2 b1@2",
  AE: "~ e2@2 b1@2 ~ b1@2 b1@2 f2@6", AF: "~@2 e2@4 e1@2 ~ e1@2 e1@2 ~ e1@2",
  AG: "e1@2 e1@2 ~ e1@2 a1@2 ~ a#1@2 b1@2 d2@2",
  AH: "[~ e2@2 e1@2 ~ e1@2 e1@2 e1@2 ~ g1@2 e1@2 ~ e1@2 a1@2 e1@2 ~ e1@2 e1@2 ~ a#1@7 a1@5 e1@2 e1@2 e1@2]/3",
  AI: "[~ a1@2 a#1@2 ~ b1@2 d2@2 e2@2 ~ e1@2 e1@2 ~ e1@2 e1@2 g1@2 ~ e1@2 e1@2 ~ a1@2]/2",
  AJ: "[e1@2 e1@2 ~ e1@2 a#1@7 a1@5 e1@2 ~ e1@2 e1@2 e1@2 ~ g1@2 e1@2 ~ e1@2 a1@2 e1@2 ~ e1@2 e1@2 ~ a#1@7 a1@5 e1@2 e1@2 e1@2]/4",
  AK: "[~ a1@2 e1@2 ~ e1@2 e1@2 d2@2 ~ e2@2 d2@2 ~ b1@2 a1@2 e1@2 ~ e1@2 e1@2 ~ e1@2]/2",
  AL: "~@2 e2@4 b1@2 ~ b1@2 b1@2 ~ b1@2", AM: "d2@2 b1@2 ~ b1@2 e2@2 ~ b1@2 b1@2 b1@2",
  AN: "[~ f2@7 e2@5 b1@2 b1@2 ~ b1@2 b1@2 d2@2 ~ b1@2 b1@2 ~ e2@2]/2",
  AO: "[b1@2 b1@2 ~ b1@2 f2@7 e2@5 b1@2 ~ b1@2 b1@2 b1@2 ~ d2@2 b1@2 ~ b1@2 e2@2 b1@2 ~ b1@2 b1@2 ~ f2@7 e2@5 e1@2 e1@2 e1@2]/4",
  AP: "[~ a1@2 e1@2 ~ e2@2 e2@2 e2@2 ~ e2@2 e2@2 ~ e2@2 e2@2 e1@2 ~ e1@2 e1@2 ~ e1@2]/2",
  AQ: "[e1@2 e1@2 ~ e1@2 a#1@7 a1@5 e2@7 d2@6]/2", AR: "~@2 c2@4 c3@2 ~ c3!2 c3@2 ~ c3@2",
  AS: "c3@2 b1@2 ~ d2@2 d#2@2 ~ e2@2 e1@2 e1@2",
  AT: "[e2@7 d2@7 c2@5 c3@2 ~ c3!2 c3@2 c3@2 ~ c3@2 b1@2 ~ d2@2 d#2@2 e2@7 ~ d2@7 c2@5 c3@2 c3!2 c3@2]/4",
  AU: "[~ c3@2 c3@2 ~ b1@2 d2@2 d#2@2 ~ e2@7 d2@7 c2@5]/2", AV: "c3@2 c3 ~ c3 c3@2 c3@2 ~ c3@2 b1@2 d2@2",
  AW: "~ d#2@2 e2@7 f#2@6", AX: "[~@2 g2@9 c2@53]/4", AY: "a1@2 a2@2 a2!2 ~ a2 a1@2 a2@2 a2!2 ~ a2",
  AZ: "a1@2 a2@2 a2!2 ~ a2 g1@4 d2@4", BA: "a1@2 a2@2 a2!2 ~ a2 c2@4 g1@4", BB: "a1@2 a2@2 a2!2 ~ a2!3 ~ a2 e2@4",
  BC: "e2@2 e1@2 e1!2 ~ e1 e2@2 e1@2 e1!2 ~ e1", BD: "e2@2 e1@2 e1!2 ~ e1 e1@2 d2@6",
  BE: "e2@2 e1@2 e1!2 ~ e1 e1@3 d2@2 d2@3", BF: "e1/2", BG: "g1 a1", BH: "b1@2 b1@2 b1!2 ~ b1 b1@2 b1@2 b1!2 ~ b1",
  BI: "a1@2 a1@2 a1!2 ~ a1 a1@2 a1@2 a1!2 ~ a1", BJ: "f1@2 f1@2 f1!2 ~ f1 f1@2 f1@2 f1!2 ~ f1",
  BK: "a#1@2 a#1@2 a#1!2 ~ a#1 a#1@2 a#1@2 a#1!2 ~ a#1", BL: "f#1@2 f#1@2 f#1!2 ~ f#1 f#1@2 f#1@2 f#1!2 ~ f#1",
  BM: "e2@2 e1@2 e1!2 ~ e1 e1@3 e1@5", BN: "e1!2 e2 a1 d2!3 e1", BO: "d2@2 d2@2 d2@2 e1@2 a1 b1 ~ d2 e2 d2 ~ b1",
  BP: "e1!2 e2 a1 d2 d2@2 ~", BQ: "d2 d2@2 ~ d2@2 a1@2", BR: "e1@5 ~@11",
  BS: "[~@6 e1@17 e2@2 ~ e2@2 e2@2 e2@2, ~@23 d2 ~@8]/2",
  BT: "[~ e2@2 e2@2 ~ e2@2 e2@5 e1@2 e1@2 ~ e1@2 e1@2 g1@2 ~ e1@2 e1@2 ~ a1@2]/2", BU: "~@2 a1@5 ~@9",
  BV: "g1@5 e1@5 ~@6",
})).s("gm_electric_bass_finger").gain(0.4)

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

// drums · rim
const rim = s("rim").struct("<~@274 [~ x ~ x] ~@8 [~ x ~ x] ~@85>").gain(0.4)

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

More by Metallica