0:00/0:00
// The Letter — Joe Cocker
// 150 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 9 "Recorder" recorder (copy of ch 1 "Overdrive Guitar" overdriven guitar); ch 8 "Guitar Harminx" guitar harmonics (copy of ch 1 "Overdrive Guitar" overdriven guitar); ch 11 "Pan Flute" pan flute (copy of ch 3 "Shanai" shanai); ch 7 "Guitar Harminix" guitar harmonics (copy of ch 6 "Muted Guitar" electric guitar muted)
// note: Full arrangement: all 62 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(150/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · overdriven guitar · "Overdrive Guitar"
const overdriven_guitar = note(`<
A B C D E F G H I J K L M N G O P@2 Q R@3 S T U V B C D E N W X Y@2 Q R@3 S T U V B C D E N W X Z X Z X Z X Z X Z X Z
~
>`.pickRestart({
A: "~ e4 g#4 b4 [e4,g#4,e5] d5 c5 b4", B: "[c4,e4]@2 ~ [c4,e4]@4 ~", C: "[f4,a4] [c4,f4] [c4,f4]@4 ~@2",
D: "[e4,g4] [e4,g4]@2 [e4,g4]@2 c5!3", E: "[d4,f#4] [c4,f#4] [c4,f#4]@4 ~@2", F: "[d4,a4,c5]@3 ~ [e4,a4]@3 ~",
G: "[f4,a4]@3 ~ [f4,a4]@2 ~ e4", H: "[b3,d4]@2 ~ [b3,d4]@2 ~ [d4,g4,b4]@2", I: "[e4,a4,c5] [c4,e4,a4]@6 ~",
J: "[c4,e4]@3 ~ [c4,e4]@2 ~@2", K: "[c4,f4,c5] a4 [c4,f4,a4]@4 ~@2", L: "[e4,g4]@2 ~ [e4,g4]@4 ~",
M: "[d4,f4] [c4,f4] [c4,f4,a4]@4 ~@2", N: "[e4,a4,c5]@3 ~ [e4,a4]@3 ~", O: "[b3,d4]@2 ~ [b3,d4]@3 [d4,g4,b4]@2",
P: "[[e4,a4] [c4,e4] [c4,f4]@8 ~@4 c5 d5]/2", Q: "[g4,c5]@2 ~ [g4,b4]@4 ~",
R: "[[a4,c5] [a4,c5]@2 [g4,c5]@2 ~ [e4,g4] [g4,b4]@5 [g4,b4,d5]@8 ~@4]/3", S: "[g4,c5]@3 ~ [g4,b4]@3 ~",
T: "[a4,c5]@2 ~ [a4,c5]@2 ~@3", U: "[g4,b4]@2 ~ [g4,b4]@4 ~", V: "~ [e4,g#4]@2 ~", W: "[e4,a4]@3 ~ [f4,a4]@3 e4",
X: "[b3,d4]@2 ~ [b3,d4]@2 ~ [d4,g4]@2", Y: "[[e4,a4] [c4,e4] [c4,e4]@8 ~@4 c5 d5]/2",
Z: "[e4,a4] [c4,e4] [c4,e4]@3 ~@2 e4", // A5 C
})).s("gm_overdriven_guitar").gain(0.46)
// bass · acoustic bass
const bass = note(`<
A B C D E F G H I D J D E F G H I K L M N O L M P Q D C D E F G H I K L M N O L M P Q D C D E F G H I H I H I H I H I
H I ~
>`.pickRestart({
A: "e2@11 ~@5", B: "a2@5 ~ a2@5 ~@5", C: "f2@4 ~@2 c2 ~ f2 ~ f2@4 ~@2", D: "a2@5 ~@3 a2@5 ~@3",
E: "d2@4 ~@2 a2 ~ d3 ~ d3@4 ~@2", F: "a2@5 ~@3 a2@3 ~ a2@3 ~", G: "f2@5 ~@3 f2@3 ~ f2@3 ~", H: "e2@5 ~@3 e2@5 ~@3",
I: "a2@4 ~@2 e2 ~ a2 ~ a2@4 ~@2", J: "f2@4 ~@2 e2 ~ f2 ~ f2@4 ~@2", K: "a2@4 ~@2 e2 ~ a2@3 ~@5",
L: "c2@5 ~@3 g2@5 ~@3", M: "f2@5 ~@3 c3@5 ~@3", N: "g2@5 ~@3 g2@3 ~ d2@3 ~",
O: "g2 ~ d2 ~ g2 ~ d2 ~ g2 ~ d2 ~ g2 ~ d2 ~", P: "g2@5 ~@3 g2 ~ d2 ~ g2 ~ d2 ~", Q: "e2@8 ~@4 d3 ~ e3 ~",
})).s("gm_acoustic_bass").gain(0.41)
// chords · electric guitar muted · "Muted Guitar"
const electric_guitar_muted = note(`<
~ A B C D A E F A@2 B C G A H I A@2 J K L@2 M K L N A B L O A B I A@2 L K L P Q R L S A T C U A V I A W A I X I A I Y
~@3
>`.pickRestart({
A: "[c4,e4] ~@5 [c4,e4] ~@5 [c4,e4] ~@3", B: "[c4,f4] ~@5 [c4,f4] ~@5 [c4,f4] ~@3",
C: "[c4,g4] ~@5 [c4,g4] ~@5 [c4,g4] ~@3", D: "[c4,f#4] ~@5 [c4,f#4] ~@5 [c4,f#4] ~@3",
E: "f4 c4 ~@4 [c4,f4] ~@5 [c4,f4] ~@3", F: "[c4,e4] ~@5 [b3,d4] ~@5 [b3,d4] ~@3", G: "[c4,f#4] ~@5 [c4,f#4] ~@9",
H: "[c4,e4] [c4,f4] ~@4 [c4,f4] ~@5 [c4,f4] ~@3", I: "[b3,d4] ~@5 [b3,d4] ~@5 [b3,d4] ~@3",
J: "~@4 [e4,g4] ~@7 [e4,g4] ~@3", K: "[e4,a4] ~@5 [e4,g4] ~@5 [e4,g4] ~@3", L: "[e4,g4] ~@5 [e4,g4] ~@5 [e4,g4] ~@3",
M: "[e4,g4] ~@5 [e4,f4] ~@5 [e4,f4] ~@3", N: "[e4,g#4]@11 ~ [e4,g#4] ~@3",
O: "[d4,f#4] ~@5 [d4,f#4] ~@5 [d4,f#4] ~@3", P: "[d4,g4] ~@5 [d4,g4] ~@5 [d4,g4] ~@3",
Q: "~ g4 ~@4 [e4,g4] ~ [e4,f4] ~@3 [e4,f4] ~@3", R: "[e4,a4]@2 ~@4 [e4,g4]@2 ~@4 [e4,g4] ~@3", S: "[e4,g#4]@13 ~@3",
T: "[d4,f4] ~@7 [c4,f4] ~@3 [c4,f4] ~@3", U: "[c4,f#4] ~@5 [c4,f#4]@2 ~@4 [c4,f#4] ~@3",
V: "[c4,f4] ~@5 [c4,f4]@2 ~@4 [c4,f4] ~@3", W: "[b3,d#4] ~@7 [b3,d4] ~@3 [b3,d4] ~@3",
X: "[c4,e4] ~@5 [c4,e4]@2 ~@4 [c4,e4] ~@3", Y: "[c4,e4] ~@15",
})).s("gm_electric_guitar_muted").gain(0.51)
// chords · electric guitar muted · "Muted Guitar" · soft notes
const electric_guitar_muted_2 = note("<~@6 A ~@32 B ~@18 C D E F>".pickRestart({
A: "c4 ~@15", B: "~ e4 ~@14", C: "~@6 [c4,e4] ~@5 [c4,e4] ~@3", D: "[b3,d4] ~@5 [b3,d4] ~@5 [b3,d4] ~@3",
E: "[c4,e4] ~@5 [c4,e4] ~@5 [c4,e4] ~@3", F: "[b3,d4] ~@15",
})).s("gm_electric_guitar_muted").gain(0.2)
// drums · kick
const kick = s("bd").struct("<~ A B C B@3 A B@9 D B@2 E F A B@2 G B@8 D B@2 C B@4 G B@14 A ~@4>".pickRestart({
A: "x ~@2 x ~ x ~@2", B: "x ~@2 x ~ x ~ x", C: "x ~@4 x ~ x", D: "x ~@2 x ~@4", E: "x ~@2 x!2 ~@2 x",
F: "~ x ~ x!3 ~ x", G: "x",
})).gain(0.26)
// drums · kick · soft notes
const kick_soft = s("bd").struct("<~ A ~ B ~@3 A ~@14 A ~@14 B ~@19 A C@2 D ~>".pickRestart({
A: "~@7 x", B: "~@3 x ~@4", C: "x ~@2 x ~ x ~ x", D: "x ~@2 x ~ x ~@2",
})).gain(0.1)
// drums · snare
const snare = s("sd").struct("<~ A@16 B A@7 C A@8 B A@7 C A@14 D ~@4>".pickRestart({
A: "~ x ~ x", B: "~@2 x ~@2 x!3", C: "~@5 x!3", D: "~ x ~@2",
})).gain(0.26)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@57 [~@3 x] [~ x ~ x]!3 ~>").gain(0.1)
// drums · pedal hat
const pedal_hat = s("hh").struct("<~ A@24 B C A@15 ~ A@14 D ~@4>".pickRestart({
A: "x!4", B: "~@10 x ~@4 x", C: "~ x!3", D: "x",
})).gain(0.26)
// drums · pedal hat · soft notes
const pedal_hat_soft = s("hh").struct("<~@57 [~ x!3] [x ~@4 x ~@2 x ~@3 x ~@3] [x!4]!2 ~>").gain(0.1)
// drums · open hat
const open_hat = s("oh").struct("<~@12 A ~ A ~ A@2 ~@3 A ~@3 B ~@3 A ~@4 C ~@7 B ~@19>".pickRestart({
A: "~@7 x", B: "x", C: "~@15 x",
})).gain(0.26)
stack(
overdriven_guitar, bass, electric_guitar_muted, electric_guitar_muted_2, kick, kick_soft, snare, snare_soft,
pedal_hat, pedal_hat_soft, open_hat
)
More by Joe Cocker
With A Little Help From My Friends1968 · E major · 115 bpmUnchain My HeartA minor · 120 bpmYou Can Leave Your Hat OnD♭ major · 109 bpmSummer in the CityD major · 89 bpmCry Me a River (live)E minor · 130 bpmUp Where We BelongF major · 120 bpmDon't You Love Me Any MoreA major · 83 bpmDon't You Love Me AnymoreA♭ major · 82 bpm
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.