KeyE majorTempo115 bpm
0:00/0:00
// With A Little Help From My Friends — Joe Cocker
// 115 bpm, 3/4, key E major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 180 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/3)
// 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 · piano · "tk1"
const piano = note(`<
~@13 A@6 B@6 C@2 D@2 E@2 F@4 G H I@2 J@2 K L M N O@2 P@2 Q@2 R S T@2 U V W@2 X Y Z@2 AA AB AC@2 G H I@2 J@2 K AD M N
O@2 P@2 Q@2 R S T@2 U V W@2 X AE AF@2 AG AH@7 AI@2 AJ ~ AK@2 AL@2 AM@4 AN@7 AO AP AQ@2 AR AS AT@2 AO AP AQ@2 AR AS
AU@2 AO AP AQ@2 AR AS AT@2 AO AP AQ@2 AR AS AU@2 AV AP AQ@2 AW AS AT@2 AV AP AQ@2 AW AS AU@2 AX@4 AY@5 ~
>`.pickRestart({
A: "[[a1,g3,b3,d4]@8 a1@13 ~@3 [f#3,a3,d4]@8 f#3@8 ~@8 e3@8 ~@16 [e3,a3,c#4]@8 [f#3,a3,d4]@8 [e3,a3,c#4]@5 ~@3 [g3,b3,d4]@7 ~ [g3,b3,d4]@13 ~@3 [f#3,a3,d4]@7 ~ f#3@7 ~ f#3@5 a1@3, ~ [b3,d4]@2 ~ [a3,d4]@2 c#4@3 ~@9, ~@8 g3@8 ~@5 a1@24 a1@24 a1@22 ~@2 a1@24 a1@22 ~@5, ~@40 f#3@8 a3@16 a3@8 ~@56 [a3,d4]@15 ~, ~@7 e3@2 ~@9]/6", // G D A D A G D Bm …
B: "[e3@14 ~@10 [f#3,a3,d4]@12 [e3,a3,c#4]@9 ~@3 [g3,b3,d4]@7 ~ [g3,b3,d4]@13 ~@3 [f#3,a3,d4]@6 ~@2 [f#3,a3,d4]@13 ~@27 [e3,a3,c#4]@8 [f#3,a3,d4]@8 [e3,a3,c#4]@8, [a3,c#4]@23 ~@121, ~@16 e3@7 ~@73 [e3,a3,c#4]@24 ~@24, ~@19 a1@26 a1@24 a1@22 ~@2 a1@24 a1@26 ~]/6", // D A G D A D A
C: "[g3@16 g3@5 ~@3 [f#3,a3,d4]@23 ~, [a1,b3,d4]@21 a1@26 ~]/2", D: "[a3@24 a3@13 ~@11, [a1,e3]]/2",
E: "[~@21 a3@16 ~@11, a1@47 ~]/2", F: "[a1@23 ~]/4", G: "[a1,e3,a3,c#4]", H: "[g#1,g#3,b3,c#4,e4]",
I: "[[f#1,f#3,a3,b3,d4]@11 ~ [b0,a3,d4,f#4]@4 [c#1,c#2,a3,c#4,e4]@4 [d1,d2,a3,d4,f#4]@4, ~@22 b1@11 ~@15]/2", // Bm7 A D
J: "[[e2,a3,b3,d4,e4]@11 ~ [g#3,b3,d4,e4]@7 ~ [f#3,a3,d4]@4, e1, ~@11 e2@8 e2@5]/2", K: "[a1,a2,e3,a3,c#4]@11 a3",
L: "[d3,d4,f#4]@3 ~ [c#3,c#4,e4]@4 [b2,b3,d4]@3 a3, a3@16 a3@5 ~@3, ~@6 a4@10 c#3 ~@7", // D C#m Bm
M: "a3@7 ~@4 e4, a2, [c#4,e4]@19 c#4@5, ~@7 e3@5, ~@2 a3", // C#m
N: "[b3,c#4,e4]@7 ~ [b3,c#4,e4]@3 g#2, g#2@7 ~, g#3@13 ~ g#3@10", // C#m7
O: "[[f#2,f#3,a3,b3,d4]@11 ~ [b0,a3,d4,f#4]@4 [c#1,c#2,a3,c#4,e4]@4 [d1,d2,a3,d4,f#4]@4, ~@22 b1@11 ~@15]/2", // Bm7 A D
P: "[a3@7 ~@5 [e2,b3,d4]@7 ~ [f#3,a3,b3,d4]@4, [e1,e2] e1, [d4,e4]@21 ~ e4@17 ~@9, ~@7 f#3@5 g#3@4 ~@3 e2@5, ~@16 a3@9 ~@23]/2", // E7 Bm7 E Dsus2
Q: "[[a3,c#4]@11 ~ [e3,a3,c#4]@4 [e1,f#3,a3,d4]@4 [f#1,e3,a3,c#4]@4, a1@21 ~ a1@11 ~@15, e3 ~@2]/2", // A D F#m7
R: "d3@8 d3@5 ~@9 b3@2, g1, g3@14 d3@5 d3@5, b3@13 ~ b3@8 ~@2, ~@2 g3", S: "[f#3,a3]@13 ~ [f#3,a3,d4]@10, d2, d3 ~@2",
T: "[[a2,a3,c#4]@11 ~ [a3,c#4,e4]@4 [a3,d4,f#4]@4 [a3,c#4,e4]@4, e3@8 ~@14 a2@11 ~@15]/2", // A D A
U: "d3@4 d3@3 ~@4 b3, g2, g3@19 g3@5, b3@13 ~ [b3,d4]@10, ~@2 d3", // Bm
V: "[f#3,a3]@7 ~ [f#3,a3,d4]@4, d2@13 ~ d2@10, d3 ~@2", // F#m D
W: "[[a3,c#4]@22 ~@2 e3@5 ~@3 e2@6 ~@2 f#2@8, a2@21 ~ a2@8 e3@8 e3@8 ~@2, e3@2 ~ [a3,c#4]@3]/2", // A
X: "d3@4 d3@4 [g3,b3]@3 d3, g2, [g3,b3]@16 d3@5 ~@3", Y: "d3@4 ~@7 f#3, d2, [f#3,a3]@19 a3@5, ~@7 [d3,d4]@5",
Z: "[[a3,c#4]@11 ~@5 e2@4 f#2@4, a2@21 ~ a2@11 ~@15, e3@2 ~ [e3,a3,c#4]@3]/2", AA: "[g3,b3,d4] b3 [g3,b3,d4], g2",
AB: "[f#3,a3,d4]!2 [a3,d4], d2, ~@16 f#3@5 ~@3", AC: "[[a2,e3,a3,c#4]@16 [e2,e3]@3 [f#2,f#3] [a2,a3]@4]/2",
AD: "[d3,d4,f#4]@3 ~ [c#3,c#4,e4]@4 [b2,a3,b3,d4]@4, a3@2 ~, ~ a4@2 ~", // D C#m Bm7
AE: "d3@4 ~@7 f#3, f#2, [f#3,a3]@19 a3@5, ~@7 [d3,d4]@5", // F#m D
AF: "[~ a2@21 ~@11 e2@8 f#2@7, ~ [a3,c#4]@24 [e3,a3,c#4]@23, ~ e3@16 ~@5 a2@11 ~@15]/2", // A
AG: "~ [g3,b3,d4]@8 b3@8 [g3,b3,d4]@7, ~ g2@23", // G
AH: "[~ [f#3,a3,d4]@8 [f#3,a3,d4]@8 a3@8 [a1,a3]@72 a4@8 [c#2,c#4,c#5]@8 [e2,e4,e5]@7 ~ [a3,c#4]@8 [a3,c#4]@8 ~@8 [a3,c#4,f#4]@8 [a3,c#4,f#4]@8 [a3,c#4,f#4]@5 f#1@2, ~ f#2@48 ~@48 a1@71, ~@17 d4@48 ~@32 a3@24 f#4@16 [a3,c#4,f#4]@8 ~@23, ~@17 f#3@5 ~@3 [a0,a2,e3]@76 ~@20 f#1@21 f#1@24 ~@2]/7", // D A C# E A F#m A5
AI: "[~ [e1,g#3,b3,e4]@5 [a3,c#4,f#4]@10 ~ [c#4,f#4]@7 ~ [a3,c#4,f#4]@7 ~ [a3,c#4,f#4]@7 ~ [c#4,f#4]@5 [f#1,a3] ~, ~@3 f#1@19 ~@2, ~@17 a3@4 ~@20 a3@3 ~@4]/2", // E F#m F#5 F#m F#5 F#m
AJ: "~ [a1,a3,a4]@5 ~@18", AK: "[~@33 [c#2,c#4,c#5]@8 [e2,e4,e5]@7, ~@22 a3@19 ~@7, ~@25 [a1,a4]@16 ~@7]/2",
AL: "[~ a3@8 a3@8 a3@8 a3@8 ~@8 c#4@5 f#1@2, ~ f#1@45 ~@2, ~ [c#4,f#4]@24 f#4@22 ~, ~@25 c#4@16 ~@7, ~@33 a3@14 ~]/2", // F#5
AM: "[~ [e1,g#3,e4]@7 ~ f#1@13 ~@3 [a3,c#4,f#4]@24 g#3@8 g#3@8 ~@8 g#3@8 g#3@8 [g#3,b3,e4]@5 e1@2, ~ b3@4 ~@4 [a3,c#4,f#4]@16 ~@24 [b3,e4]@16 [g#3,b3,e4]@8 [b3,e4]@16 ~@7, ~@22 f#1@27 e1@21 e1@24 ~@2]/4", // E F#m E F#m E5 E E5
AN: "[~ [g#3,d4,e4]@8 ~@16 g#3@8 ~@5 e1@8 ~@3 [d4,e4,g#4]@8 ~@8 [d4,e4,g#4]@8 [d4,e4,g#4]@8 ~@5 e1@8 ~@3 [g#4,b4]@8 [d4,e4,g#4,b4]@8 ~@8 [d4,e4]@8 [d4,e4]@16 [e1,e4,e5]@5 ~@11 e1@2 f1@2 ~ f#1@2, ~ e1@13 e1@8 e1@16 ~@8 e1@16 e1@24 ~@8 e1@24 e1@27 ~@23, ~@9 [g#3,d4,e4]@8 [d4,e4]@8 [d4,e4]@22 ~@10 [d4,e4,g#4]@8 ~@16 [d4,e4]@15 ~@17 [d4,e4,g#4,b4]@8 [g#4,b4]@24 ~@23]/7", // E7 G#m E7 Dsus2 E E7 Dsus2 E7 …
AO: "~ d3@8 d3@5 ~@8 b3@2, ~ g1@23, ~ g3@16 g3@7, ~ b3@13 b3@8 ~@2, ~@14 d3@5 d3@5",
AP: "~ [f#3,a3]@13 [f#3,a3,d4]@10, ~ d2@23, ~ d3@8 ~@15", // F#m D
AQ: "[~ [a2,a3,c#4]@21 ~@3 [a3,c#4,e4]@8 [a3,d4,f#4]@8 [a3,c#4,e4]@7, ~ e3@8 ~@13 a2@11 ~@15]/2", // A D A
AR: "~ d3@8 ~@13 b3@2, ~ g2@23, ~ g3@18 g3@5, ~ b3@13 [b3,d4]@10, ~@9 d3@8 d3@7", // Bm
AS: "~ d2@13 ~@3 [f#3,a3,d4]@7, ~ [f#3,a3]@16 ~@7, ~ d3@8 ~@5 d2@10", // D F#m
AT: "[~ a2@21 ~@3 e3@5 ~@11 f#2@7, ~ [a3,c#4]@24 [a3,c#4]@23, ~ e3@16 ~@5 a2@8 e3@8 e3@8 ~@2, ~@33 e2@8 ~@7]/2", // A
AU: "[~ a2@21 ~@3 e3@5 ~@11 f#2@6 ~, ~ [a3,c#4]@24 [a3,c#4]@22 ~, ~ e3@16 ~@5 a2@8 e3@8 e3@8 ~@2, ~@33 e2@8 ~@7]/2", // A
AV: "~ d3@8 d3@5 ~@8 b3@2, ~ g1@23, ~ g3@16 g3@7, ~ b3@13 b3@8 ~@2, ~@14 d3@5 ~ d3@4",
AW: "~ d3@8 ~@13 b3@2, ~ g2@23, ~ g3@19 g3@4, ~ b3@13 [b3,d4]@10, ~@9 d3@8 d3@7", // Bm
AX: "[~ [g1,d3,g3,a3,d4]@48 [d1,d3,f#3,a3,d4]@47]/4", AY: "[~ [a1,e3,a3,b3,e4]@104 ~@15]/5",
})).s("gm_piano").gain(0.32).pan(0.2)
// chords · piano · "tk1" · soft notes
const piano_soft = note(`<
~@13 A ~@13 B@8 ~@8 C ~@3 D E F ~@2 G H ~@2 I F J ~ K F ~ L M ~@14 D E F ~@2 G H ~@2 I F J ~ N O ~ P Q@3 ~@14 R ~ S T
~ U ~@4 V W ~@2 X O J ~ V W ~@2 X O Y ~ V W ~@2 X O J ~ V W ~@2 X O Y ~ V W ~@2 X O J ~ V W ~@2 X O Y ~@10
>`.pickRestart({
A: "~@2 g3", B: "[~@16 a2@16 ~@5 a3@8 a2@19 a2@16 ~@11 a2@97 ~@4, ~@32 a2@13 a3@24 ~@11 a2@11 ~@101, ~@43 a3@52 ~]/8",
C: "b2 ~@11", D: "~@19 d4@5", E: "~@8 g#3@7 ~@9", F: "~@2 e3", G: "~@4 d3@7 f#3", H: "~@8 e3@8 e3@7 ~", I: "~ d3@2",
J: "~@11 e3", K: "~@8 d3@5 ~@11", L: "~ [g3,d4] ~", M: "~@11 f#3", N: "~@9 d3@5 ~@10", O: "~@17 e3@7",
P: "~@9 [g3,d4]@8 ~@7", Q: "[~@11 f#3@24 ~]/3", R: "~ a#3@2 ~@21", S: "~@17 g#3@7", T: "~@9 g#3@14 ~", U: "~@3 g#4@5",
V: "~@9 d3@13 f#3@2", W: "~@9 e3@8 e3@7", X: "~@3 d3@5", Y: "~@22 e3 ~",
})).s("gm_piano").gain(0.2).pan(0.2)
// bass · fretless bass · "tk2"
const bass = note(`<
~@13 A B@3 C B@2 D A B@3 C B E F E F E G F G H I J K L M N O P Q R S L T U@2 V W X Y V W Z AA AB W AC@2 AD AE AF@2 H I
J K L M N O P Q R S L T U@2 V W X Y V W Z AA AB W AG@2 AH AI AJ@7 AK AL ~ AM AN AO AP AQ AR AS AT AS AU AS AT AS AV AW
AX AY AZ BA AX AY AZ BB AX AY AZ BA AX AY AZ BB AX AY AZ BA AX AY AZ BB AX AY AZ BA AX AY AZ BB AX AY AZ BA AX AY AZ
BB AX AY AZ BA AX AY AZ BB BC@4 BD@6
>`.pickRestart({
A: "a1@7 ~ a1@16", B: "a1@20 e1@3 ~", C: "a1@7 ~ a1@12 e1@4", D: "a1@7 ~ a1@12 e1@2 ~@2", E: "a2@16 e2@7 ~",
F: "a2@2 e2", G: "a2@15 ~ e2@8", H: "a2", I: "g#2@23 ~", J: "f#2@21 ~ f#1@2", K: "b1@8 c#2@8 d2@7 ~", L: "e2",
M: "e1@16 f#1@5 ~ e1@2", N: "a1", O: "d2@8 c#2@8 b1@7 ~", P: "a1@21 ~ a2@2", Q: "g#2@21 ~ g#1@2", R: "f#1@21 ~ f#2@2",
S: "b1@8 c#2@8 d2@5 ~ b1@2", T: "e1@10 ~ e1", U: "[a1@5 f#1]/2", V: "g1@21 ~ a1@2", W: "d2@21 ~ e2@2", X: "a1@11 e2",
Y: "a2@5 ~ e2@2 e1@8 f#1@7 ~", Z: "a1@21 ~ e2@2", AA: "c#3@7 ~ b2@7 ~ a2@7 ~", AB: "g2@6 d2@2 g1@13 ~ a1@2",
AC: "[a1@28 ~@2 a1@2 e1@8 f#1@7 ~]/2", AD: "g1@23 ~", AE: "d2", AF: "[a1@5 e2]/2",
AG: "[~ a1@28 ~ a1@2 ~ e1@8 f#1@7]/2", AH: "~ g1@23", AI: "~ d2@23",
AJ: "[~ a1@72 ~@8 c#2@7 ~ e2@7 ~ f#2@20 ~ c#2@2 ~ f#1@21 c#2@2 ~ e2@6 f#2@14 ~ c#2@2, ~@73 a1@72 ~@23]/7",
AK: "~ f#1@14 ~@2 f#1@2 g1@2 ~ g#1@2", AL: "~ a1@4 ~@19", AM: "~@11 a2", AN: "~ a1@8 c#2@7 ~ e2@7",
AO: "~ f#1@21 c#2@2", AP: "~ f#2@21 c#2@2", AQ: "~ e1@7 ~ f#1@13 c#2@2", AR: "~ f#2@16 c#2@2 d2@3 d#2@2",
AS: "~ e2@21 b1@2", AT: "~ e1@21 b1@2", AU: "~ e1@18 b1@2 ~ d2@2", AV: "~ e1@15 ~ c#2@2 d2@3 d#2@2",
AW: "~ e2@4 ~@12 e1@2 f1@2 ~ f#1@2", AX: "~ g1@21 a1@2", AY: "~ d2@21 e2@2", AZ: "~ a1@21 e2@2",
BA: "~ a2@5 e2@2 ~ e1@8 f#1@7", BB: "~ c#3@7 ~ b2@7 ~ a2@7", BC: "[~ g1@48 d1@47]/4", BD: "[~ a1@120 ~@23]/6",
})).s("gm_fretless_bass").gain(0.4)
// chords · drawbar organ · "tk3"
const drawbar_organ = note(`<
~ A@4 B C D E F G H@2 B C D E F G H@2 B C D E F G I@8 ~@24 J K@3 L M@3 ~@54 N O P ~ Q O P ~ Q O P ~ Q O P ~ Q O P ~ Q
O P ~ Q O P ~ Q O P ~ Q O P ~ Q O P ~ Q O P ~ Q O P ~ Q ~@10
>`.pickRestart({
A: "[a2,a3]/4", B: "~@2 b4, [a3,g5], ~@4 d5@7 ~", C: "~@2 a4, a3, f#5@7 ~, ~@4 d5@7 ~", D: "~ c#5 a4, a3, e5@5 ~@3",
E: "e5@4 c#5@4 a4@4 b4@4 c#5@4 e5@3 ~, a3", F: "~@2 b4, [a3,g5], ~ d5@2", G: "~@2 a4, a3, f#5@7 ~@5, ~ d5@2",
H: "[~@24 e5@4 c#5@4 a4@4 b4@4 c#5@4 e5@3 ~, a3 a3, e5@16 a4@11 ~@21, ~@8 c#5@13 ~@27]/2", I: "[[a2,a3]@191 ~]/8",
J: "~@17 b4@7, g5@23 ~, ~@3 d5@5",
K: "[~@17 a4@8 ~@24 e5@4 c#5@4 a4@3 b4@4 c#5@4 ~ e5@3, ~ f#5@22 ~@2 e5@22 ~@25, ~@9 d5@16 ~@7 c#5@17 ~@23, ~@10 a4@3 ~@5]/3",
L: "~@17 b4@7, ~ g5@23, ~ d5@2", M: "[~@25 e5@47, ~ f#5@15 a4@56, ~@9 d5@14 ~@49]/3",
N: "~ e5@3 [c5,d5] [a4,b4] [e4,f4,g4] [b3,c4,d4] [g3,a3] f3 ~@14", O: "~ [d5,g5,b5]@12 ~ [d5,g5,b5] ~@2 [d5,g5,b5]@7",
P: "~ [d5,f#5,a5]@13 [d5,f#5,a5] ~@2 [d5,f#5,a5]@4 ~ [c#5,e5,a5]@2", // D A
Q: "~ [c#5,e5,a5]@7 ~ [d5,e5,a5]@6 ~@2 [c#5,e5,a5]@6 ~", // A Dsus2 A
})).s("gm_drawbar_organ").gain(0.2).pan(0.8)
// chords · string ensemble 1 · "tk4"
const string_ensemble_1 = note(`<
~@67 A B C D E F@2 G H I J@2 K@2 L@2 M N O@2 P Q R@2 S T U@3 V W@4 ~@12 X@8 Y Z AA AB@2 AC AD AE@3 AA AB@2 AC AD AE@3
AA AB@2 AC AD AE@3 AA AB@2 AC AD AE@3 AA AB@2 AC AD AE@3 AA AB@2 AC AD AF@4 AG@7 ~
>`.pickRestart({
A: "a2", B: "g#2", C: "f#2", D: "b1 c#2 d2", E: "e2", F: "[~ a2, e3]/2",
G: "[d3,a3,f#4]@8 [c#3,e4]@7 ~ [b2,d4]@8, ~@8 a3@15 ~", H: "[a2,e3,c#4]", I: "[c#3,g#3,e4]", J: "[b2,f#3,d4]/2",
K: "[[f#3,a3]@23 ~ [e3,g#3]@24, [e2,d4]]/2", L: "[e3@23 ~ a3@7 ~ [b3,d4]@8 [a3,c#4]@8, a2@47 ~, c#4@2 ~]/2",
M: "[g2,d3,b3]", N: "[f#3,a3,d4]", O: "[a1@32 e1@7 ~ f#1@8, [e3,a3,c#4]]/2", P: "[g1,d3,g3,b3]", Q: "[d2,d3,f#3,a3]",
R: "[a1,c#3,e3,a3]/2", S: "[g2,b3,d4,g4]", T: "[f#2,a3,d4,f#4]",
U: "[~ [a3,c#4,e4]@32 [b3,d4,e4]@7 ~ [a3,c#4,e4]@7 ~ [g2,g3,b3,d4]@23, ~ a2@48 ~@23]/3", // A E7 A G
V: "~ [f#2,a3,d4]@23, ~ f#3@19 ~@4", W: "[~ [a1,a2]@75 ~@20, ~ a4@72 ~@23]/4", X: "[~ e4@48 b4@48 e5@48 b5@47]/8",
Y: "~ e6@4 ~@19", Z: "~ [g2,d3,b3]@23", AA: "~ [f#3,a3,d4]@23", AB: "[~ a1@32 e1@7 ~ f#1@7, ~ [e3,a3,c#4]@47]/2",
AC: "~ [g1,d3,g3,b3]@23", AD: "~ [d2,d3,f#3,a3]@23", AE: "[~ [a1,c#3,e3,a3]@48 [g2,d3,b3]@23]/3",
AF: "[~ [a1,c#3,e3,a3]@48 [g2,d3,a3]@47]/4", AG: "[~ [d2,a2,f#3]@48 [e3,b3]@106 ~@13, ~@49 a2@48 ~@71]/7",
})).s("gm_string_ensemble_1").gain(0.25)
// chords · brass section · "tk5"
const brass_section = note(`<
~@13 A B C@2 D E F@2 G H I@2 J H K@4 ~@69 L M@2 N@2 O ~@2 P Q@2 R@2 S@2 T@2 S@2 U@2 V W X Y@2 Z AA AB@2 W X Y@2 Z AA
AB@2 W X Y@2 Z AA AB@2 W X Y@2 Z AA AB@2 W X Y@2 Z AA AB@2 W X Y@2 Z AA AB@2 ~@10
>`.pickRestart({
A: "[g4,b4,d5]@23 ~", B: "[f#4,a4,d5]@11 ~", C: "[[e4,a4,c#5]@23 ~]/2", D: "[g4,b4,d5]@11 ~", E: "[f#4,a4,d5]@23 ~",
F: "[[e4,a4,c#5]@15 ~]/2", G: "[d4,g4,b4]@23 ~", H: "[d4,f#4,a4]@23 ~", I: "[[c#4,e4,a4]@47 ~]/2",
J: "[d4,g4,b4]@11 ~", K: "[[a2,a3], e4@3 ~]/4", L: "~ [a3,a4]@8 [c#4,c#5]@8 [e4,e5]@6 ~",
M: "[~ [c#4,a4,f#5]@46 ~]/2", N: "[~ [b3,e5]@5 [c#4,a4,f#5]@41 ~]/2", O: "~ [a3,a4,a5]@5 ~@18",
P: "~ [a3,a4]@7 ~ [c#4,c#5]@8 [e4,e5]@5 ~@2", Q: "[~ [c#4,a4,f#5]@47]/2",
R: "[~ [b3,e5]@5 ~@3 [c#4,a4,f#5]@35 ~@4]/2", S: "[~ [b3,g#4,e5]@47]/2", T: "[~ [b3,g#4,e5]@46 ~]/2",
U: "[~ [b3,g#4,e5]@41 ~@6]/2", V: "~ [e4,e5,e6]@4 ~@19", W: "~ [d4,b4,g5]@22 ~", X: "~ [d4,a4,f#5]@23",
Y: "[~ [c#4,a4,e5]@40 ~@7]/2", Z: "~ [d4,b4,g5]@23", AA: "~ [d4,a4,f#5]@22 ~", AB: "[~ [c#4,a4,e5]@41 ~@6]/2",
})).s("gm_brass_section").gain(0.46)
// other · distortion guitar · "tk6"
const distortion_guitar = note(`<
~@13 A B C@2 A B C@2 D E F@2 D E G@5 ~@67 H I J@2 K@2 L ~@2 M N@2 O@2 P@4 Q@2 R@2 S T U V@3 U V@3 U W@2 X Y Z AA AB@4
AC AD AE@3 ~ AF AG AH@2 AI@5 AJ AK AL AM AN@2 AO AP@2 AQ AR AS@2 AT@2 AU@7 ~
>`.pickRestart({
A: "g5@23 ~", B: "f#5", C: "[e5@11 ~]/2", D: "g4@23 ~", E: "f#4", F: "[e4@11 ~]/2", G: "[[a2,e3]@97 ~@23]/5",
H: "~@13 c4 b3 [a3,a#3] g#3 [f#3,g3] f3 [d#3,e3] d3 [c3,c#3] b2 a#2", I: "~ a2@8 c#3@7 ~ e3@7", J: "[~ f#2@47]/2",
K: "[~ e3@4 ~ f#3@33 ~@9]/2", L: "~ [e3,a3]@11 ~@12, ~ g3 ~@22", M: "~ a2@7 ~ c#3@8 e3@3 ~@4", N: "[~ f#3@46 ~]/2",
O: "[~ e3@4 ~ f#3@42]/2", P: "[~ [e2,b2]@48 [e2,b2]@46 ~]/4", Q: "[~ b2@45 e2 ~, ~ e2@43 ~@4]/2",
R: "[~ [e2,b2]@47]/2", S: "~ [e2,b2]@10 ~@6 e2@2 f2@2 ~ f#2@2", T: "~ g2@22 ~", U: "~ d2@23",
V: "[~ [a1,e2]@48 g2@23]/3", W: "[~ [a1,e2]@31 ~ e2@2 f#2@2 ~ a2@2 ~ b2@5 a2 ~]/2", X: "~ b2@23", Y: "~ a2@22 ~",
Z: "~ f#3@7 ~ a3@7 ~ f#3@7", AA: "~ a3@8 f#3@7 ~ a3@6 ~",
AB: "[~ d5@2 c#5@2 ~ d5@26 ~ d5@2 ~ c#5 ~ d5@2 ~ c#5@2 ~ e5@18 ~ a4@27 ~@6]/4", AC: "~ g5@23", AD: "~ f#5@23",
AE: "[~ e5@33 ~ f#5@4 ~@2 a5@3 a5@16 ~ c#6@8 ~@3]/3", AF: "~ a5 ~@2 a4@2 ~@3 c#5@7 ~ a4@6 ~",
AG: "~ a4@7 ~ b4@6 ~@3 c#5@5 ~", AH: "[~ b4@13 ~@2 c5 ~ a4@3 ~ a4@16 ~ a4@4 ~ a4@3 ~, a4@2 ~@15 b4@2 ~@29]/2",
AI: "[~ c#5@5 ~ e5@2 ~@2 f#5@4 ~@2 a5@3 ~@2 c#6@4 ~@2 e6@3 ~@2 e6@46 ~@15 d6@6 ~@2 a5 ~@2 c6@5 ~@3 a5@3 ~@4]/5",
AJ: "~ a5@5 ~@3 f#5@5 ~@3 c5@5 ~@2", AK: "~ b4@13 a4@2 ~@4 a4@2 ~@2", AL: "~ a4@8 b4@6 ~@9",
AM: "~@9 a4@3 ~@5 a4@3 ~@4", AN: "[~ a4@7 ~ b4@6 ~@2 a4@15 ~ f#4@7 ~@8]/2", AO: "~@11 a3",
AP: "[~ g2@2 ~@30 a2@15, ~ a2@30 ~@17, ~@17 e3@31]/2", AQ: "~ [g2,d3]@23", AR: "~ [d2,a2]@23",
AS: "[~ [e2,a2]@46 ~]/2", AT: "[~ [g1,d2]@47]/2", AU: "[~ [d2,a2]@48 [a1,e2]@116 ~@3]/7",
})).s("gm_distortion_guitar").gain(0.29)
// drums · kick
const kick = s("bd").struct(`<
~@12 A B A C A B A D A B A C A B A E ~@14 F G ~ G F E ~ E F G ~ E ~ G ~ G ~ E ~ E ~ E ~ E F E ~ E H E ~ G H E F E ~ E
~ E F E F E F D F G F G ~ I J I@3 ~ F ~ I F K F I ~@2 L I F M ~ N F M F N F N F I@2 F I F O F P F I F I F O F P F I F
I F O F P F I F I F O F P F I F I F O F P F I F I F O F P F I ~ I ~ Q R S ~@3
>`.pickRestart({
A: "~@5 x", B: "x ~ x ~@2 x", C: "x ~@4 x", D: "x ~ x", E: "x", F: "~@11 x", G: "x ~@10 x", H: "~@2 x", I: "~ x ~@22",
J: "~@17 x ~@6", K: "~ x ~@4 x ~@17", L: "~ x ~@7 x ~@7 x ~@6", M: "~ x ~@7 x ~@14", N: "~ x ~@7 x ~@12 x ~",
O: "~ x ~@15 x ~@6", P: "~ x ~@20 x ~", Q: "~@23 x", R: "~ x!7", S: "~ x ~@4 x ~@5 x ~@11",
})).gain(0.48)
// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
~@44 A ~@2 A@3 ~@2 A ~@3 A ~@2 A@2 ~ A ~ B ~@3 A ~ C ~@3 C ~@3 A ~ A ~@4 A ~ C ~@36 A ~ C ~@5 A ~ C ~@5 A ~ C ~@5 A ~
C ~@5 A ~ C ~@5 A ~ C ~@7 D ~@5
>`.pickRestart({
A: "~@11 x", B: "~@2 x", C: "~@7 x ~@4", D: "~ x ~@8 x ~",
})).gain(0.3)
// drums · rim
const rim = s("rim").struct("<~@42 A ~ B ~ B ~ B ~@17 A ~@113>".pickRestart({
A: "~@2 x", B: "x",
})).gain(0.48)
// drums · snare
const snare = s("sd").struct(`<
~@11 A B ~ A ~ C ~ A ~ D ~ A ~ C ~ A ~@23 A ~ A ~ A ~ A ~ E ~ A ~ A ~@5 A ~ A ~ A ~ A ~ A ~ A ~ A ~ F ~ A ~ A ~ A ~ E
~ A ~ G ~@5 H ~ G ~ G@2 ~ I J ~ G ~ K ~ G ~ G ~ G ~ H ~@2 G ~ G ~ G ~ K ~ G ~ G ~ G ~ K ~ G ~ G ~ G ~ K ~ G ~ G ~ G ~
K ~ G ~ G ~ G ~ K ~ G ~ G ~ G ~ K ~@10
>`.pickRestart({
A: "x", B: "x!5 ~", C: "x!2", D: "x ~@2 x!2 ~", E: "x ~@6 x ~@4", F: "x ~ x", G: "~ x ~@22", H: "~ x ~@7 x ~@14",
I: "~@11 x", J: "~ x ~@7 x ~@7 x ~@6", K: "~ x ~@12 x ~@9",
})).gain(0.54)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@11 [~ x!5] ~@8 [~ x!2 ~@3] ~@29 [~ x ~] ~@129>").gain(0.3)
// … 98 more lines
More by Joe Cocker
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.