0:00/0:00
// But It's Alright — Huey Lewis
// 115 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 79 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(115/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
const piano = note(`<
A B C D E D F B C D E G F B H I J@2 K B C D L B M D E G F B H I J@2 K B C D L B M D E D F B H I J@2 K B N O P Q R O S
T U Q V W X@2 Y Q Z O P Q R O S T U AA AB
>`.pickRestart({
A: "~@8 [a4,c#5,e5,a5]@3 ~@5 [a4,c#5,e5,a5]@3 ~@9 [c#5,e5,g#5,a5,c#6] ~@3", // A Amaj7
B: "[d5,f#5,b5]@3 ~ [d5,f#5,b5] ~@3 [a4,c#5,e5,a5]@3 ~@5 [a4,c#5,e5,a5]@3 ~@9 [c#5,g#5]@2 ~@2, ~@3 b4@3 ~@22 [e5,c#6] ~@3", // Bm A C#5 C#m
C: "[d5,f#5,b5]@3 ~ [d5,b5]@2 ~@2 [a4,c#5,e5,a5]@3 ~@5 [a4,c#5,e5,a5]@4 ~@8 [c#5,e5,g#5,c#6]@2 ~@2, b4 ~@2 b4@3 ~@26, ~@4 f#5 ~@27", // Bm G A C#m
D: "[d5,f#5,b5]@3 ~ [d5,f#5,b5]@2 ~@2 [a4,c#5,e5,a5]@3 ~@5 [a4,c#5,e5,a5]@3 ~@9 [c#5,e5,g#5,c#6]@2 ~@2, ~@3 b4@4 ~@21 a5 ~@3", // Bm A C#m
E: "[d5,f#5,b5]@3 ~ [d5,f#5,b5]@2 ~@2 [a4,c#5,e5,a5]@3 ~@5 [a4,c#5,e5,a5]@3 ~@9 [c#5,e5,g#5]@2 ~@2, ~@3 b4@4 ~@21 [a5,c#6] ~@3", // Bm A C#m A
F: "[d5,f#5,b5]@2 ~@2 [d5,f#5,b5]@2 ~@2 [a4,c#5,e5,a5]@3 ~@5 [a4,c#5,e5,a5]@3 ~@9 [c#5,e5,g#5,a5,c#6] ~@3, ~@3 b4@4 ~@25", // Bm A Amaj7
G: "[d5,f#5,b5]@3 ~ [d5,f#5,b5]@2 ~@2 [a4,c#5,e5,a5]@3 ~@5 [a4,c#5,e5,a5]@4 ~@8 [c#5,e5,g#5,c#6]@2 ~@2, ~@3 b4@4 ~@21 a5 ~@3", // Bm A C#m
H: "[d5,f#5,b5]@3 ~ [d5,b5]@2 ~@2 [c#5,e5,g#5]@3 ~@5 [c#5,e5,g#5]@3 ~@5 [c#5,e5,g#5]@3 ~@3 c#4@2, b4 ~@2 b4@3 ~@9 [c#4,g#4]@2 ~@6 [c#4,g#4]@2 ~@5 g#4 ~, ~@4 f#5 ~@27", // Bm G C#m C#5
I: "[c#5,e5,g#5] ~@2 e5 g#5 ~@3 [b4,d5,f#5]@3 ~@5 [b4,d5,f#5]@3 ~@5 [b4,d5,f#5]@3 ~@3 [b3,f#4] ~, ~@2 [c#4,g#4]@2 ~@11 [b3,f#4]@2 ~@6 [b3,f#4]@2 ~@7, ~@3 c#5@2 ~@27", // C#m Bm B5 C#5 B5
J: "[[b4,d5,f#5] ~ [b3,f#4]@2 [b4,d5] ~@3 [c#5,e5,g#5]@2 ~@5 [c#4,g#4] [c#5,e5,g#5]@2 ~@4 g#4 c#4 [c#5,e5,g#5]@2 ~@4 g#4 c#5 g#5@2 ~ [c#5,g#5]@2 ~@2 [b4,d5,f#5]@2 f#4@2 ~@3 [b4,d5,f#5]@2 [b3,f#4] ~@3 [b4,d5] ~@3 [e4,b4,e5] ~@3 [e4,b4,e5,g#5] f#5 ~@2, ~@4 f#5@2 ~@10 f5 ~@13 c#4@2 ~@2 [c#4,g#4]@2 ~@5 b3 ~@22, ~@31 e5@2 ~@2 e5 ~@16 f#5@2 ~@2 g#5@2 ~@6]/2", // Bm B5 Bm C#m C#5 C#m C#5 Bm …
K: "[e4,b4,e5,g#5]@3 ~@5 [a4,c#5,e5,a5]@3 ~@5 [a4,c#5,e5,a5]@3 ~@9 [c#5,e5,g#5,a5,c#6] ~@3, f#5 ~@31", // E A Amaj7
L: "[d5,f#5,b5]@3 ~ [d5,f#5,b5]@2 ~@2 [a4,c#5,e5,a5]@3 ~@5 [a4,c#5,e5,a5]@3 ~@9 [c#5,e5,g#5,a5,c#6] ~@3, ~@3 b4@4 ~@25", // Bm A Amaj7
M: "[d5,f#5,b5]@3 ~ [d5,b5]@2 ~@2 [a4,c#5,e5,a5]@3 ~@5 [a4,c#5,e5,a5]@3 ~@9 [c#5,e5,g#5,c#6]@2 ~@2, b4 ~@2 b4@3 ~@26, ~@4 f#5 ~@27", // Bm G A C#m
N: "[d5,f#5,b5]@3 ~ [d5,b5]@2 ~@2 [b4,d#5,f#5,b5]@3 ~@5 [b4,d#5,f#5,b5]@3 ~@9 [d#5,f#5,a#5,d#6]@2 ~@2, b4 ~@2 b4@3 ~@26, ~@4 f#5 ~@27", // Bm G B D#m
O: "[e5,g#5,c#6]@3 ~ [e5,g#5,c#6]@2 ~@2 [b4,d#5,f#5,b5]@3 ~@5 [b4,d#5,f#5,b5]@3 ~@9 [d#5,f#5,a#5,d#6]@2 ~@2, ~@3 c#5@4 ~@21 b5 ~@3", // C#m B D#m
P: "[e5,g#5,c#6]@3 ~ [e5,g#5,c#6]@2 ~@2 [b4,d#5,f#5,b5]@3 ~@5 [b4,d#5,f#5,b5]@3 ~@9 [d#5,f#5,a#5,b5,d#6] ~@3, ~@3 c#5@4 ~@25", // C#m B Bmaj7
Q: "[e5,g#5,c#6]@3 ~ [e5,g#5,c#6] ~@3 [b4,d#5,f#5,b5]@3 ~@5 [b4,d#5,f#5,b5]@3 ~@9 [d#5,a#5]@2 ~@2, ~@3 c#5@3 ~@22 [f#5,d#6] ~@3", // C#m B D#5 D#m
R: "[e5,g#5,c#6]@3 ~ [e5,c#6]@2 ~@2 [b4,d#5,f#5,b5]@3 ~@5 [b4,d#5,f#5,b5]@4 ~@8 [d#5,f#5,a#5,d#6]@2 ~@2, c#5 ~@2 c#5@3 ~@26, ~@4 g#5 ~@27", // C#m B D#m
S: "[e5,g#5,c#6]@3 ~ [e5,g#5,c#6]@2 ~@2 [b4,d#5,f#5,b5]@3 ~@5 [b4,d#5,f#5,b5]@3 ~@9 [d#5,f#5,a#5]@2 ~@2, ~@3 c#5@4 ~@21 [b5,d#6] ~@3", // C#m B D#m B
T: "[e5,g#5,c#6]@3 ~ [e5,g#5,c#6]@2 ~@2 [b4,d#5,f#5,b5]@3 ~@5 [b4,d#5,f#5,b5]@4 ~@8 [d#5,f#5,a#5,d#6]@2 ~@2, ~@3 c#5@4 ~@21 b5 ~@3", // C#m B D#m
U: "[e5,g#5,c#6]@2 ~@2 [e5,g#5,c#6]@2 ~@2 [b4,d#5,f#5,b5]@3 ~@5 [b4,d#5,f#5,b5]@3 ~@9 [d#5,f#5,a#5,b5,d#6] ~@3, ~@3 c#5@4 ~@25", // C#m B Bmaj7
V: "[e5,g#5,c#6]@3 ~ [e5,c#6]@2 ~@2 [d#5,f#5,a#5]@3 ~@5 [d#5,f#5,a#5]@3 ~@5 [d#5,f#5,a#5]@3 ~@3 d#4@2, c#5 ~@2 c#5@3 ~@9 [d#4,a#4]@2 ~@6 [d#4,a#4]@2 ~@5 a#4 ~, ~@4 g#5 ~@27", // C#m D#m D#5
W: "[d#5,f#5,a#5] ~@2 f#5 a#5 ~@3 [c#5,e5,g#5]@3 ~@5 [c#5,e5,g#5]@3 ~@5 [c#5,e5,g#5]@3 ~@3 [c#4,g#4] ~, ~@2 [d#4,a#4]@2 ~@11 [c#4,g#4]@2 ~@6 [c#4,g#4]@2 ~@7, ~@3 d#5@2 ~@27", // D#m C#m C#5 D#5 C#5
X: "[[c#5,e5,g#5] ~ [c#4,g#4]@2 [c#5,e5] ~@3 [d#5,f#5,a#5]@2 ~@5 [d#4,a#4] [d#5,f#5,a#5]@2 ~@4 a#4 d#4 [d#5,f#5,a#5]@2 ~@4 a#4 d#5 a#5@2 ~ [d#5,a#5]@2 ~@2 [c#5,e5,g#5]@2 g#4@2 ~@3 [c#5,e5,g#5]@2 [c#4,g#4] ~@3 [c#5,e5] ~@3 [f#4,c#5,f#5] ~@3 [f#4,c#5,f#5,a#5] g#5 ~@2, ~@4 g#5@2 ~@10 g5 ~@13 d#4@2 ~@2 [d#4,a#4]@2 ~@5 c#4 ~@22, ~@31 f#5@2 ~@2 f#5 ~@16 g#5@2 ~@2 a#5@2 ~@6]/2", // C#m C#5 C#m D#m D#5 D#m D#5 C#m …
Y: "[f#4,c#5,f#5,a#5]@3 ~@5 [b4,d#5,f#5,b5]@3 ~@5 [b4,d#5,f#5,b5]@3 ~@9 [d#5,f#5,a#5,b5,d#6] ~@3, g#5 ~@31", // F# B Bmaj7
Z: "[e5,g#5,c#6]@3 ~ [e5,c#6]@2 ~@2 [b4,d#5,f#5,b5]@3 ~@5 [b4,d#5,f#5,b5]@3 ~@9 [d#5,f#5,a#5,d#6]@2 ~@2, c#5 ~@2 c#5@3 ~@26, ~@4 g#5 ~@27", // C#m B D#m
AA: "[e5,g#5,c#6]@3 ~ [e5,g#5,c#6] ~@3 [b4,d#5,f#5,b5]@3 ~@5 [b4,d#5,f#5,b5]@3 ~@9 [d#5,f#5,a#5,b5,d#6] ~@3, ~@3 c#5@3 ~@26", // C#m B Bmaj7
AB: "[e5,g#5,c#6]@3 ~ [e5,g#5,c#6] ~@3 [b4,d#5,f#5,b5]@3 ~@5 [b4,d#5,f#5,b5]@3 ~@13, ~@3 c#5@3 ~@26", // C#m B
})).s("gm_piano").gain(0.29)
// chords · piano
const piano_2 = note("<~@18 A B C D E F G H I J K L M ~@48>".pickRestart({
A: "~@14 [e5,g#5] ~", B: "~ [d5,f#5] ~ [d5,f#5] f#5@2 ~@2 [c#5,e5]@3 ~@5 [c#5,e5]@3 ~@9 [e5,g#5]@2 ~@2, ~@4 d5 ~@27",
C: "f#5@2 f#5@2 f#5@2 ~@3 [c#5,e5]@2 ~@5 [c#5,e5]@3 ~@10 e5@2 ~, d5 ~ d5 ~ d5 ~@23 g#5@2 ~@2", // C#m
D: "f#5@2 f#5@2 f#5@2 ~@3 [c#5,e5]@3 ~@4 [c#5,e5]@3 ~@9 [e5,g#5]@2 ~@2, d5 ~ d5 ~ d5 ~@27", // C#m E
E: "[d#5,f#5]@2 f#5@2 [d5,f#5]@2 ~@3 [c#5,e5]@3 ~@4 [c#5,e5]@3 ~@9 [e5,g#5]@3 ~, [d5,e5] ~ d5 ~@29", // D#m D C#m E Dsus2
F: "f#5@2 f#5@2 f#5@2 ~@3 [c#5,e5]@2 ~@5 [c#5,e5]@3 ~@9 [e5,g#5]@2 ~@2, d5 ~ d5 ~ d5 ~@27", // C#m E
G: "~ d5!2 f#5 f#5@2 ~@3 [c#5,e5]@2 ~@6 [c#5,e5]@3 ~@8 [e5,g#5]@2 ~@2, ~ f#5@2 ~ d5 ~@27", // C#m E
H: "f#5 d5 f#5@2 f#5@2 ~@3 [c#5,e5]@2 ~@6 [c#5,e5]@2 ~@10 [e5,g#5]@2 ~, ~@2 d5 ~ d5 ~@27", // C#m E
I: "~ f#5@2 [d5,f#5]!2 ~@4 [c#5,e5]@2 ~@5 [c#5,e5]@2 ~@10 [e5,g#5]@2 ~@2, ~ d5 ~@30", // D C#m E
J: "f#5@2 d5 ~ d5 ~@4 [c#5,e5]@2 ~@5 [c#5,e5]@2 ~@11 e5@2 ~, d5 ~ f#5@4 ~@22 g#5@2 ~@2", // C#m
K: "f#5@2 f#5@2 f#5@2 ~@3 [c#5,e5]@2 ~@6 [c#5,e5]@2 ~@9 [e5,g#5]@2 ~@2, d5 ~ d5 ~ d5 ~@27", // C#m E
L: "f#5@2 f#5@2 f#5@2 ~@3 c#5@2 ~@5 [c#5,e5]@2 ~@10 e5@2 ~@2, d5 ~ d5 ~ d5 ~@4 e5 ~@6 d#5 ~@10 g#5@2 ~@3", // C#m
M: "f#5@2 [d5,f#5] [d5,f#5]@2 ~@27, d5 ~@31", // D
})).s("gm_piano").gain(0.2)
// other · brass section
const brass_section = note("<~@50 A@2 B@2 C@2 D@2 E F G H I@4 J K L M N@4 O@2 P@2 Q>".pickRestart({
A: "[~@9 e5@42 ~ [f#4,f#5]@4 [e4,e5]@2 ~@2 [e4,e5]@4, ~@4 [a4,c#5]@21 ~@7]/2", // F# E A
B: "[[f#4,f#5]@7 ~ [b4,d#5,f#5]@42 ~@2 [g#4,g#5]@4 [f#4,f#5]@2 ~@2 [f#4,f#5]@4]/2", // F# B G# F#
C: "[~ g#5@4 ~@3 [b4,b5]@39 ~@6 g#5@3 [f#4,f#5]@2 ~@2 [f#4,f#5]@3 ~, g#4@4 ~@48 g#4@3 ~@9]/2", // B F#
D: "[[g#4,g#5]@7 ~ [b3,b4]@43 ~@2 [g#4,g#5]@3 [f#4,f#5]@2 ~@2 [f#4,f#5]@4]/2", E: "~ [g#4,g#5]@5 ~@22 [f#4,f#5]@3 ~",
F: "[g#4,g#5]@2 g#4 ~ g#4@2 ~@22 [g#4,g#5]@4, ~ g#5@2 ~@13", G: "[f#4,f#5]@2 ~@2 [f#4,f#5]@3 ~@25",
H: "~@27 [g#4,g#5]@4 ~", // G#
I: "[[f#4,f#5]@2 ~@2 [f#4,f#5]@2 ~@3 c#5 ~@31 [e4,c#5]@30 ~@2 [f#4,a#4,d#5]@29 ~@2 [e4,g#4,c#5]@17 ~@7, ~@8 [f#4,a#4,d#5]@31 ~ g#4@30 ~@58]/4", // F# C#m D#m C#m D#m
J: "~@9 b4@3 ~@5 [b4,d#5,f#5]@4 ~@8 [d#5,f#5,a#5]@3, ~@2 [d#5,f#5] ~@5", // B D#m
K: "~@4 [c#5,e5,g#5]@3 ~@2 [b4,d#5,f#5]@3 ~@4 [b4,d#5,f#5]@3 ~@13", // C#m B
L: "~@8 [b4,d#5,f#5]@4 ~@4 [b4,d#5,f#5]@4 ~@8 [d#5,f#5,a#5]@3 ~", // B D#m
M: "~@3 [c#5,e5,g#5]@3 ~@3 [b4,d#5,f#5]@3 ~@4 [b4,d#5,f#5]@3 ~@13", // C#m B
N: "[~@8 [b4,b5]@44 [g#4,g#5]@4 [f#4,f#5]@2 ~@6 [g#4,g#5]@6 ~@3 [b3,b4]@42 ~ [g#4,g#5]@4 [f#4,f#5]@2 ~@3 f#4@3, ~@61 [f#4,f#5]@5 ~@58 f#5@3 ~]/4", // B G# F# G# B G# F#
O: "[[g#4,g#5]@6 ~@2 [b4,b5]@42 ~@2 [g#4,g#5]@4 [f#4,f#5]@2 ~@3 f#4@3, ~@60 f#5@3 ~]/2", // G# B G# F#
P: "[[g#4,g#5]@5 ~@3 [b3,b4]@41 ~@4 g#4@3 ~ f#5@2 ~@2 f#5@2 ~, ~@52 g#5@4 f#4@2 ~@3 f#4 ~@2]/2", // G# B
Q: "~ [g#4,g#5]@2 ~@6 g#5 ~@6 [b3,b4,d#5,f#5,b5]@4 ~@12, ~@8 [b3,b4,d#5,f#5,b5]@4 ~@4 g#5 ~@15", // G# B
})).s("gm_brass_section").gain(0.2)
// chords · piano
const piano_3 = note("<~@14 A@4 B ~@3 C@2 D@2 E@2 F@2 G@4 H ~@11 I J@3 K ~@28>".pickRestart({
A: "[~@8 c#3@32 b2@31 ~ c#3@32 f#3@16 e3@4 ~@4]/4", B: "e3 ~ a2 ~@5",
C: "[~@8 a4@42 ~@3 f#4@3 e4@2 ~@3 e4@2 ~, ~@7 g4@2 ~@55]/2", D: "[f#4@8 a3@40 ~@5 f#4@3 e4@2 ~@2 e4@2 ~@2]/2",
E: "[f#4@4 e4@2 ~@2 a4@41 ~@3 f#4@3 ~ e4@2 ~@2 e4 ~@3]/2", F: "[~ f#4@7 a3@40 ~@4 f#4@4 e4@2 ~@2 e4@3 ~, e4 ~@31]/2",
G: "[f#4@5 ~@4 [c#4,e4]@31 [b3,d4,f#4]@30 ~@3 [c#4,e4]@30 ~ [a3,d4,f#4]@15 ~@2 [b3,e4,g#4]@4 ~@3, ~@4 g#4@16 ~@16 g#4@15 ~@13]/4", // C#m Bm C#m D E
H: "[b3,e4,g#4]@3 ~@13", I: "~@8 [c#3,c#4]@10 ~@5 [e3,e4]@4 ~ g#4@4, ~@20 [c#3,c#4]@5 ~@2 g#3@5",
J: "[~@4 [f#3,f#4]@19 ~ d4@15 ~ [c#3,c#4]@10 ~@2 c#4@3 [e3,e4]@8 [g#3,g#4]@7 ~ [f#3,f#4]@2 [d3,f#3,d4,f#4]@2 ~@2 [d3,f#3] [d4,f#4] [d3,f#3,d4,f#4]@2 ~@3 [f#3,f#4]@2 ~@2 [e3,g#3,e4,g#4]@3 ~@5, ~@23 d3@15 ~@13 c#3@5 ~@15 [d3,d4] ~@11 d3@2 ~@11, ~@84 d4 ~@11]/3", // F# C# E G# F# D F# E …
K: "[e3,g#3,e4,g#4]@5 ~@27", // E
})).s("gm_piano").gain(0.29)
// other · piano
const piano_4 = note("<~@34 A B C D@2 E F G H I J K L ~@32>".pickRestart({
A: "~@16 [a5,a6]@9 ~@7", B: "[a5,a6]@10 ~@6 [a5,a6]@11 ~@5", C: "[a5,a6]@11 ~@5 [a5,a6]@12 ~@4",
D: "[~ a6@12 ~@3 [a5,a6]@13 ~@2 [a5,a6]@7 ~@3 [e5,e6]@4 ~@3 [e5,e6]@7 ~ [f#5,f#6]@3 ~ [a5,a6]@4, a5@3 ~@13]/2", // A E F# A
E: "~@5 [c#6,c#7]@3 ~@4 [c#6,c#7]@2 ~@2 [a5,a6]@4 ~@4 [f#5,f#6]@4 ~ e6@3, ~@7 e5", // C# A F#
F: "~@4 [e5,e6]@4 ~@8 [e5,e6]@2 ~@2 [e5,e6]@2 ~@2 [f#5,f#6]@2 ~@2 [a5,a6]@3 ~", // E F# A
G: "~@4 [c#6,c#7]@3 ~@5 [c#6,c#7]@3 ~@6 c#7@3 ~@4 [a5,a6]@4, ~@20 c#6@3 ~@9", // C# A
H: "~@8 [e5,e6]@4 ~@4 [e5,e6]@2 ~@2 [e5,e6]@2 ~@2 [f#5,f#6]@2 ~@2 [a5,a6]@3 ~", // E F# A
I: "~@4 [c#6,c#7]@4 ~@4 [c#6,c#7]@3 ~@2 a6@4 ~@3 [f#5,f#6]@3 ~ [e5,e6]@4, ~@4 a5 ~@3", // C# F# E
J: "~@5 [e5,e6]@3 ~@8 [e5,e6]@2 ~@2 [e5,e6]@2 ~@2 [f#5,f#6]@2 ~@2 [a5,a6]@3 ~", // E F# A
K: "~@4 [c#6,c#7]@3 ~@5 [c#6,c#7]@3 ~@5 [a5,a6]@2 ~@3 [f#5,f#6]@4 ~@3", L: "[e5,e6]@5 ~@27",
})).s("gm_piano").gain(0.27)
// bass · piano
const bass = note(`<
~ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF@2 AG AH K AI AJ K AK AL S AM AN AO AP@2 AQ AR
AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP@2 BQ BR BS BT
>`.pickRestart({
A: "~@7 f#2, ~@27 e2@2 ~@3", B: "~ e2@3 f#2@4 ~ a1@3 ~@5 a1@4 ~@3 e2@8", C: "~ d2@6 ~ a1@3 ~@6 a1@4 ~@3 e2@7 ~",
D: "d2@7 ~@2 a1@3 ~@4 a1@4 ~@4 d2 e2@7", E: "d2@8 ~ a1@3 ~@5 a1@3 ~@5 e2@7", F: "d2@4 ~@5 a1@3 ~@4 a1@3 ~@5 e2@8",
G: "d2@6 ~@2 a1@4 ~@4 a1@5 ~@4 e2@7", H: "d2@7 ~ a1@2 ~@6 a1@3 ~@5 e2@8", I: "d2@8 a1@3 ~@5 a1@4 ~@5 e2@7",
J: "~ d2@7 a1@2 ~@6 a1@3 ~@6 e2@7", K: "d2@2 a1 ~ a1 ~ e2@2", L: "d2@8 a1@4 ~@5 a1@4 ~@4 e2@7",
M: "d2@8 a1@3 ~@4 a1@4 ~@5 e2@8", N: "d2@8 c#2@4 ~@2 c#2@2 g#1@4 b1@4 ~ c#2@5 ~@2",
O: "g#1@4 c#2@2 ~@2 b1@4 ~@3 f#1@5 ~@3 b1@5 ~@2 b1@2, ~@7 b1 ~@3 f#1 ~@4",
P: "f#1@4 b1@3 ~ c#2@5 ~ c#2@2 ~ g#1@3 b1@4 ~ c#2@5 c#2@2",
Q: "g#1@4 c#2@3 ~ d2@4 ~@4 d2@2 a1@2 d2@2 ~@3 e2@2 ~ e2@2 ~@2",
R: "~ e2@2 b1@4 ~@2 a1@4 ~@4 a1@4 ~@3 e2@8, ~@3 c#2@2 ~@27", S: "d2@8 a1@4 ~@4 a1@4 ~@5 e2@7",
T: "d2@8 a1@4 ~@5 a1@3 ~@4 f#2@3 ~ e2@3 ~", U: "c#2@3 ~ b1@4 a1@3 ~@5 a1@4 ~@4 e2@8, ~@3 c#2@4 ~@25",
V: "d2@7 ~ a1@4 ~@4 a1@4 ~@5 e2@7", W: "d2@8 ~ a1@4 ~@3 a1@5 ~@3 e2@6 ~@2", X: "d2@6 ~@2 a1@4 ~@4 a1@3 ~@6 e2@7",
Y: "d2@8 a1@4 ~@4 a1@4 ~@4 e2@7 ~", Z: "d2@8 a1@4 ~@4 a1@5 ~ d2@2 e2@8", AA: "d2@4 e2@4 a1@4 ~@5 a1@4 ~@4 e2@7",
AB: "d2@8 a1@4 ~@5 a1@4 ~@3 e2@8", AC: "d2@8 a1@4 ~@5 a1@4 ~ d2@2 e2@7 ~",
AD: "d2@5 ~@4 c#2@4 ~ c#2@2 g#1@5 ~ g#1@2 ~ c#2@4 ~ c#2@2",
AE: "g#1@4 c#2@2 ~@2 b1@3 ~@3 b1@2 f#1@3 ~@3 f#1@2 b1@3 ~@3 b1@2",
AF: "[f#1@4 b1@3 ~ c#2@4 ~@2 c#2@2 ~ g#1@5 g#1@2 c#2@5 ~@2 c#2@2 g#1@3 c#2@3 ~@2 d2@5 a1@2 d2@4 a1@3 e2@2 ~@3 e2@2 ~@2]/2",
AG: "e2@2 ~ a#1 b1@2 ~@2 a1@3 ~@6 a1@4 ~@4 e2@7, ~ c#2 ~@14", AH: "~ d2@8 a1@3 ~@4 a1@4 ~@4 e2@7 ~",
AI: "d2@8 a1@4 ~@4 a1@4 ~@2 d2@2 e2@7 ~", AJ: "d2@8 a1@3 ~@6 a1@5 ~@3 e2@7", AK: "~ d2@7 ~ a1@4 ~@4 a1@4 ~@3 e2@8",
AL: "d2@9 a1@4 ~@4 a1@4 ~@3 e2@8", AM: "d2@8 a1@4 ~@4 a1@5 ~@4 e2@7", AN: "~ d2@7 a1@4 ~@5 a1@4 ~@4 e2@7",
AO: "d2@8 a1@3 ~@5 a1@4 ~@4 e2@8",
AP: "[d2@5 ~@3 c#2@5 ~@2 g#1@5 ~@2 g#1 c#2@5 ~@3 g#1@4 ~ c#2@2 ~@2 b1@4 ~@2 b1@2 f#1@5 ~ f#1 b1@5 ~@2 b1@2, ~@7 c#2 ~@7 c#2 ~@16]/2",
AQ: "f#1@2 b1 ~ c#2@2 ~ c#2 g#1@2 ~ g#1 c#2@2 ~ c#2",
AR: "g#1@3 ~ c#2@3 ~ d2@3 ~ d2@2 ~@2 d2@2 a1@2 d2@2 ~@3 e2@2 ~ e2@2 ~@2",
AS: "e2@2 c#2@2 b1@2 ~@2 a1@4 ~@5 a1@5 ~@3 e2@7", AT: "~ d2@7 a1@3 ~@5 a1@4 ~@5 e2@7",
AU: "d2@6 ~@2 b1@4 ~@4 b1@5 ~@3 f#2@8", AV: "~ e2@7 ~ b1@4 ~@3 b1@5 ~@3 f#2@7 ~",
AW: "e2@7 ~ b1@3 ~@5 b1@4 ~@4 f#2@7 ~", AX: "e2@7 ~@2 b1@3 ~@5 b1@4 ~@3 f#2@6 ~@2",
AY: "e2@3 ~ b1@2 ~@2 b1@2 ~@2 f#2@3 ~", AZ: "e2@7 ~ b1@3 ~@5 b1@5 ~@3 f#2@6 ~@2",
BA: "e2@5 ~@3 b1@4 ~@4 b1@4 ~@4 f#2@7 ~", BB: "e2@6 ~@3 b1@4 ~@3 b1@5 ~@3 f#2@6 ~@2",
BC: "e2@6 ~@2 b1@4 ~@4 b1@5 ~@3 f#2@6 ~@2", BD: "e2@8 ~ b1@3 ~@4 b1@5 ~@4 f#2@7",
BE: "~ e2@5 ~@2 d#2@6 ~@3 a#1@6 ~@2 d#2@7", BF: "a#1@4 d#2@2 ~@2 c#2@5 ~ c#2 g#1@5 ~@2 g#1@2 c#2@6 c#2@2",
BG: "~ g#1@3 c#2@3 ~@2 d#2@4 ~ d#2@2 a#1@4 ~@2 a#1@2 d#2@4 ~@2 d#2@2",
BH: "~ a#1@3 d#2@4 e2@5 ~ b1@2 e2@4 b1@3 ~@5 f#2 ~@3", BI: "f#2@2 ~ c#2@2 ~@3 b1@4 ~@4 b1@4 ~@4 f#2@7 ~, ~ d#2 ~@14",
BJ: "e2@7 ~ b1@4 ~@4 b1@5 ~@4 f#2@7", BK: "e2@7 ~@2 b1@4 ~@3 b1@4 ~@5 f#2@7",
BL: "~ e2@7 b1@3 ~@5 b1@4 ~@3 f#2 g#2@4 f#2@3 ~", BM: "d#2@2 ~@2 c#2 ~@3 b1@4 ~@5 b1@4 ~@4 f#2@7",
BN: "e2@8 b1@4 ~@4 b1@6 ~@2 g#2@7 ~", BO: "f#2@7 ~ b1@4 ~@4 b1@4 ~@4 f#2@7 ~", BP: "e2@7 ~ b1@4 ~@4 b1@4 ~@4 f#2@7 ~",
BQ: "e2@7 ~ b1@4 ~@4 b1@6 ~@3 f#2@7", BR: "~ e2@7 b1@4 ~@4 b1@5 ~@4 f#2@7", BS: "e2@6 ~@2 b1@4 ~@4 b1@5 ~@3 f#2@7 ~",
BT: "e2@7 ~ b1@4 ~@4 b1@4 ~@12",
})).s("gm_piano").gain(0.2)
// drums · kick
const kick = s("bd").struct(`<
~ A B@2 C D E B C D B@2 C D E B C F E B C D B@2 C D B@2 C D E B C F E B C D B@2 C D B@2 C D E B C F E B C D B@2 C D
B@2 C D E B C F E B C D B@2 C D E B C G H
>`.pickRestart({
A: "~@3 x", B: "~@2 x ~@2 x!2 ~", C: "~ x!2 ~@2 x!2 ~", D: "~@4 x ~@2 x ~@2 x ~ x ~@3", E: "x ~ x ~@2 x!2 ~",
F: "~ x ~ x", G: "~@4 x ~@2 x ~@2 x ~@5", H: "x",
})).gain(0.8)
// drums · snare
const snare = s("sd").struct(`<
~ A B C D E F C D C B C D@2 F C D G F C D C B C D C B C D@2 F C D G F C D C B C D C B C D@2 F C D G F C D C B C D C B
C D E F C D G F C D C B C D E F C D C ~
>`.pickRestart({
A: "~@13 x!2 ~", B: "x ~ x!2 ~@4 x ~@7", C: "x ~@7 x ~@4 x ~@2", D: "x!2", E: "x ~@7 x ~@2 x ~@4", F: "~ x",
G: "x ~@4 x ~@2 x ~@2 x ~@4",
})).gain(0.8)
// drums · low tom
const low_tom = s("lt").struct("<~@6 A ~@7 A ~@3 A ~@11 A ~@3 A ~@11 A ~@3 A ~@11 A ~@3 A ~@7 A ~@3 A>".pickRestart({
A: "~@3 x ~@12",
})).gain(0.72)
// drums · hihat
const hihat = s("hh").struct(`<
~ A B C D E B C D C B C D F B C D G B C D C B C D C B C D H B C D G B C D C B C D C B C D F B C D G B C D C B C D C B
C D F B C D G B C D C B C D F B C D F ~
>`.pickRestart({
A: "~@3 x", B: "~@3 x!5", C: "x!8", D: "x ~ x!6", E: "x!5 ~@3", F: "x!6 ~@2", G: "x!2 ~@6", H: "x!7 ~",
})).gain(0.72)
// drums · mid tom
const mid_tom = s("mt").struct("<~@6 A ~@7 A ~@3 A ~@11 A ~@3 A ~@11 A ~@3 A ~@11 A ~@3 A ~@7 A ~@3 A>".pickRestart({
A: "~ x!2 ~@13",
})).gain(0.72)
// drums · open hat
const open_hat = s("oh").struct(`<
~@4 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@2
>`.pickRestart({
A: "~ x ~@6",
})).gain(0.8)
// drums · high tom
const high_tom = s("ht").struct("<~@5 A ~@7 A ~@3 A ~@11 B ~@3 A ~@11 A ~@3 A ~@11 A ~@3 A ~@7 A ~@3 C ~>".pickRestart({
A: "~@12 x!2 ~ x", B: "~@13 x ~ x", C: "~@15 x",
})).gain(0.72)
// drums · crash
const crash = s("cr").struct(`<
~@2 A ~@3 A ~@3 A ~@3 A ~@2 A@2 ~@3 A ~@3 A ~@3 A ~@2 A@2 ~@3 A ~@3 A ~@3 A ~@2 A@2 ~@3 A ~@3 A ~@3 A ~@2 A@2 ~@3 A
~@3 A ~@3 A
// … 16 more lines
More by Huey Lewis
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.