0:00/0:00
// Don't Leave Me — blink-182
// 144 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: Full arrangement: all 82 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(144/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.
// bass · electric bass finger
const bass = note(`<
A@2 B C D E F G H@2 I J@2 K L@2 M N O N P N O N Q@6 R S T@2 U V@3 W X@2 Y Z Y AA Y Z Y AB AC@8 AD@8 Y Z Y AA Y Z Y AB
AE AF@2 AG AH@5
>`.pickRestart({
A: "[~@2 a1!2 ~ a1!2 ~@3 a1 a1@6 a1@3 a1@3 a1@3 a1 ~ a1!2 ~ a1 ~@2 a1 d2@6 d2@3 d2@3 ~]/2",
B: "d2@3 d2!2 ~ d2!2 ~@2 d2 ~ b1@6 b1@3 b1@3", C: "b1@3 d2@3 d2 d2@3 ~ d2 d2@2 ~ e2@3 e2@2 e2@3 e2, ~@7 d2 ~@4",
D: "e2@2 ~ a1 ~ a1!2 ~ a1 ~@2 a1 a1@6 a1@3 ~ a1@2, ~ e2 ~@10", E: "~ a1@3 a1!2 ~ a1!2 ~@2 a1 ~ d2@6 d2@3 d2@2",
F: "~ d2@3 d2!2 ~ d2!2 ~@3 d2 b1@6 b1@3 b1@2", G: "~ b1@3 d2@3 d2@2 d2@3 d2 d2@2 ~ e2@3 e2@2 e2@3, ~@15 d2@2 ~@7",
H: "[e2@2 e2 e2@2 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 ~ a1@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3]/2",
I: "d2@3 ~ d2@3 b1@3 b1@3 b1@3 b1@3 b1@3 b1@2",
J: "[~ b1@3 ~ b1@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 a1@3 a1@3 a1@3 a1@3 a1@3]/2",
K: "a1@3 ~ a1@3 a1@3 d2@3 d2@3 d2@3 d2@3 d2@2",
L: "[~ d2@3 ~ d2@3 d2@3 b1@3 b1@3 b1@3 b1@3 b1@3 ~ b1@3 b1@3 b1@3 d2@3 d2@3 d2@3 d2@3]/2",
M: "e2 ~ e2 ~ e2!2 ~ e2!2 ~ e2!2 ~ a1@3 a1 a1@4 ~ a1@2", N: "~ b1@3 b1 b1@4 ~ b1@3 d2@3 d2 d2@4 ~ d2@2",
O: "~ e2@3 e2 e2@4 ~ e2@3 a1@3 a1 a1@4 ~ a1@2", P: "~ e2@3 e2!2 ~ e2!2 ~ e2!2 ~ a1@3 a1 a1@4 ~ a1@2",
Q: "[~ d2!2 ~ d2!2 ~ d2!2 ~ d2!2 ~ a1!2 ~ a1 ~ a1 ~@2 a1 a1@6 a1@3 a1@3 a1@3 a1 ~ a1!2 ~ a1 ~@2 a1 d2@6 d2@3 ~ d2@3 d2@3 d2!2 ~ d2!2 ~@2 d2 ~ b1@6 b1@3 b1@3 b1@3 d2@3 d2@2 d2@3 d2 d2@2 ~ e2@3 e2@2 e2@3 e2 e2@2 ~ a1 ~ a1!2 ~ a1 ~@2 a1 a1@6 ~ a1@3 a1@3 a1@3 a1!2 ~ a1!2 ~@2 a1 ~, ~@97 d2@2 ~@10 e2@2 ~@33]/6",
R: "d2@6 d2@3 d2@3 d2@3 d2!2 ~ d2 ~ d2 ~@2 d2", S: "b1@6 b1@3 b1@3 b1@3 d2@3 d2@2 d2@3 d2",
T: "[d2@2 ~ e2@3 ~ e2 e2@3 e2@2 e2 e2@2 a1@3 a1 a1@3 a1@2 a1@4 ~ a1 a1@3 a1@2 a1@2 a1 a1@2 d2@3 d2 d2@3, ~ d2 ~@22]/2",
U: "~ d2 d2@4 ~ d2 d2@3 d2@2 d2@2 d2 d2@2 b1@3 b1 b1@2",
V: "[~@2 b1 b1@4 ~ b1 b1@3 ~ b1 b1@2 b1 b1@2 d2@3 d2 d2@3 ~ d2 d2@4 ~ d2 d2@3 ~ d2 d2@2 d2 d2@2 a1@3 a1@2 a1@3 a1 a1@4 ~ a1 a1@3 ~ a1 a1@2 a1 a1@2 d2@3]/3",
W: "d2@2 d2@3 d2 d2@4 ~ d2@2 d2@3 d2 d2@2 d2 d2@2 b1@2",
X: "[~ b1@2 b1@3 b1 b1@4 ~ b1@2 b1@3 b1 b1@2 b1 b1@2 d2@3 d2@2 d2@3 d2 d2@2 ~ e2 ~ e2 ~ e2!2 ~ e2!2 ~ e2!2 ~, ~@17 d2 ~@6]/2",
Y: "a1@3 a1@2 a1@4 a1@3 b1@3 b1@2 b1@4 b1@3", Z: "d2@3 d2@2 d2@4 d2@3 e2@3 e2@2 e2@4 e2@3",
AA: "d2@3 d2@2 d2@4 d2@3 e2@3 e2 ~ e2!2 ~ e2!2 ~ e2", AB: "d2@3 d2@2 d2@4 d2@3 d2@3 d2@2 d2@4 d2@3",
AC: "[a1@3 a1@2 a1@4 a1@3 e2@3 e2@3 e2@3 e2@2 ~ d2@3 d2@2 d2@4 d2@3 d2@3 d2@3 d2@3 d2@2 ~ a1@3 a1@2 a1@4 a1@3 e2@3 e2@3 e2@3 e2@2 ~ d2@3 d2@2 d2@4 d2@3 d2@3 d2@3 d2@3 d2@2 ~ a1@3 a1@2 a1@4 a1@3 e2@3 e2@3 e2@3 e2@2 ~ d2@3 d2@2 d2@4 d2@3 d2@3 d2@3 d2@3 d2@2 ~ a1@3 a1@2 a1@4 a1@3 e2@3 e2@3 e2@3 e2@2 ~ d2@3 d2@2 d2@4 d2@3 d2@3 d2@3 d2@3 d2@2 d2, ~@23 e2@2 ~@22 d2@2 ~@22 e2@2 ~@22 d2@2 ~@22 e2@2 ~@22 d2@2 ~@22 e2@2 ~@23]/8",
AD: "[a1@3 a1@2 a1@4 a1@3 e2@3 e2@3 e2@3 e2@2 ~ d2@3 d2@2 d2@4 d2@3 d2@3 d2@3 d2@3 d2@2 ~ a1@3 a1@2 a1@4 a1@3 e2@3 e2@3 e2@3 e2@2 ~ d2@3 d2@2 d2@4 d2@3 d2@3 d2@3 d2@3 d2@2 ~ a1@3 a1@2 a1@4 a1@3 e2@3 e2@3 e2@3 e2@2 ~ d2@3 d2@2 d2@4 d2@3 d2@3 d2@3 d2@3 d2@2 ~ a1@3 a1@2 a1@4 a1@3 e2@3 e2@3 e2@3 e2@2 ~ d2@3 d2@2 d2@4 d2@3 d2 ~ d2!2 ~ d2!2 ~ d2!2 ~ d2, ~@23 e2@2 ~@22 d2@2 ~@22 e2@2 ~@22 d2@2 ~@22 e2@2 ~@22 d2@2 ~@22 e2@2 ~@23]/8",
AE: "a1@3 a1@3 a1@3 a1@3 ~ a1@3 a1@3 a1@3 a1@2",
AF: "[~ d2@3 d2@3 d2@3 d2@3 ~ d2@3 d2@3 d2@3 d2@3 b1@3 b1@3 b1@3 b1@3 ~ b1@3 b1@3 b1@3]/2",
AG: "b1@3 d2@3 d2@3 d2@3 ~ d2@3 e2@3 ~@5", AH: "[~ a1@25 ~@4]/5",
})).s("gm_electric_bass_finger").gain(0.8)
// chords · distortion guitar
const distortion_guitar = note(`<
A@2 B C D E F G H@8 I J K J L J K J M@6 N O P@8 Q R S R T R S R U V@4 ~@4 W@7 X R S R T R S R U Y@4 Z@5
>`.pickRestart({
A: "[~@11 [a2,e3,a3]@6 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 ~@9 [d3,a3,d4]@6 [d3,a3,d4]@3 [d3,a3,d4]@3 ~]/2", // A5 D5
B: "[d3,a3,d4] ~@3 [b2,f#3,b3]@2 [b2,f#3,b3]!2", // D5 B5
C: "[b2,f#3,b3]@3 [d3,a3,d4]@3 [d3,a3,d4] [d3,a3,d4]@3 ~ [d3,a3,d4] [d3,a3,d4]@2 ~ [e3,b3,e4]@3 [e3,b3,e4]@2 [e3,b3,e4]@3 [e3,b3,e4], ~@7 [d3,a3,d4] ~@4", // B5 D5 E5 D5
D: "[e3,b3,e4]@2 [e3,b3,e4]@2 ~@8 [a2,e3,a3]@6 [a2,e3,a3]@3 ~ [a2,e3,a3]@2", // E5 A5
E: "~ [a2,e3,a3]@3 ~@9 [d3,a3,d4]@6 [d3,a3,d4]@3 [d3,a3,d4]@2", // A5 D5
F: "~ [d3,a3,d4]@3 ~@9 [b2,f#3,b3]@6 [b2,f#3,b3]@3 [b2,f#3,b3]@2", // D5 B5
G: "~ [b2,f#3,b3]@3 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4] [d3,a3,d4]@2 ~ [e3,b3,e4]@3 [e3,b3,e4]@2 [e3,b3,e4]@3, ~@15 [d3,a3,d4]@2 ~@7", // B5 D5 E5 D5
H: "[[e3,b3,e4]@2 [e3,b3,e4] [e3,b3,e4]@2 [a2,e3,a3]@187]/8", // E5 A5
I: "[e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4]!2 ~ [e3,b3,e4]!2 ~ [e3,b3,e4]!2 ~ [a2,e3,a3]@3 [a2,e3,a3] [a2,e3,a3]@4 ~ [a2,e3,a3]@2", // E5 A5
J: "~ [b2,f#3,b3]@3 [b2,f#3,b3] [b2,f#3,b3]@4 ~ [b2,f#3,b3]@3 [d3,a3,d4]@3 [d3,a3,d4] [d3,a3,d4]@4 ~ [d3,a3,d4]@2", // B5 D5
K: "~ [e3,b3,e4]@3 [e3,b3,e4] [e3,b3,e4]@4 ~ [e3,b3,e4]@3 [a2,e3,a3]@3 [a2,e3,a3] [a2,e3,a3]@4 ~ [a2,e3,a3]@2", // E5 A5
L: "~ [e3,b3,e4]@3 [e3,b3,e4]!2 ~ [e3,b3,e4]!2 ~ [e3,b3,e4]!2 ~ [a2,e3,a3]@3 [a2,e3,a3] [a2,e3,a3]@4 ~ [a2,e3,a3]@2", // E5 A5
M: "[~ [d3,a3,d4]!2 ~ [d3,a3,d4]!2 ~ [d3,a3,d4]!2 ~ [d3,a3,d4]!2 ~@10 [a2,e3,a3]@6 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 ~@9 [d3,a3,d4]@6 [d3,a3,d4]@3 ~ [d3,a3,d4]@3 [d3,a3,d4]@3 ~@9 [b2,f#3,b3]@6 [b2,f#3,b3]@3 [b2,f#3,b3]@3 [b2,f#3,b3]@3 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4] [d3,a3,d4]@2 ~ [e3,b3,e4]@3 [e3,b3,e4]@2 [e3,b3,e4]@3 [e3,b3,e4] [e3,b3,e4]@2 [e3,b3,e4]@2 ~@8 [a2,e3,a3]@6 ~ [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 ~@9, ~@97 [d3,a3,d4]@2 ~@45]/6", // D5 A5 D5 B5 D5 E5 A5 D5
N: "[d3,a3,d4]@2 [d3,a3,d4]!3 ~@3", // D5
O: "[b2,f#3,b3]@6 [b2,f#3,b3]@3 [b2,f#3,b3]@3 [b2,f#3,b3]@3 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4]", // B5 D5
P: "[[d3,a3,d4]@2 ~ [e3,b3,e4]@3 ~ [e3,b3,e4] [e3,b3,e4]@3 [e3,b3,e4]@2 [e3,b3,e4] [e3,b3,e4]@2 [a2,e3,a3]@176, ~ [d3,a3,d4] ~@94]/8", // D5 E5 A5 D5
Q: "~@11 [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4]!2 ~ [e3,b3,e4]!2 ~ [e3,b3,e4]!2 ~", // E5
R: "[a2,e3,a3]@3 [a2,e3,a3]@2 [a2,e3,a3]@4 [a2,e3,a3]@3 [b2,f#3,b3]@3 [b2,f#3,b3]@2 [b2,f#3,b3]@4 [b2,f#3,b3]@3", // A5 B5
S: "[d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@3 [e3,b3,e4]@3 [e3,b3,e4]@2 [e3,b3,e4]@4 [e3,b3,e4]@3", // D5 E5
T: "[d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@3 [e3,b3,e4]@3 [e3,b3,e4] ~ [e3,b3,e4]!2 ~ [e3,b3,e4]!2 ~ [e3,b3,e4]", // D5 E5
U: "[d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@3", // D5
V: "[a2,a3]/4", W: "[a2,e3,a3]@4 ~ [a2,e3,a3]@4 [a2,e3,a3]@6 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3",
X: "[a2,e3,a3]@4 ~ [a2,e3,a3]@4 [a2,e3,a3]@3 [d3,a3,d4] ~ [d3,a3,d4]!2 ~ [d3,a3,d4]!2 ~ [d3,a3,d4]!2 ~ [d3,a3,d4]", // A5 D5
Y: "[[a2,e3,a3]@88 [e3,b3,e4]@3 ~@5]/4", Z: "[~ [a2,e3,a3]@25 ~@4]/5",
})).s("gm_distortion_guitar").gain(0.56)
// other · bassoon
const bassoon = note("<~@61 A@2 B C ~@17>".pickRestart({
A: "[c#5@3 c#5@2 c#5@4 c#5@3 b4@3 a4@21 ~@12]/2", B: "c#5@3 c#5@2 c#5@4 c#5@3 c#5@3 c#5@9", C: "d5 ~",
})).s("gm_bassoon").gain(0.8)
// drums · kick
const kick = s("bd").struct(`<
A@2 B C D@2 E F G H I J H I J H K L@2 M K L@3 N O P Q R S T U V W X Y Z AA AB AC AD AE@3 AF AE@4 AG@16 AE@3 AF AE@4 AH
AI AJ AK AL ~@4
>`.pickRestart({
A: "~@5 x ~@2 x ~ x ~", B: "~@10 x ~@5 x ~@4 x ~@2", C: "~ x ~ x ~ x ~ x", D: "~@11 x ~@5 x ~@4 x ~",
E: "~@6 x ~@2 x ~ x", F: "~@4 x ~@5 x ~@5 x ~@6 x", G: "~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", H: "~ x!7",
I: "x ~@3 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", J: "~ x ~@3 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
K: "~@13 x ~@3 x ~@2 x ~@3", L: "~ x ~@3 x ~@2 x ~@4 x ~@3 x ~@2 x ~@3", M: "~ x ~@3 x ~@2 x ~@4 x ~@10", N: "~@7 x",
O: "~@3 x ~@3 x ~@13 x ~@2", P: "~@3 x ~@4 x ~@12 x ~@2", Q: "~@3 x ~@4 x ~@5 x ~@5 x ~@3", R: "~ x ~@2 x ~@6 x",
S: "~@4 x ~@4 x ~@12 x ~", T: "~@4 x ~@4 x ~@13 x", U: "~@5 x ~@3 x ~@5 x ~@5 x ~@2",
V: "~@3 x ~@6 x ~@5 x ~@3 x ~@2 x", W: "~@10 x ~ x ~@4 x ~@3 x ~@2", X: "~ x ~@9 x ~ x ~@4 x ~@3 x ~",
Y: "~@2 x ~@10 x!2 ~@4 x ~@3 x", Z: "~@3 x ~@10 x!2 ~@4 x ~@3", AA: "~ x ~@2 x ~@10 x!2 ~@4 x ~@2",
AB: "~@2 x ~@2 x ~@10 x!2 ~@4 x ~", AC: "~@3 x ~@2 x ~@10 x!2 ~@4 x", AD: "~@4 x ~@2 x ~@16",
AE: "x ~@4 x ~@2 x ~@3 x ~@4 x ~@2 x ~@3", AF: "x", AG: "x ~@4 x ~@2 x ~@15",
AH: "x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~", AI: "~ x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x",
AJ: "~@2 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2", AK: "x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@7", AL: "~ x ~@4",
})).gain(0.64)
// drums · snare
const snare = s("sd").struct(`<
A B C D E F@2 G H ~@3 I J K L M N O P Q N@3 R S T U V W X Y Z AA AB AC AD AE AF AA AG AH AI AH AJ AH@19 AK AH AI AH AJ
AH@4 AL ~@2 AM AN ~@4
>`.pickRestart({
A: "~@2 x!2 ~ x!2 ~@4 x ~@5 x ~@5 x", B: "~@2 x ~ x!2 ~ x ~@3 x ~@5 x ~@6", C: "x ~@2 x!2 ~ x!2 ~@4 x ~@5 x ~@5",
D: "x ~@5 x!2 ~@4 x ~ x ~@3 x ~ x ~@3", E: "x ~@2 x ~ x!2 ~ x ~@3 x ~@5 x ~@5",
F: "~ x ~@2 x!2 ~ x!2 ~@4 x ~@5 x ~@4", G: "~ x ~@5 x ~ x ~@3 x ~ x ~@3 x ~ x ~@2", H: "~@2 x!2 ~ x ~@18",
I: "~@3 x ~@4", J: "~@5 x ~@6", K: "~@11 x ~@12", L: "~ x", M: "x ~ x ~ x!2 ~ x!2 ~ x!2 ~@4 x ~@5 x ~",
N: "~@2 x ~@2 x ~@2 x ~@2 x", O: "~@4 x ~@5 x!2 ~@4 x ~@5 x ~", P: "~@2 x ~@2 x ~@6",
Q: "~@7 x!2 ~ x!2 ~@4 x ~@5 x ~", R: "~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x ~ x ~@3 x ~",
S: "~@4 x ~@5 x ~@2 x ~ x!2 ~ x ~@3 x ~", T: "~@4 x ~@6 x ~@2 x!2 ~ x!2 ~@4 x", U: "~@5 x ~@5 x ~@5 x ~ x ~@3 x",
V: "~ x ~@3 x ~ x ~@3 x ~@2 x ~ x!2 ~ x ~@3 x", W: "~@6 x ~@5 x ~@2 x!2 ~ x!2 ~@4",
X: "x ~@5 x ~@5 x ~@2 x!2 ~ x ~ x ~@3", Y: "x ~@2 x ~@2 x ~@2 x!2 ~", Z: "x ~ x ~@4 x!2 ~@4 x!2 ~@4 x ~@4",
AA: "~ x ~@5 x ~@6 x ~@5 x ~@3", AB: "~@2 x ~@5 x ~@6 x ~@5 x ~@2", AC: "~@3 x ~@5 x ~@6 x ~@5 x ~",
AD: "~@4 x ~@5 x ~@6 x ~@5 x", AE: "~@5 x ~@5 x ~@6 x ~@5", AF: "x ~@5 x ~@6 x ~@5 x ~@4",
AG: "~@2 x ~@5 x ~@2 x ~ x ~ x!2 ~ x!2 ~ x!2 ~", AH: "~ x ~ x ~ x ~ x", AI: "~@3 x ~@5 x ~@5 x ~@5 x ~ x",
AJ: "~@18 x ~ x!2 ~ x", AK: "~@3 x ~@5 x ~@2 x ~ x!2 ~ x!2 ~ x!2 ~ x", AL: "x", AM: "~@2 x", AN: "~ x ~@4",
})).gain(0.64)
// drums · low tom
const low_tom = s("lt").struct(`<
~@19
[~@19 x!2 ~ x!2]
[~@4 x!2 ~@18]
~@23
[~@6 x ~ x!2 ~ x ~@3 x ~ x ~@6]
~@23
[~@6 x ~ x!2 ~ x ~@3 x ~ x ~@6]
~@13
>`).gain(0.64)
// drums · hihat
const hihat = s("hh").struct("<~@49 A B C B C B C B C B C B C B C D ~@17>".pickRestart({
A: "~ x!2 ~ x!4", B: "x!8", C: "x!3 ~ x!4", D: "x!4 ~@4",
})).gain(0.64)
// drums · mid tom
const mid_tom = s("mt").struct(`<
~@19
[~@16 x!2 ~@6]
[~ x!2 ~@21]
~@23
[~@3 x ~ x ~@6 x ~ x ~@9]
~@23
[~@3 x ~ x ~@6 x ~ x ~@9]
~@13
>`).gain(0.64)
// drums · open hat
const open_hat = s("oh").struct(`<
A B C D E F@2 G ~@8 H I J K H I@3 ~ L M N ~ O@3 P Q R S T U V Q W X Y X D X Y@3 Z ~ Z ~ Z ~ Z ~ Z ~ Z ~ Z ~ Z ~ X Y X
D X Y@3 ~@9
>`.pickRestart({
A: "~@17 x ~@2 x ~@2 x", B: "~@17 x ~@2 x ~@3", C: "x ~@5 x!2", D: "x", E: "~@9 x ~ x", F: "~ x ~@17 x ~@2 x ~",
G: "~ x ~@22", H: "~@16 x ~@2 x ~@2 x ~", I: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
J: "~ x ~@2 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~", K: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@10", L: "~@4 x ~@2 x ~@2 x ~@13",
M: "~@4 x ~@3 x ~@2 x ~@12", N: "~@5 x ~@2 x ~@2 x ~@12", O: "~@2 x!3 ~@3", P: "~@19 x ~@4",
Q: "~ x ~@5 x ~@6 x ~@5 x ~@3", R: "~@2 x ~@5 x ~@6 x ~@5 x ~@2", S: "~@3 x ~@5 x ~@6 x ~@5 x ~",
T: "~@4 x ~@5 x ~@6 x ~@5 x", U: "~@5 x ~@5 x ~@6 x ~@5", V: "x ~@5 x ~@6 x ~@5 x ~@4", W: "~ x ~@2 x ~@7",
X: "~ x!7", Y: "x!8", Z: "~@3 x ~@4",
})).gain(0.64)
// drums · crash
const crash = s("cr").struct(`<
A@2 B C B D@2 E F ~@3 G H A B D ~ D ~ D ~@3 I@2 J K J ~ L M N ~@8 L ~ L ~ L ~@3 L ~@15 L ~ L ~ L ~@3 L ~@2 N E ~@4
>`.pickRestart({
A: "~@11 x ~@12", B: "~ x", C: "~ x ~@6", D: "~@13 x ~@10", E: "~ x ~@4", F: "~@5 x ~@18", G: "~@3 x ~@4",
H: "~@5 x ~@6", I: "~@11 x", J: "~@23 x", K: "~@7 x ~@4", L: "x", M: "x ~@4 x ~@2", N: "~@2 x",
})).gain(0.64)
// drums · ride
const ride = s("rd").struct("<~@3 A B ~@2 C D ~@18 E F ~@2 G H ~@49>".pickRestart({
A: "~@2 x!6", B: "x", C: "~@7 x ~@2 x ~@2 x ~@2 x ~@2 x ~@3 x", D: "~ x ~@10", E: "~@17 x ~@2 x ~@2 x",
F: "~@2 x ~@2 x ~@2 x ~@2 x ~@12", G: "~@6 x!2", H: "x ~@2 x ~@3 x ~@2 x ~@2 x ~@10",
})).gain(0.64)
stack(bass, distortion_guitar, bassoon, kick, snare, low_tom, hihat, mid_tom, open_hat, crash, ride)
More by blink-182
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.