0:00/0:00
// Stuck With You — Huey Lewis & The News
// 121 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 135 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(121/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.
// bass · electric guitar jazz · "tk2"
const bass = note(`<
~ A B C D E F C D 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 AG AH AI AF AJ AK AL AF AM AN AO AP I AQ G
H AR@3 AS AT AU@3 AV AW@8 AX@8 AY@4 AZ@5 BA@7 BB@8 BC@3 BD@5 BE@8 BF@8 BG@4 BH@6 ~
>`.pickRestart({
A: "c2@9 ~@4 g1@2 ~ c2@8 b1@8", B: "a1@9 ~@4 e1 ~@2 a1@8 g1@8", C: "f1@9 ~@4 f1@2 ~ c2@8 f1@8", D: "d2@15 ~ g1@15 ~",
E: "c2@9 ~@4 c2 ~@2 e1@8 g1@7 ~", F: "a1@9 ~@4 a1 ~@2 a1@7 ~ g1@7 ~", G: "c2@9 ~@4 c2 ~@2 c2@8 b1@7 ~",
H: "a1@9 ~@7 a1@7 ~ g1@8", I: "f1@9 ~@4 f1 ~@2 c2@8 f1@8", J: "d2@7 ~ g1@7 ~", K: "c2@9 ~@4 c2 ~@2 c2@7 ~ b1@7 ~",
L: "a1@8 ~@8 a1@7 ~ g1@7 ~", M: "f1@8 ~@5 f1 ~@2 c2@7 ~ f1@8", N: "d2@16 g1@15 ~",
O: "c2@8 ~@5 c2 ~@2 c2@7 ~ b1@6 ~@2", P: "a1@9 ~@7 a1@7 ~ g1@6 ~@2", Q: "f1@9 ~@4 f1 ~@2 c2@8 f1@7 ~",
R: "d2@15 ~ g1@6 ~@2 g1@6 ~@2", S: "c2@9 ~@4 c2@2 ~ e1@7 ~ g1@7 ~", T: "a1@9 ~@7 a1@8 g1@8",
U: "f1@8 ~@5 f1 ~@2 c2@7 ~ f1@7 ~", V: "d2@15 ~ g1@14 ~@2", W: "a1@6 ~@2 a1@6 ~@2 a1@6 ~@2 a1@5 e1@2 ~",
X: "a1@6 ~@2 a1@6 ~@2 a1@6 ~@2 a1@5 ~@3", Y: "c2@6 ~@2 c2@6 ~@2 c2@5 ~@3 c2@4 ~ g1@2 ~",
Z: "c2@6 ~@2 c2@6 ~@2 c2@6 ~@2 c2@3 ~@2 g1 ~@2", AA: "e1@13 ~@3 e1@8 e1@8", AB: "f1@7 ~ f1@4 f1@4",
AC: "g1@13 ~@3 g1@14 ~@2", AD: "a1@31 ~", AE: "d2@9 ~@4 a1@2 ~ d2@7 ~ c#2@7 ~", AF: "b1@9 ~@4 f#1 ~@2 b1@8 a1@8",
AG: "g1@8 ~@5 g1@2 ~ d2@8 g1@8", AH: "e2@7 ~ a1@3 ~ a1@3 ~", AI: "d2@9 ~@4 a1@2 ~ d2@8 c#2@8",
AJ: "g1@9 ~@4 g1 ~@2 d2@7 ~ g1@8", AK: "e2@8 e2@8 a1@7 ~ a1@7 ~", AL: "d2@9 ~@4 d2 ~@2 a1@8 a#1@7 ~", AM: "g1 ~",
AN: "d2 g1", AO: "c2@9 ~@4 c2@2 ~ e1@8 g1@8", AP: "a1@8 ~@5 a1 ~@2 a1@8 g1@8", AQ: "d2@13 d2 ~@2 g1@15 ~",
AR: "[f1@9 ~@4 f1 ~@2 c2@7 f1@8 d2@15 ~@2 g1@15 c2@9 ~@5 c2 ~@2 c2@7 ~ b1@7 ~]/3",
AS: "a1@9 ~@4 a1 ~ a1@7 ~@2 g1@7 ~", AT: "f1@9 ~@4 f1 ~ c2@7 ~@2 f1@7 ~",
AU: "[d2@15 ~ g1@15 c2@9 ~@5 c2 ~@2 c2@7 ~ b1@6 ~ a1@9 ~@8 a1@7 ~ g1@7 ~]/3", AV: "f1@9 ~@4 f1 ~ c2@8 ~ f1@7 ~",
AW: "[d2@15 g1@15 ~ c2@9 ~@5 c2 ~@2 e1@7 g1@8 a1@9 ~@5 a1 ~ a1@7 ~ g1@8 f1@9 ~@5 f1 ~ c2@8 f1@8 d2@15 ~ g1@14 ~@2 a1@6 ~@2 a1@6 ~@2 a1@6 ~@2 a1@5 ~ e1@2 a1@6 ~@2 a1@6 ~@2 a1@5 ~@3 a1@6 ~@2 c2@6 ~@2 c2@5 ~@3 c2@5 ~@3 c2@3 ~@3 g1 ~ c2]/8",
AX: "[~@7 c2@6 ~@2 c2@4 ~@2 c2@2 ~@3 a1@2 ~ g1@2 e1@7 ~ e1@7 ~ e1@7 ~ e1@7 ~ f1@7 ~ f1@7 ~ f1@7 ~ f1@7 ~ g1@7 ~ g1@7 ~ g1@7 ~ g1@7 ~ a1@25 ~@7 d2@9 ~@5 a1 ~ d2@8 c#2@7 ~ b1@9 ~@5 f#1 ~ b1@8 a1@8 g1@9 ~@5 g1@2 d2@8 g1@8 e2]/8",
AY: "[~@7 e2@8 a1@7 ~ a1@7 ~ d2@9 ~@5 a1@2 d2@8 c#2@8 b1@9 ~@5 f#1@2 b1@8 a1@8 g1@9 ~@5 g1 ~ d2@8 g1@8 e2]/4",
AZ: "[~@7 e2@8 a1@8 a1@8 d2@9 ~@5 d2 ~ a1@7 ~ a#1@7 ~ b1@9 ~@5 f#1@2 b1@8 a1@8 g1@25 ~@7 d2@16 g1@16 ~]/5",
BA: "[~@5 g2@2 e2@4 ~@2 b1@2 g1@8 c2@8 a1@9 ~@5 a1 ~ a1@8 g1@8 f1@9 ~@5 f1@2 c2@8 f1@8 d2@15 ~ g1@15 ~ c2@9 ~@5 g1 ~ c2@8 b1@8 a1@9 ~@5 e1 ~ a1@8 g1@8 f1@9 ~@5 f1@2 c2@8 f1@8 d2]/7",
BB: "[~@7 d2@8 g1@7 ~ g1@8 c2@9 ~@5 c2 ~ c2@8 b1@8 a1@9 ~@5 e1 ~ a1@8 g1@8 f1@9 ~@5 f1@2 c2@8 f1@8 d2@8 d2@8 g1@5 ~ g1@9 ~ a2@5 e2@2 ~ a2@5 ~ e2@2 a2@5 e2@2 ~ a2@5 ~ e2@2 a2@5 ~ e2 ~ a2@5 ~ e2@2 a2@5 e2@2 ~ a2@5 e2@2 ~ c2@6 ~@2 c2@6 ~@2 c2@5 ~@3 c2@6 ~@2 c2]/8",
BC: "[~@7 c2@6 ~@2 c2@5 ~ g2@5 c2@2 ~ g1@2 e1@7 ~ e1@7 ~ e1@8 e1@7 ~ f1@7 ~ f1@7 ~ f1@8 f1@8 g1]/3",
BD: "[~@7 g1@7 ~ g1@8 g1@8 a1@21 e2@2 ~ a2@7 ~ d2@9 ~@4 a1 ~@2 d2@7 ~ c#2@7 ~ b1@9 ~@4 f#1 ~@2 b1@7 ~ a1@7 ~ g1@9 ~@4 g1 ~@2 d2@7 ~ g1@7 ~ e2]/5",
BE: "[~@7 e2@7 ~ a1@7 ~ a1@8 d2@9 ~@4 g1 ~@2 d2@7 ~ c#2@7 ~ b1@9 ~@4 f#1 ~@2 b1@7 ~ a1@7 ~ g1@9 ~@4 g1 ~@2 d2@7 ~ g1@8 e2@7 ~ e2@7 ~ a1@8 a1@7 ~ d2@9 ~@4 a1 ~@2 d2@7 ~ c#2@7 ~ b1@9 ~@4 f#1 ~@2 b1@6 ~@2 a1@6 ~@2 g1@9 ~@4 g1 ~@2 d2@7 ~ g1@7 ~ e2]/8",
BF: "[~@7 e2@6 ~@2 a1@7 ~ a1@7 ~ d2@9 ~@4 a1 ~@2 d2@8 c#2@8 b1@9 ~@4 f#1@2 ~ b1@7 ~ a1@7 ~ g1@9 ~@4 g1 ~@2 g1@7 ~ f#1@8 e1@8 e2@8 a1@8 a2@8 d2@9 ~@4 a1 ~@2 d2@7 ~ c#2@8 b1@9 ~@4 f#1 ~@2 b1@7 ~ a1@8 g1@9 ~@4 g1 ~@2 d2@7 ~ g1@8 e2]/8",
BG: "[~@7 e2@8 a1@8 a1@7 ~ d2@9 ~@4 a1 ~@2 d2@7 ~ c#2@7 ~ b1@8 ~@5 f#1 ~@2 b1@7 ~ a1@6 ~@2 g1@9 ~@4 g1 ~@2 d2@8 g1@8 e2]/4",
BH: "[~@7 e2@7 ~ a1@7 ~ a1@6 ~@2 d2@9 ~@4 a1 ~@2 d2@7 ~ c#2@7 ~ b1@9 ~@4 f#1 ~@2 b1@7 ~ a1@7 ~ g1@9 ~@4 g1 ~@2 d2@7 ~ g1@7 ~ e2@8 e2@7 ~ a1@7 ~ a2@8 d2@32 ~]/6",
})).s("gm_electric_guitar_jazz").gain(0.37)
// chords · percussive organ · "tk3"
const percussive_organ = note(`<
~ A@4 B@2 C@2 D@2 ~@14 E@4 F@2 G H I@2 J@2 K@2 L@2 M@3 N@4 O@8 ~@8 P@7 Q@7 R@6 S@4 T@8 U@5 V@2 W X@4 Y@16 Z@8 AA@2 ~
>`.pickRestart({
A: "[[e5,g5]@63 ~ a5@16 g5@15 ~ a5@24 g5@6 ~@2, c5@63 ~, ~@64 f5@63 ~]/4", // Em
B: "[e6@38 ~@2 e6@7 ~ d6@8 e6@6 ~@2, [g5,c6]]/2", // C5
C: "[a5@14 ~@2 a5@16 ~@16 d5@15 ~, c6@63 ~, f5@47 ~@17, ~@32 g5@31 ~]/2", D: "[[c5,e5,g5]@5 ~@3]/2",
E: "[[c5,g5,c6,e6]@63 ~]/4", F: "[e5@31 ~ d5@31 ~, [c5,g5,c6]@63 ~]/2", G: "[c5,c6]@7 ~ [b4,b5]@7 ~, [d5,g5]@15 ~",
H: "[a4,d5,e5,a5]@31 ~", I: "[f#5@47 ~ e5@8 f#5@7 ~, [a4,d5]]/2",
J: "[g5@8 g5@6 ~@2 f#5@6 ~@2 e5@6 ~@2 g5@6 ~@2 g5@7 ~ f#5@6 ~@2 e5@6 ~@2, [b4,d5]@63 ~]/2", // Bm
K: "[f#5@56 e5@7 ~, [a4,d5]@63 ~]/2", L: "[g5@15 ~ f#5@7 ~ e5@6 ~@2 g5@7 ~ g5@7 ~ f#5@7 ~ e5@6 ~@2, [b4,d5]@63 ~]/2",
M: "[f#5@47 f#5@8 ~ e5@7 [b4,d5,g5]@30 ~@3, [a4,d5]@31 ~@17]/3", // G D5
N: "[[a4,c5,f5]@14 ~@2 g5@10 ~@43 e6@23 ~@4 f6@7 ~ f6@7 ~ e6@8 d6@7 ~, ~@15 c5@113, ~@15 d5@10 ~@71 [a5,c6]@31 ~]/4", // F Am
O: "[f6@6 ~@2 f6@7 ~ e6@8 d6@6 ~ [e5,g5]@33 ~@192, [a5,c6]@31 c5@225]/8", // Em Am
P: "[~@32 [e5,c6]@127 ~ e5@31 d5@31 ~@2, ~@31 [g5,e6]@127 ~ c6@63 ~@2, ~@5 [c5,g5]@2]/7", // C C5
Q: "[c6@15 ~ [b4,b5]@14 ~@2 [a4,d5,e5,a5]@31 f#5@47 ~ e5@8 f#5@7 ~ g5@8 g5@6 ~@2 f#5@6 ~@2 e5@6 ~@2 g5@6 ~@2 g5@7 ~ f#5@6 ~@2 e5@6 ~@2 [a4,d5,f#5]@33, c5, [d5,g5]@30 ~@33 [a4,d5]@64 [b4,d5]@63 ~@34]/7", // B Asus4 D G5 D5 Bm
R: "[~@23 e5@7 ~ g5@14 ~@2 f#5@7 ~ e5@6 ~@2 g5@7 ~ g5@7 ~ f#5@7 ~ e5@6 ~@2 f#5@47 ~ f#5@8 e5@7 ~ [b4,d5,g5]@30 ~@2 [a4,c5,f5], ~@31 [b4,d5]@63 ~ [a4,d5]@62 ~@35]/6", // G F Bm D5
S: "[~@15 [d5,g5]@15 ~ f#6 ~@36 c6@26 ~ [a5,c6,f6]@15 ~ [g5,c6,e6]@16 [c5,f5,a5], ~@15 c5@112 ~, ~@31 g6@35 g6@28 ~@34, ~@63 e6@28 ~@37]/4", // G5 F C F
T: "[~@7 [c5,e5,g5]@8 [f5,a5]@8 [a5,c6,f6]@8 [c6,e6,g6]@4 ~@2 [a5,c6,f6]@3 ~@2 [g5,c6,e6]@2 ~@3 [c6,e6,g6]@4 ~@2 [a5,f6]@3 ~@2 [g5,c6,e6]@5 [c6,e6,g6]@5 ~ a5@4 ~ [g5,c6,e6]@5 [g5,c6,e6]@5 ~ [a5,c6,f6]@5 [c6,e6,g6]@5 [f6,a6]@8 g6@8 f6@7 ~@9 g6 a6@8 g6@7 f6@7 ~ e6@8 g6@3 a6@3 e6@2 g6@3 d6@2 e6@3 c6@3 d6@2 a5@3 c6@3 g5@2 f5@3 e5@3 f5@3 g5@2 c6@15 ~ [e5,a5,c6]@8 [f5,a5,c6]@16 [a5,c6,f6]@15 ~ [c6,f6,a6], ~@15 c5@241, ~@31 d#6 ~@15 d#6 ~@4 c6@3 ~@13 [c6,f6]@5 ~@22 c6@31 ~@130, ~@119 c7@39 ~@98]/8", // C F C F C Dm C F …
U: "[~@5 [c6,e6,g6]@3 ~@2 [a5,c6,f6]@3 ~@2 [g5,c6,e6]@4 ~@2 [f5,a5,c6]@8 ~@2 [e5,g5,c6,e6]@128 ~]/5", // C F C F C
V: "[e5@31 d5@31 ~ c6, [c5,g5,c6]]/2", W: "~@16 b4@14 ~ a4, [d5,g5]@15 ~, ~@15 b5@14 ~@3",
X: "[[d5,e5,a5]@31 f#5@47 ~ e5@8 f#5@7 ~ g5@8 g5@6 ~@2 f#5@6 ~@2 e5@6 ~@2 g5, ~@31 [a4,d5]@64 [b4,d5]@33]/4", // Dsus2 D5 Bm
Y: "[~@7 g5@7 ~ f#5@6 ~@2 e5@6 ~@2 f#5@56 e5@7 ~ g5@15 ~ f#5@7 ~ e5@6 ~@2 g5@7 ~ g5@7 ~ f#5@7 ~ e5@7 ~ f#5@47 ~ e5@8 f#5@7 ~ g5@8 g5@6 ~@2 f#5@6 ~@2 e5@6 ~@2 g5, ~@31 [a4,d5]@63 ~ [b4,d5]@63 ~ [a4,d5]@64 [b4,d5]@33]/8", // D5 Bm D5 Bm
Z: "[~@7 g5@7 ~ f#5@6 ~@2 e5@6 ~@2 f#5@56 e5@7 ~ g5@15 ~ f#5@7 ~ e5@6 ~@2 g5@7 ~ g5@7 ~ f#5@7 ~ e5@7 ~ f#5@47 ~ e5@8 f#5@7 ~ g5@7 ~ g5@6 ~@2 f#5@6 ~@2 e5@6 ~@2 g5, ~@31 [a4,d5]@63 ~ [b4,d5]@63 ~ [a4,d5]@64 [b4,d5]@33]/8", // D5 Bm D5 Bm
AA: "[~@7 g5@7 ~ f#5@6 ~@2 e5@6 ~@2 [a4,d5,f#5]@32 ~]/2", // D
})).s("gm_percussive_organ").gain(0.04)
// other · rock organ · "tk3" · Fsus2 Asus2 Csus2
const rock_organ = note("<~@44 [~@27 [f5,g5] [a5,b5] ~ [c6,d6] ~] g6 [~ g6 ~@14, e6@5 ~@27] ~@88>")
.s("gm_rock_organ").gain(0.08)
// chords · epiano1 · "tk6"
const epiano1 = note("<~@12 A@5 B@2 C@2 D@2 E@2 ~@27 F@7 C@2 G@4 ~@23 H@6 I@3 ~@38>".pickRestart({
A: "[~@32 e5@61 ~@3 a4@59 ~@5, ~@24 c5@68 ~@3 c5@59 ~@6]/5", B: "[[c5,e5]@7 g4]/2", C: "[[a4,c5]@63 ~]/2",
D: "[e5@47 ~ d5@15 ~, [g4,c5]]/2", E: "[[f4,a4,c5]@63 ~]/2",
F: "[~@31 e5@61 ~@3 [a4,c5]@59 ~@6 c5@56 g4@8, ~@24 c5@68 ~@67 e5@56 ~@9]/7", // Am
G: "[e5@47 ~ d5@15 ~ [a4,c5]@63 ~, [g4,c5]@63 f4@63 ~@2]/4", // Am C5
H: "[~@31 e5@61 ~@3 [a4,c5]@59 ~@5 [c5,e5]@33, ~@23 c5@68 ~@101]/6", I: "[~@23 g4@8 [a4,c5]@63 ~@2]/3",
})).s("gm_epiano1").gain(0.1).pan(0.4)
// chords · electric guitar jazz · "tk8"
const electric_guitar_jazz = note(`<
~ A B C D A E F G H@2 I J K ~ I J L M I N L M I J O@3 P M Q R S T U V W X U Y W Z T AA AB AC@2 AD AE AF AG AH J AI AJ
AK AL AM AN AO J AM AP AH N O@3 AQ M AR R S AS X AT W X Z AT W X Z AU@2 AV AW@4 AX AY@2 AZ@4 BA@6 BB BC@5 BD@4 BE@4
BF@8 BG@6 BH@3 ~
>`.pickRestart({
A: "[e4,g4,c5]@2 ~@6 [e4,g4,c5] ~@5 [e4,c5]@2 [d4,g4,c5]@8 [e4,g4,c5]@5 ~@3, ~@13 g4@3 ~@16", // C Csus2 C
B: "[e4,g4,c5]@2 ~@6 [e4,g4,c5] ~@5 [g4,c5]@2 [d4,g4,c5]@8 [e4,g4,c5]@5 ~@3, ~@13 e4@3 ~@16", // C C5 Csus2 C
C: "[f4,a4,c5]@2 ~@6 [f4,a4,c5] ~@5 [f4,a4,c5]@2 [e4,g4,c5]@8 [d4,g4,c5]@5 ~@3", // F C Csus2
D: "[f4,g4,c5]!2 [e4,g4,c5] [d4,g4,c5]", // Fsus2 C Csus2
E: "[e4,g4,c5]@3 ~@5 [e4,g4,c5] ~@5 [g4,c5]@2 [d4,g4,c5]@8 [e4,g4,c5]@5 ~@3, ~@13 e4@3 ~@16", // C C5 Csus2 C
F: "[f4,a4,c5]@2 ~@6 [f4,a4,c5] ~@5 [a4,c5]@2 [e4,g4,c5]@8 [d4,g4,c5]@5 ~@3, ~@13 f4@3 ~@16", // F Am C Csus2
G: "[f4,g4,c5]@8 [f4,g4,c5]@8 [e4,g4,c5]@7 ~ [d4,g4,c5]@8", H: "[[e4,g4,c5]@7 ~]/2", I: "e4@3 f4@29, [c4,a4]",
J: "~@8 [c4,f4,g4]@8 [c4,e4,g4]@7 ~ [c4,d4,g4]@7 ~", K: "[c4,e4,g4]", L: "[c4,e4,g4]@15 ~", M: "[c4,d4,g4]@31 ~",
N: "~@8 [c4,f4,g4]@8 [c4,e4,g4]@7 ~ [c4,d4,g4]@8", O: "[[c4,e4,g4]@65 ~@12 e4@3 d4@5 c4@3 a3@5 g3@3]/3", P: "e3@15 ~",
Q: "[c4,e4,g4]@13 [c4,d4,g4]@8 [c4,d4,g4]@3 [c4,d4,g4] ~@7", R: "[c4,d4,g4]@15 ~ [b3,d4,g4]@15 ~",
S: "[a3,d4,e4,g4]@31 ~", T: "[d4,f#4,a4]@3 ~@5 [d4,f#4,a4] ~@4 [d4,f#4,a4]@3 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3",
U: "[d4,f#4,a4]@3 ~@5 [d4,f#4,a4] ~@4 [d4,f#4,a4]@2 ~ [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3", // D Dsus2 D
V: "[d4,g4,b4]@2 ~@6 [d4,g4,b4] ~@4 [d4,g4,b4]@2 ~ [d4,f#4,a4]@8 [d4,e4,a4]@5 ~@3", // G D Dsus2
W: "[d4,g4,a4]!2 [d4,f#4,a4] [c#4,e4,a4]", // Dsus4 D A
X: "[d4,f#4,a4]@2 ~@6 [d4,f#4,a4] ~@4 [d4,f#4,a4]@3 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3", // D Dsus2 D
Y: "[d4,g4,b4]@3 ~@5 [d4,g4,b4] ~@4 [d4,g4,b4]@2 ~ [d4,f#4,a4]@8 [d4,e4,a4]@5 ~@3", // G D Dsus2
Z: "[d4,f#4,a4]@2 ~@6 [d4,f#4,a4] ~@4 [d4,f#4,a4]@2 ~ [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3", AA: "[b3,d4,g4]@31 ~",
AB: "[g3,c4,d4,g4]!2", AC: "[c4,e4,g4]@2 ~@6 [c4,e4,g4] ~@4 [c4,e4,g4]@2 ~ [c4,d4,g4]@8 [c4,e4,g4]@5 ~@3",
AD: "[c4,f4,a4]@2 ~@6 [c4,f4,a4] ~@4 [c4,f4,a4]@2 ~ [c4,e4,g4]@8 [c4,d4,g4]@5 ~@3", // F C Csus2
AE: "[c4,f4,g4]!2 [c4,e4,g4] [b3,d4,g4]", AF: "[g3,c4,e4]@8 [g3,c4,e4] ~@4 [g3,c4,e4]@2 ~@9 [g3,c4,e4]@2 ~@6",
AG: "~@8 [g3,c4,e4]@2 ~@11 [g3,c4,e4]@2 ~ [g3,c4,e4] ~@7", // C
AH: "e4@2 f4@2 ~ [c4,f4,a4]@2 ~ [c4,f4,a4]@5 [c4,f4,a4] ~@10 [c4,f4,a4] ~@7, [c4,a4]@5 ~@27", // F
AI: "[g3,c4,e4]@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@4 ~ [g3,c4,e4] ~@10 [g3,c4,e4] ~@7", // C
AJ: "d4@2 e4@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@5 [g3,c4,e4] ~@10 [g3,c4,e4] ~@7, [g3,c4]@5 ~@27", // C C5
AK: "e4@2 f4@2 ~ [c4,f4,a4]@2 ~ [c4,f4,a4]@5 [c4,f4,a4] ~@7 [c4,f4,a4]@2 ~ [c4,f4,a4] ~@7, [c4,a4]@5 ~@27", // F
AL: "~@8 [c4,f4,g4]@7 ~ [c4,e4,g4]@7 ~ [c4,d4,g4]@7 ~", // Csus4 C Csus2
AM: "[c4,e4,g4]@8 [c4,e4,g4]@5 [c4,e4,g4] ~@10 [c4,e4,g4] ~@7", // C
AN: "[c4,e4,g4]@7 ~ [c4,e4,g4] ~@4 [c4,e4,g4] ~@10 [d4,e4,g4]@6 ~@2", // C Em7
AO: "e4@2 f4@5 ~ [c4,f4,a4]@4 ~ [c4,f4,a4] ~@10 [c4,f4,a4] ~@7, [c4,a4] ~@3", // F
AP: "[c4,d4,g4]@7 ~ [c4,e4,g4] ~@15 [c4,e4,g4]@7 ~", AQ: "e3@5 g3@3 a3@5 c4@15 ~@4",
AR: "[c4,e4,g4]@13 [c4,d4,g4]@2 ~ [c4,d4,g4]@15 ~", // C Csus2
AS: "[d4,f#4,a4]@3 ~@5 [d4,f#4,a4] ~@4 [d4,f#4,a4]@2 ~ [d4,e4,a4]@8 [d4,f#4,a4]@6 ~@2", // D Dsus2 D
AT: "[d4,g4,b4]@2 ~@6 [d4,g4,b4] ~@4 [d4,g4,b4]@3 [d4,f#4,a4]@8 [d4,e4,a4]@5 ~@3", // G D Dsus2
AU: "[[b3,d4,g4]@31 ~ [c4,d4,g4]@15 ~ [c4,d4,g4]@15 ~, ~@31 g3@16 g3@16 ~]/2", AV: "~@24 [c4,e4,g4]@5 [c4,e4,g4] ~@2",
AW: "[~@8 [c4,e4,g4]@5 [c4,e4,g4] ~@10 [c4,e4,g4]@5 [c4,e4,g4] ~@2 [c4,f4]@5 [c4,f4,a4] ~@7 [c4,f4,a4]@10 ~ [c4,f4,a4] ~@7 [c4,a4]@7 a4 [c4,f4] ~@4 [c4,f4,a4]@7 ~ [c4,f4,a4]@2 a4 [c4,f4] ~@7 [c4,e4]@7 g4 [c4,e4] ~@4 [c4,e4,g4]@7 ~ [c4,e4,g4]@2 ~ [c4,e4,g4] ~@7, ~@31 a4@5 ~@27 f4@7 ~@25 g4@8 ~@25]/4", // C F5 F F5 F F5 C
AX: "~@8 [c4,e4]@5 [c4,e4,g4] ~@10 [c4,e4,g4]@5 [c4,e4,g4] ~@2, ~@7 g4@5 ~@20", // C
AY: "~@8 [c4,f4,a4] ~@15 [c4,f4,a4]@5 [c4,f4,a4] ~@2", // F
AZ: "[~@8 [c4,e4]@5 [c4,e4,g4] ~@9 [c4,e4,g4] ~@8 c4@7 [c4,e4,g4] ~@13 [c4,e4,g4]@2 [e4,g4] c4 ~@6 e4@3 f4@5 [c4,f4,a4] ~@13 [c4,f4,a4]@2 [c4,f4,a4] ~@5 [c4,f4,a4]@2 ~ g4@2 [c4,f4,g4]@2 ~ [c4,f4,g4]@2 ~@3 [c4,f4,g4]@2 ~ [c4,e4,g4]@2 ~ e4@2 [c4,e4,g4]@2 ~ [c4,d4,g4]@2 ~@3 [c4,d4,g4]@2 ~ [c4,d4,g4]@2 ~, ~@7 g4@5 ~@19 [e4,g4]@7 ~@25 [c4,a4]@8 ~@24 [c4,f4]@2 ~@14 [c4,g4]@2 ~@15]/4", // C Em F Csus4 C Csus2 Em F …
BA: "[[c4,e4,g4]@65 ~@12 e4@2 d4@5 ~ c4@2 a3@5 ~ g3@2 e3@5 ~ g3@2 a3@4 ~@2 c4@15 ~@4 g4@31 [c4,e4,g4]@13 ~ [c4,d4,g4]@17 ~@2, ~@127 [c4,d4]@31 ~@34]/6", // C Csus2
BB: "[c4,d4,g4]@15 ~ g4@15 ~, ~@15 [b3,d4]@15 ~@2", // Csus2 Bm
BC: "[[a3,d4,e4,g4]@31 ~ d4@2 ~@5 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,f#4,a4]@3 ~@5 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 ~ f#4@5 ~@2 [d4,g4,b4]@3 ~@5 [d4,g4,b4] ~@5 [d4,g4,b4]@2 [d4,f#4,a4]@8 [d4,e4,a4]@5 ~@3 [d4,g4,a4]@8 [d4,g4,a4]@8 [d4,f#4,a4]@8 [c#4,e4,a4]@8 f#4, ~@31 [f#4,a4]@3 ~@53 [d4,a4]@5 ~@68]/5", // Asus4 D Dsus2 D Dsus2 G D Dsus2 …
BD: "[[d4,a4]@2 ~@5 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,f#4,a4]@3 ~@5 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,g4,b4]@3 ~@5 [d4,g4,b4] ~@5 [d4,g4,b4]@2 [d4,f#4,a4]@8 [d4,e4,a4]@5 ~@3 [d4,g4,a4]@8 [d4,g4,a4]@8 [d4,f#4,a4]@8 [c#4,e4,a4]@8 ~]/4", // D5 D Dsus2 D Dsus2 D G D …
BE: "[[d4,f#4,a4]@2 ~@5 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,f#4,a4]@3 ~@5 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,g4,b4]@3 ~@5 [d4,g4,b4] ~@5 [d4,g4,b4]@2 [d4,f#4,a4]@8 [d4,e4,a4]@5 ~@3 [d4,g4,a4]@8 [d4,g4,a4]@8 [d4,f#4,a4]@8 [c#4,e4,a4]@8 f#4]/4", // D Dsus2 D Dsus2 D G D Dsus2 …
BF: "[[d4,a4]@2 ~@5 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,f#4,a4]@3 ~@5 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,g4,b4]@3 ~@5 [d4,g4,b4] ~@5 [d4,g4,b4]@2 [d4,f#4,a4]@8 [d4,e4,a4]@5 ~@3 [d4,g4,a4]@8 [d4,g4,a4]@8 [d4,f#4,a4]@8 [c#4,e4,a4]@8 [d4,f#4,a4]@3 ~@5 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,f#4,a4]@3 ~@5 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,g4,b4]@3 ~@5 [d4,g4,b4] ~@5 [d4,g4,b4]@2 [d4,f#4,a4]@8 [d4,e4,a4]@5 ~@3 [d4,g4,a4]@8 [d4,g4,a4]@8 [d4,f#4,a4]@8 [c#4,e4,a4]@8 [d4,f#4,a4]]/8", // D5 D Dsus2 D Dsus2 D G D …
BG: "[~@7 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,f#4,a4]@3 ~@5 [d4,f#4,a4] ~@5 [d4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,g4,b4]@3 ~@5 [d4,g4,b4] ~@5 [d4,b4]@2 [d4,f#4,a4]@8 [d4,e4,a4]@5 ~@3 [d4,g4,a4]@8 [d4,g4,a4]@8 [d4,f#4,a4]@8 [c#4,e4,a4]@8 [d4,f#4,a4]@3 ~@5 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,f#4,a4]@3 ~@5 [d4,f#4,a4] ~@5 [d4,f#4,a4]@2 [d4,e4,a4]@8 [d4,f#4,a4]@5 ~@3 [d4,g4,b4], ~@44 f#4@3 ~@29 g4@3 ~@113]/6", // D Dsus2 D D5 Dsus2 D G D …
BH: "[~@7 [d4,g4,b4] ~@5 [d4,g4,b4]@2 [d4,f#4,a4]@8 [d4,e4,a4]@5 ~@3 [d4,g4,a4]@8 [d4,g4,a4]@7 ~ [d4,f#4,a4]@8 [c#4,e4,a4]@5 ~@3 [a3,d4,f#4]@33]/3", // G D Dsus2 Dsus4 D A D
})).s("gm_electric_guitar_jazz").gain(0.12).pan(0.7)
// chords · pad warm · "tk9"
const pad_warm = note("<~@9 A@2 B@8 C@5 D@7 E@2 ~@15 F@8 G@8 D@7 E@2 ~@23 D@7 E@2 ~@30>".pickRestart({
A: "[c4,e4,g4]/2", B: "[[c4,f4,a4]@63 ~ [c4,e4]@64, ~@63 g4@64 ~]/4",
C: "[[c4,f4,a4]@63 [c4,e4,g4]@64 [c4,f4,a4]@33]/5", // F C F
D: "[~@31 [c4,e4,g4]@127 ~ e4@31 ~ d4@31 ~ [c4,d4,g4], ~@159 [c4,g4]@63 ~@2]/7", // C Csus2 C5
E: "[~@15 b3@14 ~@2 [a3,d4,e4]@31 ~@2]/2", F: "[~@31 [c4,e4,g4]@64 [c4,f4,a4]@63 ~ [c4,e4,g4]@64 [c4,f4,a4]@33]/8",
G: "[~@31 [c4,e4,g4]@64 [c4,f4,a4]@64 [c4,e4,g4]@64 [c4,f4,a4]@33]/8", // C F C F
})).s("gm_pad_warm").gain(0.06)
// drums · kick
const kick = s("bd").struct(`<
~ A B@2 A@2 B A@3 B@3 A B@3 A B@3 A B@3 C@4 B@3 D A B@3 A B@3 A B@3 A B@2 A@2 B@3 A B@3 A B@3 A B@3 C E F G B@3 H I
J@3 I J@3 I J@2 K I J@2 I@2 J@2 I@2 J K L M@4 J@3 L I J@3 I J I J@2 I N J N J@3 N J@3 N J N J N J@2 O ~@2
>`.pickRestart({
A: "x ~@12 x ~@2 x ~@15", B: "x!2", C: "x!2 ~@2", D: "x", E: "x ~@7 x ~@22 x", F: "~@8 x ~@22 x", G: "~ x ~@2",
H: "x ~@30 x", I: "~@13 x ~ x ~@15 x", J: "~@15 x ~@15 x", K: "~@15 x ~@16", L: "~@31 x", M: "~@7 x ~@23 x",
N: "~@12 x ~@2 x ~@15 x", O: "~@12 x ~@2 x ~@12 x ~@2 x",
})).gain(0.51)
// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
~@2 A@2 ~@2 A ~@4 A ~@3 A ~@3 A ~@3 A ~ B ~ B ~@6 A@2 ~@2 A@2 ~@2 A C ~@2 A@2 ~@3 A ~@3 A ~@3 A ~@3 A ~ B ~ B ~@4 D ~
A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~ B ~ B ~@4 D ~ A@2 ~@2 A ~@2 A ~@2 E ~ F@2 ~@2 F@2 ~@2 F ~ F ~ F G ~@3
>`.pickRestart({
A: "~@13 x ~@18", B: "~@29 x ~@2", C: "~@13 x ~@7 x ~@10", D: "~@21 x ~@10", E: "~@7 x", F: "~@3 x ~@4",
G: "~@3 x ~@3 x",
})).gain(0.34)
// drums · snare
const snare = s("sd").struct(`<
A B@7 C B@16 D@4 B@3 A B@11 A B@3 E B@13 F B G D@3 H B@3 I J@10 K I J@10 L M N@3 O J@3 I J@11 P J@7 Q J@3 R J@3 S ~@2
>`.pickRestart({
A: "~@3 x", B: "~ x ~ x", C: "~@8 x ~@15 x ~@4 x ~@2", D: "~ x", E: "~@8 x ~@12 x ~@2 x ~@7", F: "~@7 x ~@16 x ~@7",
G: "~@8 x ~@15 x ~ x ~@2 x ~@2", H: "~@16 x ~@4 x ~@4 x ~@2 x ~@2", I: "~@23 x ~@8", J: "~@7 x ~@15 x ~@8",
K: "~@7 x ~@13 x ~ x ~@8", L: "~@7 x ~@15 x ~@7 x", M: "~@13 x ~@18", N: "~@15 x ~@16",
O: "~@15 x ~@5 x ~@4 x ~@2 x ~@2", P: "~@7 x ~@12 x ~@2 x ~@8", Q: "~@7 x ~@14 x!2 ~@8", R: "~@7 x ~@15 x ~@2 x ~@5",
S: "~@4 x ~@5 x ~@11 x!2 ~@2 x ~@5",
})).gain(0.51)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<A ~@7 B ~@87 C ~@27 D ~@3 E ~@2 F D ~@2>".pickRestart({
A: "~@9 x ~@4 x ~@4 x ~@12", B: "~@19 x ~@12", C: "~@7 x ~@2 x ~@4 x ~@5 x ~@4 x ~@2 x ~@2", D: "~@5 x ~@2",
E: "~@5 x ~ x", F: "~@9 x ~@6",
})).gain(0.23)
// drums · hihat
const hihat = s("hh").struct(`<
~ A B@3 A B@2 C A B@14 D ~@4 A@3 ~ A B@9 D ~ A B@2 D A B@6 C B@7 E ~@4 A@3 ~ F@2 G H I J K L K I M N O F@2 P F@3 Q F@3
~@5 Q@3 ~ F@3 R F@3 Q F@2 S M T@2 S U F T S M V W X Y X@3 Z ~@2
>`.pickRestart({
A: "~@5 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2", B: "x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2",
C: "x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@7", D: "x ~@4 x ~@2 x ~@4 x ~@2 x ~@15",
E: "x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@10", F: "~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@5 x ~ x",
G: "~@5 x ~ x ~@5 x ~ x ~@5 x ~@2 x ~@4 x ~@2", H: "x ~@4 x ~@2 x ~@4 x ~ x ~@5 x ~ x ~@5 x ~@2",
I: "x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~ x ~@5 x ~ x", J: "~@5 x ~@2 x ~@4 x ~ x ~@5 x ~@2 x ~@4 x ~ x",
K: "~@5 x ~ x ~@5 x ~@2 x ~@4 x ~ x ~@5 x ~@2", L: "x ~@4 x ~@2 x ~@4 x ~ x ~@5 x ~@2 x ~@7",
M: "~@5 x ~ x ~@5 x ~ x ~@16", N: "~@31 x", O: "~@7 x ~@5 x ~ x ~@5 x ~ x ~@5 x ~ x",
P: "~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@7 x", Q: "~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@5 x ~@2",
R: "~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@8", S: "~@5 x ~ x ~@5 x ~ x ~@4 x ~@2 x ~@5 x ~ x",
T: "~@5 x ~ x ~@4 x ~@2 x ~@5 x ~ x ~@5 x ~ x", U: "~@5 x ~ x ~@5 x ~@18",
V: "~@5 x ~ x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x", W: "~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@3",
// … 57 more lines
More by Huey Lewis & The News
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.