Strudelify
...and Justice for All cover art

…And Justice for All

...and Justice for All

Metallica

KeyG majorTempo168 bpm
0:00/0:00
// ...and Justice for All — Metallica
// 168 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 (3/4 at bar 1, 4/4 at bar 39, 2/4 at bar 52, 4/4 at bar 52, ...) 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 420 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(168/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 · electric guitar clean · "Guitar 1"
const electric_guitar_clean = note("<A@2 B@2 C@2 D@7 E@7 ~@3 F@2 G@3 ~@392>".pickRestart({
  A: "[~ [e3,g#3]@4 a3@3 ~@7 a3@4 g#3 a3 g#3 f#3@4 g3@3 g3@3, ~ f#2@11 e3@11 ~@9, ~@8 b3@7 ~@7 d#3@10]/2", // E
  B: "[~ f#3@3 a3@4 [d3,f#3]@3 e3@4 f3@3 ~@7 f3@4 e3 f3 e3, ~ d3@7 ~@3 c3@11 c3@10, ~@18 g3@7 ~@7]/2", // D
  C: "[d3@4 e3@3 e3@4 d3@3 e3@4 [b2,d3]@3 d3@4 e3@3 e3@4, b2@11 b2@7 ~@3 a#2@11]/2", // Bm
  D: "[d3@3 e3@4 a3@3 [a#2,f3]@21 [e3,g#3]@4 a3@3 ~@7 a3@4 g#3 a3 g#3 f#3@4 g3@3 g3@4 f#3@3 a3@4 [d3,f#3]@3 e3@4 f3@3 ~@7 f3@4 e3 f3 e3 d3@4 e3@3 e3@4 d3@3 e3@4, a#2@10 ~@21 f#2@11 e3@11 ~@27 g3@7 ~@7 b2@11 b2@7, ~@38 b3@7 ~@7 d#3@11 d3@7 ~@3 c3@11 c3@11 ~@17]/7", // A#5 E D
  E: "[[b2,d3]@3 d3@4 e3@3 e3@4 d3@3 e3@4 a3@3 [a#2,f3]@21 [e3,g#3]@4 a3@3 ~@7 a3@4 g#3 a3 g#3 f#3@4 g3@3 g3@4 f#3@3 a3@4 [d3,f#3]@3 e3@4 f3@3 ~@7 f3@4 e3 f3 e3 ~@4, ~@3 a#2@11 a#2@10 ~@21 f#2@11 e3@11 ~@27 g3@7 ~@11, ~@52 b3@7 ~@7 d#3@11 d3@7 ~@3 c3@11 c3@11 ~@3]/7", // Bm A#5 E D
  F: "[~@11 [e3,g#3]@4 a3@3 ~@7 a3@4 g#3 a3 g#3, ~@11 f#2@11 e3@10, ~@18 b3@7 ~@7]/2", // E
  G: "[f#3@4 g3@3 g3@4 f#3@3 a3@4 [d3,f#3]@3 e3@4 f3@3 ~@7 f3@4 e3 f3 e3 ~@6, d#3@11 d3@7 ~@3 c3@11 c3@11 ~@5, ~@28 g3@7 ~@13]/3", // D
})).s("gm_electric_guitar_clean").gain(0.32)

// chords · distortion guitar · "Guitar 1"
const distortion_guitar = note(`<
  ~@19 A B@4 ~@3 C D@2 E@2 F@2 G H@2 I@3 J K L M N O P@8 ~@2 Q R S T S T R Q R S T S T R Q U@5 V@2 R S T S T R W X Y Z
  AA AB AC AD X Y Z AA AB AC AD X Y Z AA AB AC AD AE AF AG AF AG AF AG AH AI AF AG AF AG AF AG AH AI@2 AJ AK AL AM AN AO
  AK AL AP AO AK AL AM AQ AR AS Q R S T S T R W X Y Z AA AB AC AD X Y Z AA AB AC AD X Y Z AA AB AC Q AE AF AG AF AG AF
  AG AH AI AF AG AF AG AF AG AH AI@2 AJ AK AL AM AN AO AK AL AP AO AK AL AM AQ AR AS Q R S T S T R AT AU AV L M N O AW
  AX AJ AK AJ AK AJ AY AJ AI AJ AK AJ AK AJ AY AJ AI@2 AZ BA BB BC BA BB BD BE BF BG BH BF BA BI BJ@2 BK BL BM BN BO BP
  BQ BR BN BS BN BO BP BQ BR BN BT BU BV@2 BW BX BY BZ@2 CA CB CC@2 CD CE CF@2 CG CH CI@3 CJ CK CL@2 CM@2 CN CO CP@2
  CQ@2 CR@4 CS CT CU@3 CV CW CX@3 CY@3 CZ ~@6 DA@2 DB@5 DC@2 DD@7 DE@8 DF@2 DG@4 DH@2 DI@2 DG@4 DH@2 DJ DK@2 DL@5 DM@2
  DN@2 DO@5 DP DQ@7 DR@7 DS@4 DT@8 DU@8 DV@2
>`.pickRestart({
  A: "~@3 [b2,d3]", // Bm
  B: "[[b2,e3]@3 [b2,e3]@4 [b2,d3]@3 [b2,e3]@4 [b2,d3]@3 [a#2,d3]@4 [a#2,e3]@3 [a#2,e3]@4 [a#2,d3]@3 [a#2,e3]@4 [a#2,a3]@3 [a#2,f3,a#3]@7 [a#2,f3,a#3]@7 [a#2,f3,a#3]@4 ~@8]/4", // E5 Bm E5 Bm A# A#dim A# A#dim …
  C: "~@5 [b2,d3]@2 [b2,e3]", // Bm E5
  D: "[~ [b2,e3]@4 [b2,d3]@3 [b2,e3]@4 [b2,d3]@3 [a#2,d3]@4 [a#2,e3]@3 [a#2,e3]@4 [a#2,d3]@3 [a#2,e3]@3]/2", // E5 Bm E5 Bm A# A#dim A# A#dim
  E: "[~ [a#2,a3]@3 [a#2,f3,a#3]@7 [a#2,f3,a#3]@7 [a#2,f3,a#3]@7 [e2,e3,g#3]@4 [e2,a3]@3]/2", // A#maj7 A#5 E A5
  F: "[[e2,g#3,b3]@7 [e2,e3]@4 g#3 a3 g#3 [d3,f#3]@4 [d3,g3]@3 [d3,a3]@2 [d3,a3]@2 [d3,f#3]@3 [d3,a3]@4, ~@11 e3@4 ~@17]/2", // E D G5 D5 D D5
  G: "[d3,f#3]@3 [c3,e3]@4 [c3,f3]@3 [e3,g3]@6", // D C F5 Em
  H: "[~ [c3,f3]@4 e3 f3 e3 [b2,d3,b3]@4 [b2,e3,b3]@3 [b2,e3,b3]@2 [b2,e3,b3]@2 [b2,e3,b3]@3 [b2,e3,b3]@4 [b2,e3,b3]@3 [a#2,d3,a#3]@3, ~@5 c3@4 ~@23]/2", // F5 Bm E5 A#
  I: "[~ [a#2,e3,a#3]@3 [a#2,e3,a#3]@2 [a#2,e3,a#3]@2 [a#2,e3,a#3]@3 [a#2,e3,a#3]@4 [a#2,e3,a#3]@3 [a#2,f3,a#3]@21 ~@9]/3", // A#dim A#5
  J: "~ [a#2,f3,a#3]@2 [a2,e3,a3]@2 ~@4 [b2,f3,b3]@2 [a2,e3,a3]@2 [g#2,d#3,g#3]@2 ~", // A#5 A5 Bdim A5 G#5
  K: "~@3 [a#2,f3,a#3]@2 ~ [a2,e3,a3]@2 [g#2,d#3,g#3]@2 [g2,d3,g3]@2 ~@4", // A#5 A5 G#5 G5
  L: "[f#3,a#3] [e3,a3] [d3,g3] [c3,f3] [e3,a3] [d3,g3] [c3,f3] [b2,e3]", // F# A5 G5 F5 A5 G5 F5 E5
  M: "[d3,g3] [c3,f3] [b2,e3] [a2,d3] [c3,f3] [b2,e3] ~@2", N: "[c3,f3] [b2,e3] [a2,d3] [g2,c3]",
  O: "[b2,e3] [a2,d3] [g2,c3] [f#2,b2] [a2,d3] [g2,c3] [f#2,b2] [e2,a2]", P: "[e2,b2,e3]/8",
  Q: "[a#2,f3,a#3]!2 [a2,e3,a3]@2 [a#2,f3,a#3]!2 [a2,e3,a3]@2", R: "e2 e3@2 e3 d3@2 b2@2, ~@2 d3 ~@13",
  S: "[a#2,f3,a#3]!2 [a2,e3,a3]@2 e2 e3@2 e3, ~@10 d3 ~@5", T: "d3@2 b2@2 [a#2,f3,a#3]!2 [a2,e3,a3]@2",
  U: "[[e3,b3]@3 [a2,e3,a3]@4 [e2,b2,e3]@3]/5", V: "[[a2,e3,a3]@12 [f2,c3,f3]!2 [e2,b2,e3]@2]/2",
  W: "[a#2,f3,a#3]!2 [a2,e3,a3]@2 [g2,d3]!2 [f#2,c#3] e2", // A#5 A5 G5 F#5
  X: "e2 [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3] [e2,b2,e3,g#3,b3]@2 [e2,b2,e3,g#3,b3]@2", // E
  Y: "[e2,b2]!2 [f2,c3,f3,a3]@2 e2 [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3]", // E5 F E
  Z: "[e2,b2,e3,g#3,b3] e2 [e2,b2,e3,g#3]@2 [a#2,f3,a#3]!2 [a2,e3,a3]@2", // E A#5 A5
  AA: "[a#2,f3,a#3]!2 [a2,e3,a3]@2 e2 [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3]", // A#5 A5 E
  AB: "[e2,b2,e3,g#3,b3]@2 [e2,b2,e3,g#3,b3]@2 [e2,b2]!2 [f2,c3,f3,a3]@2", // E E5 F
  AC: "e2 [e2,b2,e3,g#3,b3] ~ [e2,b2,e3,g#3] [e2,b2,e3,g#3,b3] e2 [e2,b2,e3,g#3]@2", // E
  AD: "[a#2,f3,a#3]!2 [a2,e3,a3]@2 [a#2,f3,a#3]!2 [a#2,f3,a#3]@2", AE: "[e2,e3]!5 [g2,d3]!3",
  AF: "[f#2,c#3,f#3]@2 [f#2,c#3]!6", // F#5
  AG: "[g2,d3,g3] [f#2,c#3,f#3] [e2,b2,e3] [g2,d3,g3]@3 [g2,d3,g3]@2, ~@6 [f#2,c#3,f#3] ~@5 [f#2,c#3,f#3] ~@3", // G5 F#5 E5 G5 F#5
  AH: "[f#2,c#3]@2 [f#2,c#3]!6", AI: "g3 c4 ~ d4 d3 g3 ~ a3 a2 d3 ~ e3 a2 b2 ~ c3", AJ: "[e2,b2,e3,b3]@2 [e2,b2]!6",
  AK: "[c3,f3,c4] [b2,e3,b3] [a2,d3] [c3,f3,c4]@3 [c3,f3,c4]@2, ~@6 [b2,e3,b3] ~@5 [b2,e3,b3] ~@3", // F5 E5 D5 F5 E5
  AL: "[a2,e3,a3,c#4]", AM: "[b2,f#3,b3]", AN: "[c3,g3,c4]@5 a2 [f2,c3,f3]@2", AO: "[e2,b2,e3]@2 [e2,b2]!6",
  AP: "[b2,f#3,b3]@3 [f2,c3,f3]", AQ: "[g2,d3,g3,d4]", AR: "[c3,g3,c4]", AS: "[f2,c3,f3]@3 [f2,c3,f3]",
  AT: "[a#2,f3,a#3]@4 ~@4 [a#2,f3,a#3]@3 [a2,e3,a3]@3 ~@2", AU: "~@4 [a#2,f3,a#3]@3 [f#2,e3,a3]@2 [f2,d#3,g#3]@3 ~@4",
  AV: "[a#2,f3,a#3] [a2,e3,a3] [g#2,d#3,g#3] [g2,d3,g3] ~@4", AW: "[e2,b2,e3,g#3,b3]",
  AX: "a2 b2 ~ c3 a2 d3 ~ e3 d3 g3 ~ a3 g3 c4 ~ d4",
  AY: "[c3,f3,c4] [b2,e3,b3] [a2,d3] [c3,f3,c4]@3 [d3,g3,d4]@2, ~@6 [b2,e3,b3] ~@5 [c3,f3,c4] ~@3", // F5 E5 D5 F5 G5 E5 F5
  AZ: "[c3,g3,c4]!2 [b2,f#3,b3]@2 [c3,g3,c4]!2 [b2,f#3,b3]@2", // C5 B5 C5 B5
  BA: "e2 [f#2,c#3,f#3] ~ e2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2", // F#5
  BB: "e2 [f#2,c#3,f#3] [g2,d3,g3]@2 e2 [f#2,c#3,f#3] ~ e2", BC: "[f#2,c#3,f#3]@2 e2!4 [g2,d3,g3]@2",
  BD: "[f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [c3,g3]!2 [b2,f#3,b3]@2", BE: "[c3,g3]!2 [b2,f#3,b3]@2 e2 [f#2,c#3,f#3] ~ e2",
  BF: "[f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 e2 [f#2,c#3,f#3] [g2,d3,g3]@2", BG: "e2 [f#2,c#3,f#3] ~ e2 [f#2,c#3,f#3]@2 e2!2",
  BH: "e2!2 [g2,d3,g3]@2 e2 [f#2,c#3,f#3] ~ e2", BI: "[c3,g3]!2 [c3,g3,c4]@2 [c3,g3]!2 [c3,g3,c4]@2",
  BJ: "e3!5 d3!2 g2", BK: "e3 d3!2 e2 e3 c3!2 f2", BL: "e3 c3!2 f2!4 g2", BM: "g2 ~@3",
  BN: "e2@2 [e2,b2,e3,g#3,b3]!2 e2@2 e2@2 [e2,b2,e3,g#3,b3]@4 [e2,b2,e3,g#3,b3]@4", // E
  BO: "e2@2 e2@2 [f2,c3,f3,a3,c4]@4 e2@2 [e2,b2,e3,g#3,b3]!2 e2@2 e2@2", // F E
  BP: "[e2,b2,e3,g#3,b3]@2 [e2,b2,e3,g#3,b3]@2 [b2,f3]!2 [a2,e3,a3,c#4]@2", // E Bdim A
  BQ: "[b2,f3]@2 [b2,f3]@2 [a2,e3,a3,c#4]@4 e2@2 [e2,b2,e3,g#3,b3]!2 e2@2 e2@2", // Bdim A E
  BR: "[e2,b2,e3,g#3,b3]@2 [e2,b2,e3,g#3,b3]@2 e2!2 [f2,c3,f3,a3,c4]@2", // E F
  BS: "[b2,f3]!2 [a2,e3,a3,c#4]@2 [a2,e3] [b2,f3] [b2,f#3,a#3,d4,f4]@2", // Bdim A A5 Bdim Bm
  BT: "[b2,f3]!2 [a2,e3,a3,c#4]@2 [b2,f3]!2 [a2,e3,a3,c#4]@2", // Bdim A Bdim A
  BU: "[a2,e3]!2 [g2,d3,g3,b3]@2 [a2,e3]!2 [g2,d3,g3,b3]@2", // A5 G A5 G
  BV: "[g2,d3]!2 [f#2,c#3,f#3,a#3]@2 [g2,d3]!2 [f#2,c#3,f#3,a#3]@2", // G5 F# G5 F#
  BW: "[f#2,c3,f#3,a3,c4]@3 [f#2,c3]@3 [f#2,c3]@3 ~ [f#2,c3]@3 [f#2,c3]@3", BX: "[f#2,c3]@3 g#3@3 ~ a3@3 b3@6",
  BY: "~ a3@3 g#3 a3 g#3 ~ f#3@3 g3@3 g3@2", BZ: "[~@2 f#3@3 a3@3 f#3@3 ~ e3@3 f3@3 g3@7 f3@3 e3 ~ f3 e3]/2",
  CA: "d3@3 e3@3 ~ e3@3 d3@3 e3@3", CB: "~ d3@3 d3@3 e3@3 ~ e3@3 d3@2",
  CC: "[~ d3@3 ~ a3@3 [a#2,f3,a#3]@13 ~ f#2@6 g#3@3 ~]/2", CD: "a3@3 b3@7 a3@3 g#3 a3 g#3",
  CE: "f#3@3 ~ g3@3 g3@3 ~ f#3@3 a3@2", CF: "[~ f#3@3 ~ e3@3 f3@3 g3@7 f3@3 e3 ~ f3 e3 d#3@3 e3@3 ~]/2",
  CG: "e3@3 d#3@3 e3@3 ~ d#3@3 d#3@3", CH: "e3@3 ~ e3@3 d#3@3 e3@3 ~ a3@2",
  CI: "[~ [f3,a#3]@20 g#3@3 ~ a3@3 b3@7 a3@3 g#3 a3 g#3 f#3@3 ~ g3@3]/3", CJ: "g3@3 ~ f#3@3 a3@3 f#3@3 ~ e3@2",
  CK: "~ f3@3 g3@7 f3@3 e3 ~", CL: "[f3 e3 d#3@3 e3@3 e3@3 ~ d#3@3 e3@3 ~ d#3@3 d#3@3 e3@3 ~ e3@3]/2",
  CM: "[d#3@3 e3@3 ~ a3@3 [f3,a#3]@20 g#3@2]/2", CN: "~@2 a3@3 b3@7 a3@3 g#3", CO: "a3 g#3 f#3@3 ~ g3@3 g3@3 f#3@3 ~",
  CP: "[a3@3 f#3@3 ~ e3@3 f3@3 g3@7 f3@3 e3 f3 ~ e3 d#3@3 e3@2]/2",
  CQ: "[~ e3@3 ~ d#3@3 e3@3 ~ d#3@3 d#3@3 e3@3 ~ e3@3 d#3@3 e3@3 ~]/2",
  CR: "[a3@3 [f3,a#3]@20 g#3@3 ~ a3@3 b3@7 a3@3 g#3 a3 g#3 f#3@3 ~ g3@3 g3@3 f#3@3 ~ a3@3 f#3@3 ~]/4", // A#5
  CS: "e3@3 f3@3 g3@7 f3@3", CT: "e3 f3 ~ e3 d#3@3 e3@3 e3@3 ~ d#3@2",
  CU: "[~ e3@3 d#3@3 ~ d#3@3 e3@3 ~ e3@3 d#3@3 e3@3 ~ a3@3 [f3,a#3]@20]/3", // A#5
  CV: "[b2,e3,b3,e4]@7 [e2,a2]@3 [e2,a2]@3 ~ [b2,e3,b3,e4]@2", CW: "~ [e2,a2]@3 [a2,d3,a3,d4]@7 [e2,a2]@3 [e2,a2]@2",
  CX: "[~@2 [a2,d3,a3,d4]@3 [e2,a2]@3 [g2,c3,g3,c4]@7 [e2,a2]@3 ~ [e2,a2]@3 [g2,c3,g3,c4]@3 [e2,a2]@3 ~ [f#2,b2,f#3,b3]@6 [e2,a2]@3 ~ [e2,a2]@3 [f#2,b2,f#3,b3]@3 [e2,a2]@3]/3", // D5 A5 C5 A5 C5 A5 B5 A5 …
  CY: "[~ [f2,a#2,f3,a#3]@7 [e2,a2]@3 [e2,a2]@3 [f2,a#2,f3,a#3]@7 [f2,a#2,f3,a#3]@7 [e2,a2]@3 [e2,a2]@3 [f2,a#2,f3,a#3]@7 [f2,a#2,f3,a#3]@7]/3", // A#5 A5 A#5 A5 A#5
  CZ: "[e2,a2]@3 [e2,a2]@3 ~ [f2,a#2,f3,a#3]@7 ~@2", // A5 A#5
  DA: "[~@5 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 e2@2 e3@4 e3@2 d3@3, ~@23 d3 ~@8]/2", // A#5 A5 A#5 A5
  DB: "[~ b2@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 e2@2 e3@4 e3@2 d3@4 b2@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 e2@2 e3@4 e3@2 d3@4 b2@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 e2@2 e3@4 e3@2 d3@3, ~@15 d3 ~@31 d3 ~@23 d3 ~@8]/5", // A#5 A5 A#5 A5 A#5 A5 A#5 A5
  DC: "[~ b2@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 [g#2,d#3]@2 [g#2,d#3]@2 [f#2,c#3]@2 e2@2 e2@2 [e2,b2,e3,g#3,b3]@2 ~@2 [e2,b2,e3,g#3]@2 [e2,b2,e3,g#3,b3]@3]/2", // A#5 A5 G#5 F#5 E
  DD: "[~ [e2,b2,e3,g#3,b3]@4 [e2,b2]@2 [e2,b2]@2 [f2,c3,f3,a3]@4 e2@2 [e2,b2,e3,g#3,b3]@2 ~@2 [e2,b2,e3,g#3]@2 [e2,b2,e3,g#3,b3]@2 e2@2 [e2,b2,e3,g#3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 e2@2 [e2,b2,e3,g#3,b3]@2 ~@2 [e2,b2,e3,g#3]@2 [e2,b2,e3,g#3,b3]@4 [e2,b2,e3,g#3,b3]@4 [e2,b2]@2 [e2,b2]@2 [f2,c3,f3,a3]@4 e2@2 [e2,b2,e3,g#3,b3]@2 ~@2 [e2,b2,e3,g#3]@2 [e2,b2,e3,g#3,b3]@2 e2@2 [e2,b2,e3,g#3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a#2,f3,a#3]@4 e2@2 [e2,b2,e3,g#3,b3]@2 ~@2 [e2,b2,e3,g#3]@2 [e2,b2,e3,g#3,b3]@3]/7", // E E5 F E A#5 A5 A#5 A5 …
  DE: "[~ [e2,b2,e3,g#3,b3]@4 [e2,b2]@2 [e2,b2]@2 [f2,c3,f3,a3]@4 e2@2 [e2,b2,e3,g#3,b3]@2 ~@2 [e2,b2,e3,g#3]@2 [e2,b2,e3,g#3,b3]@2 e2@2 [e2,b2,e3,g#3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 e2@2 [e2,b2,e3,g#3,b3]@2 ~@2 [e2,b2,e3,g#3]@2 [e2,b2,e3,g#3,b3]@4 [e2,b2,e3,g#3,b3]@4 [e2,b2]@2 [e2,b2]@2 [f2,c3,f3,a3]@4 e2@2 [e2,b2,e3,g#3,b3]@2 ~@2 [e2,b2,e3,g#3]@2 [e2,b2,e3,g#3,b3]@2 e2@2 [e2,b2,e3,g#3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a#2,f3,a#3]@4 [e2,e3]@2 [e2,e3]@2 [e2,e3]@2 [e2,e3]@2 [e2,e3]@2 d3@2 d3@2 g2@2 e2@2 e3@2 e3@2 e3@2 e3@2 d3]/8", // E E5 F E A#5 A5 A#5 A5 …
  DF: "[~ d3@2 [g2,d3]@2 [f#2,c#3,f#3]@4 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [g2,d3,g3]@2 [f#2,c#3,f#3]@2 [e2,b2,e3]@2 [g2,d3,g3]@5, ~@27 [f#2,c#3,f#3] ~@4]/2", // G5 F#5 G5 F#5 E5 G5 F#5
  DG: "[~ [g2,d3,g3]@4 [f#2,c#3,f#3]@4 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [g2,d3,g3]@2 [f#2,c#3,f#3]@2 [e2,b2,e3]@2 [g2,d3,g3]@5, ~ [f#2,c#3,f#3] ~@25 [f#2,c#3,f#3] ~@4]/2", // G5 F#5 G5 F#5 E5 G5 F#5
  DH: "[~ [g2,d3,g3]@4 [f#2,c#3]@4 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 g3 ~ c4 d4 d3 ~ g3 a3 a2 ~ d3, ~ [f#2,c#3,f#3] ~@30]/2", // G5 F#5
  DI: "[e3 a2 ~ b2 c3 [f#2,c#3,f#3]@4 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [f#2,c#3]@2 [g2,d3,g3]@2 [f#2,c#3,f#3]@2 [e2,b2,e3]@2 [g2,d3,g3]@5, ~@27 [f#2,c#3,f#3] ~@4]/2", // F#5 G5 F#5 E5 G5 F#5
  DJ: "e3 a2 ~ b2 c3 g3 ~ c4 d4 d3 ~ g3 a3 a2 ~ d3",
  DK: "[e3 a2 ~ b2 c3 [e2,b2,e3,b3]@4 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [c3,f3,c4]@2 [b2,e3,b3]@2 [a2,d3]@2 [c3,f3,c4]@5, ~@27 [b2,e3,b3] ~@4]/2", // E5 F5 E5 D5 F5 E5
  DL: "[~ [c3,f3,c4]@4 [a2,e3,a3,c#4]@16 [b2,f#3,b3]@16 [c3,g3,c4]@10 a2@2 [f2,c3,f3]@4 [e2,b2,e3]@4 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [c3,f3,c4]@2 [b2,e3,b3]@2 [a2,d3]@2 [c3,f3,c4]@5, ~ [b2,e3,b3] ~@73 [b2,e3,b3] ~@4]/5", // F5 A B5 C5 F5 E5 F5 E5 …
  DM: "[~ [c3,f3,c4]@4 [a2,e3,a3,c#4]@16 [b2,f#3,b3]@11, ~ [b2,e3,b3] ~@30]/2", // F5 A B5 E5
  DN: "[~ [f2,c3,f3]@4 [e2,b2,e3]@4 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [e2,b2]@2 [c3,f3,c4]@2 [b2,e3,b3]@2 [a2,d3]@2 [c3,f3,c4]@5, ~@27 [b2,e3,b3] ~@4]/2", // F5 E5 F5 E5 D5 F5 E5
  DO: "[~ [c3,f3,c4]@4 [a2,e3,a3,c#4]@16 [b2,f#3,b3]@16 [g2,d3,g3,d4]@16 [c3,g3,c4]@16 [f2,c3,f3]@11, ~ [b2,e3,b3] ~@78]/5", // F5 A B5 G5 C5 F5 E5
  DP: "~ [f2,c3,f3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]", // F5 A#5 A5 A#5
  DQ: "[~ [a2,e3,a3]@4 [e2,b2,e3]@24 [e2,b2,e3]@2 [a2,e3,a3]@30 [a2,e3,a3]@2 [e2,b2,e3,b3]@22 [e2,b2,e3,b3]@2 [a2,e3,a3]@25]/7", // A5 E5 A5 E5 A5
  DR: "[~@5 [a2,e3,a3]@2 [e2,b2,e3]@22 [a2,e3,a3]@16 [b2,f#3,b3]@16 [g2,d3,g3]@16 [c3,g3,c4]@16 [f2,c3,f3,g3]@12 [f2,c3,f3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]]/7", // A5 E5 A5 B5 G5 C5 Fsus2 F5 …
  DS: "[~ [a2,e3,a3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 [e2,b2,e3]@24 [a2,e3,a3]@27]/4", // A5 A#5 A5 E5 A5
  DT: "[~@5 [e3,b3]@24 [a2,e3,a3]@32 [e2,b2,e3]@24 [d3,a3,d4]@24 [b2,f#3,b3]@19]/8", // E5 A5 E5 D5 B5
  DU: "[~@5 [a2,e3,a3]@16 [g2,d3,g3]@2 [f#2,c#3,f#3]@2 [e3,b3]@4 [e2,b2,e3]@24 [d3,a3,d4]@24 [b2,f#3,b3]@16 [c3,g3,c4]@2 [c3,g3,c4]@2 [b2,f#3,b3]@4 [a2,e3,a3]@16 [g2,d3,g3]@2 [f#2,c#3,f#3]@2 [e2,b2,e3]@4 ~@3]/8", // A5 G5 F#5 E5 D5 B5 C5 B5 …
  DV: "[~@13 [g2,d3,g3]@2 [f#2,c#3,f#3]@2 [e2,b2,e3]@4 ~@11]/2", // G5 F#5 E5
})).s("gm_distortion_guitar").gain(0.32)

// chords · acoustic guitar steel · "Guitar 2"
const acoustic_guitar_steel = note("<A@2 B@2 C@2 D@7 E@7 ~@3 F@2 G@2 H ~@392>".pickRestart({
  A: "[~ [e3,g#3,b3]@11 [e3,g#3,b3]@10 [d3,f#3,a3]@10]/2", // E D
  B: "[~ [d3,f#3,a3]@7 [d3,f#3,a3]@3 [c3,e3,g3]@11 [c3,e3,g3]@10]/2", // D C
  C: "[[b2,d3]@11 [b2,d3]@7 [b2,d3]@3 [a#2,d3]@11]/2", // Bm A#
  D: "[[a#2,d3]@10 [a#2,f3]@21 [e3,g#3,b3]@11 [e3,g#3,b3]@10 [d3,f#3,a3]@11 [d3,f#3,a3]@7 [d3,f#3,a3]@3 [c3,e3,g3]@11 [c3,e3,g3]@10 [b2,d3]@11 [b2,d3]@7]/7", // A# A#5 E D C Bm
  E: "[[b2,d3]@3 [a#2,d3]@11 [a#2,d3]@10 [a#2,f3]@21 [e3,g#3,b3]@11 [e3,g#3,b3]@10 [d3,f#3,a3]@11 [d3,f#3,a3]@7 [d3,f#3,a3]@3 [c3,e3,g3]@11 [c3,e3,g3]@11 ~@3]/7", // Bm A# A#5 E D C
  F: "[~@11 [e3,g#3,b3]@11 [e3,g#3,b3]@10]/2", G: "[[d3,f#3,a3]@11 [d3,f#3,a3]@7 [d3,f#3,a3]@3 [c3,e3,g3]@11]/2",
  H: "[c3,e3,g3]@11 ~@5", // C
})).s("gm_acoustic_guitar_steel").gain(0.32)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@15 A B@4 ~@3 C@2 D@2 E ~@3 F G@2 H I J K@3 ~@2 L M N O ~@25 P Q R S T P U ~@135 L M N O V W X Y Z AA X Y Z AB X AC
  AD AE AF AG AH ~@3 AI@2 AJ AK AL AM@2 AN AO AP AQ@2 AR AS AT AU AV AW ~@33 AX@2 AY AZ BA@2 BB@2 BC@2 BD BE BF@2 BG@2
  BH@2 BI BJ BK@3 ~@73 BL BM@5 BN@2 BO@8 BP BQ@2 BR@5 BS@3 BT@3 BS@3 BU@3
>`.pickRestart({
  A: "~@13 b3@3",
  B: "[~ e4@3 f#4@4 f#4@7 f#4@3 a3@4 d4@3 f#4@4 f#4@2 ~ f#4@7 g3@4 c4@3 d#4@4 e4@7 d#4@4 ~@3, ~@31 g4@2 ~@31]/4",
  C: "[~@11 b3@4 e4@3 f#4@4 f#4@7 f#4@3]/2", D: "[a3@4 d4@3 f#4@4 f#4@2 ~ f#4@7 g3@4 c4@3 d#4@4, ~@13 g4@2 ~@17]/2",
  E: "e4@7 d#4@4 ~@5", F: "~@9 b3@4 e4@3", G: "[g#4@7 ~@4 g#4 a4 g#4 a3@4 d#4@3 f#4@2 f#4@2 d#4@3 [f#4,a4]@4]/2",
  H: "[d#4,f#4]@3 g#3@4 c#4@3 e4@6", I: "~ c#4@4 e4 f#4 e4 b3@4 e4@4", J: "~@3 e4@3 b3@4 e4@3 d4@3",
  K: "[~ a#3@4 ~@3 d4@3 b3@4 c4@3 d4@21 ~@9]/3", L: "[a#2,f3] ~@3 [a2,e3,a3] ~@3",
  M: "[g2,d3,g3] ~@3 [f3,c4] [e3,b3] ~@2", N: "[f3,c4] [e3,b3] [d3,a3] [c3,g3]", O: "[e2,b2,e3] ~@3 [d3,a3] ~@3",
  P: "~ a4@2 a4 a4@2 g4@2", Q: "f#4!2 e4@2 ~ a4@2 a4", R: "a4@2 g4@2 f#4!2 d4@2", S: "f#4 g4 e4@2 ~ a4@2 a4",
  T: "a4@2 g4@2 f#4!2 e4@2", U: "f#4!2 d4@2 f4!2 e4@2", V: "[e2,e3,b3,e4]",
  W: "a2 b2 ~ c3 a2 d3 ~ e3 d3 g3 ~ a3 g3 c4 ~ d4", X: "b3@3 e4@3 g4@2", Y: "f#4@3 e4@3 d4@2",
  Z: "c4@4 b3@2 b3@4 b3@2 c4 b3 a3@2", AA: "b3@2 a3@2 g3@2 f3@2 f3 [f3,g3] e3@6", AB: "e3 f3 ~@6",
  AC: "f#4@6 e4@4 f#4 e4 d4@4", AD: "b3@3 e4@3 a4@2, ~@12 g4 ~@3", AE: "g4@6 f#4@4 g4 f#4 e4@4", AF: "b3@3 e4@3 b4@2",
  AG: "b4 a4 ~ g4 b4 a4 ~ g4 b4 a4 g4 f#4 a4 g4 ~ f#4", AH: "f#4 e4 ~ d4 f#4 e4 ~ d4 f#4 e4 d4 c4 e4 d4 c4@2",
  AI: "[[b4,e5]@2 ~ [a4,c#5]@2 f#4 a4 b4@2 f#5 c#5 a5@3 a5 f#5]/2", // E5 A
  AJ: "a5 g#5 a5 f#5 e5@2 b5 f#5 c#6 f#5 c#6 f#5 e5 b5 f#5 a5",
  AK: "a5 f#5 a5 f#5 e5@2 f#5@2 [e5,f#5]@4 f#4@2 [a4,c#5]@2", AL: "[b4,d#5]@2 [b4,d#5]@2 [b4,d#5]@2 [a4,c#5] d#5",
  AM: "[[a4,c#5]@2 f#4@2 [b4,d#5]@2 [a4,c#5]@4 f#4@2 [a4,c#5]@2 [b4,e5]@10 [b4,c#5]@2 c#5 e5 c#5@2 b4 c#5]/2", // A B A E5 Bsus2
  AN: "e5 c#5 a5 f#5 e5 c#5 b4 c#5 e5 c#5 b4@2 a4@2 f#4@2", AO: "a4 b4 c#5 e5!2 c#5 e5!2",
  AP: "~ c#5 e5@2 e5@3 c#5 e5@2 e5@4 c#5@2", AQ: "[a5@6 a5@6 [b4,d5] a4 b4@6 b4@2 b4@2 b4@2 b4@2 b4@2 b4@2]/2",
  AR: "b4@2 a4 e5@5", AS: "[b4,d5] e3!3 [a4,c#5] e3!3 [g4,a#4] e3!3 [f#4,a4] e3!3",
  AT: "[b4,d5] e3!3 [a4,c#5] e3!3 [g4,b4] e3!3 [f#4,a4] e3!3", AU: "b4 e3 a4 e3 g4 e3 f#4 e3 a4 f#3 g4 e3 f#4 e3 e4 e3",
  AV: "g4 e3 f#4 e3 e4 e3 d4 e3 d5 [b4,c#5] a4 [f#4,g4] d5 [b4,c#5] a4 [b3,g4]", AW: "[g4,b4]",
  AX: "[~@5 b3@3 ~ e4@3 g#4@3 e4@7 b3@3 a3@3 ~ d4@3]/2", AY: "d4@3 ~@2 e4@2 d4@7 g3@2, ~@2 d4 ~@5",
  AZ: "~ c4@3 e4@3 ~ c4@6 g3@2", BA: "[~@5 e4@3 [b3,e4]@3 ~ e4@3 [b3,e4]@7 d4@3 a#3@3 ~ a#3@3]/2",
  BB: "[d4@3 a#3@3 b3 c4@3 [d4,f4]@20 b3@2]/2", BC: "[~@2 e4@3 f#4@3 g#4@7 f#4@3 a3@3 ~ d4@3 f#4@3 f#4@2 g4@2]/2",
  BD: "f#4@7 g3@3 c4@3 d4@3", BE: "d4 e4@6 d#4@3 ~ b3@3 e4@2", BF: "[~ b3@7 b3@3 ~ e4@3 a#3@3 e4@3 ~ a#3@6 b3@3 b3]/2",
  BG: "[c4@3 d4@20 b3@3 ~ e4@3 f#4@2, ~@3 c4 ~@28]/2", BH: "[~ g#4@7 f#4@3 a3@3 ~ d4@3 f#4@3 f#4@2 g4@2 f#4@7]/2",
  BI: "g3@3 c4@3 d4@3 d4 e4@6", BJ: "d#4@3 ~ b3@3 e4@3 b3@6",
  BK: "[~ b3@3 e4@3 ~ a#3@3 e4@3 ~ a#3@6 b3@3 b3 c4@3 d4@20, ~@28 c4 ~@19]/3", BL: "~@7 a4@4 a4@2 a4@3",
  BM: "[~ g4@4 f#4@2 f#4@2 e4@4 ~@2 a4@4 a4@2 a4@4 g4@4 f#4@2 f#4@2 d4@4 f#4@2 g4@2 e4@4 ~@2 a4@4 a4@2 a4@4 g4@4 f#4@2 f#4@2 e4@4 ~@2 a4@4 a4@2 a4@3]/5",
  BN: "[~ g4@4 f#4@2 f#4@2 d4@4 f#4@2 g4@2 e4@4 ~@2 a4@4 a4@2 a4@3]/2",
  BO: "[~ g4@4 f#4@2 f#4@2 e4@4 e4@64 [f2,c3,f3,g3]@12 [f2,c3,f3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 [a#2,f3,a#3]@2 [a#2,f3,a#3]@2 [a2,e3,a3]@4 ~@2 b3@4 b3@2 a3@4 g3@4 f#3@2 f#3]/8", // Fsus2 F5 A#5 A5 A#5 A5
  BP: "~ e3@4 ~@2 b3@4 b3@2 a3@3", BQ: "[~ g3@4 f#3@2 e3@2 d3@4 e3@2 g3@2 e3@4 ~@2 b3@2 b3@2 b3@2 a3@3]/2",
  BR: "[~ g3@4 f#3@2 f#3@2 e3@4 ~@2 b3@2 b3@2 b3@2 a3@4 g3@4 f#3@2 e3@2 d3@4 e3@2 g3@2 e3@4 ~@2 a4@4 a4@2 a4@4 g4@4 f#4@2 f#4@2 e4@4 ~@2 a4@4 a4@2 a4@3]/5",
  BS: "[~ g4@4 f#4@2 f#4@2 d4@4 ~@2 a4@4 a4@2 a4@4 g4@4 f#4@2 f#4@2 e4@4 ~@2 a4@4 a4@2 a4@3]/3",
  BT: "[~ g4@4 f#4@2 f#4@2 e4@4 ~@2 a4@4 a4@2 a4@4 g4@4 f#4@2 f#4@2 e4@4 ~@2 a4@4 a4@2 a4@3]/3",
  BU: "[~ g4@4 f#4@2 f#4@2 e4@4 ~@2 a4@4 a4@6 g4@4 f#4@2 f#4@2 e4@4 ~@11]/3",
})).s("gm_overdriven_guitar").gain(0.5)

// other · electric guitar clean · "Guitar 4"
const electric_guitar_clean_2 = note(`<
  ~@15 A B@4 ~@3 C@2 D@2 E ~@3 F G@2 H I J K@3 ~@31 L M N O P L Q ~@217 R S@2 T U@3 V@2 W@2 X Y Z@3 ~@73 AA AB@5 AC@2
  AD@8 AE AF@2 AG@5 AH@3 AI@3 AH@3 AJ@3
>`.pickRestart({
  A: "~@13 g#3@3",
  B: "[~ a3@3 b3@4 e4@7 b3@3 f#3@4 a3@3 d#4@4 d#4@2 ~ d#4@7 e3@4 f3@3 g3@4 c#4@7 g3@4 ~@3, ~@31 e4@2 ~@31]/4",
  C: "[~@11 g#3@4 a3@3 b3@4 e4@7 b3@3]/2", D: "[f#3@4 a3@3 d#4@4 d#4@2 ~ d#4@7 e3@4 f3@3 g3@4, ~@13 e4@2 ~@17]/2",
  E: "c#4@7 g3@4 ~@5", F: "~@9 g#3@4 b3@3", G: "[e4@7 ~@4 e4 f#4 e4 f#3@4 a3@3 d#4@2 d#4@2 a3@3 d#4@4]/2",
  H: "a3@3 e3@4 g#3@3 c#4@6", I: "~ g#3@4 c#4 d#4 c#4 d3@4 e3@4",
  J: "~@3 [d3,e3]@3 e3@4 d3@2 ~ d3@3, ~@6 d3 ~@5 e3@2 ~@2", K: "[~ e3@4 ~@3 e3@3 e3@4 a3@3 [f3,a#3]@21 ~@9]/3",
  L: "~ f#4@2 f#4 f#4@2 e4@2", M: "c4!2 b3@2 ~ f#4@2 f#4", N: "f#4@2 e4@2 c4!2 a3@2", O: "c4 d4 b3@2 ~ f#4@2 f#4",
  P: "f#4@2 e4@2 c4!2 b3@2", Q: "c4!2 b3@2 c4!2 b3@2", R: "~@7 g#3",
  S: "[~@2 a3@3 b3@3 e4@7 b3@3 f#3@3 ~ a3@3 d#4@3 d#4@2 e4@2]/2", T: "d#4@7 e3@3 f3@3 g3@3",
  U: "[~ c4@6 g3@3 ~ d3@3 e3@7 [d3,e3]@3 d3@3 d3 e3@3 d3@3 e3@3 ~ e3@3 d3@3 e3@3 a3]/3", // Dsus2
  V: "[a#3@3 f3@20 g#3@3 ~ a3@3 b3@2]/2", W: "[~ e4@7 b3@3 f#3@3 ~ a3@3 d#4@3 d#4@2 e4@2 d#4@7]/2",
// … 247 more lines

More by Metallica