0:00/0:00
// Animal — Pearl Jam
// 120 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 78 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · distortion guitar
const distortion_guitar = note(`<
A B C D E F@2 G@2 H I@2 J K L M N@4 O ~@3 P@5 ~@3 Q R S T@3 U V@3 W@2 ~@8 X@8 Y@4 Z@5 ~@9
>`.pickRestart({
A: "~ a2@3 ~@2 a2@3 ~@2 [a2,e3]@6 a2@5 a3@2 e3@3 ~@2 a2@2 ~, e3@4 ~ e3@3 ~@19 d#3@3 ~@2, ~@14 d3 ~", // A5
B: "[a2,e3]@6 ~ a2@4 ~@2 [a2,e3]@6 ~@2 e3@4 ~ a3@2 e3@2 d#3@2, ~@6 e3@4 ~@11 a2@11", // A5
C: "~ a2@2 ~ a2@5 ~@2 a2@4 ~@3 [a2,e3]@6 ~ [a2,e3]@5 a3@2, d3@2 ~ e3@6 ~ e3@4 ~@18", // A5
D: "~ [a2,e3]@2 d#3@2 ~ a2@2 [a2,e3]@5 ~@2 [a2,e3]@4 ~@3 [a2,e3]@5 ~@2 e3@3, ~@5 d3@2 ~@21 a2@4", // A5
E: "~@2 a3@2 e3@2 d#3@2 ~ a2@2 ~ [a2,e3]@6 ~ [a2,e3]@4 ~@3 [a2,e3]@5 ~, ~ a2@3 d3 ~@11", // A5
F: "[~ [a2,e3]@4 ~@3 e3@3 d#3@2 d3@2 ~ e3@6 ~ a2@4 ~@3 [a2,e3]@5 ~@2 e3@3 ~@4 e3@2 ~@2 d3@2 a2@2 ~ a2@4 ~@2 e3@4 ~, ~@6 a3@3 ~@13 e3@4 ~@15 a3@3 ~@2 d#3@2 ~@4 e3@6 ~@6, ~@7 a2@6 ~@2 a2@7 ~@14 a2@3 ~@3 a2@4 ~ a2@2 ~@9 a2@4 ~@2]/2", // A5
G: "[~@2 [a2,e3]@5 ~ e3@3 ~@2 a3@2 e3@3 d#3@2 ~ a2@2 ~ a2@5 ~ [a2,e3]@4 ~@3 e3@4 ~@2 e3@3 ~@2 a3@2 e3@2 d#3@2 ~ a2@2 ~@2 [d3,a3]@5, ~@7 a2@3 ~@3 a2@6 ~ d3@2 ~ e3@6 ~@7 a2@5 ~@2 a2@10 ~ d3@2 ~@8]/2", // A5 D5
H: "~@3 a3@5 ~@24, ~@2 d3@5 ~@25",
I: "[~ [d3,a3]@7 ~ [d3,a3]@5 ~@12 a3@3 d#3@2 d3@3 a2@2 [a2,e3]@6 ~ [a2,e3]@4 ~@3 e3@5 ~@2 e3@3 ~ a3@2 ~, ~@49 a2@5 ~ a2@6 ~@3]/2", // D5 A5
J: "d#3@2 d3@3 ~@4 e3@5 ~ [a2,e3]@5 ~@2 e3@5 ~ [a2,e3]@4, ~@5 a2@9 ~@7 a2@5 ~@6", // A5
K: "~ a3@2 e3@2 d#3@2 ~ a2@2 ~ [a2,e3]@6 ~@3 [a2,d3,a3]@5 ~@7, ~@7 d3@2 ~@23", // A5 D5
L: "~@16 [d3,a3]@9 ~ d3@5 ~, ~@25 a3@5 ~@2", M: "~@20 e3@6 ~ a2@4 ~, ~@19 a2@6 ~ e3@5 ~",
N: "[~ [a2,e3]@5 ~@2 e3@4 a3@2 ~ d#3@2 d3@2 a2@4 ~ [b2,f3]@5 ~ g3@6 c3@7 c3@5 ~ g3 ~ g3@3 ~ [c3,g3]@3 ~ d3@6 ~ d3@5 ~ d3@5 ~@3 d3@3 ~ d3 ~ d3@3 ~ d3@2 ~@3 [g2,d3]@5 ~ [g2,d3]@6 [g2,d3]@3 ~ f#2@5 ~ f#2@4 ~ f#2@3 ~ f#2@2, ~@7 a2@8 ~@14 c3@6 ~ g3@12 ~ c3@5 ~@5 a3@19 ~ a3@3 ~@2 a3@8 ~@19 c#3@17]/4", // A5 Bdim C5 G5
O: "~@3 c#3@2 ~@27, ~ f#2 ~@14",
P: "[~@12 [a2,a3]@28 g3 d4 ~ d4 ~ d4@4 ~@2 c4@21 ~@2 [a3,d4]@2 [d3,a3,d4] ~@2 d3@25 ~@2 [g2,d3]@2 ~ d3 ~ [g2,d3]@13 ~ [c#3,f#3]@11 ~@3 g3@5 ~@16, ~@11 e3@27 ~@2 c3@31 ~@2 d3@2 ~@33 g2@2 ~@14 f#2@11 ~@3 [g2,d3]@6 ~@16, ~@42 g3@2 ~ g3@27 ~@6 [a3,d4]@26 ~@5 g3@14 ~@16 a3@2 ~@19]/5", // A D5 G5 F#5 G5 D5
Q: "~@22 b2@3 ~@2 a2@2 b2@2 c3, ~@21 c3@3 ~@2 g2@2 ~@4", R: "~@2 [d3,a3]@7 ~@2 [d3,a3]@5 ~@16",
S: "~@4 [d3,a3]@7 ~ [d3,a3]@5 ~@15", // D5
T: "[~@7 [g2,e3]@6 ~ e3@5 ~ [a2,e3]@5 ~ e3@4 a3@2 e3@3 d#3@2 d3@2 ~@2 e3@5 ~@2 [a2,e3]@5 ~ [a2,e3]@6 ~ e3@3 a3@3 e3@3 ~ d3@2 ~@2 a2 e3@5 ~@3 [d3,a3]@6 ~@6, ~@13 a2@5 ~@8 a2@10 ~@3 a2@8 ~@14 a2@9 d#3@2 ~@24]/3", // C A5 D5
U: "~@14 [d3,a3]@6 ~@3 [d3,a3]@5 ~@4", // D5
V: "[~@16 a2@6 ~ [a2,e3]@6 [a2,e3]@7 ~ a2@4 a2@3 ~ [a2,e3]@3 ~@2 c3@5 ~ [c3,g3]@6 ~ c3@7 c3@4 ~ [c3,g3]@3 ~ [c3,g3]@4 [d3,a3]@6 ~ [d3,a3]@6, ~@15 e3@7 ~@14 e3@8 ~@5 g3@6 ~@8 g3@11 ~@22]/3", // A5 C5 D5
W: "[[d3,a3]@7 ~ d3@5 ~ d3@3 ~ d3@2 ~@3 [g2,d3]@6 ~ [g2,d3]@6 ~ [f#2,c#3]@11 ~ [f#2,c#3]@4 ~ [f#2,c#3]@4 ~@6, ~@2 a3@3 ~@11]/2", // D5 G5 F#5
X: "[~@14 [a2,e3]@7 ~ a2@5 ~ [a2,e3]@10 ~ [a2,e3]@5 ~@4 [c3,g3]@29 ~ [d3,a3]@26 ~@4 d3@11 ~ [f#2,c#3]@14 ~@2 [g2,d3]@3 ~@2 [a2,e3]@32 ~@2 [b2,f3]@5 ~ [c3,g3]@21 ~@4 d3@2 ~ [d3,a3]@8 [d3,a3]@24 ~@4 d3@9 ~@2, ~@21 e3@5 ~@81 g2@12 ~@84 d3@2 ~@39 g2@10 ~@2, ~@51 a3 ~@12]/8", // A5 C5 D5 F#5 G5 A5 Bdim C5 …
Y: "[[f#2,c#3]@13 ~@2 [g2,d3]@4 ~@2 [a2,e3]@26 ~ a2@3 a2@2 ~@3 [c3,g3]@27 ~ [c3,g3]@3 ~@2 [d3,a3]@22 ~@2 a3@3 ~ [d3,a3]@2 ~@3 [g2,d3]@6, ~@48 e3@7 ~@57 d3@3 ~@13]/4", // F#5 G5 A5 C5 D5 G5
Z: "[~@6 [f#2,c#3]@14 ~ [g2,d3]@3 ~@2 [a2,e3]@33 ~@2 [c3,g3]@30 ~@2 [d3,a3]@26 ~@4 d3@10 ~@2 [f#2,c#3]@12 ~@2 d3@4 ~@7, ~@61 g2@5 ~@8 g2@2 ~@4]/5", // F#5 G5 A5 C5 D5 F#5
})).s("gm_distortion_guitar").gain(0.51)
// other · distortion guitar
const distortion_guitar_2 = note("<~@20 A B C D ~@6 E F@2 ~@10 G H@2 I J K L M N O P Q R ~@22>".pickRestart({
A: "~@16 a4 ~@4 a4@2 ~@3 a4@2 ~@4", B: "~@7 a5 ~@2 a5 ~@2 a5 ~@2", C: "~@13 a4@2 ~@4 a4@2 ~@4 a4@2 ~@5",
D: "~@12 a5@2 ~@4 a5@2 ~@3 a5@2 ~@7", E: "~@18 a4 ~ a4@2 g4@2 f4@2 ~ e4@5",
F: "[~ e4@4 ~@2 e4@6 e4@3 ~@2 e4@2 a4@4 a4@2 g4@2 f4@2 e4@6 e4@6 ~ g3@5 ~@2 g3@3 ~@11, ~@42 e4@6 ~ e4@2 ~@13]/2",
G: "~@30 a4 ~",
H: "[~@5 a4 ~@4 a4 ~@6 a4 ~@3 a4 ~ a4 ~@3 a4 ~ a4 ~ g5@2 ~@4 g5 ~@5 a5 ~@6 a5 ~@3 a5 ~ a5 ~@3 a5 ~@3]/2",
I: "~ a4 ~@5 a4 ~@6 a4 ~@4 a4 ~@4 a4 ~@2 a4 ~@3 a4", J: "~@2 a4 a5 ~@6 a5 ~@6 a5 ~@5 a5 ~@3 a5 ~ a5 ~@2",
K: "~ a5 ~ a5 ~ a4 ~@5 a4 ~@6 a4 ~@6 a4 ~@5 a4", L: "~@4 a4 ~@2 a4 a5 ~@5 a5 ~@6 a5 ~@5 a5 ~@4",
M: "~@2 a5 ~@3 a5 ~ a5 ~ a4 ~@5 a4 ~@6 a4 ~@6 a4 ~", N: "~ a4 ~@2 a4 ~@3 a4 ~@2 a4 ~ a5 ~@6 a5 ~@5 a5 ~@5",
O: "~ a5 ~ a5@2 ~ a5@2 ~@2 a5@3 ~ a5@2 ~@2 a5@2 ~@4 g5@2 ~ e5@2 d6@2 ~, ~@23 a5@3 ~@6",
P: "~ d6@5 c6@2 a5@2 f5@2 ~@2 a5@2 ~@2 a5@2 ~@3 g5@2 e5 ~ d6@3 ~@2, ~@11 a5 ~@4",
Q: "d6@4 ~@2 c6@2 a5@2 ~ a5@3 ~ a5@2 ~@2 a5@2 g5@2 e5@2 d6@2 ~@2 d6@3, ~@5 d6@2 ~@25", R: "~ d6@4 ~@27",
})).s("gm_distortion_guitar").gain(0.51)
// other · overdriven guitar
const overdriven_guitar = note("<~@28 A B@2 C D ~@22 E@6 F@4 G@4 H@2 ~@3 I ~ J@2>".pickRestart({
A: "~@20 a2@5 ~ a2@5 ~",
B: "[~ a2@4 ~@2 a2@4 a3@2 ~ d#3@2 d3@2 c3@2 a2@2 ~@2 a2@5 ~ a2@5 ~@2 a2@5 ~ a2@4 a3@2 ~ d#3@2 d3@2 c3@3 ~ a2@6]/2",
C: "~ a2@5 ~@2 a2@3 ~@3 a2@3 a3@3 d#3@2 d3@2 c3@2 a2@3 a2@3",
D: "~@4 a2@5 ~@2 a2@6 ~ a2@3 ~ a3@2 ~@3 c3@2 ~ a2@2, ~@25 d#3@3 ~@4, ~@13 d3 ~@2",
E: "[~@13 a4@2 ~@5 c5 b4@2 f4 ~ a4@2 g4@2 ~@2 e4@2 ~ b3@2 g4@5 ~@3 d4@2 ~@2 g4@4 e4@2 ~ g4@3 e4@2 ~ g4@7 c4@2 a3@2 c4@2 a3@5 ~@2 e4@3 g4@2 e4@2 ~ g4@5 ~ g4@6 c4@2 a3@2 c4@3 a3@5 ~ a3@2 ~@2 a3@2 ~ b3@4 [d4,e4]@2 c4@2 [e4,f4] d4 g4 ~ e4 ~ f4!2 ~@2 f4 ~@2 [a4,b4]@2 ~ [b4,c5] e5@4 ~ f5@4 ~@2 g5@8 ~@2 g5@5 f5@2 e5@2 [c5,d5] b4 a4@2 ~ c5@6 ~@2 b4@3, ~@17 e5@3 ~@121 c5@2 ~@49, ~@18 g4@4 ~ e4@7 ~@3 c4@3 ~@59 e4 ~@38 g4@2 ~ g4@4 ~@47 a4@3 ~]/6", // Dsus2 Fmaj7 Asus2 Cmaj7 Csus2
F: "[~@2 b4@6 ~@2 b4@2 ~@2 b4@2 [f4,a4]@2 e4 d4@3 ~ g5@20 ~ e5@2 ~@2 f5@2 e5@2 b4@2 a4@2 g4 f4 e4@4 ~ g4@5 ~@2 g4@6 ~@2 g4@2 ~ a4@2 g4@6 d4@5 ~ g4@2 a4@3 ~@2 g4@5 ~@2 a4@4 ~ b4@6 ~@4 g4 ~ b4@2, ~@52 c5 ~@73 g4 ~]/4", // F
G: "[~@3 a4@2 ~@2 [a4,b4]@4 ~ [a4,b4]@4 ~ a4@2 g4@2 ~@2 g4@3 ~@2 b4@2 ~@2 b4 ~@2 [b4,c5]@4 ~ [b4,c5]@3 ~ [b4,c5]@5 a4@2 ~ g4@2 a4@2 g4@3 ~@4 a3@2 [c4,d4] ~ [a3,d#4]@2 c4 ~ e4 d4@2 ~ e4 ~ b4 ~ g4 ~@2 a4 [d5,e5] ~ b4 ~ f5 c5@2 ~ [c5,e5] g5@9 ~ e5 d5 c5 b4 a4 ~@11 d4@4 c4@2 [a3,b3]@2 ~@2, ~@2 b4@4 ~@15 a4@6 ~@4 [c5,d5]@2 ~@30 b3 ~@8 e4 ~ f4@3 ~ a4@2 ~ [f4,b4]@2 ~@4 a4@3 ~@11 f5@2 ~@5 e4@13 ~@7]/4", // Asus2 Cmaj7 Csus2 Adim Dsus2 C Asus2 Csus2 …
H: "[~@27 g2@33 ~@4]/2", I: "~@13 a3@19, ~ a2@31", J: "[~@29 c3@2 ~ e3 f3 [g3,a3]@2 ~@28, ~@31 d3@2 ~@31]/2",
})).s("gm_overdriven_guitar").gain(0.51)
// bass · electric bass finger
const bass = note(`<
A@5 B@2 C@2 D E F G H I J K@2 L@2 M N O@4 P@3 ~ Q R@2 S T@4 U V@7 W@4 X@3 Y@4 Z@3 AA@2 AB@3 AC@4 AD@8 ~
>`.pickRestart({
A: "[~@3 a1@4 ~@2 a1@4 ~ a1@2 ~@6 a2@3 d#2@2 ~ c2@2 ~ a1@6 ~@2 a1@5 ~ a1@5 ~@2 a1@4 ~@2 d#2@3 d2@2 c2@3 a1@2 ~ a1@5 ~ a1@5 ~ a1@4 ~@3 a1@4 a2@3 d#2@2 ~ c2@2 ~ a1@2 ~ a1@5 ~ a1@6 ~@2 a1@5 ~@2 a1@4 a2@3 ~ d2@2 c2@2 ~ a1@2 ~ a1@4 ~@2 a1@5 ~ a1@7, ~@27 d2@2 ~@28 a2@3 ~@37 d2@2 ~@33 d#2@2 ~@26]/5",
B: "[~ a1@4 a2@3 ~@2 c2@2 ~ a1@2 ~@2 a1@5 a1@5 ~@2 a1@6 ~@2 a1@4 a2@2 ~ d2@2 c2@2 ~ a1@2 ~ a1@5 ~@2 a1@5, ~@8 d#2@2 ~@33 d#2@2 ~@19, ~@9 d2@2 ~@53]/2",
C: "[~@2 a1@5 ~ a1@4 a2@3 ~ d2@2 c2@2 ~ a1@2 ~ a1@5 ~ a1@5 ~@2 a1@5 ~ a1@4 ~ a2@2 d#2@2 ~ c2@2 ~ a1@3 d2@2 ~ d2@2, ~@15 d#2@2 ~@35 d2@2 ~@10]/2",
D: "~@2 d2@3 ~@11", E: "~@3 d2@7 ~ d2@6 ~@15", F: "~@6 a1@4 ~ a1@5 ~@2 a1@3 ~ a1 ~@2 a1@3 a2@2 d#2@2",
G: "~ d2 c2@2 ~ a1@7 ~@3 a1@5 ~@2 a1@3 ~@2 a1@5", H: "a2@2 d#2@2 d2@2 c2@2 a1@2 ~@2 d2@7 ~@2 d2@7 ~@4",
I: "~@14 d2@8 ~@2 d2@7 ~", J: "~@10 a2@3 ~ d2@2 c2@2 ~@3 a1@5 ~ a1@5, ~@13 d#2@3 ~@16",
K: "[~@2 a1@6 ~ a1@4 ~ a1@8 ~ c2@6 ~ c2@5 ~@2 c2@6 ~ c2@4 ~@2 c2@2 ~@2 a2@2 d2@2 ~ c2@5, ~@53 d2@2 ~@9]/2",
L: "[~@3 c2@2 ~ d2@4 d2@4 ~@2 d2@4 ~ d2@2 ~@2 d2@5 g1@13 f#1@15 ~@2 g1@4]/2", M: "~@5 a1@27", N: "~@4 c2@25 ~@3",
O: "[~ c2@3 d2@2 g2@3 d2@3 ~ c2@2 d2@30 ~@2 g1@10 f#1@10 g1@3 ~@2 a1 ~@31 c2 c2@3 ~@2 c2@14 ~@4, ~@76 a1@31 ~@21]/4",
P: "[~@5 c2@2 d2@2 f2@2 g2@2 d2@2 c2@3 ~ d2@21 c2@4 ~@2 g1@12 ~ f#1@17 g1@3 ~@17]/3", Q: "~@13 a1@3",
R: "[~ a1@6 ~ a1@4 ~@2 a1@5 ~ d#2@2 d2@2 ~@2 c2 ~@3 a1@5 ~@2 a1@5 ~ a1@5 ~@2 a1@3 a2@2 d#2@2 d2@2 ~ c2 a1@2 ~, ~@19 a2@2 ~@4 d2@2 ~ c2@5 ~@31]/2",
S: "d2@9 ~ d2@8 ~@14",
T: "[~@4 d2@7 ~@2 d2@6 ~@12 d#2@3 d2@4 ~ c2@3 ~ a1@4 ~@2 a1@7 ~@2 a1@5 ~@3 c#2@2 ~@2 d2 c2@2 ~ a1@5 ~@2 a1@5 ~ a1@4 ~@2 a1@4 a2@3 ~@3 c2 ~ c2@2 ~ d2@7 ~@2 d2@9 ~@2, ~@63 a2@6 ~@33 d2@2 ~@24]/4",
U: "~@14 d2@7 ~ d2@8 ~@2",
V: "[~@8 a2@2 d#2@2 d2@2 c2@2 a1@5 ~@2 a1@6 ~ a1@6 a1@4 ~@3 d#2@2 ~ c2@2 a1@3 ~ c2@16 ~@7 c2@2 ~ d2@2 f2 g2@3 d2@34 g1@14 f#1@15 ~ g1@4 ~@2 a1@22 ~@2 a1@8 ~ c2@28 ~ c2@3 d2@2 g2@3, ~@42 a2@2 ~ d2@2 ~@177]/7",
W: "[~ d2@24 ~ d2@2 ~ d2@5 g1@13 f#1@15 ~ g1@4 ~@3 a1@33 ~ c2@20 ~@4]/4",
X: "[~ c2@2 ~@2 f2@2 g2@2 ~ d2@34 g1@12 f#1@15 g1@4 ~@5 a1@12 ~ a1@3, ~@4 d2@3 ~@89]/3",
Y: "[~ a1@5 ~ a1@9 c2@6 ~ c2@6 ~ c2@5 ~@5 c2@2 ~ d2@2 f2@2 g2@2 d2@5 ~ d2@5 ~ d2@5 ~ d2@4 d2@2 ~ d2@4 g1@11 f#1@14 ~@2 g1@3 ~ a1@7 ~@2 a1@5 ~ a1@4]/4",
Z: "[~@2 a1@3 ~@2 a1@2 ~ c2 d2@3 ~@3 c2@5 ~ c2@6 c2@5 ~@2 c2@6 d2@2 f2@2 g2@4 d2@5 ~ d2@5 d2@6 ~ d2@3 ~@2 d2@8 ~ g1@14]/3",
AA: "[~ f#1@14 ~ g1@4 ~ a1@6 ~@3 a1@6 a1@4 ~ a1@5 ~ a1@5 ~ c2@8 ~ c2@2]/2",
AB: "[~ c2@4 ~@2 c2@5 ~@4 c2@2 ~ d2@2 f2@2 g2@3 d2@5 d2@6 ~ d2@5 ~ d2@4 ~ d2@2 ~ d2@5 g1@14 f#1@13 ~@2 g1@3 ~ a1@6]/3",
AC: "[~@2 a1@8 ~@2 a1@4 ~ a1@3 ~ a1@3 ~@2 c2@9 ~ c2@5 ~ c2@3 ~@7 c2@2 ~@2 f2@2 g2@3 d2@6 d2@5 ~ d2@6 ~ d2@3 ~ d2@2 ~ d2@3 ~ g1@11 f#1@15 g1@3 ~@8, ~@55 d2@3 ~@70]/4",
AD: "[~@23 a1@233]/8",
})).s("gm_electric_bass_finger").gain(0.51)
// other · electric guitar muted
const electric_guitar_muted = note("<~@20 A B C@3 ~@19 D@3 E F G H I J ~@25>".pickRestart({
A: "~@9 a2 ~@12 a2@2 ~@4 a2@2 ~@2", B: "~ a2 ~@4 a2 ~ a2@2 ~@2 a2 ~ a2 ~ a3@2 ~@4 a3@2 ~@3 a3@3 ~@2",
C: "[~ a3 ~@4 a3@3 ~@2 a3@4 ~ a2@3 ~@2 a2@3 ~@2 a2@2 ~@3 a2@2 ~@2 a2 ~@2 a2@2 ~@2 a2 ~ a2 a3@3 ~@3 a3@2 ~@4 a3@2 ~@2 a3 ~ a3@2 ~@2 a3 ~@2 a3 ~@3 a2@4 ~@18]/3",
D: "[~@2 a2 ~@2 a2 ~@4 a2@2 ~@3 a2@2 ~@2 a2 ~@2 a2 ~@2 a2@4 ~@2 a3@3 ~@3 a3@2 ~@4 a3@2 ~@4 a3@2 ~@4 a3@3 ~@3 a3@5 a2@3 ~@2 a2@2 ~@4 a2@2 ~@5 a2@2 ~ a2 ~ a2@2 ~@2 a2 ~@2]/3",
E: "a2@2 a3@2 ~@5 a3@2 ~@4 a3@2 ~@4 a3@2 ~@3 a3@2 a3@2 ~@2",
F: "a3 ~ a3@2 ~ a2 ~@5 a2 ~@6 a2@2 ~@4 a2@2 ~@2 a2 ~ a2 ~", G: "~@3 a2 ~@4 a2@2 ~@4 a2 ~@6 a2 ~@5 a2 ~@4",
H: "a2 ~ a2@2 ~@2 a2 ~@3 a2 ~@4 a2 ~@7 a2 ~@5 a2 ~@2", I: "~ a2 ~ a2 ~@3 a2 ~ a2 ~@2 a2@2 ~@4 a2 ~@6 a2 ~@6",
J: "a2 ~@3 a2 ~ a2 ~@25",
})).s("gm_electric_guitar_muted").gain(0.51)
// drums · kick
const kick = s("bd").struct(`<
A B C D E F G H I ~@2 J K L ~ M N O P Q R S T U V W 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 AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT ~
>`.pickRestart({
A: "~@3 x ~@4 x ~@5 x ~@5 x ~@3 x ~@4 x ~@2", B: "~ x ~@4 x ~@6 x ~@5 x ~@3 x ~@6 x ~",
C: "~@4 x ~@4 x ~@6 x ~@7 x ~@3 x ~@3", D: "~@3 x ~@5 x ~@5 x ~@6 x ~@5 x ~@3", E: "~ x ~@6 x ~@4 x ~@4 x ~@6 x ~@6",
F: "x ~@3 x ~@7 x ~@3 x ~@5 x ~@6 x ~@2", G: "~@2 x ~ x ~@3 x ~ x ~@2 x ~@2",
H: "~ x ~@6 x ~@3 x ~@6 x ~@4 x ~@5 x ~", I: "~@5 x ~@6 x ~@3 x ~@6 x ~@8", J: "~@6 x ~@5 x ~@5 x ~@5 x ~@4 x ~@2",
K: "~@3 x ~@4 x ~@5 x ~@6 x ~@10", L: "x ~@6 x ~@24", M: "~@19 x ~@6 x ~@5",
N: "~ x ~@5 x ~@4 x ~@6 x ~@4 x ~@4 x ~@2", O: "~@4 x ~@6 x ~@12 x ~@3 x ~@3",
P: "~@2 x ~@6 x ~@5 x ~@3 x ~@7 x ~@3 x", Q: "~ x ~ x ~@4", R: "~ x ~@8 x ~@3 x ~@6 x ~@6 x ~@3",
S: "x ~@6 x ~@3 x ~@3 x ~@5 x ~@6 x ~@3", T: "~@2 x ~@2 x ~@5 x ~@5 x ~@5 x ~@6 x ~",
U: "~@3 x ~@3 x ~@5 x ~@4 x ~@4 x ~@5 x ~@2", V: "~@6 x ~@6 x ~@2 x ~@7 x ~@5 x ~",
W: "~@2 x ~@6 x ~@3 x ~@5 x ~@6 x ~@5", X: "x ~@4 x ~@4 x ~@4 x ~@5 x ~@6 x ~@3",
Y: "~ x ~@4 x ~@6 x ~@3 x ~@3 x ~@6 x ~@3", Z: "~@10 x ~@2 x ~@2", AA: "~ x ~@5 x ~@13 x ~@3 x ~@3 x ~@2",
AB: "~@4 x ~@6 x ~@3 x ~@9 x ~@6", AC: "~@3 x ~@5 x ~@4 x ~@4 x ~@5 x ~@3 x ~@2", AD: "~ x ~@7 x ~@12 x ~@6 x ~@2",
AE: "~@3 x ~@8 x ~@19", AF: "~@7 x ~@5 x ~@7 x ~@5 x ~@3 x", AG: "~@10 x ~@5 x ~@6 x ~@5 x ~@2", AH: "~ x ~@4 x ~@9",
AI: "~@15 x ~@5 x ~@7 x ~@2", AJ: "~ x ~@3 x!2 ~", AK: "x ~@4 x ~@3 x ~@7 x ~@4 x ~@4 x ~@4",
AL: "~ x ~@5 x ~@3 x ~@7 x ~@3 x ~@4 x ~@3", AM: "~@2 x ~@5 x ~@2 x ~ x ~@2",
AN: "x ~@7 x ~@5 x ~@3 x ~@6 x ~@3 x ~@2", AO: "~@2 x ~@6 x ~@6 x ~@3 x ~@6 x ~@3 x",
AP: "~@6 x ~@8 x ~@5 x ~@3 x ~@5 x", AQ: "~@3 x ~@6 x ~@5 x ~@9 x ~@5", AR: "~ x ~@2 x ~@6 x ~@6 x ~@5 x ~@4 x ~@2",
AS: "~@3 x ~@4 x ~@5 x ~@5 x ~@6 x ~@4", AT: "x ~@4 x ~@4 x ~@5 x ~@5 x ~@6 x ~@2",
AU: "~ x ~@6 x ~@3 x ~@5 x ~@6 x ~@6", AV: "~@4 x ~@10 x ~@3 x ~@7 x ~@4",
AW: "~ x ~@4 x ~@5 x ~@3 x ~@4 x ~@6 x ~@3", AX: "~@2 x ~@4 x ~@5 x ~@3 x ~@4 x ~@7 x ~",
AY: "~@4 x ~@2 x ~@6 x ~@3 x ~@3 x ~@5 x ~@3", AZ: "~@3 x ~@5 x ~@5 x ~@3 x ~@7 x ~@4",
BA: "~ x ~@2 x ~@8 x ~@3 x ~@4 x ~@6 x ~@2", BB: "~@3 x ~@4 x ~@6 x ~@3 x ~@5 x ~@5 x",
BC: "~@5 x ~@3 x ~@5 x ~@4 x ~@4 x ~@6", BD: "~ x ~@5 x ~@3 x ~@6 x ~@3 x ~@4 x ~@4",
BE: "~@4 x ~@3 x ~@3 x ~@6 x ~@3 x ~@5 x ~@2", BF: "~@4 x ~@5 x ~@3 x ~@6 x ~@3 x ~@5 x",
BG: "~@6 x ~@5 x ~@3 x ~@6 x ~@3 x ~@4", BH: "x ~@3 x ~@2 x ~ x ~@2 x ~ x ~",
BI: "~ x ~@5 x ~@6 x ~@2 x ~@7 x ~@3 x ~@2", BJ: "~@2 x ~@6 x ~@5 x ~@4 x ~@5 x ~@3 x ~",
BK: "~@3 x ~@7 x ~@4 x ~@4 x ~@5 x ~@4", BL: "x ~@4 x ~@5 x ~@7 x ~@5 x ~@3 x ~ x",
BM: "~@2 x ~@4 x ~ x ~@5 x ~@14 x ~", BN: "~ x ~ x ~@3 x ~ x ~@2 x ~@6 x ~@7 x ~ x ~@2",
BO: "~@3 x ~@6 x ~@4 x!2 ~@3 x ~@10 x", BP: "~ x ~@2 x ~ x ~@4 x!2 ~@3 x!2 ~@3 x ~@10",
BQ: "x ~@3 x!2 ~@6 x ~@4 x!2 ~@2 x ~@9 x", BR: "x ~@4 x!2 ~@5 x ~@4 x!2 ~@3 x!2 ~@5 x ~ x",
BS: "~ x ~@3 x!2 ~@5 x ~@4 x ~ x ~@2 x ~@5 x!2 ~@2", BT: "~ x ~@4 x!2 ~@5 x ~@18",
})).gain(0.31)
// drums · snare
const snare = s("sd").struct(`<
A B C D E F G H I J K L M N O P Q R S T U V F A W X Y Z AA AB AC AD AE AF AG U AH AI AJ AK AL AM AN AO AP AQ AR AS AT
U AU X AV AW B AX S AW K AY L Q R AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN
>`.pickRestart({
A: "~@9 x ~@15 x ~@6", B: "~@4 x ~@8 x ~@2", C: "~@6 x ~@8 x", D: "~@17 x ~@14", E: "~@3 x ~@17 x ~@10",
F: "~@7 x ~@17 x ~@6", G: "~@11 x ~@17 x ~@2", H: "~@7 x ~@8", I: "~ x ~@17 x ~@8 x ~@3", J: "~@4 x ~@15 x ~@10 x",
K: "~@11 x ~@15 x ~@4", L: "~@7 x ~@7 x", M: "~@4 x ~@2 x", N: "~@3 x ~@6 x ~@3 x ~@6 x ~@10", O: "~@7 x ~@24",
P: "~@9 x ~@19 x ~@2", Q: "~@15 x ~@16", R: "x ~@16 x ~@14", S: "~@2 x ~@8 x ~@4", T: "~@7 x ~@14 x ~@6 x ~@2",
U: "~ x", V: "~@3 x ~@19 x ~@8", W: "~@2 x ~@6 x ~@10 x ~@11", X: "~@4 x ~@16 x ~@10", Y: "~@6 x ~@16 x ~@8",
Z: "~@9 x ~@13 x ~@8", AA: "~@7 x", AB: "~@12 x ~ x ~@3 x ~@12 x", AC: "~@9 x ~ x ~@4", AD: "~@5 x ~@2",
AE: "~@5 x ~@11 x ~@6 x ~@7", AF: "~ x ~@8 x ~@16 x ~@4", AG: "~@29 x ~@2", AH: "~ x ~@6 x ~@9 x ~@13",
AI: "~@3 x ~@5 x ~@4 x ~@6 x ~@10", AJ: "~@3 x ~@5 x ~@6", AK: "~ x ~@5 x ~@17 x ~@6", AL: "~@9 x ~@5 x ~@11 x ~@4",
AM: "~@13 x ~@15 x ~@2", AN: "~@14 x ~@16 x", AO: "~@11 x ~@6 x ~@13", AP: "~@2 x ~@18 x ~@10",
AQ: "~@4 x ~@18 x ~@8", AR: "~@5 x ~@8 x ~", AS: "~@6 x ~@4 x ~@2 x ~", AT: "~ x ~@12 x ~@16 x",
AU: "~ x ~@16 x ~@13", AV: "x ~@5 x ~@4 x ~@10 x ~@9", AW: "~ x ~ x", AX: "~@10 x ~@13 x ~@6 x",
AY: "~@12 x ~@16 x ~@2", AZ: "~@2 x ~@16 x ~@12", BA: "~ x ~@3 x ~@2", BB: "~@3 x ~@16 x ~@11",
BC: "~@5 x ~@16 x ~@9", BD: "~@3 x ~@7 x ~@4", BE: "~@6 x ~@8 x ~@5 x ~@10", BF: "~@5 x ~@4 x ~@8 x ~@3 x ~@2 x ~@5",
BG: "~@5 x ~@9 x ~@5 x ~@4 x ~@5", BH: "~@5 x ~@11 x ~@3 x ~ x!2 ~@2 x!2 ~ x ~", BI: "~@7 x!2 ~@12 x ~ x ~@3 x!3 ~@2",
BJ: "~@7 x!2 ~@14 x!2 ~@3 x!2 ~@2", BK: "~@8 x ~@15 x ~@3 x!2 ~@2", BL: "~@8 x ~@15 x!2 ~@6",
BM: "~@9 x ~@7 x ~ x ~@2 x ~ x!2 ~ x!5", BN: "~ x!2 ~@3 x ~@25",
})).gain(0.31)
// drums · open hat
const open_hat = s("oh").struct(`<
A B C D E F G H I J ~ K L M ~ N O P Q R S T U V W X Y Z ~@3 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 BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT
>`.pickRestart({
A: "~@3 x ~@3 x ~@2 x ~@3 x ~@5 x ~@2 x ~@2 x ~@2 x ~@2", B: "~ x ~@4 x ~@2 x ~@3 x ~@6 x ~@2 x ~@2 x ~@3 x ~",
C: "~@4 x ~@4 x ~@2 x ~@3 x ~@7 x ~@3 x ~@2 x", D: "~@2 x ~@6 x ~@4 x ~@2 x ~@3 x ~@6 x ~@3",
E: "~ x ~ x ~@3 x ~@5 x ~@4 x ~@2 x ~@3 x ~@6", F: "x ~@3 x ~@2 x ~@3 x ~@4 x ~@6 x ~ x ~@3 x ~@2",
G: "~@4 x ~@3 x ~@2 x ~@3 x ~@4 x ~@5 x ~@2 x ~@2", H: "~ x ~@6 x ~@3 x ~@2 x ~@3 x ~@4 x ~@5 x ~",
I: "~ x ~@3 x ~@6 x ~@3 x ~@2 x ~@3 x ~@4 x ~@3", J: "~ x ~@6", K: "~@6 x ~@4 x ~@2 x ~@3 x ~@6 x ~@2 x ~@3",
L: "x ~@2 x ~@4 x ~@5 x ~ x ~@4 x ~@10", M: "~ x ~@5 x ~@24", N: "~@19 x ~@6 x ~@5",
O: "~ x ~@5 x ~@5 x ~@5 x ~@4 x ~@5 x ~", P: "~@5 x ~@5 x ~@3 x ~@2 x ~@4 x ~@4 x ~@3",
Q: "~@2 x ~@2 x ~@3 x ~@5 x ~@4 x ~@5 x ~@4 x", R: "~@5 x ~@5 x ~@13 x ~@4 x ~",
S: "~ x ~@8 x ~@3 x ~@2 x ~@3 x ~@6 x ~@3", T: "x ~@2 x ~@3 x ~@3 x ~@3 x ~@5 x ~@2 x ~@3 x ~@3",
U: "~ x ~@3 x ~@2 x ~@2 x ~@5 x ~@5 x ~ x ~@4 x ~", V: "~@3 x ~@3 x ~@2 x ~@2 x ~@3 x ~@5 x ~ x ~@6",
W: "~@7 x ~@4 x ~@3 x ~@2 x ~@5 x ~@4 x ~", X: "~@2 x ~@5 x ~@4 x ~@6 x ~@5 x ~@5",
Y: "x ~@3 x ~@2 x ~@3 x ~@3 x ~@5 x ~ x ~@4 x ~@3", Z: "~@2 x ~@3 x ~@5 x ~@3 x ~@5 x ~@4 x ~@4",
AA: "~@8 x ~@6 x ~@3 x ~@4 x ~@3 x ~@3", AB: "~@3 x ~@7 x ~@10 x ~@6 x ~@2", AC: "~ x ~@3 x ~@10", AD: "~ x ~ x ~@4",
AE: "~@6 x ~@7 x ~@5 x ~@6 x ~@4", AF: "x ~@9 x ~@5 x ~@6 x ~@5 x ~@2", AG: "~ x ~@10 x ~@8 x ~@10",
AH: "~@15 x ~@6 x ~@6 x ~@2", AI: "~@4 x ~@3 x ~@10 x ~@4 x ~@6 x", AJ: "~@6 x ~@3 x ~@6 x ~@3 x ~@5 x ~@4",
AK: "~ x ~@5 x ~@4 x ~@5 x ~@4 x ~@5 x ~@2", AL: "~@4 x ~@10 x ~@6 x ~@3 x ~@5",
AM: "~ x ~@2 x ~@3 x ~@5 x ~@3 x ~@2 x ~@2 x ~@3 x ~@3", AN: "~@2 x ~@2 x ~@3 x ~@6 x ~@3 x ~ x ~@3 x ~@4 x",
AO: "~@3 x ~@5 x ~@2 x ~@2 x ~@6 x ~@2 x ~ x ~@3 x", AP: "~@3 x ~@4 x ~ x ~@3 x ~@7 x ~@3 x ~@3 x ~",
AQ: "~@2 x ~ x ~@6 x ~@3 x ~@3 x ~@5 x ~@2 x ~@3", AR: "x ~@2 x ~@4 x ~@5 x ~@2 x ~@3 x ~@6 x ~@2 x",
AS: "~@2 x ~@2 x ~@4 x ~@5 x ~ x ~@3 x ~@6 x ~@2", AT: "~ x ~@2 x ~@2 x ~@4 x ~@6 x ~ x ~@4 x ~@5",
AU: "~@5 x ~@4 x ~@3 x ~@5 x ~@6 x ~@4", AV: "~ x ~@3 x ~@2 x ~@2 x ~@4 x ~@5 x ~ x ~@3 x ~@3",
AW: "~@2 x ~@3 x ~@2 x ~@2 x ~@3 x ~@6 x ~ x ~@3 x ~@2", AX: "~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@4 x ~",
AY: "~@3 x ~@2 x ~@3 x ~@3 x ~@5 x ~@2 x ~@3 x ~@4", AZ: "~ x ~@3 x ~@2 x ~@3 x ~@3 x ~@5 x ~@2 x ~@3 x ~@2",
BA: "~@4 x ~@3 x ~@2 x ~@3 x ~@3 x ~@5 x ~ x ~@3 x", BB: "~@5 x ~@3 x ~@2 x ~@3 x ~@3 x ~@5 x ~@2 x ~@2",
BC: "~ x ~@5 x ~@4 x ~ x ~@3 x ~@3 x ~@4 x ~@2 x ~", BD: "~@4 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@5 x ~@2",
BE: "x ~@3 x ~@5 x ~@3 x ~ x ~@3 x ~@4 x ~@5 x", BF: "~ x ~@4 x ~@5 x ~@6 x ~@2 x ~@3 x ~@5",
BG: "~ x ~ x ~@4 x ~@5 x ~@3 x ~ x ~@3 x ~@3 x ~@3", BH: "~ x ~ x ~@3 x ~@5 x ~@4 x ~@2 x ~@3 x ~@2 x ~@3",
BI: "~@2 x ~@2 x ~@3 x ~@5 x ~@3 x ~@2 x ~@3 x ~@3 x ~", BJ: "~@3 x ~@2 x ~@3 x ~@5 x ~@3 x ~ x ~@4 x ~@3 x",
// … 52 more lines
More by Pearl Jam
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.