0:00/0:00
// Hit the Lights — Metallica
// 160 bpm, 4/4, key A 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, 7/8 at bar 35, 4/4 at bar 36, 7/8 at bar 37, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 138 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.
setcpm(160/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 · overdriven guitar · "Guitar 1"
const overdriven_guitar = note("<~@9 A@5 B@3 ~@121>".pickRestart({
A: "[~@4 [a2,g3]@2 a2!6 [g3,c4]@2 [a3,d4] [a3,d4]@3 [d3,g3]@2 [a2,g3]@2 a2!6 a3 g3 e3 g3@2 d#3 e3@2 [a2,g3]@2 a2!6 [g3,c4]@2 [a3,d4] [a3,d4]@3 [d3,g3]@2 [a2,g3]@2 a2!6 d#3 e3 ~ d#4@4 ~ e3@3 ~@9]/5", // A7 C5 D5 G5 A7 C5 D5 G5 …
B: "~@4 e3@3 ~@9",
})).s("gm_overdriven_guitar").gain(0.11).pan(0)
// other · distortion guitar · "Guitar 1"
const distortion_guitar = note(`<
~@40 A B C D E ~@13 F G H I J ~@29 K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH@2 AI AJ AK AL AM AN AO AP
AQ AR AS AT AU AV AW AX AY@2 AZ ~ BA
>`.pickRestart({
A: "~@14 d6 a6", B: "g6 e6 d6 e6 g6 e6 d6 a6 g6 e6 c7 a6 g6 e6 d6 a6",
C: "g6 e6 c7 a6 g6 e6 d#6 e6 g6 e6 d6 c6 a5 c6 d6 e6", D: "g6 e6 d6 e6 g6 e6 d6 e6 g6 e6 c7@3 ~ c7 a6",
E: "a6!2 c7 a6 g6 e6 d6 e6 g6 e6 d#6@3 ~ d6@2", F: "~@8 g6@2 a6 g6@2 a6 g6@2",
G: "a6@2 g6 a6 g6@2 a6@2 d6 a6 g6@2 a6@2 g6 a6", H: "g6@2 a6 d6@2 a6 g6 a6 c7 a6 g6 a6 c7 a6 g6 e6",
I: "e6!2 g6 e6 [d6,f#6] c6 a5 c6 d6 c6 a5 g5 e5 g5 a5 g5", J: "e5@2 d5@2 c5@3 ~ c5 d5@6 ~",
K: "~@8 e6 b6 a6 f#6 e6 b6 a6 f#6", L: "e6 f#6 a6 f#6 e6 f#6 a6 f#6 e6 f#6 a6 f#6 e6 f#6 a6 f#6",
M: "e6 f#6 a6 f#6 e6 f#6 a6 f#6 d7 b6 c#7 b6 g#6 b6 c#7 b6", N: "d7 b6 c#7 b6 g#6 b6 d7 b6 a6@8",
O: "b6@2 b6@2 b6@2 b6 d7 b6 a6 b6 [b6,d7] a6 [f#6,a6] f#6!2", P: "a6 f#6 e6 d6!3 e6 d6 b5 a5 f#5 a5 b5 a5 f#5 e5",
Q: "d5@2 d5@2 b4@2 a4 b4 d5@2 e5 f#5 a5!2 b5 a5", R: "a5!3 b5 d6 b5 e6@3 e6@3 e6@2 e6@2",
S: "e6@2 f#6@3 e6@2 f#6 e6 f#6 e6 f#6 a6 f#6 e6 f#6", T: "a6 f#6 b6 f#6 a6 f#6 e6 f#6 a6 f#6 b6 f#6 a6 f#6 e6 f#6",
U: "a6 f#6 b6 f#6 a6 f#6 e6 f#6 a6 f#6 e6 c#6 b5 c#6 e6 c#6", V: "b5 a5!3 b5@3 b5@3 b5@2 b5@2 b5@2",
W: "b5 a5 d7@8 d7@3 ~ c#7 [b6,d7]", X: "a6 b6 d7 b6 a6 f#6 e6 f#6 a6 f#6 e6 d6 b5 d6 e6 d6",
Y: "b5 a5 f#5 a5 b5 a5 f#5 e5 d5!2 e5 d5 c#5 d5 f#5 a5", Z: "~ b5 e6@3 e6@3 e6@4 b6@2 ~ [e6,f#6]",
AA: "a6 f#6 a6 [e6,f#6] a6 [e6,f#6] a6 [e6,f#6] a6 [e6,f#6] a6 [e6,f#6] a6 [e6,f#6] e6 c#6", // Esus2
AB: "a6 f#6 b4!2 a6 [e6,f#6] e6 b4 a6 [e6,f#6] e6 e5 a6 [e6,f#6] e6 e5", // Esus2
AC: "a6 [e6,f#6] e6 e5 a6 [e6,f#6] e6 e5 a6 f#6 e6 f#6 a6 f#6 e6 c#6", AD: "b5 c#6 e6@2 e6@2 e6@2 e6@6 ~@2",
AE: "[f#5,a5]@5 ~ d5 b4@5 d5 e5@2 f#5", AF: "a5 f#5 e5 f#5 a5 [e5,f#5] d5 e5 d5 b4 d5@2 e5@2 b5 c#6",
AG: "f#6 e6 c#6 [f#6,a6] [e6,f#6] c#6 b5 c#6 e6 c#6 b5 a5!3 b5@2", // F#m Esus2
AH: "[~ b5@3 b5@2 b5@2 b5@2 b5 a5 d7@8 d7@3 ~ c#7 [b6,c#7] b6!2 d7 b6 a6 f#6]/2", // Bsus2
AI: "e6 f#6 a6 f#6 e6 d6!3 e6 d6 b5 a5 f#5 a5 b5 a5", AJ: "f#5 e5 d5!2 e5 d5 c#5 d5 e5 f#5 a5 b5 d6!2 e6 d6",
AK: "d6!2 e6 d6 e6 d6 b5 [g#5,d6] [a5,d#6] b5 d6!2 b5 g#5 c6 d#6", // G#dim Adim
AL: "c6 c#6 e6 c#6 a#5 d6 f6 d6 b5 d#6 f#6 d#6 c6 e6 g6 e6",
AM: "c#6 f6 g#6 f6 c#6 f6 g#6@2 d6 f6 a6 f#6 d#6 g6 a6 g#6", AN: "f6 g#6 c7 a6 g6 a#6 c#7 a#6 g6 b6 d7@3 d7@3",
AO: "d7@8 ~ e6 g6 e6 f#6 e6 b5 e6", AP: "a6 e6 g6 e6 d#6 e6 d#6 e6 a6 e6 g6 e6 f#6 e6 d#6 e6",
AQ: "a6 e6 g6 e6 f#6 e6!3 a6 e6 g6 e6 f#6 e6 d#6 e6", AR: "a6 e6 g6 e6 f#6 e6!3 c7@7 ~",
AS: "c7@5 ~ c7 a6!3 c7 a6 g6 e6!3", AT: "g6 e6 d6 c6 a5 d6 c6!3 [c6,d6] a5 g5 e5 g5 a5 g5",
AU: "e5 d5 c5 a4 a4@2 g4 a4 c5 d5 e5@2 g5!2 a5 g5", AV: "e5 g5 a5 c6 d6 e6 g6 [d#6,e6] g6 [e6,g6] e6 [a6,c7] g6 e6!3",
AW: "g6 e6 d#6 e6 g6 [d6,e6] c6!2 d6 c6 a5 c6 d6 c6 d6 e6", AX: "g6 e6 c7 [g6,a6] e6!2 g6 e6 [d6,e6] c6!3 d6 c6!3",
AY: "d6@3 ~ d6@3 ~ d6@3 ~ d6@3 ~", AZ: "d6@15 ~", BA: "d6@3 ~ d6@3 ~@9",
})).s("gm_distortion_guitar").gain(0.11).pan(0)
// chords · overdriven guitar · "Guitar 2"
const overdriven_guitar_2 = note(`<
A@4 B@6 ~@3 C@4 D@8 E@6 F@3 G@2 H I J K L M N M O P Q M R S T U V W X Y Z AA AB AC AD AC AE AF AG AC AH@2 AI AJ AK AL
AM G@2 H AN AO AP AO AQ AR AS AT AU@5 AV AW AX AY AZ BA BB BC@4 BD BE BF BG BH BI BJ BK BL BM BL BN BO BP BQ BR@5 BS
BT BU BV BW BX BY BZ@4 CA CB CC@4 CD
>`.pickRestart({
A: "[~@15 [e2,b2,e3]@26 [e2,b2,e3]@4 ~ [e2,b2,e3]@4 [e2,b2,e3]@4 ~ [e2,b2,e3]@4 [e2,b2,e3]@4 ~]/4", // E5
B: "[[e2,b2,e3]@4 [e2,b2,e3]@26 ~ [f#2,c#3]@52 ~@13]/6", // E5 F#5
C: "[~@4 [a2,g3]@2 a2!6 [g3,c4]@2 [a3,d4] [a3,d4]@3 [d3,g3]@2 [a2,g3]@2 a2!6 a3 g3 e3 g3@2 d#3 e3@2 [a2,g3]@2 a2!6 [g3,c4]@2 [a3,d4] [a3,d4]@3 [d3,g3]@2 [a2,g3]@2 a2!5 a4 d5@3 d5]/4", // A7 C5 D5 G5 A7 C5 D5 G5 …
D: "[g5@3 ~ [a2,g3]@2 a2!6 [g3,c4]@2 [a3,d4] [a3,d4]@3 [d3,g3]@2 [a2,g3]@2 a2!6 a3 g3 e3 g3@2 d#3 e3@2 [a2,g3]@2 a2!6 [g3,c4]@2 [a3,d4] [a3,d4]@3 [d3,g3]@2 [a2,g3]@2 a2!6 a3 g3 e3 g3@2 d#3 e3@2 [d3,a3,d4]@2 [d3,a3,d4]@5 ~ [g2,d3,g3]@2 [g2,d3,g3]@5 ~ [d3,a3,d4]@2 [d3,a3,d4]@5 ~ c3@3 b2@3 g2@2 [a2,g3]@2 a2!6 [g3,c4]@2 [a3,d4] [a3,d4]@3 [d3,g3]@2 [a2,g3]@2 a2!6 a3 g3 e3 g3]/8", // A7 C5 D5 G5 A7 C5 D5 G5 …
E: "[~ d#3 e3@2 [a2,g3]@2 a2!6 [g3,c4]@2 [a3,d4] [a3,d4]@3 [d3,g3]@2 [a2,g3]@2 a2!6 a3 g3 e3 g3@2 d#3 e3@2 [d3,a3,d4]@2 [d3,a3,d4]@5 ~ [g2,d3,g3]@2 [g2,d3,g3]@5 ~ [d3,a3,d4]@2 [d3,a3,d4]@5 ~ c3@3 b2@3 g2@2 [a2,g3]@2 a2!6 [g3,c4]@2 [a3,d4] [a3,d4]@3 [d3,g3]@2 [a2,g3]@2 a2!6 a3 g3 e3 g3]/6", // A7 C5 D5 G5 A7 D5 G5 D5 …
F: "[~ d#3 e3@2 [e2,b2,e3]@2 [e2,b2,e3]@13 ~ g2@3 f#2@2 g2@3 c3@3 b2@2 g2@3 [a2,e3]@2 ~@2 [a2,e3]@3 ~ g2 [a2,e3] ~@2]/3", // E5 A5
G: "[[a2,e3]@3 ~ g2 [a2,e3] ~@2 [a2,e3]@3 ~ [c3,g3]@3 [g2,d3]@3 [a2,e3]@2 ~@2 [a2,e3]@3 ~ g2 [a2,e3] ~@2 [a2,e3]@2]/2", // A5 C5 G5 A5
H: "~@2 g2 [a2,e3] ~@2 [a2,e3]@3 ~ [c3,g3]@3 [g2,d3]@3", I: "[a2,e3]@2 ~@2 [a2,e3]@3 ~ g2 [a2,e3] ~@2 [a2,e3]@3 ~",
J: "g2 [a2,e3] ~@2 [a2,e3]@3 ~ [c3,g3]@3 [g2,d3]@3 [a2,e3]@2", K: "~@2 [a2,e3]@3 ~ g2 [a2,e3] ~@2 [a2,e3]@3 ~@3",
L: "~@7 [a2,g3]", M: "a2!6 [g3,c4]@2 [a3,d4] [a3,d4]@3 [d3,g3]@2 [a2,g3]@2",
N: "a2!6 a3 g3 e3 g3@2 d#3 e3@2 [a2,g3]@2", O: "a2!6 a3 g3 e3 g3@2 d#3 e3@2 [d3,a3,d4]@2",
P: "[d3,a3,d4]@5 ~ [g2,d3,g3]@2 [g2,d3,g3]@5 ~ [d3,a3,d4]@2", Q: "[d3,a3,d4]@5 ~ c3@3 b2@3 g2@2 [a2,g3]@2",
R: "a2!6 a3 g3 e3 g3@2 d#3 e3@2 [e2,b2,e3]@2", S: "[e2,b2,e3]@13 ~ g2@2", T: "~ f#2@2 g2@3 c3@3 b2@2 g2@3 [a2,e3]@2",
U: "~@2 [a2,e3]@3 ~ g2 [a2,e3] ~@2 [a2,e3]@3 ~ g2 [a2,e3]", V: "~@2 [a2,e3]@3 ~ [c3,g3]@3 [g2,d3]@3 [a2,e3]@2 ~@2",
W: "[a2,e3]@3 ~ g2 [a2,e3] ~@2 [a2,e3]@3 ~ g2 [a2,e3] ~@2", // A5
X: "[a2,e3]@3 ~ [c3,g3]@3 [g2,d3]@3 [a2,e3]@2 ~@2 [a2,e3]@2", // A5 C5 G5 A5
Y: "~@2 g2 [a2,e3] ~@2 [a2,e3]@3 ~ g2 [a2,e3] ~@2 [a2,e3]@2", Z: "~@2 [c3,g3]@3 [g2,d3]@3 [a2,e3]@2 ~@2 [a2,e3]@3 ~",
AA: "g2 [a2,e3] ~@2 [a2,e3]@3 ~@9", AB: "~@8 [a2,g3]@2 a2!6",
AC: "[g3,c4]@2 [a3,d4] [a3,d4]@3 [d3,g3]@2 [a2,g3]@2 a2!6", AD: "a3 g3 e3 g3@2 d#3 e3@2 [a2,g3]@2 a2!6",
AE: "a3 g3 e3 g3@2 d#3 e3@2 [d3,a3,d4]@2 [d3,a3,d4]@5 ~", // D5
AF: "[g2,d3,g3]@2 [g2,d3,g3]@5 ~ [d3,a3,d4]@2 [d3,a3,d4]@5 ~", AG: "c3@3 b2@3 g2@2 [a2,g3]@2 a2!6",
AH: "[a3 g3 e3 g3@2 d#3 e3@2 [e2,b2,e3]@2 [e2,b2,e3]@13 ~ g2@3 f#2@2 g2@3]/2", // E5
AI: "c3@3 b2@2 g2@3 [a2,e3]@2 ~@2 [a2,e3]@3 ~", AJ: "g2 [a2,e3] ~@2 [a2,e3]@3 ~ g2 [a2,e3] ~@2 [a2,e3]@3 ~",
AK: "[c3,g3]@3 [g2,d3]@3 [a2,e3]@2 ~@2 [a2,e3]@3 ~ g2 [a2,e3]", // C5 G5 A5
AL: "~@2 [a2,e3]@3 ~ g2 [a2,e3] ~@2 [a2,e3]@3 ~ [c3,g3]@2", // A5 C5
AM: "~ [g2,d3]@3 [a2,e3]@2 ~@2 [a2,e3]@3 ~ g2 [a2,e3] ~@2", AN: "[a2,e3]@7 ~ [g2,d3,g3,b3]@7 ~",
AO: "[a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [g3,c4]@3 ~", // A C5
AP: "[a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a3,d4]@3 ~", AQ: "a3@3 g3@3 e3@2 d#3@2 d3@2 c3@2 [a2,a3]@2",
AR: "~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [g3,c4]@3 ~ [a2,a3]@2", // A C5 A
AS: "~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a3,d4]@3 ~ [a2,a3]@2", // A D5 A
AT: "~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [g3,c4]@3 ~ a3@2", // A C5
AU: "[~ g3@3 e3@2 d#3@2 d3@2 c3@2 [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [g3,c4]@3 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a3,d4]@3 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [g3,c4]@3 ~ a3@3 g3@3 e3@2 d#3@2 d3@2 c3@2 [a2,a3]@2 ~ [a2,a3]@2 ~]/5", // A C5 A D5 A C5 A
AV: "[a2,a3]@2 ~ [a2,a3]@2 ~ [g3,c4]@3 ~ [a2,a3]@2 ~ [a2,a3]@2 ~", // A C5 A
AW: "[a2,a3]@2 ~ [a2,a3]@2 ~ [a3,d4]@3 ~ [a2,a3]@2 ~ [a2,a3]@2 ~", // A D5 A
AX: "[a2,a3]@2 ~ [a2,a3]@2 ~ [g3,c4]@3 ~ a3@3 g3@3", AY: "e3@2 d#3@2 d3@2 c3@2 [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2",
AZ: "~ [b2,f#3]@2 ~ [d3,a3]@3 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2", // B5 D5 B5
BA: "~ [b2,f#3]@2 ~ [e3,b3]@3 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2", // B5 E5 B5
BB: "~ [b2,f#3]@2 ~ [d3,a3]@3 ~ b3@3 a3@3 f#3@2", // B5 D5
BC: "[f3@2 e3@2 d3@2 [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [d3,a3]@3 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [e3,b3]@3 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [d3,a3]@3 ~ b3@3 a3@3 f#3@2 f3@2]/4", // B5 D5 B5 E5 B5 D5
BD: "e3@2 d3@2 [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~", // B5
BE: "[d3,a3]@3 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~", // D5 B5
BF: "[e3,b3]@3 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~", BG: "[d3,a3]@3 ~ b3@3 a3@3 f#3@2 f3@2 e3@2",
BH: "d3@2 [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [d3,a3]@2", // B5 D5
BI: "~@2 [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [e3,b3]@2", // B5 E5
BJ: "~@2 [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [d3,a3]@2", BK: "~@2 b3@3 a3@3 f#3@2 f3@2 e3@2 d3@2",
BL: "[b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [d3,a3]@3 ~", // B5 D5
BM: "[b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [e3,b3]@3 ~", // B5 E5
BN: "b3@3 a3@3 f#3@2 f3@2 e3@2 d3@2 [b2,f#3]@2", // B5
BO: "~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [d3,a3]@3 ~ [b2,f#3]@2", // B5 D5 B5
BP: "~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [e3,b3]@3 ~ [b2,f#3]@2", // B5 E5 B5
BQ: "~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [d3,a3]@3 ~ b3@2", // B5 D5
BR: "[~ a3@3 f#3@2 f3@2 e3@2 d3@2 [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [d3,a3]@3 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [e3,b3]@3 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~ [d3,a3]@3 ~ b3@3 a3@3 f#3@2 f3@2 e3@2 d3@2 [b2,f#3]@2 ~ [b2,f#3]@2 ~]/5", // B5 D5 B5 E5 B5 D5 B5
BS: "[b2,f#3]@2 ~ [b2,f#3]@2 ~ [d3,a3]@3 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~", // B5 D5 B5
BT: "[b2,f#3]@2 ~ [b2,f#3]@2 ~ [e3,b3]@3 ~ [b2,f#3]@2 ~ [b2,f#3]@2 ~", // B5 E5 B5
BU: "[b2,f#3]@2 ~ [b2,f#3]@2 ~ [d3,a3]@3 ~ b3@3 a3@3", BV: "f#3@2 f3@2 e3@2 d3@2 [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2",
BW: "~ [a2,a3]@2 ~ [g3,c4]@3 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2", // A C5 A
BX: "~ [a2,a3]@2 ~ [a3,d4]@3 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2", BY: "~ [a2,a3]@2 ~ [g3,c4]@3 ~ a3@3 g3@3 e3@2",
BZ: "[d#3@2 d3@2 c3@2 [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [g3,c4]@3 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a3,d4]@3 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [a2,a3]@2 ~ [g3,c4]@3 ~ a3@3 g3@3 e3@2 d#3@2]/4", // A C5 A D5 A C5
CA: "d3@2 c3@2 a3@3 g3@3 e3@2 d#3@2 d3@2", CB: "c3@2 a3@3 g3@3 e3@2 d#3@2 d3@2 c3@2",
CC: "[a2!16 a2!16 a2!16 a2!16, [e3,a3]@63 ~]/4", CD: "[a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~@9",
})).s("gm_overdriven_guitar").gain(0.11).pan(1)
// other · distortion guitar · "Guitar 3"
const distortion_guitar_2 = note(`<
~@103
[~@4 e6@3 e6@3 e6@2 e6@2 e6@2]
[e6 c6 ~@14]
~@28
[g6@3 ~ g6@3 ~ g6@3 ~ g6@3 ~]!2
[g6@15 ~]
~
[g6@3 ~ g6@3 ~@9]
>`).s("gm_distortion_guitar").gain(0.11).pan(0)
// bass · electric bass finger · "Bass"
const bass = note(`<
A B C@2 D E F G H I ~@3 J@4 K@8 L@7 M@2 N@2 O P Q R S T U T V W X T Y Z AA AB AC AD AE AF AG AH AI AJ AK AJ AL AM AN
AJ AO AP AQ AR AS AT AU N@2 ~ AV ~@15 AW AX AY AZ BA@4 BB BC BD BE BF BG BH BI BJ BK BJ BL BM BN BO BP@5 BQ BR BS BT
BU BV BW BX@4 BY BZ CA@4 CB
>`.pickRestart({
A: "~@15 e1", B: "e1!7 ~ e1!8", C: "[e1 ~ e1!7 e1@4 ~ e1@4 e1@4 ~ e1@4 e1@4 ~]/2", D: "e1@4 e1!5 ~ e1!6",
E: "e1!3 ~ e1!9 ~ e1 f#1", F: "f#1!7 ~ f#1!8", G: "f#1 ~ f#1!9 ~ f#1!4", H: "f#1!5 ~ f#1!9 ~", I: "f#1!4 ~@12",
J: "~@4 a1@3 ~@9",
K: "[~@4 a1@2 a1!6 c2@2 d2 d2@3 g1@2 a1@2 a1!6 a2 g2 e2 g2@2 d#2 e2@2 a1@2 a1!6 c2@2 d2 d2@3 g1@2 a1@2 a1!6 a2 g2 e2 g2@2 d#2 e2@2 d2@2 d2@5 ~ g1@2 g1@5 ~ d2@2 d2@5 ~ c2@3 b1@3 g1@2 a1@2 a1!6 c2@2 d2 d2@3 g1@2 a1@2 a1!6 a2 g2 e2 g2]/8",
L: "[~ d#2 e2@2 a1@2 a1!6 c2@2 d2 d2@3 g1@2 a1@2 a1!6 a2 g2 e2 g2@2 d#2 e2@2 d2@2 d2@5 ~ g1@2 g1@5 ~ d2@2 d2@5 ~ c2@3 b1@3 g1@2 a1@2 a1!6 c2@2 d2 d2@3 g1@2 a1@2 a1!6 a2 g2 e2 g2@2 d#2 e2@2 e1@2 e1!10]/7",
M: "[e1!4 g1@3 f#1@2 g1@3 c2@3 b1@2 g1@3 a1@2 ~@2 a1@3 ~ g1 a1 ~@2]/2",
N: "[a1@3 ~ g1 a1 ~@2 a1@3 ~ c2@3 g1@3 a1@2 ~@2 a1@3 ~ g1 a1 ~@2 a1@2]/2", O: "~@2 g1 a1 ~@2 a1@3 ~ c2@3 g1@3",
P: "a1@2 ~@2 a1@3 ~ g1 a1 ~@2 a1@3 ~", Q: "g1 a1 ~@2 a1@3 ~ c2@3 g1@3 a1@2", R: "~@2 a1@3 ~ g1 a1 ~@2 a1@3 ~@3",
S: "~@7 a1", T: "a1!6 c2@2 d2 d2@3 g1@2 a1@2", U: "a1!6 a2 g2 e2 g2@2 d#2 e2@2 a1@2",
V: "a1!6 a2 g2 e2 g2@2 d#2 e2@2 d2@2", W: "d2@5 ~ g1@2 g1@5 ~ d2@2", X: "d2@5 ~ c2@3 b1@3 g1@2 a1@2",
Y: "a1!6 a2 g2 e2 g2@2 d#2 e2@2 e1@2", Z: "e1!14 g1@2", AA: "~ f#1@2 g1@3 c2@3 b1@2 g1@3 a1@2",
AB: "~@2 a1@3 ~ g1 a1 ~@2 a1@3 ~ g1 a1", AC: "~@2 a1@3 ~ c2@3 g1@3 a1@2 ~@2", AD: "a1@3 ~ g1 a1 ~@2 a1@3 ~ g1 a1 ~@2",
AE: "a1@3 ~ c2@3 g1@3 a1@2 ~@2 a1@2", AF: "~@2 g1 a1 ~@2 a1@3 ~ g1 a1 ~@2 a1@2", AG: "~@2 c2@3 g1@3 a1@2 ~@2 a1@3 ~",
AH: "g1 a1 ~@2 a1@3 ~@9", AI: "~@8 a1@2 a1!6", AJ: "c2@2 d2 d2@3 g1@2 a1@2 a1!6",
AK: "a2 g2 e2 g2@2 d#2 e2@2 a1@2 a1!6", AL: "a2 g2 e2 g2@2 d#2 e2@2 d2@2 d2@5 ~", AM: "g1@2 g1@5 ~ d2@2 d2@5 ~",
AN: "c2@3 b1@3 g1@2 a1@2 a1!6", AO: "a2 g2 e2 g2@2 d#2 e2@2 e1@2 e1!6", AP: "e1!8 g1@3 f#1@2 g1@3",
AQ: "c2@3 b1@2 g1@3 a1@2 ~@2 a1@3 ~", AR: "g1 a1 ~@2 a1@3 ~ g1 a1 ~@2 a1@3 ~", AS: "c2@3 g1@3 a1@2 ~@2 a1@3 ~ g1 a1",
AT: "~@2 a1@3 ~ g1 a1 ~@2 a1@3 ~ c2@2", AU: "~ g1@3 a1@2 ~@2 a1@3 ~ g1 a1 ~@2", AV: "a1@7 ~ g1@7 ~",
AW: "~@8 b1@2 ~ b1@2 ~ b1@2", AX: "~ b1@2 ~ d2@3 ~ b1@2 ~ b1@2 ~ b1@2", AY: "~ b1@2 ~ e2@3 ~ b1@2 ~ b1@2 ~ b1@2",
AZ: "~ b1@2 ~ d2@3 ~ b2@3 a2@3 f#2@2",
BA: "[f2@2 e2@2 d2@2 b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ d2@3 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ e2@3 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ d2@3 ~ b2@3 a2@3 f#2@2 f2@2]/4",
BB: "e2@2 d2@2 b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~", BC: "d2@3 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~",
BD: "e2@3 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~", BE: "d2@3 ~ b2@3 a2@3 f#2@2 f2@2 e2@2",
BF: "d2@2 b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ d2@2", BG: "~@2 b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ e2@2",
BH: "~@2 b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ d2@2", BI: "~@2 b2@3 a2@3 f#2@2 f2@2 e2@2 d2@2",
BJ: "b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ d2@3 ~", BK: "b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ e2@3 ~",
BL: "b2@3 a2@3 f#2@2 f2@2 e2@2 d2@2 b1@2", BM: "~ b1@2 ~ b1@2 ~ b1@2 ~ d2@3 ~ b1@2",
BN: "~ b1@2 ~ b1@2 ~ b1@2 ~ e2@3 ~ b1@2", BO: "~ b1@2 ~ b1@2 ~ b1@2 ~ d2@3 ~ b2@2",
BP: "[~ a2@3 f#2@2 f2@2 e2@2 d2@2 b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ d2@3 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ e2@3 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ d2@3 ~ b2@3 a2@3 f#2@2 f2@2 e2@2 d2@2 b1@2 ~ b1@2 ~]/5",
BQ: "b1@2 ~ b1@2 ~ d2@3 ~ b1@2 ~ b1@2 ~", BR: "b1@2 ~ b1@2 ~ e2@3 ~ b1@2 ~ b1@2 ~",
BS: "b1@2 ~ b1@2 ~ d2@3 ~ b2@3 a2@3", BT: "f#2@2 f2@2 e2@2 d2@2 a1@2 ~ a1@2 ~ a1@2",
BU: "~ a1@2 ~ c2@3 ~ a1@2 ~ a1@2 ~ a1@2", BV: "~ a1@2 ~ d2@3 ~ a1@2 ~ a1@2 ~ a1@2",
BW: "~ a1@2 ~ c2@3 ~ a2@3 g2@3 e2@2",
BX: "[e2@2 d2@2 c2@2 a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ c2@3 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ d2@3 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ c2@3 ~ a2@3 g2@3 e2@2 e2@2]/4",
BY: "d2@2 c2@2 a2@3 g2@3 e2@2 e2@2 d2@2", BZ: "c2@2 a2@3 g2@3 e2@2 e2@2 d2@2 c2@2", CA: "a1!16",
CB: "a1@3 ~ a1@3 ~@9",
})).s("gm_electric_bass_finger").gain(0.72)
// drums · kick
const kick = s("bd").struct(`<
A B C D E F B G H I ~@3 J@4 K L@14 M N O P Q R S T U V@9 W X Y Z AA P AB AC AD L@8 AE AF R AG X N O P Q R ~@3 AH ~@2
AI AJ ~@2 AK AL ~@2 AM AN L@2 AO AP V@2 AQ AR L@2 AS AT V@2 AU L@3 AV V@3 AW L@2 AX AY V@2 AZ AN L@2 AO AP V@2 AQ BA
BB BC@4 BD
>`.pickRestart({
A: "~@15 x", B: "x!7 ~ x!8", C: "x ~ x!8 ~@4 x ~", D: "~@2 x ~@4 x ~@3 x ~@4", E: "x ~@3 x!5 ~ x!6",
F: "x!3 ~ x!9 ~ x!2", G: "x ~ x!9 ~ x!4", H: "x!5 ~ x!9 ~", I: "x!4 ~@12", J: "~ x ~@2", K: "~ x!3", L: "x!4",
M: "x ~@3 x ~@4 x ~@6", N: "~ x ~@2 x ~@7 x ~@3", O: "~@4 x ~@7 x ~@2 x", P: "~ x ~@3 x ~@2",
Q: "~@2 x ~@7 x ~@2 x ~@2", R: "x!2", S: "x ~@7 x ~@2 x ~@2 x ~", T: "~@3 x ~@4", U: "x!4 ~@2 x!3 ~ x ~@3 x ~",
V: "~ x ~ x ~ x ~ x", W: "~@3 x ~@7 x ~@2 x ~", X: "~@3 x ~@3 x", Y: "~@6 x ~@2 x ~@2 x ~@3", Z: "~ x ~ x",
AA: "~@4 x ~@2 x ~@2 x ~@5", AB: "~@2 x ~@2 x ~@2 x ~@7", AC: "x ~@4 x!2 ~", AD: "~ x!2 ~ x ~ x ~",
AE: "x ~@3 x ~@3 x ~@4 x ~@2", AF: "~@5 x ~@2 x ~@7", AG: "x ~@2 x ~@2 x ~@7 x ~",
AH: "x ~@2 x ~@2 x ~ x ~ x ~ x ~@3", AI: "~@7 x", AJ: "~ x ~@2 x ~ x ~ x ~ x ~@5", AK: "~@12 x ~@2 x",
AL: "~ x!4 ~@3", AM: "~@10 x ~@2 x ~@2", AN: "x!5 ~ x ~", AO: "x ~@3 x ~@3 x ~@2 x ~@2 x ~", AP: "x!4 ~ x ~ x",
AQ: "~@2 x ~@3 x ~@2 x ~@2 x ~ x ~", AR: "x!3 ~ x ~ x ~", AS: "x ~@3 x ~@2 x ~@2 x ~ x ~ x ~", AT: "x!2 ~ x ~ x ~ x",
AU: "~@2 x ~@2 x ~@2 x ~ x ~ x ~ x ~", AV: "x ~@2 x ~@2 x ~ x ~ x ~ x ~ x ~", AW: "~ x ~@2 x ~ x ~ x ~ x ~ x ~@3",
AX: "x ~@3 x ~@3 x ~@3 x ~@2 x", AY: "~ x!5 ~ x", AZ: "~@2 x ~@3 x ~@3 x ~@2 x ~@2",
BA: "x ~ x ~ x ~@2 x ~@2 x ~ x ~ x ~", BB: "x ~ x ~@2 x ~@2 x ~ x ~ x ~ x ~", BC: "x!16", BD: "x!2 ~@2",
})).gain(0.72)
// … 48 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.