0:00/0:00
// Love's Got a Hold on You — Alan Jackson
// 153 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 19, 4/4 at bar 19, 2/4 at bar 43, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 107 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(153/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(`<
~@5 A@3 B A C D E A C D F G H I J K L M N O P J Q R S@3 R F T A U F T A P V N Q W X O Y O Z AA@2 B J AB AC AD AC AD AE
AF O AG AA@2 B C A AH AI B@3 AJ AK AL AM AN AM AO AP O AQ P J Q AR C P AS AT@3 ~ AU S@3 R S@3 AV@4
>`.pickRestart({
A: "e2@7 ~ b1@7 ~", B: "e2@7 ~ b1@6 ~@2", C: "e2@8 b1@7 ~", D: "e1@7 ~ e2@7 ~", E: "b1@7 ~ e2@4 ~@4",
F: "b1@7 ~ e2@8", G: "b1@8 e1@3 ~ e1@4", H: "f#1@3 ~ g#1@3 ~ a1@6 ~@2", I: "a1@7 ~ e2@7 ~", J: "e2@7 ~ b1@8",
K: "f#1@4 b1@4 e1@7 ~", L: "e2@4 e1@3 ~ a1@7 ~", M: "a1@7 ~ e1@7 ~", N: "a1@6 ~@2 a1@7 ~", O: "a1@7 ~ a1@7 ~",
P: "e2 b1", Q: "e2@7 ~ e2@7 ~", R: "b1@6 ~@2 e2@7 ~", S: "b1@7 ~ e2@7 ~", T: "b1@7 ~ e1@7 ~", U: "e2@4 ~@4 e2@7 ~",
V: "e1@3 ~ e1@4 f#1@3 ~ g#1@3 ~", W: "b1@2 f#1 b1", X: "e1@7 ~ e2@4 e1@3 ~", Y: "e1@7 ~ a1@6 ~@2", Z: "a1@7 ~ e2@8",
AA: "b1@8 e2@7 ~", AB: "e2@3 ~ e2@3 ~ d#2@3 ~ c#2@3 ~", AC: "b1@8 f#1@7 ~", AD: "e2@7 ~ e2@5 ~@3", AE: "b1@7 ~ b1@8",
AF: "e2@4 e1@4 a1@7 ~", AG: "a1@5 ~@3 e2@8", AH: "e2@8 e1@7 ~", AI: "b1@7 ~ e2@5 ~@3", AJ: "b1@7 ~ e1@5 ~@3",
AK: "b1@7 ~ e1@3 ~ e1@3 ~", AL: "f#1@3 ~ g#1@3 ~ b1@8", AM: "f#1@7 ~ e2@7 ~", AN: "e2@5 ~@3 b1@8",
AO: "e2@5 ~@3 b1@7 ~", AP: "b1@2 e2 e1", AQ: "a1@7 ~ a1@5 ~@3", AR: "b1@6 ~@2 e2@4 b1@3 ~", AS: "e1 e2",
AT: "[b1@2 ~@2 b1@2 ~@2 e2@29 ~@11]/3", AU: "~@8 e2@7 ~", AV: "[b1@6 ~@2 e1@49 ~@7]/4",
})).s("gm_electric_bass_finger").gain(0.64)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~@5 A@4 B@3 C B@3 D@8 E@2 F@3 G@8 H@4 I@2 J K L M N O@6 P@2 Q R Q R Q S@6 T@2 M U M V@2 W ~ X@6 Y Z F@3 AA@4 AB ~@3
AC@6 AD@6
>`.pickRestart({
A: "[~@3 e3 e3@4 e3@3 ~ e3@4 e3@4 e3@4 ~@4 g#3@4 g#3@4 g#3@4 g#3@3 ~ [g#3,e4]@4 [g#3,e4]@4 g#3@4 g#3@3 ~ [g#3,b3,e4]@2 ~@2, e2@11 e2@9 [e2,g#3,b3]@7 e2@9 e2@26 ~@2, ~@4 [g#3,b3]@8 [g#3,b3]@8 ~@4 e3@19 e3@9 [e3,b3,e4]@8 ~@4, ~@28 [b3,e4]@8 [b3,e4]@8 b3@8 ~@7 e3@4 ~]/4", // C#m E G#m E5
B: "[e3@4 [g#3,b3,e4]@7 ~@5 e3@4 g#3@4 g#3@3 ~@9 g#3@4 g#3@3 ~ [g#3,b3,e4]@4, ~@11 e3@5 ~@4 [e3,b3,e4]@8 [g#3,b3,e4]@8 [b3,e4]@8 ~@4, ~@12 [g#3,b3,e4]@8 ~@7 e3@5 e3@11 e3@5]/3", // E E5 E E5 E
C: "[d#3,f#3]@2 [d#3,f#3,b3]@2 ~@2 [g#3,b3,e4] ~, ~@4 e3@3 ~", // D#m B E
D: "[~@4 [b3,d#4,f#4]@4 ~@4 e3@4 e3@3 ~@9 e3@4 e3@3 e2 [e3,g#3,b3] ~@7 a3@4 a3@3 ~ [a3,c#4,e4]@4 e3@4 g#3@4 g#3@3 ~ [g#3,b3,e4]@4 ~@4 [b3,d#4]@4 [b3,d#4]@3 ~ [b3,d#4]@4 ~@4 g#3@4 g#3@3 ~ [g#3,b3,e4]@4 ~@4 [a3,c#4,e4]@4 [a3,c#4,e4]@3 ~ [a3,c#4,e4]@4 ~@4 [g#3,b3,e4]@4, b2@8 e2@11 e2@5 e2@11 ~@5 a2@11 a2@6 ~@10 e3@5 b2@16 ~@4 [b3,e4]@8 ~@4 a2@16 ~@8, ~@12 [g#3,b3]@8 [e3,g#3,b3]@8 [g#3,b3]@8 ~@8 [c#4,e4]@8 ~@8 [b3,e4]@8 ~@8 f#3@7 f#3@5 e3@11 e3@6 ~@10 e3@5 e3@8]/8", // B E A E B E A E …
E: "[[a3,c#4,e4]@4 a3@4 a3@3 ~@9 a3@4 a3@3 ~ [a3,c#4,e4]@4, a2 a2, e3@11 e3@16 e3@5, ~ [c#4,e4]@2 [a3,c#4,e4]@2 [c#4,e4]@2 ~]/2", // A C#m A C#m
F: "[e3@4 [g#3,b3,e4]@7 ~ [g#3,b3,e4]@8 g#3@4 g#3@3 ~ [g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@4, ~@11 e3@9 [e3,b3,e4]@7 e3@9 e3@12]/3", // E E5
G: "[~@4 [b3,d#4,f#4] ~@6 e3 e3@4 e3@3 ~ e3@4 e3@4 e3@4 ~@4 g#3@4 g#3@4 g#3@4 g#3@3 ~ [g#3,e4]@4 [g#3,e4]@4 g#3@4 g#3@3 ~ [g#3,b3,e4]@2 ~@2 e3@4 [g#3,b3,e4]@7 ~@5 e3@4 g#3@4 g#3@3 ~@9 g#3@4 g#3@3 ~ [g#3,b3,e4]@4 [d#3,f#3]@4 [d#3,f#3,b3]@4, b2@6 ~@2 e2@11 e2@9 [e2,g#3,b3]@7 e2@9 e2@26 ~@58, ~@12 [g#3,b3]@8 [g#3,b3]@8 ~@4 e3@19 e3@9 [e3,b3,e4]@8 ~@15 e3@5 ~@4 [e3,b3,e4]@8 [g#3,b3,e4]@8 [b3,e4]@8 ~@12, ~@36 [b3,e4]@8 [b3,e4]@8 b3@8 ~@7 e3@4 ~@13 [g#3,b3,e4]@8 ~@7 e3@5 e3@11 e3@5 ~@8]/8", // B C#m E D#m B E G#m E5 …
H: "[~@4 [g#3,b3,e4]@2 ~@2 e3@4 [g#3,b3,e4]@7 ~@5 e3@4 g#3@4 g#3@3 ~@9 g#3@4 g#3@3 ~ [g#3,b3,e4]@4 ~@4 [b3,d#4,f#4]@4, e3@6 ~@13 e3@5 ~@4 [e3,b3,e4]@8 [g#3,b3,e4]@8 [b3,e4]@8 ~@12, ~@20 [g#3,b3,e4]@8 ~@7 e3@5 e3@11 e3@5 b2@8]/4", // E B E5 E E5 E
I: "[~@4 e3@4 e3@3 ~@9 e3@4 e3@3 e2 [e3,g#3,b3] ~@3, e2@11 e2@5 e2@11 ~@5, ~ [g#3,b3]@2 [e3,g#3,b3]@2 [g#3,b3]@2 ~]/2", // E G#m E G#m
J: "~@4 a3@4 a3@3 ~ [a3,c#4,e4]@4, a2@11 a2@5, ~ [c#4,e4]@2 ~", // A C#m
K: "e3@4 g#3@4 g#3@3 ~ [g#3,b3,e4]@4, ~@4 [b3,e4]@7 e3@5", // E E5
L: "~@4 [b3,d#4]@4 [b3,d#4]@3 ~ [b3,d#4]@4, b2, ~@4 f#3@7 f#3@5", // B
M: "~@4 g#3@4 g#3@3 ~ [g#3,b3,e4]@4, e3@11 e3@5, ~ [b3,e4]@2 ~", // E E5
N: "~@4 [a3,c#4,e4]@4 [a3,c#4,e4]@3 ~ [a3,c#4,e4]@4, a2, ~@11 e3@5", // A
O: "[~@4 [g#3,b3,e4]@4 [a3,c#4,e4]@4 a3@4 a3@3 ~@9 a3@4 a3@3 ~ [a3,c#4,e4]@4 e3@4 [g#3,b3,e4]@7 ~ [g#3,b3,e4]@8 g#3@4 g#3@3 ~ [g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@4 ~@4 [b3,d#4,f#4] ~@3, e3@8 a2@16 a2@16 ~@27 e3@9 e3@12 b2@6 ~@2, ~@8 e3@11 e3@16 e3@5 ~@11 e3@9 [e3,b3,e4]@8 ~@28, ~@3 [c#4,e4]@2 [a3,c#4,e4]@2 [c#4,e4]@2 ~@15]/6", // E A E B E5 C#m A C#m
P: "[~@4 g#3@4 g#3@3 ~@5 e3@3 ~@9 [g#3,b3,e4]@2 ~@2, e3@11 e3@5 ~@3 e3@5 e3@6 ~@2, ~ [b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 ~]/2", // E E5 E
Q: "~@4 b3@4 b3@3 ~ [b3,d#4,f#4]@4, b2@11 b2@5, ~ [d#4,f#4]@2 ~", // B D#m
R: "~@4 g#3@4 g#3@3 ~ [g#3,b3,e4]@3 ~, e3@11 e3@5, ~ [b3,e4]@2 ~", // E E5
S: "[~@4 [g#3,b3,e4]@4 ~@4 a3@4 a3@3 ~ [a3,c#4,e4]@4 ~@4 [g3,c#4,e4]@7 a2 [g3,c#4,e4] ~@3 e3@4 [g#3,b3,e4]@7 ~ [g#3,b3,e4]@8 g#3@4 g#3@3 ~ [g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@4 ~@4 [b3,d#4,f#4] ~@3, e3@8 a2@16 a2@11 ~@32 e3@9 e3@12 b2@6 ~@2, ~@12 [c#4,e4]@7 e3@5 ~@27 e3@9 [e3,b3,e4]@8 ~@28]/6", // E A C#dim E B C#m E5
T: "[~@4 [g#3,b3,e4]@7 ~ g#3@4 g#3@3 ~ g#3@4 g#3@3 ~ [g#3,b3,e4]@4, e3@11 e3@8 e3@8 e3@5, ~@3 [b3,e4]@2 [b3,e4]@2 ~]/2", // E E5
U: "~@4 [b3,d#4,f#4]@4 ~@4 [g#3,b3,e4]@3 ~, b2@8 e3@7 ~", // B E
V: "[~@4 [g#3,b3,e4]@4 ~@12 g#3@4 g#3@3 ~ [g#3,b3,e4]@4, e3@8 e3@8 e3@11 e3@5, ~@3 [g#3,b3,e4]@2 [b3,e4]@2 ~]/2", // E E5
W: "~ [b3,d#4,f#4] ~ [g#3,b3,e4], b2 e3", // B E
X: "[e3@4 [g#3,b3,e4]@3 ~@5 b3@4 b3@3 ~ [b3,d#4,f#4]@4 ~@4 g#3@4 g#3@3 ~ [g#3,b3,e4]@3 ~@5 b3@4 b3@3 ~ [b3,d#4,f#4]@4 ~@4 g#3@4 g#3@3 ~ [g#3,b3,e4]@3 ~@5 b3@4 b3@3 ~ [b3,d#4,f#4]@4 ~@4 [g#3,b3,e4]@4, ~@8 b2@11 b2@5 e3@11 e3@5 b2@11 b2@5 e3@11 e3@5 b2@11 b2@5 e3@8, ~@3 [d#4,f#4]@2 ~@2 [b3,e4]@2 ~@2 [d#4,f#4]@2 ~@2 [b3,e4]@2 ~@2 [d#4,f#4]@2 ~@3]/6", // E B E B E B E D#m …
Y: "~@4 a3@4 a3@3 ~ [a3,c#4,e4]@4, a2, ~@4 [c#4,e4]@7 e3@5", Z: "~@4 [g3,c#4,e4]@7 a2 [g3,c#4,e4] ~@3, a2@11 ~@5",
AA: "[~@4 [b3,d#4,f#4] ~@3 e3@6 ~@6 [g#3,b3,e4]@7 ~@9 [g#3,b3,e4]@4 [g#3,b3,e4]@3 ~@9 [g#3,b3,e4]@7 ~ [g#3,b3,e4]@4, b2@3 ~ [g#3,b3,e4]@5 ~@5 [g#3,b3,e4]@4 ~@4 [g#3,b3,e4]@4 ~@6, ~@16 e3@11 e3@5 e3@11 e3@5 e3@11 e3@5]/4", // B E
AB: "b2@2 [b3,d#4,f#4] ~@5", // B
AC: "[~@11 e3 e3@4 e3@3 ~ e3@4 e3@4 e3@4 ~@4 g#3@4 g#3@4 g#3@4 g#3@3 ~ [g#3,e4]@4 [g#3,e4]@4 g#3@4 g#3@3 ~ [g#3,b3,e4]@2 ~@5 e3 e3@4 e3@3 ~ e3@4 e3@4 [e2,e3,g#3,b3]@4, ~@8 e2@11 e2@9 [e2,g#3,b3]@7 e2@9 e2@26 ~@2 e2@11 e2@9 ~@4, ~@12 [g#3,b3]@8 [g#3,b3]@8 ~@4 e3@19 e3@9 [e3,b3,e4]@8 ~@8 [g#3,b3]@8 [g#3,b3]@8 ~@4, ~@36 [b3,e4]@8 [b3,e4]@8 b3@8 ~@7 e3@4 ~@25]/6", // C#m E G#m E5 G#m E5
AD: "[~@4 g#3@4 g#3@4 g#3@4 g#3@3 ~ [g#3,e4]@4 [g#3,e4]@4 g#3@4 g#3@3 ~ [g#3,b3,e4]@2 ~@2 [e2,e3,g#3,b3]@43 ~@13, e3@19 e3@9 [e3,b3,e4]@8 ~@60, ~@3 e2@9 e2@26 ~@58, ~@4 [b3,e4]@8 [b3,e4]@8 b3@8 ~@7 e3@4 ~@57]/6", // C#m E E5
})).s("gm_acoustic_guitar_steel").gain(0.56)
// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
~@18 A@3 B C D E@2 ~@7 F@2 G@2 H@2 I@2 J ~ K L M N O P@3 Q@3 ~@2 R S T U V W@2 ~@12 X Y@6 Z@2 ~ AA@2 ~@2 AB AC ~@5
AD@5 AE@2 AF@4
>`.pickRestart({
A: "[~@4 e5@2 [g#4,b4]@3 e5 ~ d#5, ~ [a4,c#5]@2 ~@2 f#5]/3", B: "b4@8 ~@3 g#4@5", C: "~ g#4 [a4,c#5]@2, b4 ~",
D: "[c#5,e5] [g#4,b4]", E: "[~@16 e5@13 ~@3, [a4,c#5]@29 ~@3]/2", F: "[~@3 f#4@5]/2",
G: "[~@3 f#4@4 e4 f#4@4 e4@11 ~@9]/2", H: "[~@3 a4@22 ~@7]/2", I: "[~@3 b4@4 e5@2 ~@3 e5@10 ~@2 d#5@4 c#5 ~@3]/2",
J: "b4 ~", K: "~ e5, [a4,c#5]", L: "[g#4,b4]@3 e5", M: "~ d#5 b4@2, f#5 ~", N: "~@3 g#4@5 ~@4 g#4@4, ~ b4",
O: "[a4,c#5] [c#5,e5]", P: "[[g#4,b4]@8 ~@16 e5@13 ~@11, ~@8 [a4,c#5]@29 ~@11]/3",
Q: "[~@11 [e4,b4]@2 ~@2 [f4,b4]@2 ~@2 [f#4,b4]@2 ~@2 b4@2 a4@14 ~@9, ~@23 f#4@16 ~@9]/3", R: "[b4,d#5]",
S: "[g#4,b4]", T: "f#4", U: "~@8 e5@7 ~, g#4@15 ~, ~@4 b4@11 ~", V: "~ b4, f#5, ~ d#5@3", W: "[g#5@4 a5@11 ~]/2",
X: "~@12 e4@3 ~",
Y: "[f#4@4 g#4@3 ~ [b4,d#5]@16 [g#4,b4]@16 f#4@16 ~@8 e5@7 ~@9 b4@8 g#5@8, ~@56 g#4@15 ~@5 d#5@12 ~@8, ~@60 b4@11 ~ f#5@16 ~@8]/6", // B G#m
Z: "[a5@11 ~@5]/2", AA: "[~@3 [e4,b4]@2 ~@2 [f#4,b4]@2 ~@2 [g4,b4]@2 ~@2 [g#4,b4]@15 ~@2]/2",
AB: "~@3 [e4,b4]@2 ~@2 [f#4,b4]@2 ~@2 [g4,b4]@2 ~@2 [g#4,b4]", AC: "[g#4,b4]@7 ~",
AD: "[f#4@33 ~@2 a4@5 a4@13 ~@3 e5@24]/5", AE: "[~@3 b4@5 b4@17 ~@7]/2", AF: "[~@4 [d4,f#4,a4]@47 ~@13]/4",
})).s("gm_electric_guitar_jazz").gain(0.64)
// chords · piano
const piano = note(`<
~@5 A@2 B@2 C@2 D E C@2 D F@2 G@6 H I J@3 K@8 L@4 M N O P Q R S T@6 U@2 V W V W X Y@6 Z@3 AA AB@3 AC AD AE@6 AF AG J@3
AH AI@2 AJ AK@3 ~ AL@8 AM@4
>`.pickRestart({
A: "[~ [e3,g#3,b3]@2 [e3,g#3,b3]@2 [e3,g#3,b3]@2 [e2,g#3,b3,e4], e2@3 ~@5]/2", // E
B: "[b2 ~@3 [g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@2 ~@2]/2", C: "[e2,g#3,b3,e4]/2",
D: "[e2,g#3,b3,e4]", E: "[b2,b3,d#4,f#4]@8 [g#3,b3,e4]@5 ~@3",
F: "[[b2,b3,d#4,f#4]@8 ~@4 [e3,g#3,b3]@8 [e3,g#3,b3]@4 [e2,e3]@4 [e2,e3]@3 ~, ~ e2@2 ~]/2", // B E
G: "[[f#2,f#3]@3 ~ [g#2,g#3]@2 ~@6 [a3,c#4,e4]@7 ~ [c#4,e4] ~@7 [g#3,b3,e4]@8 [g#3,b3,e4]@3 ~@5 [d#4,f#4]@8 [b3,d#4,f#4]@2 ~@6 [e3,g#3,b3]@7 e2 [e3,g#3,b3]@3 ~@5 [a3,c#4,e4]@7 e3 [b3,e4]@3 ~ [b3,e4] ~@3 [g#3,b3,e4]@3 ~, ~@8 a2@12 a3@2 ~@22 a3@10 ~@34 g#3@3 ~@5, ~@19 e3@2 ~@3 e2@15 ~ b2@14 ~@18 a2@12 ~@12]/6", // F# G# A C#m E D#m B E …
H: "a3@8 a3@3 ~ a3@4, [a2,c#4,e4], e3@11 e3@5", I: "[a2,g3,c#4,e4]@15 ~",
J: "[~@4 [g#3,b3,e4]@8 [e3,g#3,b3]@8 [e3,g#3,b3,e4]@8 [e3,g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@3 ~, ~@12 e4@5 ~@19 e3@11 ~]/3", // E
K: "[~@4 [b3,d#4,f#4]@2 ~@6 [e3,g#3,b3]@8 [e3,g#3,b3]@8 [e3,g#3,b3]@8 [e2,g#3,b3,e4]@4 b2 ~@3 [g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@2 ~@2 [e2,g#3,b3,e4]@32 [e2,g#3,b3,e4]@16 [b2,b3,d#4,f#4]@8, b2@3 ~ e2@6 ~@54]/8", // B E B
L: "[[g#3,b3,e4]@5 ~@3 [e2,g#3,b3,e4]@32 [e2,g#3,b3,e4]@16 [b2,b3,d#4,f#4]@8]/4", // E B
M: "~@4 [e3,g#3,b3,e5,b5,e6]@7 ~ [e3,g#3,b3]@4, e2, ~@11 [e5,b5,e6]@5", // E E5
N: "[e5,b5,e6] ~@3 [e5,b5,e6] ~@3 [f#2,f#3,b5,e6]@3 [e5,b5,e6] [g#2,g#3]@2 ~@2, [e2,e3]@4 [e2,e3]@3 ~ e5 ~@7", // E5 Esus2 E5 G# E
O: "~@4 [a3,c#4,e4]@7 ~ [c#4,e4] ~@3, a2@6 a3 ~, ~@11 e3@2 ~@3", P: "~@4 [g#3,b3,e4]@8 [g#3,b3,e4]@3 ~, e2@15 ~",
Q: "~@2 [d#4,f#4]@4 [b3,d#4,f#4] ~, b2@7 ~, ~@2 a3@5 ~", R: "~@4 [e3,g#3,b3]@7 e2 [e3,g#3,b3]@3 ~",
S: "~@4 [a3,c#4,e4]@7 e3 [b3,e4]@3 ~, a2@3 ~", // A E5
T: "[[b3,e4] ~@3 [g#3,b3,e4]@3 ~ a3@8 a3@3 ~ a3@4 [a2,g3,c#4,e4]@15 ~@5 [g#3,b3,e4]@8 [e3,g#3,b3]@8 [e3,g#3,b3,e4]@8 [e3,g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@3 ~@5 [b3,d#4,f#4]@2 ~@2, g#3@3 ~@5 [a2,c#4,e4]@16 ~@52 e3@11 ~ b2@6 ~@2, ~@8 e3@11 e3@5 ~@28 e4@5 ~@39]/6", // E5 E A7 E B A
U: "[~@4 g#3@4 ~@4 e3@3 ~ e3@4 e3@4 d#3@4 c#3@2 ~@2, e2@15 e2@2 ~@15, ~ [b3,e4]@3 ~@4, ~ g#3 [g#3,b3] ~, ~@11 b2@5 ~@16]/2", // E5 G#m
V: "~@4 [b3,d#4,f#4]@8 [b3,d#4,f#4] ~@3, b2@3 ~", W: "~@4 [e3,g#3,b3,e4]@8 [e3,g#3,b3,e4] ~@3",
X: "~@4 b3@4 ~@4 [d#4,f#4]@3 ~, b2@11 b2@5, ~ [d#4,f#4]@2 ~, ~@8 b3@7 ~", // D#m
Y: "[e2@4 [e3,g#3,b3] ~@7 [a3,c#4,e4]@7 ~ [a3,c#4,e4]@4 [g3,c#4,e4]@4 g3@4 g3@3 e3 [g3,c#4,e4] ~@7 [g#3,b3,e4]@8 [e3,g#3,b3]@8 [e3,g#3,b3,e4]@8 [e3,g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@3 ~@5 [b3,d#4,f#4]@2 ~@2, ~@8 a2@16 a2@12 ~@40 e3@11 ~ b2@6 ~@2, ~@8 e3@11 e3@5 ~@4 [c#4,e4]@8 ~@16 e4@5 ~@39]/6", // E A C#dim E B C#m
Z: "[e2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,e4] e3 [g#3,b3,e4]@2 [g#3,b3,e4], ~@7 b3@2 ~@3]/3", // E C#m E
AA: "b2@3 ~ [b3,d#4,f#4]@4 ~@4 [g#3,b3,e4]@4, ~ e3", // B E
AB: "[~@2 [g#3,b3,e4]@4 [g#3,b3,e4]@3 ~ [g#3,b3]@3 ~@3 e3@2 [g#3,b3,e4]@4 [g#3,b3,e4]@2, e3@3 ~@2 e4 ~ [g#3,b3,e4]@2 ~@3]/3", // E G#m E
AC: "b2@4 [b3,d#4,f#4]@3 ~@5 [g#3,b3,e4]@3 ~, ~@8 e3@7 ~", AD: "~ g#3!2 [g#3,b3,e4], e2, ~ [b3,e4]@2 ~",
AE: "[[g#3,b3,e4]@4 [g#3,b3,e4]@2 ~@6 [b3,d#4,f#4]@8 [b3,d#4,f#4] ~@7 [e3,g#3,b3,e4]@8 [e3,g#3,b3,e4] ~@7 [b3,d#4,f#4]@8 [b3,d#4,f#4] ~@7 [e3,g#3,b3,e4]@8 [e3,g#3,b3,e4] ~@7 b3@4 ~@4 [d#4,f#4]@3 ~ e2@4 [e3,g#3,b3] ~@3, ~@8 b2@12 ~@20 b2@12 ~@20 b2@11 b2@5 ~@8, ~@19 [d#4,f#4]@2 ~@3, ~@80 b3@7 ~@9]/6", // E B E B E D#m E D#m
AF: "~@4 [a3,c#4,e4]@7 ~ [a3,c#4,e4]@4, a2, e3@11 e3@5", // A
AG: "[g3,c#4,e4]@4 g3@4 g3@3 e3 [g3,c#4,e4] ~@3, a2@3 ~, ~ [c#4,e4]@2 ~", // C#dim C#m
AH: "~@4 [b3,d#4,f#4]@2 ~@2 [e2,g#3,b3,e4]@7 ~, b2@3 ~@5", // B E
AI: "[~ [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4]@2 [g#3,b3,e4], e2@3 ~@5]/2", // E
AJ: "[g#3,b3]@2 [g#3,b3,e4]@4 [g#3,b3,e4] ~", AK: "[b2@2 [b3,d#4,f#4] ~ [e3,b3,e4]@13 ~@7]/3",
AL: "[~@12 [e3,g#3,b3]@8 [e3,g#3,b3]@8 [e3,g#3,b3]@8 [e2,g#3,b3,e4]@4 b2 ~@3 [g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@2 ~@6 [e3,g#3,b3]@8 [e3,g#3,b3]@8 [e3,g#3,b3]@8 [e2,g#3,b3,e4]@4 b2 ~@3 [g#3,b3,e4]@8 [g#3,b3,e4]@8 [g#3,b3,e4]@4, ~@2 e2@3 ~@13 e2@3 ~@11]/8", // E
AM: "[~@2 [g#3,b3,e4] ~ [e3,g#3,b3,e4]@28]/4", // E
})).s("gm_piano").gain(0.56)
// drums · kick
const kick = s("bd").struct(`<
~ A@16 B C D@5 E D A@3 C D@11 E D A@6 B C D@3 A@8 B C D@3 A@8 B C D@5 E D A@7 C D@12 ~@3
>`.pickRestart({
A: "x ~@7 x ~@2 x ~@3 x", B: "x ~@2 x ~@4 x ~@2 x ~@3 x", C: "x!2", D: "x ~@2 x ~@3 x!2 ~@7",
E: "x ~@2 x ~@3 x!2 ~@2 x ~@4",
})).gain(0.72)
// drums · snare
const snare = s("sd").struct(`<
~ A@17 B A@6 C A@3 D A@12 C A@7 B A@2 E A F A@7 B A@2 E A@9 B A@6 C A@7 D A@10 G H ~@3
>`.pickRestart({
A: "~ x ~ x", B: "~@4 x!2 ~ x ~@4 x ~@3", C: "~@4 x ~@7 x!2 ~ x", D: "~ x ~@2 x!2 ~ x ~@4 x ~@3",
E: "~@4 x ~@4 x ~@2 x!2 ~ x", F: "~@4 x ~@2 x!2 ~@2 x!3 ~ x", G: "~@4 x ~@6 x!2 ~@2 x", H: "~@3 x!3 ~ x ~@8",
})).gain(0.72)
// drums · hihat
const hihat = s("hh").struct(`<
A B C B C B C B C B C B C B C B C D@2 B E B E B F G B C B@3 E B E B E B E B E B F G B C B C B C D@2 B E B C@2 B C B C
B C D@2 B E B@2 C B C B C B C D@2 B E B E B F G B C B C B C B@3 E B E B E B E B E G H ~@3
>`.pickRestart({
A: "x!4", B: "x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x", C: "x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@3",
D: "x ~@3 x ~@2 x!2 ~@2 x!2 ~@2 x", E: "x ~@2 x!2 ~@3 x ~@2 x!2 ~@2 x", F: "x ~@2 x!2 ~@3 x ~@3 x ~@2 x",
G: "x ~@2 x!2 ~@2 x!2 ~@3 x ~@2 x", H: "x ~@2 x!2 ~@11",
})).gain(0.64)
// drums · open hat
const open_hat = s("oh").struct(`<
~@2 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A B@2 ~ C ~ C ~ D E ~ A ~@3 C ~ C ~ C ~ C ~ C ~ D E ~ A ~ A ~ A B@2 ~ C ~ A@2 ~ A ~ A
~ A B@2 ~ C ~@2 A ~ A ~ A ~ A B@2 ~ C ~ C ~ D E ~ A ~ A ~ A ~@3 C ~ C ~ C ~ C ~ C E F ~@3
>`.pickRestart({
A: "~@15 x", B: "~@3 x ~@12", C: "~@7 x ~@8", D: "~@7 x ~@3 x ~@4", E: "~@11 x ~@4", F: "~@7 x!2 ~@7",
})).gain(0.72)
// drums · crash
const crash = s("cr").struct(`<
~@5 A ~@12 B ~@7 A ~@2 B ~@13 A ~@6 B ~@3 A ~ A ~@6 B ~@3 A ~@8 B ~@7 A ~@3 A ~@2 B ~@3 B ~@3 B ~@3 B ~@3
>`.pickRestart({
A: "x", B: "~ x",
})).gain(0.72)
stack(bass, acoustic_guitar_steel, electric_guitar_jazz, piano, kick, snare, hihat, open_hat, crash)
More by Alan Jackson
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.