0:00/0:00
// Story of a Lonely Guy — blink-182
// 150 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 136 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(150/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(`<
~@31 A B C D E B C D E B C D E B C D E ~@31 F@2 C D E B C D E B C D E B C D E ~@2 G@2 ~@2 G@2 ~@5 H I J K@2 L M@3 N
O@2 P Q R@2 S T U@2 V W@3 X Y@2
>`.pickRestart({
A: "~@11 [g#3,g#4] [g3,g4] [f3,f#3,f4,f#4] [e3,e4] [d#3,d#4] [c#3,d3,c#4,d4] [c3,c4] [b2,b3] [a2,a#2,a3,a#3] [g#2,g#3] [g2,f#3] [f2,f#2,f#3] ~", // G# G F#maj7 E D# Dmaj7 C B …
B: "[a2,e3,a3]!8", C: "[e3,b3,e4]!8", D: "[f#3,c#4,f#4]!8", E: "[d3,a3,d4]!8",
F: "[~@12 [g#3,g#4] [f#3,g3,f#4,g4] [f3,f4] [e3,e4] [d3,d#3,d4,d#4] [c#3,c#4] [c3,c4] [a#2,b2,a#3,b3] [a2,a3] [g#2,g#3] [f#2,g2,b2,f#3,g3,b3] ~ [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3, ~@23 [f2,b2,f3,f#3,b3]@2 ~@23]/2", // G# Gmaj7 F E D#maj7 C# C Bmaj7 …
G: "[b2,f#3,b3]!8", H: "~@19 [a2,e3,a3]@3 [a2,e3,a3]@2",
I: "~ [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [e3,b3,e4]@2 [e3,b3,e4]@3", // A5 E5
J: "[e3,b3,e4]!6 [f#3,c#4,f#4]!2", // E5 F#5
K: "[[f#3,c#4,f#4]@3 [f#3,c#4,f#4]@2 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@2]/2", // F#5 D5 A5
L: "~ [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@2 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3", // A5 E5
M: "[[e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@2 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@2]/3", // E5 F#5 D5 A5
N: "~ [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@2 [a2,e3,a3]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3", // A5 E5
O: "[[e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@2 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@2]/2", // E5 F#5 D5
P: "~ [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@2", // D5 A5
Q: "~ [a2,e3,a3]@2 [a2,e3,a3]@3 [a2,e3,a3]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3", // A5 E5
R: "[[e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [f#3,c#4,f#4]@2 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@2]/2", // E5 F#5 D5
S: "~ [d3,a3,d4]@3 [d3,a3,d4]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@2 [a2,e3,a3]@3", // D5 A5
T: "[a2,e3,a3]!2 [e3,b3,e4]!6", // A5 E5
U: "[[e3,b3,e4]@3 [e3,b3,e4]@2 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [d3,a3,d4]@3 [d3,a3,d4]@2 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]@2]/2", // E5 F#5 D5
V: "~ [d3,a3,d4]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@2 [a2,e3,a3]@3 [a2,e3,a3]@3 [a2,e3,a3]@3", // D5 A5
W: "[[a2,e3,a3]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@3 [e3,b3,e4]@2 [e3,b3,e4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [f#3,c#4,f#4]@3 [d3,a3,d4] ~ [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~]/3", // A5 E5 F#5 D5
X: "~ [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~ [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~@2", // D5
Y: "[[a2,e3,a3]@23 ~]/2", // A5
})).s("gm_distortion_guitar").gain(0.53)
// bass · electric bass finger
const bass = note(`<
A B C@3 D E@2 F G H@2 I J K L M J K L M J K L M N O L M N O L M N O L M N O L M N O L M N O L M N O L M N O L M J K L
M J K L M J K L M J K L M N O L M N O L M N O L M N O L M N O L M N O L M N J@2 M N J@2 P@2 Q R S@2 T U V@2 W X@3 Y
Z@2 AA AB AC@2 AD AE AF@2 AG AH@3 AI AJ ~
>`.pickRestart({
A: "~@10 a1@3 a1@3 a1@3 a1@3 a1@2", B: "~ a1@3 a1@3 a1@3 e2@3 e2@2 e2@3 e2@3 e2@3",
C: "[e2@3 e2@3 e2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@2 f#2@3 f#2@3 f#2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@2 d2@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@2]/3",
D: "~ a1@3 a1@3 e2@2 e2@3 e2@3 e2@3 e2@3 e2@3",
E: "[e2@3 e2@3 f#2@3 f#2@3 f#2@3 f#2@2 f#2@3 f#2@3 f#2@3 f#2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@2 d2@2]/2",
F: "~ d2@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@2", G: "~ a1@2 b1@3 b1@3 b1@3 b1@3 b1@3 b1@3 b1@3",
H: "[b1@3 c#2@3 c#2@3 c#2@2 c#2@3 c#2@3 c#2@3 c#2@3 c#2@3 d2@3 d2@3 d2@3 d2@3 d2@2 d2@3 d2@3 d2@2]/2",
I: "~ a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@2 a1@3", J: "b1!8", K: "c#2!8", L: "d2!8", M: "a1!8", N: "e2!8", O: "f#2!8",
P: "[c#2@3 c#2@3 c#2@3 c#2@3 c#2@3 c#2@2 c#2@3 c#2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@2 e2@2]/2",
Q: "~ e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 a1@2", R: "~ a1@2 a1@3 a1@3 g#1@3 g#1@3 g#1@3 g#1@3 c#2@3",
S: "[c#2@3 c#2@3 c#2@3 c#2@2 c#2@3 c#2@3 c#2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@2 d2@3 a1@3 a1@2]/2",
T: "~ a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 e2@2 e2@3", U: "e2!6 f#2!2",
V: "[f#2@3 f#2@2 f#2@3 f#2@3 f#2@3 f#2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@2 d2@3 d2@3 a1@3 a1@3 a1@2]/2",
W: "~ a1@3 a1@3 a1@3 a1@3 a1@2 e2@3 e2@3 e2@3",
X: "[e2@3 e2@3 e2@3 e2@3 e2@3 f#2@3 f#2@3 f#2@2 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 d2@3 d2@3 d2@3 d2@3 d2@2 d2@3 d2@3 d2@3 a1@3 a1@3 a1@3 a1@2]/3",
Y: "~ a1@3 a1@3 a1@2 a1@3 e2@3 e2@3 e2@3 e2@3",
Z: "[e2@3 e2@3 e2@3 e2@3 f#2@3 f#2@2 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 d2@3 d2@3 d2@3 d2@2 d2@2]/2",
AA: "~ d2@3 d2@3 d2@3 a1@3 a1@3 a1@3 a1@3 a1@2", AB: "~ a1@2 a1@3 a1@3 e2@3 e2@3 e2@3 e2@3 e2@3",
AC: "[e2@3 e2@3 e2@3 f#2@2 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 d2@3 d2@3 d2@2 d2@3 d2@3 d2@2]/2",
AD: "~ d2@3 d2@3 a1@3 a1@3 a1@3 a1@3 a1@2 a1@3", AE: "a1!2 e2!6",
AF: "[e2@3 e2@2 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 d2@3 d2@2 d2@3 d2@3 d2@3 d2@3 d2@2]/2",
AG: "~ d2@3 a1@3 a1@3 a1@3 a1@2 a1@3 a1@3 a1@3",
AH: "[a1@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@2 e2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 d2@2 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@2]/3",
AI: "~ d2@3 d2@3 d2@2 d2@3 d2@3 d2@3 d2@3 d2@3", AJ: "a1@23 ~",
})).s("gm_electric_bass_finger").gain(0.64)
// other · electric guitar clean
const electric_guitar_clean = note(`<
A B C@3 D E@2 F ~@15 G H I J G H I J ~@16 K L K M K L K M ~@16 G H I J G H I J ~@16 N O ~@2 N O ~@2 P@2 Q R S@2 ~@26
>`.pickRestart({
A: "~@10 e4@3 e4@3 e4@3 a4@3 a4@2", B: "~ a4@3 b4@3 b4@3 b4@3 b4@2 b4@3 b4@3 b4@3",
C: "[b4@3 b4@3 b4@3 e4@3 e4@3 e4@3 a4@3 a4@2 a4@3 b4@3 b4@3 b4@3 a4@3 a4@3 a4@3 a4@3 a4@3 a4@2 a4@3 e4@3 e4@3 e4@3 a4@3 a4@3 a4@2]/3",
D: "~ b4@3 b4@3 b4@2 b4@3 b4@3 b4@3 b4@3 b4@3",
E: "[b4@3 b4@3 e4@3 e4@3 e4@3 a4@2 a4@3 a4@3 b4@3 b4@3 b4@3 a4@3 a4@3 a4@3 a4@3 a4@2 a4@2]/2", F: "~ a4@3 ~@20",
G: "c#3!2 a3@2 c#3!2 a3@2", H: "d3!2 a3@2 d3!2 a3@2", I: "a2!2 e3@2 a2!2 e3@2", J: "e3!2 b3@2 e3!2 b3@2",
K: "e4!3 a4!3 b4!2", L: "b4!8", M: "b4 a4!7", N: "c#3!2 a3 c#3!3 a3 c#3", O: "d3!2 a3 d3!3 a3 d3",
P: "[c#3@3 c#3@3 a3@3 c#3@3 c#3@3 c#3@2 a3@3 c#3@3 d3@3 d3@3 a3@3 d3@3 d3@3 d3@3 a3@3 d3@2 c#3@2]/2",
Q: "~ c#3@3 a3@3 c#3@3 c#3@3 c#3@3 a3@3 c#3@3 d3@2", R: "~ d3@2 a3@3 d3@3 d3@3 d3@3 a3@3 d3@3 c#3@3",
S: "[c#3@3 a3@3 c#3@3 c#3@2 c#3@3 a3@3 c#3@3 d3@3 d3@3 a3@3 d3@3 d3@3 d3@3 a3@2 d3@3 ~@5]/2",
})).s("gm_electric_guitar_clean").gain(0.64)
// other · overdriven guitar
const overdriven_guitar = note(`<
~@16 A@3 ~@5 B C D E B C D E ~@32 F@3 ~@5 B C D E B C D E ~@29 G H I J@5 K L M ~ N O P ~ Q R S ~ T U V ~@4
>`.pickRestart({
A: "[~@3 e5 e5@2 e5 c#5@2 ~ c#5@2 c#5@2 c#5 c#5@2 ~@7]/3", B: "e5 c#5 ~@2", C: "d5 e5 ~@2", D: "c#5 d5 ~@2",
E: "c#5@6 d5@5 ~ b4@6 ~@6", F: "[~@4 a4@2 a4 a4@2 ~ a4@2 a4@2 a4 c#5@2 ~@7]/3", G: "~@19 e5@5",
H: "~ c#5@6 ~@12 d5@5", I: "e5 ~@2 c#5",
J: "[d5@6 ~@11 c#5@6 d5@4 ~@2 b4@6 ~@5 e5@6 c#5@6 ~@11 d5@6 e5@6 ~@12 c#5@6 d5@6 ~@11 c#5@6 d5@4]/5",
K: "~@2 a4@6 ~@5 e5@6 c#5@5", L: "~@2 d5 e5", M: "~@12 c#5@5 d5@6 ~", N: "~@5 e5@3 c#5@3 ~", O: "~@3 d5@2 e5@2 ~",
P: "~@9 c#5@5 d5@6 ~@4", Q: "~@7 e5@6 c#5@6 ~@5", R: "~ d5 e5 ~", S: "~@5 c#5@6 d5@6 ~@7", T: "~@2 e5@3 c#5@3 ~@4",
U: "~ d5@2 e5@2 ~@3", V: "~ c#5@3 d5@3 ~@5",
})).s("gm_overdriven_guitar").gain(0.64)
// chords · electric guitar muted
const electric_guitar_muted = note(`<
~@8 A B C D E F G H I J G H I J G H ~@32 I J G H I J G H I J G H I J G H ~@64
>`.pickRestart({
A: "~@4 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,e3,a3] ~", // A5
B: "~ [a2,e3,a3] ~ [b2,f#3,b3] ~@2 [b2,f#3,b3] ~@2 [b2,f#3,b3] ~@2 [b2,f#3,b3] ~@2 [b2,f#3,b3] ~@2 [b2,f#3,b3] ~@2 [b2,f#3,b3] ~@2", // A5 B5
C: "[b2,f#3,b3] ~@2 [c#3,g#3,c#4] ~@2 [c#3,g#3,c#4] ~@2 [c#3,g#3,c#4] ~ [c#3,g#3,c#4] ~@2 [c#3,g#3,c#4] ~@2 [c#3,g#3,c#4] ~@2 [c#3,g#3,c#4] ~@2 [c#3,g#3,c#4]", // B5 C#5
D: "~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~ [d3,a3,d4] ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~", // D5
E: "~ [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,e3,a3] ~@2 [a2,e3,a3] ~ [a2,e3,a3] ~@2", // A5
F: "[b2,f#3,b3] ~@2 [b2,f#3,b3] ~@2 [b2,f#3,b3] ~@2 [b2,f#3,b3] ~@2 [b2,f#3,b3]@2 ~ [b2,f#3,b3]@2 ~ [b2,f#3,b3]@2 ~ [b2,f#3,b3]@2 ~", // B5
G: "[c#3,g#3,c#4]@2 ~ [c#3,g#3,c#4]@2 ~ [c#3,g#3,c#4]@2 ~ [c#3,g#3,c#4]@2 ~ [c#3,g#3,c#4]@2 ~ [c#3,g#3,c#4]@2 ~ [c#3,g#3,c#4]@2 ~ [c#3,g#3,c#4]@2 ~", // C#5
H: "[d3,a3,d4]@2 ~ [d3,a3,d4]@2 ~ [d3,a3,d4]@2 ~ [d3,a3,d4]@2 ~ [d3,a3,d4]@2 ~ [d3,a3,d4]@2 ~ [d3,a3,d4]@2 ~ [d3,a3,d4]@2 ~", // D5
I: "[a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~ [a2,e3,a3]@2 ~", // A5
J: "[b2,f#3,b3]@2 ~ [b2,f#3,b3]@2 ~ [b2,f#3,b3]@2 ~ [b2,f#3,b3]@2 ~ [b2,f#3,b3]@2 ~ [b2,f#3,b3]@2 ~ [b2,f#3,b3]@2 ~ [b2,f#3,b3]@2 ~", // B5
})).s("gm_electric_guitar_muted").gain(0.8)
// drums · kick
const kick = s("bd").struct(`<
~@8 A B C D E F@2 G F@3 G F@3 G H@8 I@3 J I@3 K I@3 J I@3 K ~@8 F@3 G F@3 G F@3 G F@3 G H@8 I@3 J I@3 K I@3 J I@3 K
~@2 L@2 ~@2 L@2 ~@5 M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ Z ~@2
>`.pickRestart({
A: "~@4 x ~@2 x ~@8 x ~@7", B: "~ x!2 ~@2 x ~@2", C: "~@3 x ~@2 x ~@7 x ~@9", D: "~@2 x ~@2 x ~@18",
E: "~ x ~@2 x ~@8 x ~@10", F: "x!2 ~@2 x ~@3", G: "x!2 ~@6", H: "x!2 ~@2 x!2 ~ x", I: "x!2 ~@2 x!2 ~@2",
J: "x!2 ~@2 x ~ x ~", K: "x ~@2 x!2 ~@2 x", L: "~ x ~ x ~ x ~ x", M: "~@11 x ~@7 x ~@4",
N: "~@7 x ~@2 x ~@5 x ~@2 x ~@4", O: "~@2 x!2 ~ x!2 ~", P: "~@5 x ~@2 x ~@5 x ~@2 x ~@6", Q: "~@2 x",
R: "~@4 x ~@2 x ~@5 x ~ x ~@8", S: "~ x!2 ~ x!2 ~@2", T: "~@2 x ~@2 x ~@5 x ~@12", U: "~@10 x ~@2 x ~@2 x ~@7",
V: "~ x ~@2 x ~@7 x ~@2 x ~@8", W: "x ~@2 x ~@8 x ~@2 x ~@7 x", X: "~@2 x ~@8 x ~@2 x ~@7 x ~",
Y: "~@4 x ~@5 x ~@2 x ~@8 x ~", Z: "~ x ~@7 x ~@2 x ~@8 x ~@2", AA: "x ~@8 x ~ x ~@8 x ~@2 x",
AB: "~@8 x ~@7 x ~@2 x ~@4", AC: "~@4 x ~@2 x ~@2 x ~@8 x ~ x ~@2", AD: "~@2 x!2 ~@2 x!2",
AE: "~@5 x ~@2 x ~@8 x ~@2 x ~@3", AF: "~@5 x ~@2 x ~@7 x ~@5 x ~", AG: "~@4 x ~@2 x ~@7 x ~@2 x ~@5",
AH: "~ x!2 ~@2 x!2 ~", AI: "~@2 x ~@2 x ~@8 x ~@2 x ~@6", AJ: "~@2 x ~@7 x ~@2 x ~@8 x ~",
})).gain(0.64)
// drums · snare
const snare = s("sd").struct(`<
~@7 A B C D E F G@2 H G@3 H G@3 H I@11 J I@3 K I@3 J I@3 K ~@7 L G@3 H G@3 H G@3 H G@3 H I@11 J I@3 K I@3 J I@3 K ~@2
M@2 ~@2 M@2 ~@5 N O P Q R S T U V W X Y Z AA AB AC O P Q AD AE T U AF AG ~@2
>`.pickRestart({
A: "~@11 x", B: "~ x ~@8 x ~@8 x ~@4", C: "~@3 x ~@2 x ~", D: "~@9 x ~@7 x ~@6", E: "~ x ~", F: "~@7 x ~@8 x ~@7",
G: "~@2 x ~@2 x ~@2", H: "~ x ~@2", I: "~ x ~ x", J: "~@6 x ~@6 x ~ x!2 ~@2 x ~ x!2 ~", K: "~ x!2 ~@2 x!2 ~",
L: "~@6 x!2", M: "x!4", N: "~@7 x ~@4", O: "~ x ~@11 x ~@10", P: "x!2", Q: "x ~@10 x ~@11 x",
R: "~@5 x!2 ~ x!2 ~@12 x ~", S: "~@10 x ~@10 x ~@2", T: "~@3 x ~@3 x", U: "~@2 x ~@2 x", V: "~@7 x ~@11 x ~@4",
W: "~@7 x ~@10 x ~@5", X: "~@6 x ~@10 x ~@6", Y: "~@5 x ~@11 x ~@6", Z: "x!2 ~ x ~@2 x!2 ~ x ~@6 x ~@7",
AA: "~ x ~@3 x ~@2", AB: "~@3 x ~@10 x ~@9", AC: "~@2 x ~@8 x ~@2 x ~@7 x ~", AD: "~@10 x ~@7 x!2 ~ x ~@2",
AE: "x!3 ~@7 x ~@10 x ~@2", AF: "~@4 x ~@2 x ~@8 x ~@2 x ~@4", AG: "~@4 x ~@2 x ~@7 x ~@2 x ~@5",
})).gain(0.64)
// drums · low tom
const low_tom = s("lt").struct(`<
~@7
[~@17 x!2 ~ x!2 ~@2]
~@47
[~@12 x!2 ~ x!2 ~@7]
~@60
[~@14 x!2 ~ x!2 ~@4 x]
[x ~ x!3 ~ x ~@17]
~@18
>`).gain(0.64)
// drums · hihat
const hihat = s("hh").struct(`<
A B C D E F G H I J K L M N O P O N O P O N O P Q@8 ~@16 R O@6 P O N O P O N O P O N O P O N O P Q@8 ~@16 O N ~@2 O N
~@2 G S T U K V ~@26
>`.pickRestart({
A: "~@13 x ~@2 x ~@2 x ~@2 x ~", B: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2",
C: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x", D: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
E: "~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", F: "~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2",
G: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x", H: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@9",
I: "~@4 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", J: "~ x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@5",
K: "x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x", L: "~@2 x ~@2 x ~@2 x ~@2 x ~@12",
M: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2", N: "x!6 ~ x", O: "x!8", P: "x!4 ~@4",
Q: "~@9 x!2 ~ x ~@2 x ~@8", R: "~ x!7", S: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~",
T: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", U: "~ x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2",
V: "~@2 x ~@2 x ~@2 x ~@15",
})).gain(0.64)
// drums · mid tom
const mid_tom = s("mt").struct(`<
~@11 A B ~@2 C ~@3 C ~@3 C ~@15 D ~@7 D ~@11 C ~@3 C ~@3 C ~@3 C ~@15 D ~@7 D ~@13 E ~@3 F ~@10 G ~@7 H I ~@2
>`.pickRestart({
A: "~@14 x!3 ~ x!2 ~ x!2 ~", B: "x", C: "~@12 x!2 ~ x!2 ~ x!2 ~ x!2 ~", D: "x ~@2 x!2 ~@3", E: "~@7 x ~@4",
F: "~@10 x ~ x!2 ~ x ~@8", G: "~@8 x ~@7 x ~@2 x ~@4", H: "~@2 x ~@7 x ~@2 x ~@10", I: "~ x ~@7 x ~@2 x ~@11",
})).gain(0.64)
// drums · open hat
const open_hat = s("oh").struct(`<
~ A B C D E F ~@2 C ~@3 G ~@3 G ~@3 G ~@2 H@8 I@3 J I@3 ~ I@3 J I@3 ~@2 K ~ K ~ K ~@3 G ~@3 G ~@3 G ~@3 G ~@2 H@8 I@3
J I@3 ~ I@3 J I@3 ~@2 G ~@3 G ~@3 L ~ M ~ N O I P Q R S T U V W X Y Z AA B AB I P AC AD S AE ~@4
>`.pickRestart({
A: "~@23 x", B: "~@2 x ~@2 x ~@18", C: "~@7 x", D: "x!2 ~@6", E: "~@20 x ~@2 x", F: "~ x ~@22", G: "~@3 x",
H: "~@13 x ~@10", I: "x!8", J: "x!4 ~@4", K: "~@13 x ~@2 x ~@2 x ~@4", L: "~@4 x!3 ~", M: "~@11 x ~@2 x ~@2 x ~@6",
N: "~@19 x ~@2 x ~", O: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2",
P: "x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", Q: "~@2 x ~@13 x ~@2 x ~@2 x ~",
R: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2", S: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x",
T: "~@2 x ~@2 x ~@2 x ~@2 x ~@12", U: "~@13 x ~@2 x ~@2 x ~@2 x ~",
V: "~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2", W: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x",
X: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@3", Y: "~@10 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
Z: "~ x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2", AA: "x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x",
AB: "~@7 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2", AC: "~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@10",
AD: "~@4 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2", AE: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
})).gain(0.64)
// drums · crash
// … 8 more lines
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.