0:00/0:00
// Benny the Bouncer — Emerson, Lake & Palmer
// 150 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 87 bars on a 16-step grid, each part at one level. 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 C D E F C D G H@2 D C D C D E F C D G H@2 D I J K L I J M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI
AJ AK AL I J K L I J M N C D C D E F C D G H@2 AM ~@2 AN AO ~ AP AQ AR ~
>`.pickRestart({
A: "[a3,d4]@2 d3@2 [g3,b3]@2 [f#3,a3]@2 b3 [f#3,a3] d3@2 b2@2 d3@2", B: "[a3,f#4] [g#3,f4] [g3,e4] [f#3,a3,d4]@5",
C: "d3!2 [d3,a3,d4]!2 [d3,g3,b3]!2 [e3,b3,e4]!2", // D5 G E5
D: "[e3,a3,c#4]!2 [a3,e4,a4] [a3,d4,f#4]@2 [a3,d4,f#4] [a3,c#4,e4] [a3,d4,f#4]", // A A5 D A D
E: "~ d4 [c#4,a#4] [c4,a4] [b3,g4]!2 [c4,a4] [c#4,a#4]", F: "[d4,b4]!2 [c#4,a#4] [c4,a4] [b3,g4]!2 [a3,f4] [g3,e4]",
G: "e4@2 g4 e4 d4 c#4 a3!2, a3@3 ~",
H: "[g#3 d4 g#3@2 g3 d4 g3 [f#3,d4]@2 d3 [d3,a3,d4]!2 [d3,g3,b3]!2 [e3,b3,e4]!2]/2", // D D5 G E5
I: "[b3,f4]!2 c4 d4 [b3,f4]!2 c4 d4", J: "[f3,c4,f4] [f3,a#3,d4]@2 [c3,g3,c4] [c3,f3,a3]@2 g#3 g3",
K: "c#3 d3!3 c#3 d3!3", L: "c#3 d3!2 c#3 d3!2 c#3 d3", M: "[a3,c#4,a4] [a3,d4,a4]",
N: "[a3,d#4,a4]@2 ~ g4, ~ [a3,e4,a4]", O: "[g#4,f5] [a4,f#5] [g#4,f5] [g4,e5] [f4,d5] d4 [f#4,a4] [d4,a4]",
P: "f#5@2 a5@2 b5@2 d5@2 ~@2 [d5,f5] c5 a4 g#4 g4 f4", Q: "d4@4 f4@3 d4 [g4,b4]@4 ~@2 d4 f4",
R: "[g4,b4]@2 [g4,b4] f4 d4 c4 a3 g3 f#3 a3 b3 c#4 e4 d4 c#4 d4", // G
S: "[b3,f4]@2 [b3,f4]@2 [c4,f4]@2 [c#4,f4]@2 [d4,f4]@2 [g3,f4]@2 ~@2 d5 e5", // Bdim F5 C# Dm G7
T: "f5@2 g5 f5 e5 d5 c#5 e5 d5 b4 g4 d4 [g4,d5] g#4 g4 f4", U: "d4@2 d4@2 ~@2 d6 d5 d6 d5 d6 d5 d6 d5 d6 d5",
V: "[c5,c6] [a4,a5] [g4,g5] [f4,f5] [d4,d5]!2 ~ [g4,d5]", W: "~ g#4 g4 f4 g4@2 [a4,d5]@2 [f4,d5]@2 d4@2 c4@2 a3@2",
X: "g#3@2 d4@2 e4@2 d4@2 [g3,f4]@2 d4 c4 a3@2 g3@2", Y: "f3 d4 [a3,d4]!2 [g3,b3]!2 [b3,e4]!2",
Z: "[c#4,e4]@2 [c#4,e4]@2 [e4,a4]@2 [d4,f#4]@2 ~@2 a5 a#5 b5 d6 e6 d6", // C#m A5 D
AA: "[a5,f6] d6 e6@2 [f5,d6]@2 d5 [g5,b5]@3 [f5,a5]!2 d5 c5 a4@2", // Dm G F
AB: "[a4,f5]@2 d5@2 [g4,e5]@2 c#5@2 [f#4,d5]@3 a4 c#5 d5 c#5 b4", // Dm C D
AC: "a4 g4 e4 f4 f#4 a4 b4 c#5 e5 c#5 d5 e5 f5 f#5 b5 a#5", AD: "a5 b5 c6 d6 e6 g6 f6 e6 f6 d6 a5 a#5 b5 d6 e6 d6",
AE: "a6@2 f#6 d6 [b5,c#6] a5 c6 a5 b5 g6 ~@2 g6@2 f6 g6", // Bsus2
AF: "[g6,d7] g#6 g6 f6 d6@2 [g6,d7] g#6 g6 f6 d6@2 [g6,d7] g#6 g6 f6", // G5
AG: "[d6,f6] c6 a5 [g#5,d6] g5 f5 d5 c5 a4 g#4 g4 f4 d4 a4 f5 [a4,f5]", AH: "[a4,f5]!16",
AI: "[a4,a5,f6] f5 [g5,e6] e5 [f5,d6] d5 [e5,c6] c5 [d5,b5] b4 [c5,a5] a4 [b4,g5] g4 [a4,f5] f4", // Dm C Dm C G F Em Dm
AJ: "[g4,e5] e4 [f4,d5] d4 [e4,c5] c#4 [d4,b4] b3 [c4,a4] a3 [b3,g4] g3 [a3,f4] f3 [g3,e4] e3", // C Dm C G F Em Dm C
AK: "[f3,d4] d3 [a3,d4]!2 [g3,b3]!2 [b3,e4]!2", AL: "[a3,c#4] a3 [e4,a4] [d4,f#4]@2 [d4,f#4] [c#4,e4] [d4,f#4]",
AM: "[e3,a3,c#4]!2 [a3,e4,a4] [a3,d4,f#4]@3 ~@2", // A A5 D
AN: "[a4,d5]@2 d4@2 [g4,b4]@2 [f#4,a4]@2 b4 [f#4,a4] d4@2 [b3,d4]@2 [a3,d4]@2", AO: "g#3 d4 [g3,d4] [f#3,d4]@5",
AP: "[g5,b5,d6,g6]@2 [g5,b5,d6,g6] [f5,f6]@2 ~ [d5,d6]@2 [e5,e6]@3 a4@2 ~ [g#4,g#5]@2, ~@5 [e5,e6]@2 ~@6 [a4,a5]@2 ~", // G F D E G# E A
AQ: "~ [f#4,f#5]@5 [d5,d6]@3 [d5,d6]@2 ~ [d5,d6] ~ [d5,d6]@2, [g4,g5] ~@5 b5 ~", // F# D G
AR: "~ [f#5,f#6]@3 [d5,d6]@3 a4@2 [c#4,g4,b4]@3 [d4,f#4,d5]@3 ~, [e5,e6] ~@7", // F# D C#m7b5 D E
})).s("gm_piano").gain(0.36).pan(0.7)
// other · piano · "Left Hand"
const piano_2 = note(`<
~ A B C B C D@2 B C E F B C B C B C D@2 B C E F B C G H I J G H K L B M B N D@2 B O P Q B M B M B N D@2 B O C Q B C G
H I J G H R S B C B C D@2 B C E F B T ~@3 U V W X Y@2
>`.pickRestart({
A: "a1 b1 c#2 d2@3 d2@2", B: "d1 d2 f#1 f#2 g1 g2 g#1 g#2", C: "a1 a2 c#2 c#3 d2 d3 d2 d3",
D: "g1 g2 a1 a2 a#1 a#2 b1 b2", E: "a1 a2 a1 a2 a1 a2 a1 a2", F: "e1 e2 e1 e2 a1 a2 a1 a2",
G: "[g2,d3]!2 a#2 b2 [g2,d3]!2 a#2 b2", H: "a2 a#2@2 e2 f2@2 e2 a2", I: "c#2 d2!3 c#2 d2!3",
J: "c#2 d2!2 c#2 d2!2 c#2 d2", K: "[a1,a2] [b1,b2]", L: "[c2,c3] [c#2,c#3]", M: "a1 a2 c#2 c#3 d2 d3 c#1 c#2",
N: "a1 a2 c#2 c#3 d2 d3 f#1 f#2", O: "a1 a2 c#2 c#3 d2 d3 g#1 g#2", P: "a1 a2 b1 b2 c2 c3 d2 d3",
Q: "e2 e3 e2 e3 a1 a2 a1 a2", R: "[a2,a3] [b2,b3]", S: "[c3,c4] [c#3,c#4]", T: "a1 a2 [c#2,c#3] [d2,d3]@3 ~@2",
U: "e2@2 a1 d2@3 d1@2", V: "~@15 g2",
W: "b3@3 [g3,b3,d4]@2 ~ b3@3 [g#3,b3,d4]@3 ~@2 [c#2,c#3]@2, ~@6 g#2 ~@6 [d2,d3]@2 ~", // G G#dim C# D
X: "~ [b1,b2]@8 e2@3 [g#3,b3,d4]@3 ~, [c2,c3] ~@7", Y: "[a2@3 [g3,c#4,e4]@3 [d3,d4]@3 a2@3 d2@3 d1@3 ~@14]/2",
})).s("gm_piano").gain(0.36).pan(0.3)
// bass · fretless bass · "Bass"
const bass = note(`<
~@2 A B C D E F A G H I C J C K A L M N A L O P C J Q R S T Q R U ~@25 V R W X V R Y Z AA B AA AB AC AD A AE O AF C AG
~@9
>`.pickRestart({
A: "d2 ~ d2@2 d2 ~ d2 d1 g2 ~ g2 ~ e2 ~ e2 ~", B: "a1 a0 a1 ~ a1 ~ a1 ~ d2 ~ d2@2 d2 ~ d2 d1",
C: "d2 d1 d2 ~ d2 ~ d2 ~ g2 ~ g2 ~ e2 ~ e2 ~", D: "a1 ~ a1@2 a1 ~ c#2 ~ d2 ~ d2@2 d2 ~ f#2 ~",
E: "g2 ~ g2 ~ g2 ~ g2@2 g2 ~ g2 ~ g2 ~ g2 g1", F: "g2 ~ g2 ~ g2 ~ g2 g1 g2 ~ g2 ~ g2 ~ c#2 ~",
G: "a1 ~ a1@2 a1 ~ a1 a0 d2 ~ d2@2 d2 ~ g#1 ~", H: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2 d#2 ~",
I: "e2 ~ e2@2 e2 ~ g#1 ~ a1 ~ a1@2 a1 ~ a1 a0", J: "a1 ~ a1@2 a1 ~ a1 a0 d2 ~ d2@2 d2 ~ d2 d1",
K: "a1 a0 a1 ~ a1 ~ a1 ~ d2 ~ d2@2 d2 ~ c#2 ~", L: "a1 a0 a1 ~ a1 ~ a1 ~ d2 d1 d2 ~ d2 ~ d2 ~",
M: "g2 ~ g2@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 g1", N: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ c#2 ~",
O: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 a0 a1 a0 a1!2", P: "e2 e1 e2 ~ e2 ~ e2 ~ a1 a0 a1 ~ a1 ~ a1 ~",
Q: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 g1 g2 g1 g2!2", R: "f2 ~ f2 ~ a#1 ~ a#1 ~ c2 ~ c2 ~ f2 ~ f2 ~",
S: "d2 ~ d2@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 d1", T: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ f#2 ~",
U: "a1 a0 a1 ~ a1 ~ a1 ~ b1 b0 b1 ~ b1 ~ b1 ~", V: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2@2",
W: "d2 ~ d2@2 d2 ~ d2@2 d2 ~ d2@2 d2 ~ d2@2", X: "d2 ~ d2@2 d2 ~ d2@2 d2 ~ d2 ~ d2 ~ d2 ~",
Y: "a1 a0 a1 ~ a1 ~ a1 ~ b1 ~ b1@2 b1 ~ b1 ~", Z: "c2 ~ c2@2 c2 ~ c2 c1 c#2 ~ c#2@2 c#2 ~ c#2 ~",
AA: "d2 ~ d2@2 d2 ~ f#2 ~ g2 ~ g2 ~ e2 ~ e2 ~", AB: "a1 a0 a1 ~ a1 ~ a1 ~ d2 ~ d2@2 d2 ~ f#2 ~",
AC: "g2 ~ g2@2 g2@2 g2 g1 g2 ~ g2 ~ g2 ~ g2@2", AD: "g2 ~ g2 ~ g2 ~ g2 g1 g2 ~ g2 g1 g2 ~ g2 ~",
AE: "a1 ~ a1@2 a1 ~ c#2 ~ d2 ~ d2@2 d2 ~ d2 d1", AF: "e2 ~ e2@2 e2 ~ e2 e1 a1 ~ a1@2 a1 ~ a1 a0",
AG: "a1 ~ a1@2 a1 ~ a1 a0 d2 d1 d2 ~ d2 ~ d2 ~",
})).s("gm_fretless_bass").gain(0.36).pan(0.3)
// bass · acoustic bass · "Bass"
const bass_2 = note("<~@33 A B C D E F G H C I J D K B L D E M N D C O P B Q ~@29>".pickRestart({
A: "c2 ~ c2@2 c2 ~ c2 c1 c#2 c#1 c#2 ~ c#2 ~ c#2 ~", B: "d2 ~ d2@2 d2 ~ d2 d1 g2 ~ g2 ~ e2 ~ e2 ~",
C: "a1 a0 a1 ~ a1 ~ a1 ~ d2 ~ d2@2 d2 ~ d2 d1", D: "d2 ~ d2@2 d2 ~ f#2 ~ g2 ~ g2 ~ e2 ~ e2 ~",
E: "a1 a0 a1 ~ a1 ~ a1 ~ d2 ~ d2@2 d2 ~ f#2 ~", F: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2@2",
G: "g2 ~ g2 ~ g2 ~ g2@2 g2 ~ g2@2 g2 ~ g2 ~", H: "d2 d1 d2 ~ d2 ~ d2 ~ g2 ~ g2 ~ e2 ~ e2 ~",
I: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2", J: "e2 ~ e2@2 e2 ~ e2 e1 a1 ~ a1@2 a1 ~ c#2 ~",
K: "a1 ~ a1@2 a1 ~ a1 a0 d2 d1 d2 ~ d2 ~ d2 ~", L: "a1 a0 a1 ~ a1 ~ a1 ~ d2 d1 d2 ~ d2 ~ d2 ~",
M: "g2 ~ g2@2 g2 ~ g2@2 g2 ~ g2@2 g2 ~ g2@2", N: "g2 ~ g2@2 g2 ~ g2@2 g2 ~ g2 ~ g2 ~ g2 ~",
O: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2 d#2 ~", P: "e2 e1 e2 ~ e2 ~ e2 ~ a1 ~ a1@2 a1 ~ c#2 ~",
Q: "a1 ~ a1@2 a1 ~ c#2 ~ d2 ~ d2@2 d2 ~ f#2 ~",
})).s("gm_acoustic_bass").gain(0.36).pan(0.3)
// chords · electric guitar muted · "Guitar"
const electric_guitar_muted = note(`<
~@2 A B C D E@2 C F G H I F J K L M N O P Q R S P T U V W@2 X V Y Z ~@24 U V AA@2 X V AB AC AD AE A D AF@2 I AG G AH I
AI ~@9
>`.pickRestart({
A: "[d3,a3]@2 ~@2 [d3,a3]@2 ~@2 [g2,d3,g3]@3 ~ [e3,b3,e4]@3 ~, ~@3 d2@2 ~@11", // D5 G5 E5
B: "~@2 [a2,e3,a3]@2 ~@2 [a2,e3,a3]@2 [d3,d4] ~@3 a3@2 [a3,d4]@2, ~@4 a3 d3@3", // A5 D D5
C: "[d3,d4] ~@3 a3@2 [a3,d4]@2 [g2,d3,g3]@3 ~ [e3,b3,e4]@3 ~, a3 d3@3 ~@4", // D D5 G5 E5
D: "[a2,a3] ~@3 e3@2 [e3,a3]@2 [d3,d4] ~@3 a3@2 [a3,d4]@2, e3 a2@3 a3 d3@3", // A A5 D D5
E: "[~@2 [g2,d3,g3] ~@3 d2 ~ [g2,d3,g3]@4 d2@2 [g2,d3,g3]@4 d2 ~ g2@2 d2@2 [g2,d3]@2 d2@2 g2@2 d3 ~]/2", // G5
F: "~ [a2,e3,a3] ~ [a2,e3,a3] [d3,a3]@3 d2", G: "~@2 [a2,d#3,e3] ~@3 a2@2 e3@6 ~@2",
H: "[e3,b3]@6 e2@2 [a2,g3] ~@3 e3@2 [e3,a3]@2, ~@2 [e3,a3] ~, ~@5 a2@3", // E5 A7 A5
I: "[d3,a3]@6 d2@2 [g2,d3,g3]@3 ~ [e3,b3,e4]@3 ~", // D5 G5 E5
J: "d4 a3 d3 ~ a3 d3 d4 a3 [g2,d3,g3]@3 ~ [e3,b3,e4]@3 ~, ~@3 d4@2 ~@11", // G5 E5
K: "a3 e3 a2 ~ e3 a2 a3 e3 [d3,a3,d4] ~ d2@2 [d3,a3,d4]@2 [d3,a3,d4] ~, ~@3 a3@2 ~@11", // D5
L: "[d3,a3,c#4,d4]@2 d2@2 [d3,a3,d4]@2 ~@2 [g2,d3,g3]@3 ~ [e3,b3,e4]@3 ~", // Dmaj7 D5 G5 E5
M: "[a2,e3,g#3,a3] ~ [a2,e3,a3] ~ [d3,a3,d4]@3 d2", // Amaj7 A5 D5
N: "g2 ~ [g2,d3]@2 ~@4 d3@4 g2 ~ [g2,d3]@2, ~@6 g2@5 ~@5, ~@8 a2 ~@7", // G5
O: "~ g3 d3 ~@2 d3 ~@5 d3 g2 g3 ~ g2, ~@3 g2@2 ~ g2@2 d3@2 g3@2 ~@2 d3@2, ~@4 g3@2 ~ g3@2 g2@2 ~@5",
P: "[d3,a3,d4] ~ d2@2 [d3,a3,d4]@2 [d3,a3,d4] ~ [g2,d3,g3]@3 ~ [e3,b3,e4]@3 ~", // D5 G5 E5
Q: "[a2,e3,a3] ~ a2@2 [e3,a3]@2 [a2,e3,a3] ~ [d3,a3,c#4,d4]@2 d2@2 [d3,a3,d4]@2 ~@2", // A5 Dmaj7 D5
R: "~@4 e3@2 a2@3 ~ a2 ~ a2 ~ e3@2, a2@6 [e3,a3]@7 ~@3", // A5
S: "[e3,b3,e4] ~ e2@2 [e3,b3,e4]@2 [e3,b3,e4] ~ [a2,e3,a3] ~ a2@2 [e3,a3]@2 [a2,e3,a3] ~", // E5 A5
T: "[a2,e3,g#3,a3] ~ [a2,e3,a3] ~ [d3,a3,c#4,d4] d2 [d3,a3,d4] ~", // Amaj7 A5 Dmaj7 D5
U: "g2@2 d3 ~ d3@2 g2 ~ g2 ~ g2 ~@2 d3!2 ~, ~@4 g2 ~@3 d3@4 g2@2 ~@2",
V: "[f3,c4,f4]@3 ~ [a#2,f3,a#3]@3 ~ [c3,g3,c4]@3 ~ [f3,c4,f4]@3 ~", // F5 A#5 C5 F5
W: "[~@2 d2@2 ~@2 d2@2 ~@4 b3 ~ a3@3 ~ [d3,a3,d4] ~@9 [d3,d4]@3 ~, ~@4 d3@6 d2@10 ~@2 d2@4 d2@5 ~, ~@8 a3@4 d3@5 ~@7 [d3,a3]@4 a3 ~@3]/2", // D5 D D5
X: "g2@2 [d3,g3] ~ [g2,d3,g3]@2 g2 ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~ [g2,d3,g3] ~", // G5
Y: "[a2,e3,a3]@3 ~ [b2,f#3,b3]@3 b1", Z: "c4 g3 c3 ~ g3 c3 c4 g3 [c#3,e3,a3]@6 c#2@2, ~@3 c4@2 ~@11",
AA: "[~@2 [d3,a3] ~ [d3,a3]@2 d2@2 [d3,a3] d2 [d3,a3]@2 ~@2 [d3,a3]@3 ~ [d3,a3]@2 ~@2 [d3,a3]@3 d4 a3 ~ d4 a3 ~ a3, ~@3 d2@2 d2@3, ~@27 d3@2 ~ d3@2]/2", // D5
AB: "[a2,e3,a3] ~ a2@2 [e3,a3]@2 [a2,e3,a3] ~ [b2,f#3,b3]@6 b1@2", // A5 B5
AC: "[c3,g3,c4] ~ c2@2 [c3,g3,c4]@2 [c3,g3,c4] ~ a3 e3 c#3 ~ e3 c#3 a3 e3, ~@11 a3@2 ~@3", // C5
AD: "~@2 [d3,a3,d4]@2 ~@2 [d3,a3,d4]@2 [g2,d3,g3]@3 ~ [e3,b3,e4]@3 ~", // D5 G5 E5
AE: "[a2,e3]@6 ~@2 [d3,d4] ~@3 a3@2 [a3,d4]@2, ~@4 a3 d3@3", // A5 D D5
AF: "[~@3 g2 [g2,d3]@2 ~@2 g2 ~ [g2,d3]@2 g2 ~ [g2,d3]@4 ~@8 d3@2 g2@2 [g2,d3]@2, ~@18 g3@4 g2@5 ~@5, ~@20 d3@4 g3@5 ~@3]/2", // G5
AG: "[a2,e3]@2 ~@2 e3@2 ~@2 [d3,d4] ~@3 a3@2 [a3,d4]@2, ~@3 a2@2 ~@3 a3@2 d3@6", // A5 D D5
AH: "~ [e3,b3,e4] ~ [e3,b3,d4,e4] [a2,e3]@3 ~", AI: "~ [a2,e3,a3] ~ [a2,e3,a3] [d3,a3] ~ [d3,a3] ~, ~@11 d2@2 ~@3",
})).s("gm_electric_guitar_muted").gain(0.31).pan(0.7)
// drums · kick
const kick = s("bd").struct(`<
~@2 A B A@3 B A@2 C D A E F@8 G F H F@3 I F@3 J E F@2 H F K F@3 K F@2 L F H F H F@7 M F@2 K F@3 K N A@3 D A B A O C B
C O F E P Q ~@5
>`.pickRestart({
A: "x ~@2 x!2 ~@2 x", B: "x ~@5 x ~@3 x!2 ~@2 x ~", C: "x ~@5 x ~ x ~@2 x ~@2 x ~", D: "x ~@2 x ~ x ~ x",
E: "~@9 x ~@6", F: "x!2 ~ x!3 ~ x", G: "x!3 ~@3 x ~ x ~ x ~@3 x ~", H: "x ~ x!2 ~@2 x ~ x ~ x ~@3 x ~",
I: "x ~ x ~@3 x ~ x ~ x!2 ~ x!3", J: "x ~ x ~@3 x ~ x ~ x!2 ~ x!2 ~", K: "x ~ x ~@3 x ~ x ~ x!2 ~@2 x!2",
L: "~ x!2 ~ x!2 ~@2", M: "~@4 x!2 ~@2", N: "~@2 x ~@5 x ~@5 x!2", O: "x ~@5 x ~ x!4 ~@2 x ~", P: "x", Q: "~@3 x",
})).gain(0.36)
// drums · rim
const rim = s("rim").struct("<~ [x!4] ~@85>").gain(0.26)
// drums · snare
const snare = s("sd").struct(`<
~@2 A@11 B A@11 C A@2 D A@3 D B A@4 D A@3 D A@2 E A@11 F A@2 D A@3 D G A@13 B ~@7
>`.pickRestart({
A: "~ x ~ x", B: "x!2 ~ x!2 ~ x!2 ~@2 x!3 ~@3", C: "x ~ x!6", D: "~@4 x ~@4 x ~@2 x ~@3", E: "x ~@2 x ~@2 x ~",
F: "x!3 ~ x ~ x ~@5 x ~@3", G: "x ~@5 x ~@3 x ~@2 x ~@2",
})).gain(0.41)
// drums · low tom
const low_tom = s("lt").struct("<~@13 A ~@11 B ~@7 A ~@11 C ~@19 D ~@13 A ~@7>".pickRestart({
A: "~@7 x", B: "~@3 x!5", C: "~@3 x", D: "~@4 x ~@4 x ~@2 x ~@3",
})).gain(0.36)
// drums · hihat
const hihat = s("hh").struct("<~@13 [x!4] ~@19 [x!4] ~@45 [x!4] ~@7>").gain(0.31)
// drums · mid tom
const mid_tom = s("mt").struct("<~@13 A ~@19 A ~@11 B ~@19 C ~@13 A ~@7>".pickRestart({
A: "~@13 x ~@2", B: "~@3 x ~@4", C: "~@4 x ~@4 x ~@2 x ~@3",
})).gain(0.41)
// drums · open hat
const open_hat = s("oh").struct("<~@2 A@11 ~@12 B ~@40 A@7 C A@3 C ~@9>".pickRestart({
A: "x!4", B: "x", C: "x ~ x ~ x ~@2 x",
})).gain(0.31)
// drums · high tom
const high_tom = s("ht").struct("<~@45 x ~@41>").gain(0.41)
// drums · crash
const crash = s("cr").struct("<~@2 A ~@11 A ~@10 B A ~@7 A ~@11 A ~@10 C A ~@7 A ~@6 C ~@4 A ~ A C ~@5>".pickRestart({
A: "x", B: "~ x ~@2", C: "~@3 x",
})).gain(0.41)
// drums · ride
const ride = s("rd").struct(`<
~@14 A@10 B ~ A@2 C A@3 C ~ A@2 D A C D A@2 C A@2 ~ A E A E D A B A@4 ~ A@2 C A@3 C ~@13 A ~ F G ~@5
>`.pickRestart({
A: "x!4", B: "x ~ x!3 ~ x ~", C: "x ~@3 x ~@3 x ~ x!3 ~ x!2", D: "x ~@3 x ~ x!3 ~@3 x ~@3",
E: "x ~@3 x ~@2 x!2 ~@3 x ~@3", F: "x", G: "~@3 x",
})).gain(0.36)
// drums · tambourine
const tambourine = s("tb").struct("<~@14 A@19 ~ A@11 ~ A@11 ~ A@7 ~@13 A ~ B C ~@5>".pickRestart({
A: "x!8", B: "x", C: "~@3 x",
})).gain(0.31)
// … 4 more lines
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.