Duke Ellington Masterpieces (Historical Recordings Jazz Masterpieces 2)
I Let a Song Go Out of My Heart
KeyD♭ majorTempo108 bpm
0:00/0:00
// I Let a Song Go Out of My Heart — Ellington
// 108 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 106 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. 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, A@4 for four bars: edit a riff to change every repeat.
// chords · piano
const piano = note(`<
A B C D E F G H I J K L M@2 N O I J P Q R@2 S T U V W X M@2 N O I J Y Z AA AB AC AD AE AF AG AH AA AB AC AD AE AF AI
AJ AK AL AM@2 AN AO@3 AA AB AC AD AE AF AG AH AP@2 AQ AR AE AF AG AH AA AB AC AD AE AF AI AJ AS AT AU AV AW AX AY AZ
BA BB BC BD BE BF BG BH@2 BI@2 BJ BK@2
>`.pickRestart({
A: "~@4 [bb5,bb6] ~@5 f6@2 eb6@4 ~ eb6 [db5,db6]@3 ~@3, ~@10 f5 ~ eb5@6 ~@6, ~@8 f6 ~@3", // Bb Db
B: "eb6@4 f6 eb6 [db5,db6]@2 ~@2 [eb5,eb6] ~@5 [gb4,a4,db5,f5]@8, eb5@3 ~@5 f6@3 ~", // Db Eb Gbm
C: "~@4 [bb4,bb5] ~@5 [f4,f5] ~ eb5@4 f5 eb5 [db4,db5]@3 ~@3, ~@2 eb4 ~", // Bb F Db
D: "eb5@4 f5 eb5 [db4,db5]@2 ~@2 [eb4,eb5] ~@5 [gb3,a3,db4,f4]@8, eb4@3 ~@5 f5@3 ~", // Db Eb Gbm
E: "db3@6 ab2@4 [db4,eb4,ab4]@6 [db4,eb4,ab4] ~@5 db2 ~, [db4,eb4,bb4]@9 ~ db2@11 ~@3", // Dbsus2 Eb7
F: "[f4,db5]@3 ~@3 [gb4,db5]@4 ~@2 [f4,db5]@3 ~ eb4 ~@5 d4 ~", // Db Gb5 Db
G: "[bb2,ab3]@3 ~ [bb2,ab3] ~@5 [ab4,d5,f5,bb5] ~@5 [bb2,ab3]@5 ~ [bb2,ab3] ~", // Bb7
H: "~@6 ab3@4 c4@2 ~@4 [ab3,b3,d4,f4]@7 ~, ~@10 b3 ~@13", // Abdim
I: "[eb2,db4,gb4,bb4]@4 [db4,f4,ab4]@6 ~@2 [gb2,db4,gb4,bb4]@3 ~@3 [g2,db4,f4,g4]@3 ~ [db4,gb4,ab4] ~, ~@2 f2@4 ~@5 ab2", // Ebm7 Db Gb Gm7b5 Dbsus4
J: "~@3 ab2@8 ab2, ~@2 [ab3,gb4,ab4,bb4,db5]@9 ~", // Gb
K: "db2@4 [bb3,eb4,f4,ab4] ~@7 [db2,ab3,bb3,eb4,f4,ab4]@6 [ab3,bb3,eb4,f4,ab4]@6", // Bbsus4 Bbm7 Absus2
L: "[eb3,f4,bb4]@9 ~ [ab2,gb4,ab4,bb4,db5]@12 ~@2, db4@7 ~@17", // Ebsus2 Gb
M: "[[db3,ab3,db4]@2 ~@8 [d4,eb4,a4] ~@7 db6 ab5 eb5 ~ ab5 [bb4,eb5] ~ eb5 bb4 f4 bb4 f4 c4 ~@9 db2 ~ ab4@6, ~@5 bb4 ~@2 db4@16, ~@16 ab4@25 ~@7, ~@11 db2@9 ~@4, ~@31 f4@17]/2", // Db5 D Eb5
N: "~@6 g4@5 ~ [ab3,c4,d4,f4]@4 [bb2,ab3,c4,d4,f4] ~@7, bb2@2 ~, ~@4 [ab3,c4]@7 ~@13, ~@5 [d4,f4]@6 ~@13", // Dm7b5 Bb7 Ab Dm
O: "g4@6 ~@6 bb4@4 [ab3,c4,d4,f4] ~@7, [ab3,c4,d4]@5 ~@3, ~@2 f4@3 ~@3", // Dm7b5
P: "db2@4 [bb3,eb4,f4,ab4] ~@7 [db4,e4,g4]@6 [db4,e4,bb4]@6, ~ g2", // Bbsus4 Dbdim Bbdim
Q: "db2@2 ab2@2 [db3,bb3,eb4,f4,ab4] ~@3 db3@2 ab2@2 [bb3,eb4,f4,ab4] ~ ab2@2 ~@2 [bb3,e4,g4]@3 ~ [db4,gb4]@2, ~@6 db2 ~ db3@4", // Bbm7 Bbsus4 Edim Gb5
R: "[~ bb4 c5 db5@2 gb5@3 bb4 db5@2 ~@6 [c4,e4]@7, [eb2,bb3,db4,gb4]@8 ~@3 [ab3,c5,f5]@13]/2", // C Ebm7 Fm
S: "~@4 ab2@7 ~@5 ab2@8, [ab3,db4,gb4,ab4]@11 ~ [ab3,db4,gb4,ab4]@12", // Dbsus4
T: "ab4@4 db2@6 ~@2 [bb3,db4,f4,ab4]@3 ~ db3@2 [c3,c4,eb4,ab4]@3 ~@3, [db3,bb3,db4,f4] ~@3", // Bbm7 Ab Bbm
U: "[bb2,bb3,f4,ab4]@4 [bb3,db4,f4,ab4] ~@5 [ab3,bb3,db4,f4,ab4]@13 ~, db4 ~@11", // Bb7 Bbm7
V: "b2@4 [a4,d5,gb5] ~@5 [a4,d5,gb5]@2 ~@4 [ab4,db5,e5]@5 ~ [ab4,db5,e5] ~, ~@4 e2@3 ~", // D Dbm
W: "~@3 ab4@8 ~, a2@5 e4@17 ~@2, ~ ab3@10 ~, ~@3 b3@20 ~, ~@2 db4@9 ~",
X: "[db4,f4,bb4]@4 [db4,f4,ab4] ~@5 [ab3,c4,f4] ~@5 [ab3,c4,eb4]@8, eb2@5 ab2@7", // Bbm Db Fm Ab
Y: "db2@4 [bb3,eb4,f4,ab4] ~@7 [bb3,db4,eb4,gb4]@6 [bb3,db4,eb4,gb4]@6, ~ ab2", // Bbsus4 Ebm7
Z: "db2@2 ab2@2 [db3,bb3,eb4,f4,ab4] ~@5 [ab2,bb3,db4,eb4,gb4]@13 ~", // Bbm7 Ebm7
AA: "db3@4 [bb3,eb4,f4,ab4] ~@7 [b3,eb4,f4,bb4]@2 ~@4 [b3,eb4,f4]@4 db3@2, ~@12 db3 ~@5 bb4@3 ~@3", // Bbsus4 Bmaj7 Fm7b5
AB: "[b3,eb4,f4,ab4]@4 [b3,eb4,f4,ab4] ~@11 [b3,eb4,f4,ab4] ~@7", // Fm7b5
AC: "bb2@4 [d4,f4,ab4,bb4] ~@5 bb2 ~ [d4,ab4,c5] ~@5 [d4,f4,ab4,c5]@3 ~ bb2 ~, ~@6 f4 ~@5", // Bb7 Dm7b5
AD: "[f4,bb4]@2 ~@4 [d4,f4,bb4]@4 bb2 ~ [d4,f4,ab4,c5]@3 ~ [d4,f4,bb4] ~@7, d4 ~@23", // Bb5 Bb Dm7b5 Bb
AE: "eb3@4 [db4,f4,bb4] ~@7 bb2@4 eb2 ~ [db4,f4,bb4] ~@5", // Bbm
AF: "ab2@4 [bb3,db4,eb4,gb4] ~@7 [ab2,bb3,eb4,gb4]@12, ~@6 db4@5 ~", // Ebm7 Ebm
AG: "db3@4 [bb3,eb4,f4,ab4] ~@7 bb2@4 [d4,gb4,bb4] ~@7", // Bbsus4 Daug
AH: "[eb3,db4,f4,bb4]@7 ~@3 [ab2,c4,d4]@14, ~@5 [gb3,e4]@6 ~", // Bbm Dm7b5 Gb7
AI: "db3@4 [bb3,eb4,f4,ab4] ~@7 [gb2,bb3,e4,ab4]@4 ~@2 [gb2,bb3,e4,ab4]@4 ~@2", // Bbsus4 Gb7
AJ: "db3@4 [bb3,eb4,f4,ab4] ~@7 [b3,eb4,f4,ab4,bb4]@4 [b3,eb4,f4,ab4,bb4] ~@7", // Bbsus4 Fm7b5
AK: "~@4 [bb3,db4,gb4] ~@7 [bb3,db4,gb4]@3 ~@7 [bb3,db4,g4] ~", // Gb Gdim
AL: "~@6 [bb3,db4,g4] ~@5 [bb3,db4,g4]@3 ~ [bb3,db4,g4] ~@7", // Gdim
AM: "[[bb3,eb4,f4,ab4]@9 ~ [bb3,eb4,f4,ab4] ~@11 [b3,eb4,f4]@8 ~@4 [a3,eb4,f4,ab4,db5]@12 ~@2]/2", // Bbsus4 Fm7b5 Db
AN: "~@4 [bb3,db4,gb4] ~@7 [bb3,db4,gb4] ~@5 [bb3,db4,gb4]@3 ~ [bb3,db4,g4] ~", // Gb Gdim
AO: "[~@6 [bb3,db4,g4] ~@5 [bb3,db4,g4]@3 ~ [bb3,db4,g4] ~@5 [eb4,f4,ab4,c5]@12 [eb4,e4,ab4,b4]@10 ~@2 [db4,eb4,gb4,bb4]@11 ~ [bb3,db4,eb4,ab4]@13 ~]/3", // Gdim Fm7 Emaj7 Ebm7 Bbm7
AP: "[db3@4 [bb3,eb4,f4,ab4] ~@7 [eb4,f4,bb4]@2 ~@4 [a3,db4,eb4,bb4]@4 db3@2 ab4@3 ~@13 [b3,eb4,f4,ab4] ~@7, ~@12 a3@5 ~@5 [bb3,db4,eb4]@4 ~@22, ~@12 db3 ~@35]/2", // Bbsus4 Ebsus2 Eb7 Fm7b5 Eb7
AQ: "bb2@4 [d4,f4,ab4,bb4] ~@5 bb2 ~ a3@5 ~ [a3,f4,ab4]@3 ~ [f4,bb4]@2, ~@12 f4@2 ~@8 [bb2,d4] ~, ~@12 ab4 ~@11", // Bb7 Db Bb5 Bb
AR: "~@6 [d4,f4,bb4]@4 bb2 ~ [d4,f4,ab4,c5]@3 ~ [d4,f4,bb4] ~@7", // Bb Dm7b5 Bb
AS: "[ab3,bb3,db4,eb4]@2 ~@4 [ab3,bb3,db4,eb4]@3 ~@3 [ab3,bb3,db4,eb4]@3 ~ [ab3,bb3,db4,eb4] ~@7", // Absus4
AT: "[g3,bb3,db4,f4]@3 ~@3 [g3,bb3,db4,f4]@3 ~ [g3,bb3,db4,eb4]@5 ~ [g3,bb3,db4,eb4] ~@7", // Gm7b5 Eb7
AU: "~@4 [ab3,bb3,db4,f4] ~@7 [ab3,bb3,db4,f4]@3 ~@3 [ab3,bb3,db4,f4]@3 ~@3", // Bbm7
AV: "~@4 [db3,f3,bb3,b3,e4] ~@7 [db3,f3,bb3,e4]@9 ~@3, ~@12 b3@7 ~@5", // Bbm
AW: "[ab3,bb3,db4,eb4]@3 ~ [ab3,bb3,db4,eb4] ~@7 [ab3,bb3,db4,eb4]@4 [ab3,bb3,db4,eb4] ~@7", // Absus4
AX: "[g3,bb3,db4,f4]@2 ~@4 [g3,bb3,db4,f4]@3 ~ [g3,bb3,db4,eb4]@5 ~ [g3,bb3,db4,eb4] ~@7", // Gm7b5 Eb7
AY: "~@4 [b3,eb4,f4,bb4]@7 ~ [b3,eb4,f4,bb4]@3 ~@3 [b3,eb4,f4,ab4]@3 ~@3", // Bmaj7 Fm7b5
AZ: "~@4 [b3,f4,bb4] ~@5 [b3,eb4,f4,ab4]@6 [b3,eb4,f4,ab4] ~@7, ~@2 eb4 ~@9", // Bb Fm7b5
BA: "db2@2 ~@4 [db4,eb4,bb4]@2 ~@4 [db4,eb4,ab4]@3 ~ [db4,eb4,ab4] ~@5 db2@2", // Eb7 Dbsus2
BB: "[db4,eb4,bb4]@3 ~@3 [db4,eb4,ab4]@4 [db4,eb4,ab4] ~@9 c3@2 b2@2", // Eb7 Dbsus2
BC: "bb2@4 [d4,f4,c5] ~@7 [d4,f4,bb4]@3 ~ [d4,f4,bb4] ~@5 bb2@2", // Dm7 Bb
BD: "[d4,f4,c5]@2 ~@4 [d4,f4,bb4]@3 ~ [d4,f4,bb4] ~@13", BE: "eb2@4 [db4,f4,g4,bb4] ~@7 [eb5,bb5,db6]@12",
BF: "ab2@2 ~@2 [gb4,bb4,db5] ~@17 [db4,eb4,ab4]@2, ~ [gb5,bb5,db6]", BG: "db2@4 [db4,eb4,ab4] ~ f2@6 gb2@6 g2@6",
BH: "[ab2@6 bb2@4 [bb2,db3] ~@7 [b3,eb4,f4,bb4]@30]/2", // Bbm Bmaj7
BI: "[[b3,eb4,f4,bb4]@8 ~@2 [b3,eb4,f4,bb4] ~@7 [bb3,f4,bb4]@9 ~ [b3,f4,bb4] ~@7 [c4,eb4,f4,bb4]@9 ~ [b3,eb4,f4,bb4] ~, ~@9 eb4@5 ~@10]/2", // Bmaj7 Bb5 Bb Cm7 Bmaj7
BJ: "~@6 [bb3,eb4,f4,bb4]@9 ~ [b3,eb4,f4,bb4] ~@7", BK: "[[b3,eb4,f4,bb4]@3 ~]/2",
})).s("gm_piano").gain(0.35)
// bass · acoustic bass
const bass = note(`<
~@3 A B C D E F G H I J K D L M N O P Q R S T U V W X J K D L M N O Y Z AA AB AC AD AE AF AG Z AA AB AC AD AE AH AI AJ
AK AL AM AN AO AP AQ Z AA AB AC AD AE AF AG Z AA AB AC AD AE AF AG Z AA AB AC AD AE AH AI AR AS AT AU AN AV AW AX AY
AA D AZ BA BB BC BD@2 BE@3 BF@2
>`.pickRestart({
A: "~@11 ab1", B: "db2 c2 bb1 ab1", C: "db2@3 ab1@3 f1@3 db2@2 f1", D: "bb1 c2 d2 bb1", E: "ab2 f2 d2 bb1",
F: "eb2@4 f2@8 gb2@3 ~@3 g2@4 ab2 ~", G: "~@2 ab1@4 bb1@3 eb2@2 ab1", H: "db2@6 ab1@6 ab2@5 ~ db2@6",
I: "eb2 ab2 gb2 f2", J: "db2@3 c2@3 bb1@3 ab1@2 ab1", K: "db2 ab1 f1 ab1", L: "f2@3 bb1@3 d2@3 ab2@2 d2",
M: "eb2@4 f2@8 gb2@4 ~@2 g2@3 ~ ab2 ~", N: "~@4 ab1@7 ~ bb1@6 eb2@4 bb1@2", O: "db2 c2 bb1 g1",
P: "db2@5 ~ eb2@6 f2@6 e2@6", Q: "eb2@3 f2@3 gb2@3 bb2@2 db2", R: "ab2!2 eb2 d2", S: "db2 ab1!2 bb1",
T: "db2 ab1 db2 f1", U: "bb1@5 ~ bb1@5 ~ ab1@6 ab1@5 ~", V: "b1@5 ~ b1@5 ~ e1@6 e1@6", W: "a1 e2 db2 a1",
X: "eb2@6 eb2@5 ~ ab1@6 ab1@5 ~", Y: "db2@5 ~ db2@4 ab1@14", Z: "db2@3 ab1@3 b1@3 c2@2 ab1",
AA: "db2@6 eb2@5 ~ f2@6 db2@6", AB: "bb1@6 d2@6 f2@6 ab2@4 f2 ~", AC: "bb2@6 ab2@6 f2@6 d2@5 ~",
AD: "eb2@6 f2@5 ~ gb2@6 g2@4 eb2@2", AE: "ab2 gb2 f2 eb2", AF: "db2@3 b1@3 bb1@3 e2@2 bb1", AG: "eb2 a2 ab2 d2",
AH: "db2@6 ab1@5 ~ gb1@6 ab1@4 gb1@2", AI: "db2 eb2 b1 g1", AJ: "gb2@3 db2@3 gb1@3 gb2@2 gb1",
AK: "g1@6 bb1@6 db2@5 ~ g2@4 ab1@2", AL: "db2@3 bb1@3 ab1@3 bb1@2 ab1", AM: "b1 eb2 db2 ab2",
AN: "gb2@3 db2@3 gb1@3 db2@2 gb1", AO: "g1@3 bb1@3 db2@3 g2@2 bb1", AP: "c2@5 ~ c2@6 e2@6 e2@6", AQ: "eb2!2 ab2 ab1",
AR: "gb2@2 db2 gb1@3 db2@3 gb2@2 gb1", AS: "g2@2 eb2 db2@3 bb1@3 g1@3", AT: "db2@3 eb2@2 ab1 f2@3 db2@2 ab1",
AU: "b1@6 bb1@6 ab1@6 db2@5 ~", AV: "g2@6 db2@6 g1@6 bb1@5 ~", AW: "b1@3 bb1@3 ab1@3 bb1@2 ab1",
AX: "db2@6 eb2@5 ~ ab2@6 ab1@5 ~", AY: "db2@2 ab1 bb1@3 ab1@3 bb1@2 ab1", AZ: "f2 d2 ab2 f2", BA: "eb2 f2 g2 bb2",
BB: "ab2 gb2 f2 ab2", BC: "db2 f1 gb1 g1", BD: "[ab1@5 ~ eb2@4 db2@6 ~@2 db2@9 ~ db2@5 ~@3 db2@10 ~@2]/2",
BE: "[db2@9 ~ db2@2 ~@6 db2@10 db2@8 db2@10 db2@6 ~@2 db2@10 db2@8]/3", BF: "[db2@3 ~]/2",
})).s("gm_acoustic_bass").gain(0.4)
// chords · synth strings 1
const synth_strings_1 = note(`<
~@4 A@2 B@2 C D E F A@2 B@2 G@2 H@2 C I A@2 J K L M A@2 B@2 N O P Q A@2 R@2 C S T U V@2 W X Y Z P AA AB AC E AD AB AC
AE AF AG@2 AH@2 AI S AJ AK AL AM AN AO AI AP AQ AR AS@2 AT X AI AU AV AW C AX E AY C AX AD@2 A@2 AZ@2 BA BB BC ~@7
>`.pickRestart({
A: "[db4,f4,ab4]/2", B: "[d4,f4,ab4]/2", C: "[db4,gb4,bb4]", D: "[bb3,db4,gb4,ab4]", E: "[db4,f4,ab4]",
F: "[db4,gb4,bb4] [bb3,db4,gb4,ab4]", G: "[[db4,gb4,bb4]@27 ~ [bb3,db4,ab4]@20]/2",
H: "[~@6 ab4@6 g4@5 ~ gb4@6 f4@24, db3@43 ~@5]/2", I: "[c4,eb4,ab4] [c4,e4,ab4]", J: "[bb3,db4,f4]",
K: "[b3,d4,gb4] [e4,ab4,b4]", L: "[a3,db4,e4]", M: "[db4,gb4,bb4] [c4,eb4,ab4]", N: "[db4,bb4]@11 ~, gb4",
O: "~ [bb3,db4,ab4]@5", P: "[db4,f4,ab4] [db4,gb4]", Q: "[db4,f4,ab4] [c4,eb4,ab4]", R: "[d4,f4,ab4,bb4]/2",
S: "[c4,eb4,ab4,bb4]", T: "[db4,f4,ab4] [bb3,e4]", U: "[eb4,gb4] [db4,ab4]", V: "[[db4,f4]@3 [b3,f4]]/2",
W: "[bb3,d4]", X: "[d4,f4,ab4]", Y: "[db4,gb4,bb4]@11 ~", Z: "[c4,eb4,ab4]", AA: "[db4,f4] [b3,f4]", AB: "[db4,gb4]",
AC: "[db4,g4]", AD: "[b3,ab4]", AE: "[f4,ab4,c5] [e4,ab4,b4]", AF: "[db4,gb4,bb4]@6 ~ ab4@5, ~@12 [c4,eb4]@11 ~",
AG: "[[db4,f4,ab4]@3 [b3,f4]]/2", AH: "[~ f4, [bb3,d4]@11 ~]/2", AI: "[eb4,gb4,bb4]",
AJ: "[db4,f4,ab4] [db4,gb4,bb4]", AK: "[eb4,gb4,bb4] [c4,e4,ab4]", AL: "[db4,f4,ab4] [a3,f4,ab4]",
AM: "bb3 ab3, [f4,ab4]@11 ~", AN: "bb3 a3, [d4,f4]", AO: "[bb3,d4,f4] [ab3,d4,f4]", AP: "a3 ab3, [db4,gb4]@11 ~",
AQ: "[db4,f4,ab4] [bb3,db4,f4]", AR: "[eb4,gb4,bb4] [ab3,gb4,bb4]", AS: "[[f4,ab4]@6 [eb4,ab4]@5 [f4,ab4]@13]/2",
AT: "[d4,f4,ab4] [eb4,ab4]", AU: "a3 ab3, [eb4,ab4]@11 ~, f4 ~@11", AV: "[db4,f4,ab4] [gb3,c4,e4]",
AW: "[db4,f4,ab4] [b3,f4,ab4]", AX: "[db4,g4,bb4]", AY: "[ab4,db5]", AZ: "[bb3,d4,f4]/2", BA: "[eb4,g4]",
BB: "gb4 eb4, bb3@23 ~", BC: "[db4,f4] [db4,gb4]",
})).s("gm_synth_strings_1").gain(0.17).pan(0.4)
// other · brass section
const brass_section = note(`<
~@36 A ~ B ~ C ~ D E A ~ F ~ C ~ G ~@9 A ~ B ~ C ~ D E H ~ I ~ J K L ~ M N O P J K Q R S T U T S T V W X@2 Y@2 Z ~ AA
AB@7
>`.pickRestart({
A: "~@2 c3 db3@2 bb3@3 db3 a3@2 ab3", B: "~@4 db3@2 d3@4 c4@6 d3 ~ b3@4 bb3@2",
C: "~@9 [ab2,bb3,db4]@2 [ab2,bb3,db4]", D: "~@2 [e3,e4]@4 [db3,db4]@2 [eb3,eb4] [db3,db4]@2 [bb2,bb3]",
E: "[db3,db4] ~@11", F: "~@2 db3 d3@2 c4@3 d3 b3@2 bb3", G: "~@4 e3@2 f3@4 ab3@2 ~@4 e3@2 f3@4 db4 ~",
H: "[db3,ab3]@2 ~@10 [a3,eb4]@5 ~ [a3,eb4]@4 [bb3,f4] ~", // Db5 Adim Bb5
I: "[d3,ab3]@2 ~@10 [a3,eb4]@5 ~ [a3,eb4]@4 [c4,f4] ~, ~@11 d4", J: "[gb3,bb3,db4,f4] [ab3,c4,bb4]",
K: "[e3,b3,a4] [eb3,bb3,ab4]", // Esus4 Ebsus4
L: "[db3,ab3,f4]@3 ~ [ab3,e4]@2 [bb3,f4]@4 [db4,ab4] ~@5 [ab3,e4]@2 [bb3,f4]@4 [db4,ab4] ~", // Db Dbm Bb5 Db5 Dbm Bb5 Db5
M: "[f3,f4]@12 [eb3,eb4]@6 [ab2,ab3]@4 [db3,db4] ~", N: "~@11 [db3,db4]",
O: "[d3,d4]@4 [bb2,bb3]@2 [c3,c4]@6 [bb2,bb3]@4 [d3,d4] ~@5 [bb2,bb3]@2", P: "[c3,c4]@3 [bb2,bb3]@2 [d3,d4] ~@6",
Q: "[db3,ab3,f4]@3 ~ [ab3,e4]@2 [bb3,f4]@4 [db4,ab4] ~@5 [ab3,e4]@2 [bb3,f4]@4 [db4,ab4]@2", R: "[db4,db5] ~@2",
S: "[db3,db4]@3 [d3,d4]@3 [eb3,eb4] ~@5", T: "[db3,db4]@6 [d3,d4]@4 [eb3,eb4] ~@13",
U: "[db3,db4]@6 [d3,d4]@6 [eb3,eb4] ~@11", V: "[b2,b3]@2 [c3,c4]@2 [db3,db4] ~@3",
W: "[eb3,eb4]@3 [e3,e4]@2 [f3,f4] ~@6", X: "[~@10 [bb2,bb3]@2 [b2,b3]@4 [c3,c4]@6 [db3,db4]@15 ~@11]/2",
Y: "[~@5 [b2,b3] [c3,c4]@2 [db3,db4]@3 [d3,d4]@10 ~@3]/2", Z: "~@18 [ab3,f4,bb4]@3 ~ [ab3,f4,bb4]@2",
AA: "~@3 [f3,f4]@3 [gb3,gb4]@2 [f3,f4] [db3,db4]@2 [bb2,bb3]", // F Gb F Db Bb
AB: "[[db3,db4]@3 ~@3 [bb3,bb4]@3 ~ [ab3,ab4]@4 ~@4 [db2,ab3,b3,eb4]@138 ~@12]/7", // Db Bb Ab Abm
})).s("gm_brass_section").gain(0.4).pan(0.6)
// other · alto sax
const alto_sax = note(`<
~@37 A B C D E@2 F B G B H I@2 J K L@2 M N O P Q R B S T U@2 V W X Y Z AA@2 AB AC@2 AD AE AF AG AH@2 AI@2 AJ AK@2 AL
AM AN AO AP AQ AR AS AT AU AV AW@2 AX AY@2 AZ@2 ~@2
>`.pickRestart({
A: "~@5 eb5@3 db5 bb4 ab4 gb4", B: "f4 ~@7", C: "~@16 f4@2 ab4@3 ~@3", D: "db5@5 bb4@6 ~",
E: "[~@12 f4@4 ab4@2 bb4@4 ab4@12 e4 ~@13]/2", F: "~@10 eb5@5 ~ db5@2 bb4@2 ~ gb4@3, ~@10 ab4 ~",
G: "~@2 f4 ab4@2 eb5@3 db5 bb4 ab4 gb4", H: "~@4 f4@8 ab4@3 ~@3 bb4@3 ~@3",
I: "[db5@10 bb4 ~@7 db5@4 ab4@14 ~@4 f4@4 ab4@4]/2", J: "db4@5 ~@10 f4@2 gb4@2 g4 ab4@2 bb4 ~", K: "db5@11 ~ eb5@12",
L: "[db5@2 gb4 ~@8 bb4@3 db5 eb5 db5 bb4 ab4 g4 eb4 db4 bb3 a3]/2", M: "ab3@4 f4@4 ~@4 gb4@5 ~ g4@5 ~",
N: "ab4@12 bb4@3 ~ db5@4 eb5@2 db5@2", O: "eb5@4 db5@2 eb5@4 bb4 ~ db5@7 ~@5",
P: "~@3 db5@5 bb4@2 db5@2 ab4@4 g4@4 f4@2 g4 ~", Q: "ab4@8 ab4@2 bb4@2 g4@7 ~@5", R: "~@2 eb5@7 db5 bb4 ab4",
S: "~@3 ab4@2 ~@2 f5@2 ~@4 ab5@2 ~ f5@2 db5@2 bb4 ~@2 f4, ~@16 e5 ~@7", T: "~ db5@2 ~ f4@2 b4 c5@2 f4@2 ~ bb4@12",
U: "[~@9 bb4@2 bb4@4 db5@3 ~@6]/2", V: "~@3 f4 gb4 g4 ab4 ab3 bb3 db4 eb4 bb3", W: "db4 ~@7",
X: "~@6 bb3@4 ab3 ~ db4@2 ~@4 e4@4 db4@2", Y: "e4@6 db4@3 ~ db4 ~@13", Z: "~@2 f4@3 e4 f4@2 bb4 f4@3",
AA: "[d4@2 bb3 ~@8 c5@7 bb4@2 ~ bb4@2 ~]/2", AB: "f4@4 db4@5 ~@7 e4@2 f4@2 ab4@2 bb4@2",
AC: "[db4@2 bb3 db4@2 ~@3 db4 f4 ab4@5 bb4@2 db4@3 ~@4]/2", AD: "~@4 db5@13 ~ e5 ~ db5@2 f5@2, ~@19 f5@2 ~ e5 ~",
AE: "db5@5 bb4@3 ~@4", AF: "~@3 ab4@6 f4@2 db4", AG: "ab4@4 ~@2 gb4@3 ~@3 f4@4 ab4 ~@5 f4@2, g4 ~@23",
AH: "[gb4@4 d4@2 f4@4 bb4@2 ~@4 ab4@2 bb4@4 db5 db5@11 bb4@5 ~@9]/2",
AI: "[~@16 e4@2 f4@2 ~ bb4@2 db4@6 ~@19, ~@10 ab4 ~@13]/2", AJ: "~@2 db5@7 db5@3",
AK: "[bb4@4 db5@2 ~@13 bb4@4 db5@2 ~@14 eb5@8 ~]/2", AL: "db5@3 bb4@2 ~ ab4@3 bb4@3",
AM: "eb4@5 ~ e4@3 ~ f4@6 ab4@2 bb4@3 ~@3", AN: "db5@5 ab4 bb4@4 ~@2 ab4@4 bb4@2 f4@4 ab4@2",
AO: "eb4@10 ~@2 bb3@3 ~ eb4@4 ~@4", AP: "~@4 ab4@2 bb4@3 ~@3 ab4@6 bb4@3 ~@3", AQ: "db5@3 bb4@3 ~@5 db4",
AR: "gb4@3 ~ ab4@2 db4@4 ~@14", AS: "~@5 ab4@4 f4@2 d4, ~@10 g4 ~@13", AT: "a4 bb4@3 f4 ~ bb4@3 ~@15",
AU: "~@9 bb4@2 ~@2 a4@2 ~ ab4@2 ~ g4@2 ~ eb4@2", AV: "~ db4@2 bb3@2 db4@2 ~ eb4@5 ~@11",
AW: "[~@3 f4@3 ~ gb4 ~ g4 ~@2 ab4@6 e4@4 db4@5 ~@15 bb3@4 ab3 ~]/2", AX: "db4@2 ~ e4@2 db4 ~@6",
AY: "[bb4@5 ~@7 bb4@5 ~@5 bb4@5 ~@3 bb4@5 ~@7 a3 bb3@3 ab3@2]/2", AZ: "[db4@3 ~@7 e4@8 db4@18 ~@12]/2",
})).s("gm_alto_sax").gain(0.5)
// drums · kick
const kick = s("bd").struct("<~@4 A@5 B A@7 B A@15 B A@65 C D E F G H ~>".pickRestart({
A: "x!4", B: "x ~ x ~@3 x ~@2 x ~@2", C: "x ~@2 x ~ x ~@3 x ~@2", D: "~ x ~ x ~@2", E: "x ~@4 x ~@3 x ~@2",
F: "~@2 x ~@3 x ~@4 x", G: "~@3 x ~@4 x ~@3", H: "x",
})).gain(0.38)
// drums · rim
const rim = s("rim").struct("<~@4 A@5 B A@7 B A@15 C A@65 D ~@6>".pickRestart({
A: "~ x ~ x", B: "~@3 x", C: "~@2 x ~@6 x ~@2", D: "~ x ~@2",
})).gain(0.38)
// drums · snare
const snare = s("sd").struct("<~@105 [~ x]>").gain(0.27)
// drums · low tom
const low_tom = s("lt").struct("<~@105 [~ x]>").gain(0.22)
// drums · pedal hat
const pedal_hat = s("hh").struct("<~@4 A@5 B A@7 B A@15 B A@65 C ~@6>".pickRestart({
A: "~ x ~ x", B: "~@3 x", C: "~ x ~@2",
})).gain(0.55)
// drums · mid tom
// … 17 more lines
More by Ellington
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.