0:00/0:00
// I'm So Excited — Hooker John Lee
// 179 bpm, 4/4, key G minor. Source: 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 191 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(179/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, A@4 for four bars: edit a riff to change every repeat.
// chords · piano
const piano = note(`<
~@7 A@4 B@2 C@6 D@2 E@3 F@2 G@2 H@2 I@2 J@2 K@2 L@2 M@3 N O@2 P Q R@5 S@5 T@7 U@5 F@2 G@2 H@2 I@2 J@2 K@2 L@2 V W@5
T@7 X@5 Y@3 Z@2 AA@3 AB AC@4 AD@3 AE N O@2 P Q R@5 S@5 T@7 AF@5 ~@8 AG AH@2 AI@4 AJ@2 AK@2 AL@4 AM@2 AN@2 AO@5 AP AK@2
AL@4 AM@2 AN@2 AQ@3 ~
>`.pickRestart({
A: "[~@16 g1@2 ~@2 g1 ~@3 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1 ~@3 c2@2 ~@2 [c2,g3,bb3,eb4]@2 ~@2 [c2,f3,bb3,d4]@2 ~@2 [c2,g3,bb3,eb4]@2 ~@2, ~@14 [f3,bb3,d4]@30 ~@2 [f3,bb3,d4]@5 ~@13]/4", // Cm7 Bb Cm7 Bb
B: "[[f3,bb3,d4]@4 c2 ~@3 c2@2 ~@2 c2 ~@3 eb1@2 ~@2 [g3,bb3,eb4]@2 ~@2 [eb1,f3,bb3,d4]@2 ~@2 [eb1,g3,bb3,eb4]@3 ~, c2@2 ~@4 [g3,bb3,eb4]@6 ~@2 [f3,bb3,d4]@5 ~ eb1 ~@11]/2", // Bb Eb Bb Eb Bb
C: "[[f3,bb3,d4]@4 eb1@2 ~@2 eb1@2 ~@2 eb1 ~@3 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 bb1@3 ~ bb1@2 ~@2 bb1@2 ~@2 a1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1 ~@3 c1@3 ~ [c1,g3,bb3,eb4]@2 ~@2 [c1,f3,bb3,d4]@2 ~@2 [c1,g3,bb3,eb4]@2 ~@2, eb1@2 ~@4 [g3,bb3,eb4]@7 ~ [g3,c4,eb4]@7 ~ [f3,bb3,d4]@23 ~ [f3,bb3,d4]@30 ~@2 [f3,bb3,d4]@5 ~@13]/6", // Bb Cm7 Bb Cm7 Eb Cm Bb
D: "[[f3,bb3,d4]@4 c1@2 ~@2 c1@2 ~@2 c1@2 ~@2 eb1@2 ~@2 [g3,bb3,eb4]@2 ~@2 [eb1,f3,bb3,d4]@2 ~@2 [eb1,g3,bb3,eb4]@3 ~, c1@2 ~@4 [g3,bb3,eb4]@6 ~@2 [f3,bb3,d4]@5 ~ eb1 ~@11]/2", // Bb Eb Bb Eb Bb
E: "[[f3,bb3,d4]@4 eb1@2 ~@2 eb1@2 ~@2 eb1 ~@3 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2, eb1@2 ~@4 [g3,bb3,eb4]@7 ~ [g3,c4,eb4]@7 ~ [f3,bb3,d4]@12 ~@14]/3", // Bb Eb Cm Bb
F: "[g1@2 ~@2 g1 ~@3 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2, [f3,bb3,d4]@31 ~]/2", // Bb
G: "[[f3,bb3,d4]@4 c1 ~@3 c1 ~@3 c1@2 ~@2 c1@2 ~@2 c1@2 ~@2 c1@2 ~@2 c1@2 ~@2, c1@2 ~@4 [g3,bb3,eb4]@25 ~]/2", // Bb Eb
H: "[[f3,bb3,d4]@4 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1 ~ f1 ~, eb1@2 ~@4 [g3,bb3,eb4]@25 ~]/2", // Bb Eb
I: "[[g3,bb3,eb4]@4 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 f1@2 ~@2 gb1@3 ~, bb1@2 ~@4 [f3,bb3,d4]@25 ~]/2", // Eb Bb
J: "[g1@3 ~ g1@3 ~ g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2, [f3,bb3,d4]@31 ~]/2", // Bb
K: "[[f3,bb3,d4]@4 c2 ~@3 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2@2 ~@2 c2 ~@3, c2@2 ~@4 [g3,bb3,eb4]@25 ~]/2", // Bb Eb
L: "[[f3,bb3,d4]@2 eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~, eb1@2 ~@4 [g3,bb3,eb4]@25 ~]/2", // Bb Eb
M: "[[g3,bb3,eb4]@4 bb1 ~@3 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 bb1@2 ~@2 d2@2 f2@2 bb1 ~@3 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@3 ~, bb1@2 ~@4 [f3,bb3,d4]@18 ~@6 [c4,e4,a4]@7 ~ [c4,e4,g4]@10]/3", // Eb Bb Am C
N: "a1@3 ~ a1@2 ~@2 a1@2 ~@2 a1@3 ~, [c4,e4,a4]@3 [c4,e4,g4]@5", // Am C
O: "[g1@2 ~@2 g1@3 ~ [g1,bb3,d4,g4]@4 g1@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@3 ~, [bb3,d4,g4]@7 ~@7 [a3,c4,f4]@15 ~@3]/2", // Gm F
P: "[c4,e4,a4]@2 a1 ~ a1 ~ a1 ~, a1 ~@2 [c4,e4,g4]@5", // Am C
Q: "[c4,e4] ~@3 a1@2 ~@2 a1@2 ~@2 a1@3 ~, a4@2 ~ g4@5, a1 ~@2 [c4,e4]@2 ~@3", // C
R: "[g1@3 ~ g1@4 g1@4 ~@4 g1@4 ~@8 g1@2 ~@2 c2@14 [d2,c4,f4,a4]@16 [eb4,g4,bb4]@14 ~@4, d4@10 g1 [bb3,bb4] g1 [c4,c5]@2 [bb3,eb4,g4]@6 ~@19, bb3@20 [a3,a4]@11 ~@49, g4@14 [f3,f4]@17 ~@31 f2@17 ~, ~@12 g1@4 [g3,g4]@15 ~@49]/5", // Dm7 Eb Bb C Eb A F G
S: "[[f2,f4,f5]@2 ~@14 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1 ~@3 g1 ~ [f3,bb3,d4] ~ g1 ~ [f3,bb3,d4]@2 g1 ~@3 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1 ~ [g3,bb3,eb4]@2 eb1 ~@3 eb1@2 ~@2, ~@14 [f3,bb3,d4]@23 ~@9 [g3,bb3,eb4]@22 ~@6 [a3,c4,f4]@5 ~]/5", // F Bb Eb Bb Eb F
T: "[eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 [f3,a3,c4] ~ g1 ~@3 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1 ~ [f3,bb3,d4]@2 f1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2, [g3,bb3,eb4]@6 ~ [a3,c4,f4]@7 ~ [f3,g3,bb3,d4]@13 ~@3 [f3,bb3,d4]@13 ~@3 [g3,bb3,eb4]@9]/7", // F Bb Eb F Gm7 Bb Eb
U: "[eb1 ~ eb1 ~ eb1 [a3,c4,f4] eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ f1 ~ f1 ~ f1 ~ f1 ~ g1 ~ g1 ~ g1 ~ g1 f1 g1 ~ g1 ~ g1 ~ g1 ~, ~@14 [g3,bb3,eb4]@15 ~ [a3,c4,f4]@14 ~@2 [f3,g3,bb3,d4]@19 ~@15]/5", // F Eb F Gm7
V: "[g3,bb3,eb4]@4 bb1 ~@3 bb1@2 ~@2 bb1@2 ~@2, bb1 ~@2 [f3,bb3,d4]@5", // Eb Bb
W: "[[bb2,bb4,f5]@2 ~@14 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1 ~@3 g1 ~ [f3,bb3,d4] ~ g1 ~ [f3,bb3,d4]@2 g1 ~@3 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1 ~ [g3,bb3,eb4]@2 eb1 ~@3 eb1@2 ~@2, ~@14 [f3,bb3,d4]@23 ~@9 [g3,bb3,eb4]@22 ~@6 [a3,c4,f4]@5 ~]/5", // Bb5 Bb Eb Bb Eb F
X: "[eb1 ~ eb1 ~ eb1 [a3,c4,f4] eb1 ~ eb1 ~ eb1 ~ eb1 ~ eb1 ~ f1 ~ f1 ~ f1 ~ f1 ~ g1 ~ g1 ~ g1 ~ g1 f1 ~ [c3,c4] [db3,db4] [d3,d4] [f3,f4] [g3,g4] [bb3,bb4] [c4,c5], ~@14 [g3,bb3,eb4]@15 ~ [a3,c4,f4]@14 ~@2 [f3,g3,bb3,d4]@19 ~@15]/5", // F C Db D F G Bb C …
Y: "[[bb4,bb5] ~ [bb4,bb5] ~@5 bb4@2 bb4@2 ~@16 [d5,d6]@2 f5@4 ~@2 [g5,bb5,eb6]@4 [f5,bb5,d6]@4 [g5,bb5,eb6]@4, ~@2 [bb4,bb5]@2 bb5@2 [bb4,bb5]@2 [bb4,bb5]@4 [bb4,bb5]@3 bb5@3 ~@6, ~@3 [g4,g5]@4 [g4,g5]@3 [g4,g5]@5 ~@2 f5@3 ~@4, ~@9 [f4,f5]@2 [f4,f5]@4 ~@9, ~@13 [c5,c6]@2 d6@5 ~@4]/3", // Bb D Eb Bb Eb Bb G F …
Z: "[[f5,bb5,d6]@3 ~@3 [g4,g5] [f5,bb5,d6]@2 [f5,bb5,d6] [g5,bb5,eb6]@2 [f5,bb5,d6]@2 [g5,bb5,eb6]@2, ~@3 [bb5,eb6]@4 ~@9, ~@3 g5@3 ~@10, ~@5 [f4,f5]@2 bb4@3 ~@6]/2", // Bb G Bb Eb Bb Eb Eb5 F
AA: "[[f5,bb5,d6]@3 bb5@2 [bb5,d6,f6]@2 c6@2 c6@2 bb5@2 bb5!2 ~@8 [c5,c6], ~@3 [g5,eb6]@4 [c5,eb6,g6]@4 [bb4,d6,f6]@4 [bb4,bb5]@3 [db4,db5]@2 [f4,f5] [g4,g5] [bb4,bb5]@2, ~@14 b5 ~@15 [d6,f6]@18, ~@17 c4@7, ~@17 c5@2 [d4,d5]@5]/3", // Bb C Cm Bb Db F G Bb …
AB: "[db5,db6,d6,f6] ~ [d6,f6]@2 [d6,f6]@2 [d6,f6]@2 db6 d6 [d6,f6]@2 [d6,f6]@2 [d6,f6]@2, ~@4 f6 ~@3", // Db Dm
AC: "[[d6,f6]@2 [d6,f6]@2 db6 ~@7 c6@2 [d6,f6]@4 [d6,f6]@2 [d6,f6]@2 [d6,f6]@2 [d6,f6]@2 [d6,f6]@2 [d6,f6]@2 f6@2 f6@2 [d6,f6]@2 f6@2 ~@4 g5@4 ~@16 c6@2, db6 ~@3 f6@10 ~@24 f6@14 g5@2 bb5@2 c6@2 g5@2 bb5@4, ~@4 c6@8 ~@2 [db6,a6] ~@9 db6 ~@5 d6@4 ~@4 c6@13 gb5@13, ~@3 bb5@2 bb5@2 ~@9 db6@2 db6@14, ~@4 g5@3 ~@13 bb5@3 g5@2 f5@7]/4", // Dm Gbm
AD: "[db6 ~@13 c7@2 eb6@2 eb6@2 ~@2 d6@2 d6@2 d6@2 ~@2 [bb4,bb5,bb6]@2 [bb4,bb5,bb6]@2 [bb4,bb5,bb6]@2 [bb4,bb5,bb6]@2 [bb4,bb5,bb6]@2 [bb4,bb5,bb6]@2 [bb4,bb5,bb6]@2 [bb4,bb5,bb6]@2 [bb4,bb5,bb6] ~, d6@3 d6@8 ~@3 d6@9 ~, ~ f6@3 f6@7 [f6,bb6]@2 f6@10 ~, ~@2 g6@3 g6@2 g6 c7@2 [eb6,g6,c7]@13 ~, ~@6 bb6@5 ~@2 bb6@2 ~@9]/3", // Bb Bb5 Cm
AE: "a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@3 ~, ~@3 [c4,e4,g4]@5", // C
AF: "[eb1@2 ~@2 eb1@2 ~@2 eb1@2 [a3,c4,f4]@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 f1@2 g1@2 ~@2 g1@2 ~@2 g1@2 [f3,a3,c4] ~ g1 ~ [f3,bb3,d4]@2, ~@14 [g3,bb3,eb4]@15 ~ [a3,c4,f4]@14 ~@2 [f3,g3,bb3,d4]@19 ~@15]/5", // F Bb Eb F Gm7
AG: "g1 ~ g1 ~ [g1,d4,a4,c5] ~ [g1,d4,g4,bb4] ~", // Gsus4 Gm
AH: "[[d4,a4,c5]@4 g1 ~@3 g1@2 ~@2 g1 ~@3 eb1@2 ~@2 eb1@2 ~@2 [eb1,d4]@2 ~@2 [eb1,d4,g4,bb4]@2 ~@2, g1@2 ~@4 [d4,g4,bb4]@6 ~@2 [bb3,eb4,g4]@7 ~@3 [a4,c5] ~@7]/2", // D7 Ebmaj7 Gm Eb Am
AI: "[[d4,a4,c5]@4 eb1 ~@3 eb1@2 ~@2 eb1 ~@3 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1 ~@3 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1 ~@3 g1@2 ~@2 g1@2 ~@2 [g2,a2,g3,a3] ~ [g2,g3] ~ [a2,a3] ~ [a2,a3] ~, eb1@2 ~@4 [d4,eb4,g4,bb4]@4 ~@4 [bb3,eb4,g4]@14 ~@2 [c4,f4,a4]@14 ~@2 [d4,g4,bb4]@7 ~@11]/4", // D7 Gsus2 G A Ebmaj7 Eb F Gm
AJ: "[[bb2,bb3] ~ [bb2,bb3] ~ [c3,c4] ~ [c3,c4] ~ [d3,d4] ~ [f3,f4]@2 ~@4 g1@3 ~ g1@2 ~@2 [d4,a4,c5] ~@3 [g1,d4]@2 ~@2, ~@14 [g3,g4]@6 ~@4 g1@2 ~@2 [g4,bb4] ~@3]/2", // Bb C D F D7 G5 G Gm
AK: "[[d4,a4,c5]@4 g1 ~@3 g1@2 ~@2 g1 ~@3 eb1@2 ~@2 eb1@2 ~@2 [d4,e4,a4,c5] ~@3 [eb1,g4,bb4] ~@3, g1@2 ~@4 [d4,g4,bb4]@6 ~@2 [bb3,eb4,g4]@7 ~@3 eb1@2 ~@2 d4@2 ~@2]/2", // D7 Am Eb Gm Eb
AL: "[[d4,a4,c5]@4 eb1@2 [eb4,g4,bb4]@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1 ~@3 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1 ~@3 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2, eb1 ~@6 [bb3,eb4,g4]@7 ~ [c4,f4,a4]@7 ~ [d4,g4,bb4]@9]/4", // D7 Eb F Gm
AM: "[g1@2 [d4,g4]@2 g1@2 g4@2 g1@2 [g3,g4]@2 g1@2 c4 ~ g1@3 ~ g1@2 ~@2 [d4,a4,c5] ~@3 [g1,d4]@2 ~@2, ~@10 a3 ~@3 [d4,g4,bb4]@9 ~ g1@2 ~@2 [g4,bb4] ~@3]/2", // G5 G D7 G5 Gm
AN: "[[d4,a4,c5]@4 g1 ~ [d4,g4]@2 g1 ~@3 g1 ~@3 eb1@2 ~@2 eb1@2 ~@2 [d4,a4,c5] ~@3 [eb1,d4]@2 ~@2, g1@2 ~@4 bb4 ~@7 [bb3,eb4,g4]@6 ~@4 eb1@2 ~@2 [g4,bb4] ~@3]/2", // D7 G5 D7 Ebmaj7 Eb Gm
AO: "[[d4,a4,c5]@4 eb1@2 [eb4,g4,bb4]@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 eb1 ~@3 f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1 ~@3 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2, eb1 ~@6 [bb3,eb4,g4]@7 ~ [c4,f4,a4]@7 ~ [d4,g4,bb4]@16 ~]/5", // D7 Eb F Gm
AP: "g1@3 ~ g1@2 ~@2 [d4,a4,c5] ~@3 [g1,d4]@2 ~@2, ~@8 g1@2 ~@2 [g4,bb4] ~@3", // D7 G5 Gm
AQ: "[[d4,a4,c5]@4 eb1@2 [eb4,g4,bb4]@2 eb1@2 ~@2 eb1@2 ~@2 eb1@3 ~ eb1@2 ~@2 eb1@2 ~@2 eb1@2 [c4,f4,a4]@4 [c4,f4,a4]@2 f1@2 ~@2 [c4,f4,a4]@4 ~@2 [g1,d4,g4,bb4]@2, eb1 ~@6 [bb3,eb4,g4]@7 ~@6 f1 ~@3]/3", // D7 Eb F Gm Eb
})).s("gm_piano").gain(0.27).pan(0.2)
// chords · synth brass 1
const synth_brass_1 = note(`<
~@7 A@4 B@2 C@6 B@2 D@2 ~@16 E@5 F@7 G@4 H@5 I@7 J ~@15 G@4 H@5 K@7 L@4 M@2 N@6 O@2 P@7 F@7 G@4 H@5 I@7 J ~@7 Q@8 R@8
S T@7 U ~ V@7 W@5 X ~
>`.pickRestart({
A: "[~@14 [f3,bb3,d4]@31 ~ [f3,bb3,d4]@5 ~ [g3,bb3,eb4] ~@3 [f3,bb3,d4] ~@3 [g3,bb3,eb4] ~@3]/4", // Bb Eb Bb Eb
B: "[[f3,bb3,d4]@5 ~ [g3,bb3,eb4]@6 ~@2 [f3,bb3,d4]@5 ~ [g3,bb3,eb4] ~@3 [f3,bb3,d4] ~@3 [g3,bb3,eb4] ~@3]/2", // Bb Eb Bb Eb Bb Eb
C: "[[f3,bb3,d4]@4 ~@2 [g3,bb3,eb4]@6 ~@2 [g3,c4,eb4]@7 ~ [f3,bb3,d4]@23 ~ [f3,bb3,d4]@26 bb3@2 c4@2 d4 ~ [f3,bb3,d4]@5 ~ [g3,bb3,eb4] ~@3 [f3,bb3,d4] ~@3 [g3,bb3,eb4] ~@3]/6", // Bb Eb Cm Bb Eb Bb Eb
D: "[[f3,bb3,d4]@2 ~ [g3,bb3,eb4]@3 ~ [eb4,g4,c5]@3 ~ [d4,f4,bb4]@5]/2", // Bb Eb Cm Bb
E: "[~@14 [c4,e4,a4]@31 ~ [bb3,d4,g4]@14 ~@2 [a3,c4,f4]@15 ~@3]/5", // Am Gm F
F: "[[c4,e4,a4]@27 ~@3 [bb3,d4,g4]@32 [bb3,eb4,g4]@16 [c4,f4,a4]@16 [eb4,g4,bb4]@18]/7", // Am Gm Eb F Eb
G: "[[eb4,g4,bb4] ~@13 [d4,g4,bb4]@27 ~ [c4,f4,a4] ~@3 [bb3,eb4,g4]@18]/4", // Eb Gm F Eb
H: "[~@6 [bb3,eb4,g4] ~@3 [c4,f4,a4] ~@3 [bb3,eb4,g4]@15 ~ [c4,f4,a4]@14 ~@2 [d4,g4,bb4]@27 ~ [f4,a4] ~@5, ~@37 c4 ~@2]/5", // Eb F Eb F Gm F
I: "[[bb3,d4,g4]@24 ~@2 [c4,f4,a4] ~@3 [bb3,eb4,g4]@27 ~ [c4,f4,a4] ~@3 [bb3,eb4,g4]@14 ~@2 [c4,f4,a4]@14 ~@2 [d4,g4,bb4]@14 [f4,g4] [a4,bb4] [c5,d5] [eb5,f5]]/7", // Gm F Eb F Eb F Gm Fsus2 …
J: "[bb4,d5,g5] ~@7", // Gm
K: "[[bb3,d4,g4]@24 ~@2 [c4,f4,a4] ~@23 g5@2 a5 ~ bb5@2 ~@2 [c4,f4,a4] ~@3 [bb3,eb4,g4,bb5]@14 ~@2 [c4,f4,a4,c6]@15 ~ [d4,g4,bb4]@14 [f4,g4] [a4,bb4] [c5,d5] [eb5,f5], ~@30 [bb3,eb4,g4]@27 ~ c6@2 ~@34 g6@18]/7", // Gm F Eb F Gm Fsus2 Bbmaj7 Csus2 …
L: "[[bb4,d5,g5]@2 ~@12 [f3,bb3,d4]@29 ~@3 [bb3,d4,f4]@5 ~ [bb3,g4]@2 ~@2 [d4,f4]@2 ~@2 [bb3,eb4] ~@3, ~@52 eb4 ~@3 bb3 ~@3 g4@2 ~@2]/4", // Gm Bb Eb Dm Eb5
M: "[[bb3,d4,f4]@5 ~ [bb3,eb4,g4]@6 ~@2 [bb3,d4,f4]@5 ~ [bb3,g4]@2 ~@2 [d4,f4]@2 ~@2 [bb3,eb4] ~@3, ~@20 eb4 ~@3 bb3 ~@3 g4@2 ~@2]/2", // Bb Eb Bb Eb Dm Eb5
N: "[[bb3,d4,f4]@4 ~@2 [bb3,eb4,g4]@6 ~@2 [c4,eb4,g4]@6 ~@2 [bb3,d4,f4]@19 ~ [bb3,d4,f4] ~@3 [f3,bb3,d4]@29 ~@3 [bb3,d4,f4]@5 ~ [bb3,g4]@2 ~@2 [d4,f4]@2 ~@2 [bb3,eb4] ~@3, ~@84 eb4 ~@3 bb3 ~@3 g4@2 ~@2]/6", // Bb Eb Cm Bb Eb Dm Eb5
O: "[[bb3,d4,f4]@5 ~ [bb3,eb4,g4]@6 ~@2 [bb3,d4,f4]@5 ~ [bb3,g4]@2 ~@2 [bb3,f4]@2 ~@2 [bb3,eb4,g4]@2 ~@2, ~@20 eb4 ~@3 d4 ~@7]/2", // Bb Eb Bb Eb Bb5 Eb
P: "[[bb3,d4,f4]@4 ~@2 [bb3,eb4,g4]@6 ~@2 [c4,eb4,g4]@6 ~@2 [bb3,d4,f4]@23 ~ [c4,e4,a4]@31 ~ [bb3,d4,g4]@14 ~@2 [a3,c4,f4]@15 ~@3]/7", // Bb Eb Cm Bb Am Gm F
Q: "[~@24 [d4,c5]@2 ~@2 [g4,bb4] ~@3 [d4,a4,c5]@5 ~ [d4,g4]@2 ~@34 [c4,f4,a4] ~@3 [bb3,eb4,g4]@15 ~@3 f2@13 ~ [g2,d4,g4,bb4]@18, ~@14 [d4,g4,bb4]@9 ~ a4 ~@3 d4@2 ~@8 bb4 ~@7 [bb3,eb4,g4]@26 ~@22 [c4,f4,a4]@14 ~@20, ~@16 g2@31 ~ eb2@47 ~@33]/8", // D7 Gm D7 G5 F Eb Gm Eb …
R: "[[g4,bb4,d5] ~ [g4,bb4,d5] ~ [f4,a4,c5]@2 ~@2 [d4,g4,bb4]@2 ~@2 [c4,f4,a4] ~ [d4,g4,bb4]@26 [f4,a4,c5]@4 ~@2 [eb4,g4,bb4]@26 ~@2 [c4,f4,a4] ~@3 [bb3,eb4,g4]@14 ~@2 [c4,f4,a4]@14 ~@2 [d4,g4,bb4]@18]/8", // Gm F Gm F Gm F Eb F …
S: "~@8 [d4,g4,bb4] ~ [f4,a4,c5] ~@5", // Gm F
T: "[[d4,g4,bb4]@22 ~@2 [f4,a4,c5]@4 ~@2 [eb4,g4,bb4]@26 ~@2 [c4,f4,a4] ~@3 [bb3,eb4,g4]@14 ~@2 [c4,f4,a4]@14 ~@2 [d4,g4,bb4]@17 ~]/7", // Gm F Eb F Eb F Gm
U: "[g4,bb4,d5] ~ [g4,bb4,d5] ~ [a4,c5] ~@3 [g4,bb4] ~@3 [c4,f4,a4]@4, ~@2 f4 ~ d4 ~@3", // Gm Am Gm F
V: "[~@8 [f4,a4,c5]@4 ~@2 [eb4,g4,bb4]@26 ~@2 [c4,f4,a4] ~@3 [bb3,eb4,g4]@14 ~@2 [c4,f4,a4]@14 ~@2 [d4,g4,bb4]@25 ~ [d4,g4,bb4] ~ [f4,a4,c5] ~@5]/7", // F Eb F Eb F Gm F
W: "[[d4,g4,bb4]@22 ~@2 [f4,a4,c5]@4 ~@2 [eb4,g4,bb4]@26 ~@2 [c4,f4,a4] ~@3 [bb3,eb4,g4]@14 ~@2 [c4,f4,a4]@2]/5", // Gm F Eb F Eb F
X: "[c4,f4,a4] ~@6 [d4,g4,bb4]", // F Gm
})).s("gm_synth_brass_1").gain(0.32)
// bass · electric bass finger
const bass = note(`<
~@7 A@2 B C D E F G H B I C J E@2 G K B@2 C D E F G L B I C J E@2 G M N O B P O@2 Q R C S T U B V W X Y Z B AA B AB W
AC Y Z B AD B@2 C D E F G L B I C J E@2 G AE B V W X Y Z B AA B AB W AC Y Z B AD B@2 C D E F G L B I C J E@2 G M N O B
P O@2 Q R C S T U B V W X Y Z B AA B AB W AC Y Z B AA B V W X Y Z B AA AF ~@6 AG B V W AH W Z AI V AI AJ AK AL AM AN B
AO B V W AH W Z AI V AI AJ AK AL AM AP ~
>`.pickRestart({
A: "[~@14 g1@5 ~ g1@2 ~@2 g1@3 ~ g1@2 ~@2]/2", B: "g1 ~ g1 ~ g1 ~ g1 ~", C: "c2 ~ c2 ~ c2 ~ c2 ~",
D: "c2@2 ~@2 c2@2 ~@2 c2@2 c2 ~ d2@2 ~@2", E: "eb2 ~ eb2 ~ eb2 ~ eb2 ~", F: "eb2@3 ~ eb2@2 ~@2 eb2@2 ~@2 eb2@2 f2@2",
G: "bb1@3 ~ bb1@2 ~@2 bb1@2 ~@2 bb1@3 ~", H: "bb1@2 ~@2 bb1@3 ~ bb1@4 a1@3 ~",
I: "g1@3 ~ g1@2 ~@2 g1@2 ~@2 g1 ~ bb1@2", J: "c2@2 ~@2 c2@2 ~@2 c2 ~ c2 ~ d2@3 ~",
K: "bb1@2 bb2 ~ bb1@2 bb2 ~ bb1@2 bb2 ~ bb1@2 bb2 ~", L: "bb1@2 ~@2 bb1@2 ~@2 f1@3 ~ gb1@2 ~@2",
M: "bb1@2 ~@2 bb1@2 ~@2 d2 ~ f2@2 ~@2 a1@2", N: "a1 ~@3 a1@2 ~@2 a1@2 ~@2 a1@2 ~@2",
O: "a1@3 ~ a1@2 ~@2 a1@2 ~@2 a1@2 ~@2", P: "d2@3 ~ d2@2 ~@2 d2@2 ~@2 d2@2 g1@2",
Q: "g1@2 ~@2 g1@2 ~@2 g1@3 ~ g1@2 ~@2", R: "g1@2 ~@2 g1@3 ~ a1@3 ~ bb1@3 ~", S: "d2@3 ~ d2@3 ~ d2@3 ~ d2@2 ~@2",
T: "f2@3 ~ f2@2 ~@2 f2@3 ~ f2@2 c2 ~", U: "f1 ~@7", V: "g1 ~ g1 ~ g1 ~ f1 ~", W: "eb1 ~ eb1 ~ eb1 ~ eb1 ~",
X: "eb1@2 ~@2 eb1@2 ~@2 eb1@3 ~ f1@3 ~", Y: "eb1@3 ~ eb1@2 ~@2 eb1@2 ~@2 eb1@3 ~",
Z: "f1@2 ~@2 f1@2 ~@2 f1@2 ~@2 f1@3 ~", AA: "g1 ~ g1 ~ g1 ~ g1 f1", AB: "g1@2 ~@2 g1@2 ~@2 g1@4 f1@3 ~",
AC: "eb1@2 ~@2 eb1@3 ~ eb1@2 ~@2 eb1 ~ f1@2", AD: "g1 ~ g2 ~ g1@2 f1 ~ g1@2 g2 ~ g1 ~ f1 ~", AE: "bb1 ~@7",
AF: "g1 ~@7", AG: "~@8 g1 ~ g1@2 f1 ~ f1 ~", AH: "eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2 f1@3 ~",
AI: "g1@2 g2@2 g1@2 ~@2 g1@2 ~@2 g1@2 g2 ~", AJ: "g1@2 ~@2 g1@2 ~@2 g1@2 g2 ~ f1@2 ~@2",
AK: "eb1@2 eb2 ~ eb1@2 ~@2 eb1@2 ~@2 eb1@2 ~@2", AL: "eb1@2 ~@2 eb1@2 ~@2 eb1@2 eb2 ~ f1@2 f2@2",
AM: "eb1@3 ~ eb1@2 ~@2 eb1@2 ~@2 eb1@2 eb2 ~", AN: "f1@2 ~@2 f1@2 ~@2 f1@2 f2 ~ f1@3 ~",
AO: "g1@2 ~@2 g1@3 ~ g1 ~ f1@2 g1 ~ f1 ~", AP: "f1@2 ~@2 f1@2 ~@2 f1@5 ~ g1@2",
})).s("gm_electric_bass_finger").gain(0.54)
// chords · rock organ
const rock_organ = note(`<
~@40 A@8 B@3 C@2 D@2 E F@8 G@3 ~@8 H ~@7 C@2 D@2 E F@8 G@3 ~@17 A@8 B@3 I@5 J@8 K@4 ~@23 L@8 M ~@7 N@7 ~
>`.pickRestart({
A: "[[a5,e6]@30 [f5,bb5,d6]@15 ~ [f5,a5,c6]@15 ~ [g5,c6,e6]@31 ~ f5@17 ~ g5@6 a5@2 bb5@4 c6@3 ~, c6@28 ~@66 d6@33 ~, ~@94 bb5@21 ~@13]/8", // A5 Bb F C
B: "[[eb5,g5,bb5]@12 ~@2 [f5,a5,c6]@15 ~ [f5,f6]@18]/3", // Eb F
C: "[~@8 [f3,g3] [a3,bb3,c4] [d4,eb4,f4] [g4,a4,bb4] [c5,d5,eb5] [f5,g5,a5] [bb5,c6,d6] [eb6,f6] ~@16, ~@15 g6@17]/2", // Fsus2 Am Dm Gm Cm F Bb Ebsus2
D: "[~@8 [bb5,d6,f6]@5 ~ [bb5,eb6,g6]@18]/2", E: "~@10 [c6,f6,a6] ~@3 [bb5,eb6,g6]@2",
F: "[~@14 [a5,c6,f6]@15 ~ [bb5,d6,g6]@31 ~ [bb5,d6,g6]@31 ~ [bb5,eb6,g6]@31 ~ [bb5,eb6,g6]@2]/8", // F Gm Eb
G: "[~@14 [a5,c6,f6]@15 ~ [g5,g6]@18]/3", H: "f6",
I: "[~@8 [f3,g3] [a3,bb3,c4] [d4,eb4,f4] [g4,a4,bb4] [c5,d5,eb5] [f5,g5,a5] [bb5,c6,d6] [eb6,f6] ~@24 a5@6 g5@27 ~ a5 ~@5, ~@15 g6@24 ~@41]/5", // Fsus2 Am Dm Gm Cm F Bb Ebsus2
J: "[g5@8 bb5 ~@3 d6@2 c6@8 ~@2 f6@5 ~ d6@31 ~ g5@25 ~ a5@6 g5@27 ~ f5 ~@5]/8",
K: "[g5@8 bb5 ~@3 d6@2 c6@8 ~@2 f6@5 ~ g6@32 g5@2]/4",
L: "[~@8 [f4,g4] b4 [c5,d5] [e5,f5] g5 [a5,b5,c6] [d6,e6,f6] g6@79 a6@16 g6@18, ~@4 a4 ~@59]/8", // Fsus2 Csus2 Fmaj7 Am Dm
M: "~@11 [c6,d6,e6,f6] [a5,b5] ~@3", // Dm7 Asus2
N: "[~@8 [f4,g4] b4 [c5,d5] [e5,f5] g5 [a5,b5,c6] [d6,e6,f6] g6@79 ~@2 f6@14 g6@2, ~@4 a4 ~@42 a6@8 ~]/7", // Fsus2 Csus2 Fmaj7 Am Dm
})).s("gm_rock_organ").gain(0.22)
// other · electric guitar clean
const electric_guitar_clean = note(`<
~@8 A B C D E F G H A B C D E F G H I J K L M N O P I Q R S T U O V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN
AO AP AQ AR AS AT AU AV AW AX I J K L M N O P I Q R S T U O AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX I J K L
M N O P I Q R S T U O V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AP ~@16 AY AZ@2
BA@2 BB BC BD AY AZ@2 BA@2 BB BC BD AY AZ@2 BA@2 BB BC BD AY AZ@2 BA@2 BE ~
>`.pickRestart({
A: "~@4 g2 ~@3 g2 ~ g2 ~ f3 ~@3", B: "g3 ~@4 g2 [bb3,d4,g4] ~@5 g2 ~@3", C: "~@4 c3 ~@5 c3 ~ f3 ~@3",
D: "g3 ~@3 c3 ~@3 c3 ~ [bb3,d4,g4] ~@5", E: "eb2 ~@3 eb2 ~@3 eb2 ~ eb2 ~ f3 ~@3", F: "g3 ~@3 eb2 ~@3 eb2 ~@7",
G: "~@4 bb1 ~@3 bb1 ~@7", H: "bb1 ~ bb3 ~ bb1 ~ bb1 ~ bb3 ~ bb3 ~@5", I: "g1@2 ~@2 g1 ~ g2 ~ g1 ~ g1 ~ f3 ~ g1 ~",
J: "g3 ~@3 g1 ~ [bb3,d4,g4] ~@5 g1 ~@3", K: "c2 ~@3 c2 ~ c3 ~ c2 ~ c2 ~ f3 ~ c2 ~",
L: "g3 ~ c2 ~ c2 ~@3 c2 ~ [bb3,d4,g4] ~ c2 ~@3", M: "eb2 ~@3 eb2 ~@3 eb2 ~ eb2 ~ f3 ~ eb2 ~",
N: "g3 ~@3 eb2 ~@3 eb2 ~ f3 ~ eb2 ~@3", O: "bb1@2 ~@2 bb1 ~@3 bb1 ~@3 bb1 ~@3",
P: "bb1 ~ bb3 ~ bb1 ~ bb1 ~ bb3 ~ bb3 ~ bb1 ~@3", Q: "g3 ~@3 g1 ~ [bb3,d4,g4] ~ g1 ~@3 g1 ~@3",
R: "c2 ~@3 c2 ~@3 c2 ~ c2 ~ f3 ~ c2 ~", S: "g3 ~ c2 ~ c2 ~ g3 ~@3 c2 ~ d2 ~@3",
T: "eb2@2 ~@2 eb2@2 ~@2 eb2 ~ eb2 ~ f3 ~ eb2 ~", U: "g3 ~ eb2 ~@3 eb2 ~@3 eb2 ~@5",
V: "bb1 ~ bb3 ~ bb1 ~@3 d2 ~ f2 ~@3 a1 ~", W: "~@8 [c4,a4] ~ [c4,a4] ~@3 [e4,a4] ~", X: "~@8 a4 ~ [c4,a4] ~@3 g4 ~",
Y: "~@8 [d4,g4] ~@5 [c4,f4] ~", Z: "~@6 [c4,f4] ~@3 [c4,f4] ~@5", AA: "~@10 a4 ~@3 a4 ~",
AB: "~@8 [c4,e4] ~ [c4,e4,a4] ~@3 [d4,g4] ~", AC: "~@8 [bb3,d4,g4] ~@5 [d4,g4] ~", AD: "~@6 [d4,g4] ~@3 [d4,g4] ~@5",
AE: "~@4 [eb4,g4] ~@3 [eb4,g4] ~ [eb4,g4] ~@5", AF: "~@4 [f4,a4] ~@3 [f4,a4] ~ [f4,a4] ~@5",
AG: "~@4 [eb4,bb4] ~@3 [eb4,bb4] ~ [eb4,bb4] ~@5", AH: "[f4,bb4] ~@15", AI: "~@2 g2 ~ g1 ~ g1 ~ g2 ~ g1 ~ f3 ~@3",
AJ: "g3 ~@3 g1 ~@3 g1 ~ [bb3,d4,g4] ~@5", AK: "~@10 f3 ~ [f3,bb3,d4]@2 ~@2",
AL: "[g3,bb3,eb4]@2 ~@2 [f3,bb3,d4] ~ [g3,bb3,eb4] ~@3 [a3,c4,f4] ~@3 [g3,bb3,eb4] ~", // Eb Bb Eb F Eb
AM: "eb2 ~@3 eb2 ~@3 eb2 ~@3 eb2 ~ f3 ~", AN: "f2 ~@3 f2 ~@3 f2 ~@3 f2 ~@3", AO: "g2 ~@3 g3 ~@3 g2 ~ g3 ~@5",
AP: "g3 ~ g2 ~ g2 ~ g3 ~ g2 ~ f3 ~@3 g3 ~", AQ: "~@2 g1 ~ g2 ~ g1 ~ g1 ~ g1 ~ f3 ~@3",
AR: "g3 ~@3 g1 ~ [bb3,d4,g4] ~@3 g1 ~@5", AS: "eb1 ~@3 eb1 ~@3 eb1 ~ g3 ~ f3 ~@3",
AT: "g3 ~@3 eb1 ~@3 eb1 ~ [bb3,eb4] ~@5", AU: "eb1 ~@3 eb1 ~ g3 ~ eb1 ~ g3 ~ f3 ~@3",
AV: "~@4 f1 ~ g3 ~ f1 ~ g3 ~ f3 ~ g3 ~", AW: "g1 ~@3 g1 ~@3 g1 ~ g3 ~ f3 ~@3",
AX: "g1 ~@3 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2", AY: "g1 ~@3 g1 ~@3 g1 ~ g1 ~ f3 ~@3",
AZ: "[g3 ~@3 g1 ~@3 g1 ~@3 f1 ~ eb1@4 ~@2 eb1@2 ~@2 eb1 ~ eb1 ~ f3@2 ~@2]/2",
BA: "[g3 ~@3 eb1 ~@3 eb1 ~ f1 ~@3 eb1@4 ~@2 eb1@2 ~@2 eb1 ~ eb1 ~ f3@2 ~@2]/2", BB: "g3 ~@3 f1 ~@3 f1 ~ f3 ~@3 g3 ~",
BC: "g1 ~@3 g1 ~@3 g1 ~ [bb3,d4,g4] ~@3 g1 ~", BD: "~@2 g1 ~@7 [bb3,d4,g4] ~@5", BE: "f1@2 ~@2 f1@2 ~@2 f1@5 ~ g1@2",
})).s("gm_electric_guitar_clean").gain(0.29).pan(0.8)
// drums · kick
const kick = s("bd").struct(`<
A B A B A B@2 C A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A B A B A B A B A B A B D E A B A B A B
A@3 B A B A@3 C A B A B A B A B A B A B A B A E A B A B A B A@3 B A B A@3 C A B A B A B A B A B A B A B A C A B A B A
B A B A B@2 E A B A B A B A@3 B A B A@5 B A B A B A@3 B A B A@5 B A B A B A@3 B A B A@5 B A B A B A@3 B A B A F ~
>`.pickRestart({
A: "x!2", B: "x ~@3 x!2 ~@2", C: "x!4", D: "x ~ x!2", E: "x", F: "x ~@2 x ~@3 x",
})).gain(0.6)
// drums · snare
const snare = s("sd").struct(`<
A@7 ~ A@15 ~ A@27 B A@7 C A@7 D A@15 B A@7 C A@7 E A@15 F A@11 B A@7 C A@7 C A@7 C A@7 C A@7 C A@7 C A@7 C A@5 G ~
>`.pickRestart({
A: "~ x ~ x", B: "x ~@6 x", C: "~@2 x ~@2 x!3", D: "~@7 x", E: "~@2 x ~ x!4", F: "~ x!7", G: "~ x!2 ~ x ~ x ~",
})).gain(0.67)
// drums · clap
const clap = s("cp").struct("<~@144 [~ x ~ x]!46 ~>").gain(0.67)
// drums · hihat
const hihat = s("hh").struct(`<
A@7 B A@15 B A@26 C ~ D A@6 C D A@6 B A@15 ~ D A@6 C D A@6 ~ A@15 ~ D A@9 E ~ D A@6 C D A@6 C D A@6 C D A@6 C D A@6 C
D A@6 C D A@6 C D A@4 C ~
>`.pickRestart({
A: "x!4", B: "x", C: "x!3 ~", D: "~ x!3", E: "~ x!2 ~",
})).gain(0.6)
// drums · open hat
const open_hat = s("oh").struct(`<
// … 58 more lines
More by Hooker John Lee
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.