0:00/0:00
// Hands All Over — Soundgarden
// 100 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 75 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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 · electric guitar clean · "Guitar" · A B C D
const electric_guitar_clean = note(`<
~@4
[~@17 [a3,a4]@6 ~@2 [a3,a4]@6 ~]
[~ [a3,a4]@6 ~@2 a4@4 ~@4 [b3,b4]@6 ~@2 [b3,b4]@6 ~, ~@4 a3@3 ~@9]
[~@2 [b3,b4]@6 ~@2 b4@4 ~@5 c4@5 ~@2 [c4,c5]@5 ~, ~@9 b3@5 ~@4 c5@4 ~@10]
[~@2 [c4,c5]@5 ~@3 [c4,c5]@4 ~@5 [d4,d5]@4 ~@3 [d4,d5]@6]
[~@3 [d4,d5]@5 ~@3 [d4,d5]@5 ~@16]
~@66
>`).s("gm_electric_guitar_clean").gain(0.4).pan(0.7)
// bass · electric bass pick · "Bass"
const bass = note(`<
A@6 B C D E F G H I J K L M N O P Q R S T@2 U@2 V W@8 X@3 Y@3 Z@2 AA AB@2 AC AD AE AF AG AH AI AJ AK@5 AL AM@2 AN AO
AP AQ AR AS AT AU AV AW AX
>`.pickRestart({
A: "[~@14 d2@27 ~ d2@30 ~@20 d3@16 ~@17 d3@15 d2@8 f2@3 ~ d2@6 ~ d2@6 ~@9 d2@7 g2@5 d2@2 d2@3 ~, ~@75 d2@30 ~@3 d2@20 ~@37 d3@12 ~@15]/6",
B: "d2@6 d3@8 d2@3 d2@5 g2@4 d2 ~@2 d2@2 ~", C: "~ d2 ~ d2@4 d3@8 d2@2 ~ d2@5 g2@4 d2 ~ d2@2 ~",
D: "~ d2 ~ d2@3 ~ d3@8 d2@2 ~@2 d2@3 ~ g2@3 ~ d2 ~ d2@2 ~, ~@23 f2 ~@8",
E: "~ d2 ~ d2@3 ~ d3@8 d2@2 ~@2 d2@3 ~ g2@3 ~ d2@2 d2@3",
F: "~ d2 ~ d2@3 ~@2 d3@7 d2@2 ~@2 d2@3 ~ g2@2 ~@2 d2 ~ d2@2 ~",
G: "~ d2 ~ d2@2 ~ d3@9 d2@2 ~ d2@3 ~ g2@3 ~ d2 ~ d2@2 ~@2", H: "d2@2 d2@4 d3@9 d2@2 ~ d2@3 ~@2 g2@3 ~ d2 ~ d2@2 ~",
I: "~ d2 d2@3 ~@2 d3@7 d2@2 ~@2 d2@3 ~ g2@3 ~ d2 ~ d2@2 ~@2",
J: "d2 ~ d2@2 ~@2 d3@8 d2@2 ~@2 d2@2 ~@2 g2@2 ~@2 d2 ~ d2@2 ~@2",
K: "d2 ~ d2@2 ~ d3@9 d2 ~@3 d2@2 ~@2 g2@2 ~@2 d2 d2@2 ~@2 d2",
L: "~@2 d2@2 ~ d3@8 ~ d2@2 ~@2 d2@2 ~@2 g2@2 ~@2 d2 ~ d2@2 ~@2",
M: "d2 ~ d2@2 ~@2 d3@8 d2@2 ~@2 d2@2 ~@2 g2@2 ~@3 d2 ~ d2@2 ~",
N: "~ d2 ~ d2@2 ~@2 d3@8 d2@2 ~ d2@2 ~@3 g2@2 ~ d2@2 d2@2 ~@2",
O: "d2 ~ d2@2 ~@3 d3@8 d2@2 ~ d2@2 ~@3 g2@3 d2@2 ~ d2@3", P: "~ d2 d2@3 ~@2 d3@7 ~ d2@2 ~@2 d2@3 g2@3 ~ d2 ~ d2@3 ~",
Q: "d2@2 d2@4 ~ d3@8 d2@2 ~@2 d2@3 ~ a2@3 d2@2 d2@3 ~", R: "d2@2 ~ d2@3 ~ d3@8 d2@2 ~ d2@4 g2@3 d2 ~@2 d2@2 ~@2",
S: "d2 ~ d2@3 d3@9 d2@2 ~ d2@4 g2@3 ~ d2 ~ d2@2 ~@2 d2",
T: "[d2@4 d3@9 d2@2 ~ d2@4 g2@2 ~@2 d2 ~ d2@2 ~@2 d2 d2@3 ~ d3@8 d2@2 ~@2 d2@4 g2@3 ~ d2@2 d2@2 ~ d2@4]/2",
U: "[~@3 d3@7 d2@2 ~@2 d2@4 g2@3 ~ d2@2 d2@2 ~@2 d2 ~ d2@4 d3@7 d2@2 ~@2 d2@4 g2@3 ~ d2@2 d2@2 ~@2 d2 ~ d2@3]/2",
V: "d3@9 d2@2 ~@2 d2@3 g2@4 d2@2 d2@2 ~ d2 ~@2 d2@4",
W: "[d3@6 d2@2 ~@3 d2@4 g2@3 d2 ~ d2@2 ~@3 d2 ~ d2@3 ~ d3@8 d2@2 ~@2 d2@4 g2@3 d2 ~@2 d2@2 ~ d2 ~@2 d2@3 d3@8 d2@2 ~@2 d2@4 g2@3 ~ d2 ~ d2@2 ~@2 d2 ~ d2@4 d3@8 d2@3 d2@3 ~@2 d2 ~@2 d2 ~@2 d2@3 ~ d2 ~ d2@4 d3@8 d2@2 ~@2 d2@3 ~@2 g2@2 ~ d2@2 ~ d2@2 ~@2 d2 ~ d2@4 d3@7 d2@3 ~ d2@2 ~@2 g2@2 ~@2 d2 ~ d2@2 ~@2 d2 ~ d2@4 d3@7 d2@3 ~ d2@3 ~ g2@2 ~@2 d2 ~ d2@2 ~@2 d2 ~ d2@4 d3@8 ~@2 c2@3 c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@2, ~@109 g2@3 ~@144]/8",
X: "[~@2 c2@3 ~ c2@3 c2@3 ~ c2@2 ~@2 c2@2 ~ c2@2 ~@2 c2@2 ~@2 c2@2 ~ c2@3 ~ c2@2 ~ c2@2 ~@2 c2@3 ~ c2@3 c2@3 ~ c2@2 ~ c2@3 ~ c2@2 ~ c2@2 ~@2 c2@2 ~ c2@2 ~@2 c2@2 ~ c2@2 ~@2 c2@2 ~ c2@2 ~@2 c2@3 ~ d2@3 ~]/3",
Y: "[d2@3 g2@4 d2@2 d2@3 ~ d2@2 d2@4 d3@9 d2@2 ~ d2@4 g2@3 d2@2 d2@3 ~ d2@2 d2@4 d3@8 d2@3 ~ d2@3 g2@4 d2@2 d2@3 ~ d2@2 d2@4 d3@7 ~ d2@2 ~ d2@4]/3",
Z: "[g2@3 ~ d2 ~ d2@2 ~ d2@2 ~ d2@4 d3@7 d2@2 ~@2 d2@4 g2@3 ~ d2 ~ d2@3 ~ d2@6 d3@8 d2@2 ~ d2@4 g2@2]/2",
AA: "~@2 d2@2 d2@2 ~@2 d2 ~ d2@4 d3@8 d2@2 ~@2 d2@4 g2@2",
AB: "[~ d2 ~ d2@2 ~@2 d2@2 d2@4 d3@7 d2@2 ~@2 d2@4 g2@3 d2@2 ~ d2@2 ~ d2 ~ d2@4 d3@9 d2@3 ~ d2@3 ~ g2@3 d2]/2",
AC: "~ d2@3 ~@2 d2@6 d3@8 d2@2 ~ d2@3 ~ g2@2 ~@2 d2", AD: "~ d2@2 ~@2 d2 d2@4 d3@8 d2@2 ~@2 d2@3 ~ g2@2 ~@2 d2 ~",
AE: "d2@2 ~@2 d2 d2@4 d3@8 d2@2 ~@2 d2@3 ~ g2@2 ~ d2 ~ d2@2",
AF: "~@2 d2@6 d3@7 d2@2 ~@2 d2@3 ~ g2@2 ~@2 d2 ~ d2@2 ~",
AG: "~ d2 ~ d2@3 d3@7 d2@2 ~@2 d2@3 ~ g2@2 ~@2 d2 ~ d2@2 ~ d2 ~",
AH: "~ d2@3 d3@8 d2@2 ~@2 d2@3 ~ g2@2 ~@2 d2 ~ d2@2 ~@2 d2 ~",
AI: "d2@4 d3@7 d2@2 ~@2 d2@4 g2@2 ~ d2 ~ d2@2 ~@2 d2 ~ d2@2",
AJ: "~@2 d3@7 [c2,d2]@2 ~@2 d2@4 g2@3 d2@2 d2@3 ~ d2@2 ~ d2@3", // Csus2
AK: "[d3@8 d2@3 d2@4 g2@3 d2@2 d2@3 ~ d2@7 d3@8 d2@2 ~ d2@4 g2@3 ~ d2@2 d2@2 ~ d2@2 ~ d2@3 d3@8 d2@2 ~@2 d2@4 g2@3 d2@2 d2@3 ~ d2 ~ d2@4 d3@8 d2@2 ~@2 d2@4 g2@3 d2@2 ~ d2@2 ~ d2 ~ d2@4 d3@8 d2@2 ~ d2@4 g2@3 ~ d2@2 d2@2 ~ d2@6 d3@7]/5",
AL: "d2@2 ~@2 d2@4 g2@3 d2@2 d2@2 ~@2 d2 ~ d2@3 d3@7 d2@2 ~",
AM: "[d2@4 g2@4 d2 ~ d2@2 ~@2 d2@2 d2@4 d3@7 d2@3 ~ d2@3 g2@3 ~ d2@2 d2@2 ~@2 d2@2 d2@3 ~ d3@7 d2@2 ~@2 d2@3]/2",
AN: "~ g2@3 ~ d2@2 d2@2 ~@2 d2@2 d2@3 d3@8 d2@3 ~ d2@4",
AO: "g2@3 d2@2 d2@2 ~@2 d2 ~ d2@4 d3@8 d2@2 ~@5 g2@2, ~@27 d2@5",
AP: "~@2 d2 ~ d2@2 ~@2 d2 ~ d2@4 d3@8 c2@2 ~@2 c2@2 ~ c2@2 ~",
AQ: "~ c2 ~ c2@2 ~ c2 ~ c2@2 ~@2 c2@3 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2",
AR: "~ c2@2 ~@2 c2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@3 c2@2 ~ c2@2 ~ c2 ~@2",
AS: "c2@2 ~ c2 ~ c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 d2@2 ~ d2@4 g2@3 ~ d2@2 d2@2",
AT: "~ d2@6 d3@8 ~ d2@2 ~ d2@3 ~ g2@2 ~@2 d2 ~ d2@2 ~", AU: "d2 ~ d2@4 d3@8 d2@2 ~@2 d2@3 g2@3 ~ d2@2 d2@2 ~@2 d2",
AV: "d2@4 d3@7 d2@2 ~@2 d2@3 ~ g2@2 ~@2 d2 ~ d2@2 ~ d2@4", AW: "~ d3@7 ~@24", AX: "[d1,d2]@5 ~@27",
})).s("gm_electric_bass_pick").gain(0.4)
// chords · overdriven guitar · "Guitar"
const overdriven_guitar = note(`<
A@3 B@6 ~@3 C D E F@2 G H I@2 ~@14 J K L@2 M@3 ~ N@2 O P@2 ~@18 Q@5 ~ R S T
>`.pickRestart({
A: "[~@15 [a4,d5]@5 ~@3 [a4,d5]@6 ~@2 [a4,d5]@6 ~@2 [a4,d5]@4 ~@5 [a4,d5]@6 ~@2 [a4,d5]@6 ~@2 [a4,d5]@5 ~@3 [a4,d5]@4 ~@5 [a4,d5]@6 ~@2 [a4,d5]@6 ~, ~@10 d3@31 ~@2 d3@32 ~ d3@20]/3", // D5
B: "[[a4,d5]@5 ~@3 [a4,d5]@4 ~@5 [a4,d5]@6 ~@2 [a4,d5]@5 ~@3 [a4,d5]@5 ~@2 [a4,d5]@5 ~@4 [a4,d5]@5 ~@3 [a4,d5]@5 ~@3 [a4,d5]@5 ~@3 [a4,d5]@4 ~@5 [a4,d5]@5 ~@3 [a4,d5]@5 ~@3 [a4,d5]@5 ~@3 [a4,d5]@5 ~@4 [a4,d5]@6 ~@2 [a4,d5]@5 ~@3 [a4,d5]@5 ~@3 d5@4 ~@4 [a4,d5]@6 ~@2 [a4,d5]@6 ~@2 [a4,d5]@5 ~@2 [a4,d5]@3 ~@19, ~@12 d3@32 ~ d3@31 ~ d3@32 ~@2 d3@31 ~ d3@32 ~@17, ~@138 a4@5 ~@49]/6", // D5
C: "~@6 c4@4 f#4@3 c4@3 f#4@6 c4@4 ~@2 c4@4", D: "~@3 c4@4 f#4@4 c4@4 f#4@5 c4@5 ~@2 c4@5",
E: "~@2 c4@4 ~@3 c4@5 f#4@6 d4@4 ~ d4@7, ~@6 f#4@5 ~@21",
F: "[~@2 d4@3 f#4@9 ~@2 f#4@20 d4@3 f#4@4 d4@4 c4@11 ~ c4@5]/2", G: "~@2 c4@4 f#4@4 c4@4 f#4@6 c4@4 ~ c4@6 ~",
H: "~ c4@4 f#4@4 c4@4 f#4@6 d4@4 ~@2 d4@7", I: "[~@2 d4@3 f#4@5 g4@4 f#4@31 ~@19]/2", J: "~@26 c4 ~@5",
K: "~@2 d4@3 c4@11 b3@15 ~, ~ c4@2 ~@29", L: "[b3@2 ~ b3@2 c4@3 b3@5 a3@18 c4@2 d4@4 c4@6 b3@12 ~ b3@3 b3@2 c4@3]/2",
M: "[~ b3@5 a3@76 ~@14]/3", N: "[~@11 c4@4 f#4@4 c4@4 f#4@6 c4@5 ~ c4@7 c4@4 f#4@4 c4@4 f#4@6 c4@4]/2",
O: "~@2 c4@7 ~ c4@4 f#4@4 c4@4 f#4@5 d4@4 ~", P: "[~ d4@7 ~ d4@3 f#4@5 g4@3 f#4@28 ~@16]/2",
Q: "[~@22 g3@135 ~@3, ~@22 c3@131 ~@7]/5", R: "~@11 d3@21", S: "~@9 [d3,a3]@9 ~@14", T: "d3 d3@2 ~@13, a3@3 ~@13",
})).s("gm_overdriven_guitar").gain(0.26)
// other · distortion guitar · "Guitar"
const distortion_guitar = note("<~@2 A@7 B C D@2 E F G H I J K L ~@15 M@2 N@2 O@8 ~@18 P Q@5 R@2 S>".pickRestart({
A: "[~@11 d3@59 ~@6 [d3,a3]@129 ~ d3@3 ~ d3@4 g3@3 ~ d3@5 ~, ~@11 a3@33 ~@180]/7", // D5
B: "~ d3@6 d4@9 d3@2 ~@2 d3@3 ~ g3@3 ~ d3@4", C: "~ d3@6 d4@9 d3@2 ~ d3@3 ~ g3@2 ~@2 d3 ~ d3@3",
D: "[~ d3@5 d4@8 d3@2 ~@2 d3@2 ~@2 g3@2 ~ d3 ~ d3@2 ~@2 d3@5 d4@9 d3@2 ~@2 d3@2 ~@3 g3@2 ~ d3 ~@2 d3@3 ~]/2",
E: "d3 ~ d3@3 d4@10 d3@2 ~ d3@3 ~ g3@2 ~@2 d3 ~ d3@2 ~@2",
F: "d3 ~ d3@2 ~ d4@9 d3@2 ~ d3@2 ~@2 g3@2 ~@2 d3 ~ d3@2 ~@2 d3",
G: "~ d3@3 d4@9 d3@2 ~@2 d3@2 ~ g3@2 ~@2 d3 ~@2 d3!2 ~@2 d3",
H: "d3@3 ~ d4@9 d3@2 ~ d3@3 ~@2 g3@2 ~@2 d3 ~ d3@2 ~@2 d3", I: "~ d3@3 d4@9 d3@2 ~@3 d3@3 ~ g3@2 ~@2 d3 ~ d3@2 ~@2",
J: "d3 ~ d3@3 ~ d4@8 d3@2 ~@2 d3@3 ~ g3@2 ~@2 d3 ~ d3@3 ~",
K: "~ d3 d3@4 d4@8 d3@2 ~@2 d3@3 ~ g3@2 ~@2 d3 ~ d3@2 ~@2", L: "d3 ~ d3@3 ~ d4@9 ~@17", M: "[~@5 [c3,g3]@59]/2",
N: "[~@3 c3@59 ~@2, ~@2 g3@59 ~@3]/2", O: "[~@27 [d3,a3]@215 ~@14]/8", P: "~@6 d4 c4, ~@11 c4@2 ~@3",
Q: "[~ b3@14 b3@3 ~ b3@2 c4@4 b3@5 a3@19 c4@2 d4@5 c4@5 b3@11 ~ b3@2 ~ b3@3 c4@4 ~@3 a3@52 ~@22, ~@83 b3@5 ~@72]/5",
R: "[~@19 [d4,a4]@42 [d3,a3]@2 ~]/2", S: "[d3,a3] ~@15",
})).s("gm_distortion_guitar").gain(0.26)
// drums · kick
const kick = s("bd").struct("<~@14 [~@11 x ~@4] ~@29 [~@31 x] ~@30>").gain(0.4)
// drums · snare
const snare = s("sd").struct(`<
~@8 A B C D E F@2 G@3 F H@2 I@2 E J K L M N O P Q R S P T@2 U V W X Y Z AA P R AB AC AD AE AF AG D J AH AI O R AJ AE
AK D AL AM AN AO AP AQ AR AG AS F AH AT ~
>`.pickRestart({
A: "~@7 x ~@3 x ~@4", B: "~@3 x ~@8 x ~@3", C: "~ x ~ x", D: "~@4 x ~@6 x ~@4", E: "~@6 x ~@14 x ~@10",
F: "~@7 x ~@14 x ~@9", G: "~@5 x ~@15 x ~@10", H: "~@3 x ~@7 x ~@4", I: "~@7 x ~@15 x ~@8", J: "~@5 x ~@14 x ~@11",
K: "~@3 x ~@14 x ~@13", L: "~@3 x ~@15 x ~@12", M: "~ x ~@7 x ~@6", N: "x ~@15 x ~@14 x", O: "~@15 x ~@14 x ~",
P: "~@15 x ~@15 x", Q: "~@13 x ~@16 x ~", R: "~@7 x ~@7 x", S: "~@14 x ~@16 x", T: "~@13 x ~@15 x ~@2",
U: "~@11 x ~@20", V: "~@9 x ~@15 x ~@6", W: "~@7 x ~@7 x ~@5 x ~@2 x ~@2 x ~@4", X: "~@2 x ~@4 x ~@2 x ~@2 x ~@2",
Y: "~@3 x ~@9 x!2 ~@3 x ~@3 x ~@2 x ~@6", Z: "~@2 x ~@14 x ~@14", AA: "x ~@14 x ~@14 x ~", AB: "~@13 x ~@14 x ~@3",
AC: "~@12 x ~ x ~@12 x ~@4", AD: "~@11 x ~@16 x ~@3", AE: "~@11 x ~@14 x ~@5", AF: "~@5 x ~@7 x ~@2",
AG: "~@8 x ~@14 x ~@8", AH: "~@4 x ~@14 x ~@12", AI: "~@2 x ~@14 x ~@13 x", AJ: "~@3 x ~@3 x",
AK: "~@10 x ~@14 x ~@6", AL: "~@5 x ~@13 x ~@12", AM: "~@3 x ~@13 x ~@14", AN: "~ x ~@14 x ~@15",
AO: "x ~@6 x ~@3 x ~@3 x", AP: "~@3 x ~ x ~ x ~ x ~@5 x", AQ: "~@13 x ~@13 x ~@4", AR: "~@9 x ~@14 x ~@7",
AS: "~@5 x ~@17 x ~@8", AT: "~ x ~@14",
})).gain(0.4)
// drums · low tom
const low_tom = s("lt").struct(`<
~@7 A B ~ C D E F G H I J F K L M N I 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
>`.pickRestart({
A: "~@7 x ~@3 x ~@4", B: "~@3 x ~ x ~@10", C: "~ x", D: "~@15 x ~@12 x ~@3", E: "x ~@12 x ~@14 x ~@3",
F: "x!2 ~@5 x ~@6 x ~", G: "~ x ~ x ~@10 x ~@12 x ~@3 x", H: "~ x ~@11 x ~@12 x ~@3 x ~", I: "x ~@12 x ~@13 x ~@3 x",
J: "~@13 x ~@14 x ~@3", K: "~ x ~ x ~@10 x ~@13 x ~@3", L: "~ x ~@5 x ~ x ~@4 x ~", M: "~@2 x ~@12 x ~@13 x ~@2",
N: "~ x ~@13 x ~@12 x ~@3", O: "~ x ~@10 x ~@13 x ~@3 x ~", P: "~@11 x ~@12 x ~@4 x ~ x",
Q: "~@10 x ~@4 x ~@8 x ~@3 x ~ x ~", R: "~@9 x ~@4 x ~@7 x ~@3 x ~ x ~@3", S: "~@4 x ~ x ~@4 x ~ x!2 ~",
T: "~@7 x ~@12 x ~@3 x ~@7", U: "~@6 x ~@4 x ~@9 x ~@3 x ~@6", V: "~@6 x ~@3 x ~@3 x ~@4 x ~@3 x ~ x ~@6",
W: "~@6 x ~@10 x ~@2 x ~@2 x ~ x ~@6", X: "~@5 x ~@4 x ~@9 x ~@4 x ~ x ~@4", Y: "~@6 x ~@4 x ~@8 x ~@4 x ~ x ~@4",
Z: "~@6 x ~@3 x ~@8 x ~@3 x ~ x ~@6", AA: "~@5 x ~@13 x ~@3 x ~ x ~@6", AB: "~@4 x ~@2 x ~@9 x ~@2 x ~@5 x ~@5",
AC: "~@2 x ~@11 x ~@6 x ~@10", AD: "x ~@11 x ~@5 x ~@10 x ~@2", AE: "~@10 x ~@7 x ~@5 x ~@3 x ~@2 x",
AF: "~@4 x ~ x!2 ~@4 x ~@2 x", AG: "~@2 x ~@5 x ~@3 x ~@4 x ~@7 x ~@6", AH: "~@6 x ~@4 x ~@11 x ~@8",
AI: "~@2 x ~ x!2 ~@5 x ~ x ~@2", AJ: "~@4 x ~@3 x ~ x ~@10 x ~@4 x ~@5", AK: "~@3 x ~@3 x ~ x ~@10 x ~@3 x ~@7",
AL: "~@2 x ~@3 x ~ x ~@6 x ~@3 x ~@2 x ~@9", AM: "x!2 ~@3 x ~ x ~@11 x ~@4 x ~@7",
AN: "~@2 x ~@2 x ~ x ~@10 x ~@4 x ~@8", AO: "x ~@3 x ~ x ~@10 x ~@3 x ~@9 x", AP: "~@2 x ~ x ~@10 x ~@14 x ~",
AQ: "~ x ~@2 x ~@9 x ~@12 x ~@3 x", AR: "~ x ~@10 x ~@3 x ~@8 x!2 ~@3 x ~", AS: "~@11 x ~@12 x ~@3 x ~ x ~",
AT: "~@9 x ~@3 x ~@7 x ~ x ~@2 x ~ x ~@3", AU: "~@6 x ~@14 x ~@3 x ~ x ~@4", AV: "~@3 x ~ x ~@4 x ~ x!2 ~@2",
AW: "~@5 x ~@12 x ~@3 x ~ x ~@7", AX: "~@3 x ~@3 x ~@9 x ~@3 x ~ x ~@8", AY: "~@2 x ~@3 x ~@9 x ~@2 x ~@12",
AZ: "~ x ~@2 x ~@8 x!2 ~@2 x ~@11 x ~@2", BA: "~ x ~@8 x ~@2 x ~@13 x ~@3 x", BB: "~@9 x ~@2 x ~ x ~@10 x ~@3 x ~@2",
BC: "~@6 x ~@3 x ~@2 x ~@10 x ~@2 x ~@4", BD: "~@5 x ~@2 x ~@2 x ~@20", BE: "~@18 x ~@2 x ~@10",
BF: "~@4 x ~@2 x ~ x ~@10 x ~@11", BG: "x ~@3 x ~@10 x ~@14 x ~", BH: "~@2 x ~ x ~@10 x ~@3 x ~@9 x ~@2",
BI: "~@5 x ~@8 x ~@4 x ~@9 x ~@2", BJ: "~ x ~ x ~@10 x ~@3 x ~@8 x ~@3 x", BK: "~@11 x ~@3 x ~@8 x ~@3 x ~ x ~",
BL: "x!2 ~@14",
})).gain(0.4)
// drums · mid tom
const mid_tom = s("mt").struct("<~@8 [~@9 x ~@4 x ~] [~@15 x ~@14 x ~] [~ x!2 ~@12 x] [~ x ~@2 x ~@27] ~@63>").gain(0.4)
// drums · ride bell
const ride_bell = s("rd").struct("<~@8 [~@11 x ~@4] ~@66>").gain(0.4)
// drums · splash
const splash = s("cr").struct(`<
~@7 A B C D E F G H I J K L M N ~@16 O P Q ~ R S T U V W X ~@17 Y Z AA AB AC AD AE AF AG AH
>`.pickRestart({
A: "~@7 x ~@8", B: "~@3 x ~@3 x ~@14 x ~@3 x ~ x ~@3", C: "x ~ x ~@3 x ~@3 x ~@4 x ~@3 x ~@4 x ~@3 x ~ x ~",
D: "~ x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~ x ~@2",
E: "~ x ~ x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~ x ~@2 x", F: "~@2 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3",
G: "x ~ x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@2 x ~@2 x ~@2", H: "x ~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~ x ~@2 x",
I: "~ x ~@3 x ~@2 x ~@4 x ~@3 x ~@3 x ~@2 x ~ x ~@5", J: "~@3 x ~@5 x ~@3 x ~@3 x ~@3 x ~@2 x ~ x ~@3 x ~",
K: "x ~@4 x ~@3 x ~@3 x ~@3 x ~@4 x ~@2 x ~ x ~@4", L: "~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@3 x ~@3 x ~ x ~@3",
M: "x!2 ~ x ~ x ~ x ~ x ~ x ~ x!2 ~", N: "x!2 ~ x ~ x ~ x ~@8", O: "~@21 x ~@4 x ~@4 x",
P: "~@2 x ~@6 x ~@5 x ~@6 x ~@2 x ~@3 x ~@2", Q: "x ~@3 x ~@3 x ~@2 x ~@20", R: "~@11 x!2 ~@2 x",
S: "~@2 x ~@3 x ~ x ~@5 x ~@2 x ~@3 x ~@3 x ~@2 x ~@3", T: "x ~@3 x ~ x ~@3 x ~ x ~@2 x ~@3 x ~@3 x ~@2 x ~@4 x",
U: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~",
V: "~@3 x ~ x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@3 x ~@3 x ~@2",
W: "~ x ~@2 x ~@2 x ~ x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3", X: "x!2 ~ x!2 ~@11", Y: "~@15 x",
Z: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", AA: "~@2 x ~ x ~@2 x ~ x ~@3 x ~@3 x ~@3 x ~@2 x ~@2 x ~@4",
AB: "x ~@3 x ~ x ~@2 x ~@2 x ~@3 x ~@3 x ~@4 x ~@3 x!2 ~", AC: "~@2 x ~ x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x!2 ~@3",
AD: "~@3 x ~@3 x ~@3 x ~@2 x ~@4 x ~@3 x ~@3 x ~ x ~@2", AE: "~ x ~ x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~ x ~@2 x",
AF: "~@4 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~ x ~@2 x ~@2 x", AG: "~@2 x ~@7 x ~@7 x ~@6 x ~@6", AH: "x!2 ~@14",
})).gain(0.4)
// drums · shaker
const shaker = s("sh").struct(`<
~@8 A ~@11 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 AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR
AS AT AU ~@8
>`.pickRestart({
A: "~@15 x ~@16", B: "~@24 x ~@2 x ~ x ~@2", C: "x ~ x ~@4 x ~@3 x ~@3 x ~@2 x ~@3 x ~@4 x ~ x ~@2",
D: "x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~ x ~@3", E: "x ~ x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~ x ~@3 x",
F: "~ x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~ x ~@3 x ~",
G: "x ~@2 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@2 x ~@2 x ~@2 x",
H: "~@2 x ~@3 x ~@3 x ~@3 x ~@4 x ~@2 x ~@2 x ~@2 x ~ x ~", I: "~@2 x ~@2 x ~@4 x ~@3 x ~@3 x ~@3 x ~ x ~@2 x!2 ~@3",
J: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~ x ~@3 x ~ x ~@2 x", K: "~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@2 x ~@2 x ~@3 x ~",
L: "~@2 x ~@3 x ~@4 x ~@3 x ~@3 x ~ x ~@3 x ~ x ~@3 x", M: "~@2 x ~@3 x ~@3 x ~@2 x ~@3 x ~ x ~@3 x ~ x ~@4 x ~",
N: "~@2 x ~@3 x ~@3 x ~@3 x ~@2 x ~@2 x ~@2 x ~ x ~@3 x ~@2", O: "~ x ~@3 x ~@4 x ~@3 x ~@3 x ~@2 x ~@2 x ~ x ~@4 x",
P: "~@3 x ~@2 x ~@4 x ~@3 x ~@2 x ~@2 x ~@2 x ~ x ~@3 x ~",
Q: "~@2 x ~@2 x ~@3 x ~@3 x ~@3 x ~ x ~@3 x ~ x ~@3 x ~@2",
R: "~ x ~@3 x ~@2 x ~@4 x ~@3 x ~ x ~@2 x ~@2 x ~@2 x ~@3", S: "x ~@2 x ~@3 x ~@3 x ~@2 x ~@17", T: "~@29 x ~@2",
U: "x ~@3 x ~@3 x ~ x ~@2 x ~ x ~@3 x ~@3 x ~@2 x ~@4 x", V: "~@3 x ~@2 x ~ x ~@3 x ~ x ~@3 x ~@2 x ~@2 x ~@7",
W: "~@2 x ~@6 x ~@4 x ~@2 x ~@3 x ~@3 x ~@2 x ~@3", X: "x ~@3 x ~ x ~@3 x ~ x ~@2 x ~@3 x ~@2 x ~@3 x ~@3 x ~",
Y: "~ x!2 ~ x ~@2 x ~ x ~ x ~ x ~ x", Z: "~@2 x ~@2 x ~@2 x ~ x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@2",
AA: "~ x ~@2 x ~@2 x ~ x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3", AB: "x ~ x ~@3 x ~ x ~@3 x ~@6 x ~@3 x ~@3 x ~@3 x",
AC: "~ x ~@5 x ~@2 x ~@3 x ~@4 x ~@4 x ~@3 x ~@2 x", AD: "~@2 x ~@2 x ~ x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~",
AE: "x ~@3 x ~ x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~ x",
// … 19 more lines
More by Soundgarden
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.