0:00/0:00
// Hold Me, Thrill Me, Kiss Me, Kill Me — U2
// 144 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 147 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. 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 · fretless bass · "Fretless"
const bass = note(`<
~@2 A@6 B@7 C@3 D@4 E@5 F@7 G@4 H@5 I@4 J@4 K@8 L@8 M N@2 O@2 P@2 Q@5 R S T@2 U@7 V@6 W@2 X@2 Y Z AA AB AC AD AE AF AG
AH AI@2 AJ@2 AK AL AM AN AO AP AM AQ AR AS@2 AQ AT@2 AU@2 AV@6 AW@2 AX@8 ~
>`.pickRestart({
A: "[~@5 c3@24 bb2@24 ab2@24 g2@12 b2@12 c3@21 b2@3 bb2@19]/6",
B: "[~@2 a2@3 ab2@24 g2@18 b1@6 c2@24 f1@24 bb1@24 eb2@18 d2@6 c2@19]/7", C: "[~ f1@4 bb1@4 eb2@2 eb2]/3",
D: "[d2@6 c2@24 f1@24 bb1@24 ~ eb2@11 ~ eb2@4 ~]/4",
E: "[~ d2@4 ~@2 c2@24 g1@42 d2@4 ~@2 g2@27 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~ g2]/5",
F: "[~@2 g2@2 ~ g2@2 ~ c2@22 ~@2 a1@2 ~@4 a1@14 ~@4 d2@23 ~ g1@2 ~@4 g1@8 ~ b1@8 ~ c2@20 ~ e2@3 a1@4 ~@2 a1@9 e2@8 ~ d2@16]/7",
G: "[~@2 a2@3 ab2@3 g2@10 ~@2 g2@3 d2@2 ~ g1@2 ~ gb1@3 f1@23 ~ bb1@23 ~ eb2@9 d2@7]/4",
H: "[~ c2@19 f1@11 ~ g1@45 d2@3 g2@23 ~ g2@11 ~ g2@4]/5", I: "[~@8 c2@24 ~ bb1@24 ab1@24 g1@15]/4",
J: "[~@4 b1@5 ~ c2@24 bb1@24 ab1@24 ~ g1@13]/4",
K: "[~@5 b1@5 ~ c2@24 ~ f1@24 bb1@24 ~ eb2@18 d2@6 c2@24 ~ f1@24 bb1@24 ~ eb2@9]/8",
L: "[~@3 eb2@6 d2@6 c2@18 ~ c2@6 f1@18 f1@6 bb1@18 ~ bb1@6 eb2@11 ~ eb2@5 ~ d2@5 ~ c2@18 gb1@6 g1@43 d2@4 ~@2 g2@3 g2@3]/8",
M: "g2@3 g2@3 g2@3 g2@3 g2@3 g2@3 ~ g2@3 g2@2", N: "[~ g2@3 g2@3 g2@3 g2@3 g2@3 g2@3 c2@22 ~@2 a1@2 ~@3]/2",
O: "[~ a1@14 ~@4 d2@23 ~ g1@2 ~@3]/2", P: "[~ g1@8 ~ b1@8 ~ c2@20 ~ e2@3 a1@4 ~]/2",
Q: "[~ a1@9 e2@8 ~ d2@17 ~ a2@3 ab2@3 g2@10 ~@2 g2@3 d2@2 ~ g1@2 ~ gb1@3 f1@23 ~ bb1@23 ~ eb2@5]/5",
R: "~@4 d2@8 ~ c2@11", S: "~@10 e1@3 f1@3 gb1@3 g1@5", T: "[~@13 d2@6 g2@24 c2@5]/2",
U: "[~@20 bb1@24 ab1@24 g1@24 ~ c2@24 bb1@24 ab1@24 ~ g1@2]/7",
V: "[~@16 b1@5 ~ c2@24 f1@24 ~ bb1@24 eb2@11 ~ eb2@4 ~@2 d2@4 ~@2 c2@24 ~]/6", W: "[g1@21 d2@2 ~]/2", X: "g2!8",
Y: "c2@11 ~", Z: "a1 ~@2 a1@7 ~@2", AA: "d2@23 ~", AB: "g1@2 ~@4 g1@8 ~ b1@8 ~", AC: "c2@20 ~ e2@3",
AD: "a1@4 ~@2 a1@9 e2@8 ~", AE: "d2@17 ~ a2@3 ab2@3", AF: "g2@10 ~@2 g2@3 d2@2 ~ g1@2 ~ gb1@3", AG: "f1@23 ~",
AH: "bb1@23 ~", AI: "[eb2@9 d2@8 ~ c2@18 ~@3 e1@3 f1@3 gb1@3]/2", AJ: "[g1@15 d2]/2", AK: "g2 ab2 g2@5 g2",
AL: "~ g2@3 g2@3 g2@3 g2@3 g2@3 g2@3 g2@3 g2@2", AM: "~ c2@20 ~ b1@2", AN: "~ bb1@23", AO: "~ ab1@23",
AP: "~ g1@14 ~ b1@8", AQ: "~ bb1@11", AR: "~ ab1@11",
AS: "[~@2 g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ f1@22]/2",
AT: "[~@2 eb2@9 d2@8 ~ c2@18 ~@4 e1@3 f1@3]/2", AU: "[gb1 g1@15]/2",
AV: "[d2@3 g2@3 ab2@3 g2@42 ~ c3@24 bb2@24 ~ ab2@24 g2@19]/6", AW: "[~ b2 c3@7 b2 bb2@6]/2",
AX: "[~@4 a2@3 ab2@26 g2@35 ~ g2@114 ~@9]/8",
})).s("gm_fretless_bass").gain(0.48)
// chords · acoustic guitar nylon · "Nylon gt"
const acoustic_guitar_nylon = note(`<
~@2 A@2 B@4 C@4 ~@16 D@2 E@2 F@2 G ~@2 H@2 ~@4 I J@8 ~@26 K@3 ~ L@7 M@2 ~@19 N@2 ~@14 O@2 ~@4 P@2 Q@2 R@4 S@6 ~
>`.pickRestart({
A: "[~@5 d4@3 eb4@3 g4@3 d4@34]/2",
B: "[~@5 d4@3 eb4@3 g4@3 d4@12 ~@3 c4@6 b3@5 ~ eb4@6 d4@6 d4@3 eb4@3 g4@3 d4@34]/4",
C: "[~@5 d4@3 eb4@3 g4@3 d4@14 b3 c4@6 b3@5 ~ bb4@6 ab4@6 g4@23 ~@20]/4", D: "[~@14 a3@3 b3@4 ~@2 c4@9 ~@16]/2",
E: "[~@14 g3@2 ~ a3@2 ~ b3@9 ~@19]/2", F: "[~@14 a3@3 b3@3 ~@3 c4@8 ~@17]/2", G: "~@14 g3@2 ~ a3@3 b3@4",
H: "[~@8 eb4@9 d4@9 c4@15 ~@7]/2", I: "~@5 bb3, ~ c3@2, ~@11 g3@13, ~@7 d4@5, ~@17 g4@7",
J: "[~@6 bb3@3 ~@21 bb3@3 ~@21 bb3@3 ~@22 b3@3 ~@21 bb3@3 ~@21 bb3@3 ~@22 bb3@3 ~@21 b3@3 ~@13, eb4@9 ~@3 g3@15 d4@6 ~@3 g3@15 d4@6 ~@3 g3@16 d4@6 ~@3 g3@15 d4@6 ~@3 g3@15 d4@6 ~@3 g3@16 d4@6 ~@3 g3@15 d4@6 ~@13, ~@3 d4@6 bb2@24 ab2@24 g2@24 ~ c3@24 bb2@24 ab2@24 ~ g2@24 ~@13, ~@15 d4@6 bb3@3 eb4@9 ~@6 d4@6 bb3@3 eb4@9 ~@6 d4@7 b3@3 eb4@9 ~@6 d4@6 bb3@3 eb4@9 ~@6 d4@6 bb3@3 eb4@9 ~@6 d4@7 bb3@3 eb4@9 ~@6 d4@6 b3@3 eb4@9 ~@13, ~@18 g4@15 ~@9 g4@15 ~@9 g4@15 ~@10 g4@15 ~@9 g4@15 ~@9 g4@15 ~@10 g4@15 ~@13]/8",
K: "[~@19 eb4@9 d4@9 c4@15 ~@20]/3",
L: "[~@40 bb3@3 ~@22 bb3@3 ~@21 bb3@3 ~@21 b3@3 ~@22 bb3@3 ~@21 bb3@3 ab2@3, ~@19 c3@18 d4@6 ~@4 g3@15 d4@6 ~@3 g3@15 d4@6 ~@3 g3@15 d4@6 ~@4 g3@15 d4@6 ~@3 g3@15 d4@6 ~@3, ~@22 g3@21 ~ bb2@24 ab2@24 g2@24 ~ c3@24 bb2@24 ~@3, ~@25 d4@6 bb3@3 eb4@9 ~@7 d4@6 bb3@3 eb4@9 ~@6 d4@6 bb3@3 eb4@9 ~@6 d4@6 b3@3 eb4@9 ~@7 d4@6 bb3@3 eb4@9 ~@6 d4@6 bb3@3 eb4@9 ~@3, ~@28 g4@15 ~@10 g4@15 ~@9 g4@15 ~@9 g4@15 ~@10 g4@15 ~@9 g4@15 ~@3]/7",
M: "[~@19 bb3@3 ~@21 b3@3 ~@2, g3@21 ~ g2@18 d4@6 ~@2, ~@3 d4@9 eb4@9 ~@7 d4@6 b3@3 eb4@9 ~@2, ~@6 g4@15 ~@10 g4@15 ~@2, ~@9 bb3@6 d4@6 ~@4 g3@21 ~@2]/2",
N: "[eb4@3 d4@3 c4@5 ~@5]/2", O: "[~@2 eb4@9 d4@9 c4@15 ~@13]/2", P: "[~@4 d4@3 eb4@3 g4@3 d4@35]/2",
Q: "[~@5 d4@3 eb4@3 g4@3 d4@13 ~@2 c4@7 b3@5 eb4@6 ~]/2",
R: "[d4@6 d4@3 eb4@3 g4@3 d4@35 ~@5 d4@3 eb4@3 g4@3 d4@15 ~ b3 c4@8 b3@7]/4", S: "[bb4@5 ab4@63 ~@4]/6",
})).s("gm_acoustic_guitar_nylon").gain(0.24).pan(0.6)
// chords · piano
const piano = note(`<
~@10 A@8 B@4 C@7 D@4 E@5 F@5 G@2 H@4 I@5 J@2 K L M@6 N@6 O@6 P@3 Q R@4 S@7 T@6 U@3 V W X Y Z AA AB AC AD AE AF@2 AG@2
AH@2 AI AJ AK AL AI AM@5 AN@6 AO@2 AP@7 ~@6
>`.pickRestart({
A: "[~@11 g4@6 g4@6 g4@6 ~@6 ab4@6 ab4@6 ab4@6 ~@6 bb4@6 ~@6 [bb2,bb4]@6 ~@13 eb5@4 ~ [d3,d4,g4]@4 ~@9 g4@5 ~ g4@5 ~ c3@4 ~@2 f2@4 ~@2 ab4@5 ~ ab4@6 [f2,ab4]@6 ~@6 bb4@6 bb4@6 [bb2,bb4]@6 ~@12 [eb4,g4,bb4,eb5]@6, ~@5 c3@18 c3@4 ~@2 f3@22 ~@2 f4@12 [bb3,f4]@11 ~ [eb4,g4]@12 [eb4,g4,bb4]@4 ~@8 eb4@12 eb4@11 ~@2 f4@11 f4@11 ~@2 f4@12 ~@18 d5@12, ~@5 eb4@12 [c4,eb4,c5]@10 ~@2 f4@12 [f2,f4,c5]@11 ~ bb2@18 ~@6 eb3@16 ~@8 c3@18 ~@11 f2@13 ~@7 bb2@18 ~@6 eb3@18, ~@65 bb4@6 ~@43 [c4,c5]@11 ~@13 [f3,c5]@11 ~@13 [bb3,f4,d5]@11 ~@19, ~@66 d5@10 ~@7 d5@10 ~@26 g4@6 ~@49 g4@12 ~@6]/8", // Bb G5 Fm Bb Eb Bb5 Eb Cm …
B: "[[d3,d4,g4]@6 ~@6 g4@6 g4@6 ~ c3@4 ~@8 ab4@5 ~@6 ab4@6 ~@7 bb4@5 ~ bb4@5 ~ bb4@6 ~@12 [eb4,bb4,eb5]@4 ~, ~@6 c3@18 g4@6 f4@12 [f2,f4]@11 ~ bb2@18 bb2@5 ~@2 eb3@16 ~, ~@6 eb4@12 [c4,eb4,c5]@10 ~@2 f3@22 ~@15 [bb3,d5]@11 ~@12 g4@4 ~@2, ~@42 ab4@6 ~@6 f4@12 f4@11 ~@2 [eb4,g4]@12 ~@5, ~@43 c5@10 ~@32 d5@10 ~]/4", // G5 Eb5 F Cm Bb Eb
C: "[~ [d4,g4]@4 ~@8 eb4@5 ~ g4@6 [c3,g4]@5 ~ [c4,d4,g4]@12 ~@9 g2@2 ~ [c4,d4,g4]@12 ~@30 [g3,d4]@6 [g2,d4]@6 d4@6 ~ d4@6 [g2,d4]@5 ~ g3@6 g3@6 g3@6 [c2,g3]@4 ~@2 a2@5 ~@9 a2@2, d3@4 ~@3 c3@18 ~@6 g2@21 ~@3 g2@24 [g2,d4,g4]@6 g3@6 g4@36 ~@41, ~@18 eb4@12 ~@13 [c4,d4,g4]@11 ~@13 c4@24 b4@12 [a4,c5]@23 ~@42, ~@19 [c4,c5]@11 ~ a3@18 a3@5 ~ a3@18 a3@30 g3@6 g2@7 [g3,b4,d5]@11 ~ c2@18 ~@11 a2@9 ~@2, ~@67 [d4,g4]@12 b3@48 ~ [c3,c4,e4]@12 [c3,c4,e4]@10 ~@2 [a3,c4,e4]@9 [a3,c4,e4]@7]/7", // G5 C5 Csus2 G5 C5 G5 Csus2 Am …
D: "[~@2 [a3,c4,e4]@5 ~@19 d3@5 ~@7 g3@4 g3 ~ d4@3 ~@3 b3@5 ~ [g3,c4,e4]@12 ~@6 c3@5 ~ a2@5 ~@9 a2@2, ~@7 d3@6 d3@12 ~@7 [b3,d4,g4]@11 b3@6 ~@7 c3@18 ~@11 a2@9 ~@2, ~@8 d2@23 ~ g2@23 ~ c2@23 ~@17, ~@8 [a3,d4,f4]@12 [a3,d4,f4]@11 g3@6 ~@7 g4@11 ~@41, ~@47 d4@8 ~@13 [g3,c4,e4]@11 ~ [a3,c4,e4]@9 [a3,c4,e4]@7]/4", // Am C G Dm C Am
E: "[~@2 [a3,c4,e4]@4 ~@2 d3@9 d3@3 [a3,d4] ~@7 d3@2 ~@2 [g2,g3,b3,g4]@6 [g3,b3]@2 [g3,c4]@2 ~@2 [g2,g3,b3,d4,g4]@10 ~@2 c4@3 ~@3 ab3@6 ab3@6 ab3@3 f3@2 ~ bb3@6 bb3@6 bb3@6 bb3@4 ~@2 [eb3,g3,bb3,eb4]@9 [d2,d3,f3,bb3,d4]@7, ~@8 d2@23 ~@7 [g2,g4]@6 ~@12 f2@23 ~ bb2@22 ~ eb2@9 ~@8, ~@8 [a3,d4,f4]@12 f4@2 ~ [a3,d4,f4]@7 ~@26 f3@21 ~@43, ~@14 f4@3 ~@13, ~@56 ab3@3 c4@9 [c4,f4]@10 ~@2 [d4,f4]@12 [d4,f4]@10 ~@18]/5", // Am D5 G C5 G Eb Bb G …
F: "[~@2 [c2,c3,g3,bb3,c4,eb4]@17 ~ [f2,f3,bb3,c4,eb4]@11 ~ d4@6 d4@6 d4@6 d4@6 d4@6 ~@12 d4@5 ~@13 b3@6 b3@6 ~@12 [b3,g4]@4, ~@4 [g2,g3]@6 [g2,g3]@5, ~@32 [c4,g4]@12 [c4,g4]@12 [c4,g4]@12 [c4,g4]@11 ~ [b3,g4]@12 g4@12 [b3,g4]@12 ~@4, ~@31 d4@6 ~@6 d4@6 d4@6 d4@5]/5", // Cm7 Fsus4 Em G C5 Em
G: "[~@2 d4 ~@5 g4@14 ~@3 d5 ~@2 d5 ~ c5 d5 ~@5 d4 ~@2 d4@2 c4 d4@2 ~ d4@2, ~@8 [c3,c4,eb4]@24 ~ [bb2,bb3]@15, ~@22 g4@5 ~@6 g4@6 g4@6 ~@3, ~@24 c5@2 ~ g5@6 d4@3 c4@2 ~@7 c4@2 ~, ~@34 g3@5 ~@9]/2", // Cm Bb
H: "[~@9 [ab2,ab3,c4,g4]@24 g2@17 ~@2 b2@5 ~ g4@13 ~@3 d5@2 ~ d5@2 c5 d5 ~@4 c4 ~ d4 ~@3 c4@2 d4 c4 ~, ~@33 [g3,b3,g4]@24 ~ [c3,c4,eb4]@24 [bb2,bb3]@14, ~@71 g4@5 ~@6 [d4,g4]@6 g4@6 ~@2, ~@73 c5@2 ~ g5@6 ~ g3@5 ~@2 d4@2 ~@4]/4", // Abmaj7 G Cm Bb G5
I: "[d4 ~@9 [ab2,ab3,c4,g4]@24 ~ g2@17 ~ b2@6 ~@6 g4@6 g4@6 ~ c3@4 ~@8 ab4@5 ~ ab4@6 ab4@6 ~@6 bb4@6, ~@35 [g3,b3,g4]@24 c3@18 g4@6 ~ f4@11 f4@11 ~@14, ~@59 eb4@12 [c4,eb4,c5]@10 ~@3 f3@23 ~@13, ~@48 [f2,c5]@5 ~ [bb2,f4]@6]/5", // Abmaj7 G Cm F5 Bb5
J: "[~@6 [bb2,bb4]@6 ~@13 [eb4,g4,bb4,eb5]@4 ~@2 [d3,d4,g4]@4 ~@8 g4@5, [bb3,f4]@11 ~@2 eb3@16 ~@8 [c3,eb4]@11, bb4@6 ~@7 [eb4,g4]@12 ~@23, ~ d5@11 ~@7 d5@10 ~@19]/2", // Bb Eb G5 Bb5 Cm Eb
K: "~@7 [c3,g4]@6 ~ f2@4 ~@2 ab4@4, ~ [c4,eb4]@11 ~@6 f2@6, ~ g4@6 ~@7 f4@10, ~ c5@5 ~@6", // C5 Cm
L: "~ ab4@3 [f2,ab4]@3 ~@3 bb4@2, ~@2 [f3,f4,c5]@11 ~ [bb2,f4]@10", // Fm F5 Bb5
M: "[~@2 bb4@6 [bb2,bb4]@6 ~@13 [eb4,g4,bb4,eb5]@6 [d3,d4,g4]@6 ~@6 g4@6 ~@7 g4@6 ~@6 ab4@6 ab4@6 ab4@6 ~@6 bb4@6 ~@7 bb4@6 ~@12 [eb4,g4,bb4,eb5]@4 ~@2 [d3,d4,g4]@4 ~@2 c3@6 eb4, ~@2 [bb3,f4,d5]@11 ~@2 eb3@18 ~@6 c3@19 c3@4 ~@2 f3@23 ~@14 [bb3,d5]@11 ~@32, ~@15 g4@12 ~@12 eb4@12 eb4@10 ~@3 f4@12 ~@12 f4@12 f4@11 ~@2 [eb4,g4]@12 ~@19, ~@21 d5@12 ~@18 g4@6 ~@43 bb4@6 ~@13 d5@10 ~@15, ~@52 [c4,c5]@10 ~@14 [f2,f4,c5]@11 ~ bb2@18 bb2@5 ~@2 eb3@16 ~@15]/6", // Bb Eb G5 Eb G5 Bb Eb C …
N: "[~@5 g4@6 [c3,g4]@5 ~ [c4,d4,g4]@12 ~@10 g2@2 ~ [c4,d4,g4]@12 ~@30 [g3,d4]@6 ~ d4@5 ~ d4@6 d4@6 [g2,d4]@5 ~ g3@6 g3@6 g3@6 [c2,g3]@4 ~@2 [a2,a3,c4,e4]@5, ~@4 eb4@12 ~ a3@18 ~ a3@5 ~ a3@18 a3@36 g2@7 [g3,b4,d5]@11 ~ c2@18 ~@11, ~@5 [c4,c5]@11 ~ g2@21 ~@4 g2@24 [g2,d4,g4]@6 g3@6 g4@36 ~@30, ~@30 [c4,d4,g4]@11 ~@13 c4@24 b4@12 [g2,g3] [a4,c5]@24 ~@29, ~@54 [d4,g4]@12 b3@48 ~ [c3,c4,e4]@12 [c3,c4,e4]@10 ~@7]/6", // C5 Csus2 G5 C5 Am G C G5 …
O: "[~@13 [a3,c4,e4]@5 ~ d3@6 ~@12 d3@5 ~ g3@6 g3@5 g3 d4@3 ~@3 b3@5 ~ [g3,c4,e4]@12 ~@6 c3@5 ~ a2@6 ~@12 [a3,c4,e4]@4 ~@2 d3@9 d3@3 [a3,d4] ~@2 [a3,d4,f4]@6 d3@2 ~ [g2,g3,b3,g4]@5, ~ a2@9 a2@7 ~@2 d2@23 ~ g2@23 ~ c2@23 ~@25 d2@23 ~@6, ~@4 [a3,c4,e4]@9 ~@6 [a3,d4,f4]@12 [a3,d4,f4]@11 ~ [b3,d4,g4]@11 ~ g4@11 ~@61 f4@2 ~@15, ~@25 d3@12 ~@18 b3@6 ~@6 c3@18 ~@12 a2@9 a2@8 ~@30, ~@58 d4@8 ~@13 [g3,c4,e4]@11 ~ [a3,c4,e4]@9 [a3,c4,e4]@9 ~@6 [a3,d4,f4]@12 ~@17]/6", // Am C Am D5 Dm G Am Dm …
P: "[~ [g3,b3]@2 ~ [g3,c4]@2 ~ [g2,g3,b3,d4,g4]@10 ~@2 c4@3 ~@3 ab3@6 ab3@6 ab3@3 f3@2 ~ bb3@6 bb3@6 bb3@6 bb3@4 ~@2 [eb2,eb3,g3,bb3,eb4]@5, ~ [g2,g4]@6 ~@12 f2@23 ~ bb2@22 ~@7, ~@19 f3@21 ~@32, ~@19 f4@12 ~@41, ~@19 ab3@3 c4@9 [c4,f4]@10 ~@2 [d4,f4]@12 [d4,f4]@10 ~@7]/3", // G C5 G Eb G F5 Dm
Q: "~@4 [d2,d3,f3,bb3,d4]@8 ~ [c2,c3,g3,bb3,c4,eb4]@11", // Bb Cm7
R: "[~@7 [f2,f3,bb3,c4,eb4]@11 ~ d4@6 d4@6 d4@6 d4@6 d4@6 ~@12 d4@5 ~ g4@14 ~ c5@2 d5 ~@2 d5 c5 ~ d5 ~@2 g3@2 c4, ~@19 [g2,g3]@48 [c3,c4,eb4]@24 ~ [bb2,bb3,d4,g4]@4, ~@19 [c4,g4]@12 [c4,g4]@12 [c4,g4]@12 [c4,g4]@11 ~@30, ~@49 d4@12 ~@20 g4@5 g5@6 ~@4]/4", // Fsus4 G Cm Gm C5
S: "[d4 ~@2 d4@2 c4 d4@2 ~ d4@2 ~@9 [ab2,ab3,c4,g4]@24 g2@3 g2@3 g2@3 g2@3 g2@3 g2@3 g2@3 g2@3 ~ g4@13 ~@3 d5@2 ~ d5@2 c5 d5 ~@4 c4 d4 ~@2 d4@2 c4@2 d4 c4 ~ d4 ~@9 [ab2,ab3,c4,g4]@24 ~ g2@17 ~ b2@6 [c3,eb4]@2, ~@2 g4@6 c4@2 ~@34 [g3,b3,g4]@24 ~ [c3,c4,eb4]@24 [bb2,bb3]@24 ~@51, ~@82 g4@5 ~@6 g4@6 g4@6 ~@63, ~@84 c5@2 ~ g5@6 d4@4 ~@71, ~@94 g3@5 ~@43 [g3,b3,g4]@24 ~@2]/7", // Abmaj7 Cm G Cm Bb G
T: "[~@4 g4@6 g4@6 ~ c3@4 ~@8 ab4@5 ~@6 ab4@6 ~@7 bb4@6 bb4@6 [bb2,bb4]@6 ~@12 [eb4,g4,bb4,eb5]@4 ~@2 [d3,d4,g4]@4 ~@8 eb4@5 ~ g4@6 [c3,g4]@5 ~ [c4,d4,g4]@12 ~@10 g2@2 ~, ~@10 [c4,eb4,c5]@10 ~@2 f3@22 ~@15 [bb3,f4,d5]@11 ~@37 [c4,c5]@11 ~ a3@18 ~ a3@5 ~, ~@16 g4@6 f4@12 [f2,f4]@11 ~ bb2@18 ~@7 eb3@16 ~@8 c3@18 ~@6 g2@21 ~@4, ~@34 ab4@6 ~@7 f4@12 ~@12 [eb4,g4]@12 ~@23 eb4@12 ~@14 [c4,d4,g4]@11 ~, ~@35 c5@10 ~@32 d5@10 ~@57]/6", // Bb Eb G5 C5 Csus2 Cm Bb C …
U: "[[c4,d4,g4]@12 ~@30 [g3,d4]@6 [g2,d4]@6 d4@6 d4@6 [g2,d4]@5 ~, g2@24 [g2,d4,g4]@6 g3@6 g4@35 ~, a3@18 a3@30 g3@6 g2@6 [g3,b4,d5]@11 ~, ~@12 c4@24 b4@12 [a4,c5]@23 ~, ~@12 [d4,g4]@12 b3@47 ~]/3", // Csus2 G5 G Am G5
V: "g3@3 g3@3 g3@3 [c2,g3]@2 ~, c2@3 ~, [c3,c4,e4]@6 [c3,c4,e4]@5 ~", // C5 C
W: "a2@6 ~@12 [a3,c4,e4]@5 ~, [a3,c4,e4]@3 [a3,c4,e4]@3 ~@2, ~@6 a2@9 a2@7 ~@2", // Am
X: "d3@6 ~@12 d3@5 ~, d2@23 ~, [a3,d4,f4]@12 [a3,d4,f4]@11 ~, ~ d3@2 ~", // Dm
Y: "g3@6 g3@5 g3 d4@3 ~@3 b3@5 ~, g2@23 ~, [b3,d4,g4]@11 ~ g4@11 ~, ~@2 b3 ~, ~@15 d4@8 ~", // G
Z: "[g3,c4,e4]@12 ~@6 c3@5 ~, c2@23 ~, c3@3 ~, ~@12 [g3,c4,e4]@11 ~", // C
AA: "a2@3 ~@6 [a3,c4,e4]@2 ~, [a3,c4,e4]@3 [a3,c4,e4]@3 ~@2, ~@6 a2@9 a2@8 ~", // Am
AB: "d3@9 d3@3 [a3,d4] ~@2 [a3,d4,f4]@6 d3@2 ~, d2@23 ~, [a3,d4,f4]@6 f4 ~@5", // D5 Dm
AC: "[g2,g3,b3,g4]@6 [g3,b3]@2 ~ [g3,c4]@2 ~ [g2,g3,b3,d4,g4]@10 ~@2, ~ [g2,g4] ~@2", // G C5 G
AD: "c4@3 ~@3 ab3@6 ab3@6 ab3@3 f3@2 ~, f2@23 ~, f3@7 ~, f4 ~, ab3@3 c4@9 [c4,f4]@10 ~@2", // F5
AE: "bb3@3 bb3@3 bb3@3 bb3@2 ~, bb2@11 ~, [d4,f4]@6 [d4,f4]@5 ~", // Dm
AF: "[[eb2,eb3,g3,bb3,eb4]@9 [d2,d3,f3,bb3,d4]@8 ~ [c2,c3,g3,bb3,c4,eb4]@17 ~ [f2,f3,bb3,c4,eb4]@11 ~]/2", // Eb Bb Cm7 Fsus4
AG: "[d4@6 d4@6 d4@6 d4@6 d4@6 ~@12 d4@5 ~, [g2,g3], [c4,g4]@12 [c4,g4]@12 [c4,g4]@12 [c4,g4]@11 ~, ~@5 d4@2 ~]/2", // G C5
AH: "[~@12 b3@6 ~ b3@5 ~@12 [b3,g4]@6 d4 ~@5, [g2,g3]@43 ~@5, [b3,g4] g4 [b3,g4] ~, ~@6 d4@12 d4@12 ~ d4@11 ~@6]/2", // Em G Em
AI: "~ [c2,g3,c4,eb4]@23", AJ: "~ [bb1,f3,bb3,d4]@23", AK: "~ [ab1,g3,c4,eb4]@23",
AL: "~ [g1,c4,d4,g4]@15 [b1,b3,d4,g4]@8", // Gsus4 G
AM: "[~@2 [bb1,f3,bb3,d4]@24 [ab1,g3,c4,eb4]@24 [c4,d4,g4]@12 [b3,d4,g4]@12 c4@3 ~@3 ab3@6 ab3@6 ab3@3 f3@2 ~ bb3@6 bb3@6 bb3@6 bb3@4, ~@25 [g1,g3]@12 f2@12 bb2@11, ~@74 f3@21 ~@25, ~@37 f4@6 ~@17, ~@74 ab3@3 c4@9 [c4,f4]@11 ~ [d4,f4]@12 [d4,f4]@10]/5", // Bb Abmaj7 Csus2 G F5 Dm
AN: "[~@2 [eb2,eb3,g3,bb3,eb4]@9 ~ [d2,d3,f3,bb3,d4]@8 ~ [c3,g3,bb3,c4,eb4]@18 [f2,f3,bb3,c4,eb4]@11 ~ d4@6 d4@6 d4@6 d4@6 d4@6 ~@12 d4@5 ~@13 b3@6 b3@6 ~@12 [b3,g4]@6 d4 ~@2, ~@20 c2@18 ~@13 [g2,g3]@48 [g2,g3]@44 ~, ~@51 [c4,g4]@12 [c4,g4]@12 [c4,g4]@12 [c4,g4]@11 ~ [b3,g4]@12 g4@12 [b3,g4]@12 ~@9, ~@27 d4@4 ~@4 d4@4 d4@4 d4@4 ~]/6", // Eb Bb Cm7 Fsus4 Em G C5 Em
AO: "[~@4 g4@13 ~@2 c5@2 d5 ~@2 d5 c5 ~ d5 ~@3 c4@2 d4 ~@3 c4 ~@2 c4@2 d4@2 ~@4, ~ [c3,c4,eb4]@6 [bb2,bb3]@5, ~@17 g4@5 g5@6 [d4,g4]@6 g4@6 ~@8, ~@30 g3@5 ~ d4@2 ~ d4@2 ~@7]/2", // Cm Bb G5
AP: "[~@5 [ab2,ab3,c4,g4]@24 [g2,g3,b3,g4]@24 ~ g4@14 ~ c5@2 ~@4 c5 ~ d5 ~@3 c4 ~ d4 ~@3 c4@2 d4 ~ c4 d4 ~@10 [ab2,ab3,c4,g4]@26 g2@23 ~@2 b2@11 ~@3, ~@9 [c3,c4,eb4]@4 [bb2,bb3]@4 ~@11, ~@68 g4@4 g5@6 ~@2 g3@5 ~ d4@2 ~@41 [g3,b3,g4]@36 ~@3, ~@71 d5@2 ~ d5@2 ~@2 [d4,g4]@6 g4@6 ~@78]/7", // Abmaj7 G Abmaj7 Cm Bb G G5
})).s("gm_piano").gain(0.27).pan(0.4)
// chords · distortion guitar · "Dist gt"
const distortion_guitar = note(`<
~@43 A@4 B@7 ~@13 C@8 D@6 ~ E F@3 G@7 ~@5 H I J K L M N K L M O P Q@2 ~@3 R S T U V S W@7 ~@4 X@2 Y@2 Z@4 AA@7
>`.pickRestart({
A: "[~@8 eb4@7 g4@3 d4@35 ~@4 eb4@6 g4@3 ~ d4@12 ~@2 c4@7 b3@6 eb4@2]/4",
B: "[~@4 d4@4 ~@2 eb4@6 g4@3 d4@35 ~@4 eb4@7 g4@3 d4@12 ~@2 c4@7 b3@5 bb4@7 ab4@6 g4@48 ~@13]/7",
C: "[~@3 d3@3 [g2,d3]@3 [g2,d3]@3 [g2,d3]@3 [g2,d3,g4]@3 ~ b4@3 g4@3 c5@3 g4@3 d5@3 g4@3 c5@3 b4@3 [c3,g3,e5]@24 [e3,a3]@24 [d3,a3]@24 [d3,g3]@24 [c3,g3]@24 [e3,a3]@24 [d3,a3]@5, ~@19 [g2,d3]@24 ~@149]/8", // G5 C A5 D5 G5 C5 A5 D5 …
D: "[~@19 [d3,g3]@24 [f2,c3]@24 [f2,bb2]@24 eb3@9 d3@9 c3@24 ~@11]/6", E: "~@19 eb4@5",
F: "[~ g4@3 ~ d4@35 ~@4 eb4@6 g4@3 d4@12 ~@3 c4@4]/3",
G: "[~@2 b3@6 ~ eb4@6 d4@4 ~@2 eb4@6 g4@3 d4@35 ~@4 eb4@7 g4@3 d4@12 ~@2 c4@6 b3@5 ~ bb4@7 ab4@6 g4@48 ~@2]/7",
H: "~@3 d3 [g2,d3]!3 [g2,d3,g4]", I: "b4 g4 c5 g4 d5 g4 b4 g4, [g2,d3]", J: "[c3,g3,e5]", K: "[e3,a3]", L: "[d3,a3]",
M: "[d3,g3]", N: "[c3,g3]", O: "[f2,c3]", P: "[f2,bb2]", Q: "[eb3@3 d3@3 c3@8 ~@2]/2",
R: "~@10 d3@3 [g2,d3]@3 [g2,d3]@3 [g2,d3]@3 [g2,d3]@2", S: "~ [c3,g3]@23", T: "~ [bb2,f3]@23", U: "~ [ab2,eb3]@23",
V: "~ [g2,g3]@15 g3@8", W: "[~@2 [bb2,f3]@24 [ab2,eb3]@24 [g2,d3]@24 [f2,c3]@24 [f2,bb2]@24 eb3@9 d3@9 c3@24 ~@4]/7",
X: "[~@4 eb4@6 g4@3 d4@35]/2", Y: "[~@5 eb4@6 g4@3 d4@13 ~@2 c4@7 b3@6 eb4@6]/2",
Z: "[d4@4 ~@2 eb4@6 g4@3 d4@35 ~@5 eb4@6 g4@4 d4@14 ~@2 c4@7 b3@7 ~]/4", AA: "[bb4@10 ab4@145 ~@13]/7",
})).s("gm_distortion_guitar").gain(0.35).pan(0.7)
// chords · distortion guitar · "Dist gt" · soft notes
const distortion_guitar_soft = note("<~@66 A B ~@30 C ~@16 D ~@3 E ~@27>".pickRestart({
A: "~@7 [g2,d3]", B: "[g2,d3] g2 ~@6", C: "~ [g2,d3]!2 g2 ~@4", D: "~@4 [g2,d3]@3 [g2,d3]@3 g2@3 ~@11", E: "~@2 b2",
})).s("gm_distortion_guitar").gain(0.2).pan(0.7)
// other · string ensemble 2 · "Slowstri"
const string_ensemble_2 = note(`<
~@51 A@2 B C D E F G H I J K@4 L@2 M ~@7 N@5 O P ~@18 Q R S T Q R S U V W@2 X@4 Y Z AA AB Z@2 AC AD@5 AE@5 ~@7 AF@6 ~
>`.pickRestart({
A: "[~@11 d4@6 c4@2 ~@4 d4@6 c4@2 ~@4 d4@6 ab3@2 ~@5]/2", B: "d4@3 ab3 ~@2 eb4@3 ab3 ~@2",
C: "eb4@3 ab3 ~@2 f4@3 bb3 ~@2", D: "~ f4@6 eb4@6 d4@6 c4@2 ~@3", E: "~ d4@6 c4@2 ~@4 d4@6 ab3@2 ~@3",
F: "~ d4@3 ab3 ~@2 eb4@3 ab3 ~", G: "~ eb4@3 ab3 ~@2 f4@3 bb3 ~", H: "~@3 f4@6 eb4@6 d4@6 c4@2 ~",
I: "~@3 d4@6 c4@2 ~@4 d4@6 ~ ab3@2", J: "~@2 d4@3 ab3 ~@2 eb4@3 ab3",
K: "[~@4 eb4@6 ab3@2 ~@4 f4@6 ~ bb3@2 ~@4 f4@6 eb4@6 d4@6 c4@2 ~@4 d4@6 c4@2 ~@4 c4@6 b3@2 ~@4 c4@6 b3@2 ~@5 c4@6]/4",
L: "b3 ~@2 c4@3 b3 ~@2 c4@3", M: "b3@2 ~@4 c4@6 ~ b3@2 ~@9",
N: "[~@13 b3@6 c4@24 d4@24 bb4@9 c5@9 eb4@24 ~@6 c4@5]/5", O: "~ b3@6 c4@6 b3@6 c4@5", P: "~ b3@6 c4@6 b3@6 ~@5",
Q: "a3 b3 c4 a3", R: "f3", S: "b3 c4 d4 b3", T: "g3", U: "c4", V: "d4", W: "[bb4@3 c5@3 eb4@8 ~@2]/2",
X: "c4 b3 c4 b3", Y: "d4@6 c4@2 ~@5 d4@6 c4@2 ~@3", Z: "~ d4@6 c4@2 ~@4 d4@6 c4@2 ~@3",
AA: "~ eb4@6 ab3@2 ~@4 eb4@6 ab3@2 ~@3", AB: "~ f4@6 eb4@2 ~@4 f4@6 eb4@5", AC: "~ eb4@6 ab3@2 ~@5 eb4@6 ab3@2 ~@2",
AD: "[~@2 f4@6 eb4@6 d4@6 c4@6 c4@24 d4@24 bb4@9 c5@9 eb4@24 ~@4]/5",
AE: "[~@2 c4@6 b3@6 ~ c4@6 b3@6 c4@6 b3@6 c4@6 b3@6 c4@6 b3@6 c4@6 b3@6 c4@6 b3@6 c4@6 b3@6 ~@21]/5",
AF: "[~@21 bb3@7 a3@8 bb3@8 a3@8 ~ bb3@9 a3@9 bb3@10 a3@53 ~@10, ~@21 [f2,c3,f3]@119 ~@4]/6", // F5
})).s("gm_string_ensemble_2").gain(0.2).pan(0.6)
// chords · pad warm · "Warm pad"
const pad_warm = note(`<
~@2 A@8 B@8 C@3 D@8 E@4 F@7 ~@11 G@3 H@5 I@3 J@2 K@8 L@8 ~@10 M@6 N@4 O@4 P@2 Q@2 R@4 ~@4 S T U@2 S V@7 ~@19
>`.pickRestart({
A: "[~@5 [eb4,g4]@187]/8", // Eb
B: "[~@5 [c3,g4]@24 [f3,ab4]@24 [bb2,f4,bb4]@24 eb3@18 d3@6 c3@24 ~ [f3,ab4]@24 [bb2,f4,bb4]@24 [eb3,d4,g4]@18, ~@5 eb4@48 ~@24 g4@48 ~@67, ~@77 eb4@24 eb4@48 ~@43]/8", // C5 Fm Bb5 Fm Bb5 Ebmaj7
C: "[d3 [c3,g4]@4 [f3,ab4]@4 [bb2,f4,bb4]@3, ~ eb4@8 ~@3]/3", // C5 Fm Bb5
D: "[~@7 eb3@18 d3@6 [c3,eb4]@24 [g2,d4,g4]@96 ~ [c4,e4]@40, ~@7 g4@48 ~@137, ~@7 eb4@24 ~@161]/8", // Cm G5 C
E: "[~@8 [d4,f4]@24 [b3,g4]@15 [d4,f4]@9 [c4,e4]@40]/4", // Dm Em Dm C
F: "[~@8 [d4,f4]@24 [b3,g4]@24 ab3@23 ~@25 eb4@9 d4@8 ~ eb4@29 ~@17, ~@7 f4@6 ~@8, ~@80 bb3@71 ~@17]/7", // Dm Em
G: "[~@11 [c3,g4]@24 ~ [f3,ab4]@24 [bb2,f4,bb4]@12, ~@11 eb4@49 ~@12]/3", // C5 Fm Bb5
H: "[~@13 eb3@18 d3@6 c3@24 ~ [f3,ab4]@24 [bb2,f4,bb4]@24 ~ [eb3,d4,g4]@9, ~@13 g4@49 ~@58, ~@13 eb4@24 eb4@49 ~@34]/5", // Fm Bb5 Ebmaj7
I: "[~@9 d3@6 [c3,g4]@24 ~ [f3,ab4]@24 [bb2,f4,bb4]@8, ~@15 eb4@49 ~@8]/3", // C5 Fm Bb5
J: "[~@17 eb3@18 d3@6 [c3,eb4]@7, ~@17 g4@31, ~@17 eb4@24 ~@7]/2", // Cm
K: "[~@17 [g2,d4,g4]@97 ~ g3@24 ~@24 f4@24 [b3,g4]@5, ~@115 [c4,e4]@48 d4@29, ~@139 a3@48 ~@5]/8", // G5 Em C
L: "[~@10 [g3,d4,f4]@9 g3@24 a3@24 f4@24 [b3,g4]@24 [ab3,c4]@24 d4@24 [eb4,g4]@9 [d4,f4]@9 [eb4,g4]@11, ~@19 [c4,e4]@48 d4@48 f4@48 ~@29, ~@139 bb3@53]/8", // G7 Em Ab Eb Dm Eb C
M: "[~@22 [c3,g4]@24 [f3,ab4]@24 ~ [bb2,f4,bb4]@24 eb3@18 d3@6 [c3,eb4]@24 ~, ~@22 eb4@48 ~@25 g4@48 ~, ~@95 eb4@24 ~@25]/6", // C5 Fm Bb5 Cm
N: "[g2,d4,g4]/4", O: "[g3@8 ~@8 f4@8 [b3,g4]@5 [g3,d4,f4]@3, [c4,e4]@16 d4@13 ~@3, ~ a3@2 ~]/4",
P: "[g3 a3, [c4,e4]]/2", Q: "[f4 [b3,g4], d4]/2",
R: "[[ab3,c4]@8 d4@8 [eb4,g4]@3 [d4,f4]@3 [eb4,g4]@8 ~@2, f4 ~, ~@4 bb3@11 ~]/4", S: "~ [g3,c4,eb4]@23",
T: "~ [f3,bb3,d4]@23", U: "[~ eb4@24 d4@15 [g3,b3,d4]@8, ~ [g3,c4]@39 ~@8]/2",
V: "[~@2 [f3,bb3,d4]@24 eb4@24 ~@12 b3@12 [ab3,c4]@24 d4@24 [eb4,g4]@9 [d4,f4]@9 [eb4,g4]@24 ~@4, ~@13 g3@24 ~@47, ~@13 c4@18 ~@18 bb3@33 ~@2, ~@25 d4@12 f4@24 ~@23]/7", // Bb Ab Eb Dm Eb
})).s("gm_pad_warm").gain(0.24).pan(0.4)
// drums · kick
const kick = s("bd").struct(`<
~@27 A B A C A B D B A B E F A@4 G H I H J K J L@2 M@2 N@2 O@2 P@2 Q@2 R@3 S@2 T U T V T W T X T V T V Y T@2 Z AA AB
AC AD AE AD AF ~@10 AG AH AG AI AG AJ AG AH AG AH AK ~ AG AJ AL AM@2 AN AM AO AM AP F AQ F AQ AR ~ AS AT AU AS AV@2
AW@2 AX@2 AY ~@8
>`.pickRestart({
A: "~ x ~", B: "~@4 x ~@2 x ~@4", C: "~@8 x ~@5 x ~@8 x", D: "~@5 x ~@2 x ~@15", E: "~@8 x ~@8 x ~@6", F: "~ x ~@10",
G: "~@2 x ~@5 x ~@5 x ~@2 x ~@6", H: "~@3 x ~@4", I: "~@3 x ~ x!2 ~", J: "~@10 x ~@5 x ~@2 x ~@4", K: "~@5 x ~@6",
L: "~@11 x ~@12", M: "~ x", N: "~@13 x ~@10", O: "~@7 x ~@4", P: "~@5 x ~@2", Q: "~@2 x", R: "~@17 x ~@6", S: "~@3 x",
T: "~@19 x ~@4", U: "~@4 x ~@2 x ~@5 x ~@5 x ~@4", V: "~ x ~@17 x ~@4", W: "~ x ~@8 x ~@8 x ~@4",
X: "~ x ~@14 x ~@2 x ~@4", Y: "~@4 x ~@8 x ~@10", Z: "~@13 x ~@5 x ~@4", AA: "~ x ~@2 x ~@15 x ~@3", AB: "~@5 x",
AC: "~@2 x ~@2 x ~@14 x ~@3", AD: "~@7 x", AE: "~ x!2 ~@4 x", AF: "~@3 x ~@2 x ~@15 x ~", AG: "x", AH: "x!2 ~@2",
AI: "x ~ x ~@2 x ~@2", AJ: "x ~ x ~@4 x", AK: "x ~@2 x ~@2 x ~", AL: "x ~@2 x", AM: "~ x ~@22", AN: "~ x ~@5 x ~@16",
AO: "~ x ~@5 x ~@2 x ~@5 x ~@7", AP: "~@2 x ~@5 x ~@14 x", AQ: "~ x ~@2 x ~@7", AR: "~@2 x ~@8 x ~@8 x ~@3",
AS: "~ x ~@6", AT: "~ x ~ x ~@4", AU: "x!2 ~@5 x", AV: "~ x ~@4", AW: "~@5 x ~@18", AX: "~ x ~@2", AY: "~@7 x ~@16",
})).gain(0.36)
// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@46 A ~@3 B C ~@34 D ~@3 E ~@56>".pickRestart({
A: "~@15 x ~@6 x ~", B: "~@14 x ~@2 x ~@6", C: "~@5 x ~@18", D: "~ x ~@2 x ~@7", E: "~ x ~@2 x ~@11 x ~@7",
})).gain(0.18)
// drums · rim
const rim = s("rim").struct("<~@51 A ~ B@2 C@2 D@2 E@2 F@2 G@2 H@2 ~@65 I@2 J@2 K L@2 ~@8>".pickRestart({
A: "~@23 x", B: "x", C: "~ x ~@22", D: "~ x ~@10", E: "~ x ~@6", F: "~ x ~@4", G: "~@5 x ~@18", H: "~ x ~@2",
// … 105 more lines
More by U2
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.