0:00/0:00
// Sir Duke — Stevie Wonder
// 108 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 8 pad choir (copy of ch 7 pad warm); ch 9 pad new age (copy of ch 7 pad warm)
// note: Full arrangement: all 105 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(108/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.
// other · piano
const piano = note(`<
~@9 A B C@2 D E F@2 G H I J K L M@2 N O P Q R ~@7 A B C@2 D E F@2 S T U V W X Y Z AA AB AC Z AD X AE AF AG L AH AI AJ
~@7 W X Y Z AA AB AC Z AD X AE AF AG L AH AI AK AL AM AN AO AP AQ AR AJ ~@7
>`.pickRestart({
A: "~@8 d#4@3 ~ f#4@3 ~ g#4@3 ~ f#4@3 ~ d#4@3 ~ c#4@2 ~@2", B: "b3@3 ~ c#4@6 ~@2 g#3@8 ~@4 g#3@3 ~ b3@3 ~",
C: "[c#4@7 ~ b3@3 ~ g3@3 ~ b3@2 ~@2 d4@3 ~ b3@2 ~@2 c#4@14 ~@22]/2",
D: "~@8 d#4@3 ~ f#4@3 ~ g#4@3 ~ f#4@4 d#4@3 ~ c#4@3 ~", E: "b3@4 c#4@6 ~@2 g#3@6 ~@2 f#3@3 ~ g#3@3 ~ b3@2 ~@2",
F: "[c#4@7 ~ b3@3 ~ g3@3 ~ b3@4 d4@3 ~ b3@3 ~ c#4@20 ~@12 c4 ~ c4 ~]/2",
G: "b3@3 ~ b3@3 ~ a#3@3 ~ a#3@3 ~ a3@3 ~ a3@3 ~ g#3@3 ~ g#3@3 ~",
H: "a3@3 ~ a3@3 ~ a#3@2 ~@2 a#3 ~ b3@3 ~@10 b3!2 ~ b3 ~",
I: "b3@3 ~ b3 ~ b3 ~ a#3@3 ~ a#3 ~ a#3 ~ a3@2 ~@2 a3@2 g#3@4 ~@2 g#3 ~ g#3 ~",
J: "a3@3 ~ a#3@3 ~ b3@3 ~ c4@2 c#4@5 ~@13", K: "~@8 d#4@3 ~ f#4@3 ~ f#4@3 ~ d#4@2 ~@2 f#4@3 d#4@2 ~@3", L: "g#4@3 ~",
M: "[~@8 g#4@3 ~ f#4@2 ~@2 f#4@3 ~ d#4@3 ~ f#4@6 ~ d#4@5 ~@4 b3@4 g#3@3 ~ b3@6 ~@2 g#3@7 ~]/2",
N: "~@8 d#4@3 ~ f#4@3 ~ f#4@3 ~ d#4@3 ~ f#4@4 d#4@2 ~@2", O: "g#4@13 ~@3",
P: "~@8 g#4@3 ~ f#4@2 ~@2 f#4@4 d#4@3 ~ f#4@6 ~@2", Q: "d#4@2 ~@2 b3@2 g#3 ~ b3@3 ~ g#3@2 ~@2", R: "b4@3 ~@29",
S: "~@4 b3@2 ~@2 a#3@3 ~ a#3@2 ~@2 a3@2 ~@2 a3@2 g#3@3 ~@3 g#3 ~ g#3 ~",
T: "a3@2 ~@2 a3@2 ~@2 a#3@3 ~ a#3@2 b3@4 ~@8 b3 ~ b3 ~ b3 ~",
U: "b3@2 ~@2 b3@3 ~ a#3@3 ~ a#3@3 ~ a3@3 ~ a3@2 g#3@3 ~@3 g#3 ~ g#3 ~", V: "a3@3 ~ a#3@2 ~@2 b3@3 ~ c4@2 c#4@6 ~@12",
W: "~@8 d#4@3 ~ f#4@3 ~ f#4@3 ~ d#4@3 ~ f#4@3 ~ d#4@3 ~", X: "g#4@27 ~@5",
Y: "~@8 g#4@3 ~ f#4@3 ~ f#4@3 ~ d#4@3 ~ f#4@7 ~", Z: "d#4@5 ~@3 b3@4 g#3@3 ~ b3@7 ~ g#3@7 ~",
AA: "~@8 d#4@4 f#4@3 ~ f#4@4 d#4@2 ~@2 f#4@4 d#4@2 ~@2", AB: "~ g#4@28 ~@3",
AC: "~@8 g#4@3 ~ f#4@2 ~@2 f#4@3 ~ d#4@2 ~@2 f#4@7 ~", AD: "~@8 d#4@3 ~ f#4@3 ~ f#4@3 ~ d#4@2 ~@2 f#4@4 d#4@2 ~@2",
AE: "~@8 g#4@3 ~ f#4@3 ~ f#4@3 ~ d#4@2 ~@2 f#4@7 ~", AF: "d#4@5 ~@3 b3@3 g#3@3 ~ b3@7 ~ g#3@7 ~@2",
AG: "~@8 d#4@3 ~ f#4@3 ~ f#4@3 ~ d#4@3 ~ f#4@3 ~ d#4@2 ~@2", AH: "~@8 g#4@3 ~ f#4@2 ~@2 f#4@3 ~ d#4@3 ~ f#4@6 ~@2",
AI: "d#4@5 ~@3 b3@4 g#3@3 ~ b3@2 ~@2 b4 ~ b4@3 ~ b4@5 ~", AJ: "b4 ~@15",
AK: "~@8 d#4@3 ~ f#4@3 ~@2 f#4@2 ~ d#4@2 ~@3 f#4@5 ~@2", AL: "a#4@15 ~ g#4@16",
AM: "~@8 g#4 ~ g#4@4 ~@2 g#4@2 ~ f#4@2 ~@3 f#4@6 ~@2", AN: "d#4@7 ~ d#4@7 ~ b3@7 ~ g#3@7 ~",
AO: "~@8 d#4@3 ~ f#4@3 ~ f#4@3 ~ d#4@2 ~@2 f#4@5 ~@3", AP: "g#4@7 ~",
AQ: "~@9 g#4@3 f#4@2 ~@2 f#4@2 ~@2 d#4@2 ~@2 f#4@6 ~@2", AR: "d#4@6 ~@3 d#4@6 ~ b3@6 ~@2 g#3@5 ~@3",
})).s("gm_piano").gain(0.41)
// bass · soprano sax
const bass = note(`<
~@8 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@2 AA AB B C D E F G H I AC AD AE M AF AG AH AI AJ AK AL AM AN
AO AP AQ AR AS AT AU V W X Y Z@2 AA AB AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC V W X Y
Z@2 AA AB
>`.pickRestart({
A: "~@3 f#3 e3@3 ~ f#3@2 ~@8 f#2@2 ~@2 e2 ~ d#2@4 c#2@3 ~", B: "b1@5 ~@4 f#2@5 ~@2 b2@5 ~@2 f#2 f#2@4 b1@3 ~",
C: "g#1@6 ~@2 d#2@5 ~ g#2 ~ g#2@5 ~ d#2 ~ d#2@4 g#1@4", D: "g1@6 ~@2 d2@6 ~ g2 g2@4 ~@2 d2 ~ d2@7 ~",
E: "f#1@6 ~@2 c#2@5 ~@3 f#2@3 ~ e2@3 ~ d#2@3 ~ c#2@3 ~", F: "b1@7 ~ f#2@6 ~@2 b2@5 ~@2 f#2 f#2@4 b1@3 ~",
G: "g#1@6 ~@2 d#2@5 ~@2 g#2 g#2@4 ~@2 d#2 ~ d#2@3 g#1@4 ~", H: "g1@6 ~@2 d2@6 ~ g2 g2@4 ~@2 d2 ~ d2@6 ~@2",
I: "f#1@7 ~ c#2@7 ~ f2@6 ~@2 c2@4 f2@3 ~", J: "e2@3 ~ e2@3 ~ d#2@3 ~ d#2@3 ~ d2@3 ~ d2@3 ~ c#2@3 ~ c#2@3 ~",
K: "d2@3 ~ d2@4 d#2@2 ~@2 d#2 ~@7 a2@2 d3@2 ~@8, ~@14 e2@9 ~@9",
L: "e2@2 ~@2 e2@3 ~ d#2@2 ~@2 d#2@3 ~ d2@2 ~@2 d2@3 ~ c#2@2 ~@2 c#2@3 ~", M: "d2@3 ~ d#2@3 ~ e2@3 ~ f2@2 f#2@3 ~@15",
N: "b1@5 ~@3 f#2@5 ~@3 b2@6 ~@2 f#2@3 ~ b1@4", O: "f2@6 ~@2 g#2@5 ~@3 c3@6 ~@2 g#2@3 ~ f2@4",
P: "e2@6 ~@2 b2@6 ~@2 e2@6 ~@3 d#2@6 ~, ~@12 e2 ~@3", Q: "c#2@2 ~@2 c#2@6 d#2 ~ e2@2 f2@2 f#2@2 ~@2 f#2@8 f#1@4",
R: "b1@5 ~@3 f#2@5 ~@3 b2@6 ~@2 f#2@4 b1@4", S: "f2@6 ~@2 g#2@5 ~@3 c3@6 ~@2 g#2@4 f2@4",
T: "e2@7 ~ b2@6 ~@2 e2@6 ~@2 e2@2 d#2@6", U: "c#2@2 ~@2 c#2@6 d#2 ~ e2@2 f2@2 f#2@3 ~ f#2@8 f#1@4",
V: "b1@2 ~@8 b1@2 d#2@2 c#2 ~@3 c#2 ~ g#2@2 f#2@2 ~@4 f#1@2 g#1@2",
W: "b1@2 ~@2 c#2@2 d2@2 d#2@2 f#2@2 g#2@2 b2 ~@3 c#3@2 d3@2 d#3 ~@9",
X: "g#3@5 ~ d#3@2 ~@4 f#3@6 ~@2 c#3@5 ~@3 d#3@3 ~", Y: "c#3@2 b2@2 g#2@2 f#2 ~ c#3@2 ~ g#2 ~ b2@3 ~@16, ~@5 b2 ~@10",
Z: "[d#3@3 ~ c#3@2 b2@2 c#3@2 b2 ~ g#2@2 b2@2 g#2@2 f#2@2 g#2@6 ~ d#2 ~@3 d#2@2 c#2 ~ d#2@2 ~ c#2 b1@2 c#2 ~ b1@2 g#1@4 ~ f#1@2 ~@10 f#2 ~, ~@13 f#2 ~ f#2 ~@16]/2",
AA: "f#1@2 g#1@2 b1@2 c#2@2 d#2 ~ f#2 ~ g#2@2 b2@2 ~@2 g#2 ~ b2@5 ~ g#2@2 ~ b2 g#2 f#2",
AB: "g#2@4 ~@2 f#2@2 ~ g#2 f#2 d#2 f#2@4 ~@4 f#3@2 f#3@2 ~@8",
AC: "~@4 e2@3 ~ d#2@3 ~ d#2@3 ~ d2@3 ~ d2@3 ~ c#2@3 ~ c#2@3 ~",
AD: "d2@3 ~ d2@4 d#2@2 ~@2 d#2@2 ~@6 a2@2 d3@3 ~@7, ~@14 e2@9 ~@9",
AE: "e2@2 ~@2 e2@2 ~@2 d#2@3 ~ d#2@3 ~ d2@3 ~ d2@3 ~ c#2@3 ~ c#2@2 ~@2", AF: "b1@9 f#2@7 ~ b2@6 ~@2 f#2@3 b1@4",
AG: "f2@7 ~ g#2@6 ~@2 c3@6 ~@2 d#3@6 ~@2", AH: "e2@3 ~ b2@3 ~ b1@2 ~ f2 e2 d#2@3, ~@5 f#2 ~@2",
AI: "~ c#2@2 ~ c#2@7 d#2@2 e2@2 f2@2 f#2@2 ~ c#2@2 g#1 ~ f#1@2 c#2@6", AJ: "b1@7 ~ f#2@6 ~@2 b2@6 ~@2 f#2@4 b1@4",
AK: "f2@6 ~@2 g#2@5 ~@3 c3@6 ~@2 d#3@6 ~@2", AL: "e2@3 ~ b2@3 ~ e2@3 ~ e2 d#2@3",
AM: "c#2 ~@3 c#2@6 d#2 ~ e2@2 f2@2 f#2@3 ~ c#2@3 ~ f#1@8", AN: "b1@7 ~ f#2@5 ~@2 b2 b2@6 f#2 ~ f#2@4 b1@4",
AO: "f2@5 ~@2 f2 g#2@6 ~@2 c3@5 ~@2 c3 d#3@6 ~@2", AP: "e2@7 ~ b2@7 ~ e2@6 ~@2 e2@2 d#2@4 ~@2",
AQ: "c#2@2 ~@2 c#2@6 d#2 ~ e2@2 f2@2 f#2@2 ~@2 c#2@3 ~ f#1@8",
AR: "b1@8 f#2@6 ~@2 b2@3 ~ b2@2 f2@2 f#2@2 b1@2 e2@4, ~@15 a#2@2 ~@2 a#2@2 ~@11",
AS: "f2@8 g#2@5 ~@3 c3@8 d#3@6 ~@2, ~@15 g#2@2 ~@15", AT: "~ e2@7 b2@7 e2 e2@5 ~@2 e2 e2@4 d#2@4",
AU: "c#2@2 ~@2 c#2@2 ~@2 c#2@2 d#2@2 e2@2 f2@2 f#2@3 ~ f#2@6 c#2@2 f#1@4",
AV: "b1@8 f#2@6 ~@2 b2@2 a#2@2 b2@3 b1 f#2@4 d#2@4, ~@15 a#2@2 ~@15",
AW: "f2@5 ~@3 g#2@5 ~@3 c3@5 ~@3 d#3@7 ~, ~@7 f2@2 ~@6 g#2@2 ~@6 c3@2 ~@7",
AX: "e2@8 b2@7 ~ b1@4 f#2@3 ~ e2@2 d#2@6, ~@23 f2@2 ~@7",
AY: "c#2@2 ~@2 c#2@4 d#2@2 ~ d#2 e2@3 ~ f#2@4 c#2@4 f#1@8, ~@15 f2@2 ~@15",
AZ: "b1@8 f#2@5 ~ a#2@2 ~@2 a#2@2 b2@2 ~ b1 f#2@4 d#2@4, ~@4 b2 ~@3",
BA: "f2@5 ~@3 g#2@5 ~ g#2@2 c3@5 ~ c3@2 d#3@7 ~, ~@7 f2@2 ~@23", BB: "e2@4 b2@3 ~ b1@2 ~ f2 e2 d#2@3, ~@5 f#2 ~@2",
BC: "c#2@2 ~@2 c#2@4 d#2@2 ~ d#2 e2@2 f2@2 f#2@4 f#2@4 f#1@4 ~@4",
})).s("gm_electric_bass_finger").gain(0.45)
// chords · reed organ
const reed_organ = note(`<
~@9 A B C D E F G H ~@4 I J K L I J M L ~@8 A N@5 G H ~@4 O P Q R S T U V O P Q R S T U V ~@8 O P Q R S T U V O P Q R
S T U V I W X Y Z AA AB AC ~@8
>`.pickRestart({
A: "[b3,d#4,f#4]@9 ~@7", B: "[g#3,b3,d#4]@21 ~@11", C: "[g3,b3,d4,g4]@5 ~@3",
D: "[f#3,a#3,c#4]@18 g#3@2 ~@4 g#3@2 ~@2 g#3@2 f#3 ~, ~@23 f#3@2 ~@7", E: "[d#4,f#4]@21 ~@11, b2@7 ~@25",
F: "[b3,g#4]@21 ~@11", G: "[b3,d4,g4]@23 ~@9", H: "[f#3,a#3,c#4]@12 ~@4 [c4,f4]@13 ~@3", I: "[b3,d#4,f#4,b4]@17 ~@15",
J: "[d#4,g#4,c5]@11 ~@5", K: "[c#4,e4,g#4,b4]@11 ~@5", L: "[b3,c#4,e4]@23 ~@9", M: "[e4,g#4]@11 ~@5",
N: "[d#4@20 d4@4 c#4@4 b3@4 [b3,d4,g4]@20 ~@12 [f#3,a#3,c#4]@18 g#3@5 ~ g#3@4 ~@2 f#3 ~ [d#4,f#4]@21 ~@11 [b3,g#4]@21 ~@11, g#3@82 ~@5 f#3@2 ~@3 g#3@57 ~@11, ~@96 b2@7 ~@57]/5", // G F# D#m E
O: "b1@5 ~@3 f#2@5 ~@3 b2@6 ~@2 f#2@3 ~ b1@4", P: "f2@6 ~@2 g#2@5 ~@3 c3@6 ~@2 g#2@3 ~ f2@4",
Q: "e2@6 ~@2 b2@6 ~@2 e2@6 ~@3 d#2@6 ~, ~@12 e2 ~@3", R: "c#2@2 ~@2 c#2@6 d#2 ~ e2@2 f2@2 f#2@2 ~@2 f#2@8 f#1@4",
S: "b1@5 ~@3 f#2@5 ~@3 b2@6 ~@2 f#2@4 b1@4", T: "f2@6 ~@2 g#2@5 ~@3 c3@6 ~@2 g#2@4 f2@4",
U: "e2@7 ~ b2@6 ~@2 e2@6 ~@2 e2@2 d#2@6", V: "c#2@2 ~@2 c#2@6 d#2 ~ e2@2 f2@2 f#2@3 ~ f#2@8 f#1@4",
W: "[d#4,g#4,c5]@7 ~@9", X: "[c#4,e4,f#4,g#4,b4]@19 ~@13", Y: "[a#3,d#4]@19 ~@13", Z: "[b3,d#4,f#4]@17 ~@15",
AA: "[d#4,g#4,c5]@17 ~@15", AB: "[c#4,e4,f#4,g#4,b4]@9 ~@7", AC: "c#4@9 ~@7",
})).s("gm_reed_organ").gain(0.26).pan(0.4)
// chords · reed organ · soft notes
const reed_organ_soft = note("<~@10 A ~ B C D E F ~@7 G ~@2 H G ~@9 I ~ B C J E F ~@47 K L ~@2 M ~@8>".pickRestart({
A: "g#4@21 ~@11", B: "f#4@20 ~@6 f#3 ~@5", C: "b3@21 ~@11", D: "[g#3,d#4]@21 ~@11", E: "g3@23 ~@9",
F: "f#4@12 ~@5 f3@13 ~@2, ~@16 a3@13 ~@3", G: "f#4@23 ~@9", H: "[c#4,b4]@11 ~@5", I: "[b3,g#4]@21 ~@11",
J: "d#4@21 ~@11", K: "[c#4,f#4]@19 ~@13", L: "b4@17 ~@15", M: "[a#3,d#4,f#4]@9 ~@7",
})).s("gm_reed_organ").gain(0.15).pan(0.4)
// chords · french horn
const french_horn = note(`<
~@9 A B C D E F C G H I J K L M N O P Q R S ~@8 A B C D E F C G T U V W L M N O P Q R S L M N O P Q R S ~@8 L M N O P
Q R S L M N O P Q R S L M N O P Q R S ~@8
>`.pickRestart({
A: "~ d#4@6 ~ d#4 f#4@2 ~@2 b4 ~@3 f#4@2 ~@2 d#4 ~@2 b3@2 ~@6, ~ [f#4,b4]@9 ~@22, ~@7 b3@2 ~@23", // B5
B: "~ g#4@4 ~@4 g#4@2 ~ g#4@2 ~@2 d#4@2 ~@2 b3@2 ~@2 g#3 ~@7, [g#3,b3,d#4]@3 g#3 d#4 ~@11, ~@7 b3@2 ~@23", // G#m
C: "~ [f4,a4]@4 ~ g3@2 [f4,a4] ~@4 d5 ~@2 a4@2 ~@2 f4 ~@3 b3@2 ~@6, g3@2 ~@2 d5 ~@11", // F
D: "~ [g#4,c#5]@5 ~ e4@2 c#5 ~@2 c#5@2 ~@2 g#4@2 ~@2 e4 ~@11, e4@3 f#3 ~@12, ~@7 g#4 ~@24", // C#5
E: "~ [b3,d#4]@5 ~ [f#4,b4] ~@4 b4 ~@3 f#4 ~@3 d#4 ~@3 b3@4 ~@4, f#3@5 ~ f#3@2 ~@24, ~@7 d#4@2 ~@23", // B B5
F: "~ [b3,d#4,g#4]@6 g#3 d#4 ~@3 g#4@2 ~@2 d#4@2 ~@2 b3 ~@3 g#3@3 ~@5, [d#3,g#3]@6 ~ b3@2 ~@23", // G#m G#5
G: "[c#4,e4,g#4,c#5]@6 ~@2 c#5@2 ~@2 c#5 ~@4 [d#4,g4,c5]@7 [d#4,g4]@4 ~ g4 ~@2, ~@6 f#3@2 g#4 ~@15 c5@3 ~ c5@2 ~@2, ~@7 e4@2 ~@7 f3@6 ~@10", // C#m Cm D#
H: "[d4,f#4] ~ [d4,f#4] ~ [d#3,c#4,f4] ~ [d#3,c#4,f4] ~ [d3,c4,a4] ~ [c4,e4] ~ [c#3,b3,d#4] ~ [c#3,b3,d#4] ~, b4 ~@3 b4 ~@11 e4 ~@11 g#4 ~@3", // D C# D7 C G#m
I: "~ e4@2 ~@2 c4@2 ~@2 a#4 ~@2 [d#3,f4] ~@2 [e3,d4,f#4]@3 ~@14, [d3,c4] ~ [d3,e4] ~ [d#3,c#4,f4] ~@11, ~ a4 ~@10 c#4@2 ~@18", // D#sus2 D D7 Dsus2 C#
J: "[e3,d4,f#4,b4] ~ [e3,d4,f#4] ~ [d#3,c#4,f4] ~ [d#3,c#4,f4,a#4] ~ [d3,c4,e4] ~ [d3,c4,e4,a4] ~ [c#3,b3,d#4] ~ [c#3,b3,d#4] ~, ~@8 a#4 ~@7 a4 ~@15", // Bm D C# A#m C Am G#m
K: "[d3,c4,e4,a4]@2 ~@2 [d#3,c#4,f4]@2 [d4,f#4]@2 e3@2 ~@2 [f3,d#4,g4]@2 [f#3,e4,g#4]@3 ~@15", // Am C# D Cm C#m
L: "~ [b3,d#4,f#4]@6 b3 [d#4,f#4,b4] ~@4 b4 ~@2 f#4 ~@7 b3@4 ~@4, ~ f#3@27 ~@4, ~ b4 ~@30", // B
M: "~ c5@6 g#4 [c5,d#5] ~@3 d#5 ~@3 c5@2 ~@2 g#4@2 ~@2 d#4@3 ~@5, [g#3,g#4]@3 ~@13", // Cm G#
N: "~ [d#4,g#4,b4]@6 d#4 b4 ~@3 b4 ~@3 g#4@2 ~@2 d#4 ~@3 b3 ~ g#3@3 ~@3, e3@25 ~@7, ~ b3@23 ~@8, ~@7 g#4@2 ~@23", // G#m
O: "e4 ~@3 e4@2 ~@2 b3@2 ~ b3@2 ~@3 [c#4,f#4,a#4]@2 ~@2 c#4@3 ~ [f#4,a#4]@2 [f#4,a#4]@2 ~@4, ~@4 [e3,b3]@3 e4@2 ~ [e4,g#4]@2 ~@12 c#4@4 ~@4, ~@6 g#4@4 ~@16 d#5 ~@5", // F# E5 E
P: "~ [b3,d#4,f#4]@3 ~@2 b3 [d#4,f#4]@2 b4 ~@2 b4 ~@3 f#4 ~@3 d#4 ~@3 b3 ~@7, f#3 ~@7", // B D#m
Q: "~ [g#4,c5]@6 ~ d#5@2 ~@2 d#5 ~@3 c5 ~@3 g#4 ~@3 d#4@3 ~@5, g#3@27 ~@5, d#4@5 ~@2 [d#4,g#4]@2 ~@23, ~@8 c5 ~@23", // G# G#5
R: "~ [g#4,b4]@5 b3 g#4 b4 ~@3 b4 ~@3 g#4 ~@3 d#4 ~@3 b3 ~ [g#3,c#4]@3 ~@3, e3@3 ~, [b3,d#4]@6 ~ d#4@2 ~@23", // G#m C#5 B
S: "[b3,e4,g#4]@2 ~@3 [e4,g#4]@2 b3 ~@2 [e4,g#4,c#5]@3 ~@7 [f#3,c#4]@4 [c#4,f#4,a#4]@2 ~ c#4@2 ~@3, ~@4 [e3,b3]@3 e4@2 ~@17 [f#4,a#4,d#5]@2 ~@4, ~@8 b3@4 ~@12 f#3@5 ~@3", // E C#m F#5 F# E5 D#m
T: "[d4,f#4,b4] ~ [e3,d4,f#4] ~ [d#3,c#4,f4,a#4] ~ [d#3,c#4,f4,a#4] ~ [d3,c4,e4] ~ [d3,c4,e4] ~ [c#3,b3,d#4,g#4] ~ [c#3,b3,d#4] ~, ~@4 b4 ~@11 a4 ~@3 a4 ~@7 g#4 ~@3", // Bm D A#m C G#m
U: "[d3,c4,e4,a4]@2 ~@2 [d3,c4,e4,a4]@2 ~@2 [d#3,c#4]@2 ~@2 c#4@2 [e3,d4,f#4,b4]@3 ~@15, ~@8 [f4,a#4] ~@3 d#3 ~@19", // Am D#7 Bm A#5
V: "[e3,d4] ~ [e3,d4,f#4] ~ [d#3,c#4,f4] ~ [d#3,c#4,f4,a#4] ~ [d3,c4,e4] ~ [d3,c4,e4] ~ [c#3,b3,d#4] ~ [c#3,b3,d#4] ~, [f#4,b4] ~@3 b4 ~@3 a#4 ~@7 a4 ~@7 g#4 ~@3 g#4 ~@3", // E7 D C# A#m C G#m B5
W: "[d3,c4,e4]@2 ~@2 [c#4,f4]@2 [d4,f#4,b4]@2 e3 ~@3 [d#4,g4]@2 [f#3,e4,g#4,c#5]@3 ~@15, a4 ~@3 d#3 ~@7 f3 ~@19", // C C# Bm D# C#m
})).s("gm_french_horn").gain(0.22)
// chords · accordion
const accordion = note(`<
~@9 A B C D E F C G H I J K L M N O P Q R S ~@8 A B C D E F C G T U V W X Y Z AA AB AC AD AE X Y Z AA AB AC AD AE ~@8
X Y Z AA AB AC AD AE X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM ~@8
>`.pickRestart({
A: "~@4 [d#4,f#4,b4]@2 ~ [d#4,b4] [d#4,b4]@2 ~@3 [d#4,f#4,b4]@2 [d#4,f#4]!2 ~@4 b4 ~ [d#4,f#4] [d#4,f#4]@2 [f#4,b4]@2 [d#4,f#4,b4]@2 ~@2, ~@7 f#4@3 ~@5 b4@3 ~@2 [d#4,f#4]@2 b4@4 d#4 ~@5", // B G#m B D#m B5 B D#m
B: "~@4 [b3,d#4,g#4]@2 [b3,d#4,g#4]@2 [b3,d#4,g#4] ~@3 [d#4,g#4]@2 [d#4,g#4]@2 [b3,d#4] ~@3 [b3,d#4]@2 [b3,d#4]@2 [b3,d#4]@2 d#4@2 [b3,d#4]@2 ~@2, ~@12 b3@4 ~@4 g#4 ~ g#4@4 g#4@4 ~@2, ~@26 b3 ~@5", // G#m G#5 B
C: "~@4 [g4,b4,d5]@2 ~ g4 [g4,b4] ~@3 [g4,b4,d5]@2 b4 g4 [g4,b4] ~@3 [g4,b4,d5]@2 [g4,d5] ~ [g4,b4,d5]@2 [b4,d5]@2 [b4,d5]@2 ~@2, ~@6 [b4,d5]@2 d5@2 ~@4 d5@3 ~@5 b4@2 ~@2 g4 ~ g4 ~@3", // G G5 G Bm
D: "~@4 [e4,a#4,c#5]@2 [a#4,c#5]@2 [e4,a#4,c#5] ~@3 [e4,g#4,c#5]@2 [e4,g#4,c#5]@2 [e4,g#4,c#5] ~@3 [e4,g#4,c#5]@2 [e4,g#4,c#5]@2 [e4,g#4,c#5]@2 [e4,g#4] ~ [e4,g#4,c#5]@2 ~@2, ~@6 e4 ~@19 c#5@2 ~@4", // A#dim A#m A#dim C#m E C#m
E: "~@4 [d#4,f#4,b4]@2 [f#4,b4]@2 [d#4,f#4] ~@3 [d#4,f#4,b4]@2 ~ d#4 [d#4,f#4,b4] ~@3 [d#4,f#4]@2 [f#4,b4]@2 [d#4,f#4,b4]@2 [d#4,f#4]@2 [d#4,f#4]@2 ~@2, ~@6 d#4 ~ b4@2 ~@4 [f#4,b4]@2 ~@4 b4 ~ d#4 ~@3 b4@4 ~@2", // B B5 D#m B D#m B5 B D#m …
F: "~@4 [b3,d#4,g#4]@2 [b3,d#4,g#4]@2 [d#4,g#4] ~@3 [d#4,g#4]@2 d#4@2 [b3,d#4] ~@3 [d#4,g#4]@2 [d#4,g#4] ~ [b3,d#4,g#4]@2 d#4@2 [b3,d#4]@2 ~@2, ~@12 b3@4 ~@4 b3@4 ~@2 b3 ~@5, ~@7 g#4@2 ~@4 g#4@2 ~", // G#m G#5 B G#5 G#m B
G: "~@4 [e4,g#4]@2 g#4 e4 [e4,g#4] ~@3 [e4,g#4,c#5]@2 ~@2 [d#4,g4,c5] ~@4 c5 ~ [d#4,g4] [d#4,g4,c5]@2 [d#4,g4] ~ [d#4,g4,c5] ~@3, ~@6 c#5@3 ~@11 [d#4,g4]@2 c5@2 ~@2 c5@2 ~@4", // E C#m Cm D# Cm D# Cm D#
H: "[d4,f#4] ~ [d4,f#4,b4] ~ [c#4,f4,a#4] ~ [c#4,f4,a#4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [b3,d#4,g#4] ~ [b3,d#4,g#4] ~, b4 ~@31", // D Bm A#m Am G#m
I: "[c4,e4,a4]@2 ~@2 [c4,e4]@2 ~@2 [c#4,f4,a#4]@2 ~@2 [c#4,f4] ~ [d4,f#4,b4]@2 ~@16, ~@4 a4 ~@27", // Am C A#m C# Bm
J: "[d4,f#4,b4] ~ [d4,f#4,b4] ~ [c#4,f4] ~ [c#4,f4,a#4] ~ [c4,e4,a4] ~ [c4,e4] ~ [b3,d#4,g#4] ~ [b3,d#4,g#4] ~, ~@8 a#4 ~@11 a4 ~@11", // Bm C# A#m Am C G#m
K: "[c4,e4,a4]@2 ~@2 [f4,a#4] ~ [d4,f#4,b4]@2 ~@4 [g4,c5] ~ [e4,g#4,c#5]@2 ~@16, ~@2 c#4 ~@3 d#4 ~@9", // Am A#5 Bm C5 C#m
L: "~@5 f#4@2 [d#4,f#4] ~ [d#4,f#4,b4] ~@3 [d#4,f#4]@2 [f#4,b4] [d#4,f#4,b4] ~@3 [d#4,f#4,b4]@2 [d#4,f#4,b4]@4 f#4@2 [d#4,f#4]@2 ~@2, ~@4 [d#4,b4]@3 b4@2 ~@4 b4 ~@12 b4@4 ~@2, ~@26 d#4 ~@5", // D#m B D#m B5 B D#m G#m
M: "~@4 [g#4,c5,d#5]@2 [g#4,c5,d#5] ~ [g#4,c5] ~@3 [g#4,c5,d#5]@2 [c5,d#5] ~ [c5,d#5] ~@3 [g#4,c5,d#5]@2 [g#4,c5] ~ [c5,d#5]@2 [g#4,c5] ~ [g#4,c5,d#5]@2 ~@2, ~@4 d#5 ~@3 g#4 ~@2 d#5 ~ d#5 ~@2, ~@23 g#4@2 ~@7", // G# Cm G# Cm G#
N: "~@4 [d#4,g#4]@2 b4@2 [d#4,g#4] ~@3 [d#4,g#4,b4]@2 [d#4,g#4,b4] ~ [d#4,g#4,b4]@2 ~@2 [d#4,g#4,b4]@2 [d#4,g#4] ~ [d#4,g#4,b4]@2 [d#4,g#4,b4] ~ [d#4,g#4,b4]@2 ~@2, ~@6 g#4 ~ b4@2 ~@12 b4@2 ~@8", // G#5 G#m G#5 G#m
O: "~@4 [g#4,c#5]@2 [e4,g#4,c#5] [e4,g#4]@2 ~@3 [e4,g#4,c#5]@3 ~ [f#4,a#4]@2 ~@2 [f#4,a#4,d#5]@2 a#4@2 [f#4,a#4,d#5]@2 [f#4,a#4] ~ [f#4,a#4] ~@3, ~@3 e4@2 ~@2 c#5 ~@7 d#5@3 ~@4 f#4 ~@3 d#5@2 d#5@2 ~@2", // C#5 C#m E C#m F# D#m F#
P: "~@4 [d#4,f#4,b4]@2 [d#4,f#4] ~ [d#4,f#4,b4]@2 ~@2 [d#4,f#4,b4]@2 b4 d#4 b4 ~@3 [d#4,f#4,b4]@2 f#4 d#4 [d#4,f#4,b4]@2 [f#4,b4]@2 [d#4,f#4,b4]@2 ~@2, ~@6 b4@2 ~@6 f#4@2 ~@6 b4@2 ~@2 d#4 ~@5", // B D#m B B5 B
Q: "~@4 [c5,d#5]@2 [c5,d#5] ~ [g#4,c5,d#5]@2 ~@2 [c5,d#5]@2 [c5,d#5] ~ [g#4,c5,d#5]@2 ~@2 [g#4,c5,d#5]@2 c5 g#4 [g#4,c5,d#5]@2 [g#4,c5] ~ [g#4,d#5]@2 ~@2, ~@4 g#4@4 ~@4 g#4@4 ~@6 d#5@2 ~@2 d#5@2 c5 ~@3", // Cm G# Cm G# G#5
R: "~@4 [d#4,g#4,b4]@2 [g#4,b4] d#4 [d#4,g#4] ~@3 [d#4,g#4,b4]@2 [d#4,g#4] ~ [d#4,g#4,b4]@2 ~@2 [d#4,g#4,b4]@2 [g#4,b4]@2 [d#4,g#4,b4]@2 [d#4,g#4] ~ [d#4,g#4,b4]@2 ~@2, ~@8 b4@2 ~@4 b4@2 ~@6 d#4 ~@3 b4@2 ~@4", // G#m G#5 G#m G#5 G#m G#5 G#m
S: "~@4 [g#4,c#5]@2 c#5@2 [e4,g#4,c#5] ~@3 [e4,g#4,c#5]@2 ~@2 [f#4,a#4,d#5]@2 ~@2 [f#4,a#4,d#5]@2 a#4@2 [f#4,a#4,d#5]@2 [f#4,a#4] ~ d#5@2 ~@2, ~@4 e4@4 ~@14 f#4 ~@4 [f#4,a#4]@2 ~@3, ~@6 g#4 ~@19 d#5@2 ~@4", // C#5 C#m D#m F#
T: "[d4,f#4,b4] ~ b4 ~ [d4,b4]@2 ~@2 [c#4,f4]@2 ~@2 [f4,a#4] ~@3 [c4,e4,a4]@2 ~@2 [c4,e4,a4] ~@3 [b3,d#4,g#4]@2 ~@2 [b3,d#4,g#4] ~@3, ~@4 f#4 ~@3 a#4 ~@3 c#4@2 ~@18", // Bm G C# A#5 Am G#m
U: "[c4,e4,a4] ~ [c4,e4,a4] ~ [c#4,f4,a#4] ~ [c#4,f4] [d4,f#4,b4] ~@6 [f#4,b4] b4, ~@12 a#4 ~@15 d4@4, ~@30 f#4 ~", // Am A#m C# Bm B5
V: "[d4,f#4,b4] ~@3 [f#4,b4] ~@3 [c#4,f4,a#4]@2 ~@2 [c#4,f4,a#4]@2 ~@2 [c4,e4]@2 ~@2 [c4,e4,a4]@2 ~@2 [b3,d#4]@2 ~@2 [b3,d#4]@2 ~@2, ~@4 d4@2 ~@10 a4 ~@7 g#4 ~@3 g#4 ~@3", // Bm B5 A#m C Am B
W: "[c4,e4]@2 ~@2 [f4,a#4] ~ [f#4,b4]@2 ~@4 [d#4,g4,c5]@2 [e4,g#4,c#5]@2 ~@16, a4 ~@3 c#4@2 d4 ~@25", // C A#5 B5 Cm C#m
X: "~ [b3,d#4,f#4]@6 b3 [d#4,f#4,b4] ~@4 b4 ~@2 f#4 ~@7 b3@4 ~@4, ~ f#3@27 ~@4, ~ b4 ~@30", // B
Y: "~ c5@6 g#4 [c5,d#5] ~@3 d#5 ~@3 c5@2 ~@2 g#4@2 ~@2 d#4@3 ~@5, [g#3,g#4]@3 ~@13", // Cm G#
Z: "~ [d#4,g#4,b4]@6 d#4 b4 ~@3 b4 ~@3 g#4@2 ~@2 d#4 ~@3 b3 ~@2 g#3@3 ~@2, e3@25 ~@7, ~ b3@23 ~@8, ~@7 g#4@2 ~@23", // G#m
AA: "e4 ~@3 e4@2 ~@2 b3@2 ~ b3@2 ~@3 [c#4,f#4,a#4]@2 ~@2 c#4@3 ~ [f#4,a#4]@2 [f#4,a#4]@2 ~@4, ~@4 [e3,b3]@3 e4@2 ~ [e4,g#4]@2 ~@12 c#4@4 ~@4, ~@6 g#4@4 ~@16 d#5 ~@5", // F# E5 E
AB: "~ [b3,d#4,f#4]@3 ~@2 b3 [d#4,f#4]@2 b4 ~@2 b4 ~@3 f#4 ~@4 d#4 ~@2 b3 ~@7, f#3 ~@7", // B D#m
AC: "~ [g#4,c5]@6 ~ d#5@2 ~@2 d#5 ~@3 c5 ~@3 g#4 ~@3 d#4@3 ~@5, g#3@27 ~@5, d#4@5 ~@2 [d#4,g#4]@2 ~@23, ~@8 c5 ~@23", // G# G#5
AD: "~ [g#4,b4]@5 b3 g#4 b4 ~@3 b4 ~@3 g#4 ~@3 d#4 ~@3 b3 ~@2 [g#3,c#4]@3 ~@2, e3@3 ~, [b3,d#4]@6 ~ d#4@2 ~@23", // G#m C#5 B
AE: "[b3,e4,g#4]@2 ~@3 [e4,g#4]@2 b3 ~@2 [e4,g#4,c#5]@3 ~@7 [f#3,c#4]@4 [c#4,f#4,a#4]@2 ~ c#4@2 ~@3, ~@4 [e3,b3]@3 e4@2 ~@17 [f#4,a#4,d#5]@2 ~@4, ~@8 b3@4 ~@12 f#3@5 ~@3", // E C#m F#5 F# E5 D#m
AF: "~@4 [d#4,f#4,b4]@2 ~ [d#4,f#4] ~ [d#4,b4] ~@3 b4@2 f#4!2 [d#4,b4] ~@3 [f#4,b4]@2 b4@2 b4 ~ d#4 ~ [d#4,f#4]@2 ~, ~@7 b4@2 ~@4 d#4@4 ~@4 d#4@4 [d#4,f#4]@2 f#4@2 ~@3, ~@8 f#4@2 ~@2 f#4@2 ~ b4@2 ~@6 f#4 ~@2 b4@2 b4@2 ~@2", // B D#m G#m B5 D#m
AG: "~@4 [c5,d#5]@2 ~ c5 [g#4,c5,d#5] ~@3 [c5,d#5]@2 [c5,d#5]@2 [g#4,c5,d#5] ~@3 [g#4,c5,d#5]@2 ~ g#4 [g#4,c5,d#5]@2 [g#4,c5] ~ [g#4,c5]@2 ~@2, ~ g#4 ~ g#4 ~@4, ~@6 d#5@2 ~@14 [c5,d#5]@2 ~@2 d#5@2 d#5 ~@3", // Cm G# Cm G# Cm
AH: "~@5 d#4 [d#4,g#4] ~ [d#4,g#4,b4] ~@3 [g#4,b4]@2 b4@2 [d#4,g#4,b4] ~@3 [d#4,g#4,b4]@2 [g#4,b4]@2 [d#4,g#4,b4]@2 [g#4,b4]@2 [d#4,g#4,b4]@2 ~@2, ~@4 [g#4,b4]@2 b4@2 ~@4 d#4@4 ~@6 d#4 ~@3 d#4 ~@5, ~@14 g#4 ~@17", // G#5 G#m
AI: "~@4 [e4,g#4,c#5]@2 [g#4,c#5]@2 [e4,g#4,c#5] ~@3 [e4,g#4,c#5]@2 [g#4,c#5] ~ [f#4,a#4] ~@3 [f#4,a#4,d#5]@2 [f#4,a#4,d#5] ~ [f#4,a#4]@2 [a#4,d#5]@2 [f#4,a#4,d#5]@2 ~@2, ~@6 e4 ~@9 d#5@2 ~@5 d#5@2 ~ f#4 ~@5", // C#m C#5 C#m C#5 F# D#m F# D#5 …
AJ: "~@4 [d#4,f#4,b4]@2 [f#4,b4]@2 [d#4,f#4,b4] ~@3 [d#4,f#4,b4]@2 [f#4,b4]@2 [d#4,f#4,b4] ~@3 [d#4,f#4,b4]@2 [f#4,b4]@2 [d#4,f#4,b4]@2 [d#4,f#4,b4]@2 [d#4,f#4,b4]@2 ~@2, ~@6 d#4 ~@7 d#4 ~@7 d#4 ~@9", // B B5 B B5 B B5 B
AK: "~@4 [g#4,c5]@2 ~ g#4 [g#4,c5] ~@3 [c5,d#5]@2 [c5,d#5]@2 [g#4,c5,d#5] ~@3 [g#4,c5,d#5]@2 [c5,d#5]@2 [g#4,c5,d#5]@2 [c5,d#5]@2 [g#4,c5]@2 ~@2, ~@6 [c5,d#5]@2 d#5@2 ~@2 g#4@4 ~@6 g#4 ~@3 g#4 ~ d#5 ~@3", // G# Cm G# Cm G# Cm G# Cm
AL: "~@5 b4 [d#4,g#4] ~ [d#4,g#4,b4] ~@3 [d#4,g#4]@2 [d#4,b4] ~ [d#4,g#4] ~@3 [d#4,g#4,b4]@2 [d#4,b4] ~ [d#4,g#4,b4]@2 [d#4,g#4,b4]@2 [d#4,g#4,b4]@2 ~@2, ~@2 [d#4,g#4] b4 ~@3 g#4 b4 ~@2 g#4 ~@4", // G#5 G#m G#5 G#m G#5 G#m G#5
AM: "~@4 [g#4,c#5]@2 [g#4,c#5]@2 [g#4,c#5] ~@3 [e4,g#4,c#5]@2 ~@2 [f#4,a#4,d#5] ~@3 [f#4,a#4,d#5]@2 d#5 f#4 [f#4,a#4,d#5]@2 [a#4,d#5]@2 [f#4,a#4,d#5]@2 ~@2, ~@4 e4@4 e4@2 ~@12 a#4@2 ~@2 f#4 ~@5", // C#5 C#m D#m D#5 D#m
})).s("gm_accordion").gain(0.12).pan(0.9)
// other · pad warm
const pad_warm = note(`<
~ A B C@2 D E F ~@10 G ~ H ~@2 I@2 J ~ K L M N O P Q@2 R S ~@9 G ~ T U V W X U V W X U V W X U V W X M N O P Q@2 R S U
V W X U V W X U V W X U V W X U V W X U V W X M N O P Q@2 R S
>`.pickRestart({
A: "b3@7 ~ d#4@6 ~@2 f#4@5 ~ b4@3 ~@7", B: "g#3@2 ~@2 g#3@2 ~@2 b3 ~ a#3 ~ b3@2 ~@2 d#4@2 ~ d4 d#4@2 g#4@3 ~@7",
C: "[g3@2 ~@2 g3@2 ~@2 b3@2 ~@2 b3@2 ~@2 d4@3 c#4 d4@2 ~@2 g4@6 ~ f#4@3 ~@30]/2",
D: "b3@6 ~@2 d#4@6 ~@2 f#4@5 ~ b4@3 ~@7", E: "g#3@2 ~@2 g#3@2 ~@2 b3@2 ~ a#3 b3@2 ~@2 d#4@2 ~ d4 d#4@2 g#4@2 ~@8",
F: "g3@2 ~@2 g3@3 ~ b3@2 ~@2 b3@2 ~@2 d4@2 ~ c#4 d4@2 ~@2 g4@5 ~ f#4@2", G: "~@20 b4 ~ b4@2 ~@8", H: "~@6 b4 ~",
I: "[~@20 b3 ~ c#4@2 d#4@2 ~ d#4@2 f#4@2 g#4@2 ~@3 g#4@2 f#4 g#4@2 ~@2 g#4@3 ~ f#4@2 ~@3 f#4@2 e4@2 ~ e4@6 ~, ~@13 c#4 ~@7 b4 ~@6 f#4 ~@3]/2",
J: "d#4 ~@15", K: "~@10 b3 c#4 d#4 c#4 d#4 f#4",
L: "g#4 ~@3 g#4@2 f#4 ~ g#4@2 b4@2 g#4@4 f#4 ~@3 f#4@2 e4@2 f#4@2 e4@5 ~",
// … 101 more lines
More by Stevie Wonder
I Just Called to Say I Love YouC major · 110 bpmIsn't She LovelyE major · 119 bpmYou Are the Sunshine of My LifeG major · 120 bpmMy Cherie AmourG major · 98 bpmBoogie on Reggae WomanD♭ major · 120 bpmDo I Do1982 · B major · 114 bpmHigher Ground1973 · E♭ major · 187 bpmIf You Really Love Me1971 · F major · 121 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.