0:00/0:00
// Every Kind of People — Robert Palmer
// 161 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "CHORDS | CLAVIUM I-A4" named as a piano, played on clavinet (its acoustic guitar nylon patch is not one)
// note: duplicate parts dropped: ch 6 "FLUTE | ITOPIA P1-A15" flute (copy of ch 5 "FLUTE | FLUTE P1-C14" blown bottle)
// note: Full arrangement: all 136 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(161/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 · clavinet · "CHORDS | CLAVIUM I-A4"
const clavinet = note("<~@6 A B@4 C@4 D@4 E@4 B@20 C@4 D@4 F G@5 H@4 I@5 J@8 K@16 L@8 M@8 K@24 N@5 ~>".pickRestart({
A: "~@18 [g3,b3,d4,f#4]@5 ~", B: "[g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~",
C: "[e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~", // Em7
D: "[c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~", // Cmaj7
E: "[a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~", // Am7
F: "[a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [c4,e4,g4]@5 ~, ~@17 a3@5 ~@2", // Am7 C
G: "[[a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [c4,e4,g4]@5 ~ [c4,e4,g4]@5 ~ [c4,e4,g4]@5 ~ [e4,g4]@5 ~ [c4,e4,g4]@5 ~ [c4,e4,g4]@5 ~ [c4,e4,g4]@5 ~ [c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [b3,d4,f#4]@5 ~ [d4,f#4]@5 ~ [d4,f#4]@5 ~ [d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [d4,f#4]@5 ~ [d4,f#4]@5 ~ [d4,f#4]@5 g3, ~@17 a3@5 ~ a3@5 ~ a3@5 ~ [a3,c4]@5 ~ a3@5 ~ a3@5 ~ a3@5 ~ a3@5 ~@7 g3@5 ~ [g3,b3]@5 ~ [g3,b3]@5 ~ [g3,b3]@5 ~ g3@5 ~ [g3,b3]@5 ~ [g3,b3]@5 ~ [g3,b3]@5 ~@2]/5", // Am7 C Em C Am7 Bm D Bm …
H: "[[b3,d4,f#4]@5 ~ [d4,f#4]@5 ~ [d4,f#4]@5 ~ [d4,f#4]@5 ~ [d4,f#4]@5 ~ [d4,f#4]@5 ~ [d4,f#4]@5 ~ [d4,f#4]@5 ~ [b3,d4]@5 ~ [b3,d4]@5 ~ [b3,d4]@5 ~ d4@5 ~ [b3,d4]@5 ~ d4@5 ~ [b3,d4]@5 ~ d4@5 [e3,g3], ~@5 [g3,b3]@5 ~ [g3,b3]@5 ~ [g3,b3]@5 ~ [g3,b3]@5 ~ [g3,b3]@5 ~ [g3,b3]@5 ~ [g3,b3]@5 ~ [e3,g3]@5 ~ [e3,g3]@5 ~ [e3,g3]@5 ~ [e3,g3,b3]@5 ~ [e3,g3]@5 ~ [e3,g3,b3]@5 ~ [e3,g3]@5 ~ [e3,g3,b3]@5 ~@2]/4", // Bm D Bm Em G Em
I: "[[b3,d4]@5 ~ d4@5 ~ [b3,d4]@5 ~ d4@5 ~ d4@5 ~ d4@5 [e3,g3,b3,d4]@5 ~@2 d4@5 ~ b3@5 ~ b3@5 [c3,e3,g3,b3]@5 ~@2 b3@5 ~ b3@5 [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~@2 b3@5 [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3], ~@5 [e3,g3,b3]@5 ~ [e3,g3]@5 ~ [e3,g3,b3]@5 ~ [e3,g3,b3]@5 ~ [e3,g3,b3]@5 ~@7 [e3,g3,b3]@5 ~ [c3,e3,g3]@5 ~ [c3,e3,g3]@5 ~@7 [c3,e3,g3]@5 ~ [c3,e3,g3]@5 ~@19 [c3,e3,g3]@5 ~@20]/5", // Bm Em7 Cmaj7 C Em C
J: "[b3@5 [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]]/8", // Cmaj7 Am7 Gmaj7
K: "[~@5 [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]]/8", // Gmaj7
L: "[~@5 [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [e3,g3,b3,d4]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]]/8", // Gmaj7 Em7 Cmaj7
M: "[~@5 [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [c3,e3,g3,b3]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [a3,c4,e4,g4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]]/8", // Cmaj7 Am7 Gmaj7
N: "[~@5 [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [g3,b3,d4,f#4]@5 ~ [b3,d4,f#4]@5 ~ [d4,f#4]@5 ~ [d4,f#4]@5 ~@2, ~@52 g3@5 ~@7 [g3,b3]@5 ~@7 g3@5 ~@7 g3@5 ~@7 g3@5 ~ [g3,b3]@5 ~ [g3,b3]@5 ~@3]/5", // Gmaj7 Bm Gmaj7 D Gmaj7 Bm Gmaj7 Bm …
})).s("gm_clavinet").gain(0.48)
// chords · piano · "A.CHORDS | JACOE\E I-B6"
const piano = note(`<
A@3 B@3 C@2 D E@2 F G H I J K L M@3 N O@2 P Q R@2 P S T@2 P Q U V P W@2 X@2 Y@3 Z AA AB AC AD L AE@2 AF ~ AG@3 AH@4 AI
AJ@3 AK@4 AL@2 AM AN@4 AO@3 AP AQ@4 AR@5 AS AT@3 AU AV@3 AW AX@3 AY@2 AZ BA@4 BB@3 AZ BC@4 BD BE@2 AZ BF@4 BG@3 AZ
BH@4 BI BJ@2 ~
>`.pickRestart({
A: "f#3/3", B: "[f#3@65 ~@7]/3", C: "[~@15 g3@2 ~ g3@3 a3@5 ~ b3@5 ~ b3@5 ~ b3@8 ~, ~@21 [b2,d3,f#3]@23 ~@4]/2",
D: "~ b3@19 ~@4, [b2,d3,f#3]@5 ~", // Bm
E: "[~@6 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@13 ~@2 [b2,d3,f#3,g3]@10 ~@2 g3@5 ~]/2", // Bm Gmaj7
F: "~ a3@5 b3@5 ~ b3@5 ~ b3@5 ~, [b2,d3,g3]@7 ~", G: "~ b3@21 ~@2, [b2,d3,g3]@7 ~",
H: "~@6 [g2,b2,d3,g3]@2 ~@7 [g2,b2,d3,g3]@3 ~@6", I: "[g2,b2,d3,g3]@7 ~", J: "[e3,g3,b3,d4]@15 ~@3 b3@5 ~",
K: "[e3,b3]@5 ~ e4@5 ~ b3@3 a3@3 [b2,e3,g3]@5 ~", L: "~@6 [b2,e3,g3]@3 ~@6 [b2,e3,g3]@7 ~@2",
M: "[~@6 [g2,b2,e3,g3]@10 ~@2 g3@3 [c3,e3,g3,a3]@8 ~ b3@3 [c3,e3,g3,b3]@8 ~ a3@3 [a2,g3,b3]@5 ~ a3@3 [a2,c3,e3,g3]@15 ~@3]/3", // Em Am7 Cmaj7 Em Am7
N: "~@6 [g3,a3,c4,e4]@10 ~@2 d4@5 ~", // Am7
O: "[[g3,a3,c4,e4]@5 ~ d4@2 ~ [e3,g3,a3,d4]@8 ~ c4@3 d4@5 ~ [d3,f#3,g3,b3]@17 ~@4]/2", // Am7 Em7 Gmaj7
P: "~@2 [f#2,b2,d3,f#3] ~@2 [f#2,b2,d3,f#3] ~@2", Q: "[f#2,b2,d3,f#3]@6 ~ b3",
R: "[e4@5 ~ [f#3,b3,d4]@5 ~ [f#3,b3,d4]@5 ~ e4@3 [d3,f#3,g3,b3]@23 ~@4]/2", S: "[f#2,b2,d3,f#3]@5 ~",
T: "[[f#3,b3,e4]@5 ~ d4@2 ~ [f#3,b3,d4]@8 ~ b3@3 d4@5 ~ b3@8 ~@13]/2", // Esus2 Bm
U: "[f#3,b3,e4]@5 ~ d4@2 ~ [f#3,b3,d4]@5 ~ e4@7 ~@2", V: "b3@2 ~ a3@2 ~ g3@15 ~@3, [b2,f#3]@5 ~",
W: "[[f#2,b2,d3,f#3]@30 ~@9 g3@3 g3@5 ~]/2", X: "[a3@2 ~ b3@5 ~ b3@5 ~ a3@5 ~ b3@23 ~@4, [b2,d3,f#3]@43 ~@5]/2",
Y: "[~@6 [f#2,b2,d3,f#3]@3 ~@3 [f#3,b3]@3 d4@5 ~ [g3,g4]@5 ~ [b3,f#4]@3 e4@5 ~ [f#3,b3,d4]@5 ~ e4@10 ~@2 e4@10 ~@2 e4@3 d4@3, ~@42 [d3,g3]@25 ~@5]/3", // Bm B5 G B5 Bm G5
Z: "[b2,d3,g3,b3]@7 ~", AA: "~@6 [f#2,b2,d3,f#3]@3 ~@6 [f#2,b2,d3,f#3]@2 ~@7",
AB: "~@3 e4@5 ~ e4@5 ~ b3@7 ~@2, ~@3 [d3,g3]@17 ~@4", AC: "d4@3 [e3,g3,b3]@5 ~ [e3,g3,b3,d4]@7 ~@2 d4@5 ~",
AD: "b3@2 ~ a3@3 g3@15 ~@3, [b2,e3]@5 ~", AE: "[~@6 [e3,b3,e4]@10 ~@2 b3@2 ~ [e3,g3,c4,d4]@8 ~ b3@5 ~ d4@3 d4@8 ~]/2",
AF: "b3@2 a3@3 ~ [a2,e3,g3]@15 ~@3", // A7
AG: "[~@6 [a3,c4,e4,g4]@7 ~@2 [a3,c4,e4,g4]@7 ~@2 g4@2 f#4@5 ~ f#4@5 ~@2 e4@5 ~@9 f#4@15 ~@4, ~@23 f#3@18 ~@3 f#3@23 ~@5, ~@24 b3@17 ~@4 b3@22 ~@5]/3", // Am7
AH: "[~@6 [b2,d3,f#3]@2 ~@4 b3@2 d4@5 ~@2 g4@5 ~ f#4@5 e4@5 ~@2 [b3,d4]@5 ~ d4@7 ~@2 d4@5 d4@5 ~ b3@5 ~@2 g3@2 g3@17 ~@5, ~@5 f#2@2 ~@4 f#3@3 ~@6 g3@5 ~ b3@5 ~@7 f#3@5 ~ d3@23 ~@5 [g2,d3,e3]@20 ~@4, ~@45 g3@22 ~@4 a3@2 ~@23]/4", // Bm Em7
AI: "~@6 [b2,d3,g3]@2 ~@7 [b2,d3,g3]@2 ~@7, ~@5 g2@2 ~@7 g2@3 ~@7", // G
AJ: "[~@17 b3@5 ~ d4@3 ~ [g3,b3]@5 ~ [g3,b3,d4]@5 ~ [g3,b3,d4]@5 ~ [e3,b3]@5 a3@3 ~ [d3,g3,b3]@15 ~@3, ~@5 e4@10 ~@57, ~@6 [d3,g3]@15 ~@5 e3@5 ~ e3@5 ~ e3@5 ~ b2@5 ~@4 b2@15 ~@4]/3", // G E5 G G5
AK: "[~@6 [g3,b3]@2 ~@7 [g3,b3]@7 ~@2 [b3,e4]@5 d4@2 ~@2 e4@7 ~ b3@2 ~@2 [g3,c4,d4]@7 ~ b3@2 ~@2 [g3,c4,d4]@7 ~ d4@5 ~ b3@3 a3@3 ~ [c3,e3,g3,a3]@15 ~@3, ~@5 [b2,e3]@3 ~@6 [b2,e3]@7 ~@2 e3@5 ~@4 [e3,b3]@8 ~@4 e3@8 ~@4 e3@7 ~@14 a2@15 ~@4]/4", // G E5 Gsus4 Am7 E5
AL: "[~@6 [c4,e4]@10 ~ d4@5 ~@2 [a3,c4,e4]@5 d4@3 ~ [a3,d4]@7 ~ c4@2 ~ d4@4, ~@5 [g3,a3]@10 ~@8 g3@5 ~@4 [e3,g3]@8 ~@8]/2", // C Am D5 Gsus2 Em
AM: "~@3 [g3,b3]@17 ~@4, ~@2 [d3,f#3]@17 ~@5", // G D
AN: "[~@6 [d3,f#3]@2 ~@7 [d3,f#3]@2 ~@7 [d3,f#3]@17 ~@3 b3@2 ~ e4@5 ~@2 d4@5 ~ d4@5 e4@2 ~@2 [g3,b3]@22 ~@5, ~@5 [f#2,b2]@3 ~@6 [f#2,b2]@3 ~@6 [f#2,b2]@17 ~@13 [f#3,b3]@5 ~ [f#3,b3]@5 ~@4 [d3,f#3]@23 ~@5]/4", // D G B5 D
AO: "[~@6 [d3,f#3]@2 ~@7 f#3@2 ~@7 f#3@20 ~@4 e4@5 d4@3 ~ d4@7 ~ b3@2 ~ d4@4, ~@5 [f#2,b2]@3 ~@6 [f#2,b2,d3]@3 ~@6 [f#2,b2,d3]@20 ~@4 [f#3,b3]@5 ~@4 [f#3,b3]@8 ~@8]/3", // D B5 Bm B5
AP: "~ b3@4 ~@7",
AQ: "[~@6 [d3,f#3]@2 ~@7 f#3@2 ~@7 f#3@17 ~@3 b3@2 ~@2 e4@5 d4@3 [f#3,b3,d4]@5 ~ e4@8 ~@4 a3@3 g3@15 ~@4, ~@5 [f#2,b2]@3 ~@6 [f#2,b2,d3]@3 ~@6 [f#2,b2,d3]@17 ~@7 [f#3,b3]@5 ~@19 b2@20 ~@5, ~@71 b3@3 ~@22, ~@18 f#3@5 ~]/4", // D Bm B5 Bm B5
AR: "[~@6 f#3@2 ~@6 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@30 ~@9 g3@2 ~ g3@5 ~@2 a3@2 b3@5 ~ b3@5 ~ a3@5 ~ b3@23 ~@5, ~@5 [f#2,b2,d3]@3 ~@63 [b2,d3,f#3]@43 ~@6]/5", // Bm
AS: "~@5 [f#2,b2,d3,f#3]@3 ~@3 [f#3,b3]@3 d4@5 ~ [g3,g4]@4", // Bm B5 G
AT: "[~@2 [b3,f#4]@3 e4@5 ~ [f#3,b3,d4]@5 ~ e4@10 ~@2 e4@10 ~@2 e4@2 ~ d4@3 [b2,d3,g3,b3]@22 ~@3, ~@17 [d3,g3]@25 ~@30]/3", // B5 Bm G G5
AU: "~@5 [f#2,b2,d3,f#3]@3 ~@6 [f#2,b2,d3,f#3]@3 ~@7", // Bm
AV: "[~@2 e4@5 ~ e4@5 ~ b3@8 ~ d4@3 [e3,g3,b3]@5 ~ [e3,g3,b3,d4]@8 ~ d4@5 ~ b3@3 a3@2 ~ g3@15 ~@4, ~@2 [d3,g3]@17 ~@28 [b2,e3]@20 ~@5]/3", // Em Em7 G5 E5
AW: "~@5 [b2,e3,g3]@3 ~@6 [b2,e3,g3]@8 ~@2", // Em
AX: "[~@5 [e3,b3,e4]@10 ~@2 b3@3 [e3,g3,c4,d4]@8 ~ b3@5 ~ d4@3 d4@8 ~ b3@3 a3@2 ~ [a2,e3,g3]@15 ~@4]/3", // E5 C A7
AY: "[~@5 [g3,a3,c4,e4]@10 ~@2 d4@5 ~ [g3,a3,c4,e4]@5 ~ d4@2 ~ [e3,g3,a3,d4]@8 ~ c4@2 ~ d4@4]/2", // Am7 Em7
AZ: "~ [d3,f#3,g3,b3]@9 ~@2", // Gmaj7
BA: "[~@5 [f#2,b2,d3,f#3]@3 ~@6 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@18 ~@3 b3@2 ~ e4@5 ~ [f#3,b3,d4]@5 ~ [f#3,b3,d4]@5 ~ e4@2 ~ [d3,f#3,g3,b3]@22 ~@6]/4", // Bm Gmaj7
BB: "[~@5 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@20 ~@4 [f#3,b3,e4]@5 ~ d4@3 [f#3,b3,d4]@7 ~@2 b3@2 ~ d4@4]/3", // Bm Esus2 Bm
BC: "[~@5 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@17 ~@4 b3@3 [f#3,b3,e4]@5 ~ d4@3 [f#3,b3,d4]@5 ~ e4@8 ~ b3@3 a3@3 g3@15 ~@4, ~@71 [b2,f#3]@20 ~@5]/4", // Bm Esus2 Bm B5
BD: "~@5 [f#2,b2,d3,f#3]@3 ~@6 [f#2,b2,d3,f#3]@2 ~@8", // Bm
BE: "[~@5 [f#3,b3,e4]@10 ~@2 d4@5 ~ [f#3,b3,e4]@5 ~ d4@3 [f#3,b3,d4]@7 ~@2 c4@3 d4@4]/2", // Esus2 Bm
BF: "[~@5 [f#2,b2,d3,f#3]@3 ~@6 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@17 ~@4 b3@3 e4@5 ~ [f#3,b3,d4]@5 ~ [f#3,b3,d4]@5 ~ e4@3 [d3,f#3,g3,b3]@22 ~@6]/4", // Bm Gmaj7
BG: "[~@5 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@20 ~@4 [f#3,b3,e4]@5 ~ d4@3 [f#3,b3,d4]@7 ~@2 b3@3 d4@4]/3", // Bm Esus2 Bm
BH: "[~@5 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@17 ~@4 b3@3 [f#3,b3,e4]@5 ~ d4@3 [f#3,b3,d4]@5 ~ e4@8 ~ b3@2 ~ a3@3 g3@15 ~@4, ~@71 [b2,f#3]@20 ~@5]/4", // Bm Esus2 Bm B5
BI: "~@5 [f#2,b2,d3,f#3]@2 ~@7 [f#2,b2,d3,f#3]@2 ~@8", // Bm
BJ: "[~@5 [b3,e4]@10 ~ d4@5 ~@2 [f#3,b3,e4]@5 d4@3 ~ [f#3,b3,d4]@7 ~ c4@3 ~ d4@4, ~@2 f#3@5 ~@17]/2", // E5 Esus2 Bm
})).s("gm_piano").gain(0.48)
// bass · acoustic bass · "BASS | FRETLESS P2-A10"
const bass = note(`<
A@3 B@3 ~ C D C@2 E F G H I J K@2 L M N O P Q R S T Q U V T W X Y Z W X AA AB AC AD@2 AE F AE AF AG AH AG@2 AI AJ AK
AL AM AC AN C G AO G AP AG@2 AQ AH AR AS AK AT@4 AU AV@3 AW@3 AX AY AZ@4 BA@5 BB@3 AQ BC@6 BD@3 BE@4 BF BG@3 BF BH
BI@3 BJ@7 BK@8 BL@2 ~
>`.pickRestart({
A: "[g2,d3,b3]/3", B: "[[g2,d3,b3]@11 ~]/3", C: "g2@5 ~ d3@5 ~", D: "~ g2@7 ~ g2@3 d3@10 ~@2",
E: "~ e2@9 ~@3 b2@10 ~", F: "~ e2@7 ~ e2@3 b2@10 ~@2", G: "e2@5 ~ b2@5 ~", H: "e2@7 ~@2 e2@3 b2@5 ~ e2@5 ~",
I: "~ c2@10 ~ g2@11 ~", J: "~ c2@10 ~ g2@10 ~@2", K: "c2@11 ~ g2@11 ~", L: "[a1,a2]@11 ~ [b1,b2]@11 ~",
M: "[c2,c3]@11 ~ [d2,d3]@11 ~", N: "[e2,e3]@11 ~ [a2,a3]@11 ~", O: "~ [e2,e3]@10 ~ [c2,c3]@11 ~",
P: "[g1,g2]@15 ~@3 d2@5 ~", Q: "g2@5 ~ d2@5 ~", R: "g1@7 ~@2 g1@2 ~ d2@10 ~@2", S: "g1@10 ~@3 d2@10 ~",
T: "g1@15 ~@3 d2@5 ~", U: "g1@8 ~ g1@2 ~ d2@10 ~@2", V: "~ g1@10 ~ d2@11 ~", W: "g2@11 ~ d2@11 ~",
X: "f#1@8 ~ f#1@2 ~ d2@11 ~", Y: "~ f#1@10 ~ d2@11 ~", Z: "~ f#1@14 ~@3 d2@5 ~", AA: "g2@8 ~ g2@2 ~ d2@10 ~@2",
AB: "~ g2@10 ~ d3@11 ~", AC: "g2@7 ~@2 g2@3 d3@10 ~@2", AD: "g2@11 ~ d3@10 ~@2", AE: "e2@11 ~ b2@11 ~",
AF: "e2@8 ~ e2@2 ~ b2@5 ~ e2@5 ~", AG: "c2@5 ~ g2@5 ~", AH: "c2@9 ~@3 g2@10 ~@2", AI: "[g1,g2]@5 ~ [b1,b2]@5 ~",
AJ: "[c2,c3]@5 ~ [d2,d3]@5 ~", AK: "[e2,e3]@5 ~ [a2,a3]@5 ~", AL: "[e2,e3]@5 ~ [c2,c3]@5 ~", AM: "g2@9 ~@3 d3@10 ~@2",
AN: "g2@10 ~@2 d3@9 ~@3", AO: "~ e2@6 ~@2 e2@3 b2@10 ~@2", AP: "e2@7 ~@2 e2@2 ~ b2@5 ~ b2@5 ~",
AQ: "c2@10 ~ g2@10 ~@3", AR: "[a1,a2]@5 ~ [b1,b2]@5 ~", AS: "[c2,c3]@11 ~ d3@10 ~@2, ~@11 d2@10 ~@3",
AT: "[[e2,e3]@9 ~@3 [c2,c3]@10 ~@2 g2@15 ~@3 d2@5 g2@10 ~@2 d2@10 ~@2 g1@8 ~ g1@3 ~ d2@10 ~@2, ~@23 g1@15 ~@58]/4", // E C
AU: "g1@5 ~ d2@5 ~", AV: "[g1@15 ~@2 d2@5 ~ g2@10 ~@2 d2@10 ~@2 g1@8 ~ g1@3 d2@10 ~@3]/3",
AW: "[g1@10 ~@2 d2@11 g1@15 ~@3 d2@5 ~ g2@11 ~ d2@11 ~@2]/3", AX: "f#1@7 ~ f#1@3 d2@11 ~@2", AY: "f#1@10 ~ d2@11 ~@2",
AZ: "[f#1@14 ~@3 d2@5 ~ g2@11 ~ d2@11 ~ f#1@8 ~ f#1@3 d2@11 ~ g2@8 ~ g2@2 ~ d2@10 ~@3]/4",
BA: "[g2@10 ~ d3@11 ~ g2@7 ~@2 g2@3 d3@10 ~@2 g2@11 ~@2 d3@10 ~ g2@11 ~@2 d3@10 ~ e2@11 ~ b2@11 ~@2]/5",
BB: "[e2@7 ~ e2@3 b2@10 ~@2 e2@11 ~ b2@11 ~ e2@8 ~ e2@2 ~ b2@5 ~ e2@5 ~@2]/3",
BC: "[c2@9 ~@2 g2@10 ~@2 c2@10 ~@2 g2@10 ~@2 c2@10 ~@2 g2@10 ~@2 [g1,g2]@10 ~@3 b2@9 ~@3 c3@10 ~ [d2,d3]@10 ~@2 [e2,e3]@10 ~@2 [a2,a3]@10 ~@3, ~@83 b1@10 ~@2 c2@10 ~@39]/6", // G D E A
BD: "[[e2,e3]@9 ~@2 [c2,c3]@10 ~@2 [g1,g2]@15 ~@3 d2@5 ~ g2@10 ~@2 d2@10 ~@3]/3", // E C G
BE: "[g1@7 ~ g1@3 d2@10 ~@2 g1@10 ~@3 d2@9 ~@2 g1@15 ~@3 d2@5 ~ g2@10 ~@2 d2@10 ~@3]/4",
BF: "g1@7 ~ g1@2 ~ d2@10 ~@3", BG: "[g1@9 ~@2 d2@10 ~@2 g1@15 ~@3 d2@5 ~ g2@10 ~@2 d2@10 ~@3]/3",
BH: "g1@9 ~@2 d2@10 ~@3", BI: "[g1@14 ~@3 d2@5 ~ g2@10 ~@2 d2@10 ~@2 g1@7 ~@2 g1@3 d2@10 ~@3]/3",
BJ: "[g2@7 ~ g2@2 ~ d2@10 ~@2 [g1,g2]@15 ~@3 d2@5 ~ g2@10 ~@2 d2@10 ~@2 g1@7 ~@2 g1@3 d2@10 ~@2 g1@10 ~@2 d2@9 ~@3 g1@15 ~@3 d2@5 ~ g2@10 ~@2 d2@10 ~@2 g1]/7", // G
BK: "[~@8 g1@3 d2@10 ~@2 g1@9 ~@3 d2@10 ~@2 g1@15 ~@3 d2@5 ~ g2@10 ~@2 d2@10 ~@2 g1@7 ~@2 g1@3 d2@10 ~@2 g1@9 ~@3 d2@10 ~@2 g1@14 ~@4 d2@5 ~ g2@10 ~@2 d2@10 ~@2 g1]/8",
BL: "[~@8 g1@3 d2@10 ~@2 g2@7 ~@2 g2@2 ~ d2@10 ~@3]/2",
})).s("gm_acoustic_bass").gain(0.48)
// other · blown bottle · "FLUTE | FLUTE P1-C14"
const blown_bottle = note(`<
A B C D B E ~@17 D F G ~ D F C ~ D H I ~ D J K ~@33 L@2 M ~ L@2 M ~ L@2 N ~ L@2 O ~@17 P@2 Q ~ R@2 S ~ T@2 U ~ V@2 ~@2
V@2 U ~ W@2 X ~ Y Z AA ~ Y Z ~@3
>`.pickRestart({
A: "~@6 f#5@2 ~@7 a5@3 ~@6", B: "g5@3 ~@6 d5@3 ~@6 c5@2 ~@4", C: "~@12 b4@2 ~ c5@3 b4@3 d5@3",
D: "~@2 f#5 ~@2 a5 ~@2", E: "~@12 b4@3 c5@2 ~ b4@2 ~ d5@3", F: "g5@2 ~@7 d5@2 ~@7 c5@2 ~@4",
G: "~@12 b4@3 c5@2 ~ b4@3 d5@3", H: "g5@3 ~@6 d5@2 ~@7 c5@2 ~@4", I: "~@12 b4@2 ~ c5@3 b4@2 ~ d5@3",
J: "g5@3 ~@6 d5@2 ~@7 c5@3 ~@3", K: "~@12 b4@3 c5@3 b4@2 ~ d5@3",
L: "[~@5 f#5@2 ~@7 a5@3 ~@6 g5@2 ~@7 d5@3 ~@6 c5@2 ~@5]/2", M: "~@11 b4@3 c5@3 b4@2 ~ d5@2 ~@2",
N: "~@11 b4@3 c5@3 b4@2 ~ d5@3 ~", O: "~@11 b4@2 ~ c5@3 b4@2 ~ d5@3 ~",
P: "[~@5 f#5@2 ~@7 a5@2 ~@7 g5@2 ~@7 d5@3 ~@6 c5@3 ~@4]/2", Q: "~@11 b4@3 c5@2 ~ b4@2 ~ d5@2 ~@2",
R: "[~@5 f#5@2 ~@7 a5@3 ~@6 g5@2 ~@7 d5@3 ~@6 c5@3 ~@4]/2", S: "~@11 b4@3 c5@3 b4@3 d5@3 ~",
T: "[~@5 f#5@3 ~@6 a5@2 ~@7 g5@3 ~@6 d5@3 ~@6 c5@2 ~@5]/2", U: "~@11 b4@3 c5@3 b4@3 d5@2 ~@2",
V: "[~@5 f#5@3 ~@6 a5@2 ~@7 g5@3 ~@6 d5@3 ~@6 c5@3 ~@4]/2",
W: "[~@4 f#5@3 ~@7 a5@2 ~@7 g5@3 ~@5 d5@3 ~@6 c5@3 ~@5]/2", X: "~@10 b4@3 c5@3 b4@3 d5@3 ~@2",
Y: "~@4 f#5@3 ~@6 a5@2 ~@7 g5@2", Z: "~@7 d5@3 ~@6 c5@3 ~@5", AA: "~@10 b4@3 c5@3 b4@3 d5@2 ~@3",
})).s("gm_blown_bottle").gain(0.32)
// other · pan flute · "FLUTE | IcePiano P1-B7"
const pan_flute = note(`<
A B C A B D ~@17 E B C ~ E B D ~ E B D ~ E B C ~@33 F@2 G ~ H I J ~ K@2 L ~ M N O ~@17 P@2 Q ~ R@2 Q ~ R@2 Q ~ S@2 ~@2
R@2 T ~ R@2 L ~ R@2 Q ~ S@2 ~@3
>`.pickRestart({
A: "~@6 f#5@2 ~@7 a5@3 ~@6", B: "g5@2 ~@7 d5@2 ~@7 c5@2 ~@4", C: "~@12 b4@3 c5@2 ~ b4@2 ~ d5@2 ~",
D: "~@12 b4@2 ~ c5@2 ~ b4@2 ~ d5@2 ~", E: "~@6 f#5@2 ~@7 a5@2 ~@7",
F: "[~@6 f#5@2 ~@6 a5@2 ~@7 g5@2 ~@7 d5@2 ~@7 c5@3 ~@4]/2", G: "~@11 b4@3 c5@2 ~@2 b4@2 ~ d5@2 ~",
H: "~@5 f#5@3 ~@6 a5@2 ~@8", I: "g5@2 ~@6 d5@3 ~@6 c5@3 ~@4", J: "~@11 b4@3 c5@2 ~ b4@3 d5@2 ~@2",
K: "[~@6 f#5@2 ~@6 a5@2 ~@7 g5@2 ~@7 d5@3 ~@6 c5@3 ~@4]/2", L: "~@11 b4@2 ~ c5@2 ~ b4@2 ~ d5@2 ~@2",
M: "~@3 f#5 ~@3 a5 ~@4", N: "g5@2 ~@6 d5@2 ~@7 c5@3 ~@4", O: "~@11 b4@2 ~ c5@2 ~ b4@3 d5@3 ~",
P: "[~@5 f#5@2 ~@7 a5@2 ~@7 g5@2 ~@7 d5@2 ~@7 c5@3 ~@4]/2", Q: "~@11 b4@2 ~ c5@2 ~ b4@3 d5@2 ~@2",
R: "[~@5 f#5@2 ~@7 a5@2 ~@7 g5@2 ~@7 d5@2 ~@7 c5@2 ~@5]/2",
S: "[~@5 f#5@3 ~@6 a5@2 ~@7 g5@2 ~@7 d5@2 ~@7 c5@2 ~@5]/2", T: "~@11 b4@2 ~ c5@2 ~ b4@2 ~ d5@3 ~",
})).s("gm_pan_flute").gain(0.32)
// chords · string ensemble 2 · "STRINGS | LwSTRINGS I-B13"
const string_ensemble_2 = note(`<
~@7 A@4 B@4 C@4 D@4 E@4 ~@4 F@5 ~@3 E@4 G@4 C@4 H@7 I@8 J@8 ~@4 K@5 ~@3 L@8 M@8 N@8 O@5 ~@3 N@8 P@6 ~@4
>`.pickRestart({
A: "[[g4,b4,d5] [g4,b4,d5]@21 ~@74, ~ f#5@86 ~@9]/4", B: "[~ d5@86 ~@9, [e4,g4,b4]@43 ~@5]/4",
C: "[[c4,e4,g4,b4]@43 ~@5]/4", D: "[[a4,c5,e5,g5]@43 ~@5]/4", E: "[[g4,b4,d5,f#5]@43 ~@5]/4",
F: "[[g4,b4,d5,f#5]@107 ~@13]/5", G: "[[e4,g4,b4,d5]@43 ~@5]/4",
H: "[[a4,c5,e5,g5]@43 ~@5 [b4,d5,f#5]@36, ~@95 g4@73]/7", // Am7 Bm
I: "[~@12 [g4,b4,d5]@43 ~@5 [e4,g4,b4]@36, ~@23 e4@86 ~@10 c4@73]/8", // G Em
J: "[~@12 [e5,g5]@43 ~@5 [d5,f#5]@36, ~@23 [a4,c5]@86 ~@10 [g4,b4]@73]/8", // Em D Am G
K: "[~@12 [d5,f#5]@43 ~@5, ~@23 [g4,b4]@86 ~@11]/5", // D G
L: "[~@24 f#5@85 ~@10 [e4,g4,b4,d5]@73, ~@23 [g4,b4,d5]@86 ~@83]/8", // Em7 G
M: "[~@23 [c4,e4,g4,b4]@86 ~@10 [a4,c5,e5,g5]@73]/8", N: "[~@23 [g4,b4,d5,f#5]@169]/8",
O: "[~@23 [g4,b4,d5,f#5]@86 ~@11]/5", P: "[~@23 [g4,b4,d5,f#5]@107 ~@14]/6",
})).s("gm_string_ensemble_2").gain(0.4)
// drums · kick
const kick = s("bd").struct(`<
~@7 A B C D A D A D C D A D A E C F A D A D A D A D C D A G ~ D A H A D A D I J K L A D A D A M A N K J K J K O ~ D A
P K J K J K Q K R A G K J K Q K S K J K J K Q K J K R I J K J K J K R I J K Q K T K R I J ~ N K J K J K J ~ N K J K J
K J ~ N K J K R I J K Q ~
>`.pickRestart({
A: "x", B: "~ x ~@5 x ~@16", C: "~ x ~@22", D: "x!2 ~@2", E: "~ x ~@4 x ~@17", F: "~ x ~@10 x ~@11",
G: "x ~@5 x ~@16 x", H: "x!2", I: "x ~@22 x", J: "~@5 x ~@17 x", K: "~@23 x", L: "~ x ~@2", M: "x ~@4 x ~@18",
N: "x ~@10 x ~@11 x", O: "~@6 x ~@16 x", P: "x ~@4 x ~@17 x", Q: "~@11 x ~@11 x", R: "~@5 x ~@18",
S: "~@5 x ~@16 x ~", T: "~@2 x ~@8 x",
})).gain(0.56)
// drums · snare
const snare = s("sd").struct(`<
~@7 A B A C A C D E D C D C A B F G D C D C D C D H D C D C D C D G D C D C D C D H I C D C D C H G J K J K D C D H D
K J K J K L M J K D C N K L M J K J K O K L M O K J P O K J K O K J K J K L M Q R J P D K D G J K J P D K S ~ J K J P
O K L ~ J K J T D K S ~@2
>`.pickRestart({
A: "~@13 x ~@8 x ~", B: "~@13 x ~@10", C: "~ x", D: "~@4 x ~@2 x", E: "~@13 x ~@5 x ~ x ~@2", F: "~@13 x ~@7 x ~@2",
G: "x!2 ~@6", H: "~@4 x ~ x!2", I: "~@6 x ~@4 x", J: "~@11 x ~@8 x ~@3", K: "~@11 x ~@12", L: "~@12 x ~@7 x ~@2 x",
M: "~ x ~@10", N: "~@3 x ~ x", O: "~@11 x ~@9 x ~@2", P: "~@11 x ~@5 x ~@2 x ~@3", Q: "~@11 x ~@7 x ~@4",
R: "~@5 x ~@6", S: "~@11 x ~@8 x ~@2 x", T: "~@11 x ~@5 x ~@3 x ~@2",
})).gain(0.7)
// drums · hihat
const hihat = s("hh").struct(`<
~@7 A B C D E D@3 F D G H ~@20 F D@3 I G J K I D@3 ~@4 J@3 L M N J I@2 D O L ~@20 I O J L P Q J L J@3 L ~@37
>`.pickRestart({
A: "~@7 x ~@5 x ~@5 x ~@4", B: "~ x ~@5 x ~@5 x ~@5 x ~@4", C: "~ x ~@4 x ~@5 x ~@5 x ~@5", D: "x!4",
E: "~@7 x ~@5 x ~@4 x ~@5", F: "~@6 x ~@6 x ~@4 x ~@5", G: "x ~@5 x ~@5 x ~@5 x ~@4 x", H: "~@5 x ~@5 x ~@6 x ~@5",
// … 55 more lines
More by Robert Palmer
Addicted To Love1986 · A major · 110 bpmSimply IrresistibleA major · 141 bpmBad Case Of Lovin' You ( Doctor, Doctor)E major · 153 bpmI'll Be Your Baby TonightE♭ major · 96 bpmEarly in the MorningE minor · 120 bpmKnow By NowE major · 118 bpmMercy Mercy Me I Want YouG♯ minor · 100 bpmSimply IrrestibleE major · 145 bpm
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.