0:00/0:00
// Heroes — The Wallflowers
// 118 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 106 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(118/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 · electric guitar clean · "CLEAN GUITAR"
const electric_guitar_clean = note(`<
~ A@4 B@7 C@6 D@4 E F G@3 H I@5 J@7 K@2 L@4 M N@4 O@5 P@4 Q@4 R@4 S@6 T U V@2 W X@6 Y@3 Z@6 AA@8 AB@4
>`.pickRestart({
A: "[~@8 f#4@13 ~@3 e4@4 d4@4, ~@22 d3@39 ~@9 [d3,g3]@26, ~@23 [f#3,a3]@38 ~@10 b3@25]/4", // G5 F#m
B: "[~@24 f#4@35 ~@13 e4@11 d4@27 ~@10 d4@44 ~@3 d3, ~@22 d3@35 ~@14 [d3,g3,b3]@40 ~@7 d3@46 ~@4, ~@23 [f#3,a3,d4]@35 ~@61 [f#3,a3]@45 ~@4]/7", // G D F#m
C: "[~ d4@37 ~@10 [a3,d4]@42 ~@6 d4@38 ~@10, [g3,b3]@38 ~@8 d3@43 ~@5 d3@40 ~@10, ~@47 f#3@43 ~@5 [g3,b3]@39 ~@10]/6", // D5 G
D: "[~ c4@43 ~@4 [d3,a3]@44 ~@4, c3@23 ~ d4@21 ~@3, [e3,g3]@43 ~@4 f#3@44 ~@5]/4", E: "~ a3@18 ~@5, a2, e3@19 ~@5",
F: "~ e3@19 ~@4, [e2,b2]@5 ~", G: "[~ d4@43 ~@4 [e3,c4]@22 ~@2, [d3,a3]@44 ~@3 c3@24 ~, ~@12 g3@5 ~]/3",
H: "[d3,g3]@3 ~, g2@23 ~", // G5
I: "[~ d4@45 ~@2 d4@41 ~@7 d4@24, [d3,f#3,a3]@46 d3@39 ~@9 d3@26, ~@47 [f#3,a3]@38 ~@10 [g3,b3]@25]/5", // D F#m G
J: "[~@24 d4@43 ~@5 [b3,d4]@43 ~@5 d4@44 ~@3 d3, ~@22 d3@45 ~@4 [d3,g3]@44 ~@3 d3@45 ~@5, ~@23 [f#3,a3]@44 ~@52 [f#3,a3]@45 ~@4]/7", // Bm G5 F#m
K: "[~ d4@37 ~@10, [g3,b3]@19 ~@5]/2", L: "[~ c4@37 ~@10 [a3,d4]@40 ~@8, [c3,e3,g3]@39 ~@8 [d3,f#3]@42 ~@7]/4",
M: "[e3,a3]@7 ~, a2@3 ~", // A5
N: "[[e2,b2,e3]@18 ~@6 d4@44 ~@4 [g3,c4]@19 ~@4 [g2,b2], ~@23 [d3,f#3,a3]@45 ~@3 [c3,e3]@20 ~@5]/4", // E5 C5 G D C
O: "[[d3,g3]@18 ~@7 [f#3,a3,d4]@42 ~@5 [a3,d4]@46 ~@2, ~@23 d3@43 ~@5 [d3,f#3]@47 ~@2]/5", // G5 D D5 D
P: "[~ g3@29 ~@18 [a3,d4]@37 ~@11, [g2,b2,d3]@29 ~@18 [d3,f#3]@38 ~@11]/4", // D5 G D
Q: "[[g2,b2,d3,g3]@33 ~@15 [a3,d4]@37 ~@11, ~@47 [d3,f#3]@38 ~@11]/4", // G D5 D
R: "[[g2,b2,d3,g3]@8 ~@4 d4@9 ~@3, ~@47 [d3,f#3,a3]@37 ~@12]/4", // G D
S: "[[g2,b2,d3,g3]@14 ~@10 c4@21 ~@3 [d3,a3,d4]@21 ~@3, ~@47 [c3,e3,g3]@43 ~@5 f#3@43 ~@6]/6", T: "[a2,e3,a3]@7 ~",
U: "[e2,b2,e3]@3 ~", V: "[[d3,f#3,a3,d4]@43 ~@5]/2", W: "[c3,e3,g3,c4]@3 ~",
X: "[[g2,d3,g3]@18 ~@6 [a3,d4]@45 ~@3 d4@41 ~@6 [g2,d3,g3]@25, ~@23 [d3,f#3]@46 ~@2 [d3,f#3,a3]@42 ~@5 b2@26]/6", // G5 D5 G5 D
Y: "[~@24 d4@42 ~@5 g2, ~@23 [d3,f#3,a3]@43 ~@6]/3", // D
Z: "[[b2,d3,g3]@40 ~@8 [d3,a3,d4]@42 ~@6 [d3,g3]@41 ~@7, ~@47 f#3@43 ~@5 [g2,b2]@42 ~@7]/6", // G D5 G5 G
AA: "[[d3,f#3,a3]@43 ~@5 [d3,g3]@37 ~@11 d4@39 ~@9 [g2,d3]@39 ~@9, d4@41 ~@6 b2@38 ~@10 [d3,f#3,a3]@40 ~@8 b2@39 ~@10, ~@48 g2@39 ~@57 g3@37 ~@11]/8", // D G5 D
AB: "[~ d4@81 ~@14, [d3,f#3,a3]@41 ~@7]/4", // D
})).s("gm_electric_guitar_clean").gain(0.07)
// bass · electric bass pick · "BASS"
const bass = note(`<
~@2 A B C D E F G H E I G J E K L M N O P E Q R E@2 S T U V W X G Y Z AA AB AC AD AE AF AG AH AI AJ F AK AL AJ F AM AN
E AO E@2 AP J AJ K AQ AR AJ F AS AT AU AV AW AX AY AI AJ F AK AL AJ F AM AN E AO E F G H E I G J E F G H E I G J A AZ
BA BB BC@2 ~@2
>`.pickRestart({
A: "d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2@2 ~ d2 ~@2",
B: "d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~ d2@3 ~", C: "g1@2 ~ g1@3 b1@3 a1@2 g1@2 ~@2 g1 ~@2 g1 ~@2 g1 ~@2",
D: "g1 ~ g1@3 ~ b1@3 a1@3 g1@2 b1@3 c2@4 c#2@3", E: "d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2",
F: "d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2@3", G: "g1@2 ~ g1@3 b1@3 a1@3 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2",
H: "g1 ~@2 g1@3 b1@3 a1@3 g1@3 b1@3 c2@2 c#2@2 ~@2", I: "~ d2 ~ d2 ~@3 d2 ~@2 d2 ~ d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2",
J: "g1 ~@2 g1@3 b1@3 a1@3 g1@3 b1@3 c2@3 c#2@3", K: "d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2@2 ~",
L: "g1 ~@2 g1@3 b1@3 a1@3 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2", M: "g1 ~@2 g1@3 b1@2 ~ a1@3 g1@2 ~ g1 ~@3 g1 ~ g1 ~@2",
N: "c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2",
O: "c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2@2 ~ c2 ~@2", P: "d2 ~@3 d2 ~@2 d2 ~ d2 ~@3 d2 ~ d2 ~@3 d2 ~ d2 ~@2",
Q: "a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1@2 ~ c2@3 d2@3",
R: "e1@2 ~ e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1@2 ~",
S: "c2@2 ~ c2@2 ~ e1@2 ~ e1@3 f1@2 ~ f1@2 ~ f#1@2 ~ f#1@3",
T: "g1@3 g1@2 ~ b1@2 ~ b1@2 ~ c2@2 ~ c2@2 ~ c#2@2 ~ c#2@2 ~",
U: "d2@2 ~ d2@2 ~ d2 ~@2 d2 ~@2 d2@2 ~@2 d2 ~ d2@2 ~ d2@2 ~",
V: "d2 ~@2 d2@2 ~ b1@2 ~ b1@2 ~ c2@2 ~ c2 ~@2 c#2@2 ~ c#2@2 ~",
W: "d2 ~@2 d2 ~@2 d2@2 ~ d2 ~@2 d2@2 ~ d2@2 ~ d2 ~@2 d2@2 ~",
X: "d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~ d2@2 ~ d2@3", Y: "g1 ~@2 g1@3 b1@3 a1@3 g1@2 ~ g1 ~@2 g1 ~@2 g1@3",
Z: "d2 ~@2 d2 ~@2 d2@2 ~ d2@2 ~ d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2",
AA: "d2 ~@2 d2 ~@2 d2 ~@2 d2@2 ~ d2@2 ~ d2@2 ~ d2 ~@2 d2@3", AB: "g1@2 ~ g1@3 b1@3 a1@3 g1@2 ~ g1 ~@2 g1@2 ~ g1@2 ~",
AC: "g1 ~@2 g1@2 ~ b1@3 a1@2 ~ g1@2 ~ g1 ~@2 g1 ~@2 g1@3",
AD: "d2@2 ~ d2@2 ~ d2@2 ~ d2 ~@2 d2@2 ~ d2 ~@2 d2@2 ~ d2@2 ~",
AE: "d2@2 ~@2 d2@2 d2@2 ~ d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2@3", AF: "g1 ~@2 g1@3 b1@3 a1@3 g1@2 ~ g1 ~@2 g1@2 ~ g1 ~@2",
AG: "g1 ~@2 g1@3 b1@3 a1@3 g1@2 ~ g1 ~@2 g1@3 b1@2 c2", AH: "c2@2 ~ c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2@2 ~",
AI: "c2 ~@2 c2@2 ~ c2 ~@2 c2 ~@2 c2@2 ~ c2 ~@2 c2 ~@2 c2@3",
AJ: "d2@2 ~ d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2",
AK: "a1@2 ~ a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1@3 c2@3 d2@3", AL: "e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@3",
AM: "c2@2 ~ c2@3 e1@2 ~ e1@3 f1 ~@2 f1@2 ~ f#1@2 ~ f#1@2 ~",
AN: "g1@2 ~ g1 ~@2 b1@2 ~ b1 ~@2 c2 ~@2 c2@2 ~ c#2@2 ~ c#2@2 ~",
AO: "d2 ~@2 d2@2 ~ b1@2 ~ b1@2 ~ c2@2 ~ c2@2 ~ c#2@2 ~ c#2@2 ~",
AP: "~ g1 ~ g1@3 b1@3 a1@2 ~ g1@2 ~ g1 ~@2 g1@2 ~ g1 ~@2", AQ: "g1@2 ~ g1@3 b1@3 a1@2 ~ g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2",
AR: "g1 ~@2 g1@3 b1@3 a1@3 g1@2 ~ b1@3 c2@2 ~ c#2@2 ~", AS: "g1@2 ~ g1@3 b1@3 a1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1 ~@2",
AT: "g1 ~@2 g1@3 b1@3 a1@3 g1@2 ~ b1@3 c2@3 c#2@2 ~", AU: "d2@2 ~ d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2@2 ~ d2 ~@2 d2 ~@2",
AV: "d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2 ~@2 d2@2 ~ d2@3",
AW: "g1@2 ~ g1@3 b1@3 a1@2 ~ g1@2 ~ g1 ~@2 g1@2 ~ g1 ~@2", AX: "g1 ~@2 g1@3 b1@3 a1@2 ~ g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2",
AY: "c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2@2 ~",
AZ: "d2 f#2 ~ f#2 ~@2 f#2@2 ~ e2 ~@2 e2 ~@2 e2@2 ~ d2@2 ~ d2@2 ~, e2 ~@11",
BA: "g1@2 ~ g1@3 b1@3 a1@3 g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~", BB: "g1@2 ~ g1@3 b1@3 a1@3 g1@3 b1@2 ~ c2@2 ~ c#2@2 ~",
BC: "[d2@23 ~]/2",
})).s("gm_electric_bass_pick").gain(0.31)
// chords · overdriven guitar · "AIR GUITAR"
const overdriven_guitar = note(`<
A@5 B@5 ~@7 C@5 ~@8 D@4 E@8 F@2 G@2 H I@3 J K@3 L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@3 V@3 W X@5 Y@4 Z@2 AA@4 AB@2
AC@4 AD@2 AE@4
>`.pickRestart({
A: "[~ a4@9]/5", B: "[~@23 a4@93 ~@4]/5",
C: "[~@16 f#4@6 e4@5 f#4@3 d4@8 ~ f#4@6 e4@6 f#4@3 d4@9 f#4@6 a3@40 ~@11]/5",
D: "[a3@6 b3@3 a3@21 b3@3 ~@15 g3@2 ~ g3@3 b3@3 a3 ~@2 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~@2 g3@2 g3@3 b3@3 ~@3 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~, [d3,d4]@48 d4@47 ~, ~@33 a3@22 ~@3 a3@21 ~@2 a3@15, ~@2 d3 d3]/4", // D
E: "[~@6 b3@3 a3@21 b3@3 ~@18 g3@3 b3@3 ~@3 g3@2 ~ g3@2 ~ g3 ~@2 g3 ~@3 g3 ~ g3@3 b3@3 a3 ~@2 g3@2 ~ g3@2 ~ g3 ~@2 g3 ~@2 a3@6 b3@3 a3@21 b3@3 ~@15 g3@2 ~ g3@3 b3@3 ~@3 g3@2 ~ g3@2 ~ g3 ~@2 g3 ~@2 g3@2 ~ g3@3 b3@3 ~@3 g3@2 ~ g3@2 ~ g3 ~@2 g3 ~@2, [d3,d4]@47 ~ d3@24 d3@23 ~ d3@47 ~ d3@24 d3@19 ~@5, ~@33 a3@22 ~@2 a3@21 ~@4 a3@14 ~@33 a3@22 ~@2 a3@21 ~@3 a3@10 ~@5, ~@24 g3 ~@71, ~@49 d4@95 d4@42 ~@6]/8", // D
F: "[~ c4@34 ~ [c3,c4]@5 ~ [c3,c4]@6, [c3,g3]@17 ~ g3@5 ~]/2", G: "[[d3,d4]@41 ~ [d3,d4]@6, a3@47 ~]/2",
H: "[a2,e3,a3]@23 ~", I: "[[e2,b2]@23 [d3,a3,d4]@46 ~@3, e3@19 ~@53]/3", J: "[c3,g3,c4]@18 [c3,g3,c4]@5 ~",
K: "[[g2,d3,g3]@15 ~@3 [g2,d3,g3]@4 ~@2 d4@43 ~@5, ~@23 [d3,a3]@44 ~@5]/3", // G5 D5
L: "[a3@11 ~ a3@6 b3@3 a3@9 b3@3 a3@5 a3@4 b3@3 a3 ~@2, [d3,d4]@23 ~]/2", // D
M: "[d3@8 ~ d3@2 ~ d3@5 ~@4 d3@4 ~@2 d3@5 ~ d3@14 ~, g2@47 ~, g3@5 ~]/2",
N: "[a3@5 ~ a3@5 a3@2 ~ a3@4 b3@3 a3@9 b3@3 a3@5 a3@4 b3@3 a3 ~@2, [d3,d4]@23 ~]/2", // D
O: "[g3@5 ~ b3@3 a3 ~@5 g3 ~@2 g3 ~@2 g3 ~@2 g3 ~@2 g3@3 ~@2 a3@2 ~ g3@2 ~ g3 ~@3 g3@3 ~@3, [g2,d3]@47 ~, ~@15 b3@2 ~@7]/2", // G5
P: "[a3@5 ~ a3@5 ~ a3@2 ~@4 b3@3 a3@5 ~ a3@3 b3@3 a3@5 ~ a3@3 b3@3 a3 ~@2, [d3,d4]@23 ~, ~@15 a3@5 ~@28]/2", // D
Q: "[g3@6 b3@2 a3@2 ~ g3 ~@3 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ g3@3 b3@3 a3@3 g3 ~@2 g3@2 ~ g3@2 g3 ~@3, [g2,d3]]/2", // G5
R: "[a3@5 ~ a3@6 a3@6 b3@3 ~@9 b3@3 a3@9 b3@3 a3 ~@2, [d3,d4]@47 ~, ~@21 a3@11 ~@16]/2", // D
S: "[g3@2 ~ g3@3 b3@3 a3@3 g3@2 ~ g3 ~@2 g3@2 ~ g3@2 ~ g3@6 b3@2 a3@3 g3 ~@3 g3@2 ~ g3@2 g3 ~@3, [g2,d3]@15 ~, a3 ~@47]/2", // G5
T: "[[c3,g3,c4]@41 ~ [c3,g3,c4]@6]/2", // C5
U: "[[d3,d4]@35 ~ [d3,d4]@5 ~ [d3,d4]@5 ~ a2@17 ~ [a2,a3]@6, a3@47 a3@17 ~@8, ~@48 e3@23 ~]/3", // D A
V: "[[e2,b2]@23 ~ d4@35 ~ [d3,d4]@5 ~ [d3,d4]@6, e3@20 ~@3 d3@36 ~@13, ~ a3@2]/3", W: "[c3,g3,c4]",
X: "[[g2,d3]@23 ~ [a3,d4]@44 ~@19 a3@3 b3@3 a3@9 b3@3 a3@9 b3@3 a3 ~@2, g3@25 ~@46 a3@15 ~@34, ~@23 d3@44 ~@4 d3@47 ~@2, ~@36 d4@23 ~]/5", // G5 D5
Y: "[g3@2 ~@4 b3@3 ~@3 g3@2 ~ g3@2 g3@2 ~ g3@2 ~@2 g3@2 ~@4 b3@3 a3@3 g3@2 ~ g3@2 ~ g3@2 ~@21 b3@3 a3@6 ~@4 b3@3 a3@9 b3@3 a3 ~@2, [g2,d3]@47 a3@19 ~@9 a3@5 ~@16, ~@2 g3@7 a3@5 ~@13 g3@5 ~@15 d4@47 ~@2, ~@48 d3@47 ~]/4", // G5
Z: "[g3@2 ~@4 b3@3 a3@3 g3@2 ~ g3@2 g3@2 ~@2 g3@2 ~ g3 ~@2 g3@3 b3@3 a3@3 g3@2 ~ g3 ~@2 g3@2 ~@4, g2@47 ~, d3@11 ~, ~@3 g3@7 ~@38]/2",
AA: "[a3@18 b3@3 a3@9 b3@3 a3@5 a3@4 ~@2 a3 ~@8 b3@3 a3@4 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ g3@3 b3@3 a3@3 g3@2 ~ g3@2 ~ g3@2 g3 ~@3, [d3,d4]@47 ~ g2@48, ~@42 b3@4 ~ g3@2 ~ g3@7 ~@39, ~@24 d3@23 ~]/4", // D
AB: "[~@17 b3@4 a3@6 a3@3 b3@3 a3@5 ~ a3@3 b3@3 a3 ~@2, [d3,d4]@47 ~, a3@19 ~@29]/2", // D
AC: "[g3@3 ~@3 b3@3 a3@3 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ g3@3 b3@2 a3@3 g3@2 ~@2 g3@2 ~ g3 ~ g3 ~@2 [d3,d4]@36 ~ [d3,d4]@5 ~ [d3,d4]@6, [g2,d3]@15 ~@17, ~@3 g3@7 ~@37 a3@45 ~@4]/4", // D G5
AD: "[[g2,g3]@47 ~, d3@15 ~]/2", AE: "[[d3,a3,d4]@79 ~@17]/4",
})).s("gm_overdriven_guitar").gain(0.1)
// chords · overdriven guitar · "AIR GUITAR"
const overdriven_guitar_2 = note(`<
~ A@7 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I J K@2 L M N@2 O@4 ~@6 P@3 Q@7 ~@4 R@7 S@8 T U@8 ~@3 V@5 W@4 X@4 O@4 ~@8
>`.pickRestart({
A: "[~@24 f#4@47 ~ e4@12 d4@33 ~@2 [f#3,a3]@46 ~@3, ~@11 d3@46 ~@2 d3@24 ~, ~@23 f#3@48 g3@43 ~@54, ~@23 a3@45 ~@51 f#4@48 ~]/7", // F#m
B: "[e4@4 d4@11 ~, [d3,g3]@15 ~]/2", C: "[[d3,f#3]@35 ~@2 [d3,f#3]@5 ~ d3@5, ~@7 f#3]/2",
D: "[[g2,g3]@35 ~ [g2,g3]@5 ~ [g2,g3]@6]/2", E: "[[d3,f#3]@17 ~ [d3,f#3]@3 [d3,f#3]@3]/2", F: "[[g2,g3]@11 ~]/2",
G: "[c3,g3,c4]/2", H: "[[a3,d4]@47 ~, d3@15 ~]/2", I: "[a2,e3], a3@11 ~", J: "e2, e3@7 ~, b2@19 ~@5",
K: "[[d3,a3,d4]@15 ~, c3 ~@47]/2", L: "[c3,g3,c4]", M: "[d3,g3]@7 ~, g2", N: "[~ d4@45 ~@2, [d3,a3]@15 ~]/2",
O: "[a4@47 ~]/4",
P: "[d3 ~@5 b3@3 a3@3 g3 ~@2 g3 ~@2 g3 ~@2 g3 ~@5 g3 ~@2 b3@3 a3@3 g3 ~@2 g3 ~@2 g3 ~@2 e4@6 f#4@3 d4@9 f#4@6 e4@3, ~@3 d3@47 ~@22, ~@40 f#4@5 g3 ~@26]/3",
Q: "[~@3 f#4@3 d4@9 f#4@6 a3@42 f#4@6 e4@18 f#4@6 e4@18 f#4@6 a3@41 ~@10]/7", R: "[a4@92 ~@3 a4@73]/7",
S: "[~@23 a4@91 ~@5 a4@73]/8", T: "~@5 f#4@2 e4",
U: "[~@3 f#4@3 d4@9 f#4@6 e4@6 f#4@3 d4@9 f#4@6 a3@42 f#4@6 e4@15 f#4@9 b3@23 ~ a3@43 ~@8]/8",
V: "[~@23 a4@92 ~@5]/5", W: "[a4@23 ~]/4", X: "[a4@23 ~, g4 ~@95]/4",
})).s("gm_overdriven_guitar").gain(0.25)
// chords · pad warm · "WARM PAD"
const pad_warm = note(`<
~ A@8 B@4 C@5 D@7 E@4 F@6 G@7 H@8 ~@3 I@8 J@3 K@4 L@2 ~@8 M@5 N@5 O P@4 Q@4 R@5 ~@4
>`.pickRestart({
A: "[~@23 [f#3,a3,d4]@47 e4@13 ~@36 [f#3,a3]@48 e4@12 d4@13, ~@23 d3@169, ~@70 g3@47 ~@50 g3@25, ~@83 d4@85 ~@24]/8", // D F#m
B: "[~@23 f#3@48 [g3,b3]@25, ~@22 d3@49 ~@25, ~@23 d4@73, ~@23 a3@43 ~@30]/4", // G
C: "[~@23 [d3,f#3]@47 ~ [d3,g3,b3]@42 ~@7, ~@23 d4@90 ~@7, ~@23 a3@44 ~@53]/5", // D G
D: "[[c3,g3,c4]@47 [d3,a3]@47 ~ [a2,e3]@24 [e3,b3,e4]@24 [d3,a3,d4]@25, ~@47 d4@48 a3@20 ~@53]/7", // C5 D5 A5 E5 D5
E: "[~@23 [c3,c4]@24 [g2,d3]@23 ~ [d3,a3,d4]@25, ~@23 g3@48 ~@25]/4", // C G5 D5
F: "[~@24 [f#3,a3]@45 ~@3 g4@47 ~ [f#3,a3]@24, ~@23 d3@95 ~ [d3,f#4]@25, ~@24 f#4@47 [g3,b3]@46 ~@27]/6", // F#m D G
G: "[~@24 g4@47 [d3,f#3,f#4]@45 ~@4 [b3,g4]@44 ~@3 g3, ~@23 [d3,g3]@46 ~@50 [d3,g3]@45 ~@4, ~@24 b3@44 ~@3 a3@42 ~@55]/7", // D Em G5
H: "[[c3,c4]@47 d3@48 a2@24 [e3,e4]@24 [d3,a3,d4]@47 ~@2, ~@47 a3@73 ~@72, ~@47 d4@45 ~@100]/8", // C E D5
I: "[~@23 [d3,f#3,d4]@47 ~ d3@48 [d3,a3]@48 ~ d3@24, ~@23 a3@48 g2@46 ~@50 [g2,g3]@25, ~@71 g3@44 ~@4 [f#3,d4]@46 ~@27]/8", // D D5 G D
J: "[~@23 [d3,f#3,d4]@46 ~@3, ~@23 a3@49]/3", K: "[[g2,d3,g3]@43 ~@4 [d3,f#3,a3,d4]@47 ~@2]/4",
L: "[[g2,d3,g3]@13 ~@3]/2", M: "[[c3,c4]@23 [g2,d3]@23 ~ [d3,d4]@73, g3@23 a3@37]/5",
N: "[~@23 [g2,d3]@47 ~@2 d3@47 g2, ~@23 g3@48 [a3,d4]@49]/5", O: "[d3,g3]",
P: "[~@23 [d3,d4]@47 [g2,d3,g3]@26, ~@23 a3@49 ~@24]/4", Q: "[~@23 [d3,a3,d4]@48 ~ g2@24, ~@71 [d3,g3]@25]/4",
R: "[~@24 d3@41 ~@6 [g2,d3,g3]@49, ~@23 a3@50 ~@47, ~@23 d4@48 ~@49]/5", // G5
})).s("gm_pad_warm").gain(0.28)
// chords · string ensemble 2 · "STRINGS"
const string_ensemble_2 = note("<~@49 A@5 B@8 ~ C D@2 ~@3 E@3 F@6 G H@5 I@4 J@8 K L@4 M@5>".pickRestart({
A: "[~@53 d5@5 ~ d5@5 ~@2 d5@5 f#4@18 g4@4 a4@23 ~@4, ~@23 e4@24 d4@69 ~@4, ~ c5 b4 ~@2]/5",
B: "[a4@59 [g4,b4]@10 ~@12 g4@14 d5@24 f#5@24 ~@19 a4@2 ~ g4@20 ~@7, ~@69 [a4,c5]@13 ~@77 [g4,b4]@4 ~@29, ~@80 b4@12 ~@51 g5@43 ~@6, ~@161 c5@3 b4@21 ~@7]/8", // G Am G
C: "~ f#5", D: "[[g4,g5]@7 ~]/2", E: "[~@23 c4@49, ~@11 c5@25]/3",
F: "[[d4,d5]@47 c5@24 b4@24 d5@49, ~@95 d4@47 ~@2]/6", G: "c5", H: "[b4@23 f#5@45 ~@3 d5@49]/5",
I: "[~@11 [g4,b4]@9 [a4,c5]@15 b4@12 d4@49, ~@35 g4@10 ~@51]/4", // G Am
J: "[~@11 [g4,b4]@10 [a4,c5]@14 [g4,b4]@12 [d4,d5]@60 [g4,b4]@9 [a4,c5]@15 [g4,b4]@12 d4@49]/8", // G Am G D G Am G
K: "~@4 [g4,b4]@3 [a4,c5]", L: "[~@11 g4@12 [d4,d5]@61 [g4,b4]@9 [a4,c5]@3, ~@5 b4@6 ~@37]/4",
M: "[~@12 g4@11 ~@13 b5@2 ~@2 b5@3 ~ b5@68 ~@8, ~@11 b4@12 d4@88 ~@9, ~@25 f#5@88 ~@7]/5",
})).s("gm_string_ensemble_2").gain(0.8)
// drums · kick
const kick = s("bd").struct(`<
~ A B@7 C B D B@4 E@2 F B@2 G B@3 H B@6 I F B@11 H B@21 J B@7 H B K B H B H B H B@5 H B@7 L B@3 M ~@4
>`.pickRestart({
A: "~@15 x ~@4 x ~@3", B: "x ~@2 x!2 ~@2 x", C: "x!2", D: "x ~@9 x ~@2 x ~@8 x ~", E: "x ~@8 x ~@3 x ~@7 x ~@2",
F: "~ x ~@7 x ~@2 x ~@8 x ~@2", G: "~ x ~@8 x ~ x ~@8 x ~@2", H: "x ~@2 x!2 ~@3", I: "~ x ~@8 x ~ x ~@9 x ~",
J: "x ~@8 x ~@2 x ~@7 x ~@3", K: "x ~@2 x ~ x ~ x", L: "x", M: "x ~@8 x ~@5 x ~@6 x ~",
})).gain(0.8)
// drums · snare
const snare = s("sd").struct(`<
~ A B@7 C B D E@2 B@2 D@2 E B F E@2 D B C B@5 F D B@2 F E B@2 F E B E B@2 C B@3 G B@19 C B@5 G B H B C B G B@5 E B C
B@7 I B@3 J ~@4
>`.pickRestart({
A: "~@3 x", B: "~ x ~ x", C: "~@2 x ~@2 x!2 ~", D: "~@7 x ~@11 x ~@4", E: "~@7 x ~@10 x ~@5", F: "~@6 x ~@12 x ~@4",
G: "~@6 x ~@11 x ~@2 x!2 ~", H: "~ x!2 ~", I: "~@6 x!2 ~@4 x ~@5 x ~@2 x!2 ~", J: "~ x!3",
})).gain(0.8)
// drums · hihat
const hihat = s("hh").struct(`<
~@2 A B@2 C D B@4 E F G B H I J ~@12 B@8 K B@3 ~@12 B@2 L M B@3 M B@3 M B@4 ~@36
>`.pickRestart({
A: "x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@2", B: "x!8", C: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x",
D: "~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2", E: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~",
F: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", G: "x ~@3 x ~@2 x ~ x ~@3 x ~ x ~@2 x ~@2 x ~@2",
H: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@3 x ~ x ~@2", I: "x ~@2 x ~@3 x ~ x ~@3 x ~ x ~@2 x ~@3 x ~",
J: "~ x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2", K: "x ~@2 x ~@2 x ~@2 x ~@3 x ~ x ~@2 x ~@2 x ~@2",
L: "x ~@2 x ~@2 x ~@3 x ~ x ~@2 x ~@2 x ~@2 x ~@2", M: "x!7 ~",
})).gain(0.8)
// drums · low tom
const low_tom = s("lt").struct("<~@77 [~@3 x] ~@19 [~@3 x ~@2 x ~] ~@8>").gain(0.8)
// drums · open hat
const open_hat = s("oh").struct(`<
// … 22 more lines
More by The Wallflowers
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.