0:00/0:00
// 2 X 4 — Metallica
// 112 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 3, 4/4 at bar 3, 2/4 at bar 35, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 158 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(112/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(`<
~@2 A@8 B C D C D E@8 F D G H E@8 I@6 J@4 K@7 L@2 M N M N O@6 P Q@6 R@8 S@5 C D C D C D C D T U V W X Y Z AA Z Y Z AA
Z Y Z AA Z Y Z AA Z AB AC AD AC AB AC AD AC AE AF AG AF AE AF AG AF AH ~ AI@8 AJ@4 AK@7 AL@5 W AM ~
>`.pickRestart({
A: "[~@12 e2@4 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 e2@6 e2@2 g2@2 a2@2 e2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 e2@6 e2@2 g2@2 a2@2 e2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 e2@6 e2@2 g2@2 a2@2 e2@5 e2@3 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 e2@2]/8",
B: "~@2 e2 g2 a2 e2@3 e2 e3@3", C: "e2@2 e2 g2@2 e2 a2 a#2 e3@3 e2", D: "a2 a#2 e3@3 e2 a2 a#2 e3 g2@2 g2",
E: "[e2@2 e2 g2@2 e2 a2@2 e2 ~@2 a2@3 g2@3 a2@3 g2@3 e2@3 e2 g2@2 e2 a2@2 e2 ~@2 a2@3 g2@3 a2@3 g2@3 e2@3 e2 g2@2 e2 a2@2 e2 ~@2 a2@3 g2@3 a2@3 g2@3 e2@3 e2 g2@2 e2 a2@2 e2 ~@2 a2@3 g2@3 a2@3 g2@3 e2, ~@12 g2 ~@47 g2 ~@47 g2 ~@47 g2 ~@35]/8",
F: "~@2 e2 e2@2 e2 a2 a#2 e3@3 e2", G: "e2@2 e2 g2@2 e2 a2 a#2 e3@2 e3 e2", H: "a2 a#2 e3@2 e3 e2 a2 a#2 e3 g2@2 g2",
I: "[~@2 e2 g2 a2 a#2@9 e2 g2 a2 e2@10 d3 e3 d3@9 e2 d3 e3 b2@9 e2 d3 e3 d3@9 e2 d3 e3 a#2@7]/6",
J: "[~@2 e2 [a#2,f3]@2 [a#2,f3]@10 [e2,b2]@2 [e2,b2]@10 [a#2,f3]@2 [a#2,f3]@10 [e2,b2]@2 [e2,b2]@7]/4", // A#5 E5 A#5 E5
K: "[e3@6 [e2,b2]@4 [e2,b2]@20 [g2,d3,g3]@4 [g2,d3,g3]@20 [a2,e3,a3]@4 [a2,e3,a3]@20 [g2,d3,g3]@3 e2@3 [g2,d3,g3]@16 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 e2@6 e2@2 g2@2 a2@2 e2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 a#2@2]/7", // E5 G5 A5 G5
L: "[~@2 e2 g2 a2 e2@3 e2 g2 a2 e2@4 e3@3 e2@2 e2 g2@2 e2]/2", M: "a2 a#2 e3@3 e2 a2 a#2 e3@3 e2",
N: "a2 a#2 e3 g2@2 g2 e2@2 e2 g2@2 e2", O: "[a2@2 e2 ~@2 a2@3 g2@3 a2@3 g2@3 e2@3 e2 g2@2 e2, g2 ~@47]/2",
P: "a2@2 e2 ~@2 a2@3 g2@3 a2, g2 ~@23",
Q: "[~@2 g2@3 e2@3 e2 g2 a2 a#2@9 e2 g2 a2 e2@10 d3 e3 d3@9 e2 d3 e3 b2@9 e2 d3 e3 d3@9 e2 d3 e3 a#2]/6",
R: "[~@16 e2@2 [a#2,f3]@4 [a#2,f3]@20 [e2,b2]@4 [e2,b2]@20 [a#2,f3]@4 [a#2,f3]@20 [e2,b2]@4 [e2,b2]@14 e3@6 [e2,b2]@4 [e2,b2]@20 [g2,d3,g3]@4 [g2,d3,g3]@20 [a2,e3,a3]@4 [a2,e3,a3]@20 [g2,d3,g3]@3 e2@3]/8", // A#5 E5 A#5 E5 G5 A5 G5
S: "[[g2,d3,g3]@8 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@3 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@4 e3@3]/5", // G5
T: "[e2,b2]@9 [e2,b2]@2 [e2,b2], c#5", U: "[g2,d3,g3]@9 [g2,d3,g3]@2 [g2,d3,g3]", V: "[a2,e3,a3]@3 [a2,e3,a3]",
W: "[f2,c3,f3]!12", X: "[f2,c3,f3]!6 [f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]@2", Y: "e2 e4", Z: "g2 b3", AA: "a2 e4",
AB: "[e2,b2]", AC: "[g2,d3,g3]", AD: "[a2,e3,a3]", AE: "[e2,b2]!4", AF: "[g2,d3,g3]!4", AG: "[a2,e3,a3]!4",
AH: "[g2,d3,g3] ~@3", // G5
AI: "[e2@2 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@3 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@3 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@3 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2]/8",
AJ: "[~@2 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@3 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2]/4",
AK: "[e3@3 [e2,b2]@2 [e2,b2]@10 [g2,d3,g3]@2 [g2,d3,g3]@10 [a2,e3,a3]@2 [a2,e3,a3]@10 [g2,d3,g3]@2 e2 [g2,d3,g3]@8 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@3 e2 g2 a2 a#2@3 e2 g2 a2 a#2]/7", // E5 G5 A5 G5
AL: "[~@2 e2 g2 a2 e2@3 e2 g2 a2 e2@4 e3@3 [e2,b2]@9 [e2,b2]@2 [e2,b2] [g2,d3,g3]@9 [g2,d3,g3]@2 [g2,d3,g3] [a2,e3,a3]@9 [a2,e3,a3]@3 [f2,c3,f3]!6]/5", // E5 G5 A5 F5
AM: "[f2,c3,f3]!3 [e2,b2]@3", // F5 E5
})).s("gm_distortion_guitar").gain(0.4)
// other · distortion guitar
const distortion_guitar_2 = note(`<
~@2 A@8 B C D C D E@8 F D G H E@8 I@8 J@8 K@3 L M L M N@6 O@8 P@7 Q@7 R@2 S@2 T@2 U ~@20 V W X W V W X W Y Z AA Z Y Z
AA Z AB ~ AC@8 AD@8 AE@5 ~@2 AF AG AH@2
>`.pickRestart({
A: "[~@12 e2@4 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 e2@6 e2@2 g2@2 a2@2 e2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 e2@6 e2@2 g2@2 a2@2 e2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 e2@6 e2@2 g2@2 a2@2 e2@5 e2@3 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 a#2@6 e2@2 g2@2 a2@2 e2@2]/8",
B: "~@2 e2 g2 a2 e2@3 e2 e3@3", C: "e2@2 e2 g2@2 e2 a2 a#2 e3@3 e2", D: "a2 a#2 e3@3 e2 a2 a#2 e3 g2@2 g2",
E: "[e2@2 e2 g2@2 e2 a2@2 e2 ~@2 a2@3 g2@3 a2@3 g2@3 e2@3 e2 g2@2 e2 a2@2 e2 ~@2 a2@3 g2@3 a2@3 g2@3 e2@3 e2 g2@2 e2 a2@2 e2 ~@2 a2@3 g2@3 a2@3 g2@3 e2@3 e2 g2@2 e2 a2@2 e2 ~@2 a2@3 g2@3 a2@3 g2@3 e2, ~@12 g2 ~@47 g2 ~@47 g2 ~@47 g2 ~@35]/8",
F: "~@2 e2 e2@2 e2 a2 a#2 e3@3 e2", G: "e2@2 e2 g2@2 e2 a2 a#2 e3@2 e3 e2", H: "a2 a#2 e3@2 e3 e2 a2 a#2 e3 g2@2 g2",
I: "[~@2 e2 g2 a2 a#2@9 e2 g2 a2 e2@10 g2 a2 a#2@9 e2 g2 a2 e2@9 e2 g2 a2 a#2@9 e2 g2 a2 e2@9 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2]/8",
J: "[~@2 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@4 [e2,b2]@2 [e2,b2]@10 [g2,d3,g3]@2 [g2,d3,g3]@10 [a2,e3,a3]@2 [a2,e3,a3]@10 [g2,d3,g3]@2 e2 [g2,d3,g3]@8 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2]/8", // E5 G5 A5 G5
K: "[~@2 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@4 e3@3 e2@2 e2 g2@2 e2]/3",
L: "a2 a#2 e3@3 e2 a2 a#2 e3@3 e2", M: "a2 a#2 e3 g2@2 g2 e2@2 e2 g2@2 e2",
N: "[a2@2 e2 ~@2 a2@3 g2@3 a2@3 g2@3 e2@3 e2 g2@2 e2, g2 ~@47]/2",
O: "[a2@2 e2 ~@2 a2@3 g2@3 a2@3 g2@3 e2@3 e2 g2 a2 a#2@9 e2 g2 a2 e2@10 g2 a2 a#2@9 e2 g2 a2 e2@9 e2 g2 a2 a#2@9 e2 g2 a2 e2@9 e2 g2 a2 a#2, g2 ~@191]/8",
P: "[~@2 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@3 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@4 [e2,b2]@2 [e2,b2]@10 [g2,d3,g3]@2 [g2,d3,g3]@10 [a2,e3,a3]@2 [a2,e3,a3]@10 [g2,d3,g3]@2 e2]/7", // E5 G5 A5 G5
Q: "[[g2,d3,g3]@8 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@3 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@4 d3@2 e3@3 e3 d3@2 e3@3 e3 d3@2 e3@3 e3 d3@2 e3@3 g3 a3@2 g3]/7", // G5
R: "[e3@2 e3 d3@2 e3@3 e3 d3@2 e3@3 e3 d3@2 e3@3 g3 a3@2 g3]/2",
S: "[a3@2 ~ d4@2 e4@3 e4 d4@2 e4@3 e4 d4@2 e4@3 g4 a4@2 g4]/2",
T: "[e4@3 d4@2 e4 e4@2 e4 d4@2 e4@3 e4 d4@2 e4@3 g4 [a4,c#5]@2 [g4,b4]]/2", U: "a4", V: "e2 e3 g3 d4",
W: "g3 b3 d4 b3", X: "a3 c4 e4 b3", Y: "[e2,b2]!4", Z: "[g2,d3,g3]!4", AA: "[a2,e3,a3]!4", AB: "[g2,d3,g3] ~@3",
AC: "[e2@2 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@3 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@4 d3@2 e3@3 e3 d3@2 e3@3 e3 d3@2 e3@3 e3 d3@2 e3@3 g3 a3@2 g3 e3@2 e3 d3@2 e3@3 e3 d3@2 e3@3 e3 d3@2 e3]/8",
AD: "[~@2 g3 a3@2 g3 e3@2 e3 d3@2 e3@3 e3 d3@2 e3@3 e3 d3@2 e3@3 g3 a3@2 g3 e3@2 e3 d3@2 e3@3 e3 d3@2 e3@3 e3 d3@2 e3@3 g3 a3@2 g3 e3@2 e3 d3@2 e3@3 e3 d3@2 e3@3 e3 d3@2 e3@3 g3 a3@2 g3 e3@2 e3 d3@2 e3@3 e3 d3@2 e3@3 e3 d3@2 e3]/8",
AE: "[e3@2 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@3 e2 g2 a2 a#2@3 e2 g2 a2 a#2@3 e2 g2 a2 e2@3 e2 g2 a2 e2@4 e3@3 ~@6]/5",
AF: "~@6 [f2,c3,f3]!6", AG: "[f2,c3,f3]!12", AH: "[[f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]@2 [g4,b4]@9 ~@9]/2",
})).s("gm_distortion_guitar").gain(0.4)
// other · overdriven guitar
const overdriven_guitar = note(`<
~@30 A@2 ~@29 B ~@30 C@3 D E F@2 G@2 H I J K L M N O P Q R S T@2 U V W X@2 Y Z AA AB AC AD@2 AE@2 AF ~@21 AG AH@2 AI D
AJ ~
>`.pickRestart({
A: "[~@7 [g4,b4]@5 ~@4]/2", B: "~@3 [g4,b4]@5", C: "e4@3 a3@3 a3@3 g3@2 e3", D: "f3!12", E: "f3!6 f3@2 f3@2 f3@2",
F: "a4/2", G: "[~@2 a4@6 ~@3 a4@10 g4@2 e4]/2", H: "g4@2 a4@9 a4", I: "a4@3 a4@3 a4@5 ~",
J: "[e4,a4]@3 [d4,g4]@2 b3 [a3,d4]@2 g3 e3@2 g3", K: "[a3,d4] [a#3,d#4] [b3,e4] [d4,g4] [d#4,g#4] [e4,a4]",
L: "[g4,b4]@2 e4 e4@2 e4 d4@3 b3@2 a3", M: "g3 a3 b3 d4 ~ d4@4 b3@2 a3", N: "g3 a3 b3 d4 ~ d4@4 d4@2 e4", O: "g4",
P: "e4@2 [g4,b4] [a4,c#5]@2 a4 [a4,c#5]@2 [g4,b4] e4@2 g4", // G A G
Q: "[g4,b4]@2 a4 [a4,c#5]@2 [g4,b4] e4@2 g4 b4@2 d5, ~@18 a4 ~@5", // G A G
R: "b4@2 d5 b4@2 d5 b4@2 d5 [b4,d5]@3, a4 ~@5 a4 ~@5 a4 ~@11", S: "[a4,d5]@5 g4 e4@4 g4@2 d5@4 [g4,b4]@2 e4@6",
T: "[d5@3 d5@3 d5@3 d5@5 e5 d5@2 e5 d5 e5!3 d5 e5]/2", U: "d5@2 d5 d5@2 d5!2 e5 b4 d5 e5!2",
V: "d5 e5 b4 d5 e5!2 d5 e5!2 d5 e5!2", W: "g5@3 g5@6 e5@2 f#5",
X: "[g5@2 f#5 ~ e5 d5 e5 b4 d5@7 d5 b4 a4 g4 e4 g4 a4@2 g4]/2", Y: "[d4,f#4]@2 b3 [d4,f#4]@2 e4@4 [d4,f#4]@3",
Z: "a#4@2 a#4@2 a#4@2 [a4,c#5]!3 a4 g4 e4", AA: "g4@3 e4@2 g4 a4@2 a4 [a4,c#5]@3",
AB: "[g4,b4]@2 e4 [g4,b4]@2 a4 a4@3 a4@3", AC: "a4@4 g4 e4 g4@4 g4@8 b3@4 e4@2", AD: "e4@2 g4 a4@6 g4@2 e4",
AE: "[e4@2 g4 a4@5 a4@3 a4@3 a4@3 a4@4 [g4,b4]@2 e4]/2", AF: "g4 e4@2 ~@9", AG: "~@2 e4 a3",
AH: "a3@3 g3@2 e3 e4@3 a3@3", AI: "a3@3 g3@2 e3 f3!6", AJ: "f3!3 ~@3",
})).s("gm_overdriven_guitar").gain(0.57)
// other · overdriven guitar
const overdriven_guitar_2 = note("<~@97 A@2 B ~ C D ~@5 E F G ~@2 H@2 I ~@4 J K L M N O@2 P@2 ~@29>".pickRestart({
A: "d5/2", B: "d5@2 ~@6 d5@3 ~", C: "~@2 c#5@9 ~", D: "c#5@3 c#5@3 c#5@5 ~", E: "b4", F: "~@5 c#5 ~@6",
G: "~@2 c#5 ~@9", H: "[e5@3 e5@3 e5@3 e5@5 ~@10]/2", I: "e5@2 e5 e5@2 e5 ~@6", J: "~@5 g#4@4 ~@3", K: "c#5!3 ~@3",
L: "~@8 c#5 ~@3", M: "~@2 d5!2", N: "d5 ~@5", O: "~ c#5@2 ~", P: "[~@3 c#5@5 c#5@3 c#5@3 c#5@3 c#5@4 ~@3]/2",
})).s("gm_overdriven_guitar").gain(0.57)
// bass · electric bass pick · "Bass"
const bass = note(`<
~@2 A B@8 C D C E F G@6 H C D C D F G@6 H I J K L M N O@5 P Q R S@4 T C U V W X Y X Y X Y X Z@2 AA AB AC AD AE@5 AF AG
AH AI@5 C D C D C D C D AJ AK AL AM AN AO AP AQ AR AS AP AT AU AV AW AX AY AZ AW BA BB BC BD BE BF BC BG BH BI BJ BK
BL BM BN BO BP BQ BR ~ BS@5 L M N O@5 P Q R S@4 BT BU BV BW AM BX ~
>`.pickRestart({
A: "~@6 e1@2 e1 g1 a1 a#1",
B: "[~@3 e1@3 g1@2 a1@2 a#1@6 e1@2 g1@2 a1@2 e1@6 e1@2 g1@2 a1@2 e1@6 e1@2 g1@2 a1@2 a#1@6 e1@2 g1@2 a1@2 a#1@6 e1@2 g1@2 a1@2 e1@6 e1@2 g1@2 a1@2 e1@6 e1@2 g1@2 a1@2 a#1@6 e1@2 g1@2 a1@2 a#1@6 e1@2 g1@2 a1@2 e1@6 e1@2 g1@2 a1@2 e1@5 e1@3 g1@2 a1@2 a#1@6 e1@2 g1@2 a1@2 a#1@6 e1@2 g1@2 a1@2 e1@6 e1@2 g1@2 a1@2 e1@4 e1@2 e1@2 e1@2 e1@2 e1@2]/8",
C: "e1@2 e1 e1@2 e1 e1@2 e1 e1@2 e1", D: "e1@2 e1 e1@2 e1 e1@2 e1 g1 a1 g1", E: "e1@2 e1 e1@2 e1!4 g1 a1 g1",
F: "e1@2 e1 g1@2 e1 a1@2 e1 ~@2 a#1", G: "[a1@2 g1@3 a#1 a1@2 g1@3 e1@3 e1 g1@2 e1 a1@2 e1 ~@2 a#1]/2",
H: "a1@2 g1@3 a#1 a1@2 g1@3 e1", I: "e1@2 e1 g1 a1 a#1@3 a#1 a#1@3", J: "a#1@2 e1 g1 a1 e1!7",
K: "e1!2 g1!2 a1 a#1 a#1@2 a#1 a#1@2 a#1", L: "a#1@2 e1 g1 a1 e1 e1@2 e1 e1@3",
M: "e1@2 e1 g1 a1 a#1 a#1@2 a#1!2 a#1@2", N: "a#1@2 e1 g1 a1 e1 e1@2 e1!2 e1@2",
O: "[e1@2 e1 g1 a1 a#1@3 e1 g1 a1 a#1@3 e1 g1 a1 e1@3 e1 g1 a1 e1@3 e1 g1 a1 a#1@3 e1 g1 a1 a#1@3 e1 g1 a1 e1@3 e1 g1 a1 e1@3 e1 e1@2 e1 e1@2 e1 e1@3]/5",
P: "e1@2 e1 g1@2 g1 g1@3 g1@3", Q: "g1@2 g1 a1@2 a1 a1@2 a1 a1@3", R: "a1@2 a1 g1@2 e1 g1@3 g1@3",
S: "[g1@2 e1 g1 a1 a#1@3 e1 g1 a1 a#1@3 e1 g1 a1 e1@3 e1 g1 a1 e1@3 e1 g1 a1 a#1@3 e1 g1 a1 a#1@3 e1 g1 a1 e1@3 e1 g1 a1 e1]/4",
T: "e1!6 e1@2 e1 e1@2 e1", U: "e1@2 e1 a1!2 g1 e1@2 e1 e1@2 e1", V: "e1@2 e1 e1@2 e1 e1@2 e1 f1!3",
W: "e1!3 g1 a1 g1 e1@2 e1 g1@2 e1", X: "a1@2 e1 ~@2 a#1 a1@2 g1@3 a#1", Y: "a1@2 g1@3 e1@3 e1 g1@2 e1",
Z: "[a1@2 g1@3 e1 e1@2 e1 g1 a1 a#1@3 a#1 a#1@3 a#1@2 e1 g1 a1 e1]/2", AA: "e1!8 g1!2 a1 a#1",
AB: "a#1@2 a#1 a#1@2 a#1 a#1@2 e1 g1 a1 e1", AC: "e1@2 e1 e1@3 e1@2 e1 g1 a1 a#1",
AD: "a#1@2 a#1!2 a#1@2 a#1@2 e1 g1 a1 e1",
AE: "[e1@2 e1!2 e1@2 e1@2 e1 g1 a1 a#1@3 e1 g1 a1 a#1@3 e1 g1 a1 e1@3 e1 g1 a1 e1@3 e1 g1 a1 a#1@3 e1 g1 a1 a#1@3 e1 g1 a1 e1@3 e1 g1 a1 e1@3 e1 e1@2 e1]/5",
AF: "e1@2 e1 e1@3 e1@2 e1 g1@2 g1", AG: "g1@3 g1@3 g1@2 g1 a1@2 a1", AH: "a1@2 a1 a1@3 a1@2 a1 g1@2 e1",
AI: "[g1@3 g1@3 g1@2 e1 g1 a1 a#1@3 e1 g1 a1 a#1@3 e1 g1 a1 e1@3 e1 g1 a1 e1@3 e1 g1 a1 a#1@3 e1 g1 a1 a#1@3 e1 g1 a1 e1@3 e1 g1 a1 e1!7]/5",
AJ: "e1@3 e1@3 e1@3 e1@2 e1", AK: "g1@3 g1@3 g1@3 g1@2 g1", AL: "a1@3 a1@3 a1@2 a1 a1@3", AM: "f1!12",
AN: "f1!6 f1@2 f1@2 f1@2", AO: "e1@6 e1@5 e1", AP: "g1@3 g1@2 g1 g1@2 g1 g1@2 g1", AQ: "a1@3 a1@2 a1 a1@2 a1 a1@2 g1",
AR: "g1@2 g1 g1@2 g1 g1@2 g1 e1@2 g1", AS: "e1@3 e1@2 e1 e1@2 e1 e1@2 e1", AT: "a1@3 a1@2 a1 a1@2 a1 a1@2 a1",
AU: "g1@2 g1 g2@2 g1 g2@2 e1 g1 a1 g1", AV: "e1@3 e1@2 e1 e1@3 e1@2 e1", AW: "g1@2 e1 g1@2 ~@3 g1 e1 f1 g1",
AX: "a1!6 a1@3 a1 g1 e1", AY: "g1!6", AZ: "e1@2 e1!4 e1@2 e1 e1@2 e1", BA: "a1@2 a1 a1@3 a1@3 a1 g1 e1",
BB: "g1@2 g1!7 a1!2 g1", BC: "e1@3 e1@2 e1 b1@2 a1 g1@2 e1", BD: "g1@2 g1 g1@2 b1 b1@2 a1 g1@2 e1, ~@10 a1 ~ a1 ~@11",
BE: "a1@2 a1 a1@2 c2 b1@2 a1 f#1!2 e1", BF: "g1@3 g1@2 g1!2 a1!4 g1",
BG: "g1@3 g1@2 b1 b1@2 a1 g1 e1 g1, ~@10 a1 ~ a1 ~@11", BH: "a1@3 a1@2 c2 b1@2 a1 g1 f#1 e1",
BI: "g1@2 g1@2 g1@2 c2!2 b1!2 g1!2", BJ: "e1@3 e1@2 e1 e1@3 e1!3", BK: "e1@2 ~ g1!3 g1@2 f1 e1 f1 g1",
BL: "a1@2 ~ a1@2 a1 a1@2 a1!2 g1!2", BM: "g1@3 g1@2 g2 g1@2 g2 g1 f#1 f1", BN: "e1@3 e1@2 e1 e1@2 e1 f#1 f1 f#1",
BO: "g1@2 ~ g1@2 g1 g1@3 g1@3", BP: "a1@2 a1 a1@2 a1 a1@2 a1 a1@2 g1", BQ: "g1!4 e1!2 g1!4 e1!2", BR: "g1 ~@5",
BS: "[e1@2 e1 g1 a1 a#1@3 e1 g1 a1 a#1@3 e1 g1 a1 e1@3 e1 g1 a1 e1@3 e1 g1 a1 a#1@3 e1 g1 a1 a#1@3 e1 g1 a1 e1@3 e1 g1 a1 e1@3 e1 g1 a1 a#1@3 a#1 a#1@2 a#1]/5",
BT: "e1!6 e1@3 e1@3", BU: "e1@2 e1 e1@2 e1 e1@3 g2@2 g1", BV: "g2@2 g1 g2@2 g1 a1@3 a1@3", BW: "a1@2 a1 a1@3 f1!6",
BX: "f1!3 e1@3",
})).s("gm_electric_bass_pick").gain(0.4)
// drums · kick
const kick = s("bd").struct(`<
~@2 A B@6 C ~ D E@2 F G B@2 H B@3 H I J E K B@3 H B@3 H I F L E M E@8 G N B@2 O L E@2 F L B@3 P B@3 Q E ~ E@2 R S E@7
T B@2 U ~ E@5 K E T V@2 W ~@2 X Y@2 H Y@3 P Y Z AA AB Y AC AD AE Y@2 AA AF Y@2 AG K AA@3 P AA@2 AH ~@3 B@2 E AI AJ
E@11 N B@2 O A N@2 AK ~ A ~
>`.pickRestart({
A: "~ x", B: "x!2", C: "~ x ~ x ~@2", D: "x ~@2 x ~@8 x ~@3 x ~@7", E: "x!2 ~ x!2 ~", F: "x!2 ~@4", G: "x!2 ~ x ~@2",
H: "x ~ x!2", I: "x ~@2 x!2 ~", J: "x ~@3 x ~@7 x ~@3 x ~@6 x", K: "x!4 ~@2", L: "~@3 x!2 ~", M: "x!2 ~ x!3",
N: "x ~@2 x!3 ~@6 x ~@11", O: "x", P: "x!2 ~@2", Q: "x!3 ~", R: "x!6", S: "x ~@3 x ~@7 x ~@2 x!3 ~@2 x ~@3",
T: "x ~@3 x ~@7 x ~@2 x!3 ~@6", U: "x ~@5 x ~@4 x", V: "x ~@11 x ~@2 x!3 ~@6", W: "x ~@5 x ~ x ~@2 x", X: "x ~@10 x",
Y: "x ~@2 x ~ x ~@3 x ~@2", Z: "x ~@2 x ~@2 x ~", AA: "x ~@2 x ~ x ~@6", AB: "x!5 ~", AC: "x ~@4 x ~@3 x ~@2",
AD: "~ x ~@4", AE: "~ x ~", AF: "~ x ~@2", AG: "x ~@2 x ~ x ~@2 x!2 ~@2", AH: "x ~@2 x ~ x ~@5 x", AI: "x!2 ~@2 x ~",
AJ: "x ~ x!3 ~", AK: "x ~ x ~@2 x ~@6",
})).gain(0.4)
// drums · snare
const snare = s("sd").struct(`<
A B C D@5 E F G D@3 H D@3 I D@3 I D E D J D@3 I D@3 I D K L D@11 M D@2 N O D@2 H L D@3 P D@3 P D Q D@11 E D@3 R D@5 S
D E@3 D T U V@2 W X V W V Y W@2 V Z W AA AB AC W AD AE AF V@3 AG AH@2 AI Y AJ@3 R B AK D@2 ~ AL AM D@11 M D@2 AN AO
M@2 AP AQ AR ~
>`.pickRestart({
A: "~@6 x!4 ~@2", B: "x!4 ~@2 x!4 ~@2", C: "x ~@2 x", D: "~ x ~ x", E: "~@3 x ~@5 x ~ x", F: "x ~@2 x ~@5 x ~ x",
G: "x!4 ~ x!3 ~ x!3", H: "~@6 x ~@4 x!2 ~ x ~@9", I: "~@3 x ~@7 x", J: "~ x ~@2", K: "~@3 x ~@2 x!2 ~ x!3",
L: "~ x!3 ~@5 x ~@2", M: "~@3 x ~ x ~@3 x ~@2", N: "~@6 x ~@4 x!2 ~ x ~@5 x ~@3", O: "~@2 x!2 ~@5 x ~@2",
P: "~@5 x ~@3 x ~@2", Q: "~@3 x!3 ~@4 x!2", R: "x!12", S: "~@3 x ~ x ~ x!3 ~@2", T: "x!4 ~ x!3 ~@2 x!2",
U: "~@2 x!2 ~@2 x ~@5", V: "~ x", W: "~@6 x ~@4 x", X: "~@3 x ~ x ~@6", Y: "~@6 x!2 ~@4", Z: "~@3 x ~@5 x!3",
AA: "~@3 x ~@2 x ~@4 x", AB: "x!4", AC: "x!4 ~ x!3 ~@4", AD: "~@2 x ~@3 x ~@4 x", AE: "~@2 x ~@3 x ~@2 x ~@2",
AF: "x ~@4 x!7", AG: "~@3 x ~ x ~@2 x!2 ~@2", AH: "~@12 x ~@3 x!3 ~ x ~@3", AI: "~@6 x ~ x!2 ~@2", AJ: "~@2 x!2",
AK: "x!4 ~@2 x ~@5", AL: "~@6 x ~@4 x!2 ~ x ~@3 x ~ x ~ x ~", AM: "~ x!3 ~ x ~@3 x ~@2", AN: "~@3 x ~@2 x!6",
AO: "x!6 ~@3 x ~@2", AP: "~@3 x ~@2 x!4 ~ x", AQ: "x!2 ~@2 x ~@3 x!2 ~@2", AR: "x",
})).gain(0.4)
// drums · low tom
const low_tom = s("lt").struct(`<
~@14 A ~@11 B ~@29 A C ~@9 D ~@19 E ~ F ~@10 G ~@3 F ~@15 F ~@3 F ~@3 H ~@29
>`.pickRestart({
A: "~@9 x!3", B: "~@8 x!2 ~@2", C: "x", D: "x ~ x ~@3 x ~ x!2 ~@2", E: "~@21 x!3", F: "~@10 x!2", G: "~@9 x ~ x",
H: "x!12",
})).gain(0.4)
// drums · hihat
const hihat = s("hh").struct(`<
~@11 A B C D E F@2 G E F@2 H I B J ~ K F@2 G L M N O I P ~ B@3 Q C@6 R D ~@4 B Q D ~ F@3 S T U V W B ~ A B@3 C@7 X ~@4
A B C B J ~ J C Y@2 J ~@41 B@3 Q C@7 D ~@10
>`.pickRestart({
A: "~@2 x!2", B: "x!4", C: "x!2", D: "x", E: "~@3 x ~@2 x ~ x!2 ~ x", F: "x ~ x!2 ~ x!2 ~ x!2 ~ x",
G: "x ~ x!2 ~ x!2 ~ x!2 ~@2", H: "x ~ x!2 ~ x!2 ~@2 x ~@2", I: "~ x!3", J: "~ x", K: "~@6 x ~ x!2 ~ x",
L: "~@2 x!7 ~@3", M: "x!9 ~@3", N: "x!7 ~ x!2 ~ x", O: "x!7 ~ x!2 ~@2", P: "x!2 ~@2", Q: "x!3 ~", R: "x ~ x!2",
S: "x ~ x!2 ~@4 x!2 ~ x", T: "x ~ x!2 ~@2 x!6", U: "x!3 ~@3 x!6", V: "x ~ x!2 ~ x!7", W: "x ~ x!2 ~@5 x ~@2",
X: "~ x ~@2", Y: "~ x!2 ~",
})).gain(0.4)
// drums · mid tom
const mid_tom = s("mt").struct(`<
A B C ~@7 D ~@3 E ~@11 F ~@9 E G ~@14 H I ~@2 E J ~@37 K L ~ M E N M E M O ~ P Q ~@2 Q ~ R ~@4 M@2 ~ S T@2 A O ~@4 B U
~@2 V ~@20 W X C ~
>`.pickRestart({
A: "~@10 x!2", B: "~@4 x!2 ~@4 x!2", C: "~ x!2 ~@3", D: "~ x!2", E: "~@2 x", F: "~@5 x ~ x ~@2 x!2",
G: "x ~@3 x!2 ~@6", H: "~@8 x!2 ~ x", I: "x!2 ~@2 x!2 ~@6", J: "~@4 x!2 ~@6", K: "~@4 x ~@3 x!2 ~@2",
L: "x!2 ~@2 x!2 ~@2 x ~ x ~", M: "~@8 x ~@2 x", N: "~ x ~ x!2 ~", O: "~@8 x!2 ~@2", P: "~@2 x!2 ~@8", Q: "~ x ~@4",
R: "~@8 x!4", S: "~@7 x ~@4", T: "~@11 x", U: "~@4 x!2 ~@2 x ~ x ~", V: "~@3 x ~ x ~@3 x ~ x", W: "~@5 x",
X: "~@2 x!2 ~ x!3 ~@2 x!2",
})).gain(0.4)
// drums · high tom
// … 23 more lines
More by Metallica
Not in the database
That song isn't here.
Nothing in the database matches this link. It may have been renamed, or the address was mistyped. The closest songs to :
Real transcriptions · Editable patterns · Instrumental
Type a song.
Get Strudel code.
Chords, structure, melody, bass and drums compiled from open transcriptions into Strudel live-coding patterns. Play it here, scrub through the bars, then open it in strudel.cc and start hacking.
Smells Like Teen SpiritNirvana
The JokerSteve Miller Band · 1973
Love Me DoThe Beatles · 1964
I Don't MindJames Brown · 1961
- Real transcriptionsMcGill chord charts, Lakh MIDI and quality-filtered PDMX scores. The library includes alternate transcriptions of some songs.
- One bar, one cycleEvery layer follows the same bar timeline, keeping the code, playback and song structure aligned.
- Instrumental by designDetected vocal parts are removed. Guitar riffs, harmonica and other instrumental leads stay.