0:00/0:00
// Nice 'N Easy — Frank Sinatra
// 116 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 3 "Alto Sax 1" named as a reed, played on alto sax (its vibraphone patch is not one)
// note: Full arrangement: all 85 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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 · "Jazz Bass"
const bass = note(`<
~@3 A B C D E F G H A B C D E F I J K L M N O P Q R S T U V K W X Y Z AA Z AA Z AA AB AC AD AE AF@2 AG AH AI AJ AK AL
AF AM AN AO AP AQ K L M AR O P Q R S T U V K W X Y Z AA Z AA Z AA AS ~ AT@2
>`.pickRestart({
A: "db2@11 ~ ab1@12", B: "db2@11 ~ a1@11 ~", C: "db2@11 ~ ab1@11 ~", D: "db2@11 ~ db2@11 ~", E: "gb2 bb1",
F: "eb2@11 ~ eb2@6 bb2@6", G: "ab2@11 ~ eb2@12", H: "ab2@11 ~ eb2@6 ab2@6", I: "ab2@10 eb2 ~ ab2@6 d2@6",
J: "db2@11 ~ db2@6 g2@6", K: "gb2 db2", L: "gb1@11 ~ gb2@10 ~ db2", M: "db3@11 ~ ab2@11 ~",
N: "db2@11 ~ db2@6 gb2@5 gb1", O: "f2@4 f1@8 f1@5 ~ f2@6", P: "bb2@11 ~ bb1@6 d2@6", Q: "eb2@11 ~ gb2@6 eb2@4 ~ bb1",
R: "eb2@5 ~ a2@4 ab2@13 ~", S: "db2 ~ c2 db2", T: "c2@6 db2@4 d2@7 ~ db2@6", U: "db3 ab2", V: "db2@2 ab2 g2",
W: "f1@2 f1 a1", X: "bb1!2", Y: "eb2@11 ~ eb2@5 ~ bb2@6", Z: "ab1@9 ~ ab1 ~ ab1@11 ~", AA: "ab1@11 ~ ab1@9 ~ ab1 ~",
AB: "db2@11 ~ bb1@11 ~", AC: "eb2@5 bb1 bb2@4 ~ bb1 ab2@5 eb2 eb3@4 ~ eb2", AD: "db2 b1 c2 db2", AE: "db2 ab2 f2 db2",
AF: "db2 d2 db2!2", AG: "gb1@6 ~ a1@5 bb1@6 bb1@6", AH: "eb2 ~ eb2@2 bb1@2 g2@2",
AI: "ab2@6 a1@6 ab2@5 eb2 eb3@4 ~ eb2", AJ: "eb2!2 ab2!2", AK: "db2 ab2 c2 db2", AL: "db2 db3 ab2 f2",
AM: "db2 c2 db2!2", AN: "gb2@2 ~ gb2@3 bb1@2 bb0 bb1@3, ~@5 gb1@2 ~@17", AO: "eb1@6 f1@6 gb1@6 bb1@4 ~ eb1",
AP: "ab2@6 a1@6 ab1@6 ~ c2@5", AQ: "db2@3 d2@3 db2@2 db1 d2@3", AR: "db2@11 ~ db2@6 gb2@4 ~ gb1",
AS: "db2@6 ~@6 bb1@9 ~ eb2@2", AT: "[~@6 gb2@2 ~@4 e2@3 ~ e2 ~@5 eb2@7 ~ d2@4 db2@2 ~@12]/2",
})).s("gm_acoustic_bass").gain(0.29).pan(0.3)
// chords · piano
const piano = note(`<
~@2 A B C D E F@2 G@2 H I@2 J@2 K L@2 M N O@2 P@2 Q R S T U V W X Y@2 Z@2 AA@3 AB AC AD AE AF AG AH@2 AI AJ AK AL AM
AG AN AO AP AQ AR AS N O@2 AT@2 Q R S T U AU W AV Y@2 AW@2 AA@3 AB AX AY AZ@2
>`.pickRestart({
A: "~@4 db6@2 db7 ~@9 db5@2 db6 ~@5",
B: "~@2 ab5@9 ~ [ab2,ab3,c4,e4,ab4] ~@5 [db2,f3,ab3,db4,f4] ~@5, g5 ~@11, ~ [db2,f3,c6]@11 ~@12", // Abaug Db Dbmaj7
C: "[a2,a3,db4,e4,a4] ~@5 [db2,f3,a3,db4,f4] ~@5 [gb2,gb3,a3,db4,gb4] ~@5 [db2,f3,a3,db4,f4] ~@5", // A Dbaug Gbm Dbaug
D: "~ f5@3 ~ db3 [db5,db6]@3 ~@3 [db2,e3,ab3,b3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5", // Db Dbm7 Db7
E: "[db2,e3,ab3,b3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5 [ab2,gb3,ab3,b3,gb4] ~@5 [db2,f3,ab3,b3,f4] ~@5", // Dbm7 Db7 Abm7 Db7
F: "[~@5 gb2 ~ db5 ~ db5@2 ~ [bb1,db3,f3,bb3,db4] ~@5 [gb2,gb3,bb3,db4,gb4] ~@4 [eb5,bb5]@2 ~@5 [eb4,gb4,bb4,db5,bb5] eb5 ~@5 [bb4,eb5,bb5]@3 ~ [eb4,gb4,bb4,db5,eb5,bb5] ~@6, ~@8 gb5@3 ~@25 [eb4,gb4,db5]@3 ~@9]/2", // Bbm Gb Eb5 Ebm7 Eb5 Ebm7
G: "[~@23 [ab2,gb4,bb4,eb5]@3 ~@11 [gb3,eb4,eb5,eb6]@9 ~ gb3, ~@37 bb5 ~@10]/2", // Ebm
H: "[ab5,eb6] ~@5 [ab4,c5,eb5,f5,eb6] ab5 ~@4 [ab2,ab3,c4,e4,ab4] ~@5 [db2,f3,ab3,db4,f4] ~@5", // Ab5 Fm7 Abaug Db
I: "[[a2,a3,db4,e4,a4] ~@5 [db2,f3,a3,db4,f4] ~@5 [gb2,gb3,a3,db4,gb4] ~@5 [db2,f3,a3,db4,f4] ~@4 db2@3 ~@3 [b4,f5,db6] ~@6 [db2,e3,ab3,b3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5]/2", // A Dbaug Gbm Dbaug Db7 Dbm7 Db7
J: "[[db2,e3,ab3,b3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5 [ab2,gb3,ab3,b3,gb4] ~@5 [db2,f3,ab3,b3,f4] ~@4 [bb3,db4,gb4]@13 [bb1,db3,f3,bb3,db4] ~@5 [gb2,gb3,bb3,db4,gb4] ~@5]/2", // Dbm7 Db7 Abm7 Db7 Gb Bbm Gb
K: "~@5 eb5@2 ~@3 bb4 ~ eb5@4 ~@7 bb4",
L: "[ab2@2 ~@3 [b4,gb5,eb6] ~@6 [ab2,gb3,ab3,b3,gb4] ~@5 [ab2,gb3,ab3,b3,gb4] ~@4 [f3,b3,ab5,ab6]@3 eb6@2 ~ [f3,b3,ab5,d6] ~@6 [db2,f3,ab3,b3,f4] ~@5 [db2,f3,g3,b3,f4] ~@5, ~@23 d6@2 ~@4 ab6@2 ~@17]/2", // B Abm7 Fdim Db7
M: "[gb2,gb3,bb3] eb4 ~@10 [f2,d3,f3,a3,d4] ~@5 [gb2,gb3,bb3,eb4] ~@5, ~@9 eb3 ~@2", // Gb Dm Ebm
N: "[f2,d3,f3,a3,d4] ~@5 [gb2,eb3,gb3,bb3,eb4] ~@5 [gb2,bb3,db4] gb4 ~@10", // Dm Ebm Gb
O: "[[db3,f4,ab4] ~@12 [f3,eb4,eb5,eb6]@9 ~ ab4@5 ~@2 ab3@6 g4 bb4 ~@2 bb4 g4 ~ [a4,eb5]@3 ~ ab3, eb5@2 ~@11 ab5 ~@22 e5@2 ~@4 gb4@3 ~@3]/2", // Db F7 Adim
P: "[[ab3,eb4,f4,b4]@22 ~ [bb1,d3,f3,ab3,d4]@3 ~@10 [bb4,d5,f5,bb5] ab4 ~@10]/2", // Fm7b5 Bb7 Bb
Q: "[eb5,bb5] ~@5 [eb4,gb4,bb4,db5,bb5] eb5 ~@5 [bb4,eb5,bb5]@3 ~ [eb4,gb4,bb4,db5,eb5,bb5] ~@6, ~@4 [eb4,gb4,db5] ~@3", // Eb5 Ebm7 Eb5 Ebm7
R: "[eb2,gb3,bb3,db4,gb4] ~@5 [a2,g3,b3,db4,g4]@17 ~", // Ebm7 A7
S: "db2@2 ~@3 [bb4,f5,db6] ~@6 [c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,bb3,f4] ~@5", // Bbm C7 Bbm7
T: "[c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,bb3,f4] ~@5 [d2,gb3,a3,b3,gb4] ~@5 [db2,f3,ab3,bb3,f4] ~@5", // C7 Bbm7 Bm7 Bbm7
U: "[db2,ab3,b3] f4 ~@10 [c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5", // Db7 C7 Db7
V: "[c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5 [ab2,gb3,ab3,b3,gb4] ~@5 [g2,g3,b3,f4] ~@5, ~@9 f3 ~@2", // C7 Db7 Abm7 G7
W: "[db2,bb4,db5]@3 ~@2 [db2,bb4,db5] ~@6 [ab2,ab3,c4,e4,ab4] ~@5 [gb2,eb3,gb3,bb3,eb4] ~@5", // Gb Abaug Ebm
X: "[f2,eb3,f3,a3,eb4] ~@5 [f2,f3,a3,eb4] ~@11 [f2,eb3,f3,a3,eb4] ~@5", // F7
Y: "[~@5 f5@2 ~@3 bb4 ~ f5@4 ~@7 [eb2,db4,f4,bb4]@3 ~@11 [db3,bb3,bb4,bb5]@9 ~ db3, ~@37 f5 ~@10]/2", // Bbm Gb
Z: "[~@5 eb6@2 ab5@2 ~@4 [ab4,bb4,f5,eb6] ~@9 [gb3,db4,eb4,bb4]@25]/2", // Absus2 Ebm7
AA: "[~@2 f5@20 ~ [gb3,bb3,db4,f4]@23 ~ [f3,bb3,ab5,ab6]@3 eb6@2 ~ [f3,bb3,ab5,eb6] ~@18, e5@2 ~@45 d6@2 ~@4 ab6@2 ~@17, ~ [db3,f4,bb5]@21 ~@50]/3", // Gbmaj7 Bb7 Fm7 Bbm
AB: "[gb3,db4,f4,bb4]@11 ~ [eb2,gb3,bb3,db4,gb4] ~@5 [ab2,gb3,bb3,c4,gb4] ~@5", // Gbmaj7 Ebm7 Ab7
AC: "db2@2 ~@3 [db5,ab5,f6] ~@6 [bb1,db3,f3,ab3,db4] ~@5 [bb1,d3,e3,ab3,d4] ~@5", // Db Bbm7 Bb7
AD: "[bb2,db5,f5]@3 ~@2 [bb2,db5,f5] ~@5 g5@2 ~ bb5@10, ~@13 [ab2,gb3,c6]@11", // Bbm Ab7
AE: "~@2 ab5@9 ~ [c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,bb3,f4] ~@5, ~ [db2,f3,bb5]@11 ~@12, ~ g5@2 ~@21", // C7 Bbm7 Bbm
AF: "[f3,bb3,ab5,ab6]@2 eb6@2 ~ [f3,bb3,ab5,eb6] ~@18, d6 ~@4 ab6@2 ~@17", // Bb7 Fm7
AG: "[db2,f3,ab3,b3,f4] ~@5 [d2,gb3,a3,c4,gb4] ~@5 [db2,f3,ab3,b3,f4] ~@5 [db2,f3,ab3,b3,f4] ~@5", // Db7 D7 Db7
AH: "[~ [ab4,db5,f5,db6] ~@10 [db2,f3,ab3,b3,f4] ~@5 [db2,f3,ab3,b3,f4] ~@4 [eb3,bb3,db4,ab4]@11 ~ [d3,ab3,f5,f6]@3 c6@2 ~ [d3,ab3,f5,b5] ~@6, ~@35 b5@2 ~@4 f6@2 ~@5]/2", // Db Db7 Ebsus4 Ddim
AI: "f4 [gb4,bb4]@3 ~ bb2@18 ~", AJ: "[ab2,gb3,bb3,c4,gb4] ~@5 [a2,g3,b3,db4,g4] ~@6 [bb4,eb5,gb5,eb6] ~@10",
AK: "~@17 ab2 ~ c5 gb5@3 ~", AL: "~ [ab4,db5,f5,db6] ~@10 [c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,bb3,f4] ~@5",
AM: "~@5 db5@2 ~@3 ab4 ~ db5@4 ~@8", AN: "~ f5@3 db3 ~ [db5,db6]@3 ~@3 [db2,f3,ab3,b3,f4] ~@5 [db2,f3,ab3,b3,f4] ~@5",
AO: "[db2,bb4,db5]@3 ~@2 [db2,bb4,db5] ~@7 [f4,bb4,d5,bb5] ~@10", AP: "~@5 eb5@2 ~@3 bb4 ~ eb5@4 ~@8",
AQ: "[ab2,gb3,bb3,c4,gb4] ~@5 [a2,g3,b3,db4] ~@7 bb5@9 ~, ~@3 g4 ~@2 g5 ~@5, ~@13 [ab2,gb3,c6]@11", // Ab7 A7 Ab7
AR: "[db2,f3,ab3,b3,f4] ~@5 [d2,gb3,a3,db4,gb4] ~@5 [ab5,eb6] ~@5 [ab4,b4,eb5,f5,eb6] ab5 ~@4", // Db7 Dmaj7 Ab5 Fm7b5
AS: "[gb2,gb3,bb3] eb4 ~@10 [f2,d3,f3,a3,d4] ~@5 [gb2,eb3,gb3,bb3,eb4] ~@5", // Gb Dm Ebm
AT: "[[ab3,eb4,f4,b4]@22 ~ [bb1,d3,f3,ab3,d4]@3 ~@10 [d5,f5] [ab4,bb4,bb5] ~@10]/2", // Fm7b5 Bb7 Dm Absus2
AU: "[c2,e3,g3,bb3,e4] ~@5 [db2,f3,ab3,b3,f4] ~@5 [ab2,gb3,ab3,b3,gb4] ~@5 [g2,f3,g3,b3,f4] ~@5", // C7 Db7 Abm7 G7
AV: "[f2,eb3,f3,a3,eb4] ~@5 [f2,f3,a3] eb4 ~@10 [f2,eb3,f3,a3,eb4] ~@5", // F7 F F7
AW: "[~@5 eb6@2 ab5@2 ~@3 ab4 [bb4,f5,eb6] ~@9 [gb3,db4,eb4,bb4]@25]/2", // Bbsus4 Ebm7
AX: "~@6 [f3,ab3,bb3,db4] ~@5 [e3,g3,bb3,db4]@3 ~ [e3,g3,bb3,db4] ~@5 [bb3,db4,gb4,ab4] ~", // Bbm7 Edim Gb
AY: "~@6 [f5,f6] ~@5 ab5@3 ~ bb5@6 ~@2", // F
AZ: "[db6 ~@5 [e3,gb3,bb3,db4] ~@5 [b2,ab3,b3,db4]@3 ~ [b2,ab3,b3,db4] ~@5 [bb2,gb3,bb3,db4]@7 ~ [a2,gb3,a3,db4]@3 ~ [ab2,f3,ab3,db4] ~@13]/2", // Gb7 Db7 Gb Gbm Db
})).s("gm_piano").gain(0.16).pan(0.3)
// other · alto sax · "Alto Sax 2"
const alto_sax = note(`<
~ A B ~@15 C D ~@3 E F ~ G H I H I J K ~@10 L M N O@2 P Q ~ L M N O@2 P R@2 S ~@3 E F ~ G H I H I J K ~@8 T@2 U@2
>`.pickRestart({
A: "~@9 bb4@2 a4", B: "bb4 ~@5 bb3@4 a3@2 bb3 ~@11", C: "~@8 b3 ~@2 b3", D: "db4 ~@11", E: "~@2 b3 b3@2 b3 ~@6",
F: "~@3 bb3@8 ~", G: "~@6 eb4@4 f4@11 ~@3", H: "~@4 db4@2 ~@6 c4 ~@5 db4 ~@5", I: "c4 ~@5 db4@3 ~ d4@7 ~ db4 ~@5",
J: "~@4 gb4@7 ~ f4 ~@5 gb4 ~@5", K: "a4@4 a4@13 ~@7", L: "~@4 db4@8 c4@4 db4 ~@7", M: "~@22 eb4 ~",
N: "~@4 e4@7 ~ eb4@4 b3 ~@7", O: "[~@16 d4@2 eb4@4 ab4@14 f4@11 ~]/2", P: "f4@4 eb4 ~@19",
Q: "c4@4 c4@2 db4@4 c4 ~@13", R: "[c4@4 c4@2 db4@4 c4 ~@11 eb4@6 eb4@2 e4@4 eb4@13 ~]/2", S: "db4 ~@23",
T: "[~@21 bb3@23 ~@4]/2", U: "[~@6 ab4@2 ~@4 ab4@3 ~ ab4 ~@5 db4@7 d4 b3@4 bb3@2 ~@12, ~@30 c4 ~@17]/2",
})).s("gm_alto_sax").gain(0.25).pan(0.7)
// other · tenor sax · "Tenor Sax 1"
const tenor_sax = note(`<
~ A B C D C D E@4 C D C D F@4 G ~ H@2 I J K L M N O P Q R@2 S T U T U V W@2 ~ X Y Z AA@2 AB AC ~ X Y Z AA@2 AB AD@2 AE
~ H@2 I J K L M N O P Q R@2 S T U T U V AF@3 AG@2
>`.pickRestart({
A: "~@9 ab4@2 g4", B: "ab4 ~@5 ab3@4 g3@2 ab3 ~@11", C: "~@4 f4@7 ~ e4 ~@5 f4 ~@5", D: "e4 ~@5 f4@3 ~ gb4@7 ~ f4 ~@5",
E: "[~@4 gb4@7 ~ f4 ~@5 gb4@4 ab4@18 ~@2 gb4@4 eb4@28 ~@22]/4",
F: "[~@4 gb4@7 ~ f4 ~@5 gb4@4 ab4@18 ~@2 gb4@4 bb4@28 ~@14 a3@2 ~@4 a3@2]/4", G: "bb3 ~@11",
H: "[~@6 db4@2 ~@4 db4@4 c4@2 bb3@4 ab3@11 ~ f3@2 ~@12]/2", I: "~@2 ab3 ab3@2 ab3 ~@6", J: "~@3 ab3@8 ~",
K: "~@11 f3", L: "ab3@4 f3@2 db4@4 c4@11 ~@3", M: "~@4 bb3@2 ~@6 bb3 ~@5 b3 ~@5", N: "bb3 ~@5 bb3@3 ~ b3@7 ~ bb3 ~@5",
O: "~@4 b3@2 ~@6 bb3 ~@5 b3 ~@5", P: "bb3 ~@5 b3@3 ~ b3@7 ~ b3 ~@5", Q: "~@4 eb4@7 ~ eb4 ~@5 eb4 ~@5",
R: "[g4@4 g4@13 ~ f3@4 db4@24 ~@2]/2", S: "~@3 db5@2 bb4 c5@2 db5 c5@2 bb4", T: "c5@6 db5@4 c5@7 ~ ab4@4 db4@2",
U: "gb4@2 ab4 gb4@2 gb4 ~@2 db5@3 bb4", V: "c5@4 db5@8 c5@2 ~ c5@2 ~ f4@4 db4@2, ~@14 db5@2 ~ ab4@2 ~@5",
W: "[gb4@4 ab4@7 ~ f4@2 ~ f4@2 ~ bb3@4 db4@11 ~ bb3 ~@13, ~@14 gb4@2 ~ eb4@2 ~@29]/2", X: "~@4 bb3@8 bb3@4 bb3 ~@7",
Y: "~@11 b3", Z: "~@4 c4@7 ~ b3@4 ab3 ~@7", AA: "[~@16 bb3@2 b3@4 eb4@14 d4@11 ~]/2", AB: "db4@4 db4 ~@19",
AC: "bb3@4 bb3@2 b3@4 bb3 ~@13", AD: "[bb3@4 bb3@2 b3@4 bb3 ~@11 b3@6 b3@2 c4@4 b3@13 ~]/2", AE: "bb3 ~@23",
AF: "[gb4@4 ab4@7 ~ f4@2 ~ f4@2 ~ bb3@4 db4@11 ~ bb3 ~@10 gb3@23 ~@4, ~@14 gb4@2 ~ eb4@2 ~@53]/3",
AG: "[~@6 e4@2 ~@4 gb4@3 ~ gb4 ~@5 bb3@7 ~ a3@4 ab3@2 ~@12]/2",
})).s("gm_tenor_sax").gain(0.3).pan(0.4)
// other · tenor sax · "Tenor Sax 2"
const tenor_sax_2 = note(`<
~ A B ~@15 C D ~@3 E F ~ G H I H J K L ~@10 M N O P@2 Q R ~ M N O P@2 Q S@2 T ~@3 E F ~ G H I H J K L ~@8 U@2 V@2
>`.pickRestart({
A: "~@9 f4@2 e4", B: "f4 ~@5 f3@4 e3@2 f3 ~@11", C: "~@8 f3 ~@2 f3", D: "gb3 ~@11", E: "~@2 eb3 eb3@2 eb3 ~@6",
F: "~@3 f3@8 ~", G: "~@6 g3@4 gb3@11 ~@3", H: "~@4 ab3@2 ~@6 g3 ~@5 ab3 ~@5", I: "g3 ~@5 ab3@3 ~ a3@7 ~ ab3 ~@5",
J: "g3 ~@5 ab3@3 ~ ab3@7 ~ g3 ~@5", K: "~@4 db4@7 ~ db4 ~@5 db4 ~@5", L: "eb4@4 eb4@13 ~@7",
M: "~@4 ab3@8 g3@4 ab3 ~@7", N: "~@11 f3", O: "~@4 gb3@7 ~ f3@4 f3 ~@7", P: "[~@16 e3@2 f3@4 bb3@14 ab3@11 ~]/2",
Q: "bb3@4 bb3 ~@19", R: "gb3@4 gb3@2 g3@4 gb3 ~@13", S: "[gb3@4 gb3@2 g3@4 gb3 ~@11 f3@6 f3@2 gb3@4 f3@13 ~]/2",
T: "gb3 ~@23", U: "[~@21 eb3@23 ~@4]/2", V: "[~@6 bb3@2 ~@4 b3@3 ~ b3 ~@5 gb3@7 ~ gb3@4 f3@2 ~@12]/2",
})).s("gm_tenor_sax").gain(0.25).pan(0.4)
// other · baritone sax · "Bari Sax"
const baritone_sax = note(`<
~ A B ~@6 C D E ~@5 F G H I@2 ~ J K L M N O N O P Q ~ R S@6 ~@2 T U V W@2 X Y Z T U V W@2 X AA@2 H I@2 ~ J K L M N O N
O P Q ~ R S@2 AB@2 S@2 AC@2 AD@2
>`.pickRestart({
A: "~@9 ab3@2 g3", B: "ab3 ~@5 ab2@4 g2@2 ab2 ~@11", C: "~@4 ab2@2 ~@4 ab2@2 ab2 ~@9 ab2 ~",
D: "~@4 ab2@2 ab2 ~@9 ab2@2 ~@4 ab2@2", E: "db3 ~@23", F: "~@4 eb3@2 ~@4 db3@2 eb3 ~@9 eb3 ~",
G: "~@4 db3@2 eb3 ~@17", H: "~@4 db3@7 ~ c3 ~@5 db3 ~@5", I: "[c3 ~@5 db3 ~@5 eb3@3 ~ db3 ~@5 db3@23 ~@3]/2",
J: "~@2 d2 d2@2 d2 ~@6", K: "~@3 g2@8 ~", L: "~@11 f3", M: "ab3@4 f3@2 a2@4 ab2@11 ~@3",
N: "~@4 f3@2 ~@6 e3 ~@5 f3 ~@5", O: "e3 ~@5 f3@3 ~ gb3@7 ~ f3 ~@5", P: "~@4 gb2@7 ~ ab2 ~@5 gb2 ~@5",
Q: "f2@4 f2@19 ~", R: "~@16 eb3@7 ~", S: "[db3@2 ~@4 db3@2 ~@4 db3@3 ~ db3 ~@5 eb3@7 ~ eb3@3 ~ eb3 ~@13]/2",
T: "~@4 f3@8 e3@4 f3 ~@7", U: "~@11 db3", V: "~@4 d3@7 ~ db3@4 db3 ~@7", W: "[~@16 c3@2 db3@4 gb2@14 bb2@11 ~]/2",
X: "eb2@2 eb2 ~@9", Y: "ab2@4 ab2@2 a2@4 ab2 ~@13", Z: "bb2@9 ~ ab2@11 ~ bb2@2",
AA: "[ab2@4 ab2@2 a2@4 ab2 ~@11 db3@6 db3@2 d3@4 db3@13 ~]/2",
AB: "[db3@2 ~@4 db3@2 ~@4 db3@3 ~ db3 ~@5 eb3@7 ~ eb3@4 eb3 ~@13]/2", AC: "[~@21 ab2@23 ~@4]/2",
AD: "[~@6 gb2@2 ~@4 e2@3 ~ e2 ~@5 eb2@7 ~ d2@4 db2@2 ~@12]/2",
})).s("gm_baritone_sax").gain(0.25).pan(0.8)
// other · trumpet · "Trumpet 1"
const trumpet = note(`<
~ A B ~@6 C D E ~@7 F G@2 H I@4 J ~ J ~ K L M N O@6 P Q ~@7 R ~@8 F G@2 S I@4 J ~ J ~ K L M N O@6 T ~ U@2
>`.pickRestart({
A: "~@9 db5@2 c5", B: "db5 ~@5 db4@4 c4@2 db4 ~@11", C: "~@4 c5@2 ~@4 db5@2 c5 ~@9 c5 ~",
D: "~@4 db5@2 c5 ~@9 c5@2 ~@4 db5@2", E: "c5 ~@23", F: "~@4 db5@7 ~ c5 ~@5 db5 ~@5",
G: "[c5 ~@5 db5 ~@5 eb5@3 ~ db5 ~@5 ab4@23 ~@3]/2", H: "~@4 f4@5 ~ f4@2 ab4 ~@5 bb4 ~@5",
I: "[b4@17 ~ bb4@4 ab4@7 ~ g4@4 d4@2 gb4@3 ~ f4 ~@5 eb4@44 ~@6]/4", J: "~@2 f4 ~@9", K: "~@4 bb4@7 ~ a4 ~@5 bb4 ~@5",
L: "b4@4 c5@19 ~", M: "~@4 f5@2 ~@4 eb5@2 f5 ~@9 g5 ~", N: "~@4 f5@2 g5 ~@9 f4@7 ~",
O: "[ab4 ~@5 ab4 ~@5 ab4@3 ~ ab4 ~@5 db5@7 ~ db5@3 ~ db5 ~@13]/2", P: "~@16 ab5@7 ~", Q: "f5@9 ~ bb4@11 ~ ab4 ~",
R: "db5@9 ~ c5@11 ~ bb4 ~", S: "~@4 f4@2 ~@4 f4@2 ab4 ~@5 bb4 ~@5", T: "~@6 db5@2 ~@4 db5@3 ~ db5 ~@5 ab5 ~",
U: "[~@6 db5@2 ~@4 db5@3 ~ db5 ~@5 ab4@5 g4 [f4,gb4] [eb4,e4] db4@3 ~ db4@2 ~@12, ~@30 d4 ~@17]/2", // Gbmaj7 Emaj7
})).s("gm_trumpet").gain(0.48).pan(0.6)
// other · trumpet · "Trumpet 2"
const trumpet_2 = note(`<
~ A B ~@6 C D E ~@7 F G@2 ~@5 H ~ H ~ I J K L M@6 ~@2 N O ~ P Q R ~ S T U ~ V W ~ X Y F Z@2 ~@5 H ~ H ~ I J K AA M@6
AB ~ AC@2
>`.pickRestart({
A: "~@9 bb4@2 a4", B: "bb4 ~@5 bb3@4 a3@2 bb3 ~@11", C: "~@4 ab4@2 ~@4 ab4@2 ab4 ~@9 ab4 ~",
D: "~@4 ab4@2 ab4 ~@9 ab4@2 ~@4 ab4@2", E: "ab4 ~@23", F: "~@4 bb4@7 ~ a4 ~@5 bb4 ~@5",
G: "[a4 ~@5 bb4 ~@5 db5@3 ~ bb4 ~@5 f4@23 ~@3]/2", H: "~@2 db4 ~@9", I: "~@4 gb4@7 ~ f4 ~@5 gb4 ~@5",
J: "a4@4 a4@19 ~", K: "~@4 db5@2 ~@4 db5@2 db5 ~@9 eb5 ~", L: "~@4 eb5@2 eb5 ~@9 db4@7 ~",
M: "[f4 ~@5 f4 ~@5 f4@3 ~ f4 ~@5 bb4@7 ~ bb4@3 ~ bb4 ~@13]/2",
N: "~@2 c5 ~ db5 eb5 ~ f5 gb5 ~ ab5 bb5 a5@2 ~@4 gb5 ~ bb5 ab5 ~ f5",
O: "~ eb5 db5 ~ c5 bb4 ab4 ~ g4 gb4 ~ f4 eb4 ~ db4 c4 ~ bb3 ab3@5 ~", P: "bb3@2 eb4 ~@2 bb3 eb4@3 ~@12 b3 ~@2",
Q: "~ bb3@4 ~ eb4@5 ~ f4@6 d4 ~ f4 ~@2 ab4", R: "a4@2 ~ bb4@3 f4@5 ab4 ~@2 eb4@4 ~@6, ~@13 gb4@2 ~@9",
S: "~@3 c4 ~ db4 c4 ~ b3 bb3 ~ a3 ab3 ~ a3 b3 ~ c4 e4 ~ ab4 b4 ~ a4", T: "~ ab4 f4 eb4@2 db4 gb4@2 e4 f4 ~@14",
U: "~@6 ab4 ~ ab4!2 ~ ab4!2 ~@2 a4 bb4 ~ ab4@3 ~@3",
V: "~@5 d4 ~ db4 c4 ~ b3 bb3 b3 eb4 gb4 ~ bb4 b4 ~ bb4 gb4 f4@2 ~",
W: "db4 ~ eb4 ~ f4 ab4 ~ f4 gb4 ~ bb4 db5 c5 ab4 e5 c5 ab4 f4 g5 e5 c5 ab4@2 ~",
X: "c5@2 db5 ~ eb5 ~@3 gb5 ~ g5 a5 gb5 ~ db5 d5 ~ f5 ~ eb5 f5 ~ gb5 ab5",
Y: "f5@2 ~@4 d5@2 ~ b4 ~ d5 b4@2 ~ eb5 ~ g5 ab5@2 ~@4", Z: "[a4 ~@5 bb4 ~@5 db5@3 ~ bb4 ~@5 f4@24 ~@2]/2",
AA: "~@4 eb5 ~ eb5 ~@9 db4@7 ~", AB: "~@6 bb4@2 ~@4 bb4@3 ~ bb4 ~@5 f5 ~",
AC: "[~@6 bb4@2 ~@4 b4@3 ~ b4 ~@5 gb4@5 f4 [eb4,e4] [db4,d4] b3@3 ~ bb3@2 ~@12, ~@30 c4 ~@17]/2", // Emaj7 Dmaj7
})).s("gm_trumpet").gain(0.48)
// other · trumpet · "Trumpet 3"
const trumpet_3 = note(`<
~ A B ~@6 C D E ~@7 F G@2 ~@5 H ~ I ~ J K L M N@4 O@2 P Q ~@7 R ~@8 F G@2 ~@5 H ~ I ~ J K L M N@6 S ~ T@2
>`.pickRestart({
A: "~@9 ab4@2 g4", B: "ab4 ~@5 ab3@4 g3@2 ab3 ~@11", C: "~@4 gb4@2 ~@4 gb4@2 gb4 ~@9 gb4 ~",
D: "~@4 gb4@2 gb4 ~@9 gb4@2 ~@4 gb4@2", E: "f4 ~@23", F: "~@4 ab4@7 ~ g4 ~@5 ab4 ~@5",
G: "[g4 ~@5 ab4 ~@5 bb4@3 ~ ab4 ~@5 eb4@23 ~@3]/2", H: "~@2 bb3 ~@9", I: "~@2 b3 ~@9",
J: "~@4 eb4@7 ~ eb4 ~@5 eb4 ~@5", K: "g4@4 g4@19 ~", L: "~@4 bb4@2 ~@4 bb4@2 bb4 ~@9 db5 ~",
M: "~@4 db5@2 db5 ~@9 bb3@7 ~", N: "[eb4 ~@5 eb4 ~@5 eb4@3 ~ eb4 ~@5 gb4@7 ~ gb4@3 ~ gb4 ~@13]/2",
O: "[eb4@2 ~@4 eb4 ~@5 eb4@3 ~ eb4 ~@5 gb4@7 ~ gb4@3 ~ gb4 ~@13]/2", P: "~@16 e5@7 ~", Q: "db5@9 ~ gb4@11 ~ f4 ~",
R: "bb4@9 ~ a4@11 ~ ab4 ~", S: "~@6 ab4@2 ~@4 g4@3 ~ g4 ~@5 d5 ~",
T: "[~@6 ab4@2 ~@4 ab4@3 ~ ab4 ~@5 eb4@5 ~ [db4,d4] [b3,c4] a3@3 ~ ab3@2 ~@12, ~@30 bb3 ~@17]/2", // Dmaj7 Cmaj7
})).s("gm_trumpet").gain(0.48).pan(0.4)
// other · trumpet · "Trumpet 4"
const trumpet_4 = note(`<
// … 136 more lines
More by Frank Sinatra
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.