Strudelify
The God That Failed cover art

1991 · Metallica

The God That Failed

Metallica

KeyE minorTempo75 bpm
0:00/0:00
// The God That Failed — Metallica
// 75 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 2 "Gtr. 2" distortion guitar (copy of ch 1 "Gtr. 1" distortion guitar)
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(75/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 · distortion guitar · "Gtr. 1"
const distortion_guitar = note(`<
  ~@4 A B@3 C D E F G H I H I H I H J K J L C M N O P N O Q R@2 S T U V W I W X Y Z Y AA S AB AC AD AE AC AF AG AH AI AJ
  C D AH AJ C D AH AJ C D AH AJ AK G H I AL@2 N O Q AM@4 AN AO W I W AP AC AD AE AC AF AG AQ AR AS AT AU@2 AV AK AW@3
>`.pickRestart({
  A: "[g4,g5]!2 [e4,e5]@14", B: "[[g4,g5]!2 [e4,e5]@22 [b4,b5]!2 [e4,e5]@22]/3", C: "g4!2 e4@2 e3@4 b4!2 e4@2 e3@4",
  D: "g4!2 e4@2 b4@2 e4@2 g4!2 e4@2 a4@2 e4@2", E: "g4!2 e4@2 e3@4 d4!2 e4@2 e3@4",
  F: "g4!2 e4@2 b4@2 e4@2 [e3,b3] ~@5 a3 g3", G: "f#3 [e3,b3]!2 ~ [e3,b3]@4 [f3,c4] [e3,b3]!2 ~ [e3,b3]@4",
  H: "[f3,c4] [e3,b3]!2 ~ [g3,d4]@2 [e3,b3]@2 [f3,c4] [e3,b3]!2 ~ [e3,b3]@4", // F5 E5 G5 E5 F5 E5
  I: "[f3,c4] [e3,b3]!2 ~ [e3,b3]@4 [f3,c4] [e3,b3]!2 ~ [e3,b3]@4", // F5 E5 F5 E5
  J: "[f3,c4] e3 [f3,c4] ~ [f3,c4]@4 [f3,c4] e3 [f3,c4] ~ [f3,c4]@4", // F5
  K: "[f3,c4] e3 [f3,c4]@2 [g3,d4] e3 [g3,d4]@2 e3 [f3,c4]!2 ~ [f3,c4]@4", // F5 G5 F5
  L: "[f3,c4] e3 [f3,c4]@2 [g3,d4] e3 [g3,d4]@2 [g3,d4] e3!2 ~ e3@2 f3 b3", // F5 G5
  M: "g4!2 e4@2 b4@2 e4@2 g4!2 e4@2 a4@2 g3 b3", N: "g4 e4@2 e4 b4 e4@2 e4 g4 e4@2 e4 b4 e4@2 e3",
  O: "[e3,e4,b4]@4 [g3,d4]@4 d4 b3@2 b3 f#4 b3@2 b3", P: "d4 b3@2 b3 f#4 b3@3 [b3,f#4]@4 [a3,e4]@4",
  Q: "d4 b3@2 b3 f#4 b3@2 b3 d#4 b3@2 b3 f#4 b3@2 b3", R: "[d#4 b3@2 b3 f#4 b3@2 b3 [g3,d4]@14 g3 b3 g4!2 e4@2 e3@4]/2",
  S: "b4!2 e4@2 e3@4 g4!2 e4@2 b4@2 e4@2", T: "g4!2 e4@2 a4@2 e4@2 g4!2 e4@2 e3@4",
  U: "d4!2 e4@2 e3@4 g4!2 e4@2 b4@2 e4@2", V: "[e3,b3] ~@5 a3 g3 [f3,c4] [e3,b3]!2 ~ [e3,b3]@4",
  W: "[f3,c4] [e3,b3]!2 ~ [e3,b3]@4 [f3,c4] [e3,b3]!2 ~ [g3,d4]@2 [e3,b3]@2", // F5 E5 F5 E5 G5 E5
  X: "[f3,c4] [e3,b3]!2 ~ [e3,b3]@4 [f3,c4] e3 [f3,c4] ~ [f3,c4]@4", // F5 E5 F5
  Y: "[f3,c4] e3 [f3,c4] ~ [f3,c4]@4 [f3,c4] e3 [f3,c4]@2 [g3,d4] e3 [g3,d4]@2", // F5 G5
  Z: "e3 [f3,c4]!2 ~ [f3,c4]@4 [f3,c4] e3 [f3,c4] ~ [f3,c4]@4", AA: "[g3,d4] e3!2 ~ e3@2 f3 b3 g4!2 e4@2 e3@4",
  AB: "g4!2 e4@2 a4@2 g3 b3 g4 e4@2 e4 b4 e4@2 e4", AC: "g4 e4@2 e4 b4 e4@2 e3 [e3,e4,b4]@4 [g3,d4]@4",
  AD: "d4 b3@2 b3 f#4 b3@2 b3 d4 b3@2 b3 f#4 b3@3", AE: "[b3,f#4]@4 [a3,e4]@4 g4 e4@2 e4 b4 e4@2 e4",
  AF: "d4 b3@2 b3 f#4 b3@2 b3 d4 b3@2 b3 f#4 b3@2 b3", AG: "d#4 b3@2 b3 f#4 b3@2 b3 d#4 b3@2 b3 f#4 b3@2 b3",
  AH: "[g3,d4]", AI: "[e3,b3]", AJ: "[b3,f#4]", AK: "f#4 g4 [e4,f#4] d4 c#4 b3 a3 g3 f#4 g4 [e4,f#4] d4 c#4 b3 a3 g3",
  AL: "[[f3,c4] [e3,b3]!2 ~ [g3,d4]@2 [e3,b3]@2 [e3,b3]@16 g4 e4!3 g4 e4!3]/2", // F5 E5 G5 E5
  AM: "[d#4 b3@2 b3 f#4 b3@2 b3 [g3,d4]@16 [g4,g5]!2 [e4,e5]@14 [g4,g5]!2 [e4,e5]@22]/4", // G5 G E G E
  AN: "[b4,b5]!2 [e4,e5]@12 [e4,e5]@2", AO: "[e3,b3,e4] ~@7 [f3,c4] [e3,b3]!2 ~ [e3,b3]@4",
  AP: "[f3,c4] [e3,b3]!2 ~ [e3,b3]@4 g4 e4@2 e4 b4 e4@2 e4", AQ: "[g3,d4]@14 g3 d4",
  AR: "[g4,g5]!2 [e4,e5]@2 b3 e3@2 e3 g3 e3@2 e3!2 ~ e3!2", AS: "g3 e3@2 e3 b3 e3@2 e3 g3 e3@2 e3!2 ~ e3!2",
  AT: "d4 b3@2 b3 f#4 b3@2 b3 d4 b3@2 b3!2 ~ b3!2", AU: "g4 e4@2 e4 b4 e4@2 e4 g4 e4@2 e4 b4 e4@2 e4",
  AV: "g4 e4!3 b4 e4!3 g4 e4!3 b4 e4!3",
  AW: "[f#4 g4 [e4,f#4] d4 c#4 b3 a3 g3 ~@5 e5@32 ~@3, ~@2 e3 b4@8 ~, ~@9 b3@32 ~@7, ~@5 e4@16 ~@3, ~@11 g4@32 ~@5]/3", // Esus2
})).s("gm_distortion_guitar").gain(0.4)

// chords · distortion guitar · "Gtr. 3"
const distortion_guitar_2 = note("<~@55 A B C D E F G H I J ~@37 K ~@2>".pickRestart({
  A: "e4", B: "e4@8 d#4@5 e5 g5 e5", C: "a5@4 b5 a5 g5 f#5 g5 f#5 e5@4 f#5 [f#5,g5]", D: "d5@4 d5 b4 d5!2 e5@4 e5@4",
  E: "e5!2 [e5,f#5]!2 [e5,f#5,g5] [e5,g5] [e5,g5,a5] [e5,a5] [e5,a5,b5] [e5,b5] [e5,a5,b5] [e5,a5] [e5,g5,a5] [e5,g5] [e5,f#5,g5] [e5,f#5]", // Esus2 Em A7 A5 Esus4 E5 Esus4 A5 …
  F: "[e5,f#5,g5] [e5,g5] [e5,f#5,g5] [e5,f#5]!2 e5 [d#5,e5]!3 e5 [e5,f#5]!2 [e5,f#5,g5] [e5,g5] [e5,g5,a5] [e5,a5]", // Em Esus2 Emaj7 Esus2 Em A7 A5
  G: "[e5,a5,b5,e6] [b5,e6]!3 [b5,e6]@2 [c5,f5]@2 [b5,e6]!4 [b5,e6]@2 ~ a4", // Esus4 E5 F5 E5
  H: "e5 g5 a5 a5@2 [e5,g5] a5 g5 a5 g5 e5 g5 [a5,c6]@4", // Em Am
  I: "[e4,e5] [f#4,f#5] [g4,g5] [a4,a5] [b4,b5]@2 [a4,a5] [g4,g5] [b4,b5] ~ [a4,a5] ~ [g4,g5] [f#4,f#5] [e4,e5]@2", // E F# G A B A G B …
  J: "e5@2 d5 c5 b4 c5 d5@2 ~@8", K: "d5 e5 [c5,d5] b4 [a4,e5] [a4,d5] [g4,b4] [f#4,a4] ~@8",
})).s("gm_distortion_guitar").gain(0.4)

// other · distortion guitar · "8va Guitar"
const distortion_guitar_3 = note("<~@64 A B C D E ~ F G H I J@2 ~@29>".pickRestart({
  A: "~@6 f#7@2 c#6 [c#6,d6] [b5,c#6] [d6,e6] f#6 [f#6,g6] [e6,f#6] [g6,a6]", // Dmaj7 Bsus2 Dsus2 Gmaj7 Esus2 Gsus2
  B: "b6@2 b6!2 b6@3 b6 b6@2 b6!2 b6@2 b6!2",
  C: "b6 [a6,b6] [g6,b6]@2 b6 [g6,a6] b6@2 b6 [g6,a6] [e6,g6] [a6,b6] [g6,a6]!2 [e6,g6] [a6,b6]", // Asus2 G Gsus2 Em Asus2 Gsus2 Em Asus2
  D: "b6 [g6,a6] e6@2 b6 [g6,a6] e6@2 b6 [g6,a6] e6@2 b6 [g6,a6] e6 g6", // Gsus2
  E: "b6 [g6,a6] [f#6,a6] [f#6,g6] [e6,g6] [e6,f#6] [d6,f#6] [d6,e6] [c#6,e6] [c#6,d6] [b5,d6] [b5,c#6] [g5,b5] g5@3", // Gsus2 F#m Gmaj7 Em Esus2 D Dsus2 C#m …
  F: "~@4 d7@3 d7@7 b6 d7", G: "[b6,d7] [a6,b6] b6 a6@2 b6 a6 b6 a6 b6 a6 b6 a6 b6 a6 b6",
  H: "d7 [a6,b6] [b6,d7]!2 [a6,b6] [b6,d7]!2 [a6,b6] [b6,d7] [a6,b6] [b6,d7]!2 b6 [a6,b6] a6@2", // Asus2 Bm Asus2 Bm Asus2 Bm Asus2 Bm …
  I: "[f#6,a6]@2 a6 [e6,f#6] d6 b5 d6 e6@2 e6 ~ e6!3 ~ e6", J: "[e6!2 ~ e6 e6@4 d6 b5@23]/2",
})).s("gm_distortion_guitar").gain(0.4)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B C B A B C B A B C D E F G F G F G F H I H I A B J K L J K M N@2 O P Q R S G S T U V U W O X Y Z AA Y Z AB AC AD AE
  A B AC AE A B AC AE A B AC AE ~ E F G F ~ J K M N@2 O P Q AF S G S AG Y Z AA Y Z AB AC AH AI AJ J@2 AK ~@4
>`.pickRestart({
  A: "g1!2 e1@4 e1@2 b1!2 e1@4 e1@2", B: "g1!2 e1@2 b1@2 e1@2 g1!2 e1@2 a1@2 e1@2", C: "g1!2 e1@4 e1@2 d2!2 e2@4 e1@2",
  D: "g1!2 e1@2 b1@2 e1@2 ~@8", E: "f#1 e1 e1@2 e1@2 e1@2 f1 e1 e1@2 e1@2 e1@2",
  F: "f1 e1 e1@2 g1@2 e1@2 f1 e1 e1@2 e1@2 e1@2", G: "f1 e1 e1@2 e1@2 e1@2 f1 e1 e1@2 e1@2 e1@2",
  H: "f1 e1 f1@2 f1@4 f1 e1 f1@2 f1@4", I: "f1 e1 f1@2 g1 e1 g1@2 e1 f1 f1@2 f1@4",
  J: "g1 e1@2 e1 b1 e1@2 e1 g1 e1@2 e1 b1 e1@2 e1", K: "e1@4 g1@4 d2 b1@2 b1 f#2 b1@2 b1",
  L: "d2 b1@2 b1 f#2 b1@2 b1 b1@4 a1@4", M: "d2 b1@2 b1 f#2 b1@2 b1 d#2 b1@2 b1 f#2 b1@2 b1",
  N: "[d#2 b1@2 b1 f#2 b1@2 b1 g1@16 g1!2 e1@4 e1@2]/2", O: "b1!2 e1@4 e1@2 g1!2 e1@2 b1@2 e1@2",
  P: "g1!2 e1@2 a1@2 e1@2 g1!2 e1@4 e1@2", Q: "d2!2 e2@4 e1@2 g1!2 e1@2 b1@2 e1@2", R: "~@8 f1 e1 e1@2 e1@2 e1@2",
  S: "f1 e1 e1@2 e1@2 e1@2 f1 e1 e1@2 g1@2 e1@2", T: "f1 e1 e1@2 e1@2 e1@2 f1 e1 f1@2 f1@4",
  U: "f1 e1 f1@2 f1@4 f1 e1 f1@2 g1 e1 g1@2", V: "e1 f1 f1@2 f1@4 f1 e1 f1@2 f1@4", W: "e1 f1 f1@2 f1@4 g1!2 e1@4 e1@2",
  X: "g1!2 e1@2 a1@2 e1@2 g1 e1@2 e1 b1 e1@2 e1", Y: "g1 e1@2 e1 b1 e1@2 e1 e1@4 g1@4",
  Z: "d2 b1@2 b1 f#2 b1@2 b1 d2 b1@2 b1 f#2 b1@2 b1", AA: "b1@4 a1@4 g1 e1@2 e1 b1 e1@2 e1",
  AB: "d#2 b1@2 b1 f#2 b1@2 b1 d#2 b1@2 b1 f#2 b1@2 b1", AC: "g1", AD: "e1", AE: "b1",
  AF: "e1 ~@7 f1 e1 e1@2 e1@2 e1@2", AG: "f1 e1 e1@2 e1@2 e1@2 g1 e1@2 e1 b1 e1@2 e1",
  AH: "g1!2 e1@2 b1 e1@2 e1 g1 e1@2 e1 e1@2 e1!2", AI: "g1 e1@2 e1 b1 e1@2 e1 g1 e1@2 e1 e1@2 e1!2",
  AJ: "d2 b1@2 b1 f#2 b1@2 b1 d2 b1@2 b1 b1@2 b1!2", AK: "g1 e1!3 b1 e1!3 g1 e1!3 b1 e1!3",
})).s("gm_electric_bass_finger").gain(0.4)

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

// drums · snare
const snare = s("sd").struct(`<
  A@7 B C A@2 D A@3 E A@7 F C A G H I G H G J K A@3 L A@6 M N A M I G H I G@2 O A P A@2 Q@2 A@2 Q@2 A@2 Q@2 R A@3 S ~ G
  H G J T A@3 U A@3 M I G H I G@2 O V ~ W G@3 X Y ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@2 x!2 ~ x ~ x ~ x ~", C: "x!2 ~@10 x ~@3", D: "~@2 x ~ x ~@2 x",
  E: "~@4 x ~@2 x!2 ~@3 x!2 ~@2", F: "x ~@3 x ~@3 x!2 ~@2 x!2 ~@2", G: "x!4", H: "~@2 x!2", I: "x!2 ~@2", J: "x!2 ~ x",
  K: "~ x!2 ~ x!2 ~@2 x!2 ~@6", L: "x ~@2 x ~@2 x ~", M: "~ x!3", N: "x!2 ~@2 x!2 ~@2 x!2 ~@6",
  O: "~@4 x ~@4 x!2 ~ x!2 ~@2", P: "~@4 x ~@3 x ~ x!3 ~@3", Q: "~@4 x!2 ~ x ~@4 x ~@3", R: "x!3 ~ x ~@3 x!3 ~ x ~ x ~",
  S: "~ x ~@2", T: "x!5 ~@7 x ~@3", U: "x ~@2 x", V: "~ x ~@6", W: "x", X: "x!2", Y: "x!3 ~@13",
})).gain(0.64)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@8 A ~@2 B ~@3 C ~@7 D A ~@2 E F ~ E ~@2 G ~@3 H ~@6 I J ~@2 F ~ E F ~@4 I ~@12 K ~@4 L ~ E ~@2 M ~@8 F ~ E F ~@10 N
  ~@2
>`.pickRestart({
  A: "~ x ~@6", B: "~@15 x", C: "~@5 x ~ x", D: "~ x ~ x ~@2 x!2 ~@3 x ~@2 x!2", E: "x ~ x!3 ~ x!2 ~@8",
  F: "~@8 x ~ x!3 ~ x!2", G: "~@5 x ~@2", H: "~@7 x ~@8", I: "~@9 x ~ x ~@2 x!2", J: "~@3 x ~@2 x!2 ~@2 x ~@5",
  K: "~@3 x ~@3 x ~@3 x ~ x ~ x", L: "~@8 x!2 ~ x!3 ~ x", M: "~@6 x!2 ~@8", N: "~@2 x!2 ~@2 x!2 ~@8",
})).gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@11 A ~@3 B ~@7 C ~@9 D ~@3 E ~@7 F ~@8 G ~ H ~@12 I ~@9 J ~@14 G ~@7 K ~@2
>`.pickRestart({
  A: "~@15 x", B: "~@13 x ~@2", C: "~@5 x ~@2", D: "~@3 x ~@4", E: "~@7 x ~@8", F: "~ x ~@6", G: "~@7 x",
  H: "~@9 x!2 ~@2 x ~@2", I: "~@2 x ~@2 x!2 ~@3 x ~@5", J: "~@5 x!2 ~@9", K: "~@4 x!2 ~@10",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct(`<
  A B@6 C D E@2 F B G A C A B A B A B A ~ D E ~@6 H I E@3 H B J B J B J C I E F ~@6 K A C E@2 L@2 E@2 L@2 E@2 L@2 ~ E@3
  M N ~@3 H O B@3 H B J B C ~@6 K ~@5 B ~@4
>`.pickRestart({
  A: "~ x!7", B: "x!8", C: "x!4 ~@4", D: "~@3 x!3 ~ x", E: "x!2 ~ x!3 ~ x", F: "x!2 ~ x ~@4", G: "x!6 ~ x",
  H: "~@5 x!3", I: "~@7 x", J: "x!4 ~ x!3", K: "~ x!3 ~@4", L: "x!2 ~@2 x!4", M: "x!2 ~ x ~@2 x ~", N: "x!2 ~@2",
  O: "~@4 x!4",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  A ~@4 B ~@2 C@3 D ~ B A ~ A ~ A ~ A ~ A ~ C@2 ~@5 E@2 B C@3 F ~ E ~ E ~ E ~ B C G ~@5 A@3 ~ C@2 ~@2 C@2 ~@2 C@2 ~@3
  C@3 D ~ A ~ E@2 ~@4 E ~ E ~@7 A@2 H ~ A ~@3 F ~@3
>`.pickRestart({
  A: "x", B: "~@3 x", C: "~ x ~ x", D: "~ x!2 ~", E: "~ x", F: "x!2", G: "~ x ~@2", H: "~ x ~@6",
})).gain(0.64)

stack(distortion_guitar, distortion_guitar_2, distortion_guitar_3, bass, kick, snare, low_tom, mid_tom, open_hat, crash)

More by Metallica