0:00/0:00
// Being With You — Smokey Robinson
// 108.1 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 115 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(108.1/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 bass finger
const bass = note(`<
~@2 A@3 B@8 C@8 D@6 E F G H I J K L M N O P Q R S T U V W V X V W T Y V W Z X AA AB AC@2 AD@2 AE AF AG AH AI@2 AJ AK
AL@8 AM@5 AN@8 AO@7 AP@8 AQ@5 AR@4
>`.pickRestart({
A: "[~ a2@24 ~@11]/3",
B: "[~@14 a1@3 b1@3 c2@3 d2@3 a1@24 g1@24 f1@48 c2@6 ~@3 c2 ~@2 c2@6 ~@3 b1@3 a1@7 ~@2 d1@3 ~@3 e1@3 f1@3 g1@3 c2@6 ~@3 c2 ~@2 c2@6 ~@3 b1]/8",
C: "[~@2 a1@6 ~@3 e2@3 a2@3 g2@3 e2@3 d2@3 c2@6 ~@3 c2 ~@2 c2@7 ~@2 b1@3 a1@7 ~@2 d2@3 ~@3 e2@3 f2@3 g2@3 c2@4 ~@5 c2 ~@2 c2@4 ~@5 b1@3 a1@6 ~@3 e2@3 a2@3 g2@3 e2@3 d2@3 c2@6 ~@3 c2 ~@2 c2@6 ~@3 b1@3 a1@7 ~@2 d1@3 ~@3 e1@3 f1@3 g1@3 c2@6 ~@3 c2 ~@2 c2@6 ~@3 b1]/8",
D: "[~@2 a1@6 ~@3 e2@3 a2@3 g2@3 e2@3 d2@3 c2@6 ~@3 c2 ~@2 c2@7 ~@2 b1@3 a1@7 ~@2 d2@3 ~@3 e2@3 f2@3 g2@3 c2@4 ~@5 c2 ~@2 c2@6 ~@3 g2@3 c2@4 ~@5 c2 ~@2 c2@3 ~@2 g1 g1@3 a1@3 c2@7 ~@2 a1@9 g1@3 ~]/6",
E: "~@2 c2@7 ~@2 a1@9 g1@3 ~", F: "~@2 f2@9 d2@9 c2@4", G: "~@2 f2@9 d2@9 c2@3 ~", H: "~@2 c2@7 ~@2 a1@8 g1@3 ~@2",
I: "~ c2@7 ~@2 a1@9 g1@3 ~@2", J: "~ f2@9 d2@9 c2@4 ~", K: "~ f2@9 d2@9 c2@3 ~@2", L: "~ e2@9 d2@9 b1@3 ~@2",
M: "~ e2@7 ~@2 d2@9 b1@3 ~@2", N: "~ a1@9 g1@9 e1@4 ~", O: "~ a1@9 a1 ~@2 a1@6 g1@2 e1@3",
P: "f1@7 ~@2 f2@9 c2@3 ~@3", Q: "f1@3 f2@3 f1 ~", R: "g1@6 ~@3 g1 ~@2 g1@6 ~@3 g1 ~@2",
S: "g1@6 ~@3 g1 ~@2 g1@3 ~ g1 ~ a1@3 b1@3", T: "c2@6 ~@3 c2@3 c2@4 ~@5 b1@3", U: "a1 e2 a2 d2 ~ e2 f2 g2",
V: "c2@6 ~@3 c2 ~@2 c2@6 ~@3 b1@3", W: "a1@2 ~ e2 a2 g2 e2 d2", X: "a1@2 ~ d1 ~ e1 f1 g1", Y: "a1@2 ~ d2 ~ e2 f2 g2",
Z: "c2@2 ~ c2 c2@2 ~ b1", AA: "c2@6 ~@3 c2 ~@2 c2@6 ~@3 g2@3", AB: "c2@2 ~ c2!2 ~ g1 g#1", AC: "[a1@15 e2]/2",
AD: "[a2@34 ~@2 a1@3 b1@3 c2@3 e2@3]/2", AE: "a1", AF: "g1", AG: "f1", AH: "d1", AI: "c2@7 ~@2 a1@9 g1@3 ~@3",
AJ: "f2@9 d2@9 c2@4 ~@2", AK: "f2@3 d2@3 c2 ~",
AL: "[c2@7 ~@2 a1@8 g1@3 ~@3 c2@7 ~@2 a1@9 g1@3 ~@3 f2@9 d2@9 c2@4 ~@2 f2@9 d2@9 c2@3 ~@3 e2@9 d2@9 b1@3 ~@3 e2@7 ~@2 d2@9 b1@3 ~@3 a1@9 g1@9 e1@4 ~@2 a1@9 a1 ~@2 a1@5 g1@3 e1@3 f1@2]/8",
AM: "[~@7 f2@9 c2@3 ~@3 f1@9 f2@9 f1@3 ~@3 g1@6 ~@3 g1 ~@2 g1@6 ~@3 g1 ~@2 g1@6 ~@3 g1 ~@2 g1@3 ~ g1 ~ a1@3 b1@3 c2@6 ~@3 c2@3 c2@4 ~@5 b1@3 a1@2]/5",
AN: "[~ e2@3 a2@3 d2@3 ~@3 e2@3 f2@3 g2@3 c2@6 ~@3 c2 ~@2 c2@6 ~@3 b1@3 a1@6 ~@3 e2@3 a2@3 g2@3 e2@3 d2@3 c2@6 ~@3 c2 ~@2 c2@6 ~@3 b1@3 a1@6 ~@3 d1@3 ~@3 e1@3 f1@3 g1@3 c2@6 ~@3 c2 ~@2 c2@6 ~@3 b1@3 a1@6 ~@3 e2@3 a2@3 g2@3 e2@3 d2@3 c2@6 ~@3 c2@3 c2@4 ~@5 b1@3 a1@2]/8",
AO: "[~@7 d2@3 ~@3 e2@3 f2@3 g2@3 c2@6 ~@3 c2 ~@2 c2@6 ~@3 b1@3 a1@6 ~@3 e2@3 a2@3 g2@3 e2@3 d2@3 c2@6 ~@3 c2@3 c2@6 ~@3 b1@3 a1@6 ~@3 d1@3 ~@3 e1@3 f1@3 g1@3 c2@7 ~@2 c2 ~@2 c2@7 ~@2 b1@3 a1@7 ~@2 e2@3 a2@3 a2@3 g2@3 e2@3 c2@2]/7",
AP: "[~@7 c2@3 c2@6 ~@3 b1@3 a1@7 ~@2 d1@4 ~@2 e1@3 f1@3 g1@3 c2@7 ~@2 c2 ~@2 c2@6 ~@3 b1@3 a1@7 ~@2 e2@3 a2@3 a2@3 g2@3 e2@3 c2@6 ~@3 c2@3 c2@7 ~@2 b1@3 a1@6 ~@3 d2@3 ~@3 e2@3 f2@3 g2@3 c2@7 ~@2 c2@3 c2@6 ~@3 b1@3 a1@6 ~@3 e2@3 a2@3 a2@3 g2@3 e2@3 c2@2]/8",
AQ: "[~@7 c2@3 c2@6 ~@3 b1@3 a1@7 ~@2 d1@4 ~@2 e1@3 f1@3 g1@3 c2@7 ~@2 c2 ~@2 c2@6 ~@3 b1@3 a1@7 ~@2 e2@3 a2@3 a2@3 g2@3 e2@3 c2@6 ~@3 c2@3 c2@7 ~@2 b1@3 a1@2]/5",
AR: "[~@7 d2@3 ~@3 e2@3 f2@3 g2@3 ~ c2@61 ~@12]/4",
})).s("gm_electric_bass_finger").gain(0.35)
// other · epiano1
const epiano1 = note(`<
~@2 A@4 B@5 ~@2 C@3 ~ D@2 E ~ F@3 G@3 ~@8 H I@2 J ~ K ~@4 L M ~@2 N O P ~ Q R P S T@2 U V W ~@2 X Y ~@9 Z@2 AA@2 AB@2
AC ~@3 AD@2 ~@2 AE@3 ~ AF@2 AG@8 AH@8 AI AJ AK@2
>`.pickRestart({
A: "[~@2 e5@18 a5@3 e5@3 g5@9 b4@9 c5@3 d5@3 e5@36 ~@10]/4",
B: "[~@17 a5@3 b5@3 c6@3 b5@15 e5@3 g5@3 e5@3 ~@9 e6@3 d6@3 c6@3 a5@3 f5@3 f5@3 e5@3 [c5,f5]@18 ~@22, ~@47 f#5 ~@72]/5", // F5
C: "[~@14 [d4,b4]@3 [e4,c5]@3 [d4,b4]@3 [c4,a4]@3 [g3,g4]@24 ~@22]/3", D: "[~@11 a5@3 g5@3 e5@3 d5@3 e5@19 ~@6]/2",
E: "~@2 [a3,b4]@3 [a3,c5]@3 [a3,b4]@3 [e4,a4]@13", F: "[~@17 [c5,a5]@3 [a4,e5]@3 [c5,g5]@27 ~@22]/3",
G: "[~@2 [d4,b4]@3 [e4,c5]@3 [d4,b4]@3 [c4,a4]@9 [g3,e4]@6 [c4,g4]@12 e5@3 b4@3 g4@3 e4@3 ~@22]/3", // G C G F C C5
H: "~@13 g5@6 a5@5", I: "[~ c6@25 ~@2 a5@3 g5@3 e5@3 d5@3 e5@3 c5@2 a4@3]/2", J: "c5", K: "d5", L: "~@5 a5 e5!2",
M: "g5@2 ~", N: "~@4 [d5,b5] [e5,c6] [d5,b5] [c5,a5]", O: "[g4,g5]@8 ~ [a4,a5]@3", P: "[e4,e5]@3 [f4,f5]@5",
Q: "~@3 [a4,a5]", R: "[g4,g5]@3 [a4,a5]", S: "~@6 d6 e6", T: "[d6 c6@2 b5 a5 g5 f5 e5@7 a5 g5]/2",
U: "e5@10 ~@2 a5@3 b5@3 c6@3 d6@3", V: "e6", W: "~ e6@2 c6 a5 c6@3", X: "~@3 e6 d6 c6 a5 f5", Y: "f5 e5 [c5,f5]@6",
Z: "[~@11 g5@6 a5@6 c6@25]/2", AA: "[~@2 a5@3 g5@3 e5@3 d5@3 e5@2 c5@3 a4@3 c5@24 ~@2]/2", AB: "[~@22 d5@24 d5 ~]/2",
AC: "~@4 d5@3 ~@3 d5 ~@5 d5 ~@7", AD: "[~@13 a5@3 e5@3 e5@3 g5@16 ~@10]/2",
AE: "[~@10 [d5,b5]@3 [e5,c6]@3 [d5,b5]@3 [c5,a5]@3 [g4,g5]@16 ~@2 [a4,a5]@6 [e4,e5]@9 [f4,f5]@15 ~@2]/3", // G C G F G A E F
AF: "[~@8 [a4,a5]@3 [g4,g5]@9 [a4,a5]@3 [e4,e5]]/2", // A G A E
AG: "[~@7 [f4,f5]@15 [g4,g5]@18 [a4,a5]@6 [e4,e5]@12 [a4,a5]@6 [e4,e5]@6 [g4,g5]@16 ~@2 [a4,a5]@6 [e4,e5]@10 ~@2 [e4,e5]@6 [f4,f5]@4 ~@2 [g4,g5]@16 ~@2 [a4,a5]@6 [e4,e5]@10 ~@2 [e4,e5]@6 [f4,f5]@4 ~@2 [g4,g5]@16 ~@2 [a4,a5]@6 [e4,e5]@2]/8", // F G A E A E G A …
AH: "[~@5 [e4,e5]@3 [f4,f5]@2 ~ [g4,g5]@8 ~ [a4,a5]@3 [e4,e5]@5 ~ [e4,e5]@3 [f4,f5]@2 ~ [g4,g5]@8 ~ [a4,a5]@3 [e4,e5]@5 ~ [e4,e5]@3 [f4,f5]@2 ~ [g4,g5]@8 ~ [a4,a5]@3 [e4,e5]@5 ~ [e4,e5]@3 [f4,f5]@2 ~ [g4,g5]@8 ~ [a4,a5]@3 [e4,e5]]/8", // E F G A E F G A …
AI: "~@10 [e4,e5]@6 [f4,f5]@5 ~@3", AJ: "~@5 b5@5 ~ g5@5 e5@7 ~", AK: "[d5@3 ~]/2",
})).s("gm_epiano1").gain(0.3).pan(0.3)
// chords · epiano2
const epiano2 = note(`<
~@2 A@2 B@3 C D@3 E@2 F G H I F J E@2 F G H I K L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T U V W T U V W T U V W T U V W X@3 ~
Y@2 Z@2 AA@2 AB@2 AC@7 AD@6 AE@8 AF@4 AG@8 AH@8 AI@4
>`.pickRestart({
A: "[~ [a3,c4,e4]@23]/2", B: "[~@2 [a3,c4,e4]@28 ~@2 g3@3 a3@3 b3@3 c4@3 d4@3 c4@3 [c4,e4]@22]/3", C: "~ [c4,e4]@11",
D: "[~@2 [c4,e4]@48 [e3,g3,b3]@7 ~@2 [e3,g3,b3]@7 ~@2 [e3,g3,b3]@4]/3", // C Em
E: "[~@2 [e3,g3,c4]@7 ~@2 [e3,g3]@13 ~@2 [e3,g3,b3]@7 ~@2 [e3,g3,b3]@7 ~@2 [e3,g3,b3]@4, ~@11 c4@15 ~@22]/2", // C Em
F: "~@2 [e3,g3,a3]@7 ~@2 [e3,g3,a3]@13", G: "~@2 [e3,g3,b3]@7 ~@2 [g3,b3]@9 [e3,g3,b3]@4, ~@11 e3@7 ~@6",
H: "~@2 [e3,g3,c4]@9 [e3,g3,c4]@13", I: "~@2 [e3,g3,b3]@7 ~@2 [e3,g3]@7 ~@2 [e3,g3,b3]@4, ~@11 b3@9 ~@4",
J: "~@2 [e3,g3,b3]@7 ~@2 [e3,g3,b3]@7 ~@2 [e3,g3,b3]@4", K: "~@2 [e3,g3,b3]@7 ~@2 [e3,g3,b3]@13",
L: "[~@2 [e3,g3,b3]@16 ~@2 [e3,g3,b3]@27 ~]/2", M: "[~ [e3,a3,c4]@8 ~ [e3,a3,c4]@14]/2",
N: "[~@2 [e3,g3,b3]@16 ~ [e3,g3,b3]@27 ~@2]/2", O: "[~ [e3,a3,c4]@16 ~@2 [e3,a3,c4]@28 ~]/2",
P: "[~ [e3,g3,b3]@31 ~@2 [e3,g3,b3]@13 ~]/2", Q: "[~ [e3,a3,c4]@31 ~@2 [e3,a3,c4]@9 [e3,a3,c4]@4 ~]/2",
R: "[[f3,a3,c4]@31 ~@2 [f3,a3,c4]@12 ~@3]/2", S: "[[g3,b3,d4]@31 ~@2 [g3,b3,d4]@9 [g3,b3,d4]@6]/2",
T: "[g3,b3,e4]@11 ~", U: "[g3,c4,e4]@7 ~@2 [a3,c4,d4]@12 ~@3", V: "[g3,b3,e4]@8 ~ [g3,b3,e4]@2 ~",
W: "[g3,c4,e4]@11 ~", X: "[[a3,e4], c4@35 ~]/3", Y: "[c4,e4]@11 ~", Z: "[c4,e4]/2",
AA: "[[e3,g3,b3]@16 ~@2 [e3,g3,b3]@27 ~@3]/2", AB: "[[e3,a3,c4]@8 ~ [e3,a3,c4]@14 ~]/2",
AC: "[[e3,g3,b3]@16 ~ [e3,g3,b3]@27 ~@3 [e3,a3,c4]@16 ~@2 [e3,a3,c4]@28 ~@2 [e3,g3,b3]@31 ~@2 [e3,g3,b3]@13 ~@2 [e3,a3,c4]@25]/7", // Em Am Em Am
AD: "[~@8 [e3,a3,c4]@8 [e3,a3,c4]@4 ~@2 [f3,a3,c4]@31 ~@2 [f3,a3,c4]@12 ~@3 [g3,b3,d4]@31 ~@2 [g3,b3,d4]@9 [g3,b3,d4]@6 [g3,b3,e4]@22 ~@2 [g3,c4,e4]@2]/6", // Am F G Em C
AE: "[~@7 [a3,c4,d4]@12 ~@3 [g3,b3,e4]@16 ~@2 [g3,b3,e4]@4 ~@2 [g3,c4,e4]@22 ~@2 [g3,b3,e4]@22 ~@2 [g3,c4,e4]@7 ~@2 [a3,c4,d4]@12 ~@3 [g3,b3,e4]@16 ~@2 [g3,b3,e4]@4 ~@2 [g3,c4,e4]@22 ~@2 [g3,b3,e4]@22 ~@2 [g3,c4,e4]@2]/8", // D7 Em C Em C D7 Em C …
AF: "[~@7 [a3,c4,d4]@12 ~@3 [g3,b3,e4]@16 ~@2 [g3,b3,e4]@4 ~@2 [g3,c4,e4]@22 ~@2 [g3,b3,e4]@22 ~@2 [g3,c4,e4]@2]/4", // D7 Em C Em C
AG: "[~@7 [a3,c4,d4]@12 ~@3 [g3,c4,e4]@16 ~@2 [g3,c4,e4]@4 ~@2 [a3,c4,e4]@22 ~@2 [g3,c4,e4]@22 ~@2 [a3,c4]@9 [a3,c4,d4]@13 ~@2 [g3,c4,e4]@22 ~@2 [a3,c4]@9 [a3,c4,d4]@13 ~@2 [g3,c4,e4]@22 ~@2 [g3,a3,c4]@2, ~@94 g3@7 ~@41 g3@7 ~@43]/8", // D7 C Am C Am D7 C Am …
AH: "[~@7 [a3,c4,d4]@13 ~@2 [g3,c4,e4]@22 ~@2 [a3,c4]@9 [a3,c4,d4]@13 ~@2 [g3,c4,e4]@22 ~@2 [a3,c4]@9 [a3,c4,d4]@13 ~@2 [g3,c4,e4]@22 ~@2 [a3,c4]@9 [a3,c4,d4]@13 ~@2 [g3,c4,e4]@22 ~@2 [g3,a3,c4]@2, ~@46 g3@7 ~@41 g3@7 ~@41 g3@7 ~@43]/8", // D7 C Am D7 C Am D7 C …
AI: "[~@7 [a3,c4,d4]@14 ~@2 [g3,b3,e4]@61 ~@12]/4", // D7 Em
})).s("gm_epiano2").gain(0.3).pan(0.7)
// other · electric guitar muted
const electric_guitar_muted = note(`<
~@2 A B C D E F@2 ~@2 G@2 H@2 ~@4 G@2 H@2 ~@35 I J@2 K L M ~@10 N O@2 P Q R S T ~@15 U@2 ~@2 V ~ V ~ V ~ V ~ V ~ W ~@3
>`.pickRestart({
A: "~@2 a3 ~@2 c4 ~@2 b3 ~@2 g3 ~@2 a3 ~@2 g3 ~@2 a3!2 ~ g3",
B: "g3 ~ a3 ~@2 c4 ~@2 b3 ~@2 g3 ~@2 a3!2 ~ g3!2 ~ e3 ~@2 g3",
C: "~@2 a3 ~@2 c4 ~@2 b3 ~@2 g3 ~@2 a3!2 ~ g3!2 ~ e3!2 ~ g3",
D: "g3 ~ a3 ~@2 e3!2 ~ g3!2 ~ g3!2 ~ a3!2 ~ c4!2 ~ b3!2 ~ e3",
E: "e3 ~ a3 ~@2 c4 ~@2 b3 ~@2 g3!2 ~ a3 ~@2 g3!2 ~ a3 ~@2 c4", F: "~@5 c4 ~@2 b3 ~@2 g3 ~@2 a3!2 ~ g3!2 ~ a3 ~@2 c4",
G: "[~@23 g4@2 ~ g4@3 ~@19, ~@25 a4@2 ~@21]/2", H: "[~@20 e4@3 d4@3 c4@5 ~@17]/2", I: "~@18 a3@3 g3@2 ~",
J: "a3@3 c4@2 ~ b3@2 ~ g3 ~ g3 a3 ~ a3 g3 ~ g3 a3 ~ a3 g3 ~ g3",
K: "a3@3 c4@2 ~ b3@2 ~ g3@2 ~ a3@2 ~ c4@2 ~ d4@3 c4@2 ~", L: "e4@23 ~",
M: "a3@3 c4@3 b3@3 c4@3 d4@3 b3@2 ~ c4@3 c4@2 d4", N: "~@5 b3 ~@11 b3 ~@5 b3",
O: "[~@2 b3!2 ~ b3 ~@2 b3 ~@2 c4 ~@2 c4 ~@2 a3@3 g3@2 ~ a3@2 ~ c4!2 ~ c4 ~@2 c4 ~@2 c4 ~@2 c4 ~@2 d4@3 c4 ~@2 c4]/2",
P: "c4 ~ c4!2 ~ c4 ~@2 c4 ~@2 c4 ~@2 c4 ~ d4@3 c4 ~@2 c4 ~",
Q: "~ c4 ~ c4!2 ~@2 c4 ~@2 c4 ~@2 c4 ~@2 d4@3 c4 ~@2 c4 ~",
R: "~ c4 ~ c4!2 ~@2 c4 ~ c4!2 ~ c4!2 ~@2 d4@3 c4@2 ~ d4@2", S: "~@2 d4 ~@2 d4 ~@2 d4 ~@2 d4",
T: "~@2 d4 ~@2 d4 ~@2 d4 ~@3",
U: "[~ c4 ~@2 c4@3 e3@2 ~ g3 ~@2 g3@2 ~ g3@2 ~ d3@2 ~ c3@4 ~@22, ~@6 a3 ~@2 e3 ~@14]/2",
V: "~@10 c4 ~@2 c4 ~@2 c4 ~@2 c4 ~@4, ~@6 d4 ~@2 d4 ~@2", W: "~@10 c4 ~@2 c4 ~@2 c4 ~@2 c4@2 ~@3, ~@6 d4 ~@2 d4 ~@2",
})).s("gm_electric_guitar_muted").gain(0.35).pan(0.3)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@9 A B C B C B C B C B C B C B C B D@2 E F G H I J K L@2 M@2 N@2 O@2 P Q P R P Q P R P Q P R P Q P R ~@6 S T U V W X
Y Z AA AB AC@2 AD AE AF@2 AG@2 AH AI AH AJ AH AI AH AJ AH AI AH AJ AH AI AH AJ AK AL AK AL AK AL AK AL AK AL AK AL AK
AL ~@3
>`.pickRestart({
A: "~@8 c4@15 ~", B: "~@8 [e3,g3,b3] ~@11 [e3,g3,b3] ~@3", C: "~@8 [e3,a3,c4] ~@11 [e3,a3,c4] ~@3",
D: "[~@14 g3@12 [g3,c4,e4] ~@2 [g3,c4,e4] ~ [g3,c4,e4]!2 ~@5 [g3,c4,e4] ~@5 [g3,c4,e4] ~@3, ~@5 g4@21 ~@22, ~@4 e4@9 ~@11, ~@11 b3@15 ~@22]/2", // C
E: "~@2 e4 ~@2 [g3,c4] [c4,e4] ~ [g3,c4,e4] ~@5 [g3,c4,e4] ~@5 g3 ~@3", // C5 C
F: "~@2 [a3,e4] ~@2 [a3,c4,e4] c4 ~ [a3,c4,e4] ~@5 [a3,e4] ~@5 a3 ~@3", // A5 Am A5
G: "~@2 [a3,c4,e4] ~@2 [a3,c4,e4]!2 ~ [a3,c4] ~@5 [a3,c4,e4] ~@5 [a3,e4] ~@3", // Am A5
H: "~@2 [g3,c4,e4] ~@2 [g3,c4,e4] c4 ~ [g3,e4] ~@5 [g3,c4,e4] ~@4 [g3,c4,e4] ~@4", // C
I: "~ [g3,c4,e4] ~@2 [g3,c4] ~ [g3,c4,e4]!2 ~@5 [g3,c4,e4] ~@5 [g3,c4,e4] ~@4", // C C5 C
J: "~ [a3,c4,e4] ~@2 [a3,c4,e4] ~ [a3,e4] a3 ~@5 [a3,e4] ~@5 [c4,e4] ~@4", // Am A5 C
K: "~ [a3,c4] ~@2 [c4,e4] ~ [c4,e4] [a3,c4,e4] ~@5 [a3,c4,e4] ~@5 [a3,c4] ~@4", // Am C Am
L: "~@7 [e3,g3,b3] ~@11 [e3,g3,b3] ~@4", M: "~@7 [e3,a3,c4] ~@11 [e3,a3,c4] ~@4",
N: "~@6 [f3,a3,c4] ~@11 [f3,a3,c4] ~@5", O: "~@6 [g3,b3,d4] ~@11 [g3,b3,d4] ~@5",
P: "~@6 [g3,b3,e4] ~@11 [g3,b3,e4] ~@5", Q: "~@6 [g3,a3,c4] ~@11 [a3,c4,d4] ~@5",
R: "~@6 [g3,a3,c4] ~@11 [g3,a3,c4] ~@5", S: "d5@11 ~", T: "d5 ~ e5 d5@3 c5@18",
U: "[g3,c4,e4] ~@2 [g3,c4,e4] ~ [g3,e4] [g3,c4,e4] ~@5 [g3,c4,e4] ~@5 [c4,e4] ~@5", // C
V: "[g3,c4] ~@2 [c4,e4] [g3,c4,e4] ~ [g3,c4,e4] ~@5 [g3,c4] ~@5 [g3,e4] ~@5", // C5 C C5 C
W: "[a3,c4,e4] ~@2 [c4,e4] [a3,c4,e4] ~ [a3,e4] ~@5 [a3,c4] ~@5 [a3,c4,e4] ~@5", // Am C Am A5 Am
X: "[c4,e4] ~@2 [a3,c4,e4] [a3,e4] ~ [a3,c4,e4] ~@5 [a3,e4] ~@5 [a3,e4] ~@5", // C Am A5 Am A5
Y: "[g3,c4,e4] ~@2 [c4,e4] [g3,c4,e4] ~ [g3,c4] ~@5 [g3,c4,e4] ~@4 [g3,c4] ~@5 [g3,c4,e4]", // C C5 C C5 C
Z: "~@2 [g3,c4,e4] ~ [g3,c4]!2 ~@5 [g3,c4,e4] ~@5 [g3,c4,e4] ~@5 [a3,c4,e4]", // C C5 C Am
AA: "~@2 [a3,c4,e4] ~ [a3,e4]!2 ~@5 [a3,c4,e4] ~@5 [c4,e4] ~@5 [c4,e4]", // Am A5 Am C
AB: "~@2 [a3,c4] ~ [a3,c4,e4]!2 ~@5 [a3,c4,e4] ~@5 [a3,c4,e4] ~@6", AC: "~@5 [e3,g3,b3] ~@11 [e3,g3,b3] ~@6",
AD: "~@5 [e3,a3,c4] ~@11 [e3,a3,c4] ~@6", AE: "~@5 [e3,a3,c4] ~@10 [e3,a3,c4] ~@7",
AF: "~@4 [f3,a3,c4] ~@11 [f3,a3,c4] ~@7", AG: "~@4 [g3,b3,d4] ~@11 [g3,b3,d4] ~@7",
AH: "~@4 [g3,b3,e4] ~@11 [g3,b3,e4] ~@7", AI: "~@4 [g3,a3,c4] ~@11 [a3,c4,d4] ~@7",
AJ: "~@4 [g3,a3,c4] ~@11 [g3,a3,c4] ~@7", AK: "~@4 [e3,g3,c4] ~@11 [e3,g3,c4] ~@7",
AL: "~@4 [e3,a3,c4] ~@11 [e3,a3,c4] ~@7", // Am
})).s("gm_electric_guitar_clean").gain(0.2).pan(0.7)
// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<~@27 A B C D E F G ~@32 H I J K L M N O ~@41>".pickRestart({
A: "~@2 [g3,c4] ~@2 e4 g3 ~@13 [c4,e4] ~@3", B: "~@2 c4 ~@3 [a3,e4] ~@7 c4 ~@5 [c4,e4] ~@3", C: "~@8 e4 ~@11 c4 ~@3",
D: "~@6 [g3,e4] ~ c4 ~@15", E: "~@4 e4 ~@19", F: "~@6 c4 [c4,e4] ~@5 c4 ~@5 a3 ~@4",
G: "~ e4 ~@2 a3 ~ a3 ~@12 e4 ~@4", H: "~@5 c4 ~@12 g3 ~@5", I: "e4 ~@2 g3 ~@8 e4 ~@5 c4 ~@5",
J: "~@3 a3 ~@2 c4 ~@5 e4 ~@11", K: "a3 ~@3 c4 ~@7 c4 ~@5 c4 ~@5", L: "~@3 g3 ~@2 e4 ~@10 e4 ~@6", M: "~@4 e4!2 ~@18",
N: "~@4 c4!2 ~@11 a3 ~@5 a3", O: "~@2 e4 ~@21",
})).s("gm_electric_guitar_clean").gain(0.1).pan(0.7)
// other · string ensemble 1
const string_ensemble_1 = note(`<
~@2 A@8 ~@15 B@7 C@2 D@2 E@2 F@2 G@2 ~ H I J K L M@2 ~ H I J K L M@2 N@4 O P Q R S@2 T@2 U@7 V@5 ~ W@7 ~ W@7 ~@17
>`.pickRestart({
A: "[~ [e3,a3,c4]@24 [e3,a3,c4]@24 a2@12 g2@12 f2@23]/8", // Am
B: "[~@23 e4@3 g4@44 ~ a4@3 e4@30 d4@6 c4@6 d4@6 g4@41 a4@5]/7", C: "[~ e4@39 e5@3 d5@3 c5@2]/2",
D: "[~ b4@42 a4@3 b4@2]/2", E: "[~ c5@39 d5@3 c5@2 b4@3]/2", F: "[c5@47 ~]/2", G: "[d5@47 ~]/2", H: "~@2 e4 f4",
I: "g4@3 a4", J: "e4@3 d4", K: "c4@3 b3", L: "a3@5 d4@3", M: "c4/2", N: "[e3,a3,c4]/2", O: "a2", P: "g2", Q: "f2",
R: "d2@7 e4", S: "[g4@44 ~ a4@3]/2", T: "[e4@5 d4 c4 d4]/2",
U: "[g4@41 a4@6 e4@39 e5@3 d5@3 c5@3 b4@42 a4@3 b4@3 c5@25]/7", V: "[~@14 d5@2 c5@3 b4@3 c5@47 ~ d5@47 ~@3]/5",
W: "[~@10 e4@6 f4@6 g4@18 a4@6 e4@18 d4@6 c4@18 b3@6 a3@15 d4@9 c4@48 ~@2]/7",
})).s("gm_string_ensemble_1").gain(0.3)
// chords · string ensemble 2
const string_ensemble_2 = note(`<
~@6 A@5 ~@15 B@8 C@6 D@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 G@2 ~@4 H@4 I@4 J@3 K@8 L@6 M@8 N@8 O@6 P@6
>`.pickRestart({
A: "[~ a3@12 g3@12 a3@24 ~@11, ~ [c4,e4]@48 ~@11]/5", // C
B: "[~@2 [g3,b3]@47 ~ [a3,c4]@47 ~ [g3,b3]@47 [a3,c4]@47, ~@2 e3@95 ~ e3@94]/8", // G Am G Am
C: "[~ [g3,b3]@47 ~@48 f3@47 ~, ~ e3@95 ~@48, ~@49 [a3,c4]@95]/6", D: "[[g3,b3,d4]@47 ~]/2",
E: "[b3@2 ~ [f3,a3], [e3,g3]@3 ~, ~ c4]/2", F: "[b3 c4, [e3,g3]]/2", G: "[e3,g3,c4]/2", H: "[a3 g3 a3@2, [c4,e4]]/4",
I: "[[g3,b3]@47 ~ [a3,c4]@47 ~, e3@95 ~]/4", J: "[[g3,b3]@47 [a3,c4]@25, e3]/3",
K: "[~@23 [g3,b3]@47 ~@48 f3@47 ~ [g3,b3,d4]@26, ~@23 e3@95 ~@74, ~@71 [a3,c4]@95 ~@26]/8", // G Am
L: "[~@11 b3@12 ~@6 [f3,a3]@6 b3@12 c4@12 b3@12 c4, ~@11 [e3,g3]@18 ~@6 [e3,g3]@24 [e3,g3]@13, ~@23 c4@12 ~@37]/6", // F Em
M: "[~@5 [f3,a3]@6 b3@12 c4@12 b3@12 ~@6 [f3,a3]@6 b3@12 c4@12 b3@12 c4, ~@11 [e3,g3]@24 [e3,g3]@18 ~@6 [e3,g3]@24 [e3,g3]@13, ~@47 c4@12 ~@37]/8", // F Em
N: "[~@10 [f3,a3]@12 g3@24 a3@24 [e3,g3]@33 [a3,d4]@15 [e3,g3]@33 [a3,d4]@15 [e3,g3,c4]@26, ~@11 [e3,c4]@24 c4@24 c4@24 ~@13]/8", // F Em D5 Em D5 C
O: "[~@7 [a3,d4]@15 [e3,g3]@33 [a3,d4]@15 [e3,g3]@33 [a3,d4]@15 [e3,g3,c4]@26, ~@11 c4@24 c4@24 ~@13]/6", // D5 Em D5 Em D5 C
P: "[~@7 [a3,d4]@15 [e3,g3]@33 [a3,d4]@16 [e3,g3,b3]@61 ~@12, ~@22 c4@49 ~@73]/6", // D5 Em D5 Em
})).s("gm_string_ensemble_2").gain(0.25)
// other · vibraphone
const vibraphone = note(`<
~@26 A@5 B C@2 D@2 E@2 F@2 G ~@9 H I ~@2 J K ~@10 L M N@2 O@3 P@8 ~@8 Q@3 ~ R@2 S@8 T@8 U@3 ~
>`.pickRestart({
A: "[~@2 g6@9 a6@9 g6@6 c6@9 a6@9 g6@6 c6@9 d7@9 c7@6 c6@9 d7@9 c7@6 g6@9 a6@8 g6@5]/5", B: "~ c6@9 a6@9 g6@5",
C: "~ c6@9 d7@9 c7@5", D: "[~ b6@36 g6@11]/2", E: "[~ c7@39 e7@3 d7@2 a6@3]/2", F: "[c7@47 ~]/2", G: "d7",
H: "g6@8 ~ a6@2 ~", I: "e6@7 ~@2 f6@13 ~@2", J: "g6@3 a6", K: "e6@9 f6@13 ~@2", L: "g6@3 a6@3 g6@2",
M: "c6@3 a6@3 g6@2", N: "c6@3 d7@3 c7@2", O: "[g6@9 a6@8 g6@6 c6@9 a6@9 g6@6 c6@9 d7@9 c7@6 c6]/3",
P: "[~@8 d7@9 c7@6 b6@36 g6@12 c7@39 e7@2 d7@3 a6@3 c7@47 ~ d7@24 ~@2]/8",
Q: "[~@22 g6@16 ~@2 a6@4 ~@2 e6@7 ~@2 f6@13 ~@4]/3", R: "[~@11 g6@9 a6@3 e6]/2",
S: "[~@7 f6@13 ~@2 g6@18 a6@6 e6@12 a6@6 e6@6 g6@16 ~@2 a6@6 e6@10 ~@2 e6@6 f6@6 g6@16 ~@2 a6@6 e6@10 ~@2 e6@6 f6@6 g6@16 ~@2 a6@6 e6@2]/8",
T: "[~@5 e6@3 f6@3 g6@8 ~ a6@3 e6@5 ~ e6@3 f6@3 g6@8 ~ a6@3 e6@5 ~ e6@3 f6@3 g6@8 ~ a6@3 e6@5 ~ e6@3 f6@3 g6@8 ~ a6@3 e6]/8",
U: "[~@10 e6@6 f6@7 g6@38 ~@11]/3",
})).s("gm_vibraphone").gain(0.2).pan(0.7)
// other · alto sax
const alto_sax = note("<~@4 A@2 ~ B@4 ~@49 C@2 ~ D E F@2 ~@48>".pickRestart({
// … 65 more lines
More by Smokey Robinson
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.