0:00/0:00
// All Night Long — Lionel Richie
// 108 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 162 bars on a 16-step grid, each part at one level. 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.
// chords · epiano2
const epiano2 = note(`<
~@2 A B C D E F E G H@2 I J@2 K L M N G O@2 P G Q R N G S N T@2 U@2 V@2 W@5 X@5 Y@8 Z@5 AA@2 AB@2 AC@2 AD@2 AE AF@3
AG@3 AH AI@3 AJ AK ~ AL ~ AM ~@7 AN AO AP AQ@2 AR@2 AS@2 AT@2 AU@2 AO G AV N@2 G I N@2 G AW N@2 AX AW AY AZ@2 BA@2
BB@2 BC@4 BD@4 BE@8 BF@8 BG@8 BH@3 BI
>`.pickRestart({
A: "f#4@3 f#4, [b3,c#4]", B: "[b3,c#4,e4]@15 b3", C: "c#4@6 d#4@9 a3, [b3,f#4]", D: "[a3,b3,c#4,e4]@15 b3",
E: "[b3,c#4,d#4,f#4]@15 a3", F: "a3 ~@12 c#4@2 ~, e4, c#4@13 ~@3, b3@11 b3@5, ~ a4", G: "[a3,b3,c#4,e4]",
H: "[c#4 ~ [b3,c#4,e4]@2, [b3,f#4]@17 ~@15, ~@8 d#4@9 ~@15, ~@15 a3@2 ~@15]/2", I: "[b3,e4,g#4]",
J: "[b3@7 ~ [c#4,d#4,f#4]@8, [c#4,d#4,f#4] ~, ~@7 b3@9]/2", K: "b3@7 b3, [a3,c#4,e4]",
L: "~@6 e4@9 b3, [b3,g#4], e4@5 ~@11, ~@3 b4@13", M: "~@13 b4@3, [b3,c#4,d#4,f#4], ~@5 [c#5,f#5]@3",
N: "[b3,c#4,d#4,f#4]", O: "[b3@15 ~ [c#4,d#4,f#4]@15 b3, [e4,g#4]@17 ~@15, ~@15 b3@16 ~]/2",
P: "c#4@3 d#4@13, [b3,f#4]", Q: "~@3 e4@5, [b3,g#4], e4@3 ~@5, ~@3 b4@13", R: "b3@7 b3, [d#4,f#4]",
S: "e4@3 ~@3 g#4@9 b3, [b3,b4], g#4@3 ~@5, ~@3 e4@13", // B
T: "[[b3,d#4] ~@3 [e4,g#4] ~@26 c#4, f#4 ~ b3 ~ [b3,c#4,e4]@8 e5@3 a3, ~@4 a3@7 c#5@5, ~ b5, ~@19 b4@13]/2", // B E C#m7
U: "[[a3,e4]@2 ~@2 [b3,e4,g#4]@2 ~ [b3,c#4] ~@23 d#4, c#4 ~@7 [c#4,d#4,f#4]@16 b5@6 b3@2, ~@4 b3@7 c#5@5, ~ f#5, ~@19 b4@13]/2", // A5 E Bsus2 D#m7
V: "[[b3,d#4] ~@3 [b3,e4,g#4]@2 ~@25 c#4, f#4 ~@3 [b3,c#4,e4]@8 a4@3 a3, ~@4 a3@7 e5@5, ~ a5, ~@19 b4@13]/2", // B E C#m7
W: "[[a3,c#4,e4]@2 ~@2 [b3,g#4]@2 ~ c#4 ~@31 c#4 ~@29 b3@3 [b3,e4,g#4]@8, ~@4 e4 ~@3 [c#4,d#4,f#4]@16 b5@3 c#6@3 f#6@2 b6@6 b3@2 [b3,c#4,d#4,f#4]@16 e4@11 e4@5 ~@8, ~@8 b3@13 b4@19 ~@14 a3@2 [a3,c#4]@17 ~@7, ~@16 f#5@24 ~@24 a4@9 ~@7, ~@19 c#5@21 ~@15 b3@14 ~@11]/5", // A E D#m7 B A
X: "[~@6 b3@2 c#4@5 ~@8 b4@3 ~@14 a3@2 b3@14 b3@2 e4@3 ~@3 e4@9 b3 [c#4,d#4,f#4]@8, ~@8 [b3,f#4]@16 [b3,d#4,f#4]@17 ~@15 [b3,g#4]@16 b3 ~@7, ~@13 d#4@11 ~@16 [a3,c#4,e4]@16 ~@3 b4@13 ~@8]/5", // D#m7 B5 B E A
Y: "[~@23 b3 b3@14 b3@2 e4@3 ~@12 b3 [b3,c#4,d#4,f#4]@16 ~@15 a3 b3@14 b3@2 e4@3 ~@3 e4@9 b3 [b3,c#4,d#4,f#4]@8, ~@6 b3@2 [b3,d#4,f#4]@16 ~@16 b3@15 ~@17 [b3,c#4,d#4,f#4]@17 ~@15 [b3,g#4]@16 ~@8, ~@7 c#4@17 ~@16 g#4@17 ~@71, ~@22 a3@2 [a3,c#4,e4]@16 ~@3 b4@14 ~@50 b4@13 ~@8, ~@46 e4@11 ~@31 [a3,c#4,e4]@16 ~@24]/8", // B E A
Z: "[~@6 b3@2 [b3,c#4,d#4,f#4]@16 [a3,b3,c#4,e4]@16 ~@6 e4@9 b3 [b3,d#4,f#4]@16 [b3,d#4,f#4,b4] ~@3 [e4,f#4,g#4,b4] ~@3, ~@40 [b3,g#4]@16 c#4 ~@19 b3@2 ~@2, ~@8 e4 ~@7, ~@43 b4@13 ~@24]/5", // B A B E
AA: "[b3@16 a3@7 [a3,c#4] [a3,c#4,e4,a4]@2 ~@2 [b3,e4,g#4]@2 ~@2, [c#4,e4,a4]@3 ~]/2", // A E A
AB: "[d#4@9 ~@14 d#4 [b3,d#4,f#4] ~@3 [b3,g#4]@2 ~@2, b3@11 b3 ~@4, f#4@12 ~ f#4@11 ~@8, ~@10 d#4@13 ~@5 e4 ~@3, ~@2 b4 ~]/2", // B E
AC: "[[a3,b3,e4]@8 ~@15 c#4 [a3,e4]@2 ~@2 [b3,e4]@2 ~@2, c#4@13 c#4@9 a3@2 ~@8, ~@8 a4@16 ~@4 g#4 ~@3, ~@11 b3@13 c#4 ~@7, ~@2 e4 ~]/2", // Asus2 A5 E5
AD: "[~@19 b6@13, [b3,d#4,f#4] f#6, ~@3 b4@13, ~@5 f#5@11, ~@13 b5@19]/2", // B
AE: "[b3,d#4]@3 [c#4,e4]@2 ~ c#4 ~ [e4,g#4]@2 ~ [d#4,f#4]@2 [c#4,e4]@2 ~, ~@5 [d#4,f#4]@2 ~@9", // B C#m E D#m C#m D#m
AF: "[[b3,d#4]@2 ~ [c#4,e4]@2 ~@17 e4@18 [b3,d#4]@3 [c#4,e4]@3 d#4@2, ~@3 [a3,c#4]@16 ~@5, ~@7 e5@13 ~@4, ~@2 b4@3 ~, ~@19 a4@21 ~@6 f#4 ~]/3", // B C#m B C#m A
AG: "[[e4,g#4]@2 ~ [d#4,f#4]@2 ~ [c#4,e4]@2 [b3,d#4]@2 ~ [c#4,e4]@3 [a3,c#4]@32 ~@2]/3", // E D#m C#m B C#m A
AH: "[b3,d#4]@3 [c#4,e4]@2 [d#4,f#4]@2 ~ [e4,g#4]@3 [d#4,f#4]@2 ~ [c#4,e4]@2", // B C#m D#m E D#m C#m
AI: "[~ d#4@2 [c#4,e4]@3 [a3,c#4]@32 ~@2 [b3,d#4]@2 ~ [c#4,e4]@2 d#4@2 ~, b3@3 ~@42 f#4 ~@2]/3", // C#m A B C#m
AJ: "[e4,g#4]@2 ~ [d#4,f#4]@2 e4@2 ~ [b3,d#4]@2 ~ [c#4,e4] ~@3 e4, ~@5 c#4 ~@10", // E D#m B C#m
AK: "[e4,g#4,b4]@3 [e3,d#4,f#4,b4] ~@4 [e4,g#4,b4]@3 [d#4,f#4,b4] ~@4", // E B E B
AL: "[e4,g#4,c#5]@3 [d#4,f#4] ~@4 [e4,g#4,c#5]@3 [d#4,f#4] ~@4", // C#m D#m C#m D#m
AM: "[e4,g#4,b4]@3 [d#4,f#4,b4] ~@4 [e4,g#4,b4]@3 [d#4,f#4,b4] ~@4", // E B E B
AN: "[e4,g#4,c#5]@3 [d#4,f#4,b4] ~@4 [e4,g#4,c#5]@2 ~ [d#4,f#4,b4] ~@4", AO: "[b3,d#4,f#4]",
AP: "~@11 b4@5, [a3,c#4,e4], ~ a5", // A
AQ: "[~@6 f#4@2 ~@15 d#4 [b3,d#4,f#4,b4] ~@3 [b3,e4,g#4,b4] ~@3, [f#3,d#4]@12 f#5 b5 d#6@2 f#6@6 b3@2 ~@8, b3@11 d#5@13 ~@8, ~ f#4@2 ~, ~@5 b4@7 ~@4]/2", // B E D#m
AR: "[c#4@10 ~@13 c#4 [a3,c#4,e4]@3 ~ [b3,e4,g#4]@3 ~, a3@11 a3 ~@4, [b3,e4]@13 [b3,e4]@11 ~@8, ~@5 [c#4,a4]@7 ~@4, ~@2 [c#5,a5] ~]/2", // A E E5 F#m
AS: "[~@16 d#5@7 [b3,d#4] [b3,d#4,f#4,b4]@3 ~ [b3,g#4]@3 ~, [b3,d#4,f#4]@24 ~@4 e4 ~@3, ~ b5@2 ~, ~@11 f#5@13 ~@8, ~@7 b4@5 ~@4]/2", // B E B
AT: "[~@16 c#5@7 [a3,c#4] [c#4,e4]@2 ~@2 [b3,e4,g#4]@3 ~, [a3,b3,c#4,e4]@3 ~, ~@5 a5@7 ~@4, ~@13 b4@11 ~@8]/2", // A C#m E A
AU: "[~@11 b6@5, [b3,d#4,f#4] f#6, ~@3 b4@13, ~@9 f#5@23, ~@3 b5@5]/2", // B
AV: "~@3 e4@5, [b3,g#4], e4@5 ~@11, ~@3 b4@13", AW: "e4@3 ~@3 e4@10, [b3,g#4], ~@3 b4@13",
AX: "~@7 b3, [a3,c#4,e4], b3@7 ~, ~@3 a4", AY: "[b3,c#4,d#4,f#4]@15 b3",
AZ: "[[b3,d#4,f#4,b4] ~@3 [b2,b3,e4,g#4,b4] ~@18 b4@9, ~ [a3,b3,c#4,e4]@3, ~@17 a5@15, ~@5 e5@3]/2", // B E A
BA: "[[a3,c#4,e4]@2 ~@2 [b3,e4,g#4]@2 ~@18 b5@7 [b3,d#4], ~ [b3,d#4,f#4]@3, ~@17 b4@15, ~@19 c#5@13, ~@11 f#5@5]/2", // A E B
BB: "[[b3,d#4,f#4] ~@3 [e4,g#4,b4] ~@19 a6@8, b4 ~ b3 ~ [b3,c#4,e4,a4]@12, ~@7 a3@9, ~@5 e6@3, ~@11 a5@5]/2", // B E A
BC: "[[c#4,e4]@2 ~@2 [e4,g#4] ~@34 b3 ~@16 [b3,c#4,e4]@8, a3 ~@3 b3@2 ~@2 [b3,d#4,f#4]@14 b5@2 d#6@3 f#6@3 b6@8 a3@2 a3@24, ~@14 b4@26 [b3,c#4]@11 a4@13, ~@9 f#5@11 ~@4 e5@8, ~@20 d#5@20 e4@10 e4@3 b4@11]/4", // C#m E C#m7 B Bsus2
BD: "[~@5 b4@3 ~@16 b4@16 ~@16 [b3,c#4,e4]@8, e5@8 ~@10 f#5@22 e4@10 e4 a4@13, ~ e4@3 [b3,c#4,d#4,f#4]@16 a3@12, ~@3 a4@5 ~@7 b4@9 ~@16 [b3,c#4]@14 b4@10, ~@21 b5@19 ~@8 e5@16]/4", // C#m7 B Bsus2
BE: "[~@6 b4@2 ~@31 b3 ~@30 a4@2 ~@30 b4@2 ~@13 b4@11, e5@4 [b3,c#4,d#4,f#4]@8 b5@7 a3 [a3,b3,c#4]@16 [b3,c#4,d#4]@16 [a3,b3,c#4]@12, ~@2 e4@7 ~@10 b4@21 e4@10 e4@16 e5@6 f#4@10 f#4@16 f#5@6 e4@10 e4@14, ~@3 a4@6 ~@7 f#5@24 ~@8 e5@5 b4@20 ~@7 f#5@5 c#5@20 ~@7 e5@16, ~@21 c#5@19 ~@11 a4@17 e4@5 ~@10 b4@17 f#4@5 ~@10 a4@13]/8", // B A B A
BF: "[~@3 a4 ~@14 b3@2 ~@8 e4@8 ~@8 b5@8 [a3,b3,c#4,e4]@12, ~@2 e5@6 b3@21 b4@3 f#4@8 e4@16 ~@72, ~ e4 [c#4,d#4]@8 [a3,b3,c#4]@8 [b3,c#4,d#4,f#4]@8 ~@6, ~@4 f#4@5 f#4@4 f#5@7 ~@21 f#5@11 ~@12, ~@16 f#5@3 b4@2 c#5@19 ~@13 a4@19 ~@14 b4@18 ~@24]/8", // A C#sus2 A B
BG: "[~@24 b5@16 ~@13 b4@3 ~@13 b4@3 ~@13 c#5@3 ~@13 c#5@3 ~@13 b4@3 [a3,b3,c#4,e4]@8, ~ [b3,c#4,d#4,f#4]@4 [a3,b3,c#4]@2 [a3,b3,c#4]@2 [b3,c#4,d#4]@2 [b3,c#4,d#4]@2 [a3,b3,c#4]@2 ~, ~@9 f#5@11 e4@5 e4@3 e4@5 e4@3 f#4@5 f#4@3 f#4@5 f#4@3 e4@5 e4@3 ~@4, ~@21 b4@20 ~@7 e5@9 ~@7 e5@8 ~@8 f#5@8 ~@8 f#5@8 ~@8 e5@8 ~@8, ~@51 a4@6 ~@10 a4@5 ~@11 b4@5 ~@11 b4@5 ~@11 a4@5 ~@8]/8", // A B A B A
BH: "[~@5 b4@3 ~@13 c#5@3 ~@13 c#5@3 [a3,b3,c#4,e4]!4 ~ [a3,b3,c#4,e4] ~ [a3,b3,c#4,e4], e5 ~ f#5 ~ f#5 ~, ~ e4@3 [b3,c#4,d#4]@8 [b3,c#4,d#4]@8 ~@4, ~@3 a4@5 f#4@10 f#4@6 f#4@10 f#4@6 ~@8, ~@19 b4@5 ~@11 b4@5 ~@8]/3", // A B
BI: "[a3,b3,c#4,e4]!4 ~@12", // A
})).s("gm_epiano2").gain(0.32)
// bass · electric bass finger
const bass = note(`<
~@2 A B C D C E C F A G H I A G H I A G H J A G H K A G H C L M N O P M N Q R@8 S@8 T@5 U V W X U V W Y Z AA M AB AC@2
AD Z AA M AB AE AF AG AF AH AF AH ~@6 AI@2 U AJ AK U V W X U V W Y A G H I A G H J A G H K A G H C L M N O P M N Q AL
M N O P M N Q AL M N O P M N Q AL M N O P M N Q AL M N O P M N Q AM AN
>`.pickRestart({
A: "b1", B: "a1@13 ~ a1!2", C: "b1@15 ~", D: "a1@15 a1", E: "a1@14 a1!2", F: "a1@13 ~ a1@2", G: "a1@7 b1", H: "c#2",
I: "b1@11 f#2 ~ f#2 g#2@2", J: "b1@6 f#1 g#1", K: "b1@3 f#2", L: "b1@3 ~ b1@3 ~ a1@6 ~ a1", M: "a1@7 ~ a1@6 ~ a1",
N: "a1@3 a1!2 ~ a1 ~ b1@6 ~ b1", O: "b1@7 ~ b1@6 ~ b1", P: "b1@3 ~ b1@4 a1@6 ~ a1", Q: "b1@7 ~ b1@8",
R: "[g#2@4 f#2@4 b1@16 a1@14 b1@2 c#2@16 b1@11 f#2 ~ f#2 g#2@2 b1@16 a1@14 b1@2 c#2@16 b1@8]/8",
S: "[~@3 f#2 ~ f#2 g#2@2 b1@16 a1@14 b1@2 c#2@16 b1@12 f#1@2 g#1@2 b1@16 a1@14 b1@2 c#2@16 b1@8]/8",
T: "[~@4 f#2@4 b1@16 a1@14 b1@2 c#2@16 b1@15 ~ b1@3 ~ b1@3 ~]/5", U: "a1@6 ~ a1 a1@7 ~",
V: "a1@6 ~ a1 a1@3 a1!2 ~ a1 ~", W: "b1@6 ~ b1 b1@7 ~", X: "b1@6 ~ b1 b1@3 ~ b1@4", Y: "b1@2 g#2 f#2",
Z: "b1@2 ~ c#2@2 ~ d#2@2 e2@2 ~ d#2@2 ~ c#2@2", AA: "b1@2 ~ c#2@2 ~ a1@8 ~ a1", AB: "a1@6 ~ a1 b1@2 ~ c#2@2 ~ d#2@2",
AC: "[e2@2 ~ d#2@2 ~ c#2@2 b1@2 ~ c#2@2 ~ a1@8 ~ a1 a1@7 ~]/2", AD: "a1@6 ~ a1 a1@6 ~ a1",
AE: "e2@2 ~ d#2@2 ~ c#2@2 b1@2 ~ c#2@2 ~ b1@2", AF: "a1@3 g#1 ~@4 a1@3 g#1 ~@4", AG: "~@12 a1 ~ a1 ~",
AH: "b2!2 ~ b1 ~@2 b2 ~@3 b1 ~ b2 ~ b1 ~", AI: "[a1@3 g#1 ~@4 a1@3 g#1 ~@3 b1@14 ~ b1 ~]/2",
AJ: "g#1@6 ~ g#1 g#1@7 ~", AK: "g#1@6 ~ g#1 d#2@3 ~ g#1@4", AL: "g#2@4 f#2@4 a1@6 ~ a1",
AM: "g#2@4 f#2@4 a1!4 ~ a1 ~ a1", AN: "a1!4 ~@12",
})).s("gm_electric_bass_finger").gain(0.26)
// other · synth strings 1
const synth_strings_1 = note(`<
~ A@2 B C D E F@2 G H@2 ~@4 I@4 ~@2 J K@5 L@2 ~@3 M@7 ~@5 N O P Q R ~@2 S P T@5 ~@6 U@2 ~ V W X@2 Y Z AA V AB AC@2
~@13 AD AE@3 ~@11 AF@3 ~@2 J AG@7 ~@42
>`.pickRestart({
A: "[~ d#5, f#5]/2", B: "[c#5,e5]", C: "[b4,d#5]", D: "c#5@4 b4@4 ~ c#5@4 b4@3, e5", E: "~ [d#5,f#5]@15",
F: "[~ e5@19 ~@12, c#5@5 ~@3]/2", G: "a3", H: "[f#3@25 ~@7]/2",
I: "[~@4 f#5@49 ~ e5@6 ~@4, ~@4 d#5@53 ~@7, ~@53 c#5@8 ~@3]/4", J: "[d#5,f#5]",
K: "[[c#5,e5]@18 ~@6 [f#4,b4]@35 ~@2 [d#5,f#5]@9 ~ c#5@9, ~@24 c#5@15 ~@31 e5@10]/5", // C#m B5 D#m
L: "[~@5 [f#4,b4]@11, ~@10 c#5@11 ~@11]/2", // B5
M: "[~@8 [b4,d#5]@12 e5@4 a4@28 ~@4 d#5@23 c#5@4 ~@29, ~@20 c#5@32 ~@4 [f#4,b4]@51 ~@5]/7", N: "~@8 c#4@3 b3@3 c#4@2",
O: "b3@3 ~ c#4@2 b3@2 c#5@3 b4@2 c#5@3", P: "b4@3 c#5@3 b4@2 c#5@3 b4@3 c#5@2", Q: "b4@3 c#5@3 b4@3 c#5@2 b4@3 c#5@2",
R: "~ b4@3 c#5@2 b4@5 ~@5", S: "~@8 c#5@3 b4@2 c#5@3",
T: "[b4@3 c#5@3 b4@17 ~@16 e5@16 ~ d#5@16 ~@8, ~@23 a4@17 ~@15 b4@17 ~@8, ~@25 c#5@32 ~@23]/5",
U: "[[b4,d#5]@19 ~@13]/2", V: "~@11 e6 d#6 b5 f#5 d#6",
W: "c#6 a5 e5 ~ b5 f#5 d#5 b5 a5 e5 c#5 a5 g#5 d#5 b4 g#5, ~@3 c#6@2 ~@11",
X: "[f#5 c#5 a4 f#5 e5 f#5 g#5 e5 f#5@14 ~@10]/2", Y: "~@4 d#6 b5 f#5 d#6 c#6 a5 e5 c#6 b5 f#5 d#5 b5, ~@3 e6@2 ~@11",
Z: "a5 e5 c#5 a5 g#5 d#5 b4 g#5 f#5 c#5 a4 f#5 e5 f#5 g#5 e5", AA: "f#5@15 ~",
AB: "c#6 a5 e5 c#6 b5 f#5 d#5 b5 a5 e5 c#5 a5 g#5 [b4,d#5] g#5 f#5", // B
AC: "[~ [a4,c#5] f#5 ~ e5 f#5 g#5 e5 f#5@15 ~@9]/2", AD: "b5 c#6 b5 g#5 a5 b5 a5 f#5 g#5 a5 g#5 e5 f#5 g#5 f#5 d#5",
AE: "[~@2 b4@3 ~, [a4,c#5]@17 ~@31, ~@15 g#4@25 ~@8]/3", AF: "[[d#5,f#5]@33 [c#5,e5]@8 ~@7]/3",
AG: "[[c#5,e5]@18 ~@3 [f#4,b4]@32 ~@17 e5@17 ~ [f#4,b4]@24, ~@21 c#5@15 ~@20 [d#5,f#5]@15 ~@41, ~@69 c#5@18 ~ c#5@13 ~@11]/7", // C#m B5 D#m
})).s("gm_synth_strings_1").gain(0.18)
// other · piano
const piano = note(`<
~@2 A@6 ~@2 B C D E F G@3 H I J K@2 L M N O L M P Q@2 R@2 S@2 T@3 U@2 V@2 W X Y@2 Z@2 AA@2 AB@2 AC@2 AD AE AF AG AH@2
AI AJ AH@2 AK AL AM AN@3 AO@3 AP AQ@3 AR@2 ~@5 AS AT AU AV AW AX ~ AY AZ BA@2 AH@2 AI AJ AH@2 BB BC ~@7 BD BE BF M BG
O BH M BI BJ@2 BK@2 BL@2 BM@5 BN BO@2 BP@2 BQ@7 BR@2 ~@17
>`.pickRestart({
A: "[~@12 d#4@3 c#4@26 ~@2 c#4 d#4@3 c#4@2 ~ d#4 e4@2 d#4@2 b3@21 c#4 d#4@2 c#4@17, ~@12 c#4 ~@83]/6",
B: "~@5 d#4 ~ e4 f#4@5 e4 ~ d#4", C: "d#4 ~ e4@2 ~ c#4@11", D: "~@6 e4!2 g#4@2 ~ g#4@2 g#4@2 ~",
E: "g#4@2 ~ f#4@3 d#4@10", F: "~@5 b3 ~ b3 b3@5 ~ b3 ~",
G: "[[a3,b3] c#4@2 b3@2 a3@2 ~ a3@15 ~ e4@2 d#4 e4@2 d#4@2 e4@2 d#4@2 ~ b3@12]/3", // Asus2
H: "~@4 d#4 e4 f#4 g#4 f#4@5 ~ e4 d#4", I: "e4@2 d#4@2 ~ c#4@11", J: "~@5 e4 ~ e4 g#4@2 ~ g#4@2 g#4@2 f#4",
K: "[g#4@3 f#4@3 d#4@4 ~ g#4 f#4@2 d#4@5 d#4@3 c#4 ~@4 d#4 d#4@2 c#4 ~]/2", L: "~@3 e4 d#4@2 c#4 ~@4 e4 d#4@2 c#4 ~",
M: "~@11 e4!2 ~ e4 ~", N: "d#4@3 f#4@2 ~ f#4@4 ~ d#4 d#4@2 c#4 ~, ~@3 e4 ~@12",
O: "~@3 d#4@3 c#4 ~@4 d#4 d#4@2 c#4 ~", P: "d#4@3 b3@2 c#4@2 ~ b3@6 ~@2", Q: "[f#4 ~@3 g#4 ~@3 e4@23 ~]/2",
R: "[e4@3 ~ g#4@3 ~ f#4@23 ~]/2", S: "[f#4@3 ~ g#4@3 ~ e4@23 ~]/2",
T: "[e4@3 ~ g#4@4 f#4@11 c#4 d#4@2 c#4@2 b3@16 ~@5 d#4 ~ e4]/3",
U: "[f#4@4 ~ e4 d#4 ~ d#4@2 ~ e4@2 c#4@15 ~ e4 ~ e4]/2",
V: "[g#4@2 ~ g#4@2 ~ g#4 ~ g#4@2 ~ f#4@3 d#4@13 ~@2 b3 ~ b3]/2", W: "b3@5 b3@2 ~ c#4@3 b3@2 a3@2 ~", X: "a3@15 ~",
Y: "[e4 ~ d#4 e4@2 d#4@2 e4@2 ~ d#4 b3@12 ~@5 d#4 e4 f#4 g#4]/2",
Z: "[f#4@5 ~ e4 d#4 e4@2 ~ d#4@2 c#4@11 ~@5 e4 ~ e4]/2",
AA: "[g#4@2 ~ g#4@2 g#4@2 ~ g#4@3 f#4@2 d#4@5 ~ g#4 f#4@2 d#4@5 ~ d#4@2 c#4 ~]/2",
AB: "[~@4 d#4@2 c#4 ~@4 e4 d#4@2 c#4@4 ~ e4 d#4@2 c#4@10]/2",
AC: "[~@3 e4!2 ~ e4@2 d#4@2 ~ f#4@2 ~ f#4@5 c#4 d#4@2 c#4 ~@5 d#4@2 c#4 ~]/2", AD: "~@4 d#4@2 c#4 ~@4 e4 d#4@2 c#4@2",
AE: "~@3 e4 d#4@2 c#4@2 ~@8", AF: "~@2 e4@3 ~ e4@2 d#4@2 ~ b3@3 c#4@2", AG: "b3@7 ~ f#4 ~@3 g#4@2 ~@2",
AH: "[e4@23 ~ e4@3 ~ g#4@3 ~]/2", AI: "f#4@13 d#4@2 e4", AJ: "f#4@7 ~ f#4@3 ~ g#4@3 ~", AK: "f#4@13 d#4@3",
AL: "f#4@15 ~", AM: "d#4@2 ~ e4@2 f#4@2 ~ g#4@2 ~ f#4@2 e4@2 ~", AN: "[d#4@3 e4@3 c#4@30 ~@4 d#4@2 ~ e4@2 f#4@2 ~]/3",
AO: "[g#4@2 ~ f#4@2 ~ e4@2 d#4@2 ~ e4@3 c#4@32 ~@2]/3", AP: "d#4@3 e4@2 f#4 ~@2 g#4@2 ~ f#4@2 e4@2 ~",
AQ: "[b4@3 d#4@3 c#4@31 ~@3 d#4@3 e4@2 f#4 ~@2]/3", AR: "[g#4@3 f#4@2 e4 ~@2 b4@3 b4@2 ~ g#4 b4@2 ~@15]/2",
AS: "d#4 ~ d#4 f#4 ~ d#4 ~ c#4 ~ b3 ~ b3 d#4 ~@3", AT: "~@2 b4@6 f#4 g#4 ~ g#4 ~ f#4 ~@2",
AU: "d#4 ~ d#4 f#4 ~ d#4 ~ c#4 ~ b3 ~ b3 ~@4", AV: "~@2 b4@5 ~ g#4 ~ g#4 f#4@2 e4 d#4 ~",
AW: "d#4 ~ d#4 f#4 ~ f#4 ~ g#4 ~ g#4 ~ f#4 ~ d#4 ~@2", AX: "~@2 g#4@5 ~ g#4 ~ f#4 g#4 ~ b4 ~@2", AY: "e4 f#4 g#4 a4",
AZ: "b4@13 ~ b4 ~", BA: "[b4 ~ a4 ~ a4 g#4 ~ g#4@2 f#4@13 ~@2 f#4@3 ~ g#4@2 ~@2]/2",
BB: "f#4@12 c#4 ~ c#4@2, ~@13 d#4@2 ~", BC: "b3", BD: "~@11 g#4 f#4@2 d#4 ~",
BE: "~@3 c#4 d#4@2 c#4 ~@4 d#4 d#4@2 c#4 ~", BF: "~@3 e4 d#4@2 c#4 ~@4 e4 d#4 ~ c#4 ~",
BG: "d#4@2 ~ f#4@2 ~ f#4@4 ~ d#4 d#4@2 c#4 ~", BH: "~@3 e4 d#4 ~ c#4 ~@4 e4 d#4@2 c#4 ~",
BI: "d#4@2 ~ b3@3 c#4@2 ~ b3@7", BJ: "[f#4 ~@3 g#4 ~@3 e4@24]/2", BK: "[e4 ~@3 g#4@2 ~@2 f#4@14 d#4@2 e4 f#4@7]/2",
BL: "[f#4@2 ~@2 g#4@2 ~@2 e4@23 ~]/2",
BM: "[e4@3 ~ g#4@3 ~ f#4@13 d#4@2 ~ f#4@14 ~@2 a4@2 g#4 f#4 ~ f#4 ~ g#4@4 ~ f#4 ~ f#4 ~ a4@2 g#4 f#4 ~ f#4 ~ g#4@4 ~ g#4 ~ g#4 ~ f#4@7 [c#4,d#4]]/5", // C#sus2
BN: "b3@2 ~@6 b4@4 ~ f#4@2 ~",
BO: "[b4@2 ~ b4 ~@2 f#4 ~ a4 ~ g#4 f#4 ~ f#4 ~ g#4@4 ~ f#4 ~ f#4 ~ a4 ~ g#4 f#4 ~ f#4 ~ g#4]/2",
BP: "[~@4 f#4 ~ f#4 ~ f#4@2 ~ [c#4,d#4] ~@20, ~@11 b3@21]/2", // C#sus2
BQ: "[~@6 d#4 ~ e4@2 d#4 b3@10 d#4@2 ~ e4@2 d#4 b3@11 e4 ~ f#4@2 e4 d#4@10 ~ d#4 ~ e4 f#4@13 d#4 ~ e4@2 d#4 b3@11 d#4 ~ e4@2 d#4 b3@11 e4 ~ f#4@2 e4 d#4@5]/7",
BR: "[~@6 d#4 ~ e4 f#4@15 ~@8]/2",
})).s("gm_piano").gain(0.32)
// chords · brass section
const brass_section = note("<~@59 A ~ B@2 C ~ D ~@13 E F G H E I ~@6 J ~@52 K L M N O L M N P ~@7 K Q>".pickRestart({
A: "~@9 [c#5,e5,f#5,b5] ~ [c#5,e5,f#5,b5] [c#5,e5,b5] ~ [c#5,e5,f#5,b5] ~, ~@6 f#5 ~", // C#m7
B: "~@9 [c#5,d#5,f#5,b5] ~ [c#5,d#5,f#5,b5]!2 ~ [c#5,d#5,f#5,b5] ~", // B
C: "~@9 [c#5,e5,f#5,b5] ~ [c#5,e5,f#5,b5] [c#5,e5,f#5] ~ [c#5,e5,f#5,b5] ~, ~@6 b5 ~", // C#m7 F#7 C#m7
D: "~@9 [c#5,d#5,f#5,b5] ~ [c#5,d#5,f#5,b5] [c#5,d#5,f#5] ~ [c#5,d#5,f#5,b5] ~, ~@6 b5 ~", // B D#m7 B
E: "[e5,g#5,b5]@3 [d#5,f#5,b5] ~@2 b2 ~ [e5,g#5,b5]@3 [d#5,f#5,b5] ~@4", // E B E B
F: "[f#4,f#5] [g#4,g#5] ~@2 [b4,b5] [c#5,c#6] ~@4 [b4,b5] [a4,a5] [b4,b5] [c#5,c#6] [b4,b5] [c#5,c#6]", // F# G# B C# B A B C# …
G: "[e5,g#5]@3 [d#5,f#5,b5] ~@2 b2 ~ [e5,g#5,c#6]@3 [d#5,f#5,b5] ~@4", H: "~@6 [d#5,f#5,b5]!2 ~@4 [d#5,f#5,b5] ~@3",
I: "~@6 [d#5,f#5,b5]!2 ~@4 [d#5,f#5,b5]@2 ~@2", // B
J: "[e5,g#5,c#6]@3 [d#5,f#5,b5] ~@2 b2 ~ [e5,g#5,c#6]@3 [d#5,f#5,b5] ~@4", K: "~@8 [a5,c#6]!4 ~ [a5,c#6] ~ [a5,c#6]",
L: "[a5,c#6]!4 ~ [a5,c#6] ~@3 [b4,b5] [c#5,c#6] [a4,a5] [b4,b5] [c#5,c#6] [b4,b5] [a4,a5]", // A B C# A B C# B A
M: "[b4,b5] ~@2 [a4,a5] [b4,b5] [e5,e6] ~@2 [d#5,d#6]@3 [b4,b5] ~@4", // B A B E D# B
N: "~ [f#4,f#5] [g#4,g#5] [f#4,f#5] [b4,b5] [c#5,c#6] [b4,b5] [g#4,g#5] [d#5,d#6]@3 [b4,b5] ~@4", // F# G# F# B C# B G# D# …
O: "~ [d#5,d#6,d#7] ~@6 [a5,c#6]!4 ~ [a5,c#6] ~ [a5,c#6]", P: "~ [d#5,d#6,d#7] ~@14", Q: "[a5,c#6]!4 ~@12",
})).s("gm_brass_section").gain(0.24).pan(1)
// other · steel drums
const steel_drums = note("<~@22 A B ~@2 C D ~@22 E D F ~ E G F ~@47 H I J K L M N O C D ~@2 A D ~@44>".pickRestart({
A: "~@3 d#4@2 ~ c#4 ~@4 e4 d#4@2 c#4 ~", B: "~@3 e4 d#4 ~ c#4 ~@4 e4 d#4@2 c#4 ~",
C: "~@3 d#4@3 c#4 ~@4 e4 d#4@2 c#4 ~", D: "~@3 e4 d#4@2 c#4 ~@4 e4 d#4@2 c#4 ~", E: "~@12 d#4@2 c#4 ~",
F: "~@3 e4 d#4@2 c#4 ~@9", G: "~@4 d#4@2 c#4 ~@4 e4 d#4@2 c#4 ~", H: "~@8 [b3,d#4]@2 ~ [c#4,e4]@2 ~ [d#4,f#4] ~",
I: "~ [d#4,f#4]@2 [c#4,e4]@2 ~ [b3,d#4] c#4 a3 [a3,c#4] c#4 [a3,c#4] a3 [a3,c#4] c#4 [a3,c#4]", // D#m C#m B A
J: "~@8 g#4@2 ~ [e4,g#4] ~ e4 g#4 ~, ~@8 e4 ~@7", // E
K: "[e4,g#4] ~ d#4 f#4 ~ [c#4,e4] ~ b3 d#4 [b3,d#4] b3 [b3,d#4] d#4 [b3,d#4] b3 [b3,d#4]", // E C#m B
L: "~@8 d#4@2 ~ [c#4,e4] ~@2 [d#4,f#4] ~, ~@8 b3 ~@7", // C#m D#m
M: "[d#4,f#4] ~@2 [c#4,e4] ~ [b3,d#4] ~@2 [a3,c#4] ~ [a3,c#4] c#4 [a3,c#4]!2 a3 [a3,c#4]", // D#m C#m B A
N: "~@8 [e4,g#4] ~@2 [e4,g#4] ~ e4 g#4 ~", // E
O: "[e4,g#4] ~@2 [d#4,f#4] ~ [c#4,e4] ~ b3 d#4 [b3,d#4] b3 [b3,d#4] d#4 [b3,d#4]!2 b3", // E D#m C#m B
})).s("gm_steel_drums").gain(0.26)
// other · string ensemble 1
const string_ensemble_1 = note(`<
~ A B ~@4 C D ~@21 E ~@16 F G ~@9 H ~@10 I J@2 K L M ~ I N@2 ~@16 H ~@24 E ~@41
>`.pickRestart({
A: "~@13 f#5 b5 c#6", B: "f#6 ~@15", C: "~@11 [f#4,f#5] [f#5,f#6] [d#5,d#6] [c#5,c#6] [a4,a5]",
D: "[f#4,f#5] ~@6 [f#4,f#5] [e4,e5] [f#4,f#5] [c#5,c#6] [f#5,f#6] ~@4", E: "[b3,b5] ~@3 [b3,b5] ~@11",
F: "~@8 f#6!2 e6 f#6 ~@4", G: "~@8 g#6!2 e6 g#6 ~@4", H: "~@8 [b3,b5] ~@3 [b3,b5] ~@3", I: "~@2 a4 b4",
J: "[c#5@2 g#4@2 f#4@7 ~@5]/2", K: "~@8 e6 d#6 e6 d#6 e6 d#6 ~@2", L: "a4@4 e6 d#6 ~@2 a4@4 g#4@4, ~ b4 ~@2",
M: "f#4", N: "[a4@4 g#4@4 f#4@23 ~]/2",
})).s("gm_string_ensemble_1").gain(0.24).pan(0.6)
// other · woodblock
const woodblock = note("<A@5 B A@24 C D@28 A@11 E D@2 F A@3 E F A@41 C D@39 F ~>".pickRestart({
A: "d6 ~@2 d#7 ~@2 d6 ~ d#7@2 ~@6", B: "d6@2 ~ d#7 ~@2 d6 ~ d#7@2 ~@6", C: "d6 ~@2 d#7 ~@2 d6 ~ d6 ~@2 d#7 ~@2 d6 ~",
// … 85 more lines
More by Lionel Richie
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.