Strudelify
Jump in the Fire cover art

Kill 'Em All

Jump in the Fire

Metallica

KeyG majorTempo176 bpm
0:00/0:00
// Jump in the Fire — Metallica
// 176 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 209 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Guitar 1 (double), Guitar 1 (double).
setcpm(176/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 C A B D E A@2 F G A B D E H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 J K A@2 B C A B D E A@2 F G A B D E H@2
  I@2 H@2 I@2 H@2 I@2 H@2 J K A@2 B C A B D E A@2 F G A B D E L M N O L M N O L M N O L M N O L M N O L M N O L M N O L
  M N O H@2 I@2 H@2 I@2 H@2 I@2 H@2 J K A@2 B C A B D E A@2 F G A B D E A@2 B C A B D E A@2 F G A B D E H@2 I@2 H@2 I@2
  H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 ~
>`.pickRestart({
  A: "g2@2 a#2@2 c3@2 c#3@2 f3@2 d3@2 c#3@2 c3 a2", B: "g2 a#2 c3 c#3 f3 d3 c#3 c3",
  C: "~ [c3,g3]@4 [a#2,f3,a#3]@3, ~ c4@3 ~@4", D: "f3 d3 c#3 c3 f3 d3 c#3 c3", E: "~ [c3,g3,c4]@3 ~ [a#2,f3,a#3]@3",
  F: "[f3,g3]@2 f3@2 d3@2 f3@2 d3@2 c#3!2 c3@2 g2@2", G: "a#2 c3 c#3 d3 f3 g3@3",
  H: "[f2 g2!2 f2 g2 e2 [a#2,f3,a#3]@4 [f2,c3,f3,a3,c4]@2 [f2,c3,f3,a3,c4]@2 [f2,c3,f3,a3,c4]@2]/2", // A#5 F
  I: "[f2 g2!2 f2 g2 e2 [a#2,f3,a#3]@4 [d3,g3,c4]!3 [c#3,g#3,c#4]@3]/2", J: "f2 g2!2 f2 g2 e2 [c3,g3,c4]@2",
  K: "~@2 [c#3,g#3,c#4]!2", L: "[a#2,f3,a#3]!4 [a#2,f3,a#3]@2 [a#2,f3,a#3]!2",
  M: "[a#2,f3,a#3]!2 [a#2,f3,a#3]@2 [g#2,d#3,g#3]@2 [a#2,f3,a#3] e2", N: "[g2,d3,g3]!4 [g2,d3,g3]@2 [g2,d3,g3]!2",
  O: "[g2,d3,g3]!2 [g2,d3,g3]@2 [f2,c3,f3]@2 [g2,d3,g3]@2", // G5 F5 G5
})).s("gm_electric_guitar_clean").gain(0.5)

// other · electric guitar clean
const electric_guitar_clean_2 = note(`<
  ~@21 A@2 B ~@72 C D E F G H I J ~@12 K ~@51 L M N O P Q R S T U V W X Y Z AA AB@4 AC AD@3 AE AF AG AH AI AJ AK AL AM
  AN AO AP@4 ~@2
>`.pickRestart({
  A: "[~@14 c4@4 g4@2 f4 d4 c4 d4 f4 d4 c4 d4 f4 d4 c4 d4]/2", B: "f4 d4 c4@2 a#3@2 g3@2 a#3@2 f4@6",
  C: "[a#2,f3]@2 [a#2,f3]!2 [a#2,f3]@2 [a#2,f3]!10", D: "[a#2,f3]!12 [a#2,f3]@4",
  E: "[g2,d3]!4 [g2,d3,g3,b3]@2 [g2,d3,g3,b3]!2", // G5 G
  F: "[g2,d3,g3,b3]@2 [g2,d3,g3,b3]@2 [g2,d3,f3,b3]@4 [g2,d3]!4 [g2,d3]@2 [g2,d3]!2", // G G7 G5
  G: "[a#2,f3]@2 [a#2,f3] a#3 a#3@2 [a#2,f3]!2", H: "[a#2,f3] a#3 a#3@2 [a#2,f3] a#3 a#3@2",
  I: "[g2,d3,g3,b3]@2 [g2,d3,g3,b3]@2 [g2,d3,g3,b3]@2 [g2,d3,g3,b3]@2 [g2,d3,g3,b3]!4 [g2,d3,g3,b3]@2 [g2,d3,g3,b3]!2", // G
  J: "[g2,d3,g3,b3]@2 g2!10 g2@4", K: "f5 ~@3", L: "f3 g3 a#3!2 c4 d4 f4!2 g4 f4 d4 f4 g4 a#4 [a#4,c5]@2",
  M: "c5 a#4 g4 a#4 c5 d5 f5 d5 a#5 g5 f5 d5 c5 d5 f5 d5", N: "a#5 g5 f5 d5 c5 d5 f5 d5 a#5 g5 f5 d5 c5 d5!2 f5",
  O: "f5 d5 c5@2 a#4@2 g4@2 a#4@2 c5@4 d3@2", P: "f5@4 f5 d5 a#5@6 a#5@4", Q: "a#5@3 g5 f5@2 g5@2 f5@4 f5@2 g5@2",
  R: "a#5 g5 f5 g5 a#5 g5 f5 d5 f5 d5 c5@2 a#4@2 g4 a#4", S: "a#4 [c5,f5]@3 [c5,f5]@2 [c5,f5] d5",
  T: "f5@4 f5 d5 c5@2 a#4@2 g4@2 a#4@2 c5@2", U: "~ a#4 g4@2 a#4@2 c5@2 a#4@3 ~ g4@2 a#4@2",
  V: "c5@2 d5@2 f5 d5 c5@2 a#4@2 g4@2 a#4@2 c5@2", W: "~ a#4 g4@2 a#4@2 c5@2 a#4@4 g4@2 a#4@2",
  X: "c5@2 d5@2 f5 d5 f5 d5 c5 d5 f5 d5 f5 d5 c5 d5", Y: "f5 d5 f5 d5 c5 d5 f5 d5 f5 d5 c5 d5 f5 d5 c5 d5",
  Z: "f5 d5 c5 d5 f5 d5 f5 d5 c5 d5 f5 d5 [d5,f5] d5 c5 d5", AA: "f5 d5 [d5,f5] d5!2 [d5,f5]!2 d5 f5@4 e4@2 g5@2",
  AB: "a5 g5!3 a#5 g5!3 c6 g5!3 a#5 g5!3", AC: "a5 g5!3 a#5 g5!3 c6 g5!3 d6 g5!3",
  AD: "c6 g5!3 a#5 g5!3 a5 g5!3 a#5 g5!3", AE: "a#5 g5 f5 d5 a#5 g5 [g5,a#5] g5 f5 g5 a#5 g5 a#5 g5 f5 g5",
  AF: "a#5 g5 a#5 g5 f5 g5 a#5 g5 a#5 g5 f5 g5 a#5 g5 a#5@2", AG: "a#5@4 a#5@4 a#5 g5 f5@2 g5@2 a#5@2",
  AH: "~ g5 f5@2 g5@2 a#5@2 a#5@4 a#5@2 g5@2", AI: "a#5 g5 ~ f5 g5 f5 ~ d5 f5 d5 ~ c5 d5 c5 ~ a#4",
  AJ: "c5 a#4 ~ g4 a#4@2 g4@2 a#4@2 c5@2 c5@3 a#4", AK: "g4 a#4 c5 a#4 g4 a#4 c5 a#4", AL: "[c5,e5]@6 c5 a#4",
  AM: "c5 a#4 g4@2 f4@2 d4@2 c4@2 a#3@2 c4@2 a#3@2", AN: "c4@3 a#3 g3@2 a#3@4 ~@2 g3@2 a#3@2",
  AO: "c4@2 d4@2 f4@2 g4@2 a#4@2 c5@2 c5@3 a#4", AP: "[c5 a#4 g4 a#4@2 g4 a#4 c5@2 f5 c5 f5 c5 f5 [c5,f5]@16 ~@2]/4",
})).s("gm_electric_guitar_clean").gain(0.71)

// other · electric guitar clean
const electric_guitar_clean_3 = note("<~@104 A@2 B C@2 D E@3 F G H I J K L@2 ~@88>".pickRestart({
  A: "f4 d4 b3@2 c4 a#3 g3@2 f4 d4 b3@2 c4 a#3 g3@2", B: "d4 [d4,g4]@5 f4 d4",
  C: "[c4@2 d4@2 [d4,g4]@2 f4@6 d4@2 c4@4 g4@2 f4 d4 c4@2 c4 a#3 g3@2 a#3@3 a#4]/2", // G5
  D: "c5@2 d5 g5 f5 d5 c5 a#4 c5 a#4 g4@2 a#4@4",
  E: "[a2@2 [f3,a#3]@4 a2@2 [f4,a#4]@4 a2@2 [f3,a#3]@4 a2@2 [f4,a#4]@4 [f4,a#4]@4 [d3,g3,b3]@2 c4@4 d4@2 f4 [c4,d4] d4@2 f4 d4 c4 d4 f4 d4 c4 b3]/3", // A#5 G Csus2
  F: "f4 d4 c4@2 a#3@2 g3@2 a#3@2 c4@2 c4@3 a#3", G: "g3@2 a#3@2 c4 a#3 g3@2 f3@2 d3@2 c3@2 a#2@2",
  H: "c3@2 a#2 g2 a#2@2 [g2,g3] e3", I: "c5@2 [a#4,d5] g4 [a#4,d5]@2 [c5,d#5]@2",
  J: "[a#4,d5] g4 [a#4,d5]@2 [c5,d#5]@2 [a#4,d5] g4", K: "a#4@2 c5@4 g5@2 f5 d5 c5@2 a#4@2 g4@2",
  L: "[a#4 c5@2 a#4 f5@10 ~@2]/2",
})).s("gm_electric_guitar_clean").gain(0.71)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B C D A E F G A B C D A E B D H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 J K A B C D A E F G A B C D A E B D H@2
  I@2 H@2 I@2 H@2 I@2 H@2 J K A B C D A E F G A B C D A E B D L M N O L M N O L M N O L M N O L M N O L M N O L M N O L
  M N O H@2 I@2 H@2 I@2 H@2 I@2 H@2 J K A B C D A E F G A B C D A E B D A B C D A E F G A B C D A E B D H@2 I@2 H@2 I@2
  H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 ~
>`.pickRestart({
  A: "g1!4", B: "f1!4", C: "e1!4", D: "~ c2@3 ~ a#1@3", E: "a#1!4", F: "f2!2 a1 f2!2 a1 f2@2", G: "a1 c2@3 ~ a#1@3",
  H: "[f1 g1!2 f1 g1 f1 a#1@4 f1@2 f1@2 f1@2]/2", I: "[f1 g1!2 f1 g1 f1 c2@4 c2!3 c#2@3]/2", J: "f1 g1!2 f1 g1 f1 c2@2",
  K: "~@2 c#2!2", L: "a#1!4 a#1@2 a#1!2", M: "a#1!2 a#1@2 g#1@2 a#1@2", N: "g1!4 g1@2 g1!2", O: "g1!2 g1@2 f1@2 g1@2",
})).s("gm_electric_bass_finger").gain(0.5)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A@3 B A@11 ~ A@7 C A@7 D A@3 B A@3 ~ A@3 E A@3 F A@7 C A@7 D A@3 B A@3 ~ A@3 E A@2 B ~ A@39 E A@7 D A@3 B A@3 G
  A@3 H A@3 I A@3 J A@3 K A@3 E A@3 L A@16 M@24 ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~@2 x", C: "~@2 x!2 ~@4", D: "~ x!2 ~@5", E: "~ x ~@2", F: "~@6 x!3 ~@3 x ~ x ~",
  G: "~@2 x ~@3 x!2", H: "~@4 x ~ x!2 ~@8", I: "x ~ x!3 ~@3 x ~@2 x!2 ~@3", J: "~@4 x ~@2 x ~@8", K: "~@7 x ~@8",
  L: "x ~@3 x!5 ~ x ~ x ~@3", M: "x!4",
})).gain(0.5)

// drums · low tom
const low_tom = s("lt").struct("<~@23 [~@4 x!5 ~ x!2 ~@4] ~@7 [~@2 x!2 ~@4] ~@31 [~@2 x!2 ~@4] ~@145>").gain(0.5)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@23 A ~@7 B ~@15 C ~@15 B ~@15 D ~@7 D ~@39 E ~@31 F ~@49>".pickRestart({
  A: "~@6 x!2", B: "~@8 x ~ x!2 ~@4", C: "~@8 x!8", D: "~@4 x!8 ~@4", E: "~@4 x ~ x ~ x ~ x!2 ~@4", F: "~@4 x!4",
})).gain(0.5)

// drums · open hat
const open_hat = s("oh").struct("<[x!4]!8 ~@71 [x!2 ~@6] ~@63 [x!2] ~@65>").gain(0.5)

// drums · high tom
const high_tom = s("ht").struct("<~@31 A ~@31 A ~@15 B ~@7 B ~@121>".pickRestart({
  A: "~ x", B: "~@12 x!4",
})).gain(0.5)

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

stack(
  electric_guitar_clean, electric_guitar_clean_2, electric_guitar_clean_3, bass, kick, snare, low_tom, hihat, mid_tom,
  open_hat, high_tom, crash
)

More by Metallica