0:00/0:00
// Jeremy Bender — Emerson, Lake & Palmer
// 150 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 65 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 · "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 · "Right Hand"
const piano = note(`<
A B C D A B C E F G H I J K L M N O P Q R S T U F G H I J K L M V W V X V Y V X Z AA@2 AB AC AD AE AF F G H I J K L M
A B C D A B AG@3
>`.pickRestart({
A: "[f#4,d5] b4 a4 [a3,f#4]@2 [a3,e4] d4 b3", B: "a3 d4@2 b3 [g3,d4]@3 e4, g3 ~",
C: "f#4 a4 ~ c#4 b4 ~ d4 b3, [b3,e4] d5 d4 ~, ~@5 g4@3", D: "d4 b3 d4 [d4,g4] b3 c#4 [a3,e4]@2, g4@3 ~ e4@2 ~@2",
E: "d4 b3 [c#4,a4]@2 [a3,d4,f#4]@4, g4 ~@3", F: "d5!3 ~@2 a4!3, a4@3 [f#4,b4]@5",
G: "[d4,f#4] e4 d4 e4@2 f#4@3, ~@3 a3@5", H: "f#4 a4@2 ~@2 a4 b4 a4, c#4@3 d4@5, ~@3 b4@3 ~@2",
I: "b4 a4 f#4 c#4@5, d4@3 ~@5", J: "[f#4,d5] [f#4,d5]@2 ~@2 a4!3, ~@3 f#4@5", K: "f#4 e4 d4 e4@2 f#4@3, d4@2 ~ a3@5",
L: "f#4!2 a4!2 b4 a4 f#4 a4, c#4 d4", M: "a4 f#4 [c#4,a4]@2 a3@4, b3 ~@3", N: "f4 f#4 d5 g#4 a4 f#5 d5 b4",
O: "a4 f#4 d4@2 e4@2 d4 e4", P: "f#4 a4!2 b4 a4 f#4 e4 d4, ~@2 d5 a4", Q: "f#4 d4 f#4@2 [e4,a4]@4, d5 ~@3",
R: "d5!2 a4!2", S: "d4@2 d4@2 a4@2 d5 e5", T: "e5 f#5 a5@4 b5@2 a5@2 f#5@2 d5@2 e5@2, a5 ~@3 d6@4",
U: "f#5 d5 [e5,a5]@2 f#5@4, a5 ~@3", V: "b5 a5 g5 f#5 e5 d5 b4 g4, d6@3 a5@3 d5@2",
W: "d5 a5 ~@2 a4@2 d4@2, g4!2 ~@2, ~@3 f#5@4 ~", X: "d5 a5 g4@2 f#5@4, g4 ~@3", Y: "d5 a5 g4@2 a4@2 d4@2, g4 ~ f#5@2",
Z: "~ c#5 f#5@2 g4 c#5@2 f#4", AA: "[b4@2 b3@2 c#4 d4!2 e4 e4 ~ a4!2 b4 d5 c#5 a4, ~@2 a4@3 ~@3, ~@9 f#4@3 ~@4]/2",
AB: "b4 g#4 e4 d4 c#4@4, d5 ~", AC: "~ a5 c#6 f#5 d5 c5 b4@2", AD: "f#5 a4 a4@2 b4@2 d5@2, ~ a4",
AE: "d5@2 d5 c#5 d5 a5 f#5 d5, a4@4 ~ a4@3", AF: "f#5 d5 a5@2 f#5@4, a5 ~@3",
AG: "[f#4@2 a4@2 ~@2 c#4@2 b4@2 ~@3 d4@2 b3@2 ~ d4@2 b3@3 [c#4,a4]@5 [a3,d4,f#4]@18 ~@2, [b3,e4]@4 d5@4 d4@5 ~@35, ~@11 g4@7 g4@5 ~@25]/3", // F#m D E5
})).s("gm_piano").gain(0.41).pan(0.7)
// chords · piano · "Right Hand" · soft notes
const piano_soft = note(`<
~@8 A B C D E F G H ~ I J K L M N O A B C D E F G H ~ P ~ Q ~ R ~ Q S T ~ U V W ~ X A B C D E F G H ~@9
>`.pickRestart({
A: "f#4@3 d4@5", B: "b3 ~@2 d4@5", C: "e4@3 g4@5", D: "g4@3 [e4,a4]@5", E: "a4 a4@2 d4@5", F: "b3@2 ~ d4@5",
G: "e4 ~", H: "d4 e4 [d4,f#4]@2", I: "~@2 a4 ~", J: "a4 d5!2 ~@5", K: "~ d5 c#5@2", L: "a5!2 e5!2", M: "a4!2 d5 ~",
N: "~ d6@2 d6 ~@4", O: "~ [a4,d5]", P: "~@3 d5@2 ~@3", Q: "~ d5 a4@2", R: "~ d5 ~@2", S: "~ a5 a4@2 e5 e4@2 d5",
T: "d4 g4 ~@2", U: "~ a4", V: "~ e6 e5 d6 b5 a5 g5@2", W: "a4 e5 d5@2 ~@4", X: "~ e5 [a4,d5]@2",
})).s("gm_piano").gain(0.2).pan(0.7)
// chords · piano · "Left Hand"
const piano_2 = note(`<
A B C D A B C E F G H I F G H J K L M I F G M N F G H I F G H J O P O P O P O P K Q M I K L M N F G H I F G H J A B C
D A B C R@2
>`.pickRestart({
A: "[d3,a3] [c3,g3]", B: "[g2,d3] [b2,f#3]", C: "[f#3,c#4] g3", D: "[e3,b3] [a2,e3]", E: "[e3,b3] [a2,e3] [d2,d3]@2",
F: "d3 c3", G: "g2 b2", H: "f#2 g2", I: "e3 a2", J: "e2 a1 d2@2", K: "d3 g3", L: "d3 f#3", M: "c#4 g3",
N: "e3 a2 d2@2", O: "g3 f#3", P: "e3 a2 d3@2", Q: "g2 f#3", R: "[~@2 [e3,b3]@5 [a2,e3]@5 [d2,d3]@18 ~@2]/2",
})).s("gm_piano").gain(0.41).pan(0.3)
// chords · piano · "Left Hand" · soft notes
const piano_soft_2 = note(`<
~@8 A B C D A B C E F G H D A B H I A B C D A B C E J K J K J K J K F L H D F G H I A B C D A B C E ~@9
>`.pickRestart({
A: "a3 g3", B: "d3 f#3", C: "c#3 d3", D: "b3 e3", E: "~ a2 ~@2", F: "a3 c3", G: "g2 b2", H: "f#3 d4", I: "b3 e3 d3@2",
J: "d4!2", K: "d4 a3 ~@2", L: "d3 b2",
})).s("gm_piano").gain(0.2).pan(0.3)
// bass · fretless bass · "Bass"
const bass = note("<A B C D E F C G ~@48 A B C D E F C H@2>".pickRestart({
A: "d2 c2", B: "g1 b1", C: "f#2 g2", D: "e2 a2", E: "d3 c3", F: "g2 b2", G: "e3 a2 d2@2",
H: "[~@2 e3@5 a2@5 d2@18 ~@2]/2",
})).s("gm_fretless_bass").gain(0.41).pan(0.4)
// chords · piano
const piano_3 = note("<~@8 A B C D E F G H ~@8 A B C D E F G H ~@16 A B C D E F G H ~@9>".pickRestart({
A: "[a3,d4,f#4]@4 [a3,d4,f#4] ~ [a3,d4,f#4] ~, ~@5 c3@2 ~", // D
B: "g3@2 ~@2 b3@2 d4 ~ b3@2 ~@2 d4@2 f#4 ~, d4@3 ~ d4@2 ~@2, b3@4 ~@4 [a3,f#4]@7 ~, ~ g3@2 ~@2 b3@2 ~", // D
C: "[c#4,e4,f#4,a4] ~ [c#4,e4,f#4,a4] ~ [g3,b3,d4]@4, ~ f#2@2 ~@5", D: "[b3,d4,e4,g4]@8 [a3,c#4,e4]@6 c#4 e4",
E: "d4@2 ~@2 f#4@2 a4 ~ [a3,d4,f#4]@6 f#4 a4, a3@7 ~@9, f#4 ~@3, ~ d4@2 ~@5", // D
F: "g3@2 ~@2 b3@2 d4 ~ [a3,b3,d4,f#4]@8, d4@3 ~@5, b3 ~@3, ~ g3@2 ~@5", // Bm7
G: "[a3,c#4,e4,f#4] ~ [a3,c#4,e4,f#4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~, ~ f#2@2 ~@2 g2@2 ~", // F#m7 G
H: "[b3,d4,e4,g4]@4 [a3,c#4,e4]@4 d4@2 ~@2 f#4@2 a4 ~, ~@8 a3@7 ~, ~@2 f#4 ~, ~@5 d4@2 ~", // Em7 A
})).s("gm_piano").gain(0.41).pan(0.9)
// bass · fretless bass · "Bass"
const bass_2 = note(`<
~@8 A B C D A B C E A B C D A B C E A B C D A B C E ~ E ~ E ~ E ~ E A B C D A B C E A B C D A B C E A B C D A B F G@2
>`.pickRestart({
A: "d2@5 ~ d2 ~ c2@5 ~ c2 ~", B: "g2@5 ~ g2 ~ b1@5 ~ b1 ~", C: "f#2@5 ~ f#2 ~ g2@5 ~ g2 ~",
D: "e2@5 ~ e2 ~ a1@5 ~ a1 ~", E: "e2@4 a1@4 d2@5 ~@3", F: "f#2@5 ~ f#2 ~ g2@6 ~ g2", G: "[~@2 e2@5 a1@5 d2@18 ~@2]/2",
})).s("gm_fretless_bass").gain(0.41).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
~@8 A B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B C D ~
>`.pickRestart({
A: "x ~@2 x!2 ~@2 x", B: "x ~@2 x!3 ~ x", C: "x ~@5 x ~ x ~@6 x", D: "~ x ~@4 x ~",
})).gain(0.32)
// drums · rim
const rim = s("rim").struct("<~@8 [~ x ~ x]!54 [~@4 x ~@8 x ~@2] [~@7 x ~@8] ~>").gain(0.32)
// drums · snare
const snare = s("sd").struct("<~@7 [x!4] ~@57>").gain(0.32)
// drums · low tom
const low_tom = s("lt").struct("<~@7 [~ x ~@6] ~@57>").gain(0.32)
// drums · hihat
const hihat = s("hh").struct("<~@7 [~@3 x] [x!8]!54 [x ~ x ~ x ~ x ~ x ~@2 x ~ x ~ x] [~@2 x ~ x ~@2 x ~@4 x ~@3] ~>")
.gain(0.32)
// drums · open hat
const open_hat = s("oh").struct("<~@9 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@5 B ~>".pickRestart({
A: "~@15 x", B: "~@3 x",
})).gain(0.32)
// drums · ride
const ride = s("rd").struct("<~@7 A B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@7 B ~@8>".pickRestart({
A: "~@3 x", B: "x",
})).gain(0.32)
stack(piano, piano_soft, piano_2, piano_soft_2, bass, piano_3, bass_2, kick, rim, snare, low_tom, hihat, open_hat, ride)
More by Emerson, Lake & Palmer
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.