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: 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 AM AN AO AP AM AN AO AP AM AN AO AP AM AN AO AP Y Z Y Z AQ AR AQ AR AS AD AE
AF AG@2 AH AI AJ AK AH AI U AL AT AU AV@7 AW@3 AX@2 AY AZ BA@2 BB BC@2 BD BE BF BG@2 BH@2 BI@2 BJ BK BL BM@2 BN BO
BP@6 BQ@7 BR@2 BS BT@3 BU@4 BV@2 BW BX BY BZ@2 CA ~@2 CB CC CD CE CF CG CD CH CI CJ CK ~
>`.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: "c3 b2@4 ~ e2@3 e2@3 c3 b2@4 ~ e2@3 e2@3",
AN: "c3 b2@4 ~ e2@3 e2!2 ~ c3 b2@4 ~ f2 g2@4 ~", AO: "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",
AP: "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
AQ: "b2@6 e2@3 e2@3 b2 [a#2,b2] a#2@4 e2@3 e2@3", AR: "a#2 [a2,a#2] a2@4 e2@3 e2@3 a2 [g#2,a2] g#2@4 e2@3 e2@3",
AS: "b2@6 e2@3 e2!2 ~ b2 [a#2,b2] a#2@4 e2@3 e2!2 ~", AT: "e2@9 g2 f#2 f2", AU: "e2@3 g2 f#2 f2 e2@3 g2 f#2 f2",
AV: "[e2@35 f2@18 g2@9 a2@9 e2@35 d3@18 a2@9 b2@9 e2@18 e2@2 e2@2 ~@4]/7",
AW: "[~@9 f2@18 g2@9 a2@9 e2@18 e2@2 e2@2 ~@5]/3", AX: "[~@8 d3@18 a2@2 a2@2 a2 ~@3 a2 b2@4 b2@4 ~ e2!4]/2",
AY: "e2@4 ~ e2!4 e2@4 ~ e2!4 e2@4 e2!2", AZ: "~ e2!2 e2@4 f2!3 ~ f2 f2@4 f2!4 ~ f2@3",
BA: "[~ g2!4 g2@4 ~ a2!4 a2@4 ~ e2!4 e2@4 ~ e2!4 e2@4 e2 ~ e2!3 e2@4 e2!2 ~]/2",
BB: "e2!2 e2@4 d3!3 ~ d3 d3@4 d3!4 ~ d3@4",
BC: "[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",
BD: "e2 e2@4 f2!4 ~ f2@4 f2!4 f2@4 ~ g2", BE: "g2!3 g2@4 ~ a2!4 a2@4 ~ e2!4 e2@3",
BF: "~@2 e2!4 e2@4 e2!2 ~ e2!2 e2@4 e2!3 ~ e2",
BG: "[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",
BH: "[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",
BI: "[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",
BJ: "~ e2 d3@3 d3 d3@3 d3 ~ d3@3 d3 d3@3 d3 ~ a2 a2@3", BK: "a2 ~@3 a2 b2@4 b2@4 e2@3 e2 ~ e2@3 e2 e2@2",
BL: "~ e2 ~ e2@3 e2 e2@3 e2 ~ e2@3 e2 e2@3 e2 ~ e2@2 e2",
BM: "[~ 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",
BN: "e2 ~ e2@3 e2 e2@3 e2 ~ e2@3 e2 e2@3 e2 e2@3 e2 ~", BO: "d3@3 d3 d3@3 d3 ~ d3@3 d3 d3@3 d3 ~ a2 a2@3 a2 ~",
BP: "[~ 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",
BQ: "[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",
BR: "[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",
BS: "f2!2 f2@2 f2!2 e2@9 d#3@9", BT: "[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",
BU: "[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",
BV: "[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",
BW: "e2 e2@2 e2 ~ e2 c#3 ~ e2!2 e2@2 e2!2 e3 ~@2 e2!2 e2@2 e2!2 d#3",
BX: "~@2 e2!2 e2@2 e2!2 d3 ~ e2 ~ e2 e2@2 e2!2 c#3 ~ e2!2 ~ e2@2",
BY: "e2!2 g2@2 g2!2 g2@2 ~ g2!2 g2@2 g2!2 g2@2 g2 ~ g2 g2@2 g2!2",
BZ: "[g2@2 g2!2 ~ g2@2 g2!2 g2@2 g2!2 g2@9 g2@9 g2@9 g2@8]/2", CA: "~ g2@18 ~@5", CB: "~@2 g2 f#2 a2 g2 b2 a2",
CC: "g2@2 f#2@2 f2@2 e2@6 f#2@3 ~@3 f#2@3 c3@3", CD: "f#2@6 f#2 ~@5 f#2 ~@5 f#2@3 g2@3", CE: "f#2@2 e2@2 e2!2 f#2 c3",
CF: "f#2@6 f#2 ~@5 f#2@3 ~@3 f#2@3 g2@3", CG: "f#2!2 e2@2 f#2 ~ f#2 c3", CH: "f#2@2 e2!2 g2@2 e2!2",
CI: "a2@2 e2!2 a2 g2 b2 a2", CJ: "g2 f#2 f2 e2@3 ~@6", CK: "~@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 F G@4 H@2 I J@8 ~@3 K L M@2 N@2 M@2 O P M@2 O P M@2 O P M@2 O P Q R Q R S T S T S T S T U@2 V@2 W@2
V@2 X Y M@2 O P M@2 O P M@2 O P M@2 O P Q R Q R S T S T S T S T U@2 V@2 W@2 V@2 X Y Z@7 AA@6 AB@6 AC@7 ~@4 AD@2 ~@4
AE@2 ~@4 AF AG ~@4 AH@2 ~@2 AI AJ@4 AK@5 ~@2 AL@4 ~@3 AM@2 AN@2 AO@2 AP AQ AR@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", F: "~@19 [b3,e4]@5, ~@3 g#3",
G: "[~ [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
H: "[~ [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", I: "~@7 [a#3,c#4]@17, ~ f#3@3",
J: "[~@10 b3@2 ~ [a#3,c#4]@5 ~ [b3,e4]@173, ~@3 [g3,d4] f#3@2 g#3@58]/8", K: "~@6 [a3,c4,f4] [g#3,b3,e4]",
L: "~ d4@11 ~ e4@5 [g3,c4,e4]@3 ~@3, [g3,b3]@2 [a3,c#4] ~", M: "[~ e4@41 [a3,c4,f4]@2 [g3,b3,d4]@4, [g#3,b3]@7 ~]/2",
N: "[~ e4@29 ~ b3@11 [a3,c#4,e4]@6, [g#3,b3]@5 [g3,d4]@2 ~]/2", // A G#m G5
O: "~ a#3@17 [a3,c4,f4]@2 [f#3,a#3,c#4]@4, [f#3,c#4]@3 ~", // F F# F#5
P: "[a3,c4,f4] [f#3,a#3,c#4]@5 [a3,c4,f4] [f#3,a#3,c#4]@3 [g3,b3,d4]@2", Q: "[g#3,b3,e4]@12 ~ d#4@11, ~ [g3,a#3]",
R: "~ d4@11 ~ f4@11, [f#3,a3] [g#3,c#4]", S: "[g#3,b3,e4] [f#3,b3,d#4]@5 [g3,a#3,d#4] [a#3,d4,f4]@5",
T: "[f#3,a3,d4] [a3,c#4,e4]@5 [g#3,c#4,f4] [g#3,c4,d#4]@5", U: "[g#3,c4,d#4] [g3,b3,d4]@5 [g#3,c4,d#4] [g3,b3,d4]@5",
V: "[~ 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#
W: "[~ 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#
X: "~ e4@5 ~ e4@5 ~ b3@5 ~ e4@5, [g#3,b3]!2 [g3,d4] [a3,c#4]", Y: "~ b3@5 ~@18, [g3,d4] ~@3",
Z: "[~ 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
AA: "[~@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
AB: "[~@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
AC: "[[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 …
AD: "[~@20 [a3,c#4,e4]@9 [f#3,b3,d#4]@9 ~@10]/2", AE: "[~@6 [a3,c#4,e4]@3 [f#3,b3,d#4]@3 ~@4]/2",
AF: "~@2 [a3,c#4,e4]", AG: "~ [b3,d#4]@9 ~@14, f#3@3 ~@5",
AH: "[~@14 [a3,c#4,e4]@8 ~ [b3,d#4]@9 ~@16, ~@22 f#3@9 ~@17]/2", AI: "~@6 [g#3,b3,e4]@9 ~ d#4@8, ~@5 [g3,a#3]@3",
AJ: "[~ 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
AK: "[~@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
AL: "[~@3 d4@88 ~@5, ~ [g3,b3]@44 ~@3]/4", AM: "[~@7 [b3,e4]@5 ~ [a#3,c#4]@32 ~ b3@2, ~@2 g#3@2 f#3@11 [g3,d4]]/2",
AN: "[~ [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
AO: "[~ [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
AP: "~ [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
AQ: "~ [c#4,e4]@5 ~ [b3,d4]@6 ~@11, a3 g3 ~@2", // C#m Bm
AR: "[~@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 ~ AB AC AD AE AF AG AH AI AJ
AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD AN BE BF AQ BG BH BI BJ BK AW BL BM BN BO BP BQ BR BS BT
BU AQ BV BW BX AD BY BZ CA CB CC CD ~@5 F@2 CE ~ F@2 CF 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: "~@5 x ~@6",
AC: "~@4 x ~@8 x ~@8 x ~", AD: "~@8 x!2 ~@2", AE: "~@3 x ~@4", AF: "~ x ~@2 x ~@2 x", AG: "~@15 x ~ x ~@6",
AH: "~ x ~", AI: "~@3 x ~@2 x ~@5 x ~@7 x ~ x ~", AJ: "~@5 x ~ x ~@6 x ~ x ~@5 x ~",
AK: "~ x ~@5 x ~ x ~@6 x ~ x ~@5", AL: "~ x ~ x ~@6 x ~ x ~@6 x ~ x ~@2", AM: "~@4 x ~ x ~@5 x ~@2 x ~@5 x ~@2",
AN: "x ~@5 x ~ x ~@6 x ~ x ~@6", AO: "~ x ~@2 x ~@5 x ~@2 x ~@4 x ~ x ~@3", AP: "~@3 x ~ x ~@5 x ~@2 x ~@5 x ~@2 x",
AQ: "~@5 x ~ x ~@6 x ~ x ~@6 x", AR: "~ x ~@15 x ~ x ~@4", AS: "~@2 x ~ x ~@5 x ~@2 x ~@5 x ~ x ~@2",
AT: "~@4 x ~ x ~@6 x ~ x ~@7 x", AU: "~@2 x ~@5 x ~@2 x ~@4 x ~@7", AV: "x ~@2 x ~@5 x ~@2 x ~@5 x ~ x ~@3",
AW: "~@3 x ~ x ~@6 x ~ x ~@6 x ~ x", AX: "~@6 x ~ x ~@6 x ~ x ~@5 x", AY: "~@2 x ~@5 x ~ x ~@8 x ~ x ~@2",
AZ: "~@2 x ~@8 x ~@9 x ~@2", BA: "x ~@5 x ~@2 x ~@3 x ~@8 x ~", BB: "~@7 x ~ x ~@6 x ~ x ~@4 x",
BC: "~ x ~@8 x ~ x ~@6 x ~ x ~@2", BD: "~@4 x ~ x ~@5 x ~@8 x ~@2", BE: "x ~@8 x ~@9 x ~@2 x ~",
BF: "~@4 x ~@2 x ~@3 x ~@2 x ~@5 x ~ x ~", BG: "~ x ~@6 x ~ x ~@6 x ~ x ~@4", BH: "~@10 x ~@2 x ~@5 x ~ x ~@2",
BI: "~@4 x ~ x ~@6 x ~ x ~@6 x ~", BJ: "x ~@6 x ~ x ~@7 x ~@2 x ~@3", BK: "~@2 x ~@2 x ~@3 x ~@2 x ~@5 x ~ x ~@3",
BL: "~@6 x ~ x ~@6 x ~ x ~@6", BM: "~@8 x ~ x ~@6 x ~ x ~@4", BN: "~@2 x ~ x ~@6 x ~ x ~@6 x ~@3",
BO: "~@5 x ~ x ~@7 x ~@2 x ~@4 x", BP: "~@3 x ~@5 x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x",
BQ: "x ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~ x ~ x ~@2 x!2 ~", BR: "~ x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@2",
BS: "x!2 ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2", BT: "~@2 x ~ x ~@2 x!2 ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2",
BU: "x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x ~ x ~ x!2 ~@4", BV: "~ x ~@6 x ~ x ~@8 x!2 ~@2 x",
BW: "~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x!2 ~@2 x ~ x", BX: "~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2",
BY: "x ~@2 x ~@5 x ~ x ~@6 x ~ x ~@3", BZ: "~@5 x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x",
CA: "x ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x", CB: "~@2 x!2 ~@2 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@2",
CC: "x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~ x ~ x ~@2 x!2", CD: "~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@10", CE: "~ x!2 ~@3 x ~",
CF: "~@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 X I@4 E P N@2 Q R I@2 S Y I@2 U V Z AA ~@11 AB AC AD AE AF AG AH AI AJ AK AL AM AN AE AI AO AP AQ AR AD AE AF
AS AT AU AJ AD AV AW AX AY AI AZ AP AL BA BB BC BD BE AC AG AJ BF AO AP BG AE AD BH AF BI BJ AI BK ~@2 B BL E@2 BM P E
BN BO BP BQ ~
>`.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 ~@5 x ~@2 x ~@2 x ~@2 x!2 ~ x ~@2 x ~@2", Y: "x ~@2 x ~@2 x!2 ~ x ~@2 x ~@2 x ~@8", Z: "~@9 x!3",
AA: "~@3 x!3 ~@3 x!3", AB: "~@2 x ~@7 x!2 ~@3 x ~@8", AC: "x ~@2 x ~@2 x ~", AD: "~ x ~@2 x ~@2 x",
AE: "~@5 x ~@8 x ~@8 x", AF: "~@8 x ~@8 x ~@6", AG: "~@2 x ~@8 x ~@8 x ~@3", AH: "x ~@7 x!2 ~@12 x ~",
AI: "~@7 x ~@8 x ~@7", AJ: "~ x ~@8 x ~@7 x ~@5", AK: "~@3 x ~@4 x ~@3 x ~@8 x ~@2", AL: "~@2 x ~@2 x ~@2",
AM: "x ~@8 x ~@7 x ~@4 x ~", AN: "~@6 x!2 ~@12 x ~@3", AO: "~ x ~@8 x ~@8 x ~@4", AP: "~@4 x ~@8 x ~@8 x ~",
AQ: "~@6 x ~@8 x ~@4 x ~@3", AR: "~@4 x!2 ~@12 x ~@5", AS: "~@2 x ~@8 x ~@7 x ~@4", AT: "~@4 x ~@8 x ~@4 x ~@5",
AU: "~ x ~ x ~@12 x ~@7", AV: "~ x ~@4 x ~@8 x ~@8", AW: "x ~@8 x ~@7 x ~@6", AX: "~@2 x ~@8 x ~@4 x ~@6 x",
AY: "x ~@13 x ~@8 x", AZ: "~ x ~@8 x ~@8 x ~@3 x", BA: "x ~@8 x ~@3 x ~@7 x!2 ~", BB: "~@7 x ~@4 x ~@3 x ~@4 x ~@2",
BC: "~ x ~@3 x ~@4 x ~@3 x ~@4 x ~@3 x", BD: "~@4 x ~@3 x ~@3 x ~@4 x ~@3 x ~@2", BE: "~@2 x ~@3 x ~@8 x ~@8",
BF: "~@3 x ~@8 x ~@4 x ~@6", BG: "~@2 x ~@4 x ~@3 x ~@8 x ~@3", BH: "~@6 x ~@7 x ~@8 x", BI: "~ x ~@10",
BJ: "~@13 x ~@8 x ~", BK: "~ x ~@22", BL: "x!3 ~@3 x ~@5", BM: "x ~@2 x ~@2 x ~ x!2 ~ x!2 ~@2 x ~@2 x ~@2 x ~@2",
BN: "x ~@5 x!2 ~@10 x!2 ~@4", BO: "~ x ~@2", BP: "x!4 ~@8", BQ: "~@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 F G@2 H I ~@11 J ~@11 K G@3 L ~@4 M F G@2 H I ~@21 N O P Q R S T U V W X Y
~@4 Z ~@7 AA V AB AC AD AE AF AG AH AI AJ ~ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA ~@3 BB BC ~@9 BD ~
>`.pickRestart({
A: "~@2 x!2 ~@4", B: "~@7 x ~@4", C: "~@2 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: "~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", G: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
H: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~ x!2 ~ x!2 ~@2 x ~", I: "x!2 ~ x!2 ~@2 x ~ x!2 ~ x ~@11", J: "~@17 x ~@3 x ~@2",
K: "~ x ~@2 x ~", L: "~ x ~@2 x ~@2 x ~@2 x ~@13", M: "~@4 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", N: "~@21 x ~ x",
O: "~@6 x ~ x ~@6 x ~ x ~@5 x", P: "~@2 x ~@5 x ~@2 x ~@5 x ~ x ~@4", Q: "~@2 x ~ x ~@6 x ~ x ~@6 x ~ x ~",
R: "~@5 x ~ x ~@6 x ~ x ~@5 x ~", S: "~ x ~@5 x ~@2 x ~@5 x ~ x ~@5", T: "~@19 x ~ x ~@2",
U: "~@4 x ~ x ~@6 x ~ x ~@5 x ~@2", V: "x ~@5 x ~ x ~@6 x ~ x ~@6", W: "x!2 ~@7 x!2 ~",
X: "~@3 x ~ x ~@5 x ~@2 x ~@5 x ~@2 x", Y: "~@5 x ~ x ~@6 x ~ x ~@7", Z: "~@5 x", AA: "~@13 x ~ x ~@5 x ~@2",
AB: "x ~ x ~@6 x ~ x ~@6 x ~ x ~@3", AC: "~@11 x ~@2 x ~@5 x ~@2 x", AD: "~@5 x ~ x ~@6 x ~ x ~@6 x",
AE: "~ x ~@6 x ~ x ~@13", AF: "~@10 x ~@2 x ~@5 x ~ x ~@2", AG: "~@4 x ~ x ~@6 x ~ x ~@6 x ~",
AH: "x ~@6 x ~ x ~@6 x ~ x ~@5", AI: "~@9 x ~@2 x ~@5 x ~ x ~@3", AJ: "~@3 x ~ x ~@6 x ~ x ~@9",
AK: "~@10 x ~@4 x ~@3 x ~@3 x", AL: "~@4 x ~@3 x ~@4 x ~@3 x ~@4 x ~", AM: "~@2 x ~@4 x ~@3 x ~@3 x ~@4 x ~@3",
AN: "x ~@4 x ~@3 x ~ x ~@2 x ~@3 x!2 ~@2 x ~", AO: "~@3 x!2 ~@2 x ~@4 x!2 ~@2 x ~@4 x!2 ~",
AP: "~ x ~@3 x ~ x ~@2 x ~@4 x ~@3 x ~@4", AQ: "~@6 x ~ x ~@6 x ~ x ~@6", AR: "x ~ x ~@6 x ~ x ~@8 x!2 ~@2",
AS: "x ~@3 x ~ x ~@2 x ~@3 x ~ x ~@2 x ~@3 x ~", AT: "x ~@2 x ~@3 x!2 ~@2 x ~@4 x!2 ~@2 x ~@3", AU: "~@17 x ~ x ~@4",
AV: "~@2 x ~ x ~@5 x ~@2 x ~@5 x ~ x ~@2", AW: "~@6 x!2 ~@2 x ~@4 x!2 ~@2 x ~@4",
AX: "x!2 ~@2 x ~@4 x!2 ~@2 x ~@3 x ~ x ~@2 x ~", AY: "~@2 x ~ x ~@2 x ~@3 x ~ x ~@2 x ~@3 x ~ x ~",
AZ: "x ~@4 x!2 ~@2 x ~ x ~@2 x!2 ~@2 x ~ x ~@2 x", BA: "x ~@2 x ~ x ~@2 x!2 ~@2 x ~@11",
BB: "~@6 x!4 ~@2 x ~@2 x ~@2 x ~@2 x ~@2", BC: "x ~@5 x!2", BD: "~@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 AA AB
// … 62 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.