0:00/0:00
// Our Love Is Here to Stay — Nat King Cole
// 120 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 108 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
~ A B@2 C D E@3 F@8 G H@3 I@8 J@3 ~ K L M@2 N@2 O P@3 Q@6 R S T U V@4 W@7 X Y Z AA AB@2 AC@2 AD@4 AE@5 AF AG AH AI
AJ@7 AK@2 AL@2 AM AN AO AP AQ@2 AR AS AT ~@3
>`.pickRestart({
A: "~@17 gb2@15, ~ c3@19 ~@12", B: "[~ f2@16 bb2@17 eb2@10 bb2 ~@5 ab2@8 c2@6]/2", C: "~ g2@8 c2@4 gb2@3",
D: "~@3 f2@16 b2@13", E: "[~@3 bb2@16 ab2@16 g2@14 ~ db3@2 c3@8 c2@8 f2@12 ~@2 ab2@2 a2@8 d2@4]/3",
F: "[~@5 g2@16 c2@16 f2@16 bb2@7 ~ d2@9 eb2@16 ab2@16 d2@13 d3@2 ~ g2@8 b2@9 c3@16 c2@16 f2@16 e2@8 f2@8 ab2@17 a2@16 bb2@2 ~@14 d2@8]/8",
G: "db2@8 ~ c2@13 c3@2 ~ gb2@7", H: "[~ c2@8 f2@16 bb2@17 a2@10 bb2@2 ~@4 ab2@16 ~@14 db2@2 ~@6]/3",
I: "[~@2 e2@8 ~ f2@13 f2@2 ~ b1@16 bb1@16 ab1@16 ~ g1@16 c2@8 e2@8 f2@8 ab2@7 ~ a2@8 d2@8 g2@16 ~ c2@13 gb2@2 ~ f2@8 a2@5 ~@3 bb2@8 d2@9 eb2@11 f2 ~ gb2 ~@2 g2@16 ab2@16 ~@2]/8",
J: "[~@6 d3@9 ~@5 g2@10 ~ c2@3 ~@5 e2@3 ~@5 f2@16 bb2@14 eb3@2 ~@17]/3", K: "~@17 c3@8 c2@7",
L: "~ c3@8 gb2@7 ~ f2@8 b2@7", M: "[~ bb2@8 d2@8 ~@17 ab1@8 ab2@8 g2@8 g1@6, ~@26 a1@11 ~@27]/2",
N: "[~@10 gb2@8 f2@8 ~ c3@8 f3@8 b2@8 bb2@8 bb1@5]/2", O: "~@11 ab1@7 ~@2 g1@5 g2@2 ~ db2@4",
P: "[~@4 c2@8 e2@8 a2@8 eb2@8 d2@8 gb2@9 g2@7 ~ db2@8 c2@8 e2@8 f2@8 b1@3]/3",
Q: "[~@5 bb1@8 d2@9 eb2@8 g2@8 ab2@8 eb3@8 d3@8 d2@8 g2@8 b2@9 c3@5 g2@2 ~ c2@8 d2@8 eb2@8 f2@8 g2@8 ab2@8 a2@8 ~ bb2@16 f2@16 bb1@8]/6",
R: "~@6 f2@2 ~@8 db2@8 ~ c2@7", S: "~@6 d3@2 ~ c3@8 gb2@9 ~@6", T: "~@7 b2@2 bb2@8 d2@8 ~@7",
U: "~@18 ab2@5 ~@3 g2@4 ~@2",
V: "[~@10 gb2@4 ~@4 gb2@7 ~ f2@14 gb2 ~@2 b1@6 ~@2 eb3@8 d3@8 bb2@8 f2@8 ab2@8 g2@17 c2@13 bb1@2 ~ a1@4]/4",
W: "[~@4 eb2@8 d2@8 gb2@9 g2@16 c2@8 e2@8 f2@10 ~@4 b2@2 bb2@8 d2@8 eb2@14 eb3@2 ~ g2@8 eb3@8 ~@8 eb3@8 a2@8 d3@8 g2@8 ~ db2@8 ~@8 e2@8 f2@8 b2@8 bb2@8 d2@7 ~ eb2, ~@63 ab2@8 ~@41]/7",
X: "~@5 eb2 ~ g1@9 ab1@8 a1@8", Y: "bb1@8 c2@8 d2@8 db2@7 ~", Z: "c2@9 c3@7 ~ gb2@8 c3@7",
AA: "~ f2@8 b2@8 bb2@8 d2@7", AB: "[~ a2@9 eb2@8 bb2@8 ab2@8 g2@8 db2@8 c2@8 gb2@6]/2",
AC: "[eb2@2 ~ f2@8 a1@8 c2@8 b1@8 bb1@8 bb2@8 ab2@8 ab1@5]/2",
AD: "[~@9 db2@2 g2@9 c2@8 gb2@8 f2@8 ab2@8 a2@8 d3@9 g2@8 db3@8 c3@8 e3@8 f3@8 b2@8 bb2@8 d3@3]/4",
AE: "[~@6 eb3@2 bb2 ~@2 g2@3 eb2@8 ab2@8 c2@8 d2@8 gb2@8 g2@8 b2@9 c3@8 g2@8 c3@8 g2@8 c3@8 f2@8 e2@8 f2@8 ab2@8 ~ ab1@8 a1@7 ~]/5",
AF: "db3 d3 f2 bb1", AG: "db2@8 ~ c2@9 ~ g2@2 ~ c3@3 gb2@7", AH: "~@6 gb2@2 ~ f2@16 bb2@7",
AI: "~ d2@10 ~@4 a2@2 ~@9 ab2@6",
AJ: "[~@2 ab1@8 g1@7 ~ g2@8 gb2@8 c3@9 f2@16 b2@13 ~@3 bb2@10 ~@4 f2@2 ab2@8 ab1@8 ~ g1@8 db2@8 c2@8 e2@8 f2@8 ab2@8 a2@8 d2@8 g2@10 ~ d2 ~@2 db2@2 ~ c2@10 ~ eb2 ~ e2@2 ~ f2@11 ab2 ~@2 a2@2 bb2 ~@2]/7",
AK: "[~@3 bb2@2 d2@8 eb2@8 ~ eb3@8 g2@16 ab2@14 a2@2 ~@2]/2",
AL: "[~@4 d2@10 ~ g2@13 gb2 ~@2 c2@8 c3@8 f2@14 bb2@2 ~]/2", AM: "~@5 f2@2 bb2 ~@5 ab2@2 g2@2 ~@4 db2@11",
AN: "c2@3 ~@5 e1@3 ~@5 f1@14 bb1@2", AO: "~@3 bb2 ab2@2 ~ g2 ~@3 db3@5", AP: "~ c3@3 ~@5 gb2@3 ~@5 f2@13 ~@2",
AQ: "[~ bb2@13 ~@3 a2@2 ~@4 a2 ~@2 a2@5 ab2@2 ~@6 ab2@2 ~ ab2@5 g2@2 ~@6 g2@2 ~@6 gb2]/2",
AR: "~@7 gb2@2 ~ gb2@6 f2@3 ~@5 f2 ~@2 f2@5", AS: "e2@3 ~@5 e2@2 ~ e2@3 ~@10 bb2@2 ~ a2@5", AT: "~ eb2@5 ~@26",
})).s("gm_acoustic_bass").gain(0.33).pan(0.3)
// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note(`<
~@3 A ~@4 B ~@10 C D ~@7 E@2 ~@5 F ~ G ~ H ~@9 I J@2 K L M ~@7 N ~@3 O P ~@4 Q ~@11 R ~@2 S ~@8 T ~@2 U@2 V ~@6
>`.pickRestart({
A: "~@15 a2@3 ~@14", B: "~@15 g2 ~@16", C: "~@23 a2@2 ~@7", D: "~@5 g2@7 ~ c2@3", E: "[~@15 a2@4 ~@13]/2",
F: "~@9 a2@4 ~@3", G: "~ g2@4 ~@11", H: "~@3 ab2@10 ~@19", I: "~ d2 ~@2", J: "[~@25 f2@11 ~@22 a2@5 ~]/2",
K: "~@2 a2@7 d2 ab2@4 ~@9 d2@2 ~@7", L: "~ g2@3 c2 ~@7 c2 ~@3", M: "~@16 gb2 ~@15", N: "~@15 c2@8 ~@9",
O: "~@14 c2@3 ~@15", P: "~@17 gb2 ~@14", Q: "~@2 g1@3 ~@11", R: "~@18 a2@7 ~@7", S: "~@8 f2@3 ~@21",
T: "~@5 a2 ~@10, ~@10 b2 ~@21", U: "[~@31 a2@2 ~@31, ~@31 ab2 ~@32]/2", V: "~@13 g2@2 ~",
})).s("gm_acoustic_bass").gain(0.2).pan(0.3)
// chords · piano · "A.PIANO 1"
const piano = note(`<
A B C@3 D@4 E@2 F@2 G H I@2 J@2 K L M@4 N@3 O@3 P Q R S T U V W X Y@2 Z@2 AA AB AC AD@5 AE AF AG AH AI AJ AK AL AM AN
AO@3 AP@3 AQ AR AS AT AU@4 AV AW AX AY AZ@2 BA@3 BB BC@4 BD@3 BE BF@3 BG@2 BH BI BJ BK BL BM@4
>`.pickRestart({
A: "~@14 bb4@2 [c4,c5]@3 ~@5 [g4,g5]@3 ~@5, ~@14 bb3 ~@17", // C G
B: "~@2 bb3@15 [bb3,eb4,ab4]@15, ~ eb5@31, ~ [bb4,c5]@16 ~@15", // Ebsus4 Bbsus2
C: "[~@12 eb5@5 db5@2 d5@6 c5@6 ~@8 [f4,bb4] ~@10 [gb3,c4,f4]@16 ~@14 [bb3,eb4,bb4]@2 ~ [bb3,c5]@3 ~@5 [bb3,eb4,bb5]@4 ~, ~ c5@16 ~@32 bb4@16 ~@17 eb4@3 ~@11, ~ eb5@11 ~@19 eb5@50 ~@15, ~@2 [eb3,ab3]@15 ~@79, ~@7 f5@10 f5@7 ~@72]/3", // Bb5 F Eb5 Bbsus2 Eb5 Ab5
D: "[~@3 db5@2 d5@19 ~ [eb3,d4,g4]@11 eb5@4 ~@6 eb5@5 ~@9 eb5@7 ~@7 [f3,eb4]@2 ~@8 [bb3,eb4]@16 ~@14 eb6@2 ~ [d5,d6]@3 ~@5 [gb3,f4,c5,c6]@3, ~@3 [g4,g5]@21 ~@17 f5@10 [c5,f5]@16 gb5@2 ~@5 b3 ~@53, ~@52 gb3@16 g5@33 ~@13 eb5 ~@13]/4", // Ebmaj7 F7 Eb5 D F G F5
E: "[~@5 [bb4,bb5]@5 ~@3 bb5@6 gb5@2 ~ g5@5 [e3,bb3,eb4]@8 f5 ~@3 bb5@2 ab5@2 f5 ~@2 ab5@6 ~@2 g5@2 ~@4 [d3,ab3,b3]@2 ~@2, ~@19 c6@9 ~@9 [eb3,ab3,c4]@2 ~@25, ~@19 ab5 ~@6 [gb5,bb5]@2 ~@4]/2", // Bb Eb Abdim Ab Gb
F: "[~@4 bb3 ~ g5@6 gb5@2 [d4,g5]@5 ~ [c4,f4]@2 ~@6 [gb3,c4,f4,eb5,ab5]@10 ~@6 [gb3,ab4]@8 ~@5 g5@2 ~@2 ab5@2 ~, ~@12 d4 ~@7 [f5,bb5] ~@17 f5@14 ab5@2 ~@10, ~@53 b3@11]/2", // G5 F5 Fm7 Gbsus2 Bb5
G: "~@2 f5@2 g5@2 ~ eb5@8 [eb3,bb3]@4 ~@2 f5@3 ~@3 d5@3 ~@2, ~@7 eb3@2 ~@23", // Eb5
H: "~@8 [eb3,bb3]@5 f5@2 ~@4 g5@4 ~@2 e5@7, ~ eb5@12 ~@11 d3@8", // Eb5
I: "[~ a3@8 [gb3,c4,f4,c5,ab5,c6]@16 gb5@2 g5@14 ~ g5@3 ~@10 bb4@2 ~ [c4,c5]@3 ~@3, eb3@9 ~@16 [g3,db4,gb4,c5,c6]@16 [ab3,d4,g4,c5,c6]@4 ~@9 bb3@2 ~@8, ~ f5@24 ~@16 gb5@2 ~@21]/2", // Fm C Abmaj7
J: "[~ [eb4,g5]@4 ~@4 [eb3,bb3]@15 ~@2 bb3@14 ~@2 [eb3,ab3,eb5]@3 ~@3 f5@2 eb5@5 db5@3 ~ d5@5, ~@9 eb5@31 ~@15 f5@9, ~@25 eb4@14 ~@25]/2", // Eb Eb5 Ab5
K: "ab3@2 c5@5 eb5@8 ~ db4@5 bb4@2 ab4 ~@2 [gb3,gb4]@3 eb4@3", // Gb
L: "~@2 eb4@5 ~ eb4@16 ~ bb3 ~ [bb3,eb4,c5]@3 ~@2, ~@12 bb4 ~@3", // Cm7
M: "[~@3 e3@2 g5@3 ~@4 eb3@3 ~@12 eb3@14 ~@2 [d3,ab3,c4,eb5]@6 ~ d3@2 [d3,ab3,c4,eb5]@6 [b3,b4,f5]@9 ~ [b3,eb5]@5 ~@2 g4@16 ~ [ab3,bb3,eb4]@16 ~ [eb3,a3]@13 ~ f4@3 ~@2, ~@2 [bb3,eb4,c6]@5 ~@42 [ab3,f5]@3 ~@6 [f3,eb4]@8 ~@7 gb5@2 g5@38 ~@15, ~@2 gb5@3 ~@6 g5@30 ~@9 c4 ~@16 eb4@7 e4@17 ~@31 [db4,eb5,eb6]@4 ~@2, ~@37 gb4 ~@26]/4", // Ab Bdim B Absus2 Ebdim Cm7 Db F7 …
N: "[[d5,d6]@3 [gb3,c4]@2 [c5,c6]@6 ~@2 [bb4,bb5]@6 ~@3 bb5@5 gb5@2 ~@6 bb3@8 ~@3 ab5@2 ~ ab5@2 f5@2 ab5@5 ~@2 [gb5,bb5]@3 g5@2 ~@3 [d3,b3]@3 ~@5 eb5@2 ~ g5@5 ~@2 g5@5 ~ [f3,b3,bb5]@2 ~@2, ~@12 [f3,b3,eb4]@3 ~@12 c6@16 ~@5 bb5@2 ~@46, ~@30 g5@13 ~@53, ~@35 eb4@2 ~@8 [eb3,ab3,c4]@2 ~@20 ab3@2 ~@7 bb3 ~@19]/3", // D Gbdim C Bb Gb G Bb Fm7b5 …
O: "[~@4 [f3,b3,eb4,eb5,ab5]@10 [c5,f5]@14 [g3,db4,f4,eb5] ~@2 [d5,d6] ~@4 [db4,f4,d5,d6] ~@2 [c5,c6] ~@4 [c4,f4,c5,c6] ~@7 gb5 [f3,g5]@9 ~ [bb3,eb4,c5,c6]@3 ~@6 gb5 g5@2 ~@5 [eb3,bb4]@15 ~, ~@28 eb6@2 ~ db4@2 ~@11 gb3@2 ~@6 [b3,eb4,bb5]@9 ~@10 [bb3,eb4]@3 ~@5 [ab3,bb5]@15 ~@2, ~@26 bb4 ~@21]/3", // Fm7b5 F5 Gm7b5 D Db C F5 Fsus2 …
P: "[d3,ab3,g4,g5]@14 [g3,c4,bb4,eb5]@3 ~@4 bb4 ~@5 g5 ~ c6@2 ~, db5 ~@31", // G Cm7
Q: "~ bb5@4 ~@3 ab5@3 ~@3 ab5@2 g5@2 ~@4 eb5 ~ bb4@5 ~ [bb3,eb4] ~, ~@13 bb5@2 ~@9 eb5@3 ~@5", // Eb5
R: "~ eb5@4 ~@2 eb4@2 [ab4,eb5]@5 ~ eb4@2 gb4@2 ~@4 eb4@2 eb4@4 ~@3, ~ ab4@2 ~@29", // Ab5
S: "~@2 e3@3 ~@5 eb4@5 ~@3 [eb3,ab3,eb4]@3 ~@5 eb4@5 ~, ~ eb4@4 ~@27, ~ bb3@2 ~@29", // Ab5
T: "[d3,ab3,b3]@2 eb4@4 ~@4 g4@5 ~ eb4@9 ~@7", U: "~@2 [gb3,c4]@3 ~@11 [f3,b3]@2 ~ f6@3 ~@2 eb6@2 ~ d6@5",
V: "bb3 ~ eb6@5 ~ bb5@8 bb3 ~@2 ab5@3 ~@2 gb5@2 ~@4 eb5@2", W: "bb4@2 ~ ab4@5 ~ bb3 ~ gb4@2 g4@4 ~ eb4@8 ~@6",
X: "~@4 bb4@5 ~ [gb3,ab4] ~ bb4@3 ~@2 ab4 f3@2 gb4@2 ~@4 ab4@2 ~ bb4@2 ~, ~@17 b3@2 ~@13", // Gbsus2
Y: "[~@2 [e3,bb3]@2 ~ db5@2 b4 ~@2 c5@9 eb3@2 f4@4 ~ g4@2 ~@3 ab4@2 ~ bb4@2 ~ b4@2 ~ ab4 ~ bb4@7 ~ ab4@2 g4@3 ~@4 f3@2 db5@2 ~, ~ c5@2 ~@61, ~@2 eb4 ~@55 b3@2 ~@4]/2", // Edim
Z: "[~ db5@2 b4@2 ~ c5@5 [e3,bb3]@8 ~@2 [eb3,ab3]@2 ~@5 f5@2 ~ ab5@2 f5 ~ ab5 ~@2 c6@2 ~ ab5 ~ c6@2 ~ eb6@2 c6@2 ~ eb6@2 ~ gb6 ~ g6@2 ~ ab6@2 g6@2 ~, eb5@2 ~@26 e5 ~@8 [d3,ab3]@3 ~@24]/2", // Edim Ab5 Ddim
AA: "eb6@2 ~ bb5 ~ eb6@3 ~@3 eb6@2 ~ [ab5,eb6]@2 ~ eb5@2 [ab5,eb6]@2 ~ gb5@3 g5@2 [gb3,c4]@2 ~ b5@2, ~@2 [gb3,c4] ~@13, ~@5 ab5 ~@5 a5 ~@20", // Ab5 Gbdim
AB: "a5 ~@2 bb5@2 ab5@2 g5@2 gb5 ~ f5@2 e5 eb5@2 ~ b4@2 bb4@2 ab4@2 g4@2 ~@2 g4@2 gb4@2 g4",
AC: "~@2 c5 ~ d5 ~@2 eb5 ~@3 eb5@2 ~@2 eb5@2 ~@2 d5@2 eb5@2 c5@6 ~@3, ~@9 f5 ~@6",
AD: "[~@5 d6@3 ~ c6@3 ~ g5@2 ~ eb5@5 ~@2 [gb3,c4]@2 ~@6 f5@2 ~ db5 ~ d5@2 f5@2 ~ bb4@5 ~ [db4,gb4]@2 bb4@5 ~@9 [ab3,eb4,g4]@10 [ab3,bb5]@3 ~@3 [ab3,d4,g4,c6] ~@7 [bb3,gb6]@2 g6 ~@5 [e3,eb4,eb6]@4 ~@2 eb6@2 c6 ~@2 [bb3,eb4,eb6]@3 ~@5 c6@4 ~@4 [eb3,ab3,eb6]@14 ~@2 g6@2 ~@4 [d3,ab3,b3]@2 bb5@2 ~ c6@2 ~@3 g3@2 gb6@2 ~@2, ~@55 bb4@18 [d4,g4] ~@7 [ab3,g4,eb6]@8 ~@6 bb3@2 ~@39 [d3,ab3,b3,gb6]@4 ~@13 [db4,f4]@2 ~@5, ~@86 eb4@3 ~@63 eb6@2 ~@6]/5", // Gbdim Gb5 Abmaj7 Absus2 Abmaj7 Ebm Emaj7 Eb5 …
AE: "g6@2 ~ [ab6,bb6]@3 ~@2 gb6@2 g6@2 ~ eb6@3 ~ bb5 ~ eb6@5 ~ eb5 ~@2 [ab5,eb6]@3 ~, ~@8 [gb3,c4,bb6]@5 ~@6 ab5@3 ~@10", // Absus2 Ab5 Cm7b5
AF: "~@2 ab5@2 eb5@3 ~ bb5@2 g5@2 ~ [eb5,bb5]@3 ~ bb4@2 eb5@4 ~@2 eb4@2 gb4@3 ~@2, eb6 ~@15, ~ bb5@3 ~@4 gb5 ~@10 ab4 ~@12", // Eb5
AG: "~ eb3 f5@3 eb5@5 ~ d5@5 ~@3 c5@6 ab3 ~ [d4,bb4]@5", AH: "~@3 [db4,a4]@7 ~ ab4@7 ~ bb4@6 gb4@2 ~ g4@2 ~@2",
AI: "~@2 [f3,b3,db4]@3 ~@5 eb4@3 ~@6 bb3@2 ~@8 a3@2 ~, ~@28 eb3@3 ~", // Db7
AJ: "~@4 f6 ~ eb6@2 d6@2 c6 ~ b5@2 ~ a5 ~@2 gb5@2 ~ f5@2 eb5@2 d5 ~ c5@2 bb4 ~@2, ~@11 [gb3,c4]@2 ~@4 bb5@2 ~@13", // Gbdim
AK: "~@2 bb3@2 ~@10 [e3,bb3]@2 ~@4 g4 ~@4 e5@2 ~ eb4 ~ bb5@2, ~@27 g5@2 ab3@2 ~", // Edim
AL: "~ g5@2 ~ ab5@2 c5@2 ~ eb5 ~ g5@2 ~ f5@2 ~ c5@2 eb5@2 ~ d5@2 ~ b4 ~ bb4@2 ~@3",
AM: "~@4 [ab4,bb4]@3 g4@3 ~@2 f4@2 ~ eb4@3 ~@2 f4@2 ~ g4@5 eb4@4", // Absus2
AN: "~@4 eb4@2 ~ c4@4 ~ bb3 ~@2 eb4@5 ~ f4@2 [gb3,c4,g4]@5 ~ f3@3, ~@15 db4@3 ~@10 [b3,eb4]@4", // C B
AO: "[~@3 eb4@2 ~@2 eb4@5 ~ f4 ~ [gb4,bb4]@3 ~@3 [e3,eb4]@3 ~@3 eb4@2 ~@2 [eb3,a3]@2 ~@7 bb4@3 ~@2 [d3,ab3,eb4]@3 ~ f4@2 ~ eb4@2 ~@2 eb4@5 f4 ~ gb4@2 ~@4 bb4@2 ~ c5@2 ~ bb4 ~@2 eb5@2 ~@2 eb4@4 ~ eb4@2 ~@7, ~@21 bb3 ~@9 eb4@5 ~@3 ab4@3 ~@54]/3", // Gb Emaj7 Ebdim Ab
AP: "[bb3@2 ~@13 [f3,b3,e4,c6]@3 a5@3 ~@2 c6 ~ [f3,b3,e4,eb6]@6 db6@2 d6@7 ~ [e3,bb3,eb4,f6]@5 ~ [bb3,eb6]@4 ~@2 d6@4 [eb4,c6]@6 [eb3,ab3,c4,bb5]@16 ~ [ab3,bb5]@16, ~@31 [e3,bb3,eb4,g5,g6]@10 ~@5 [e3,eb4]@4 ~ db6@2 ~@43, ~@52 [e3,bb3,eb4]@4 ~ [e3,bb3]@4 ~@18 [d3,b3]@17]/3", // Fmaj7 Fm7b5 Ebsus2 Eb5 Cm Ab Absus2 Eb …
AQ: "~ b5@2 ~@5 [g3,db4,eb5,eb6]@2 ~@6 [c4,f4,d5,bb5] ~@2 [gb3,c5,c6]@4 ~@4 [bb4,bb5]@2 b5@2 ~, [g3,db4,f4,f5,bb5,f6]@3 ~@5 f4 ~@7 d6@2 ~@9 gb3@4 ~", // Eb7 Bb Gbdim Bb Gm7b5
AR: "~@3 [bb4,bb5]@5 ~ ab3 ~ [f3,b3,eb4,ab4,ab5]@4 ~@2 [bb3,eb4,g4] ~@6 [e3,eb4,eb5] db6 ~ [e3,bb3,eb4,c6]@4 ~, ~@3 eb4@3 ~@11 [e3,g5]@2 ~@5 [bb3,eb6]@2 ~@6", // Bb Fm7b5 Eb Emaj7 C7 Em Eb5
AS: "~@3 eb3@3 ~@5 [g4,g5]@3 ~@5 [eb3,db4,g4,g5]@3 ~@5 [g4,g5]@4 ~", // G Eb7 G
AT: "~@4 [d3,g4,g5]@4 ~@4 g5@6 [d3,ab3,c4] ~ g5@4 ~@4 bb5@4, ~@3 [ab3,c4]@3 ~@6 g4@3 ~@17", // G5 Dm7b5 Ab
AU: "[~ gb5@3 g5@7 bb4@5 ~@4 [bb3,eb4]@17 [ab3,d4]@2 ~@3 g6 ~@2 d6 ~@2 c6@2 b5 a5 ~ [gb3,bb5]@2 gb5@2 f5 ~ eb5 ~ d5 ~ c5@2 b4 ~ a4 ~ bb4@2 ~@2 gb4 ~ a4@2 g4@2 d4@2 f4@2 ~ bb3 e4 ~ g4@2 ~ bb4 ~ c5 eb5@2 db5@2 c5 ~ bb4@2 ab4 ~@3 eb4 ~ g4@2 f4 ~ f4@2 c4 ~ eb4 ~ d4@2 ~ db4 ~ c4 ~ b3 ~ bb3@2, ~ [f3,b3,eb4]@16 ~@3 c5@7 ~@16 f6@2 ~@83, ~@22 eb6 ~@19 e3 ~@12 g4 ~@8]/4", // Eb5 Abdim Gb Fm7b5
AV: "gb3@2 d3@2 b2 ~ f3@2 ~@2 eb3@2 f3 ~ g3@2 eb3 ~@4 g3 ab3@2 ~@2 g3@2 ab3@2 bb3@2",
AW: "eb3 ~@4 [c2,d2] ~@3 ab3 ~ bb3 b3 ~ eb4 ~ f4 ~ ab4 bb4@2 b4 [f3,b3,eb4] ~ eb5 f5 ~ g5 ab5 bb5 ~ c6, ~@8 g3@2 ~@3 db4@2 ~@2 g4@2 ~@3 db5@2 ~@8", // Csus2 Fm7b5
AX: "db6@2 eb6 gb6@2 ~ [eb3,bb3,d4]@14 ~ f6@3 eb6 ~@4 c6 ~ g5, ~@5 g6@3 ~@13 g6@2 ~@4 f6@2 ~@3, ~@14 eb6 ~", // Ebmaj7
AY: "[d6,g6]@2 ~ g5 ~ [c6,g6]@2 ~ g5@2 ~ f5@2 eb5@2 ~@3 f5@2 ~ d5@2 eb5@2 ~ g4@2 bb4@2 ~@2", // G5 C5
AZ: "[d5@2 ~ bb4 ~ c5@2 ~ g4@2 ~ f4@2 ~ d4@2 ~ gb3 ~@4 eb4@2 ~@3 eb4@2 ~@3 eb4@2 ~ e4@2 ~ f4@2 ~ [ab3,d4] ~ f4@2 ~ e4 ~ f4@2 ~ e4@2 ~ f4@2 ~ a4@2 bb4@2 ~ a4 ~, ~@16 [c4,eb4]@2 ~@13 [g3,db4]@2 ~@7 e4@2 ~@22]/2", // Abdim Cm Gdim
BA: "[~ bb4@2 d5@2 ~ eb5@2 ~ bb3 e3@2 eb5@2 g5@2 ~@2 gb5 ~ g5@2 ~ gb5@2 g5@2 ~ c6@2 ~ b5@2 ~ c6@2 b5@2 ~ c6@2 d6@2 ~ eb6@2 ~ c6@2 ~ ab5@2 ~@3 d5 ~ db5@3 d5@3 ~ ab3 ~ bb5@4 ~@3 g5@2 ~@5 [db4,gb4] ~@4 eb5@2 ~ c5 ~ [gb3,c4,f4,eb5]@6, ~@9 d5@2 ~@52 d4@2 ~@6 bb5@3 ~@22, ~@72 gb5@2 ~@5 eb5@3 ~@14]/3", // Gb5 Cdim
BB: "~@2 [gb3,f4,c5]@6 [b3,e4,eb5]@16 [bb3,eb4,bb4] e3 ~ c5@3 ~@2, ~@4 f3@5 ~@4 [e3,bb3,eb4]@2 ~", // F Emaj7 Eb5 Eb
BC: "[~@4 g5@3 ~@5 [eb3,g3,a3,d4,c5]@15 ~ [eb3,a3,db4,db5]@15 ~ [d3,ab3,c4]@5 [d3,ab3,c4]@5 [d3,ab3,c4,c5,eb5]@5 ~ [f3,b3,eb4]@7 ~ f3@6 db5@2 d5@16 [e3,bb3,eb4,ab4,db5]@16 ~ [eb3,c5]@13 [g3,db4,f4,eb5] ~@2 [g3,db4,f4,d5,d6]@3, ~@3 [e3,bb3,eb4]@5 ~@41 [d5,f5]@12 ~@6 [b3,eb4,eb5]@7 [f3,b3,e4]@19 ~@35, ~@3 [gb5,c6]@3 ~@6 g5@31 ~ [c5,eb5]@10 ~@5 [b4,f5]@9 ~@6 g5@35 ~@13 eb6@2 ~@4]/4", // Am7b5 Ebm7b5 Dm7b5 Ab Fm7b5 Bbm7b5 Cm Gm7b5 …
BD: "[~@5 gb3@5 ~ bb3 ~ [f3,b3,eb4,bb5]@2 ~@2 bb5@2 ~ g5 ~ bb5@5 ~@8 [e3,bb3]@2 ~@6 f5 ~ a3 ab5@2 bb5@2 ab5@2 f5 ~ ab5@5 ~ gb5@2 g5@5 [ab3,b3]@2 ~@6 bb3 ~@2 [c4,f4,g5]@5 c4 gb5 ~ [c4,f4,g5]@5 ~ [eb4,eb5,bb5] ~@3, ~@4 [c4,f4,c5,c6]@4 ~@8 c6@2 ~@9 gb5@2 g5@11 ~@19 bb5@9 ~@28, ~@28 c6@6 ~ eb4 ~@9 eb3@2 ~@20 d3@8 ~@21]/3", // Ebsus2 Edim Abm Csus4 Eb5 F5
BE: "~@2 [f3,b3,eb4,db5,ab5]@5 [c5,f5]@4 ~@3 [g3,db4,f4,eb5,eb6]@2", // Fm7b5 F5 Gm7b5
BF: "[~ [g3,db4,f4,d5,d6]@5 ~ [gb3,c4,f4,c5]@7 ~@6 [f3,b3,eb4,bb4,bb5]@10 ~ [bb3,eb4,c5,c6]@3 ~@5 gb5 g5@3 ~@5 [eb3,ab3,bb4,eb5,bb5]@13 ~ b4@22 ~ [f3,b3,eb4,bb4,bb5]@10 ~, ~@6 c6@7 ~@26 [bb3,eb4]@4 ~@18 [d3,ab3,b3,g4,d5,g5]@24 ~@11, ~@61 bb4@3 ~@32]/3", // G7 F Ebsus2 Cm7 Ebsus4 Ebsus2 Eb5 G
BG: "[[e3,bb3,eb4,eb5,eb6]@3 ~@6 bb3@3 ~@5 gb5 [g5,g6]@13 ab3@19 ~@4 [f3,b3,eb4,bb4,bb5]@10, ~@8 [eb4,bb5,bb6]@3 ~@5 gb6@2 ~@13 bb5@10 ~@23, ~@17 ab3@14 ~@33]/2", // Eb G Ebsus2 Eb5
BH: "~ gb5 [bb3,g5]@2 ~@5 [bb3,eb4,g4,g5]@2 ~@7 [eb3,eb5]@14, ~ [eb4,c5,c6]@3 ~@13 [ab3,c4,bb4,bb5]@15", // Eb Cm Ab
BI: "~@15 f3@2 ~ eb4@5 ~@4 eb4@5, ~@2 [ab3,g4,b4,d5,g5]@15 gb3@2 ~@5 f4@8, ~@9 [g3,db4]@7", // G Gdim
BJ: "eb4@7 ~@3 eb4@5 ~ eb4@7 f4@3 eb4@5 ~, [gb3,b3]@17 ~@15, ~@7 f4@9 [f3,bb3]@16", // B5 Bb5
BK: "eb4@7 f4@3 eb4@5 ~@11 eb4@6, [e3,a3]@15 ~ [eb3,ab3,c4]@16, ~@8 eb4@5 ~@3, ~@23 f4@9", // A5 Ab
BL: "~@7 f4@3 ~ eb4@6 [c4,d4,bb4]@2 ~@13, [ab3,b3]@17 g3 ~@14, eb4@7 ~@25, ~ [e2,b2]@16 ~@15", // Gm Abm E5
BM: "[~ d4@14 ~@25 a7@64 ~@24, ~ [eb2,bb2,g3,a3]@21 g5@10 c7@64 ~@32, ~@16 g4@9 c6@13 g7@64 ~@26, ~@19 c5@10 a6@11 d4@3 ~@85, ~@20 d5@11 d7@64 ~@33]/4", // Eb
})).s("gm_piano").gain(0.4).pan(0.6)
// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
~ A B C D E@4 F ~ G H@3 I ~ J@2 K L M@2 N@2 O P Q R S T U V W ~ X ~ Y Z AA AB AC ~ AD AE AF ~ AG AH AI AJ@2 AK AL AM
AN AO ~ AP ~ AQ AR AS AT AU AV ~@2 AW AX AY AZ BA@2 ~@2 BB BC BD BE BF BG ~ BH BI BJ ~@3 BK ~ BL BM BN BO BP ~ BQ@2 BR
BS ~@3 BT@4
>`.pickRestart({
A: "~@2 eb4@15 ~ e3@14, ~ [c4,f4,g4]@15 ~@16", B: "~@2 c4@15 ~ d3@14, ~@17 [ab3,c4]@15",
C: "~@8 g3 ~@23, ~@7 c4@2 ~@23", D: "~@3 [f3,b3,eb4,g4]@13 e3 ~@2 e3@3 ~@5 e3@3 ~@2, ~ bb4@7 ~@8",
E: "[~@4 [eb3,a3,d4]@20 ~ a3@10 ~ [d3,ab3,c4]@16 [c4,f4]@15 ~@18 e3@16 [eb3,a3,d4]@15 ~@9 c4@3, ~@21 c5@4 ~@7]/4", // D Dm7b5 F5 D
F: "~@6 f3@3 ~@2 g5@2 ~@19, ~@5 [b3,eb4]@3 ~@24", G: "~@6 [g3,d4,f4]@6 f4 ~ f4@4 ~@2 gb3 ~@11, ~@12 g3@7 ~@13",
H: "[~@12 [c4,f4,c5]@9 [f3,eb4]@14 ~@5 d4@2 ~@5 d4@4 ~@5 [eb3,bb3,d4]@3 ~@5 [bb3,d4]@4 ~@4 d4@5 ~@3 d4@3 ~@5 [ab3,db4]@8, ~@39 bb3@2 ~@22 eb3@3 ~@13 [eb3,bb3]@4 ~@13]/3", // F5 F7 Ebmaj7 Bb Db5 Eb5
I: "~ d4@9 ~@22", J: "[~ [f3,b3]@3 ~@5 d4@15 ~@2 e3@14 c5 ~ c4@4 ~@18]/2",
K: "[d3,b3]@2 ~@15 g3@7 ~@3 g4 ~@4, ~@26 c4@3 ~@3", L: "~@16 [f3,b3]@9 eb4 ~ e3@2 ~@3",
M: "[~@12 [a3,d4]@3 ~@13 [a3,db4]@14 ~@22]/2", N: "[~@4 f3@6 [f3,b3]@17 ~ e3@16 ~ d4@14 g3@2 ~@3]/2",
O: "~@3 f4@2 ~@4 bb3@2 ~@9 g5@2 ~@10", P: "~@3 e3@8 f5 ~@20", Q: "~@15 [g3,d4,f4]@4 ~ g3 d4 [g3,d4,f4]@5 ~@2 e4 ~@2",
R: "~@15 g3@13 ~@3 f4, ~@7 [c4,f4]@7 ~@2", S: "~@5 g3 ~ f4 ~@22 ab3 ~", T: "e3@3 ~@4 e3@3 ~@6 c4@15 ~",
U: "~@2 d5@12 ~@11 eb5 ~@6, b3@7 ~@9", V: "~@6 g5 ~@25", W: "~@4 a4@2 bb3 ~@10 eb5@2 g4@3 ~@10, ~@17 bb3 ~@14",
X: "~@4 f4 ~@11", Y: "[e3,c6] ~@16 eb3 ~@7 g5@4 ~@3", Z: "~@9 f4@2 ~@21", AA: "~@2 [ab3,d4] ~@20 g4 ~@8",
AB: "~@19 a3 ~@12", AC: "~@21 f3 ~@10", AD: "~@20 c4 g3 ~@10", AE: "~@7 a5@3 ~@22",
AF: "~@23 eb3@2 ~@7, ~@23 bb3 ~@8", AG: "~@5 a3 d4@2 ~@14 c5 f4@2 db5@2 ~ d5@2 ~@2", AH: "~@15 g3@2 ~@15",
AI: "~@15 b5 ~ d4@6 e3@3 ~@6", AJ: "[~@4 f6@2 ~@4 e3@3 ~@13 c4@16 ~@22]/2",
AK: "~@8 f4@4 ~@10 a5@3 [f3,b3]@2 ~@5, ~@25 eb4 ~@6", AL: "~@22 a4@3 ab3 ~@4 g4 ~",
AM: "~ a3 ~@8 [eb3,a3] ~@6 a3 d4 ~@13, ~@10 d4@2 ~@5 eb3@2 ~@13", AN: "~@11 c4@8 b3@6 ~@7",
AO: "~@19 e3@2 ~@11, ~@14 c4@13 ~@5", AP: "~@3 f3@2 ~@27", AQ: "~@29 [g3,c4]@2 ~", AR: "~@3 f4@2 ~@10 g3@2 ~@15",
AS: "~ f4@2 ~@2 c4 ~@9 eb4 ~@9 f4@2 ~@2 c4 ~@2", AT: "~@6 f4 ~ f4@3 ~@10 c4 ~@9 g3", AU: "~@2 g4 ~@29", AV: "f3 ~@15",
AW: "~@19 [c4,f4]@4 ~@6 b4@2 ~, ~@27 b3@2 ~@3, ~@14 f4 ~", AX: "~@3 [f3,b3]@4 ~@20 c5@3 ~@2, ~@27 d5 ~@4",
AY: "~@3 [a3,d4]@3 ~@13 a3@3 ~@10", AZ: "~@27 ab5@2 ~@3", BA: "[~@21 e3@18 ~@14 c4@2 ~@9]/2",
BB: "~@8 d3 ~@10 f3 ~@5 f3 ~@6", BC: "~@7 f3 ~@24", BD: "~@21 g3@2 ~@2 g6@3 ~@4", BE: "~@16 d5 ~@15",
BF: "~@25 d4@2 ~@3 d4 ~", BG: "~@23 d4 ab3 ~@7", BH: "~@21 f5 ~@10", BI: "g4 ~@15 g3 ~@2 f5@3 ~@10",
BJ: "~ c4@2 ~@13", BK: "~@13 [a3,d4,g4]@14 ~@5", BL: "~@14 c4 ~@17", BM: "~@14 g3@6 [g3,f4] ~ g3@4 ~@2 [f3,b3] ~@3",
BN: "~@15 g3@7 ~@10, ~@14 [c4,f4]@13 ~@5", BO: "~@29 ab3 ~@2", BP: "e3@2 ~@5 e3@3 ~@6 c4@13 ~@3",
BQ: "[~@9 e3@2 ~@6 [eb3,c4]@14 d3@18 ~@15, ~@31 bb4@9 ~@24]/2", BR: "~@2 e3@2 ~@5 e3@3 ~@20",
BS: "~@2 [d3,b3]@15 ~@15", // G
BT: "[~@24 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 ~@3 d4@3 d4@2 d4@2 ~ d4@2 d4@4 ~ d4@64 ~@6, ~@15 d4@7 d4@2 ~@18 c8@64 ~@22, ~@9 a4@32 ~@23, ~@23 a5@64 ~@41]/4",
})).s("gm_piano").gain(0.24).pan(0.6)
// drums · kick
const kick = s("bd").struct("<~@103 [~@17 x ~@14] [~ x ~@30] ~@3>").gain(0.21)
// drums · rim
const rim = s("rim").struct(`<
~ A B@2 C@2 D@2 E@2 F@2 G@2 ~ H@2 ~ I J@2 K@2 L@2 M@2 N@2 O@2 P ~@2 Q R@2 S@2 T@2 U@2 V@2 W@2 X@2 Y@2 Z@2 AA@2 AB@2
AC@2 AD@2 AE@2 AF@2 A@2 B@2 C@2 D@2 E@2 F@2 G@2 ~ H@2 I@2 J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S ~@5
>`.pickRestart({
A: "~@25 x ~@6", B: "~@13 x ~@2", C: "~@27 x ~@4", D: "~@7 x", E: "~@29 x ~@2", F: "~@15 x", G: "~@31 x", H: "x",
I: "~ x ~@30", J: "~ x ~@14", K: "~@3 x ~@28", L: "~ x ~@6", M: "~@5 x ~@26", N: "~@3 x ~@12", O: "~@7 x ~@24",
P: "~ x ~@2", Q: "~@9 x ~@22", R: "~@5 x ~@10", S: "~@11 x ~@20", T: "~@3 x ~@4", U: "~@13 x ~@18", V: "~@7 x ~@8",
W: "~@15 x ~@16", X: "~ x", Y: "~@17 x ~@14", Z: "~@9 x ~@6", AA: "~@19 x ~@12", AB: "~@5 x ~@2", AC: "~@21 x ~@10",
AD: "~@11 x ~@4", AE: "~@23 x ~@8", AF: "~@3 x",
})).gain(0.38)
// drums · snare
const snare = s("sd").struct("<~@15 A B C ~@11 D E F ~ G ~@15 H ~@15 I ~@28 J K L M N O P Q@2 R S ~@3>".pickRestart({
A: "~ x ~ x", B: "~ x ~@2", C: "~@9 x ~@22", D: "~@20 x ~@10 x", E: "~@7 x ~@7 x ~@15 x", F: "~@13 x ~@18",
G: "~@17 x ~@14", H: "~@11 x ~@4", I: "~@15 x", J: "~@13 x ~ x ~@4 x ~@10 x", K: "~@7 x ~@8 x ~@12 x ~@2",
L: "~@5 x ~ x ~@5 x ~@2 x ~@4 x ~@10", M: "x ~@3 x ~@3 x ~@6 x", N: "~@4 x ~@2 x ~@3 x ~@4", O: "~ x ~@7 x ~@22",
P: "~@9 x ~@6", Q: "x!2", R: "x ~@10 x ~@5 x ~@14", S: "~ x ~@30",
})).gain(0.21)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@15 A ~ B ~@76 C ~ D ~@11>".pickRestart({
A: "~@19 x ~ x ~@10", B: "~@3 x ~@2 x ~@25", C: "~@3 x ~@4", D: "~@5 x ~@10",
})).gain(0.11)
// drums · hihat
const hihat = s("hh").struct(`<
~ A B C D E F G H I J K L M N O@2 P@2 Q@2 R@2 S@2 T@2 U@2 V@2 W ~ X A C@2 E@2 G@2 I@2 K@2 M@2 Y O Z P AA Q AB R AC S
AD T AE U AF V AG AH AI A B C D E F G H I J K L M N O@2 P@2 Q@2 R@2 S@2 T@2 U@2 V@2 AH@2 A@2 C@2 E AJ ~@4
>`.pickRestart({
A: "~@9 x ~@15 x ~@6", B: "~@9 x ~@16 x ~@5", C: "~@5 x ~@7 x ~@2", D: "~@10 x ~@16 x ~@4", E: "~@11 x ~@15 x ~@4",
F: "~@11 x ~@16 x ~@3", G: "~@3 x ~@3 x", H: "~@12 x ~@16 x ~@2", I: "~@13 x ~@15 x ~@2", J: "~@13 x ~@16 x ~",
K: "~@7 x ~@7 x", L: "~@14 x ~@16 x", M: "~@15 x ~@15 x", N: "~@15 x ~@16", O: "x!2", P: "~ x ~@15 x ~@14",
Q: "~ x ~@7 x ~@6", R: "~@3 x ~@15 x ~@12", S: "~ x ~@3 x ~@2", T: "~@5 x ~@15 x ~@10", U: "~@3 x ~@7 x ~@4",
V: "~@7 x ~@15 x ~@8", W: "~ x ~@2", X: "~@25 x ~@6", Y: "~ x", Z: "x ~@16 x ~@14", AA: "~ x ~@16 x ~@13",
AB: "~@2 x ~@16 x ~@12", AC: "~@3 x ~@16 x ~@11", AD: "~@4 x ~@16 x ~@10", AE: "~@5 x ~@16 x ~@9",
AF: "~@6 x ~@16 x ~@8", AG: "~@7 x ~@16 x ~@7", AH: "~ x ~ x", AI: "~@8 x ~@16 x ~@6", AJ: "~@11 x ~@20",
// … 33 more lines
More by Nat King Cole
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.