0:00/0:00
// School — Nirvana
// 120 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 59 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 · "dist"
const distortion_guitar = note(`<
A B C D E F@5 G@4 H@2 I@2 J K@2 L M N@2 O P Q R@2 S T@4 U V ~@13 W@2 X Y Z@2 AA@2 AB
>`.pickRestart({
A: "~@11 e2@4 ~@2 e2 ~@2 e2@2 g2@2 ~ b2 ~ e2@2 ~ e2@2, ~@24 a2@3 ~@5",
B: "g2@2 ~ b2@2 ~ e2@2 e2@2 ~ e2@2 ~ e2@2 ~ e2@2 g2@2 ~ b2@3 e2@4 ~@3, ~@2 a2@2 ~@17 a2@3 ~@8",
C: "e2@2 ~ e2@2 ~@2 b2@2 e2@2 ~ e2@2 [g2,a2]@2 b2@2 e2 ~@2 e2@2 ~ e2@2 ~ e2@2 ~ e2 ~, ~@5 g2@2 ~@25, ~@3 a2 ~@12", // Gsus2
D: "~ e2@2 ~@2 b2@3 ~@2 e2@2 ~@3 e2@2 ~ e2@2 g2@2 b2@2 ~ e2@2 e2@2 ~ g2@2, ~@3 g2@2 ~@27, ~@4 a2@3 ~@25",
E: "~ [a2,b2] ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~@2 g2@2 ~ b2@2 ~@2 e2@2 ~@4 e2 ~@2, ~@15 e2@2 ~ a2@3 ~@11", // Asus2
F: "[e2@2 [g2,a2]@2 b2 e2 ~@2 e2@2 ~@2 b2@2 ~ e2@2 ~ e2@2 e2@2 ~ e2@2 ~ e2@2 ~ e2@2 g2@2 ~ b2@3 ~ e2@2 ~@3 e2@2 ~ e2@2 g2@2 [a2,b2]@2 ~ e2 ~@2 e2@2 [g2,a2]@2 b2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2 ~@2 e2@2 g2@2 ~ [a2,b2]@3 ~ e2@2 ~@4 e2 ~ e2@2 ~ g2@2 [a2,b2] ~ e2 ~ e2@2 ~ [a2,b2]@2 ~@2 e2@2 ~ e2@2 e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~@2 b2@4 ~ e2@2 ~@3 e2@2 ~ e2@2 ~@2 b2 ~ e2 ~@2 e2@2 ~@2 b2@2 e2@2 ~ e2@2 ~, ~@10 g2@2 ~@112 g2@2 ~@15 g2@2 ~@7 g2@2 ~@8, ~@11 a2@2 ~@20 a2@3 ~@89 a2@4 ~@13 a2@2 ~@7 a2@2 ~@7]/5", // Gsus2 Asus2 Gsus2 Asus2
G: "[e2@2 e2@2 ~ e2@2 ~ e2@2 ~@2 b2@4 ~ e2@3 ~@2 e2@2 ~ e2@2 ~ g2 b2 ~ e2@2 ~ e2@2 ~@2 b2@2 g2 e2@4 ~ e2@4 ~@2 e2@2 e2@5 ~@5 f3@5 ~ [c3,g3]@5 ~ [c3,g3]@5 ~ [c3,g3]@2 ~ [c3,g3]@2 ~ a2@2 ~ a2@2 ~ [a2,e3]@5 ~ e3@2 ~@4 [a2,e3]@2 [a2,e3] ~@3 [e3,b3]@11 ~ [e3,b3]@4, ~@10 g2@2 ~@24 g2@2 ~@61 a2@3 ~@26, ~@11 a2@4 ~@13 a2@3 ~@6 a2@2 ~@24 b2@5 ~@20 e3@5 ~@35]/4", // C5 A5 E5
H: "[~@2 [e3,b3] ~@2 [e3,b3]@2 ~ [d3,a3]@2 ~ [d3,a3]@2 ~ [d3,a3]@5 ~ a3@4 ~ [d3,a3]@2 ~ [d3,a3]@2 ~ [c3,g3]@7 ~ [c3,g3]@2 ~ [c3,g3]@4 ~@2 [c3,g3]@2 ~ g3@2 ~ [a2,e3]@2 ~ a2@2 ~ e3@4, ~@19 d3@4 ~@27 c3@2 ~@4 e3@2 ~@2 a2@2 ~@2]/2", // E5 D5 C5 A5
I: "[~ [a2,e3]@4 ~@2 [a2,e3]@2 ~@5 d2 ~@4 e2@2 ~ [e2,g2]@3 a2@3 e2@2 ~ e2@2 ~ a2@2 b2 ~ e2@2 ~ e2@2 ~ e2 ~@2 e2@2 ~ e2@2 ~@2 b2@4 ~ e2@2 ~@3, ~@13 e2@3 ~@17 g2@2 ~@17 g2@3 ~@9, ~@53 a2@4 ~@7]/2", // A5 Em
J: "~ e2 ~ e2@2 g2@2 [a2,b2]@2 ~ e2@2 e2@2 ~@2 b2@2 e2@2 ~ e2@2 ~ e2@2 e2@2 ~ e2 ~@2, ~@15 [g2,a2]@2 ~@15", // Asus2 Gsus2
K: "[~@2 g2@3 [a2,b2]@4 ~ e2@2 ~@4 e2@2 e2@2 g2@2 [a2,b2]@2 e2@2 ~ e2@2 ~@2 b2@2 e2@2 ~ e2@2 ~ e2@2 e2@2 ~ e2 ~@2 e2@2 g2@3 [a2,b2]@3 ~ e2@3 ~@2 e2@2 ~, ~ e2@2 ~@26 g2@2 ~@33, ~@15 a2@2 ~@15]/2", // Asus2
L: "~ e2 ~ a2@2 b2 ~ e2@2 ~ e2@2 [g2,a2]@2 ~@2 e2@2 ~ e2@2 e2@2 ~ e2@2 ~ e2 ~@2 e2@2, ~ g2 ~@14", // Gsus2
M: "g2@2 ~ b2@3 ~ e2@3 ~@2 e2@2 ~ e2@3 [g2,a2]@2 b2 e2@2 ~ e2@2 g2@2 ~ [a2,b2] e2@2, ~ a2@2 ~@13", // Gsus2 Asus2
N: "[~ e2@2 ~ e2@2 ~ e2@2 ~ e2@5 g2@2 ~ b2@3 ~ e2@4 ~@2 e2@2 ~ e2@2 ~@2 b2 ~ e2@2 ~ e2@2 ~@2 b2@2 e2@2 ~ e2@2 ~ e2 ~@2 e2@2 ~ e2@2 e2@2 g2@2, ~@17 a2@4 ~@12 g2@2 ~@7 g2@2 ~@20, ~@34 a2@3 ~@6 a2@2 ~@19]/2",
O: "~ [a2,b2]@3 ~@2 e2@3 ~@2 e2@2 ~ e2@2 ~@2 b2@2 e2@2 ~ e2@3 [g2,a2]@2 b2@2 e2@2, ~@17 a2@2 ~@13", // Asus2 Gsus2
P: "~ e2 ~@2 e2@2 ~ e2@2 ~ e2@2 e2@3 ~@2 b2@3 ~ e2@4 ~@2 e2@2 ~ e2@2, ~@15 g2@2 ~@15, ~@16 a2@3 ~@13",
Q: "~@2 b2@2 e2@2 ~ e2@2 g2@2 a2@3 g2 e2@3 ~ a2@2 e2@2 ~@2 e2@2 e2@2 ~ [e2,b2]@2, g2 ~@15, ~ a2@2 ~@8 b2 ~@6 b2@3 ~@3 b2@2 ~@6", // E5
R: "[~@6 f3@4 ~@2 g3@2 ~ [c3,g3]@2 ~ [c3,g3]@5 ~@2 g3@2 ~ g3 ~@2 f3@2 [b2,f3]@2 ~ [b2,f3]@4 ~@2 [a2,e3]@4 ~@3 [a2,e3]@2 ~@5 b3@4 ~@4, ~@4 b2@6 ~ c3@3 ~@10 c3@2 ~ c3@2 ~ b2@3 ~@22 e3@4 ~@5]/2", // C5 Bdim A5
S: "~@3 [e3,b3]@5 ~ [e3,b3]@2 ~ [e3,b3]@2 ~ [d3,a3]@2 ~ [d3,a3]@2 ~ [d3,a3]@4 ~@3 d3@4, ~@27 a3@4 ~", // E5 D5
T: "[~@3 a3@2 ~ d3@2 ~ [c3,g3]@10 ~@3 [c3,g3]@5 ~ [c3,g3]@2 ~ [c3,g3]@2 ~ [a2,e3]@2 ~ [a2,e3]@2 ~ [a2,e3]@5 ~ [a2,e3]@4 ~@2 [a2,e3]@3 ~@3 e2@4 ~ e2@2 ~ e2@2 g2@2 a2@3 e2@2 ~ e2@2 ~ a2@2 b2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~@4 a2@3 b2@3 ~ e2@3 ~@2 e2@2 ~ e2@3 ~ a2@2 ~ e2@2 e2@2 ~ [e2,g2]@2 ~, ~@2 d3@2 ~ a3@2 ~@71 g2@3 ~@14 g2@5 ~@16 g2@2 ~@10]/4", // C5 A5 Em
U: "[a2,b2] ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@3 ~@2 b2@3 ~ e2@3 ~@3 e2@2 ~, ~@17 g2@2 ~@13, ~@18 a2@3 ~@11", // Asus2
V: "e2 ~@15",
W: "[~@25 c3@10 ~@2 [c3,g3]@5 ~@2 [c3,g3]@2 ~ c3@2 ~ a2@2 a2@2 ~ [a2,e3]@5 ~ [a2,e3]@3, ~@24 g3@10 ~@12 g3@2 ~@2 e3@5 ~@9]/2", // C5 A5
X: "~@4 [a2,e3]@2 ~@3 [e3,b3]@10 ~@2 [e3,b3]@5 ~ [e3,b3]@2 ~ [e3,b3]@2", // A5 E5
Y: "~ [d3,a3] ~ [d3,a3]@2 ~ [d3,a3]@5 ~ [d3,a3]@3 ~@4 [d3,a3] ~ [d3,a3]@2 ~@2 [c3,g3]@7", // D5 C5
Z: "[~@2 [c3,g3]@2 ~ [c3,g3]@5 ~ [c3,g3]@2 ~ [c3,g3]@2 ~@2 [a2,e3]@2 ~ a2@2 ~ [a2,e3]@4 ~@2 [a2,e3]@5 ~ [a2,e3]@2 ~ [a2,e3] ~@3 b3@11 ~ [e3,b3]@6 [e3,b3]@2 ~, ~@10 e3 ~@10 e3@5 ~@6]/2", // C5 A5 E5
AA: "[~ [e3,b3] ~@2 [d3,a3]@2 ~ [d3,a3]@2 ~ [d3,a3]@5 ~@2 [d3,a3]@3 ~@4 [d3,a3]@2 [d3,a3]@2 ~@2 [c3,g3]@7 ~@2 g3@2 ~ [c3,g3]@6 ~@2 [c3,g3]@2 [c3,g3]@2 ~@2 a2@2 ~ a2@2 ~ a2@2, ~@19 c3 ~@12]/2", // E5 D5 C5
AB: "~@4 a2@3 ~@2 a2@4 ~@19",
})).s("gm_distortion_guitar").gain(0.26)
// bass · slap bass 1 · "slap"
const bass = note(`<
~@2 A@2 B C@2 D E@2 F@2 G H I@2 J@2 K L M N O P Q@2 R@5 S T U V W X Y Z AA@2 AB@2 AC AD@2 AE AF AG@3 AH AI AJ AK AL
AM@2 AN
>`.pickRestart({
A: "[~@31 e1@2 [f1,g1] [a1,c2] [b1,d2,e2] ~@3 e1@4 ~@3 e1@2 ~ e1@3 ~ b1@3 ~ e1@2 ~ e1@2 b1@2]/2", // Fsus2 Am E7
B: "~@2 e1@2 ~ e1@2 e1@2 ~@2 e1 ~ e1@2 ~@2 e1@2 b1@5 ~ e1@3 ~@2 e1@2",
C: "[~ e1@2 b1@2 ~ e1@2 ~ e1 ~ b1@2 e1@2 ~ e1@2 ~ e1 ~@2 e1@2 ~ e1@2 ~ e1@2 ~ b1@5 ~ e1@4 ~@3 e1 ~@2 e1@2 b1@2 ~@2 e1 ~@2 e1 ~ b1@2 ~@2 e1@2]/2",
D: "~@2 b1@2 ~@2 e1@2 ~ e1 ~@2 e1@2 ~ b1@5 ~ e1@3 ~@3 e1 ~@2 e1@2",
E: "[~ b1 ~ e1 ~@2 e1 ~ b1@2 ~ e1@2 ~ e1 ~@2 e1 ~@2 e1@2 ~ e1 ~@2 e1@2 ~ b1@6 e1@3 ~@3 e1@2 ~ e1@2 b1@2 ~ e1@2 ~ e1@2 ~ b1@2 e1@2 ~@2 e1@2 ~]/2",
F: "[e1@2 ~ e1@2 ~ e1 ~@2 e1@2 ~ b1@5 ~ e1@2 ~@3 e1 ~@2 e1@2 ~ b1@2 e1@2 ~ e1 ~@2 b1@2 ~ e1@2 b1@2 ~@2 b1@5 ~ b1@2 ~@2 b1 ~ b1@4 ~@2]/2",
G: "c2@6 ~@2 b1@2 ~@2 c2@5 ~ c2@2 ~ c2@3 g1@5 ~@3", H: "a1@4 a1@3 ~@2 a1@5 ~ e2@4 ~ e2@6 ~@2 e2@4",
I: "[~@3 e2@2 ~ e2@2 d2@2 ~ d2@2 ~ d2@5 ~ d2@4 ~ d2@5 ~ c2@7 ~ c2@2 ~ c2@12 a1@3 a1@2 ~ a1@4]/2",
J: "[~ a1@3 ~@3 a1@3 ~@2 e1@4 ~@2 e1@2 ~ e1@2 ~ b1@2 ~@2 e1@2 ~ e1@2 b1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 b1@4 ~ e1@3 ~@3]/2",
K: "~ e1 ~ e1@2 ~ b1@3 e1 ~@2 e1@2 b1@3 ~ e1@2 ~ e1@2 ~ e1 ~@2 e1 ~@2 e1 ~",
L: "~ e1 ~ b1@6 ~ e1@3 ~@3 e1 ~ e1@2 ~ b1@2 ~ e1@2 ~ e1 ~ b1@2 ~",
M: "~ e1 ~@2 e1@2 ~ e1@2 ~ e1 ~@2 e1 ~@2 e1@2 ~ b1@5 ~ e1@3 ~@2 e1@2",
N: "~ e1@2 ~ b1@2 e1@2 ~ e1@2 ~ b1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1 ~@2 e1@2",
O: "~ b1@5 ~ e1@3 ~@2 e1@2 ~ e1@2 b1@2 ~@2 e1 ~ e1@2 ~ b1@2 ~ e1@2 ~",
P: "~ b1@2 ~ e1@2 ~ e1 ~@2 e1@2 ~ b1@6 ~ e1@3 ~@4 e1@2 ~ e1@2",
Q: "[~ b1@3 e1@2 ~ e1@2 ~ b1@3 e1@2 ~ b1@2 ~@2 e1@2 ~ e1@2 ~ e1@2 ~ b1@5 ~ e1@3 ~@4 e1@2 ~@2 e1@3 ~ b1@3 e1@2 ~ e1@2 b1@2 ~@2 e1@2]/2",
R: "[~ b1@3 e1@2 ~@2 e1@2 ~ e1@2 ~@2 e1@2 ~ b1@3 ~@2 e1@2 ~@3 e1@2 ~ e1@2 ~ b1@2 e1 ~@2 e1@2 ~ b1@2 ~ e1@2 ~ e1@2 ~ b1@5 ~ b1@2 ~ b1@2 ~ b1@2 ~@3 c2@10 ~@3 c2@6 ~ c2@2 ~ c2@4 a1@4 ~ a1@5 ~@2 a1@4 ~@2 a1@2 a1@2 ~@2 e2@12 ~@2 e2@7 ~ e2@2 ~ d2@2 ~ d2@2 ~ d2@3 ~@2 d2@3 ~@2]/5",
S: "~@5 d2 ~@2 c2@8 ~ c2@2 ~@2 c2@5 ~ c2@2 ~ c2@2", T: "~@2 a1@5 ~ a1@4 ~@2 a1@2 ~@4 a1@2 ~ a1@2 ~@2 e1@3 ~@2",
U: "e1@2 ~ e1@3 b1@2 ~ e1@2 e1@2 ~ b1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1 ~@2 e1 ~@2",
V: "e1@2 b1@5 ~ e1@3 ~@3 e1@2 ~ e1@2 ~ b1@2 ~ e1@2 ~ e1@2 ~ b1@2 ~",
W: "~ e1 ~ e1@2 ~ e1 ~@2 e1 ~@2 e1 ~@2 e1@2 ~ b1@5 ~ e1@2 ~@4 e1 ~",
X: "~ e1 ~ b1@3 e1@2 ~ e1@2 ~ b1@3 e1@2 ~ e1@2 ~ e1 ~@2 e1 ~@2 e1@2 ~ e1@2",
Y: "~ b1@4 ~@2 e1@4 ~@3 e1@2 ~ e1@2 ~ b1@2 ~ e1@2 ~ e1@2 ~ b1@2 ~",
Z: "e1@2 ~ e1@2 ~ e1 ~@2 e1 ~@2 e1@2 ~ e1@2 ~ b1@5 ~@2 e1@2 ~@4 e1",
AA: "[~@2 e1@2 ~ b1@2 ~ e1 ~@2 e1@2 b1@2 ~@2 e1@2 ~ e1 ~@2 e1 ~@2 e1 ~@2 e1 ~ e1@2 ~@2 b1@5 ~@2 e1@3 ~ e1@2 ~ e1@2 ~@2 b1@3 e1 ~@2 e1@2 e1 ~@2]/2",
AB: "[b1@2 e1 ~@2 e1 ~@3 e1@2 ~ e1@2 ~ e1@4 b1@5 ~ e1@2 ~@4 e1@2 ~ e1@2 ~ b1@2 ~ e1 ~@2 e1@2 ~ b1@2 ~ e1@2 ~ e1 ~@2 e1 ~@2 e1 ~@2 e1@2 ~]/2",
AC: "~ e1 ~ b1@5 ~ e1@3 ~@2 e1@2 ~@2 e1@2 ~ b1@3 e1 ~@2 e1 ~@2 b1@2",
AD: "[~@2 e1@2 ~ e1@2 ~ e1 ~@2 e1 ~ e1@2 ~ e1@2 ~@2 b1@5 ~ e1@2 ~@3 e1@2 ~ e1@2 ~ b1@3 e1@2 ~ e1@2 ~ b1@3 e1@2 ~ e1@2 ~ e1 ~@2 e1 ~@2 e1 ~@2]/2",
AE: "e1@3 ~ b1@6 e1@2 ~@3 e1@2 ~ e1@2 ~ b1@3 e1 ~@2 e1@2 b1@2 ~",
AF: "~ e1@2 e1@2 ~ e1@2 ~ e1 ~@2 e1 ~@2 e1@2 ~@2 b1@5 ~ e1@2 ~@3 e1@2",
AG: "[~ e1@2 ~ b1@2 ~ e1@2 ~ e1@2 ~ b1@2 ~ e1 ~@2 e1 ~@2 e1@2 ~ e1 ~@2 e1 ~@2 e1@3 b1@5 ~ e1@2 ~@4 e1 ~@2 e1@2 ~ b1@2 e1 ~@2 e1 ~@2 b1@2 ~ b1@5 ~ b1@5 ~ b1@2 ~@2 b1@2 ~ b1@2 ~@4 c2@8]/3",
AH: "~@5 c2@5 c2@3 ~ c2@3 a1@2 a1@2 ~@2 a1@4 ~ a1@4", AI: "~@2 a1@6 e2@8 e2@2 ~@2 e2@5 ~ e2@2 ~ e2@2 ~",
AJ: "d2@2 ~ d2@2 ~ d2@5 ~ d2@4 ~@2 d2@2 ~@2 d2@3 c2@7",
AK: "~@3 c2@2 ~ c2@5 ~ c2@2 ~ c2@3 a1@2 ~ a1@2 ~ a1@4 ~@2 a1@2", AL: "~@4 a1@7 ~ f2@6 ~ e2@3 e2@2 ~ e2@5 ~@2",
AM: "[e2@2 e2@2 ~@2 d2@2 ~ d2@2 ~ d2@4 ~@2 d2@4 ~@2 d2@2 ~ d2@3 ~ c2@7 ~@2 c2@2 ~ c2@4 ~@3 c2@2 c2@3 a1@2 ~ a1@2 ~ a1@3]/2",
AN: "~@3 a1@3 ~@2 a1@5 ~@19",
})).s("gm_slap_bass_1").gain(0.26)
// drums · snare
const snare = s("sd").struct(`<
~@2 A B C D ~ E F ~ G H I J K L M N O ~ P Q ~ R S ~ R ~ T U V W X Y ~ Z AA ~ AB AC B C AD B AE AF ~ AG AH AI AJ AK AL
AM AN ~ AO AP AQ
>`.pickRestart({
A: "~@25 x ~@2 x ~@3", B: "x", C: "~@3 x ~@4", D: "~@12 x!2 ~@2", E: "~@6 x ~@2 x ~@22", F: "~@23 x ~@8",
G: "~@4 x ~@4 x ~@22", H: "~@19 x ~@3 x ~@8", I: "~@21 x ~@4 x ~@5", J: "~ x ~@9 x ~@20",
K: "~@4 x ~@2 x ~@3 x ~ x ~@2", L: "~@13 x ~@2", M: "~ x ~@5 x ~@24", N: "~@15 x ~@3 x ~@12", O: "~@15 x",
P: "~@11 x ~@20", Q: "~@13 x ~ x", R: "~@9 x ~@22", S: "~@25 x ~@6", T: "~@31 x", U: "~@5 x ~@4 x ~@6 x ~@14",
V: "~@18 x ~@3 x ~@6 x ~@2", W: "~@5 x ~@26", X: "~ x ~@5 x ~@2 x ~@4 x ~@16", Y: "~@27 x ~@3 x",
Z: "~@11 x ~@3 x ~@16", AA: "~@25 x ~@4 x ~", AB: "~@13 x ~@18", AC: "~@27 x ~@4", AD: "~@7 x",
AE: "~@12 x ~@4 x ~@14", AF: "~@25 x ~@3 x ~@2", AG: "~@11 x ~@3 x ~@2 x ~@13", AH: "~@10 x ~@2 x ~@2",
AI: "~@29 x ~@2", AJ: "~@3 x ~@28", AK: "~@19 x ~@2 x ~@9", AL: "~ x ~@14", AM: "~ x ~@2 x ~@3 x ~@9 x ~@13",
AN: "~@17 x ~@4 x ~@8 x", AO: "~@3 x ~@6 x ~@16 x ~@4", AP: "~@23 x ~@2 x ~@3 x ~", AQ: "~@3 x ~@5 x ~@22",
})).gain(0.05)
// drums · low tom
const low_tom = s("lt").struct("<~@14 [~@19 x ~@12] ~@44>").gain(0.05)
// drums · mid tom
const mid_tom = s("mt").struct(`<
~@2 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 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
>`.pickRestart({
A: "~@22 x ~@3 x ~@2 x ~@2", B: "x ~@2 x ~@3 x ~@6 x ~@2 x ~@6 x ~@2 x ~@4",
C: "~ x ~@2 x ~@5 x ~@3 x ~@2 x ~@8 x ~@4 x", D: "~@5 x ~@3 x ~@5 x ~@2 x ~@2 x ~@2 x ~@4 x ~@2",
E: "~@6 x ~@5 x ~@2 x ~@4 x ~@2 x ~@5 x ~@2", F: "~ x ~ x ~@3 x ~@3 x ~@9 x ~@4 x ~@2 x ~@2",
G: "~@3 x ~@2 x ~@5 x ~@2 x ~@2 x ~@2 x ~@4 x ~@5", H: "~@3 x ~@5 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@3",
I: "~@2 x ~@2 x ~@6 x ~@5 x ~@4 x ~@2 x ~@5", J: "x ~ x ~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@4 x ~@6",
K: "~@9 x ~@2 x ~@2 x", L: "~@4 x ~@17 x ~@2 x ~@6", M: "~@3 x ~@2 x ~@4 x ~@7 x ~ x ~@3 x ~@5 x",
N: "~@6 x ~@2 x ~@8 x ~@5 x ~@3 x ~@3", O: "~@2 x ~@5 x ~@4 x ~@9 x ~@5 x ~@2",
P: "~@5 x ~@2 x ~@5 x ~ x ~@3 x ~@6 x ~@4", Q: "~ x ~ x ~@5 x ~@2 x ~@4 x ~@2 x ~@2 x ~@3 x ~@3 x",
R: "~ x ~@8 x ~@5 x ~@2 x ~@4 x ~@2 x ~@4", S: "~ x ~ x ~@2 x ~@3 x ~ x ~@3 x ~@8 x ~@4 x ~",
T: "~ x ~@4 x ~@2 x ~@5 x ~@2 x ~@5 x ~@2 x ~@4", U: "x ~@7 x ~@4 x ~@2 x ~@5 x ~ x ~@5 x ~",
V: "~ x ~@2 x ~@3 x ~@2 x ~@3 x ~@7 x ~@5 x ~@2", W: "x ~@4 x ~@2 x ~@4 x ~@2 x ~@2 x ~@3 x ~@3 x ~@2 x ~",
X: "~@6 x ~@5 x ~@10 x ~@5 x ~@2", Y: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@8 x ~@5 x ~@2 x",
Z: "~@5 x ~ x ~@6 x ~@2 x ~@7 x ~@2 x ~@2 x", AA: "~@11 x ~@2 x ~@10 x ~ x ~@4", AB: "~@2 x ~@5 x ~@4 x ~@9 x ~@8",
AC: "x ~@8 x ~@6 x ~@3 x ~@5 x ~@4 x", AD: "~@9 x ~@8 x ~@9 x ~@2 x", AE: "~@5 x ~ x ~@5 x ~@5 x ~@12",
AF: "~ x ~@2 x ~@4 x ~@2 x ~@5 x ~@6 x ~ x ~@4", AG: "~ x ~@7 x ~@5 x ~@5 x ~@2 x ~@7",
AH: "~ x ~ x ~@5 x ~@2 x ~@5 x ~@4 x ~@6 x ~", AI: "~@5 x ~@3 x ~@4 x ~@2 x ~@5 x ~@2 x ~@3 x ~",
AJ: "~@8 x ~@4 x ~@2 x ~@5 x ~@2 x ~@6", AK: "x ~ x ~@5 x ~@2 x ~@3 x ~@8 x ~@5 x ~",
AL: "~ x ~@5 x ~@2 x ~@5 x ~@2 x ~@5 x ~@2 x ~@3", AM: "~ x ~@7 x ~@5 x ~@2 x ~@5 x ~@2 x ~@4",
AN: "~ x ~@5 x ~@3 x ~@2 x ~@11 x ~@5", AO: "x ~ x ~@5 x ~@2 x ~@5 x ~@2 x ~@5 x ~@2 x ~@2",
AP: "~@2 x ~@6 x ~@5 x ~@2 x ~@5 x ~@2 x ~@4", AQ: "~ x ~ x ~@6 x ~@3 x ~@3 x ~@7 x ~@5",
AR: "~ x ~ x ~@4 x ~@2 x ~@5 x ~@2 x ~@2 x ~@4 x ~ x ~", AS: "~ x ~@8 x ~@5 x ~ x ~@5 x ~@2 x ~@4",
AT: "~ x ~@2 x ~@6 x ~ x ~@4 x ~@13", AU: "~ x ~@2 x ~@12 x ~@5 x ~@4 x ~@3", AV: "x ~@26 x ~@4",
AW: "x ~@10 x ~@2 x ~@2 x ~@12 x ~", AX: "~ x ~@9 x ~@2 x ~@4 x ~@2 x ~ x ~@5 x ~",
AY: "~@5 x ~@10 x ~@2 x ~@7 x ~ x ~@2", AZ: "~@7 x ~@5 x ~@7 x ~@9 x", BA: "~@2 x ~@8 x ~@2 x ~@5 x ~@5 x ~@5",
BB: "~@5 x ~@11 x ~@2 x ~@8 x ~@2", BC: "~ x ~@5 x ~@8 x ~@7 x ~@7", BD: "~@5 x ~ x ~@8 x ~@2 x ~@3 x ~@2 x ~@3 x ~",
BE: "~@4 x ~@4 x ~@22",
})).gain(0.05)
// drums · splash
const splash = s("cr").struct(`<
~@3 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 AA AB Z AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AO AR
AS AT AU AV AW AX AY AZ ~
>`.pickRestart({
A: "~@20 x ~@8 x ~@2", B: "~@7 x ~@12 x ~@11", C: "~@2 x ~@8 x ~@20", D: "~ x ~@15 x ~@8 x ~@5", E: "~@15 x ~@16",
F: "x ~@8 x ~@19 x ~@2", G: "~@14 x ~@7 x ~@8 x", H: "~@3 x ~@3 x", I: "~@5 x ~@21 x ~@4", J: "~@2 x ~@10 x ~@18",
K: "~@16 x ~@12 x ~@2", L: "~@11 x ~@9 x ~@10", M: "~@19 x ~@6 x ~@5", N: "~ x ~@3 x ~@5 x ~@4", O: "~@3 x ~@3 x ~@8",
P: "~@5 x ~@15 x ~@8 x ~", Q: "~@19 x ~@12", R: "~@3 x ~@8 x ~@7 x ~@11", S: "~@2 x ~@16 x ~@7 x ~@4", T: "~@9 x ~@6",
U: "~ x ~@3 x ~@10", V: "~ x ~@13 x ~@10 x ~@5", W: "~@17 x ~@14", X: "~ x ~@8 x ~@8 x ~@12", Y: "~@3 x ~@13 x ~@14",
Z: "~@27 x ~@4", AA: "~@3 x ~@9 x ~@18", AB: "~@6 x ~@4 x ~@4", AC: "~@6 x ~@7 x ~@6 x ~@10", AD: "~ x ~@7 x ~@5 x",
AE: "~@6 x ~@12 x ~@12", AF: "~ x ~@9 x ~@8 x ~@11", AG: "~ x ~@17 x ~@8 x ~@3", AH: "~@5 x ~@13 x ~@12",
AI: "~@4 x ~@8 x ~@8 x ~@9", AJ: "~@3 x ~@17 x ~@8 x ~", AK: "~@2 x ~@6 x ~@6", AL: "~@5 x ~@8 x ~@8 x ~@8",
AM: "~@4 x ~@15 x ~@8 x ~@2", AN: "~@6 x ~@14 x ~@10", AO: "~@5 x ~@8 x ~@17", AP: "~@4 x ~@16 x ~@8 x ~",
AQ: "~@7 x ~@17 x ~@6", AR: "~@3 x ~@6 x ~@9 x ~@11", AS: "~@3 x ~@8 x ~@3", AT: "~ x ~@6", AU: "~@9 x ~@12 x ~@9",
AV: "~@3 x", AW: "~@5 x ~@26", AX: "~@10 x ~@12 x ~@8", AY: "~@31 x", AZ: "~@5 x ~@10",
})).gain(0.05)
stack(distortion_guitar, bass, snare, low_tom, mid_tom, splash)
More by Nirvana
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.