0:00/0:00
// Leper Messiah — Metallica
// 136 bpm, 4/4, key E 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, 6/4 at bar 2, 4/4 at bar 4, 3/4 at bar 11, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 191 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(136/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, A@4 for four bars: edit a riff to change every repeat.
// bass · acoustic bass · "A.BASS 2"
const bass = note(`<
A B@2 C@2 D@2 E F G H I J G H I K L M L N O P O P O P Q R S T S U S V W X S V W X S V W X S V W X Y Z Y Z AA AB AA AB
AC AD AE AF AG@2 AH AI AJ AK AH AI U AL S V AM AN S V AM AN S V AM AN S V AM AN Y Z Y Z AO AP AO AP AQ AD AE AF AG@2
AH AI AJ AK AH AI U AL AR AS AT@7 AU@3 AV@2 AW AX AY@2 AZ BA@2 BB BC BD BE@2 BF@2 BG@2 BH BI BJ BK@2 BL BM BN@6 BO@7
BP@2 BQ BR@3 BS@4 BT@2 BU BV BW BX@2 BY ~@2 BZ CA CB CC CD CE CB CF CG CH CI ~
>`.pickRestart({
A: "~@6 e2!2", B: "[g2@2 e2!2 g2@2 a2@8 e2!2]/2", C: "[g2@2 e2!2 g2@10 e2!2]/2", D: "[g2@2 e2!2 g2@2 f2@8 e2!2]/2",
E: "g2@2 e2!2 a2@2 e2!2", F: "a2@3 g2@3 b2@3 a2@3 g2@2 f#2@2 f2@2 e2@6", G: "f#2@3 ~@3 f#2@3 c3@3 f#2@6 f#2 ~@5",
H: "f#2 ~@5 f#2@3 g2@3 f#2@6 e2@6", I: "e2@3 e2@3 f#2@3 c3@3 f#2@6 f#2 ~@5", J: "f#2 ~ f#2 g2 f#2!2 e2@2",
K: "f#2@3 ~@3 f#2@3 g2@3 f#2@3 f#2@3 c3 ~ b2@4", L: "e2@3 e2@3 c3 ~ b2@4 e2@3 e2@3 c3 ~ b2@4",
M: "e2@3 e2@3 c3 ~ b2@4 d3@3 e3@3 c3 ~ b2@4", N: "e2!2 g2!2 f#2!2 e2@2", O: "e2!2 ~@2 e2!2 ~@2",
P: "e2!2 g2!2 f#2!2 ~@2", Q: "e2!2 ~@2 e2!2 f2 e2", R: "g2@2 c3 b2 a2@2 c3 ~",
S: "c3 ~ b2@4 e2@3 e2@3 c3 ~ b2@4 e2@3 e2@3", T: "c3 ~ b2@4 e2@3 e2 ~ e2 c3 ~ b2@4 f#2 ~ g2@4",
U: "e2!2 g2@2 e2!2 a2@2", V: "c3 ~ b2@4 e2@3 e2 ~ e2 c3 ~ b2@4 f2 ~ g2@4",
W: "g2!2 f#2@4 f#2@3 f#2@3 g2!2 f#2@4 f#2@3 f#2@3", X: "g2!2 f#2@4 f#2@3 f#2@3 g2!2 f#2@4 f#2!2 g2@4", Y: "e2 d#3",
Z: "d3 c#3", AA: "b2@6 e2@3 e2@3 b2!2 a#2@4 e2@3 e2@3", AB: "a#2!2 a2@4 e2@3 e2@3 a2!2 g#2@4 e2@3 e2@3",
AC: "b2@6 e2@3 e2 ~ e2 b2!2 a#2@4 e2@3 e2!2 ~", AD: "a#2 [a2,a#2] a2@4 e2@3 e2!2 ~ a2 [g#2,a2] g#2@4 e2@3 e2!2 ~",
AE: "b2@6 e2!2 ~ e2!2 ~ b2 [a#2,b2] a#2@4 e2!2 ~ e2!2 ~", // Bmaj7
AF: "a#2 [a2,a#2] a2@4 e2!2 ~ e2!2 ~ a2 [g#2,a2] g#2@4 e2!2 ~ e2!2 ~", // A#maj7 Amaj7
AG: "g#2 [g2,g#2] g2@4 g2!2 ~ g2!2 ~ g#2 [g2,g#2] g2@4 g2!2 ~ g2!2 ~", AH: "e2@2 f#2 ~ f#2 c3 f#2@2",
AI: "f#2 ~@5 f#2 ~@5 f#2@3 g2@3 f#2@6", AJ: "e2@2 e2!2 f#2 c3 f#2@2", AK: "f#2 ~@5 f#2@3 ~@3 f#2@3 g2@3 f#2@3 f#2@3",
AL: "e2@3 e2@3 a2@3 g2@3 b2@3 a2@3 g2@2 f#2@2 f2@2",
AM: "g2 [f#2,g2] f#2@4 f#2@3 f#2@3 g2 [f#2,g2] f#2@4 f#2@3 f#2@3", // Gmaj7
AN: "g2 [f#2,g2] f#2@4 f#2@3 f#2@3 g2 [f#2,g2] f#2@4 f#2 [f#2,g2] g2@4", // Gmaj7
AO: "b2@6 e2@3 e2@3 b2 [a#2,b2] a#2@4 e2@3 e2@3", AP: "a#2 [a2,a#2] a2@4 e2@3 e2@3 a2 [g#2,a2] g#2@4 e2@3 e2@3",
AQ: "b2@6 e2@3 e2!2 ~ b2 [a#2,b2] a#2@4 e2@3 e2!2 ~", AR: "e2@9 g2 f#2 f2", AS: "e2@3 g2 f#2 f2 e2@3 g2 f#2 f2",
AT: "[e2@35 f2@18 g2@9 a2@9 e2@35 d3@18 a2@9 b2@9 e2@18 e2@2 e2@2 ~@4]/7",
AU: "[~@9 f2@18 g2@9 a2@9 e2@18 e2@2 e2@2 ~@5]/3", AV: "[~@8 d3@18 a2@2 a2@2 a2 ~@3 a2 b2@4 b2@4 ~ e2!4]/2",
AW: "e2@4 ~ e2!4 e2@4 ~ e2!4 e2@4 e2!2", AX: "~ e2!2 e2@4 f2!3 ~ f2 f2@4 f2!4 ~ f2@3",
AY: "[~ g2!4 g2@4 ~ a2!4 a2@4 ~ e2!4 e2@4 ~ e2!4 e2@4 e2 ~ e2!3 e2@4 e2!2 ~]/2",
AZ: "e2!2 e2@4 d3!3 ~ d3 d3@4 d3!4 ~ d3@4",
BA: "[a2 a2@3 a2 ~@3 a2 b2@4 b2@4 ~ e2!4 e2@4 ~ e2!4 e2@4 e2 ~ e2!3 e2@4 e2!2 ~ e2]/2",
BB: "e2 e2@4 f2!4 ~ f2@4 f2!4 f2@4 ~ g2", BC: "g2!3 g2@4 ~ a2!4 a2@4 ~ e2!4 e2@3",
BD: "~@2 e2!4 e2@4 e2!2 ~ e2!2 e2@4 e2!3 ~ e2",
BE: "[e2@4 d3!4 ~ d3@4 d3!4 d3@4 ~ a2 a2@3 a2 ~@3 a2 b2@4 b2@4 ~ e2@3 e2 e2@3 e2]/2",
BF: "[e2@3 e2 ~ e2@3 e2 e2@3 e2 ~ e2@3 e2 e2@3 e2 ~ e2@3 e2 f2@3 f2 f2@3 f2 ~ f2@3 f2 f2@3 f2 ~ g2@3]/2",
BG: "[g2 g2@3 g2 ~ a2@3 a2 a2@3 a2 ~ e2@2 e2 ~ e2@3 e2 e2@3 e2 ~ e2@3 e2 e2@3 e2 ~ e2@3 e2 e2@3 e2 ~ e2@2]/2",
BH: "~ e2 d3@3 d3 d3@3 d3 ~ d3@3 d3 d3@3 d3 ~ a2 a2@3", BI: "a2 ~@3 a2 b2@4 b2@4 e2@3 e2 ~ e2@3 e2 e2@2",
BJ: "~ e2 ~ e2@3 e2 e2@3 e2 ~ e2@3 e2 e2@3 e2 ~ e2@2 e2",
BK: "[~ f2@3 f2 f2@3 f2 ~ f2@3 f2 f2@3 f2 ~ g2@3 g2 g2@3 g2 ~ a2@3 a2 a2@3 a2 e2@3 e2 ~ e2@3 e2 e2@3]/2",
BL: "e2 ~ e2@3 e2 e2@3 e2 ~ e2@3 e2 e2@3 e2 e2@3 e2 ~", BM: "d3@3 d3 d3@3 d3 ~ d3@3 d3 d3@3 d3 ~ a2 a2@3 a2 ~",
BN: "[~ a2!2 b2@4 b2@4 e2@35 ~ f2@18 g2@8 a2@9 e2@35 ~ d3@18 a2 a2@3 a2 ~@2 a2]/6",
BO: "[b2@4 ~ b2@4 e2@35 ~ f2@18 g2@8 a2@9 e2@35 ~ d3@17 a2 ~ a2@3 a2 ~@2 a2 b2@4 ~ b2@4 a2@2 a2 ~ a2 a2@2 a2!2 a2@2 a2!2 ~ a2@2 a2, a2 ~@141 a2 ~@25]/7",
BP: "[a2 a2@2 a2!2 a2@2 ~ a2!2 a2@2 a2!2 a2@2 a2 ~ a2 g2@2 g2!2 g2@2 g2!2 ~ g2@2 g2!2 g2@2 g2!2 f#2@2 ~ f#2!2 f#2@2 f#2!2 f2@2 ~]/2",
BQ: "f2!2 f2@2 f2!2 e2@9 d#3@9", BR: "[d3@9 c#3@9 e2@8 d#3@9 d3@9 c#3@9 e2!4 ~ e2@4 e2!4 e2@4 ~ e2]/3",
BS: "[e2!3 e2@4 ~ e2!4 e2@4 ~ e2@8 d#3@9 d3@9 c#3@9 e2@9 d#3@9 d3@9 c#3@9 g2!4 g2@4]/4",
BT: "[g2 ~ g2!3 g2@4 g2!3 ~ g2 g2@4 g2!4 ~ g2@4 e3 ~ e2!2 e2@2 ~ e2!2 d#3 ~ e2!2 e2@2 ~ e2!2 d3 ~ e2]/2",
BU: "e2 e2@2 e2 ~ e2 c#3 ~ e2!2 e2@2 e2!2 e3 ~@2 e2!2 e2@2 e2!2 d#3",
BV: "~@2 e2!2 e2@2 e2!2 d3 ~ e2 ~ e2 e2@2 e2!2 c#3 ~ e2!2 ~ e2@2",
BW: "e2!2 g2@2 g2!2 g2@2 ~ g2!2 g2@2 g2!2 g2@2 g2 ~ g2 g2@2 g2!2",
BX: "[g2@2 g2!2 ~ g2@2 g2!2 g2@2 g2!2 g2@9 g2@9 g2@9 g2@8]/2", BY: "~ g2@18 ~@5", BZ: "~@2 g2 f#2 a2 g2 b2 a2",
CA: "g2@2 f#2@2 f2@2 e2@6 f#2@3 ~@3 f#2@3 c3@3", CB: "f#2@6 f#2 ~@5 f#2 ~@5 f#2@3 g2@3", CC: "f#2@2 e2@2 e2!2 f#2 c3",
CD: "f#2@6 f#2 ~@5 f#2@3 ~@3 f#2@3 g2@3", CE: "f#2!2 e2@2 f#2 ~ f#2 c3", CF: "f#2@2 e2!2 g2@2 e2!2",
CG: "a2@2 e2!2 a2 g2 b2 a2", CH: "g2 f#2 f2 e2@3 ~@6", CI: "~@6 f2@6 e2@2 e2@2 e2@2 e2@3 ~@3",
})).s("gm_acoustic_bass").gain(0.64)
// chords · overdriven guitar · "E.GUITAR"
const overdriven_guitar = note(`<
A B@2 C@2 D@2 E A F@4 G@2 H I@8 ~@3 J K L@2 M@2 L@2 N O L@2 N O L@2 N O L@2 N O P Q P Q R S R S R S R S T@2 U@2 V@2
U@2 W X L@2 N O L@2 N O L@2 N O L@2 N O P Q P Q R S R S R S R S T@2 U@2 V@2 U@2 W X Y@7 Z@6 AA@6 AB@7 ~@4 AC@2 ~@4
AD@2 ~@4 AE AF ~@4 AG@2 ~@2 AH AI@4 AJ@5 ~@2 AK@4 ~@3 AL@2 AM@2 AN@2 AO AP AQ@3
>`.pickRestart({
A: "~@19 e4@5, ~@3 [g#3,b3]", // G#m
B: "[~ [b3,d4]@5 ~ e4@5 ~ [b3,d4]@5 ~ [c#4,e4]@23 ~ e4@5, g3 [g#3,b3] g3 a3@4 [g#3,b3]]/2", // Bm C#m G#m
C: "[~ [b3,d4]@5 ~ e4@5 ~ [b3,d4]@29 ~ e4@5, g3 [g#3,b3] g3@5 [g#3,b3]]/2", // Bm G#m
D: "[~ [b3,d4]@5 ~ e4@5 ~ [b3,d4]@5 ~ [c4,f4]@23 ~ [b3,d4]@5, g3 [g#3,b3] g3 a3@4 g3]/2", // Bm F5 Bm G#m
E: "~ e4@5 ~ [b3,d4]@5 ~ [c#4,e4]@5 ~ [b3,d4]@5, [g#3,b3] g3 a3 g3", // Bm C#m Bm G#m
F: "[~ [a#3,c#4]@32 ~ b3@2 ~ [a#3,c#4]@5 ~ [b3,e4]@11 ~ [a#3,c#4]@26 ~ b3@2 ~ [a#3,c#4]@5 ~ [b3,e4]@5, f#3@11 [g3,d4] f#3@2 g#3@4 f#3@9 [g3,d4] f#3@2 g#3@2]/4", // A#m E5 A#m E5 G5
G: "[~ [a#3,c#4]@32 ~ b3@2 ~ [a#3,c#4]@5 ~ [b3,e4]@5, f#3@11 [g3,d4] f#3@2 g#3@2]/2", H: "~@7 [a#3,c#4]@17, ~ f#3@3",
I: "[~@10 b3@2 ~ [a#3,c#4]@5 ~ [b3,e4]@173, ~@3 [g3,d4] f#3@2 g#3@58]/8", J: "~@6 [a3,c4,f4] [g#3,b3,e4]",
K: "~ d4@11 ~ e4@5 [g3,c4,e4]@3 ~@3, [g3,b3]@2 [a3,c#4] ~", L: "[~ e4@41 [a3,c4,f4]@2 [g3,b3,d4]@4, [g#3,b3]@7 ~]/2",
M: "[~ e4@29 ~ b3@11 [a3,c#4,e4]@6, [g#3,b3]@5 [g3,d4]@2 ~]/2", // A G#m G5
N: "~ a#3@17 [a3,c4,f4]@2 [f#3,a#3,c#4]@4, [f#3,c#4]@3 ~", // F F# F#5
O: "[a3,c4,f4] [f#3,a#3,c#4]@5 [a3,c4,f4] [f#3,a#3,c#4]@3 [g3,b3,d4]@2", P: "[g#3,b3,e4]@12 ~ d#4@11, ~ [g3,a#3]",
Q: "~ d4@11 ~ f4@11, [f#3,a3] [g#3,c#4]", R: "[g#3,b3,e4] [f#3,b3,d#4]@5 [g3,a#3,d#4] [a#3,d4,f4]@5",
S: "[f#3,a3,d4] [a3,c#4,e4]@5 [g#3,c#4,f4] [g#3,c4,d#4]@5", T: "[g#3,c4,d#4] [g3,b3,d4]@5 [g#3,c4,d#4] [g3,b3,d4]@5",
U: "[~ e4@5 ~ c#4@32 [g3,b3,d4]@3 [f#3,a#3,c#4]@6, [g#3,b3]@2 [f#3,a#3]@11 ~@3]/2", // G F# G#m F#
V: "[~ e4@11 ~ c#4@26 [g3,b3,d4]@3 [f#3,a#3,c#4]@6, [g#3,b3]@4 [f#3,a#3]@9 ~@3]/2", // G F# G#m F#
W: "~ e4@5 ~ e4@5 ~ b3@5 ~ e4@5, [g#3,b3]!2 [g3,d4] [a3,c#4]", X: "~ b3@5 ~@18, [g3,d4] ~@3",
Y: "[~ e4@83 [a3,c4,f4]@17 ~ [b3,d4]@8 [a3,c#4,e4]@9 ~ e4@34 ~ [a3,d4]@13, [g#3,b3]@83 ~@18 g3@9 ~@9 [g#3,b3]@35 f#3@14]/7", // F Bm A D5 G#m
Z: "[~@4 [a3,c#4,e4]@9 ~ d#4@8 [g#3,b3,e4]@31 ~@5 [c4,f4]@17 ~ d4@8 [a3,c#4,e4]@9 [g#3,b3,e4]@35 ~ [a3,d4]@15, ~@13 [f#3,b3]@9 ~@35 a3@18 [g3,b3]@9 ~@44 f#3@16]/6", // A E F5 A E D5 B5 G
AA: "[~@2 [a3,c#4,e4]@9 ~ d#4@8 [g#3,b3,e4]@31 ~@5 [c4,f4]@17 ~ d4@8 [a3,c#4,e4]@9 [g#3,b3,e4]@35 ~ [a3,d4]@17, ~@11 [f#3,b3]@9 ~@35 a3@18 [g3,b3]@9 ~@44 f#3@18]/6", // A E F5 A E D5 B5 G
AB: "[[a3,c#4,e4]@9 [f#3,b3,d#4]@9 [g#3,b3,e4]@31 ~@5 [c4,f4]@17 ~ d4@8 [a3,c#4,e4]@9 [g#3,b3,e4]@35 [f#3,a3,d4]@18 [a3,c#4,e4]@9 [f#3,b3,d#4]@9 ~@8, ~@53 a3@18 [g3,b3]@9 ~@88]/7", // A B E F5 A E D A …
AC: "[~@20 [a3,c#4,e4]@9 [f#3,b3,d#4]@9 ~@10]/2", AD: "[~@6 [a3,c#4,e4]@3 [f#3,b3,d#4]@3 ~@4]/2",
AE: "~@2 [a3,c#4,e4]", AF: "~ [b3,d#4]@9 ~@14, f#3@3 ~@5",
AG: "[~@14 [a3,c#4,e4]@8 ~ [b3,d#4]@9 ~@16, ~@22 f#3@9 ~@17]/2", AH: "~@6 [g#3,b3,e4]@9 ~ d#4@8, ~@5 [g3,a#3]@3",
AI: "[~ d4@8 [g#3,c#4,f4]@9 [g#3,b3,e4]@9 [g3,a#3,d#4]@8 ~ [a3,d4]@8 ~ [c#4,f4]@8 ~ e4@42, [f#3,a3]@9 ~@26 f#3@9 g#3@9 [g#3,b3]@43]/4", // C# E D# D5 C# F#m G#m
AJ: "[~@2 [g3,a#3,d#4]@8 ~ [a3,d4]@8 ~ [c#4,f4]@8 [g#3,b3,e4]@9 ~ d#4@8 [f#3,a3,d4]@9 [g#3,c#4,f4]@9 [g3,b3,d4]@35 ~@21, ~@10 f#3@9 g#3@9 ~@9 [g3,a#3]@9 ~@74]/5", // D# D5 C# E D C# G Gm
AK: "[~@3 d4@88 ~@5, ~ [g3,b3]@44 ~@3]/4", AL: "[~@7 [b3,e4]@5 ~ [a#3,c#4]@32 ~ b3@2, ~@2 g#3@2 f#3@11 [g3,d4]]/2",
AM: "[~ [a#3,c#4]@5 ~ [b3,e4]@11 ~ [a#3,c#4]@26 ~ b3@2, f#3@2 g#3@4 f#3@9 [g3,d4]]/2", // A#m E5 A#m G5
AN: "[~ [a#3,c#4]@5 ~ [b3,e4]@5 ~ [a#3,c#4]@32 ~ b3@2, f#3@2 g#3@2 f#3@11 [g3,d4]]/2", // A#m E5 A#m G5
AO: "~ [a#3,c#4]@5 ~ [b3,e4]@5 ~ e4@5 ~ [b3,d4]@5, f#3 g#3 [g#3,b3] g3", // A#m E5 Bm G#m
AP: "~ [c#4,e4]@5 ~ [b3,d4]@6 ~@11, a3 g3 ~@2", // C#m Bm
AQ: "[~@7 [b3,e4]@23 [a3,c4,f4]@6 ~ g#3@13 ~@22, ~@6 g#3@24 ~@6 [b3,e4]@11 ~@25]/3", // E5 F E5
})).s("gm_overdriven_guitar").gain(0.32)
// drums · kick
const kick = s("bd").struct(`<
A B A C A B A D E F G F E F G H E F@5 G F G F G I J K L K ~ K M K N K L M O K M K P K L M Q R@3 S D@3 C T R@4 S K U K
~ K@2 V ~ K M K W K M K O K M K X K M@2 Y R@3 S D@3 C T R@4 S K U K ~ K@2 V ~ X K X Z AA ~ Z AB AC AD AE AF AG AH AI
AJ AK AL AM AN AO AI AP AQ AR AS AT AU AV AW AX AY AZ BA BB AM BC BD AI BE BF BG BH BI AU BJ BK BL BM BN BO BP BQ BR
BS AI BT BU BV AC AT BW BX BP BY BZ ~@5 F@2 CA ~ F@2 CB X ~@3
>`.pickRestart({
A: "~@7 x", B: "x ~@2 x!2 ~ x ~", C: "x ~@2 x!2 ~@3", D: "x ~@2 x!2 ~@2 x", E: "~@3 x", F: "~ x ~ x",
G: "~@2 x ~@2 x!2 ~", H: "~ x ~@2", I: "~@2 x ~@3 x!2", J: "x ~ x!3 ~ x ~", K: "x!2", L: "x ~@11 x!2 ~ x ~@8",
M: "x ~@3 x!2 ~@2", N: "x!2 ~@2", O: "x!2 ~@6", P: "x ~@4 x!2 ~", Q: "x!2 ~@2 x!2 ~@2", R: "x!8", S: "x!5 ~@3",
T: "~ x!7", U: "x ~@3 x ~@2 x", V: "~ x!2 ~@2 x!2 ~", W: "x ~@7 x!2 ~@2", X: "x",
Y: "x ~@2 x ~ x ~@6 x ~@2 x ~ x ~@6", Z: "~@11 x ~@12", AA: "~@5 x ~@8 x ~@8 x", AB: "~@4 x ~@8 x ~@8 x ~",
AC: "~@8 x!2 ~@2", AD: "~@3 x ~@4", AE: "~ x ~@2 x ~@2 x", AF: "~@15 x ~ x ~@6", AG: "~ x ~",
AH: "~@3 x ~@2 x ~@5 x ~@7 x ~ x ~", AI: "~@5 x ~ x ~@6 x ~ x ~@6 x", AJ: "~ x ~@5 x ~ x ~@6 x ~ x ~@5",
AK: "~ x ~ x ~@6 x ~ x ~@6 x ~ x ~@2", AL: "~@4 x ~ x ~@5 x ~@2 x ~@5 x ~@2", AM: "x ~@5 x ~ x ~@6 x ~ x ~@6",
AN: "~ x ~@2 x ~@5 x ~@2 x ~@4 x ~ x ~@3", AO: "~@3 x ~ x ~@5 x ~@2 x ~@5 x ~@2 x", AP: "~ x ~@15 x ~ x ~@4",
AQ: "~@2 x ~ x ~@5 x ~@2 x ~@5 x ~ x ~@2", AR: "~@4 x ~ x ~@6 x ~ x ~@7 x", AS: "~@2 x ~@5 x ~@2 x ~@4 x ~@7",
AT: "x ~@2 x ~@5 x ~@2 x ~@5 x ~ x ~@3", AU: "~@3 x ~ x ~@6 x ~ x ~@6 x ~ x", AV: "~@6 x ~ x ~@6 x ~ x ~@5 x",
AW: "~@2 x ~@5 x ~ x ~@8 x ~ x ~@2", AX: "~@2 x ~@8 x ~@9 x ~@2", AY: "x ~@5 x ~@2 x ~@3 x ~@8 x ~",
AZ: "~@7 x ~ x ~@6 x ~ x ~@4 x", BA: "~ x ~@8 x ~ x ~@6 x ~ x ~@2", BB: "~@4 x ~ x ~@5 x ~@8 x ~@2",
BC: "x ~@8 x ~@9 x ~@2 x ~", BD: "~@4 x ~@2 x ~@3 x ~@2 x ~@5 x ~ x ~", BE: "~ x ~@6 x ~ x ~@6 x ~ x ~@4",
BF: "~@10 x ~@2 x ~@5 x ~ x ~@2", BG: "~@4 x ~ x ~@6 x ~ x ~@6 x ~", BH: "x ~@6 x ~ x ~@7 x ~@2 x ~@3",
BI: "~@2 x ~@2 x ~@3 x ~@2 x ~@5 x ~ x ~@3", BJ: "~@6 x ~ x ~@6 x ~ x ~@6", BK: "~@8 x ~ x ~@6 x ~ x ~@4",
BL: "~@2 x ~ x ~@6 x ~ x ~@6 x ~@3", BM: "~@5 x ~ x ~@7 x ~@2 x ~@4 x", BN: "~@3 x ~@5 x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x",
BO: "x ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~ x ~ x ~@2 x!2 ~", BP: "~ x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@2",
BQ: "x!2 ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2", BR: "~@2 x ~ x ~@2 x!2 ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2",
BS: "x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x ~ x ~ x!2 ~@4", BT: "~ x ~@6 x ~ x ~@8 x!2 ~@2 x",
BU: "~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x!2 ~@2 x ~ x", BV: "~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2",
BW: "~@5 x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x", BX: "x ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x",
BY: "x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~ x ~ x ~@2 x!2", BZ: "~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@10", CA: "~ x!2 ~@3 x ~",
CB: "~@3 x!2 ~@2 x",
})).gain(0.72)
// drums · snare
const snare = s("sd").struct(`<
A B A B A B A C D E@3 F E@2 G H E@11 ~ I@3 J I@3 K I@3 L I@3 M I@6 N O I@4 E P N@2 Q R I@2 S T I@2 U V I@3 W I@3 L I@3
M I@6 N O I@4 E P N@2 Q R I@2 S X I@2 U V Y Z ~@11 AA AB AC AD AE AF AG AH AI AJ AK AL AM AD AH AN AO AP AQ AC AD AE
AF AR AS AI AC AT AB AU AV AH AW AO AK AX AY AZ BA BB AB AF AI BC AN AO BD AD AC AD AE BE BF AH BG ~@2 B BH E@2 BI P E
BJ BK BL BM ~
>`.pickRestart({
A: "~@18 x!2 ~@4", B: "~@6 x!2 ~@16", C: "~@6 x!2 ~@10 x!2 ~@4", D: "~@6 x!3 ~@3", E: "x!2",
F: "x ~@2 x!4 ~@2 x ~@14", G: "x ~@8 x ~@8 x!2 ~@4", H: "~ x!2 ~@5", I: "~ x ~ x", J: "x!2 ~@10 x!2 ~@10",
K: "~ x ~ x ~@4", L: "~@6 x ~@2 x!4 ~@2 x ~@2 x ~@2 x ~@2", M: "~@2 x!3 ~@3", N: "x!4",
O: "x ~@5 x ~@2 x ~@2 x ~@2 x ~ x!2 ~@2 x ~@2", P: "~ x", Q: "x", R: "x ~@14 x!2 ~ x ~@2 x ~@2",
S: "~@6 x ~@11 x ~@2 x!2 ~", T: "x!6 ~@2", U: "x!2 ~@10 x ~@11", V: "x!2 ~@16 x ~ x ~ x ~", W: "~@2 x!4 ~@2",
X: "x ~@2 x ~@2 x!2 ~ x ~@2 x ~@2 x ~@8", Y: "~@9 x!3", Z: "~@3 x!3 ~@3 x!3", AA: "~@2 x ~@7 x!2 ~@3 x ~@8",
AB: "x ~@2 x ~@2 x ~", AC: "~ x ~@2 x ~@2 x", AD: "~@5 x ~@8 x ~@8 x", AE: "~@8 x ~@8 x ~@6",
AF: "~@2 x ~@8 x ~@8 x ~@3", AG: "x ~@7 x!2 ~@12 x ~", AH: "~@7 x ~@8 x ~@7", AI: "~ x ~@8 x ~@7 x ~@5",
AJ: "~@3 x ~@4 x ~@3 x ~@8 x ~@2", AK: "~@2 x ~@2 x ~@2", AL: "x ~@8 x ~@7 x ~@4 x ~", AM: "~@6 x!2 ~@12 x ~@3",
AN: "~ x ~@8 x ~@8 x ~@4", AO: "~@4 x ~@8 x ~@8 x ~", AP: "~@6 x ~@8 x ~@4 x ~@3", AQ: "~@4 x!2 ~@12 x ~@5",
AR: "~@4 x ~@8 x ~@4 x ~@5", AS: "~ x ~ x ~@12 x ~@7", AT: "~ x ~@4 x ~@8 x ~@8", AU: "~@2 x ~@8 x ~@4 x ~@6 x",
AV: "x ~@13 x ~@8 x", AW: "~ x ~@8 x ~@8 x ~@3 x", AX: "x ~@8 x ~@3 x ~@7 x!2 ~", AY: "~@7 x ~@4 x ~@3 x ~@4 x ~@2",
AZ: "~ x ~@3 x ~@4 x ~@3 x ~@4 x ~@3 x", BA: "~@4 x ~@3 x ~@3 x ~@4 x ~@3 x ~@2", BB: "~@2 x ~@3 x ~@8 x ~@8",
BC: "~@3 x ~@8 x ~@4 x ~@6", BD: "~@2 x ~@4 x ~@3 x ~@8 x ~@3", BE: "~ x ~@10", BF: "~@13 x ~@8 x ~", BG: "~ x ~@22",
BH: "x!3 ~@3 x ~@5", BI: "x ~@2 x ~@2 x ~ x!2 ~ x!2 ~@2 x ~@2 x ~@2 x ~@2", BJ: "x ~@5 x!2 ~@10 x!2 ~@4",
BK: "~ x ~@2", BL: "x!4 ~@8", BM: "~@3 x ~@2 x!4 ~@2",
})).gain(0.56)
// drums · low tom
const low_tom = s("lt").struct(`<
~@8 A ~@21 B ~@7 B ~@7 B ~@2 C@3 D ~@4 E C@3 F G ~@11 H ~@11 I C@3 D ~@4 E C@3 F G ~@21 J K L M N O P Q R S T U ~@4 V
~@7 W R X Y Z AA AB AC AD AE AF ~ AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW ~@3 AX AY ~@9 AZ ~
>`.pickRestart({
A: "~@2 x!2 ~@4", B: "~@7 x ~@4", C: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
D: "~@2 x ~@2 x ~@2 x ~@2 x ~@12", E: "~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~",
F: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~ x!2 ~ x!2 ~@2 x ~", G: "x!2 ~ x!2 ~@2 x ~ x!2 ~ x ~@11", H: "~@17 x ~@3 x ~@2",
I: "~ x ~@2 x ~", J: "~@21 x ~ x", K: "~@6 x ~ x ~@6 x ~ x ~@5 x", L: "~@2 x ~@5 x ~@2 x ~@5 x ~ x ~@4",
M: "~@2 x ~ x ~@6 x ~ x ~@6 x ~ x ~", N: "~@5 x ~ x ~@6 x ~ x ~@5 x ~", O: "~ x ~@5 x ~@2 x ~@5 x ~ x ~@5",
P: "~@19 x ~ x ~@2", Q: "~@4 x ~ x ~@6 x ~ x ~@5 x ~@2", R: "x ~@5 x ~ x ~@6 x ~ x ~@6", S: "x!2 ~@7 x!2 ~",
T: "~@3 x ~ x ~@5 x ~@2 x ~@5 x ~@2 x", U: "~@5 x ~ x ~@6 x ~ x ~@7", V: "~@5 x", W: "~@13 x ~ x ~@5 x ~@2",
X: "x ~ x ~@6 x ~ x ~@6 x ~ x ~@3", Y: "~@11 x ~@2 x ~@5 x ~@2 x", Z: "~@5 x ~ x ~@6 x ~ x ~@6 x",
AA: "~ x ~@6 x ~ x ~@13", AB: "~@10 x ~@2 x ~@5 x ~ x ~@2", AC: "~@4 x ~ x ~@6 x ~ x ~@6 x ~",
AD: "x ~@6 x ~ x ~@6 x ~ x ~@5", AE: "~@9 x ~@2 x ~@5 x ~ x ~@3", AF: "~@3 x ~ x ~@6 x ~ x ~@9",
AG: "~@10 x ~@4 x ~@3 x ~@3 x", AH: "~@4 x ~@3 x ~@4 x ~@3 x ~@4 x ~", AI: "~@2 x ~@4 x ~@3 x ~@3 x ~@4 x ~@3",
AJ: "x ~@4 x ~@3 x ~ x ~@2 x ~@3 x!2 ~@2 x ~", AK: "~@3 x!2 ~@2 x ~@4 x!2 ~@2 x ~@4 x!2 ~",
AL: "~ x ~@3 x ~ x ~@2 x ~@4 x ~@3 x ~@4", AM: "~@6 x ~ x ~@6 x ~ x ~@6", AN: "x ~ x ~@6 x ~ x ~@8 x!2 ~@2",
AO: "x ~@3 x ~ x ~@2 x ~@3 x ~ x ~@2 x ~@3 x ~", AP: "x ~@2 x ~@3 x!2 ~@2 x ~@4 x!2 ~@2 x ~@3", AQ: "~@17 x ~ x ~@4",
AR: "~@2 x ~ x ~@5 x ~@2 x ~@5 x ~ x ~@2", AS: "~@6 x!2 ~@2 x ~@4 x!2 ~@2 x ~@4",
AT: "x!2 ~@2 x ~@4 x!2 ~@2 x ~@3 x ~ x ~@2 x ~", AU: "~@2 x ~ x ~@2 x ~@3 x ~ x ~@2 x ~@3 x ~ x ~",
AV: "x ~@4 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x", AW: "x ~@2 x ~ x ~@2 x!2 ~@2 x ~@11",
AX: "~@6 x!4 ~@2 x ~@2 x ~@2 x ~@2 x ~@2", AY: "x ~@5 x!2", AZ: "~@6 x!4 ~@2",
})).gain(0.56)
// drums · hihat
const hihat = s("hh").struct(`<
~@9 A B A C A B D ~ A@10 B ~ E B E ~ E B E C E B@2 D E B E D E B@2 F E A E B E A E A E A E A ~@2 E A E ~ E A G ~ E B E
D E B E D E B E D E B@2 F E A E B E A E A E A E A ~@2 E A E ~ E A G ~@14 H I J K L M N O P Q R S T U V W X Y Z U V AA
AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS ~@2 AT AU ~ H AV AW AX ~@9 AY A AZ C AY A C ~@4
>`.pickRestart({
A: "x!4", B: "x!3 ~", C: "x", D: "x!2 ~@2", E: "~ x!3", F: "x!2", G: "~ x", H: "~@11 x",
I: "x ~ x ~@2 x ~@3 x ~@4 x ~ x ~ x ~ x ~ x ~", J: "~ x ~ x ~ x ~ x ~@4 x ~ x ~ x ~ x ~@2 x ~ x",
K: "~ x ~ x ~ x ~@2 x ~ x ~@3 x ~@2 x ~ x ~ x ~ x", L: "~ x ~@2 x ~ x ~ x ~ x ~ x ~@2 x ~ x ~ x ~ x ~@2",
// … 55 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.