0:00/0:00
// It's Only a Paper Moon — Nat King Cole
// 136 bpm, 4/4, key D# 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 113 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(136/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 · piano
const piano = note(`<
~@4 A@2 B@6 C@7 D@5 E@3 F@3 G@3 ~@7 H@2 I J K@4 L M N O P Q@2 R@2 S T U V W@4 X ~ Y Z AA@4 AB AC AD AE AF AG AH AI ~@3
AJ@2 AK AL@2 AM AN AO AP AQ AR@3 AS AT AU AV@5 ~ AW ~ AX ~@3 AY
>`.pickRestart({
A: "[~@6 d6@4 ~@2 d6@5 ~ eb6@6 d6@6 g5@6 bb5@11 ~, [c4,eb4,g4]]/2", // Cm
B: "[~@7 eb6@5 ~@2 eb6@6 e6@7 eb6@7 ~ ab5@7 b5@23 ~@4 [bb2,ab3,d4]@12 [bb2,g3,eb4]@12 [bb2,ab3,d4]@12 [bb2,g3,eb4]@12 [bb2,ab3,d4]@12 [bb2,eb3,ab3,eb4]@14 ~, [db4,e4,ab4]@65 ~@79]/6", // Bb7 Eb Bb7 Eb Bb7 Ebsus4 Dbm
C: "[[bb2,eb3,g3,c4,eb4]@27 ~@3 db4@6 d4@17 ~@13 c6@12 [bb2,ab3,eb4]@11 ~ [bb2,ab3,d4]@35 ~@17 bb5@19 ~@7, ~@30 [bb2,ab3]@23 ~ [eb2,bb2,g3,c4]@24 ~@47 eb2@39 ~@4, ~@64 c5@13 ~@49 [bb2,f3]@36 ~@6, ~@127 g3@35 ~@6, ~@64 bb3@17 ~@3]/7", // Cm7 Ebsus4 Bb7 Cm7 Bb5
D: "[~ [bb3,db4,gb4]@17 [a3,c4,g4]@17 ~ [ab3,c4,g4]@17 [g3,bb3,eb4]@16 ~ [bb3,db4,e4]@17 [ab3,c4,eb4]@16 ~ [ab3,bb3,d4]@16]/5", // Gb Am7 Abmaj7 Eb Bbdim Ab Bb7
E: "[~@2 [g3,c4,eb4]@17 [bb3,db4,e4]@18 [a3,c4,eb4]@18 [ab3,bb3,d4]@17]/3", // Cm Bbdim Adim Bb7
F: "[~ [g3,c4,eb4]@17 ~ [bb3,db4,e4,ab4]@21 ~ [ab3,c4,eb4,g4]@31]/3", // Cm Bbm7b5 Abmaj7
G: "[~@2 [ab3,c4,eb4]@21 [a3,db4,e4]@33 ~@16]/3", // Ab A
H: "[~@21 [g4,c5,eb5,bb5]@10 ~@6 [db5,bb5]@2 ~@6 [ab4,c5,f5,bb5]@2 ~, ~@37 [g4,e5] ~@10]/2", // Cm7 Gb Fm C
I: "~@7 [f4,ab4,c5,eb5] ~@5 [f4,ab4,c5,eb5]@7 ~ [f4,ab4,b4,d5]@2 ~", // Fm7 Fdim
J: "~@7 [f4,ab4,b4,d5] ~@5 [f4,ab4,b4,d5]@5 ~ [g4,bb4,c5,eb5] ~@4", // Fdim Cm7
K: "[~@7 [f4,ab4,c5,eb5] ~@5 [f4,ab4,c5,eb5]@3 ~@3 [g4,c5,eb5,bb5]@14 [db4,f4,g4,bb4]@11 ~ [c4,eb4,f4,ab4]@11 ~ [eb4,f4,a4,c5]@11 ~ [ab3,c4,d4,g4]@20 ~@2 [g3,bb3,c4,eb4]@2 ~@3]/4", // Fm7 Cm7 Gm7b5 Fm7 F7 Abmaj7 Cm7
L: "~@7 [gb2,bb3,db4]@2 ~@4 [f2,a3,c4]@2 ~@4 [e2,ab3,b3]@2 [eb2,g3,bb3]@2 ~", M: "~@9 [g4,db5,e5,bb5]@5 ~@10",
N: "~@7 [ab4,c5,f5,bb5] ~@5 [ab4,c5,f5,bb5] ~@10", O: "~@13 [ab4,d5,f5,bb5]@4 ~@4 [g4,c5,eb5,bb5] ~@2",
P: "~@7 [f4,ab4,c5,eb5] ~@5 [f4,ab4,c5,eb5] ~@7 [f4,g4,bb4,d5]@3", // Fm7 Gm7
Q: "[~@9 [bb3,db4,eb4,g4]@11 ~ [c4,eb4,f4,ab4]@10 ~@2 [c4,eb4,f4,a4]@11 ~@4]/2", // Eb7 Fm7 F7
R: "[~ [ab3,bb3,d4,f4] ~@7 [ab3,bb3,d4,f4]@6 ~@6 [g3,bb3,c4,eb4]@5 ~@11 [g4,db5,eb5,bb5] ~@7 [eb4,ab4,c5,f5]@2 ~]/2", // Bb7 Cm7 Eb7 Fm7
S: "~@9 [ab4,b4,eb5,gb5]@2 ~@10 [g4,bb4,d5,f5]@2 ~", T: "~@9 [g4,bb4,db5,e5]@11 ~ [f4,ab4,c5,eb5]@2 ~",
U: "~@7 [ab4,d5,f5,bb5]@2 ~@15", V: "~ [g4,c5,eb5]@2 ~@4 [g4,b4,eb5]@2 ~@12 [f4,ab4,c5,eb5]@2 ~",
W: "[~@9 [a3,db4,eb4,gb4]@11 ~ [g3,bb3,d4]@11 ~ [bb2,eb3,g3,c4]@11 ~ [f3,ab3,b3,eb4]@11 ~ [e3,g3,bb3,d4]@10 ~@2 [eb3,g3,a3,d4]@12 ~@4 [f3,ab3,c4,eb4]@7 ~ [g3,bb3,c4,eb4]@2 ~, ~@7 f4@3 ~@22]/4", // Ebm7b5 Gm Cm7 Fm7b5 Em7b5 Ebmaj7 Fm7 Cm7
X: "~@9 [g4,db5,e5,bb5]@2 ~@4 [g4,db5,e5,bb5]@2 ~@4 [f4,c5,eb5,ab5]@3", // Gdim Fm7
Y: "~@7 [f4,ab4,c5,eb5]@2 ~@4 [f4,ab4,c5,eb5]@2 ~@6 [g4,bb4,c5,eb5]@2 ~", // Fm7 Cm7
Z: "~@7 [f4,ab4,c5,eb5] ~@5 [f4,ab4,c5,eb5] ~ [f4,ab4,c5,eb5]@2 ~@4 [g4,bb4,c5,eb5]@2 ~", // Fm7 Cm7
AA: "[~@9 [db4,g4,bb4,eb5]@11 ~ [c4,eb4,f4,ab4]@11 ~ [c4,eb4,f4,a4]@11 ~ [ab3,d4,g4,bb4]@20 ~@2 [g4,c5,eb5,bb5]@13 ~@5 [g4,c5,eb5,bb5]@5 ~@3 [g4,c5,eb5,bb5]@3]/4", // Eb7 Fm7 F7 Gm Cm7
AB: "~@3 [g4,c5,eb5,bb5] ~ [g4,c5,eb5,bb5] ~ [f4,c5,eb5,ab5]", // Cm7 Fm7
AC: "~@6 [e4,bb4,db5,g5]@2 ~@6 [f4,c5,eb5,ab5]@3 ~@3 [ab4,c5,eb5,f5]@3 ~", // Edim Fm7
AD: "~@12 [ab4,c5,eb5,f5]@2 [ab4,c5,eb5,f5] ~@4 [ab4,c5,eb5]@2 ~@3, ~@19 f4 ~@4", // Fm7 Ab
AE: "~ [a4,c5,eb5] ~@3 [g4,bb4,c5,eb5]@4 ~@2 [g4,bb4,c5,eb5]@2 ~@6 [g3,bb3,c4,eb4]@3 ~@2, ~ gb4@2 ~@21", // Adim Cm7
AF: "~@11 [g3,b3,db4,eb4]@6 ~ [ab3,c4,eb4]@3 ~@3", // Gaug Ab
AG: "[g3,bb3,e4]@2 ~@2 [ab3,c4,f4]@8 ~@4 [ab3,d4,f4]@5 ~ [ab3,d4,f4]@2", AH: "~@4 [b3,f4,ab4]@9 ~@3 [a3,eb4,gb4]@8",
AI: "~@4 [ab3,d4,f4]@7 ~ [c4,eb4,f4,ab4]@3 ~ [bb3,c4,eb4,g4]@2 ~@6", // Ddim Fm7 Cm7
AJ: "[~@18 [db5,f5,bb5,eb6]@12 ~@4 [db5,f5,bb5,eb6]@7 ~ [eb4,ab4,c5,f5]@2 ~@4]/2", AK: "~@4 [eb4,f4,a4,c5]@13 ~@7",
AL: "[~@4 [ab4,d5,g5,bb5] ~@5 [c5,f5,ab5,d6] ~@5 [c5,g5,bb5,eb6]@13 ~@5 [bb3,db4,eb4,g4]@7 ~@7]/2", // Gm Dm7b5 Cm7 Eb7
AM: "[f3,ab3,c4,eb4]@2 ~@4 [gb3,a3,c4,eb4]@3 ~@3 [gb3,a3,c4,eb4]@2 ~@4 [g3,bb3,c4,eb4]@2 ~@4", // Fm7 Gbdim Cm7
AN: "~@4 [e4,g4,bb4,c5] ~@5 [e4,g4,bb4,c5]@7 ~ [ab3,c4,eb4,g4]@2 ~@4", // C7 Abmaj7
AO: "~@4 [ab3,c4,eb4,g4]@2 ~@6 [ab3,c4,d4,g4]@3 ~ [g3,bb3,c4,eb4]@2 ~@6", // Abmaj7 Cm7
AP: "[g4,bb4,db5,eb5]@3 ~ [db4,f4,g4,c5] ~@5 [g4,bb4,db5,eb5]@7 ~ [f3,ab3,c4,eb4]@3 ~@3", // Eb7 Dbmaj7 Eb7 Fm7
AQ: "~@4 [gb3,a3,c4,eb4]@2 ~@6 [gb3,a3,c4,eb4]@5 ~ [g3,bb3,c4,eb4]@2 ~@4", // Gbdim Cm7
AR: "[~@4 [bb3,d4,f4,g4]@2 ~@4 [bb3,d4,f4,g4]@7 ~ [b3,eb4,f4,ab4]@11 ~ [bb3,d4,e4,g4]@11 ~ [a3,c4,eb4,g4]@8 ~@2 [ab3,c4,eb4,g4]@2 ~@4 [ab3,c4,d4,g4]@8 [g3,bb3,c4,eb4]@2 ~@4]/3", // Gm7 Fm7b5 Em7b5 Am7b5 Abmaj7 Cm7
AS: "~@3 [g4,db5,e5,bb5]@5 ~ [f4,c5,eb5,bb5]@3", AT: "~@4 [f4,c5,eb5,bb5]@7 ~ [f4,ab4,c5,eb5]@2 ~@10",
AU: "[f4,ab4,c5,eb5]@11 ~ [f4,ab4,c5,eb5]@2 ~@8 [g4,bb4,c5,eb5]@2", // Fm7 Cm7
AV: "[~@4 [c4,eb4,g4,bb4]@12 ~@2 [g4,bb4,c5,eb5]@9 ~@3 [f4,g4,bb4,db5]@11 ~ [eb4,f4,ab4,c5]@9 ~ [eb4,g4,a4,c5]@11 ~@3 [ab3,d4,g4,bb4]@12 ~@4 [ab3,d4,g4,bb4]@2 ~@6 [g3,bb3,c4,eb4]@8 ~@2 [b3,eb4,f4,ab4]@2 ~@4 [ab3,b3,eb4,f4]@7 ~@7]/5", // Cm7 Gm7b5 Fm7 Am7b5 Gm Cm7 Fm7b5
AW: "~@5 [db4,db6]@4 ~@3", AX: "~@10 [db4,db6]@2 ~@4 [db4,db6]@5 ~@3", AY: "~@3 [bb4,eb5,gb5,db6] ~@2",
})).s("gm_piano").gain(0.35)
// bass · acoustic bass
const bass = note(`<
~@19 A@5 B@3 C@6 D E@7 F@8 G@5 H@3 I@8 J@8 K@2 L@2 M N O P@2 Q@2 R S T U V W@2 X Y Z AA AB AC AD AE AF AG AH AI AJ AK
AL AM AN AO AP AQ AR AS
>`.pickRestart({
A: "[~ c2@16 ~ eb2@16 ~@2 d2@17 c2@17 gb2@16 ~ f2@16 ~ bb1@16]/5", B: "[~@2 eb2@16 ~ gb2@18 f2@18 e2@17]/3",
C: "[~ eb2@18 c2@21 ~ f2@32 ~ bb1@21 b1@33 ~@16]/6", D: "~@3 b1@6 bb1@10 c2@2 ~@3",
E: "[~ eb2@7 ~ c2@6 g1@5 ~ gb1@5 ~ gb2@6 g1@6 g2@4 c2@8 e2@6 a1@5 ~ bb1@5 ~ b1@5 ~ b1@6 bb1@6 d2@4 eb2@8 db2@6 c2@6 gb2@6 f2@10 gb2@8 g2@2 ~@4 d2@6 g2@6 gb2@3 ~ f2@2 ~@4 e2@2 eb2@3]/7",
F: "[~@3 eb2@6 e2@5 ~ e2@5 ~ f2@6 g2@6 ab2@6 a2@6 bb2@5 ~ e2@6 f2@6 e2@6 eb2@6 c2@6 bb1@6 d2@6 eb2@6 bb2@6 g2@5 ~ g2@6 ab2@5 ~ ab2@6 a2@5 ~ a2@6 bb2@6 e2@6 f2@6 e2@6 eb2@6 bb1@4 gb2@2 ~@4 f2@2 ~@4 e2@2 eb2@3]/8",
G: "[~@3 c2@5 ~ e1@5 ~ e2@6 f2@5 ~ c2@5 ~ b1@6 a1@6 bb1@6 f2@5 ~ g2@6 e2@5 ~ eb2@6 e2@5 ~ f2@5 ~ bb1@6 eb2@5 ~ eb2@5 ~ g2@5 ~ g2@5 ~ ab2@3]/5",
H: "[~@3 ab2@6 a2@5 ~ a2@5 ~ bb2@6 ab2@6 g2@6 f2@6 eb2@6 c2@6 bb1@5 ~ a1@5 ~ ab1@3]/3",
I: "[~@3 ab1@6 b1@5 ~ b1@6 g1@6 g2@6 c2@6 e2@6 f2@6 b1@5 ~ bb1@6 d2@6 eb2@6 bb2@6 a2@5 ~ a2@6 f2@6 c2@5 ~ b1@5 ~ b1@5 ~ g2@6 d2@5 ~ eb2@6 g2@4 eb2@2 db2@6 ab2@6 c2@6 g2@6 f2@6 a1@5 ~ bb1@6 d2@5 ~ eb2@3]/8",
J: "[~@3 eb2@6 e2@5 ~ e2@5 ~ f2@5 ~ g2@6 ab2@5 ~ a2@6 bb2@5 ~ bb1@6 c2@5 ~ d2@5 ~ eb2@5 ~ e2@6 f2@6 e2@5 ~ eb2@5 ~ bb2@5 ~ g2@6 bb2@5 ~ ab2@5 ~ f2@5 ~ a1@5 ~ c2@6 bb1@6 f2@6 bb2@6 e2@6 eb2@5 ~ c2@5 ~ bb1@6 c2@5 ~ eb2@3]/8",
K: "[~@3 g1@6 c2@5 ~ bb1@5 ~ f1@5 f1@5 ~ g1@6 ab1@6 bb1@4]/2",
L: "[~@2 b1@5 ~ c2@6 b1@5 ~ bb1@5 gb2@4 g2@8 bb1@5 ~ eb2@5]/2", M: "~ g2@6 f2@6 eb2@5 ~ ab1@5",
N: "g1@3 ~ ab1@6 ~@2 bb1@11 ~", O: "bb1@11 ~ b1@11 ~", P: "[bb1@11 ~ bb1@4 eb2@26 ~@6]/2", Q: "[~@2 c2@5 ~]/2",
R: "~@3 eb2", S: "bb1@6 g2@6 eb2@5 ~ ab2@5 ~", T: "f2@6 a2@6 a1@5 ~ bb1@6", U: "b1 c2 d2 eb2",
V: "e2@6 f2@5 ~ g2@5 ~ ab2@6", W: "[eb2@6 a2@6 a1@6 bb1@9 ~ bb1 ~ c2@9 ~ c2@2 f2@6]/2",
X: "b2@5 ~ bb2@5 ~ d2@6 eb2@5 ~", Y: "c2@5 ~ bb1@6 g1@5 ~ ab1@5 ~", Z: "c2@6 a1@5 ~ gb2@6 bb1@5 ~",
AA: "f2@6 ~@4 g2@8 db2@5 ~", AB: "db2@5 ~ c2@6 g2@5 ~ f2@6", AC: "c3@6 bb1@6 f2@5 ~ eb2@6",
AD: "bb1@6 e2@5 ~ g1@6 f1@5 ~", AE: "g1@6 ab1@6 a1@5 ~ bb1@6", AF: "b1@6 c2@5 ~ d2@6 eb2@6",
AG: "e2@6 f2@6 e2@5 ~ eb2@5 ~", AH: "bb1 g1 bb1 ab1", AI: "c2@2 a1@4 a1@3 bb1@3", AJ: "f2@5 ~ g2@6 e2@6 eb2@6",
AK: "bb1@3 ~ db2@2 ~@4 db2@7 ~ gb1@5 ~", AL: "gb1@5 ~ bb1@5 ~ bb1@6 ab1@5 ~", AM: "ab1@5 ~ b1@5 ~@5 b1@2 db2@6",
AN: "f1@5 ~ ab1@5 ~ g1@5 ~ gb1@4 e2@2", AO: "f2@4 gb2@2 ~@4 db2@3 ~@3 db2@4 ~@2 gb1 ~",
AP: "gb1@5 ~ bb1@5 ~ bb1@5 ~ b1@5 ~", AQ: "b1@3 ~ d2@7 ~ d2@3 ~ db2 ~@7", AR: "~@11 e2",
AS: "f2@3 ~ gb2@2 ~@6 gb1@6 ~@6",
})).s("gm_acoustic_bass").gain(0.35)
// chords · synth brass 2
const synth_brass_2 = note(`<
A@2 B@2 C@2 D@3 ~@15 E@3 F@3 G@3 ~@8 H@3 ~ I@3 ~ J@4 K@4 ~@7 L@5 M@4 ~@7 N@5 ~@28
>`.pickRestart({
A: "[d5 c5 [g4,d5] [f4,c5], eb3]/2", B: "[[g3,d4] f3 [g3,d4] [c4,g4], c3]/2", C: "[bb2,g4]/2",
D: "[[b2,a3,ab4]@65 ~@7]/3", E: "[~@19 [bb3,db4,e4]@17 ~ [a3,c4,eb4]@18 [ab3,bb3,d4]@17]/3",
F: "[~ [g3,c4,eb4]@18 [db4,e4,ab4]@21 ~ [c4,eb4,g4]@31]/3", G: "[~@2 [c4,eb4,g4]@21 [a3,db4,gb4]@33 ~@16]/3",
H: "[~@9 [db4,e4,g4]@12 [c4,eb4,ab4]@23 ~ [f4,ab4,b4]@21 ~ [eb4,g4,bb4]@2 ~@3]/3", // Dbdim Ab Fdim Eb
I: "[~@9 [bb3,db4,g4]@11 ~ [c4,eb4,ab4]@12 [eb4,a4,c5]@12 [ab3,d4,g4]@21 ~ [g3,eb4]@2 ~@3, ~@67 c4 ~@4]/3", // Gdim Ab Adim G Cm
J: "[~@9 [db4,e4,g4]@11 ~ [c4,f4,ab4]@11 ~ [ab4,c5,eb5]@11 ~ [ab4,b4,d5]@23 ~ [bb3,d4,g4]@6 [c4,eb4,ab4]@4 [d4,g4,bb4]@2 ~@15]/4", // Dbdim Fm Ab Abdim Gm Ab Gm
K: "[~@9 [bb3,db4,g4]@11 ~ [c4,eb4,ab4]@12 [eb4,a4,c5]@11 ~ [ab3,d4,f4]@23 ~ [g3,c4,eb4]@12 ~@15]/4", // Gdim Ab Adim Ddim Cm
L: "[~@21 [g4,bb4]@23 ~ [ab4,c5]@11 ~ [c5,eb5]@12 [ab4,c5]@23 ~ [g4,bb4]@11 ~ [ab4,c5]@11 ~@4, ~@93 eb5@23 ~@4]/5", // Gm Ab Cm Ab Gm Ab
M: "[~@9 [bb3,db4,g4]@11 ~ [c4,eb4,ab4]@11 ~ [eb4,a4,c5]@11 ~ [ab3,d4,g4]@23 ~ [c4,eb4,bb4]@23 ~@4]/4", // Gdim Ab Adim G Cm7
N: "[~@3 bb4@4 ab4@12 ~, ~@18 [bb3,c4,eb4]@95 ~@7]/5", // Cm7
})).s("gm_synth_brass_2").gain(0.2)
// chords · synth brass 2 · soft notes
const synth_brass_2_soft = note("<A B C D E@2 F@3 ~@104>".pickRestart({
A: "[bb3,g4] [ab3,f4]", B: "bb3 ab3", C: "bb4 [eb4,g4]", D: "bb4 eb3", E: "[ab3,c4,eb4]/2", F: "[[db4,e4]@65 ~@7]/3",
})).s("gm_synth_brass_2").gain(0.1)
// chords · alto sax
const alto_sax = note(`<
~@19 A@5 B ~@7 C@2 D@2 E@2 F@2 G ~@15 H@4 I J@4 ~ K@3 ~@9 L@3 ~@6 M N ~@5 O@3 P Q R S@3 ~ T U V W X Y Z AA AB
>`.pickRestart({
A: "[~ db4@17 c4@16 ~@2 c4@16 ~ bb3@16 ~ bb3@17 ab3@17 ab3@16]/5", B: "~ g3@8 ~@3",
C: "[~@15 [c4,eb4]@3 ~@3 [eb4,gb4]@12 [eb4,g4]@10 [c4,eb4] ~@4]/2", // Cm Ebm Eb Cm
D: "[~ [c4,eb4]@13 ~ [c4,eb4] ~@5 [db4,gb4]@12 [d4,g4]@9 ~ [d4,g4]@2 ~@3]/2", // Cm Gb5 G5
E: "[~@15 [d4,gb4]@2 ~@4 [eb4,gb4]@11 ~ [eb4,g4]@10 [c4,eb4]@2 ~@3]/2", // D Ebm Eb Cm
F: "[~ [c4,eb4]@14 [eb4,gb4]@2 ~@4 [eb4,ab4]@10 [e4,a4]@8 [f4,bb4]@2 ~@7]/2", G: "~ b4@2 bb4@18 ~@3",
H: "[~@3 eb4@4 ~ f4!2 ~ gb4 f4 ~ eb4 eb4@4 ~ db4 c4@12 b3@12 bb3@12 c4@12 eb4@12 d4@11 ~@4]/4",
I: "~ eb4@2 f4@3 ~ eb4@2 gb4@6 eb4@3 ~@6",
J: "[~ [g4,c5]@2 [gb4,b4]@4 [f4,bb4]@4 [d4,g4]@4 [ab4,db5]@4 [g4,c5]@4 [d4,g4]@4 ~@5]/4", // C5 B5 Bb5 G5 Db5 C5 G5
K: "[~@13 c4 ~ c4@4 bb3@2 c4@17 ~ c4@4 bb3@2 eb4@6 f4@4 eb4@8 ~@9]/3",
L: "[~@3 [f4,bb4]@4 [ab4,db5]@3 [gb4,b4]@3 [f4,bb4]@2 ~@3]/3", M: "~@11 gb4", N: "g4@3 ~ c4@2 ~@18",
O: "[~@3 [ab4,db5]@2 [g4,c5]@2 [d4,g4]@2 ~@3]/3", P: "~@6 c4@12 c4@5 ~", Q: "c4@2 bb3 c4@2 eb4@4 ~@3",
R: "~@3 c4@6 c4@2 ~", S: "[c4@4 bb3@2 c4@3 eb4@2 ~ f4 gb4 ~ f4 c4 ~ eb4@12 db4@12 c4@24 ~@6]/3",
T: "~@2 [b3,eb4] ~@2 [b3,db4]@4 ~@2 [db4,eb4]", // B Bsus2 Dbsus2
U: "~@4 eb4@2 [db4,eb4]@3 ~@3 [db4,eb4]@3 ~@3 [b3,eb4]@6, ~@4 db4 ~@19", V: "[b3,eb4]@2 [b3,eb4] ~@9",
W: "~@2 [b3,eb4] ~@2 [b3,eb4]@4 [db4,eb4]@2 [b3,db4]", X: "[c4,d4]@2 [db4,eb4] ~@8 [db4,eb4]",
Y: "~@4 [db4,eb4] ~ [db4,eb4]@4 ~@2 [db4,eb4]@4 ~@2 [b3,eb4]@5 ~", // Dbsus2 B
Z: "[b3,eb4]@3 ~ [c4,d4]@7 ~ c4@4 [b3,eb4]@2 ~@4 [eb5,e5,bb5,b5] ~, ~@11 d4@4 ~@9", // B Csus2 B Emaj7
AA: "[eb5,bb5] ~@3 [b4,db5,gb5,ab5] ~ [b4,gb5] ~@3 [gb4,ab4,eb5,e5] ~ [gb4,eb5] ~@3 [eb4,e4,b4,db5] ~ [eb4,b4] ~@3 [eb4,gb4]@2", // Eb5 Bsus2 B5 Emaj7 Ebm Dbm7 Abm Ebm
AB: "[e4,g4]@4 [f4,ab4]@3 ~@17", // Em Fm
})).s("gm_alto_sax").gain(0.35).pan(0.4)
// chords · tenor sax
const tenor_sax = note(`<
~@32 A@2 B@2 C@2 D@2 E ~@15 F@4 G H@4 ~ I@3 ~@9 J@3 ~@6 K L ~@5 M@3 N O P Q@3 ~ R S T U V W X Y Z
>`.pickRestart({
A: "[~@15 [g3,bb3]@3 ~@3 [a3,db4]@12 [ab3,c4]@10 bb3@2 ~@3, ~@43 g3 ~@4]/2", // Gm A Ab
B: "[~ [g3,bb3]@13 ~ [g3,bb3]@2 ~@4 [ab3,bb3]@12 [a3,b3]@10 [g3,bb3]@2 ~@3]/2", // Gm Absus2 Asus2 Gm
C: "[~@15 [bb3,c4]@2 ~@4 [a3,db4]@12 [ab3,c4]@9 ~ [g3,bb3]@2 ~@3]/2", // Bbsus2 A Ab Gm
D: "[~ [g3,bb3]@14 [bb3,c4]@2 ~@4 [ab3,c4]@10 [a3,db4]@8 [bb3,d4]@3 ~@6]/2", E: "~ b3@2 bb3@18 ~@3",
F: "[~@3 eb4@4 ~ f4!2 ~ gb4 f4 ~ eb4 eb4@4 ~ db4 c4@12 b3@12 bb3@12 c4@12 eb4@12 d4@11 ~@4]/4",
G: "~ eb4@2 f4@4 eb4 ~ gb4@6 eb4@2 ~@7",
H: "[~ [ab3,eb4]@2 [a3,db4]@4 [g3,c4]@4 [eb3,bb3]@4 [b3,eb4]@4 [bb3,d4]@4 [a3,c4]@4 ~@5]/4", // Ab5 A C5 Eb5 B Bb Am
I: "[~@13 c3 ~ c3@4 bb2@2 c3@17 ~ c3@4 bb2@2 eb3@6 f3@4 eb3@8 ~@9]/3",
J: "[~@12 [g3,c4]@15 ~ [bb3,eb4]@12 [ab3,db4]@12 [g3,c4]@8 ~@12]/3", K: "~@11 gb3", L: "g3@3 ~ c3@2 ~@18",
M: "[~@3 [b3,eb4]@2 [bb3,d4]@2 [a3,c4]@2 ~@3]/3", N: "~@6 c3@12 c3@5 ~", O: "c3@2 bb2 c3@2 eb3@4 ~@3",
P: "~@3 c3@6 c3@2 ~", Q: "[c3@4 bb2@2 c3@3 eb3@2 ~ f3 gb3 ~ f3 c3 ~ eb3@12 db3@12 c3@24 ~@6]/3",
R: "~@4 [f3,ab3]@2 ~@3 [f3,ab3]@8 ~@5 [gb3,bb3]@2", S: "~@4 [gb3,bb3] ~ [gb3,bb3]@3 ~@3 [gb3,bb3]@4 ~@2 [gb3,ab3]@6",
T: "[gb3,ab3]@2 [gb3,ab3] ~@9", U: "~@4 [gb3,ab3]@3 ~@3 [gb3,ab3]@8 [gb3,bb3]@4 [e3,ab3]@2",
V: "[f3,a3]@3 ~ gb3@2 ~@16 [gb3,bb3]@2, ~@4 bb3 ~@19", // F Gb
W: "~@4 [gb3,bb3] ~ [gb3,bb3]@3 ~@3 [gb3,bb3]@4 ~@2 [gb3,ab3]@5 ~", // Gb Gbsus2
X: "[gb3,ab3]@3 ~ [gb3,a3]@7 ~ [gb3,a3]@3 ~ [gb3,ab3]@2 ~@4 [b4,db5] ~", // Gbsus2 Gbm Gbsus2 Bsus2
Y: "b4 ~@3 [eb4,e4] ~ eb4 ~@3 [bb3,b3] ~ bb3 ~@3 [ab3,bb3] ~ ab3 ~@3 [ab3,b3]@2", // Emaj7 Bmaj7 Absus2 Abm
Z: "[a3,c4]@4 [bb3,db4]@3 ~@5 gb3@4 ~@8", // Am Bbm
})).s("gm_tenor_sax").gain(0.35).pan(0.4)
// other · baritone sax
const baritone_sax = note("<~@32 A@2 B@2 C@2 D@2 ~@21 E@4 ~@13 F G H ~@13 I@3 ~@7 J K L M N O P Q R>".pickRestart({
A: "[~@15 eb3@3 ~@3 gb3@12 f3@10 eb3@2 ~@3]/2", B: "[~ eb3@13 ~ eb3 ~@5 e3@12 f3@9 ~ e3@3 ~@2]/2",
C: "[~@15 gb3@2 ~@4 gb3@12 f3@10 eb3@2 ~@3]/2", D: "[~ eb3@14 ab3@2 ~@4 f3@10 gb3@8 g3@2 ~@7]/2",
E: "[~@3 f3@6 eb3@11 ~ d3@11 ~ bb2@11 ~ f3@12 e3@12 eb3@12 ~@15]/4", F: "~@12 bb2@11 ~", G: "bb2@11 ~ b2@11 ~",
H: "bb2@11 ~ bb2@3 ~ eb2@2 ~@6", I: "[~@3 f3@2 e3@2 eb3@2 ~@3]/3", J: "~@2 db3 ~@2 db3@4 ~@2 eb3",
K: "~@4 eb3@2 eb3@3 ~@3 eb3@3 ~@3 eb3@6", L: "eb3@4 eb3@3 ~@17", M: "~@4 eb3@2 ~@4 eb3@7 ~ eb3@4 db3@2",
N: "d3@2 eb3 ~@8 eb3", O: "~@4 eb3 ~ eb3@4 ~@2 eb3@3 ~@3 eb3@5 ~", P: "eb3@3 ~ d3@7 ~ d3@3 db3@3 ~@6", Q: "~@11 e3",
R: "f3@3 ~ gb3@2 ~@6 gb2@4 ~@8",
})).s("gm_baritone_sax").gain(0.35).pan(0.3)
// other · brass section · Bb Gb G Ab G Ab A Bb …
const brass_section = note(`<
~@76
[~@13 [bb3,bb4]@3 ~@8]
~@15
[[gb3,gb5] [g3,g5] [ab3,ab5] [g3,g5] [ab3,ab5] [a3,a5] [bb3,bb5] ~@5]
~@9
[~@6 c5 d5 eb5 g5@2 ~]
~@9
[~@3 [gb3,gb4] ~@2]
>`).s("gm_brass_section").gain(0.45)
// chords · trumpet
const trumpet = note(`<
~@32 A@2 B@2 C@2 D@2 ~@24 E ~@7 F G@2 H@2 I J ~ K ~@3 L ~@4 M N ~@2 M O ~ L ~ P ~ L ~ Q ~ R S T U V W X Y Z
>`.pickRestart({
A: "[~@15 [eb4,bb4]@3 ~@3 [db5,gb5]@12 [c5,g5]@10 [bb4,eb5]@2 ~@3]/2", // Eb5 Gb5 C5 Eb5
B: "[~ [g4,c5]@14 [eb4,bb4]@2 ~@4 [db5,gb5]@12 [d5,g5]@9 ~ [d5,g5]@2 ~@3]/2", // C5 Eb5 Gb5 G5
C: "[~@15 [e4,bb4]@2 ~@4 [db5,gb5]@12 [c5,g5]@10 [bb4,eb5]@2 ~@3]/2", // Edim Gb5 C5 Eb5
D: "[~ [g4,c5]@14 [bb4,eb5]@2 ~@4 [eb5,ab5]@10 [e5,a5]@8 [f5,bb5]@2 ~@7]/2", E: "~@13 [ab4,eb5]@7 ~ [bb4,eb5]@3",
F: "~ [c5,g5]@5 ~@2", // C5
G: "[~ [eb4,bb4]@2 c5 ~ bb4@2 [c5,g5]@2 [eb5,bb5]@2 ~@4 [c5,g5]@2 ~@3 [eb5,ab5]@9 ~ [db5,g5]@2 ~@4 [db5,g5]@2 [c5,f5]@2 ~@8, ~@3 g4@2 ~@43, ~@2 eb5 ~@21]/2", // Eb5 C5 Eb5 C5 Ab5 Dbdim F5
H: "[~@8 c5@2 ~@2 [c5,g5] ~ [c5,gb5]@2 ~ [c5,f5] ~ [c5,gb5]@4 [c5,g5]@2 ~@4 [bb4,eb5]@7 ~ bb4@2 ~@9, ~@8 gb5 ~@39]/2", // C5 Cdim F5 Cdim C5 Eb5
I: "~@5 [c5,g5]@2 [eb5,bb5]@3 ~ [eb5,bb5] ~ [f5,b5]@2 ~@3 [g5,c6]@6", J: "[db5,g5] [c5,f5]@2 ~@3",
K: "~@12 eb5@3 ~ [bb4,eb5] ~@7, ~@11 ab4@4 ~@9", L: "~@6 [bb4,eb5] ~", M: "[ab4,eb5] ~@3 [a4,eb5] ~@3",
N: "[bb4,eb5]@3 ~@7 [g4,eb5]@8 ~@6", O: "[bb4,eb5]@3 ~@7 [g4,d5]@8 ~@6", P: "~@6 [ab4,eb5] ~", Q: "~@9 [c5,g5]@2 ~",
R: "~@11 [db5,gb5]", S: "~@4 [db5,gb5]@2 [db5,gb5]@3 ~@3 [db5,gb5]@3 ~@3 [b4,gb5]@5 ~",
T: "[b4,gb5]@3 ~ [b4,gb5]@2 ~@18", U: "~@4 [b4,gb5]@2 ~@4 [b4,gb5]@7 ~ [db5,gb5]@3 ~ [b4,e5]@2",
V: "[c5,f5]@3 ~ [db5,gb5]@2 ~@16 [db5,gb5]@2", W: "~@4 [db5,gb5]@2 [db5,gb5]@2 ~@4 [db5,gb5]@3 ~@3 [b4,gb5]@4 ~@2",
X: "[b4,gb5]@2 ~@2 [c5,gb5]@8 [c5,gb5]@3 ~ [b4,gb5]@2 ~@6", Y: "~@11 [ab4,eb5]", Z: "[a4,e5]@2 [bb4,f5] ~@9",
})).s("gm_trumpet").gain(0.5).pan(0.6)
// … 157 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.