0:00/0:00
// Beyond the Wheel — Soundgarden
// 100 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 109 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.
// chords · distortion guitar · "Guitar"
const distortion_guitar = note(`<
A@2 B@3 C@2 D@3 E@2 F@2 G@2 H@2 I@2 J@3 K@2 L@2 M@2 N@2 O@2 P@2 Q@3 R@2 S T@2 U@2 V@3 W@2 X Y@4 Z@8 ~ AA AB@3 AC AD@2
AE@5 AF AG@8 AH AI AJ@4 AK@5 AL@5 AM@2 AN AO@3 ~@2
>`.pickRestart({
A: "[~@25 [d2,a2]@13 ~@10 [d2,a2]@15 ~]/2", B: "[~@7 [d2,a2]@15 ~@8 [d2,a2]@16 ~@8 [d2,a2]@15 ~@8 [d2,a2]@16 ~@3]/3",
C: "[~@4 a2@15 ~@7 [d2,a2]@16 ~@7 [d2,a2]@15, ~@3 d2@15 ~@46]/2", // D5
D: "[~@7 [d2,a2]@17 ~@6 [d2,a2]@17 ~@6 a2@15 ~@7 a2@16 ~@5, ~@52 d2@16 ~@6 d2@17 ~@5]/3", // D5
E: "[~ [d2,a2]@15 ~@7 [d2,a2]@15 ~@6 [d2,a2]@15 ~@5]/2", F: "[~ [d2,a2]@17 ~@5 [d2,a2]@16 ~@5 [d2,a2]@17 ~@3]/2",
G: "[~@3 [d2,a2]@17 ~@5 [d2,a2]@17 ~@4 [d2,a2]@18]/2", // D5
H: "[~@4 [d2,a2]@18 ~@4 [d2,a2]@17 ~@6 [d2,d3]@15, ~@48 a2@15 ~]/2", // D5 D
I: "[~@7 [d2,a2,d3]@15 ~@7 [d2,a2,d3]@16 ~@6 [d2,a2]@13, ~@51 d3@9 ~@4]/2", // D5
J: "[~@9 [d2,a2]@16 ~@7 d3@13 ~@9 [d2,a2,d3]@15 ~@8 [a2,d3]@14 ~@5, ~@9 d3@13 ~@9 [d2,a2]@15 ~@30 d2@14 ~@6]/3", // D5
K: "[~@3 [a2,d3]@17 ~@5 [d2,a2,d3]@15 ~@7 [d2,d3]@17, ~@2 d2@17 ~@28 a2@14 ~@3]/2", // D5 D
L: "[~@5 [a2,d3]@16 ~@5 [d2,a2,d3]@15 ~@7 [d2,a2,d3]@15 ~, ~ d2@4 ~@11, ~@5 g3@5 ~@54]/2", // D5
M: "[~@5 [d2,a2,d3]@14 ~@8 [d2,d3]@17 ~@6 d3@11 ~@3, ~@26 a2@18 ~@5 [d2,a2]@12 ~@3]/2", // D5 D D5
N: "[~@6 [d2,a2,d3]@13 ~@9 [d2,a2,d3]@13 ~@9 a2@14, ~@49 [d2,d3]@14 ~]/2", // D5 D
O: "[~@7 [d2,a2,d3]@14 ~@8 [d2,a2,d3]@13 ~@9 [d2,a2,d3]@12 ~]/2", // D5
P: "[~@8 [d2,a2,d3]@13 ~@9 [d2,a2,d3]@14 ~@7 [d2,a2,d3]@13]/2", // D5
Q: "[~@8 [d2,a2,d3]@14 ~@7 [d2,a2,d3]@14 ~@10 a2@15 c3@9 d3@8 d#3@2 d3@4 ~@5]/3", R: "[~@28 a2@19 c3@9 d3@8]/2",
S: "d#3@3 d3@5 ~@24", T: "[~@6 a2@20 c3@9 d3@9 ~@2 d3@4 ~@14, ~@11 d#3 ~@4]/2",
U: "[~@18 a2@19 c3@10 d3@8 d#3@3 d3@4 ~@2]/2", V: "[~@29 a2@19 c3@10 d3@8 d#3@3 d3@5 ~@22]/3",
W: "[~@8 a2@19 c3@9 d3@9 d#3@3 d3@4 ~@12]/2", X: "d#3@2 d3@3 c3@2 a2@3 c3@2 a2@7 ~@13",
Y: "[~@5 d3@23 d#3@14 ~@21 a2@19 ~ c3@8 d3@9 d#3@3 d3@4 ~@21]/4",
Z: "[~@68 e3@42 d#3@9 d3@64 ~@2 e3@9 ~@11 d#3@10 ~@7 d3@34, ~@5 a2@123]/8",
AA: "~@15 c6@8 d6@7 ~ b5, ~@15 b5@4 ~@11 c6@2",
AB: "[~@2 d6@2 [b5,c6] ~ [a5,b5] ~ a5@3 f5@4 c6@2 ~ f5@4 ~@6 g#5 c#6 c6@5 a#5 b5@3 ~ [c6,c#6]@2 d6@2 f5@4 b5 ~ d5@3 [d#5,f#5]@3 ~@3 [a5,a#5] a5@2 ~ [c6,d6]@2 g#5 [b5,c6] ~ [e5,f5] [g5,a5] [e5,f5] ~ a5 ~ [g5,a#5,b5] [g5,c#6] [f#5,c6,d6] d#6 ~@5 f6!2 ~@2 [d#6,f6,g6] [g5,a5,d6,e6] [a5,b5,g6,a6,b6] e6 [a5,b5,g6,a6] ~ [e6,f6] [b5,a6,b6] f6, [a2,d6]@2 ~@9 e6 ~@45 b5@4 ~ f5@2 ~@7 [e5,f5,g5,a5]@2 ~@4 e6@5 ~@10 [b5,c6]@2 ~@2, ~ c6@2 ~@2 d6@4 ~@2 g5@2 ~@2 b5 ~ a5@3 ~@2 a#5@9 ~@8 a5@2 ~ a5@5 ~@2 g5@2 ~@5 [b4,c5]@3 ~@19 [f6,g6]@7 ~@11, ~@40 a6@3 ~@5]/3", // Cmaj7 Asus2 C#maj7 D#m A#maj7 Csus2 Cmaj7 Fmaj7 …
AC: "[a6,b6]@2 [g6,b6,c7] ~@2 [g6,a6,b6,c7] a6 c7 ~@2 [g5,b6] [a5,g6,a6] [g5,c7] g6 [a5,b5] [a5,a6] [b5,e6] [a5,f6] ~ [b5,d6,e6] [a5,b5,f6] c6 e6 ~ a5 ~ [a5,b5] ~@2 [c#5,d5,e6] [e5,f6] [f5,b5], ~@22 f6@6 [c6,d6]@3 ~, ~@23 g5@5 ~@4", // Asus2 Cmaj7 G A7 C5 Asus2 A E5 …
AD: "[d5 c6 [b4,a5] a5 ~ e5 [a4,e5] ~ [f4,b4,c5] [f#4,g4,d#5,e5] [a4,b4,d5] [a4,f5] ~ c5 f#5 ~ [e5,f5]@8 [d2,a2]@39 ~, ~@2 d5 ~@29]/2", // B7 A5 F Bm7 Dm Fmaj7 D5
AE: "[~@13 d#3@3 ~@2 a#2 ~ [a#2,d#3]@7 ~ [d2,a2]@50 ~@2 [a#2,d#3]@4 ~@4 [a#2,d#3]@6 ~ [d2,a2]@45 ~ [d2,a2]@6 ~@5 [a#2,d#3]@4 ~@3 [a#2,d#3], ~@3 a#2 ~@36]/5", // D#5 D5 D#5 D5 D#5
AF: "~@3 d2@13, ~@5 a2@27",
AG: "[~@16 [a#2,d#3]@4 ~@4 a#2@5 ~@61 d6@16 ~ a6@4 ~@4 c7 [a6,b6] [g6,a6] c7 b6 [g6,a6] f6 ~@3 [f6,f#6]@2 d6@2 e6 [c6,d6] a5@2 ~ c6 g5@2 f5@2 [a5,b5] a5 [b5,c6,d6] [a5,b5] c6 ~ a5 b5 [f5,g5] ~ a5 f5 [g5,a5] b5 ~ a#5 g#5 [a5,a#5,d#6] c6 ~ g5 [c#6,d6,e6] ~@2 [g5,a5] [d5,e5] [e5,f5] d5 [d5,e5] ~ c5 ~ g4@2 e4 ~ e4 ~ d4@2 c4@12 d4@10 e4 f4 g5@2 f5 ~@3 g5 ~ [d5,e5] ~@2 [f5,g5] g5 ~ f5 [a5,b5] [g5,a5] [c6,d6,e6] ~ c6 a#5 [g5,c#6] ~ d#6@2 ~ a6 [d6,e6,g6] ~ [b5,e6,f6,g6] d6@2 ~ g6 ~ g6@6 ~ [c6,d6,g6,b6] a6 [e6,f6]@2 ~ c7@5 [a6,b6], ~@23 d#3@6 a2@227, ~@15 d2@113, ~@106 b6@8 ~@7 e6@3 g#6@2 ~@7 b5@2 ~@18 f5@2 ~@3 [f5,g5]@2 ~@8 b4@2 ~@6 [c4,d4]@2 ~@58 d6@8 ~@5 d6@7, ~@123 a6@2 ~@78 f5 ~@4 f5@2 ~@18 [a5,f6]@2 ~@5 [e6,f6]@2 ~@19]/8", // D#5 Asus2 Gsus2 F#maj7 Csus2 Asus2 Bm Asus2 …
AH: "~ [d6,g6] ~@2 c6@4 g5@4 ~@2 e6 c6@3 a5@3 f5@2 g5@3 [a5,b5]@2 g5 a5 g5 a5, ~ f6@3 ~@8 f5@3 b5@6 ~@11, ~@15 d6 ~@16", // G5 Asus2
AI: "~ a5 ~ f5 g5 ~ g5!2 [b5,c6,d6] ~ a5 ~ [f5,g5] b5 [b5,c6] [d6,e6] ~ [c6,d6,e6] ~ c6 d6 ~ d6 c6 [d6,e6,f6] d6 e6 d6 e6 ~ e6 ~, g5@2 ~@3 f5@2 ~@2 [g5,a5]@2 ~@10 [b5,c6]@2 ~@6 d6@2 ~", // Bm Fsus2 Cmaj7 Dsus2 C Dm Gsus2 Cmaj7
AJ: "[d6 ~ [d6,e6] ~ [d6,d#6,f#6] ~ [b5,d#6] [e6,f#6] [d6,e6] f6 ~ d6 ~ [f#6,g#6] g6 [f6,f#6]@2 g6 ~ [f#6,g#6] ~ f6@3 ~@3 [d6,f#6] ~@3 c7@58 ~@2 [d2,a2]@15 ~@6 [f2,c3]@13 ~@3, ~@12 c6@2 ~@3 c6@3 [g6,a6]@3 ~@2 b6@11 ~@92, ~@21 e6 ~@2 [c6,d6]@2 [c6,a6,a#6]@2 ~@3 f#6 ~@96]/4", // Dsus2 D B Esus2 Dsus2 F#sus2 F#maj7 F#sus2 …
AK: "[~@2 [g2,d3]@22 ~@2 [c#3,g#3]@109 [c#3,g#3] ~ [c#3,g#3] c#3 g#3 ~ c#3 [c#3,g#3]@2 ~ c#3 ~ c#3!2 c#3@2 ~ c#3 ~ c#3!2 ~ c#3!3, ~@70 [c#3,g#3] ~ g#3@8]/5", // G5 C#5
AL: "[~ c#3!2 ~ c#3!3 ~ c#3 c#3@2 [c3,f#3]@2 ~ [c#3,g3,g#3] ~ [b3,c4] [c#4,d4,d#4,e4,f4,g4] [f#4,g#4,a4,b4,c5] [a#4,d5,e5,f5,g5] ~ [e6,f6]@2 ~@7 [g#3,a3,a#3,c#4] [f#3,g#3,b3] ~ [g2,a2] [f2,g2] ~ [c2,d2,d#2,f#2,g2,a2,b2] [c2,d2,f#2] e2 [d2,f#2,g#2] b2 b2@15 ~@42 g3@38 a2@14 a2@3 ~@3 [e2,f2,b2,c3]@3 ~, ~ g#3@10 g3 ~ [d3,d#3]@2 [f#3,g3,a3]@2 ~@3 [a5,b5,c6,d6]@2 ~@9 [c3,d3]@3 ~@6 a#2@3 ~@16 a2@73 ~@28, ~@14 [e3,f3]@3 ~@13 [e3,f3,g3]@2 [b2,d#3]@2 ~@6 d2@93 ~@3 d2@17 ~@7]/5", // Cdim C# Cmaj7 F#dim Gm7 Fmaj7 Amaj7 G#m7 …
AM: "[~ f2@17 ~ b2 e2 ~@2 d2@14 ~ e2 ~@3 [e2,f2]@2 ~ f2@18 ~, c3@18 ~@4 a2@13 ~@7 c3@21 ~, [e2,b2]@3 ~@20 e2 ~@40]/2", // Fmaj7 E5
AN: "~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~@2 e2!2 ~ e2!2 ~ [e2,b2] ~ [e2,b2] e2 [e2,b2]@14", // E5
AO: "[~ d#2@21 d2@14 ~ [e2,f2] [g2,a2,b2] [c3,d3,e3] [f3,g3,a3] [b3,c4,d4,e4] [f4,g4,a4] [b4,c5,d5] [e5,f5,g5] [a5,b5] c6 e6@4 ~ g6@5 ~ c7@21 ~@17, ~@46 d6@4 ~ f6@3 ~@3 a6@27 ~@12]/3", // Fmaj7 G C F Cmaj7 F Bm Em …
})).s("gm_distortion_guitar").gain(0.26)
// bass · contrabass · "Chris"
const bass = note("<~@3 A@2 B C D@2 E@3 F@4 G@2 H@5 I@4 J@2 K L M@3 N@6 O@7 P Q@5 R@3 S T U@7 ~ V ~@42>".pickRestart({
A: "[~@21 a2@16 ~ a2@6 a#2@11 ~@2 a#2@7]/2", B: "~@2 a#2@6 a2@11 ~@13", C: "~ a2",
D: "[~ a2@4 ~@2 a#2@10 ~@2 a#2@6 ~@10 a2@13 ~@16, ~@30 a#2@9 ~@25]/2",
E: "[~@5 d2@5 ~ d3@14 ~@2 d3@6 a2@7 a#2@15 a#2@5 a2@30 ~@2 a#2@4]/3",
F: "[~@2 c3@12 ~@2 c3@4 ~@2 c3@12 f2@9 ~@2 a2@39 ~@5 [a2,d3]@15 ~ [a2,d3]@7 d#3@7 ~@2 d#3@7, ~@7 a#2]/4", // D5
G: "[~@3 d#3@6 [a2,d3]@35 ~@4 [a2,d3]@15 ~, ~@2 a#2@7 ~@55]/2", // D5
H: "[[a2,d3]@5 ~ [a#2,d#3]@10 ~@2 d#3@8 ~@2 d#3@5 [a2,d3]@34 ~@7 [a2,d3]@13 ~ [a2,d3]@5 ~ [e2,d3]@9 ~@3 d3@8 ~@3 d3@17 ~@23 b2@2 ~, ~@17 a#2@8 ~@2 a#2@8 ~@70 d2@9 ~@2 d2@39 ~ d2@2 ~@2, ~@27 d3@5]/5", // D5 D#5 D5 E7
I: "[~@3 d3@9 e3@6 ~ d#3@2 ~@4 c3@10 g2@11 a2@42 ~@3 d3@13 ~ d3@6 d#3@10 ~ d#3@6, ~@25 d3 ~@102]/4",
J: "[~@4 d#3@6 d3@30 ~@9 d3@14 ~]/2", K: "d3@6 d#3@11 f3@9 d#3@6", L: "~ d3@31",
M: "[~@2 d2@5 f3@6 d3@9 ~@6 a#2@9 ~@2 a#2@9 ~ a#2@7 ~ a2@31 b2@6 ~ a#2, ~@24 d3@7 ~@65]/3",
N: "[~@4 b2@5 ~ c3@4 ~ c3@2 ~@2 c3@7 ~@2 f2@8 ~@3 a2@42 ~@11 d4@8 ~ d#4@8 ~ d#4@6 ~@2 d#4@4 d4@22 ~@11 d4@15 ~ d4@4 ~ d#4@7 f4@9]/6",
O: "[d#4@3 d4@9 ~ a3@23 ~@6 c4@8 d4@9 ~@4 a3@6 ~@2 a#3@5 a3@33 c4@15 ~@2 c4@5 a3@6 ~@4 g3@10 ~ a3@36 d4@14 ~@2 d4@4 d#4@8 ~@2 d#4@6, ~@63 b3 ~@160]/7",
P: "~@5 d4@8 ~@19, ~@2 d#4@5 ~@25",
Q: "[~@8 d4@14 ~ d4@4 d#4@8 f4@10 d#4@2 d4@6 ~@5 a3@22 ~@3 d4@16 ~ d4@5 a3@9 ~ b3@5 ~@2 a#3@5 a3@32 ~]/5",
R: "[c4@12 ~ c4@3 ~@2 c4@9 g3@9 a3@38 d5@17 ~ d5@4]/3", S: "d#5@9 ~ d#5@6 ~@2 d#5@3 d5@9 ~@2", T: "~@19 d5@13",
U: "[~@3 d5@4 d#5@10 f5@9 d#5@2 d5@11 a4@27 d5@77 ~@50 d6@19 ~@12, ~@148 d5@67 ~@9]/7", V: "~@12 d6 ~@19",
})).s("gm_contrabass").gain(0.26)
// drums · snare
const snare = s("sd").struct(`<
~@14 A B C D E F G H I J K L M J N O P E Q R S E T U V W X O Y Z U AA AB AC O ~ AD O AE AF J AG AH C AI AJ AK AL AM AN
AO J AP AQ AR P ~@2 AS AT AU AV AW AX AY AZ E BA BB AO C BC BD AH BE ~ BF BG ~@2 BH ~ BI ~@12
>`.pickRestart({
A: "~@8 x ~@2 x ~@2 x ~@2 x ~@7 x ~@6", B: "~@27 x ~@4", C: "~ x", D: "~@3 x ~@10 x ~", E: "~@9 x ~@6",
F: "~@4 x ~@10 x", G: "~@5 x ~@2", H: "~@5 x ~@10", I: "~ x ~@22 x ~@7", J: "~@15 x ~@16", K: "~@3 x ~@22 x ~@5",
L: "~@16 x ~@2 x ~@12", M: "~@5 x ~@20 x ~@5", N: "~@5 x ~@2 x ~@18 x ~@4", O: "~@17 x ~@14", P: "~@3 x ~@12",
Q: "~@7 x ~@20 x ~@3", R: "~@9 x ~ x ~@4", S: "~@9 x ~@20 x ~", T: "~@3 x ~@3 x", U: "~@7 x ~@8", V: "x!2",
W: "~@5 x ~@19 x ~@6", X: "~@15 x", Y: "~@2 x ~@8 x ~@4", Z: "~@7 x ~@3 x ~@14 x ~@5", AA: "~ x ~@17 x ~@7 x ~@4",
AB: "~@6 x ~@18 x ~@6", AC: "~@3 x ~@4", AD: "~@29 x ~@2", AE: "~@6 x ~@20 x ~@4", AF: "~@9 x ~@18 x ~@3",
AG: "~ x ~ x ~@17 x ~@10", AH: "~@11 x ~@17 x ~@2", AI: "~@2 x ~@14 x ~@14", AJ: "~ x ~@16 x ~@13",
AK: "~ x ~@12 x ~", AL: "~@3 x ~ x ~@7 x ~@2", AM: "~@5 x ~@7 x ~@2", AN: "~@11 x ~@15 x ~@4", AO: "~@13 x ~@17 x",
AP: "x ~@16 x ~@14", AQ: "~@7 x ~@7 x ~@9 x ~@6", AR: "~ x ~@18 x ~@11", AS: "~@3 x ~@9 x ~@2",
AT: "~@15 x ~@7 x ~@4 x ~@3", AU: "~@2 x ~@8 x ~@19 x", AV: "~@15 x ~@5 x ~@5 x ~@4", AW: "~ x ~@6 x ~@11 x ~@11",
AX: "~@6 x ~@16 x ~@4 x ~@3", AY: "~@2 x ~@14 x ~@9 x ~@4", AZ: "~@3 x ~@2 x ~@6 x ~@7 x ~@9 x",
BA: "~@5 x ~@18 x ~@7", BB: "~@9 x ~@17 x ~@4", BC: "~ x ~@8 x ~@5", BD: "~@3 x ~@8 x ~@3", BE: "~@17 x ~@11 x ~@2",
BF: "~@3 x ~@10 x ~@5 x ~@6 x ~@4", BG: "~@21 x ~@10", BH: "~@3 x ~@28", BI: "~@11 x ~@4",
})).gain(0.4)
// drums · low tom
const low_tom = s("lt").struct(`<
~@6 A B ~@7 C D E F G H I J K L M N O P Q R S B T I U V W X L Y Z AA AB AC AD AE AF AG ~ B AH AI AJ AK AL I AM AN AO
AP AQ AR AS AT AU AV ~ AW L ~@2 AX AY AZ BA BB BC BD BE BF BG BH AT BI BJ L BK BL BM BN BO BP ~ BQ ~ I ~@12
>`.pickRestart({
A: "~ x ~@5 x ~@21 x ~@2", B: "~@9 x ~@6", C: "~@2 x ~@4 x ~@4 x ~@3", D: "~@3 x ~@9 x ~@2", E: "~@3 x ~@12 x ~@15",
F: "~@3 x ~@10 x ~", G: "~@17 x ~@9 x ~@4", H: "~@4 x ~@10 x", I: "~@5 x ~@2", J: "~@3 x ~@4", K: "~@3 x ~@21 x ~@6",
L: "~@15 x ~@16", M: "~@5 x ~@15 x ~@4 x ~@5", N: "~@15 x ~@5 x ~@10", O: "~@4 x ~@21 x ~@2 x ~ x",
P: "~@9 x ~@4 x ~@17", Q: "~@6 x ~@20 x ~@4", R: "~@17 x ~@14", S: "~@7 x ~@21 x ~@2", T: "~@7 x ~@15 x ~@5 x ~@2",
U: "~@9 x ~@19 x ~@2", V: "~@4 x ~@4 x ~@8 x ~@13", W: "~ x ~@5 x ~@15 x ~@8", X: "~@8 x ~@18 x ~@4",
Y: "~@2 x ~@18 x ~@5 x ~@4", Z: "~@2 x ~ x ~@2 x ~@18 x ~@5", AA: "~@13 x ~@17 x", AB: "~@17 x ~@4 x ~@9",
AC: "~ x ~@4 x ~", AD: "~@10 x ~@18 x ~@2", AE: "~@2 x ~@12 x ~@16", AF: "~@3 x ~@18 x ~@9",
AG: "~@10 x ~@2 x ~@13 x ~@4", AH: "~@7 x ~@19 x ~@4", AI: "~@3 x ~@2 x ~@4 x ~@4 x ~@7 x ~@7",
AJ: "~@3 x ~@13 x ~@14", AK: "~@5 x ~@18 x ~@7", AL: "~@5 x ~@4 x ~@20 x", AM: "~@6 x ~@18 x ~@6",
AN: "~@6 x ~@2 x ~@14 x ~@7", AO: "~@9 x ~@15 x ~@6", AP: "~@9 x ~@22", AQ: "~ x ~@4 x ~@4 x ~@3 x",
AR: "~@5 x ~@9 x ~@16", AS: "~@2 x ~@16 x ~@12", AT: "~@2 x ~@8 x ~@4", AU: "~@3 x ~@8 x ~@3", AV: "~@4 x ~@8 x ~@2",
AW: "~@10 x ~@20 x", AX: "x ~@14 x ~@7 x ~@8", AY: "x ~@3 x ~@7 x ~@6 x ~@5 x ~@5 x",
AZ: "~@4 x ~@15 x ~@4 x ~@2 x ~@3", BA: "~@7 x ~@2 x ~@4 x ~@3 x ~@4 x ~@6 x", BB: "~@5 x ~@5 x ~@16 x ~@3",
BC: "~@14 x ~@11 x ~@4 x", BD: "~@5 x ~@18 x ~@6 x", BE: "~@9 x ~@6 x ~@10 x ~@4", BF: "~@4 x ~@3 x ~@18 x ~@4",
BG: "~@7 x ~@8", BH: "x ~@8 x ~@6", BI: "~@7 x ~@17 x ~@6", BJ: "~@11 x ~@17 x ~@2", BK: "~ x ~@8 x ~@5",
BL: "~@7 x ~@17 x ~@3 x ~@2", BM: "~@25 x ~@6", BN: "~@11 x ~@5 x ~@6 x ~@7", BO: "~@5 x ~@26", BP: "~ x",
BQ: "~ x ~@30",
})).gain(0.4)
// drums · mid tom
const mid_tom = s("mt").struct("<~@5 A B C D E F G H I J ~@21 K ~@42 L ~@29>".pickRestart({
A: "~@13 x ~@2", B: "~@4 x ~@14 x ~@12", C: "~@7 x ~@22 x ~", D: "~ x ~@2 x ~@2 x ~@2 x ~@10 x ~@2 x ~@2 x ~ x ~@2",
E: "x ~@4 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@4 x ~@2 x ~",
F: "~ x ~ x ~@2 x ~@2 x ~ x ~@6 x ~ x ~@2 x ~@2 x ~ x ~@2 x",
G: "~@2 x ~@4 x ~@2 x ~ x ~ x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~",
H: "~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@4 x ~ x ~@2 x ~@2 x ~ x ~ x ~",
I: "~ x ~@4 x ~@2 x ~@3 x ~@2 x ~@2 x ~ x ~@2 x ~@3 x ~@2 x", J: "~ x ~@8 x ~@5", K: "~@2 x ~@4 x ~@24",
L: "~@27 x ~@4",
})).gain(0.4)
// drums · ride
const ride = s("rd").struct(`<
~@36 A ~@14 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 N AE AF Q AG AH AI AJ ~@10 AK ~ AL AM
AN AO AP AQ
>`.pickRestart({
A: "~@9 x ~@6", B: "~@7 x ~@4 x ~@4 x ~@5 x ~@3 x ~@4", C: "~ x ~@3 x ~ x ~@3 x ~@4 x ~@4 x ~@3 x ~@3 x ~@2",
D: "~@4 x ~@4 x ~@4 x ~@3 x ~@4 x ~@4 x ~@3", E: "~ x ~@3 x ~@4 x ~@4 x ~@4 x ~@3 x ~@4 x ~@2",
F: "~ x ~@8 x ~@10 x ~@4 x ~@4 x", G: "~@11 x ~@9 x ~@8 x ~", H: "~@6 x ~@10 x ~@8 x ~@5",
I: "~@2 x ~@4 x ~@3 x ~@6 x ~@7 x ~@5", J: "~ x ~@3 x ~@3 x ~@6", K: "~ x ~@14", L: "~@19 x ~@7 x ~@4",
M: "~@3 x ~@7 x ~@7 x ~@8 x ~@3", N: "~@4 x ~@8 x ~@8 x ~@8 x", O: "~@3 x ~@4 x ~@3 x ~@3",
P: "x ~@8 x ~@7 x ~@8 x ~@5", Q: "~@7 x ~@7 x ~@9 x ~@6", R: "~ x ~@9 x ~@8 x ~@10 x", S: "~@7 x ~@7 x ~@16",
T: "~@3 x ~@4", U: "x ~@16 x ~@8 x ~@5", V: "~ x ~@6", W: "~@11 x ~@18 x ~", X: "~ x ~@2",
Y: "~@12 x ~@8 x ~@7 x ~@2", Z: "~@6 x ~@8 x ~@16", AA: "~@10 x ~@14 x ~@6", AB: "~@9 x ~@8 x ~@9 x ~@3",
AC: "~@5 x ~@8 x ~@9 x ~@7", AD: "x ~@8 x ~@8 x ~@8 x ~@4", AE: "~@8 x ~@7 x ~@8 x ~@6",
AF: "~@2 x ~@8 x ~@9 x ~@8 x ~", AG: "~@2 x ~@8 x ~@8 x ~@7 x ~@2 x",
AH: "~ x ~@2 x ~@4 x ~@2 x ~ x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@3", AI: "~@8 x ~ x ~@4 x ~@16", AJ: "~@27 x ~@4",
AK: "~@9 x ~@22", AL: "~ x ~@27 x ~@2", AM: "~@11 x ~@10 x ~@2 x ~@3 x ~ x",
AN: "~@3 x ~ x ~@4 x ~ x ~@3 x ~ x ~@4 x ~ x ~@3 x ~@2", AO: "~ x ~ x ~@3 x ~@4 x ~ x ~@4 x ~ x ~@4 x ~@3 x ~",
AP: "x ~@4 x ~@3 x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~ x",
AQ: "~@3 x ~@2 x ~@3 x ~ x ~@4 x ~@2 x ~@2 x ~@2 x ~ x ~@3",
})).gain(0.4)
// drums · china
const china = s("cr").struct(`<
~@3 A ~@10 B C D E F G H I J K L M N O P Q R S T U V W G 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 J BD ~ BE AQ BF BG BH BI ~ BJ BK BL BM BN BO BA BP BQ BR BS BT BU BV ~ BW ~@5 BX C
BY ~@5
>`.pickRestart({
A: "~ x ~@30", B: "~@25 x ~@5 x", C: "~@9 x ~@22", D: "~ x ~@4 x ~@19 x ~@5", E: "~ x", F: "~@3 x ~@10 x ~",
G: "~@9 x ~@6", H: "~@8 x ~@22 x", I: "~@21 x ~@10", J: "~@3 x ~@4", K: "~@3 x ~@21 x ~@6", L: "~@15 x ~@16",
M: "~@5 x ~@21 x ~@4", N: "x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x", O: "~@4 x ~@5 x ~@4 x ~@5 x ~@4 x ~@2 x ~ x",
P: "~@15 x ~@5 x ~@5 x ~@4", Q: "x ~@5 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4",
R: "x ~@5 x ~@4 x ~@4 x ~@5 x ~@2 x ~@2 x ~ x ~", S: "~@7 x ~@5 x ~ x ~@2 x ~@5 x ~@4 x ~@2",
T: "~@2 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@3", U: "~@2 x ~@4 x ~@5 x ~@15 x ~@2",
V: "~@2 x ~@6 x ~@4 x ~@5 x ~@5 x ~@4 x", W: "~@4 x ~@4 x ~@3 x ~@5 x ~@3 x ~@8", X: "~@23 x ~@6 x ~",
Y: "~@5 x ~@3 x ~@2 x ~@3 x ~@4 x ~@5 x ~@4", Z: "x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~",
AA: "~@2 x ~@4 x ~@3 x ~@20", AB: "~@2 x ~ x ~@2 x ~@9 x ~@4 x ~@4 x ~@3 x", AC: "~@4 x ~@8 x ~@6 x ~@6 x ~@3 x",
AD: "~@2 x ~@2 x ~ x ~@4 x ~ x ~@2 x ~@4 x ~@4 x ~@3 x", AE: "~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@2",
AF: "~ x ~@4 x ~@4 x ~@3 x ~@3 x ~@2 x ~ x ~ x ~ x ~@3", AG: "~ x ~@4 x ~@4 x ~@4 x ~@4 x ~@3 x ~@4 x ~",
AH: "~@3 x ~@4 x ~@4 x ~@3 x ~@4 x ~@2 x ~ x ~@2 x ~", AI: "x ~@2 x ~ x ~@26", AJ: "~@31 x",
AK: "~@7 x ~ x ~ x ~ x ~@2 x ~@2 x ~@3 x ~@5 x ~@2", AL: "~@2 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4",
AM: "x ~@4 x ~ x ~@3 x ~@4 x ~@3 x ~@4 x ~@3 x ~@2", AN: "~@4 x ~@4 x ~@3 x ~@4 x ~@4 x ~@4 x ~@3",
AO: "~ x ~@3 x ~@4 x ~@4 x ~@3 x ~@4 x ~@4 x ~@2", AP: "~@10 x ~@10 x ~@4 x ~@4 x", AQ: "~@11 x ~@9 x ~@8 x ~",
AR: "~@6 x ~@10 x ~@7 x ~@6", AS: "~@2 x ~@3 x ~@3 x ~@7 x ~@6 x ~@6", AT: "~@2 x ~@6 x ~@11 x ~@5 x ~@4",
AU: "~ x ~@3 x ~@6 x ~ x ~", AV: "~@19 x ~@7 x ~@4", AW: "~@3 x ~@7 x ~@8 x ~@7 x ~@3", AX: "~@4 x ~@9 x ~@7 x ~@8 x",
AY: "~@7 x ~@8 x ~@7 x ~@7", AZ: "x ~@8 x ~@7 x ~@8 x ~@5", BA: "~@7 x ~@7 x ~@9 x ~@6",
BB: "~@2 x ~@8 x ~@8 x ~@10 x", BC: "~@7 x ~@7 x ~@16", BD: "x ~@16 x ~@8 x ~@5", BE: "~ x ~@6", BF: "~ x ~@2",
BG: "~@11 x ~@9 x ~@7 x ~@2", BH: "~@6 x ~@8 x ~@16", BI: "~@5 x ~@6 x ~@3", BJ: "~@8 x ~@10 x ~@8 x ~@3",
BK: "~@5 x ~@8 x ~@9 x ~@7", BL: "x ~@8 x ~@8 x ~@8 x ~@4", BM: "~@4 x ~@8 x ~@8 x ~@8 x",
BN: "~@8 x ~@7 x ~@8 x ~@6", BO: "~@3 x ~@7 x ~@9 x ~@8 x ~", BP: "~@2 x ~@8 x ~@8 x ~@4 x ~ x ~ x ~@2",
BQ: "x ~@2 x ~ x ~ x ~@2 x ~@2 x ~ x ~@2 x ~ x ~@11", BR: "~@15 x ~@2 x ~@2 x ~@3 x ~@4 x ~",
BS: "~@3 x ~@5 x ~@17 x ~@4", BT: "~@7 x ~@13 x ~@2 x ~@2 x ~@2 x ~",
BU: "~ x ~@2 x ~@2 x ~ x ~ x!7 ~ x!6 ~ x ~ x!3 ~", BV: "x ~ x!4 ~@26", BW: "~@5 x!2 ~@25", BX: "~@19 x ~@12",
BY: "~@8 x ~@20 x ~@2",
})).gain(0.4)
// drums · vibraslap
const vibraslap = s("vibraslap:0").struct("<~@31 [~ x ~@30] ~@61 [~@5 x ~@26] ~@15>").gain(4.7)
// drums · bongos
const bongos = s("bongo:4").struct("<~@88 [~@31 x] [~ x ~ x ~ x ~@4 x ~@2 x ~@18] ~@19>").gain(1.05)
// drums · shaker
const shaker = s("sh").struct(`<
~@48
[~@13 x ~@4 x ~@3 x ~@4 x ~@3 x]
[~@2 x!2 ~@4 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@10]
~@59
>`).gain(0.4)
stack(distortion_guitar, bass, snare, low_tom, mid_tom, ride, china, vibraslap, bongos, shaker)
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.