0:00/0:00
// Endless Love (feat. Diana Ross) — Lionel Richie
// 96 bpm, 4/4, key A# 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: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 102 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(96/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 · fretless bass
const bass = note("<~@13 A B@7 C@4 D@3 E@7 F@6 G@4 H@8 I@4 J@8 K@2 L@8 M@4 N O P@2 Q@4 R S T U V W@3 X@7>".pickRestart({
A: "~@30 f2@5 ~ f2@6 bb1@6",
B: "[eb2@37 ~@4 eb2@4 ~@2 f2@46 ~@2 bb1@28 ~ a1@16 ~@2 g1@30 f1@17 ~ eb1@38 ~@3 eb1@5 ~ f1@47 ~ bb1@39 ~@2 bb1@4 ~@2 bb1@4]/7",
C: "[~@20 bb1@6 c2@6 d2@4 ~@2 bb1@6 eb2@40 ~ eb2@5 ~ f2@46 ~@2 bb1@29 a1@17 ~ g1@6]/4",
D: "[~@24 f1@18 eb1@46 ~ d2@47 ~ c2@7]/3", E: "[~@34 c2@6 f1@47 ~ bb1@189 ~ bb1@36 ~@5 f1@6 bb1@11]/7",
F: "[~@31 bb1@6 eb2@39 ~@2 eb2@6 f2@33 ~@3 f2@6 c2@6 bb1@37 ~@4 bb1@4 ~@2 bb1@29 ~ f2@6 c2@6 f2@5 ~ bb1@38 ~@3 bb1@5 ~ g2@14]/6",
G: "[~@16 g2@6 d2@11 ~ eb2@39 ~@2 eb2@6 f2@32 ~@4 f2@6 c2@6 bb1@38 ~@3 bb1@4 ~@2 bb1@16]/4",
H: "[~@8 bb2@6 f2@6 d2@6 bb1@6 eb2@37 ~@4 eb2@4 ~@2 f2@34 ~@2 f2@6 c2@6 bb1@28 ~ a1@16 ~@2 g1@30 f1@17 ~ eb1@38 ~@3 eb1@5 ~ f1@34 ~@2 f1@11 ~ bb1@39 ~@2 f2@2 ~ g2@2 ~ bb2@17 ~ c3@2]/8",
I: "[~@4 d3@9 c3@3 bb2@3 f2@3 d2@3 bb1@3 eb2@40 ~ eb2@5 ~ f2@40 ~@2 f2@5 ~ bb1@29 a1@17 ~ g1@22]/4",
J: "[~@8 f1@18 eb1@40 ~ eb2@5 ~ d2@47 ~ c2@40 ~ c2@6 f1@47 ~@2 bb1@40 ~ f1@6 bb1@46 ~@2 eb2@39 ~@2 eb2@6 f2@25]/8",
K: "[~@5 f2@4 ~@2 f2@5 ~ c2@5 ~ bb1@40 ~ f1@6 bb1@23 ~ f2@2]/2",
L: "[~@4 f2@4 ~@2 f2@6 f1@6 bb1@39 ~@2 f1@6 bb1@42 d2@3 bb1@3 eb2@39 ~@2 eb2@6 f2@38 ~@4 f2@5 ~ bb1@40 ~ f1@6 bb1@34 ~@2 bb1@11 ~ eb2@40 ~ eb2@5 ~ f2@30]/8",
M: "[~@6 f2@5 ~ f2@2 ~ c2@2 ~ bb1@29 a1@17 ~ g1@29 ~ f1@18 eb1@38 ~@3 eb1@5 ~ f1@32]/4", N: "~@4 f1@11 ~ bb1@32",
O: "~@3 f2@11 ~ bb2@17 ~ c3@6 d3@3 eb3@3 d3@3", P: "[c3@3 bb2@3 f2@3 d2@3 bb1@3 eb2@40 ~ eb2@5 ~ f2@34]/2",
Q: "[~@2 f2@11 ~ bb1@29 a1@17 ~ g1@29 ~ f1@18 eb1@40 ~ eb1@5 ~ d1@34 ~@2]/4", R: "d1@11 ~ eb2@36",
S: "~@5 eb2@6 d2@37", T: "~@5 d2@6 eb2@37", U: "~@2 eb2@3 d2@19", V: "~@4 d2@6 c2@35 ~ d1@2",
W: "[~@4 eb1@6 ~ f1@55 bb1@78]/3", X: "[~@12 bb1@3 ~ c2@3 eb2@48 f2@49 bb1@173 ~@47]/7",
})).s("gm_fretless_bass").gain(0.53)
// chords · ocarina
const ocarina = note("<~@98 A@4>".pickRestart({
A: "[~@72 f6@115 ~@5, ~@5 f4@30 f5@9 bb5@9 c6@9 d6@125 ~@5, ~@12 bb4@175 ~@5, ~@5 c5@42 ~, ~@27 d5@160 ~@5]/4",
})).s("gm_ocarina").gain(0.05).pan(0.6)
// other · alto sax
const alto_sax = note(`<
~@2 A@2 B@4 ~ C ~@4 D E F G ~ H@2 I ~ J@2 K L@3 M@3 ~ N@2 O@5 P@2 Q R S ~ T@5 ~ U@2 V W X ~ Y@5 ~@11 Z@6 ~@2 AA@3 ~@2
AB AC AD AE ~ AF@4 ~@6
>`.pickRestart({
A: "[d4@18 ~ d4@34 ~@18 d4@9 eb4@8 ~ f4@6 ~]/2",
B: "[~ f4@19 eb4@3 d4@3 ~ eb4@10 d4@6 ~ c4@23 ~@3 c4@11 ~@2 c4@10 ~@2 c4@12 ~ d4@5 ~ d4@47 ~@31]/4",
C: "~@12 d4@3 ~ c4@3 bb3@24 ~@5", D: "~@6 c4@5 bb3@29 ~@8", E: "~@22 c4@10 ~ d4@7 ~ eb4@6 ~",
F: "d4@4 ~ c4@3 bb3@17 ~@3 bb3@10 f4@10", G: "d4@17 ~@7", H: "[~@15 a4@3 bb4@4 ~ c5@14 ~ a4@4 ~ g4@4 f4@37 ~@12]/2",
I: "~@15 f4@5 g4@6 ~ f4@16 ~@5", J: "[~@20 c4@9 d4@7 ~ eb4@6 ~ f4@14 ~@15 f4@17 ~ f4@5]/2", K: "~ eb4@5 d4@32 ~@10",
L: "[~@29 bb3@6 d4@6 c4@33 ~@2 c4@13 eb4@51 ~@4]/3", M: "[~@4 eb4@17 ~ eb4@8 ~@2 eb4@8 d4@104]/3",
N: "[~@39 d4@22 ~ d4@34]/2",
O: "[~@14 d4@8 ~ eb4@7 ~ f4@6 ~ f4@15 ~ eb4@3 ~ d4@3 eb4@11 ~ d4@7 c4@24 ~@5 c4@10 ~ c4@9 ~@3 c4@6 eb4@11 ~ d4@50 ~@40]/5",
P: "[~@24 d4@4 ~@2 f4@11 d4@2 ~ c4@3 ~@12 d4@7 eb4@7 ~ f4@5 ~@3 f4@14, ~@47 bb3@19 ~@30]/2",
Q: "~@3 eb4@3 d4@3 ~ eb4@10 ~ d4@6 c4@21", R: "~@9 c4@5 ~ c4@4 ~@2 c4@3 ~@2 c4@3 ~@3 c4@6 ~ eb4@9", S: "~ d4@15",
T: "[~@20 g4@7 f4@11 d4@6 c4@11 c4@10 d4@7 ~ eb4@7 eb4@9 d4@15 ~@6 a4@16 bb4@28 ~@2 c4@16 ~ bb3@40 ~@27]/5",
U: "[~@11 f4@11 g4@5 ~ d4@31 ~@37]/2", V: "~@10 g4@7 ~ g4@3 f4@5 ~ f4@3 ~ d4@5 ~ d4@3 ~ c4@7",
W: "~@2 c4@10 ~ d4@8 eb4@13 ~@14", X: "~ f4@41 ~@6",
Y: "[~@14 eb4@6 d4@32 ~@15 c4@50 ~@14 eb4@17 ~@2 eb4@8 ~@2 eb4@10 d4@70]/5",
Z: "[~@8 g4@11 f4@22 ~ c4@10 ~ d4@8 eb4@7 ~ d4@14 ~@12 f4@20 d4@25 ~@3 d4@19 eb4@44 ~@23 d4@3 eb4@13 ~@4 eb4@7 d4@32, ~@226 c4@5 ~@57]/6",
AA: "[~@37 c4@10 d4@7 ~@2 eb4@6 d4@19 ~@10 eb4@16 ~@2 f4@4 eb4@3 d4@28]/3", AB: "~@12 g4@35 ~",
AC: "~@2 f4@3 eb4@4 d4@3 ~ f4@32 ~@3", AD: "~@11 g4@36 ~", AE: "~ f4@3 ~ eb4@3 d4@3 ~ f4@27 ~@9",
AF: "[~@41 eb4@11 ~ eb4@6 ~ eb4@5 ~@2 d4@82 ~@43]/4",
})).s("gm_alto_sax").gain(0.45).pan(0.4)
// other · french horn
const french_horn = note(`<
~@13 A B@7 C@2 D@8 E F G ~@7 H@4 I@8 J@2 K@2 L@7 ~@9 M@2 N@4 O@2 P@3 ~ Q@2 R@8 ~@2 S@4 ~
>`.pickRestart({
A: "d4 c4 d4@2",
B: "[g4@47 c5@47 ~ d4@29 f4@17 ~ d4@29 ~ f4@17 ~ g4@41 a4@3 bb4@3 c5@41 ~ f4@2 ~ g4@3 f4@46 ~ eb4@4]/7",
C: "[~@20 f4@24 g4@51 ~]/2",
D: "[~@19 g4@23 ~ f4@29 a4@17 ~ bb4@29 ~ a4@17 ~ g4@47 f4@47 ~ eb4@95 ~@11 f3@12 g3@12 a3@12 bb3@9, ~@82 d4@11 ~@3]/8",
E: "~ c4@4 d4@4 eb4@4 f4@3", F: "~ g4@6 a4@6 bb4@6 c5@5", G: "~ d5@6 eb5@6 f5@6 ~@5",
H: "[~@34 g4@71 a4@24 f4@50 ~@13]/4",
I: "[~@32 g4@41 a4@3 bb4@3 c5@41 ~ f4@2 ~ g4@3 f4@29 f4@17 ~ d4@29 ~ f4@17 ~ g4@47 f4@47 ~ f4@46 ~ eb4@20]/8",
J: "[~@4 f4@24 g4@51 ~@17]/2", K: "[~@3 g4@23 ~ f4@29 a4@17 ~ bb4@22]/2",
L: "[~@8 a4@17 ~ g4@47 f4@47 ~ eb4@95 ~ d4@95 ~@24]/7", M: "[~@7 bb3@12 g3@17 a3@3 bb3@3 d4@22 ~@2 c4@24 a3@6]/2",
N: "[~@3 a3@8 ~ f3@6 d4@47 ~@30 d4@18 g3@29 a3@6 bb3@5 ~ c4@30 a3@8]/4",
O: "[~@4 g3@12 f3@29 bb3@6 d4@6 c4@12 d4@6 eb4@6 f4@15]/2",
P: "[~@3 bb3@11 ~ g4@71 a4@7 ~ bb4@7 ~ c5@7 ~ f4@21 ~@13]/3", Q: "[~@13 g4@47 f4@36]/2",
R: "[~@6 d4@3 f4@3 g4@12 a4@10 ~ bb4@12 c5@11 ~ f4@47 ~ g4@46 ~ f4@47 ~ eb4@48 ~ eb4@55 d4@64 ~@14]/8",
S: "[~@20 [a3,c4]@19 [bb3,d4]@149 ~@4]/4", // Am Bb
})).s("gm_french_horn").gain(0.3).pan(0.3)
// chords · string ensemble 2
const string_ensemble_2 = note("<A@3 ~@10 B C@7 D@4 E@8 F ~@4 G@7 H@8 I@4 J@7 ~@2 K@8 L@8 M@8 N@6 O@6>".pickRestart({
A: "[[bb2,c5,d5,f5]@143 ~]/3", B: "~ [bb4,d5,f5], bb2@47 ~, ~ bb3@3",
C: "[[eb2,bb3,eb4,g4]@47 [f2,c4,a4]@47 ~ [bb2,d4,bb4]@29 [a2,c4,a4]@17 ~ [g2,d4,g4,bb4]@29 ~ [f2,c4,f4,a4]@17 ~ [eb2,bb3,eb4,g4]@47 [f2,c4,a4]@47 ~ [d4,bb4]@47 [c4,eb4,ab4]@4, ~@47 f4@95 ~@95 f4@95 ~@4, ~@95 bb2@17]/7", // Eb F Bb Am Gm F Eb F …
D: "[~@20 [d4,f4]@23 ~ [eb2,eb4,g4]@47 [f2,a4,c5]@47 ~ [bb2,bb4,d5]@29 [a2,a4,c5]@17 ~ [g2,d4,g4,bb4]@6, ~@20 bb4@71 f4@95 ~@6]/4", // Dm Eb F Bb Am Gm
E: "[~@24 [f2,c4,f4,a4]@17 ~ [eb2,bb3,eb4,g4]@47 [d2,c4,f4,a4]@47 ~ c2@47 f2@47 ~ [bb1,d4,f4]@152, ~@137 bb4@247, ~@137 [eb4,g4]@95 ~@152]/8", // F Eb Dm7 Bb Eb
F: "~@14 bb3@23 ~@11",
G: "[~@83 bb4@47 [c4,a4]@24 d4@24 [eb3,eb4,g4]@47 ~@24 a4@24 [bb2,d4,bb4]@63, ~@35 bb2@95 [g2,g3,f4]@47 ~@48 [f2,f3,c4]@47 ~@64, ~@47 f3@83 ~@206, ~@59 d4@71 ~@95 f4@111, ~@71 f4@59 ~@24 bb4@95 ~@87]/7", // F Eb Bb G7 F5
H: "[~@8 [c4,a4]@24 [eb2,bb3,eb4,g4]@47 [f2,c4,a4]@47 ~ [bb2,d4,bb4]@29 [a2,c4,a4]@17 ~ [g2,d4,g4,bb4]@29 ~ [f2,c4,f4,a4]@17 ~ [eb2,bb3,eb4,g4]@47 [f2,c4,a4]@47 ~ [d4,bb4]@47 [c4,eb4,ab4]@20, ~@79 f4@95 ~@95 f4@95 ~@20, ~@317 bb2@67]/8", // F Eb F Bb Am Gm F Eb …
I: "[~@4 [d4,f4]@23 ~ [eb2,eb4,g4]@47 [f2,a4,c5]@47 ~ [bb2,bb4,d5]@29 [a2,a4,c5]@17 ~ [g2,d4,g4,bb4]@22, ~@4 bb4@71 f4@95 ~@22]/4", // Dm Eb F Bb Am Gm
J: "[~@8 [f2,c4,f4,a4]@17 ~ [eb2,bb3,eb4,g4]@47 [d2,c4,f4,a4]@47 ~ c2@47 f2@48 ~ [bb1,d4,f4]@94 ~@25, ~@121 bb4@190 ~@25, ~@121 [eb4,g4]@95 ~@120]/7", // F Eb Dm7 Bb Eb
K: "[~@58 f4@106 ~ [eb3,g4]@47 ~@24 [a3,eb4]@24 [bb2,bb3,d4]@95 [eb2,bb3,eb4,g4]@29, ~@11 bb2@71 ~@110, ~@17 f3@65 ~@24 [f3,f4]@71 ~@15, ~@46 d4@118 ~ [bb3,eb4]@71 ~@148]/8", // Eb Adim Bb Eb F Eb5
L: "[~@18 [f2,c4,a4]@47 ~ [bb2,d4,bb4]@29 [a2,c4,a4]@17 ~ [g2,d4,g4,bb4]@29 ~ [f2,c4,f4,a4]@17 ~ [eb2,bb3,eb4,g4]@47 [f2,c4,a4]@47 ~ [d4,bb4]@47 [c4,eb4,ab4]@23 ~ [d4,f4]@23 ~ [eb2,eb4,g4]@33, ~@18 f4@95 ~@95 f4@95 ~@24 bb4@57, ~@256 bb2@95 ~@33]/8", // F Bb Am Gm F Eb F Gm …
M: "[~@14 [f2,a4,c5]@47 ~ [bb2,bb4,d5]@29 [a2,a4,c5]@17 ~ [g2,d4,g4,bb4]@29 ~ [f2,c4,f4,a4]@17 ~ [eb2,bb3,eb4,g4]@47 [d2,c4,f4,a4]@47 ~ [eb2,bb3,eb4,g4]@47 [d2,c4,f4,a4]@47 ~ [eb2,bb3,eb4,g4]@37, ~@14 f4@95 ~@275]/8", // F Bb Am Gm F Eb Dm7 Eb …
N: "[~@10 [d2,f4,a4]@47 ~ c2@49 [f2,g4]@55 [bb2,d4,f4]@97 [eb2,g3,bb3,eb4]@29, ~@5 c4@48 ~@91, ~@58 bb4@201 ~@29, ~@58 eb4@103 ~@127]/6", // Dm Fsus2 Bb Eb
O: "[~@19 [f2,a3,c4,f4]@49 [bb1,c4,d4,f4]@187 ~@33]/6", // F Bb
})).s("gm_string_ensemble_2").gain(0.2).pan(0.6)
// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@33 A@6 ~@24 B@4 ~@35>".pickRestart({
A: "[~@38 [bb2,d4,f4]@94 ~ [eb3,g4]@47 ~@24 [a3,eb4]@24 [bb2,bb3]@47 ~@13, ~@38 bb3@165 ~@85, ~@133 eb4@71 ~@84, ~@180 [f3,f4]@95 ~@13]/6", // Bb Eb Adim Bb F
B: "[~@24 [eb3,g4]@47 ~@24 [a3,eb4]@24 [bb2,bb3]@47 ~@26, ~@24 [bb3,eb4]@71 ~@97, ~@71 [f3,f4]@95 ~@26]/4", // Eb Adim Bb Eb5 F
})).s("gm_string_ensemble_2").gain(0.1).pan(0.6)
// other · string ensemble 1
const string_ensemble_1 = note(`<
~@20 A@3 B@3 C D@8 ~@3 E@8 F@7 G@2 H@2 I@7 ~@3 J@8 K@5 L@7 M@2 N@2 O@8 ~@3
>`.pickRestart({
A: "[~@44 c5@15 ab4@3 bb4@3 c5@3 d5@24 g5@17 a5@3 bb5@3 g6@29]/3",
B: "[~@7 eb6@12 c6@12 f5@12 f6@83 f6@6 d6@6 g6@6]/3", C: "~@11 f5@6 g5@6 bb5@6 f6@19",
D: "[~@23 a6@18 ~@237 f5@47 ~ [bb4,f5]@58, ~@41 bb6@284 ~@59, ~@88 bb5@237 ~@59]/8", // Bb5
E: "[~@23 bb5@12 f5@47 ~ d6@35 f5@12 a5@24 bb5@8 c6@7 ~ d6@6 ~@2 d6@17 eb6@6 bb6@53 ~ c7@18 f6@94 ~@17]/8",
F: "[~@19 [g4,g5]@12 [eb4,eb5]@47 ~ [f4,f5]@27 ~@2 [f4,f5]@18 [bb4,bb5]@29 ~ [a4,a5]@17 ~ [g4,g5]@41 [a4,a5]@3 [bb4,bb5]@3 [c5,c6]@36 [f4,f5]@12 [d5,d6]@35 [bb4,bb5]@12 [eb5,eb6]@20]/7", // G Eb F Bb A G A Bb …
G: "[~@4 [f5,f6]@24 [bb5,bb6]@59 [a5,a6]@9]/2", // F Bb A
H: "[~@3 [g5,g6]@12 [f5,f6]@11 ~ [f5,f6]@29 [a5,a6]@18 [bb5,bb6]@22]/2", // G F A Bb
I: "[~@8 [a5,a6]@18 [g5,g6]@46 ~ [f5,f6]@47 ~ [eb5,eb6]@96 [d5,d6]@95 ~@24]/7", // A G F Eb D
J: "[~@22 [d5,d6]@64 ~ [f4,f5]@6 [d5,d6]@8 ~ [eb5,eb6]@7 ~@2 [f5,f6]@6 [f5,f6]@17 [eb5,eb6]@3 [d5,d6]@3 [eb5,eb6]@47 ~ [c5,c6]@12 [c5,c6]@10 ~@2 [c5,c6]@6 [d5,d6]@11 [d5,d6]@77 ~ [g5,g6]@46 ~ [c5,c6]@24 [a4,a5]@6]/8", // D F D Eb F Eb D Eb …
K: "[~@3 [bb4,bb5]@9 [c5,c6]@6 [f5,f6]@46 ~ [bb5,bb6]@30 [a5,a6]@18 [g5,g6]@82 ~ [f5,f6]@44]/5", // Bb C F Bb A G F
L: "[~@3 [bb4,bb5]@12 [c5,c6]@24 [f5,f6]@24 [bb5,bb6]@70 ~ [a5,a6]@9 [bb5,bb6]@8 ~ [c6,c7]@6 [f5,f6]@29 [c6,c7]@17 ~ [bb5,bb6]@30 [a5,a6]@18 [g5,g6]@47 [f5,f6]@36]/7", // Bb C F Bb A Bb C F …
M: "[[d5,d6]@11 ~ [g5,g6]@47 [f5,f6]@37]/2", N: "[~@5 [d5,d6]@6 [g5,g6]@47 [a5,a6]@38]/2",
O: "[~@59 bb5@325, ~@5 bb6@187]/8",
})).s("gm_string_ensemble_1").gain(0.12).pan(0.4)
// chords · piano
const piano = note(`<
A@2 B C D@2 E@3 F G@3 H I@4 J@5 K@8 L@2 M@5 N@7 O@8 P@4 Q@3 R@7 S@7 T@6 U@3 V@4 W@3 X Y Z@4 AA@6
>`.pickRestart({
A: "[~@15 f3, d5@9 f4 bb4 d5@2 bb4 c5@2, bb2@3 c5@3 f4@2, ~ f4@2 c5@2 bb4@3 [bb2,f5]@8, ~@2 bb4@2 f4@3 bb3@9]/2", // Bb5
B: "~@18 d4@29 ~, bb2@47 ~, d4@3 ~@5, bb3@12 bb3@35 ~, ~@6 f3@41 ~",
C: "~@7 f4, bb2@47 ~, ~@6 f3@12 f3@29 ~, ~@12 d4@12 d4@23 ~, ~@33 eb4@13 ~@2",
D: "[~@36 eb4@11 ~@25 a3@23 ~, g3@12 bb2@12 [g3,eb4]@6 bb3@17 ~ [c4,f4]@18 bb3@29 ~, bb2@2 eb3@4 eb2@41 f2@48 ~, eb2 bb3@17 eb4 eb3@28 ~ bb3@12 f3@36, ~ f4@45 ~@7 c3@42 ~]/2", // Cm F5
E: "[~@78 bb3@11 ~ [f2,eb4]@6 ~@42 f2@6, bb2@24 d4@65 ~ f4@24 d4@29 ~, d4@18 bb3@42 bb3@6 c4@23 ~ bb3@12 f3@41 ~, bb3@12 f3@36 ~@6 f3@35 ~ f3@6 d4@12 bb3@35 ~, ~@6 d3@42 bb2@41 ~@7 [bb2,c4]@47 ~]/3", // F7 Bbsus2
F: "~@7 f4, [bb1,bb2]@47 ~, ~@6 f3@12 f3@29 ~, ~@12 d4@12 d4@23 ~, ~@33 eb4@13 ~@2", // Bb
G: "[~@36 eb4@11 ~@61 bb3@6 ~@6 d4@23 ~, g3@12 bb2@12 [g3,eb4]@6 bb3@17 ~ c4@12 f3@6 bb3@6 c4@6 f3@6 c4@6 f3@11 ~@7 f3@35 ~, bb2@2 eb3@4 eb2@41 f2@48 ~ bb1@47 ~, eb2 bb3@17 eb4 eb3@28 ~ bb3@5 c3@42 ~@7 bb2@41 ~, ~ f4@45 ~@3 f4@47 [a3,c4]@12 d4@6 bb3@29 ~]/3", // Cm Am
H: "~@42 bb4@5 ~, bb2@24 bb2@23 ~, ~@6 bb3@24 bb3@17 ~, ~@12 [c4,f4]@35 ~, ~@18 d4@18 d4@11 ~", // F5
I: "[~@35 bb3@6 eb4@5 ~@31 f4@6 ~@6 f3@5 ~ [bb2,d4,f4,bb4]@28 ~ [a2,c4,f4,a4]@18 [g2,d4,g4,bb4]@29 ~ [f2,f4,a4]@18 [eb2,g4]@2, eb2@46 ~ f2@48 ~@97, [bb3,eb4,g4]@35 ~@12 [c4,f4,a4]@24 c4@21 ~@80 c4@14 ~@6, ~@29 eb3@13 ~@23 f3@22 ~@105, ~@83 a4@11 ~@98]/4", // Bb F Gm F Eb F
J: "[~@33 g4@11 ~@43 f4@5 ~ [bb2,f4]@41 bb3@3 ~@3 [bb2,eb4,ab4,c5]@22 ~@2 [bb2,bb4,d5]@24 eb3@16 ~@25 eb3@5 ~ [f2,c4,f4,a4]@5, ~@15 eb3@27 ~@3 f2@47 ~@96 eb2@42 ~@10, ~@21 bb3@19 ~@5 [c4,f4,a4]@36 c4@10 ~@2 bb4@47 ~@24 f4@21 ~@3 [eb4,g4]@23 bb3@20 ~@9, ~@27 eb4@14 ~@34 f3@16 ~@114 eb3@18 g4@10 ~@7, ~@217 eb4@16 ~@7]/5", // Bb5 Ab Bb F Eb
K: "[~@31 f4@6 c4@4 ~@25 bb3@4 ~@2 [a2,a3,c4,a4]@17 ~ [g2,d4,g4,bb4]@29 ~ [f2,f4,a4]@17 ~@18 eb4@29 ~@13 c4@16 ~@8 f4@6 a4@4 ~@2 c3@22 ~@13 eb4@6 g4@3 ~@3 [f2,eb4,g4,bb4]@46 ~@49 f5@9, ~ f3@16 ~@2 f3@11 ~ f3@10 ~@2 [bb2,d4,f4,bb4]@29 ~@66 [eb2,g4]@47 d2@47 ~ c2@47 ~@104, ~@7 c4@23 ~@60 g3@18 ~@12 [f3,c4]@13 ~@11 eb3@35 ~@12 d3@36 ~@6 bb4@36 ~@94 c5@12 ~@9, ~@13 f4@12 a4@12 ~@35 f4@13 ~@64 bb3@33 ~@3 a4@30 c4@41 c3@22 ~@50 [bb2,f3,d4]@56, ~@233 eb4@29 c4@12 ~@95 bb4@15]/8", // Am Gm F Eb Bb Eb F5 Bb
L: "[~@13 bb3@14 ~@5, ~@9 c5@4 ~@19, ~@11 bb4@6 ~@15]/2",
M: "[~@85 f3@18 ~@24 d4@6 eb3@3 ~@32 bb3@11 ~@25 a3@22 ~@2 [bb1,bb2,f3,bb3,d4]@12, ~@38 bb1@93 ~@2 [eb2,d4]@47 [f2,f3,bb3,c4]@46 ~@14, ~@38 d4@71 bb3@22 ~@2 bb3@35 ~@72, ~@38 bb3@65 f3@28 ~@2 g3@29 g3@17 ~@61, ~@38 f3@29 bb2@51 c4@13 ~@25 eb3@23 ~@61]/5", // Bb Ebmaj7 Fsus4
N: "[~@71 c4@9 ~@44 d4@5 ~ [g2,f3,a3,c4]@17 ~ g2@18 g2@10 ~@43 eb2@5 ~ f2@24 ~@12 [f2,a3]@6 c4@4 ~@2 bb2@23 ~@30 [bb2,f3]@10, ~@5 bb1@75 ~@3 bb1@46 ~@49 eb2@35 eb4@11 ~@25 f2@12 ~@12 bb1@41 bb1@22, ~@35 bb2@45 ~@3 f3@23 bb2@22 ~@50 g3@17 eb3@29 ~ f3@30 f3@15 ~@3 f3@35 f3@18 ~@10, ~@41 f3@39 ~@3 bb3@29 f3@17 ~ d3@46 ~@2 bb3@23 g3@23 ~ a3@36 ~@12 [bb3,d4]@63, ~@47 bb3@6 c4@12 bb3@15 ~@3 d4@35 bb3@11 ~@19 [f3,bb3,d4]@28 ~@2 eb4@29 bb3@17 ~ c4@42 ~@29 bb2@30 ~@10]/7", // F Bb5 Bb
O: "[~@8 [f3,a3,c4]@12 ~@6 bb2@5 ~@36 bb3@6 eb4@5 ~@31 f4@6 ~@6 f3@5 ~ [bb2,d4,f4,bb4]@28 ~ [a2,c4,f4,a4]@18 [g2,d4,g4,bb4]@29 ~ [f2,f4,a4]@18 ~@35 g4@11 ~@43 f4@5 ~ [bb2,f4]@41 bb3@3 ~@3 [bb2,eb4,ab4,c5]@20, ~@8 bb1@23 ~ eb2@46 ~ f2@48 ~@95 eb2@45 ~@2 f2@47 ~@68, ~@8 bb2@18 ~@35 eb3@13 ~@23 f3@22 ~@121 eb3@27 ~@32 f3@16 ~@69, ~@20 [f3,a3,c4]@11 ~ [bb3,eb4,g4]@35 ~@12 [c4,f4,a4]@24 c4@21 ~@80 c4@14 ~@27 bb3@19 ~@5 [c4,f4,a4]@36 c4@10 ~@69, ~@115 a4@11 ~@96 g4@23 ~@6 eb4@14 ~@52 bb4@47 ~@20]/8", // F Bb F Gm F Bb5 Ab F …
P: "[~@4 [bb2,bb4,d5]@24 eb3@16 ~@25 eb3@5 ~@37 f4@6 c4@4 ~@25 bb3@4 ~@2 [a2,a3,c4,a4]@17 ~ [g2,d4,g4,bb4]@22, ~@4 f4@21 ~@3 eb2@42 ~@5 f2@47 ~ [bb2,d4,f4,bb4]@29 ~@40, ~@28 [eb4,g4]@23 bb3@20 ~@4 [c4,f4,a4]@12 c4@23 ~@82, ~@46 eb3@17 g4@10 ~@20 f4@12 a4@12 ~@35 f4@13 ~@27, ~@57 eb4@16 ~@8 f3@16 ~@2 f3@11 ~ f3@10 ~@49 g3@18 ~@4]/4", // Bb Am Gm Bb Eb F
Q: "[~@8 [f2,f4,a4]@17 ~@19 eb4@29 ~@12 c4@16 ~@8 f4@6 a4@4 ~@2 [c2,c3,eb4,bb4]@23, ~@8 [f3,c4]@13 ~@5 [eb2,g4]@47 d2@47 ~@24, ~@32 eb3@35 ~@12 d3@36 ~@29, ~@38 bb3@33 ~@2 a4@30 c4@41]/3", // F Cm7 F5 Eb
R: "[~@12 eb4@6 g4@3 ~@3 [f2,eb4,g4,bb4]@47 ~@43 d4@6 ~@42 d4@5 ~@36 eb4@10 ~@2 [bb3,eb4]@24 ~@12 f2@11 ~@42 d4@5 ~@19 [bb1,bb2,bb3,d4]@8, c3@22 ~@51 [bb1,f4]@47 ~@18 f3@29 ~@18 eb3@28 ~@26 [f3,a3]@23 ~ f3@23 bb2@23 ~@7 bb2@11 ~@9, ~@6 c4@12 ~@55 d4@41 ~@6 f4@30 d4@6 f4@11 ~ eb4@29 bb3@16 ~@2 f4@47 ~ d4@35 bb3@11 ~@27, ~@73 bb3@35 bb3@12 d4@24 bb3@23 ~ bb3@23 g3@22 ~@50 bb3@29 f3@17 ~ f3@12 f3@14, ~@102 d3@18 [bb2,bb4]@47 ~ [eb2,g4]@46 ~ f2@36 ~@12 bb1@46 ~ [bb1,a3,c4]@17 ~@9]/7", // Eb Eb5 Bb Bb5 F Bb Eb F
S: "[~@4 bb1@5 ~ [f2,f3,g3,bb3,eb4]@12 ~@29 bb2@17 ~@37 bb3@9 ~@44 eb4@6 [f2,f3,bb3,eb4,f4]@21 f3@3 ~@12 f3@11 ~@90 [bb1,f3]@5 ~ [eb2,bb3,eb4,g4]@29, ~@22 [bb1,f3,bb3,c4,d4]@46 ~ bb1@45 ~@3 eb2@47 ~@24 [f2,a3,c4,f4]@22 ~@2 bb1@41 bb2@6 bb1@36 bb3@11 ~@30, ~@75 f3@18 bb2@21 ~@3 g3@23 eb3@23 ~@49 f3@53 bb2@12 bb3@12 d4@17 ~@30, ~@81 bb3@18 f3@15 ~@3 bb3@29 g3@17 ~@49 bb3@59 f3@30 ~@35, ~@87 d4@27 ~@3 eb4@35 bb3@12 ~@48 d4@71 bb2@22 ~@31]/7", // Eb Ebsus2 Bb5 Eb Bb F
T: "[~@6 bb3@6 eb4@5 ~@31 f4@6 ~@6 f3@5 ~ [bb2,d4,f4,bb4]@28 ~ [a2,c4,f4,a4]@18 [g2,d4,g4,bb4]@29 ~ [f2,f4,a4]@18 ~@35 g4@11 ~@43 f4@5 ~ [bb2,f4,bb4]@32, eb3@13 ~@5 f2@48 ~@95 eb2@45 ~@2 f2@47 ~@33, ~@18 [c4,f4,a4]@24 c4@21 ~@80 c4@14 ~@27 bb3@19 ~@5 [c4,f4,a4]@36 c4@10 ~@34, ~@36 f3@22 ~@120 eb3@27 ~@33 f3@16 ~@34, ~@54 a4@11 ~@96 g4@23 ~@6 eb4@14 ~@84]/6", // Bb F Gm F Bb5 F
U: "[~@9 bb3@3 ~@3 [bb2,eb4,ab4,c5]@22 ~@2 [bb2,bb4,d5]@24 eb3@16 ~@25 eb3@5 ~@31 a4@4, ~@39 f4@21 ~@3 eb2@42 ~@5 f2@34, ~@63 [eb4,g4]@23 bb3@20 ~@4 [c4,f4,a4]@12 c4@22, ~@40 eb3@9 g4@5 ~@10 f4@6 ~@2, ~@46 eb4@8 ~@4 f3@8 ~ f3@5]/3", // Ab Bb Eb F
V: "[~@2 f4@6 c4@4 ~@25 bb3@4 ~@2 [a2,a3,c4,a4]@17 ~ [g2,d4,g4,bb4]@29 ~ [f2,f4,a4]@17 ~@18 eb4@29 ~@13 c4@15 ~@3 c4@6, ~@2 f3@10 ~@2 [bb2,d4,f4,bb4]@29 f4@13 ~@5 g3@18 ~@12 [f3,c4]@13 ~@5 [eb2,g4]@47 d2@36, ~@115 eb3@35 ~@12 d3@30, ~@121 bb3@33 ~@2 a4@31 ~@5]/4", // Am Gm F Bb F5 Eb
W: "[~@6 a4@5 ~ g4@3 ~@38 g4@6 ~@42 d4@5 ~@30 g4@6 [eb2,bb3]@2, f4@11 ~ eb2@29 bb3@17 ~ d4@24 a3@23 ~ eb4@12 bb3@23 ~@2, ~@18 bb3@17 eb3@23 ~ a3@18 d3@12 d4@12 ~@6 g4@23 eb3@14, ~@24 eb4@23 [eb2,eb4]@12 d2@47 ~ eb2@35 ~@2, ~@29 g4@24 ~@6 f4@36 [d3,f4]@11 ~ bb3@6 eb3@12 eb4@19]/3", // Eb5 Eb Dm
X: "~@2 eb4@3 ~@15 d4@3 f4, ~@5 [d2,f4]@19, ~@5 d4@9 d4@6 ~@4, ~@5 a3@6 a3@13, ~@8 d3@9 d3@7", // Dm
Y: "~@4 a4@5 ~@30 g4@7 [c2,eb4]@2, ~@5 [c2,bb4]@19, ~@10 g4@23 c3@15, ~@5 eb4@6 c4@13, ~@5 c4@3 c3@6 eb4@9 ~", // Cm C7
Z: "[~@4 c4@6 ~ [f2,f3,c4,eb4,g4,bb4]@55 ~@90 f4@6 ~ [bb3,f4]@29, ~@11 [bb2,c4,bb4]@16 [eb2,g3]@5, ~@22 f4@27 eb4@5 ~@10, ~@11 d4@12 d4@4 ~@5, ~@19 bb3@8 ~@5]/4", // Cm7 Bb5 Bbsus2 Eb
AA: "[~@19 [f2,f3,c4,f4]@49 [a3,c4]@18 ~ [bb3,d4]@170 ~@31, ~ eb3@18 ~@49 [bb2,f4]@188 ~@32, ~@7 g3@12 ~@269, ~@13 bb3@55 ~@220]/6", // F5 Am Bb Bb5
})).s("gm_piano").gain(0.33).pan(0.4)
// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
~@8 A B C D A E@8 F@4 G@5 ~@3 H@7 ~@5 I@8 J@4 K@5 L M N O@2 P@6 ~@21 Q@3 ~@5
>`.pickRestart({
A: "~@7 f3, bb2, ~ f3@5 bb3@2, ~ d4 f4@2, ~@3 bb3@2 d4@3", B: "~@7 f3, bb2, ~ bb3@4 d4@3, ~ d4 f4@2, ~@3 f3@3 bb3@2",
C: "~@7 eb4, eb3, ~ bb3@3 bb3@4, ~@2 g4@3 g3@3, ~@3 eb4@3 g4@2",
D: "~@7 a3, f3@3 c4, ~ bb3@7, ~ f4 a4@2, ~@3 c4@2 f4@3",
E: "[~@89 bb3@6 ~@42 f3@6 ~@23 f4@6 ~ f4@17 ~@24 d4@5 ~ [a3,f4]@17 ~@42 g3@6 ~@42 a3@6 ~@41 f3@6 bb2@4, bb2@48 eb3@5 bb3@6 g4@6 bb3@6 eb4@6 bb3@6 g4@12 ~@24 eb4@23 ~@12 d4@17 ~@78 eb4@18 eb4@18 ~@12 f4@18 f4@18 ~@11 d4@12 f4@23 ~@5, ~@6 bb3@24 d4@65 ~@6 f3@12 f3@18 a3@12 ~@5 f3@23 ~@25 g3@12 g3@11 ~@19 eb3@47 f3@47 ~ bb2@47 ~@4, ~@12 d4@12 f4@71 ~@12 c4@18 c4@18 ~@17 bb3@11 ~@31 bb3@17 ~@24 bb3@12 bb3@18 bb3@12 ~@6 c4@12 c4@18 c4@12 ~@5 f3@30 bb3@12 ~@4, ~@18 f3@18 bb3@6 f3@53 a2@47 ~ bb2@29 [a2,f3,c4]@17 ~ g2@29 [f2,f3]@18 ~@24 g4@23 ~@25 a4@23 ~@18 bb3@12 d4@18 ~@4]/8", // Dm F
F: "[~@14 ab3@6 ~@18 bb3@6 ~@41 bb3@6 ~@42 f3@6 ~@23 f4@6 ~ f4@17 g2@6, ~@2 eb3@18 bb2@23 ~@12 g4@24 g4@12 ~@24 eb4@23 ~@12 d4@17 ~@25, ~@8 c4@12 ~@6 f3@18 eb3@47 a2@47 ~ bb2@29 [a2,f3,c4]@17 ~@7, ~@32 d4@12 ~@5 bb3@12 bb3@12 bb3@12 ~@12 f3@12 f3@18 a3@12 ~@5 f3@23 ~@25, ~@67 eb4@23 ~@13 c4@18 c4@18 ~@17 bb3@11 ~@25]/4", // F
G: "[~@18 d4@5 ~ [f3,a3,f4]@17 ~@42 eb4@6 ~@42 d4@6 ~@41 c4@5 ~@2 g4@47 ~@8, g3@12 g3@11 f2@18 ~@7 bb3@17 bb3@23 ~@7 a3@18 a3@12 f4@12 ~@11 eb4@18 eb3@6 eb4@12 ~@56, ~@6 bb3@17 ~@19 eb3@47 d3@47 ~ c3@47 ~@56, ~@53 g4@18 g3@18 ~@18 c4@29 ~@18 bb3@29 ~ [bb3,eb4]@47 ~@9, ~@59 eb4@18 g4@12 ~@12 f4@18 f3@18 ~@6 g3@17 g3@23 eb3@48 ~@9]/5", // F Eb5
H: "[~@79 f3@5 ~@43 f3@5 ~@42 bb3@5 ~@19 bb3@6 ~@18 a3@5 ~@42 f3@5 ~@43 f3@4 ~@15, ~@38 bb2@46 ~ bb2@45 ~@26 f4@23 ~@72 d4@23 ~@25 d4@22 ~@15, ~@44 f3@11 f3@12 f3@12 ~@12 f3@12 f3@12 f3@12 ~@6 eb3@47 f3@24 f3@22 ~@2 bb2@47 bb2@46 ~@15, ~@49 bb3@24 bb3@10 ~@14 bb3@24 bb3@10 ~@8 bb3@11 bb3@12 bb3@12 ~@12 bb3@12 ~@12 a3@12 ~@12 f3@11 f3@12 f3@12 ~@12 f3@12 f3@12 f3@12 ~@19, ~@61 d4@22 ~@26 d4@21 ~@14 eb4@24 eb4@11 ~@13 c4@12 ~@12 c4@10 ~@14 bb3@23 bb3@11 ~@13 bb3@24 bb3@10 ~@15]/7",
I: "[~@73 bb3@6 ~@42 f3@6 ~@23 f4@6 ~ [c4,f4]@17 ~@24 d4@5 ~@2 f4@17 ~@41 g3@6 ~@42 a3@6 ~@41 f3@6 ~@12 c4@6 ab3@2, ~@32 eb3@47 a2@47 ~ bb2@29 [a2,f3]@17 ~ g2@29 f2@18 ~@24 g4@23 ~@13 f4@18 f4@18 ~@12 d4@11 f4@23 ~@21, ~@38 bb3@11 bb3@12 bb3@12 ~@12 f3@12 f3@18 a3@12 ~@6 f3@23 ~@24 g3@12 g3@11 ~ [f3,a3]@18 eb3@47 f3@47 ~ bb2@47 bb2@20, ~@44 g4@23 g4@12 ~@24 eb4@23 ~@13 d4@17 ~@78 eb4@17 eb4@18 ~@24 a4@23 ~@19 bb3@11 d4@18 ~@20, ~@55 eb4@23 ~@13 c4@18 c4@18 ~@17 bb3@11 ~@31 bb3@17 ~@25 bb3@12 bb3@17 bb3@12 ~@6 c4@12 c4@18 c4@12 ~@6 f3@29 bb3@12 ~@6 eb3@14]/8", // F5 Dm F
J: "[~@22 bb3@6 ~@41 bb3@6 ~@42 f3@6 ~@23 f4@6 ~ [c4,f4]@17 ~@18 g3@4, ~@4 bb2@23 ~@13 g4@23 g4@12 ~@24 eb4@23 ~@13 d4@17 ~@40, ~@10 f3@18 eb3@47 a2@47 ~ bb2@29 [a2,f3]@17 ~ g2@22, ~@16 d4@12 ~@6 bb3@12 bb3@11 bb3@12 ~@12 f3@12 f3@18 a3@12 ~@6 f3@23 ~@24 g3@12 ~@4, ~@51 eb4@23 ~@13 c4@18 c4@18 ~@18 bb3@11 ~@30 bb3@10]/4", // F5 Dm
K: "[~@2 d4@5 ~@2 f4@17 ~@41 eb4@6 ~@42 d4@6 ~@41 c4@6 ~ g4@47 ~@24, ~@7 f2@18 ~@7 bb3@17 bb3@23 ~@7 a3@18 a3@12 f4@12 ~@12 eb4@17 eb3@6 eb4@12 ~@72, ~@8 [f3,a3]@18 eb3@47 d3@47 ~ c3@47 [eb3,bb3,eb4]@48 ~@24, ~@38 g4@17 g3@18 ~@18 c4@29 ~@19 bb3@29 ~@72, ~@44 eb4@17 g4@12 ~@12 f4@18 f3@18 ~@6 g3@17 g3@23 ~@73]/5", // F Eb5
L: "~@42 f3@5 ~", M: "~ d4@9 ~ eb4@7 f4@5 ~@2 f4@16 ~ eb4@3 d4@3", N: "eb4@33 ~@8 c4@5 ~@2",
O: "[c4@11 ~ c4@10 ~ c4@6 ~ d4@10 ~ d4@37 ~@18, ~@29 db4@2 ~@65]/2",
P: "[~@4 f4@6 bb4@6 c5@4 ~@2 d5@37 ~@28 f4@4 ~@2 d5@9 ~ eb5@7 f5@5 ~@2 f5@16 ~@2 eb5@2 d5@2 ~@2 eb5@30 ~@11 c5@5 ~ c5@11 ~@2 c5@9 ~@2 c5@7 d5@10 ~@2 d5@40 ~@17]/6",
Q: "[~@37 f3@5 ~ d4@9 ~ eb4@8 f4@5 ~@2 f4@16 ~ eb4@3 d4@3 ~ eb4@34 ~@18]/3",
})).s("gm_acoustic_guitar_nylon").gain(0.15).pan(0.6)
// other · orchestral harp
const orchestral_harp = note("<~@21 A@2 ~@30 B ~@18 C D ~@14 E F ~@12>".pickRestart({
A: "[~@20 d4 eb4 ~ f4 g4 ~ ab4 bb4 ~ c5 d5 ~ eb5 f5 ~ g5 ab5 ~ bb5 c6 ~ d6 eb6 ~ f6 g6@10 ~@41]/2",
B: "~@4 d4 eb4 ~ f4 g4 ~ ab4 bb4 ~ c5 d5 ~ eb5 f5 ~ g5 ab5 ~ bb5 c6 ~ d6 eb6 ~ f6 g6@10 ~@9",
C: "~@43 d4 eb4 ~ f4 g4", D: "~ ab4 bb4 ~ c5 d5 ~ eb5 f5 ~ g5 ab5 ~ bb5 c6 ~ d6 eb6 ~ f6 g6@10 ~@18",
E: "~@11 f6 ~@23 d4 eb4 ~ f4 g4 ~ a4 bb4 ~ c5 d5 ~ eb5", F: "f5 ~ g5 a5 ~ bb5 c6 ~ d6 eb6 ~@2 g6@10 ~@26",
})).s("gm_orchestral_harp").gain(0.22).pan(0.6)
// chords · electric guitar clean
const electric_guitar_clean = note("<~@66 A@2 B ~@3 C@2 ~@28>".pickRestart({
A: "[~@35 bb3@13, ~@4 bb4@85 ~@7, ~@10 f4@12 f4@18 f4@18 f4@31 ~@7, ~@8 bb3@9 bb3@9 bb3@9 ~@13, ~@14 c4@9 c4@9 c4@13 ~@3]/2",
B: "~@15 bb3@5 ~ f3@27, ~@9 c4@10 ~@29", C: "[~@19 bb2@34 ~@43, ~ bb3@11 ~ bb3@12 ~@71, ~@7 c4@10 ~@79]/2",
})).s("gm_electric_guitar_clean").gain(0.22).pan(0.8)
// drums · kick
const kick = s("bd").struct(`<
~@14 A B C@2 D E F G H I J@2 K L M ~@4 N O@2 P@2 Q@2 R@2 S@2 T@2 U V W@2 X Y Z AA AB AC AD@2 AE AF AG AF AG@2 AH@2
AI@2 AJ@2 AK@2 AL@2 AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA@2 BB BC BD ~@9
>`.pickRestart({
A: "x ~@40 x ~@5 x", B: "~@47 x", C: "~@14 x ~@8 x", D: "~@13 x ~ x", E: "~@15 x", F: "~@19 x ~@2 x ~", G: "~@11 x",
H: "~@37 x ~@5 x ~@4", I: "~@43 x ~@4", J: "~@4 x ~@2 x", K: "~@35 x ~@5 x ~@6", L: "~@41 x ~@6",
M: "~@17 x ~@2 x ~@3", N: "~@19 x ~@4", O: "~@31 x ~@5 x ~@10", P: "~@5 x!2 ~", Q: "~@29 x ~@5 x ~@12",
// … 144 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.