0:00/0:00
// Etude in Blue — Claude Bolling
// 126 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 171 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · "A.PIANO 2"
const piano = note(`<
A@2 B C D@2 E@2 F G@2 H@2 I@2 J@2 K@2 L@2 M@2 N@2 O P Q@2 R@2 S T U V@3 W@2 X Y Z@2 AA@2 AB@2 AC@4 AD@2 AE@4 AF@7 AG
AH@2 ~ AI AJ AK@3 AL@2 AM@2 AN@2 AO@2 AP@4 AQ@4 AR@2 AS@2 AT@4 AU@4 AV@3 ~ AW ~ AX@2 AY@2 AZ@2 BA@2 BB@2 BC@2 BD@2
BE@7 BF BG BH BI@2 BJ@2 BK@2 BL@2 BM@2 BN@2 BO@5 BP ~ BQ@2 ~ BR BS@2 BT@2 BU ~ BV@4 BW@2 BX@3 ~@2
>`.pickRestart({
A: "[bb2@6 ~ a3@6 ~ c3@6 ~ bb3@6 ~ a3 ~ bb3 ~ a3@2 g3@2 ~ f3@2 eb3@2 d3@6 ~]/2", B: "c4@6 ~ eb3@6 ~ d4@6 ~ c4 ~ d4",
C: "~ c4@2 bb3@2 ~ a3@2 g3@2 f3@6 ~ eb4@6 ~", D: "[d4@13 ~ eb3@6 d4@6 ~ c4@13 ~ f3@6 ~]/2",
E: "[gb3@6 ~ g3@6 ab3@6 ~ a3@6 ~ f3@6 ~ g3@6 ~ eb3@6 ~]/2", F: "d3@6 f3@6 ~ a2@2 ~ c3@2 e3@2 g3@2 f3@2",
G: "[~ e3@2 f3@2 bb2@2 d3@2 ~ a3@2 g3@2 f3@2 ~ g3@6 f3@2 ~ e3@2 d3@2 c3@2 ~ e3 ~ g3@2 bb3@2 a3@2 ~ g3@2 a3@2 d3@2]/2",
H: "[f3@2 ~ c4@2 bb3@2 a3@2 ~ bb3@6 a3@2 ~ g3@2 f3@2 e3@2 ~ g3@2 bb3@2 d4@2 c4@2 ~ bb3@2 c4@2 eb3@2 f3@2 ~ c4@2 bb3@2]/2",
I: "[a3@2 ~ bb3 ~ d3@2 f3@2 c4@2 ~ bb3@2 a3@2 bb3@2 ~ db3@2 f3@2 bb3@2 a3@2 ~ ab3@2 a3@2 c3@2 f3@2 ~ bb3@2 a3@2 ab3@2 ~ a3@2 b2@2]/2",
J: "[f3@2 a3@2 ~ g3@2 gb3@2 g3@2 ~ bb2@2 e3@2 a3@2 g3@2 ~ gb3@2 g3@2 f3@2 e3@2 ~ d3@2 e3@2 c3@2 ~ gb3@2 d3@2 c3@2 ab2@2 ~ a2@2]/2",
K: "[c3@2 b2@6 ~ d3@2 db3@2 ~ d3@2 g3@6 ~ d3@6 ~ c3@6 b2@6 ~ bb2@5]/2",
L: "[~@2 d3@2 db3@2 ~ d3@2 g3@6 ~ d3@6 ~ c3@6 bb2@6 ~ a2@6 ~ c3@2 b2@2 ~]/2",
M: "[c3@2 f3@6 ~ c3@6 ~ bb2@6 a2@6 ~ ab2@6 ~ c3@2 b2@2 ~ c3@2 f3@5]/2",
N: "[~@2 c3@6 ~ bb2@6 ab2@6 ~ g2@6 ~ bb2@2 a2@2 ~ bb2@2 eb3@6 ~ g3@5]/2", O: "~@2 bb3@6 eb4@6 ~ gb2@6 ~ bb2@2",
P: "a2@2 ~ bb2@2 eb3@6 gb3@6 ~ bb3@6", Q: "[~ eb4@6 ~ f2@6 ~ bb2@2 a2@2 ~ bb2@2 d3@6 ~ f3@6 ~ ab3@6 g3@6]/2",
R: "[~ c3@6 ~ eb3@6 ~ e3@6 ~ f3@6 ~ g3@6 a3@6 ~ bb2@6]/2", S: "~ a3@6 ~ c3@6 ~ bb3@6 ~ a3@2",
T: "bb3 ~ a3@2 g3@2 ~ f3@2 eb3@2 d3@6 ~ c4@6", U: "~ eb3@6 ~ d4@6 ~ c4 ~ d4@2 c4@2 bb3@2 ~",
V: "[a3@2 g3@2 f3@6 ~ eb4@6 ~ d4@13 ~ eb3@6 d4@6 ~ c4@13 ~ f3@6 ~ gb3@6]/3",
W: "[~ g3@6 ab3@6 ~ a3@6 ~ f3@6 ~ g3@6 ~ eb3@6 ~ d3@6]/2", X: "f3@6 ~ bb1@6 ~ d2@6 ~ f2@3, ~@7 bb2@13 ~@4",
Y: "~ [d2,bb2,d3,ab3]@9 ~ eb2@6 ~ g2@6, ~@11 [bb2,eb3,g3]@13", // Bb7 Eb
Z: "[bb2@4 ~ [eb2,bb2,eb3,g3]@9 bb1@6 ~ d2@6 ~ f2@6 ~ bb2@4 bb1@9, ~@14 [bb2,d3,ab3]@13 ~@21]/2", // Eb Bb7
AA: "[~ bb1@6 c2@5 ~@2 d2@6 ~ eb2@6 ~ g2@6 ~ bb2@4 e2@2 ~ e2@4 ~@2, ~@12 [ab3,bb3,d4,e4]@9 [bb2,eb3,g3]@13 ~@5 [bb2,e3,ab3]@9]/2", // E7 Eb Bbm7b5
AB: "[~ eb2@6 ~ g2@6 bb2@4 ~ [eb2,bb2,eb3,g3]@9 bb1@6 ~ d2@6 ~ f2@6, ~ [bb2,eb3,g3]@13 ~@14 [bb2,d3,ab3]@13 ~@7]/2", // Eb Bb7
AC: "[bb2@4 ~@11 bb2@6 a2@5 ~@2 g2@6 ~ [f2,c3]@7 ~@7 a2@6 ~ f2@6 ~ eb2@6 ~ eb2@6 d2@5 ~@2 d2@6 ~ [g1,g2,d3,bb3]@6, ~@5 bb1@16 ~@5 [ab3,bb3,d4,e4]@9 [bb3,eb4]@27 ~@34, ~@42 c3@20 ~ [eb3,g3,db4]@13 ~@5 [d3,gb3,c4]@9 ~@6]/4", // F5 Gm E7 Eb5 Eb7 D7
AD: "[~ bb1@6 ~ d2@6 ~ g2@6 ~ a2@6 ~ d2@6 g2@4 ~ [eb2,bb2]@4 [e2,b2]@4]/2", // Eb5 E5
AE: "[~ [f2,c3]@6 ~ f2@6 [d3,gb3,c4]@4 ~@3 d2@6 ~ [g2,d3,bb3]@6 ~ g2@6 ~ [c3,bb3,e4]@4 [c3,bb3,e4]@3 ~@2 [c3,bb3,e4]@4 ~ f2@6 a2@6 ~ c3@6 ~ a2@6 ~ f2@7 f2@6, ~@14 d2@5 [d3,gb3,c4]@8 ~@15 c2@6 ~ c2@6 ~ [f3,a3,eb4]@26 ~@14]/4", // F5 D7 Gm C7 D7 F7
AF: "[~ f2@6 f2@6 ~ bb1@6 ~ d2@6 ~ f2@4 ~ [bb1,bb2,d3,ab3]@9 eb2@6 ~ g2@6 ~ bb2@4 [eb2,bb2,eb3,g3]@9 bb1@6 ~ d2@6 ~ f2@6 ~ bb2@4 bb1@10 ~@7 c2@6 d2@6 ~ eb2@6 ~ g2@6 ~ bb2@4 ~ [e2,bb2,e3,ab3]@4 [e2,bb2,e3,ab3]@4 ~ eb2@6 ~ g2@6 bb2@3, ~@14 bb2@13 ~@15 [bb2,eb3,g3]@13 ~@14 [bb2,d3,ab3]@13 ~@22 bb1@20 [bb2,eb3,g3]@13 ~@15 [bb2,eb3,g3]@13 ~@3]/7", // Bb7 Eb Bbm7b5 Eb Bb7 Eb
AG: "~@2 [eb2,bb2,eb3,g3]@9 ~@7 g2@6, ~@11 a2@7 ~@6, ~@2 [g3,c4]", // Eb C5
AH: "[~ [d3,gb3,c4]@4 ~@3 e2@6 ~@12 [d3,gb3,c4]@2 bb1@4 ~ [ab1,ab2,gb3]@8 ~ [g1,g2,f3,b3]@4 ~@2, ~ gb2@6 ~@8 [d2,a2]@6 ~ c2@6 ~@20, ~@5 [d3,gb3,c4]@8 ~@6 [g3,c4]@6 ~@23]/2", // D7 Ab7 G7 D5 D7 C5
AI: "~@2 [g2,f3,b3]", AJ: "~ [c2,c3,e3,bb3]@4 ~@19",
AK: "[~@18 [db3,e3,g3,bb3]@4 ~ db2@2 db2@6 ~ [d3,f3,bb3]@4 ~@3 f2@6 ~ [f3,b3]@4 ~@2 b2@6 ~ [e3,bb3]@4 ~@3 e3@6, ~@23 [db3,e3,g3,bb3]@9 d2@6 ~@8 g2@6 ~@7 c3@6 ~@7]/3", // Dbdim Bb Fdim Edim Dbdim
AL: "[~ [f2,eb3,a3]@4 ~@3 f2@6 ~ bb1@7 [bb1,bb2,ab3]@6 ~ [eb2,eb3,db4]@6 [ab2,ab3,gb4]@6 ~ [g2,g3,bb3,f4]@6, ~ f3@6 ~@41]/2", // F7 Bb7 Eb7 Ab7 Gm7
AM: "[~ [gb2,gb3,bb3,e4]@6 ~ f2@6 ~ f1@6 ~ bb1@6 ~ d2@6 f2@4 ~ [d2,bb2,d3,ab3]@8, ~@8 [f3,a3,eb4]@13 ~ bb2@13 ~@13]/2", // Gb7 Bb7 F7
AN: "[~ eb2@6 ~ g2@6 ~ bb2@4 [eb2,bb2,eb3,g3]@9 ~ bb1@6 ~ d2@6 f2@6, ~ [bb2,eb3,g3]@13 ~@15 [bb2,d3,ab3]@13 ~@6]/2", // Eb Bb7
AO: "[~ bb2@4 ~ bb1@9 bb1@6 ~@8 d2@6 ~ eb2@6 ~ g2@5, ~@11 c2@3 ~@4 [bb2,eb3,g3]@6, ~@26 [ab3,bb3,d4,e4]@9 ~@13]/2", // Eb E7
AP: "[~ bb2@4 ~ e2@2 e2@4 ~@3 eb2@6 ~ g2@6 ~ bb2@4 [eb2,bb2,eb3,g3]@9 ~ bb1@6 ~ d2@6 f2@6 ~ bb2@4 bb1 ~@9 bb2@6 ~@8 g2@5, ~@6 [bb2,e3,ab3]@9 [bb2,eb3,g3]@13 ~@15 [bb2,d3,ab3]@13 ~@12 bb1@16 a2@6 ~@6, ~@11 [ab3,bb3,d4,e4]]/4", // Eb Bbm7b5 Eb Bb7 E7
AQ: "[~@2 [f2,c3]@7 ~@6 a2@6 ~ f2@6 ~ eb2@6 ~ eb2@6 ~@8 d2@6 ~ [g1,g2,d3,bb3]@7 bb1@6 d2@6 ~ g2@6 ~ a2@6 ~ d2@5, ~@2 [bb3,eb4]@27 ~@18 [d3,gb3,c4]@9 ~@40, ~@9 c3@20 [eb3,g3,db4]@13 ~ d2@6 ~@47]/4", // F5 Gm Eb5 D7 Eb7
AR: "[~@2 g2@4 [eb2,bb2]@4 ~ [e2,b2]@4 [f2,c3]@6 ~ f2@6 ~ [d3,gb3,c4]@4 ~@3 d2@6 ~ [g2,d3,bb3]@5, ~@29 d2@6 ~@13, ~@33 [d3,gb3,c4]@8 ~@7]/2", // Eb5 E5 F5 D7 Gm D7
AS: "[~ g2@6 ~ [c3,bb3,e4]@4 ~@5 [c3,bb3,e4]@4 ~ f2@6 ~ a2@6 c3@6 ~ a2@6, ~@8 c2@5 [c3,bb3,e4]@4 ~@5 [f3,a3,eb4]@26, ~@5 c2@2 ~@9]/2", // C7 F7
AT: "[~ f2@7 f2@7 f2@7 f2@6 ~ bb1@6 ~ d2@6 f2@4 ~ [bb1,bb2,d3,ab3]@9 eb2@6 ~ g2@6 ~ bb2@4 [eb2,bb2,eb3,g3]@9 ~ bb1@6 ~ d2@5, ~@29 bb2@13 ~@14 [bb2,eb3,g3]@13 ~@15 [bb2,d3,ab3]@12]/4", // Bb7 Eb Bb7
AU: "[~ f2@6 ~ bb2@4 ~ bb1@9 ~@7 c2@6 ~ d2@6 ~ eb2@6 ~ g2@6 bb2@4 ~ [e2,bb2,e3,ab3]@4 [e2,bb2,e3,ab3]@4 ~ eb2@6 ~ g2@6 ~ bb2@4 [eb2,bb2,eb3,g3]@8, ~@22 bb1@20 ~ [bb2,eb3,g3]@13 ~@14 [bb2,eb3,g3]@13 ~@13]/4", // Bbm7b5 Eb
AV: "[~@9 g2@6 [d3,gb3,c4]@4 ~@3 e2@6 ~ [d2,a2]@5 ~@2 c2@5 [d3,gb3,c4]@2 bb1@4 [ab1,ab2,gb3]@8 ~@2 [g1,g2,f3,b3]@4 ~@11, ~@2 a2@7 ~@6 gb2@5 ~@52, ~@6 [g3,c4]@9 ~@5 [d3,gb3,c4]@9 ~@5 [g3,c4]@6 ~@32]/3", // D7 D5 D7 Ab7 G7 C5 D7 C5
AW: "~@6 [g2,f3,b3]@8 ~ [c2,c3,e3,bb3]@4 ~@5", // G7 C7
AX: "[~@9 [db3,e3,g3,bb3]@4 db2@2 db2@6 ~ [d3,f3,bb3]@4 ~@3 f2@6 ~ [f3,b3]@4 ~@3 b2@5, ~@13 [db3,e3,g3,bb3]@9 d2@6 ~@8 g2@6 ~@6]/2", // Dbdim Bb Fdim Dbdim
AY: "[~@2 [e3,bb3]@4 ~@3 e3@6 ~ [f2,eb3,a3]@4 ~@2 f2@6 ~ bb1@6 ~ [bb1,bb2,ab3]@6 ~ [eb2,eb3,db4]@5, ~ c3@3 ~@4 f3@3 ~@13]/2", // Edim F7 Bb7 Eb7
AZ: "[~@2 [ab2,ab3,gb4]@6 ~ [g2,g3,bb3,f4]@6 ~ [gb2,gb3,bb3,e4]@6 ~ f2@6 f1@6 ~ [bb1,bb2]@7 [bb1,a3]@5, ~@23 [f3,a3,eb4]@13 ~@12]/2", // Ab7 Gm7 Gb7 Bb Bbmaj7 F7
BA: "[~@2 [c2,c3]@6 ~ [c2,bb3]@6 ~ a3 ~ bb3@2 a3@2 ~ [g2,g3]@2 [f2,f3]@2 [eb2,eb3]@2 [d2,d3]@6 ~ [d2,c4]@6 ~ [eb2,eb3]@5, ~@8 f2@3 ~@13]/2", // C C7 G F Eb D D7 Eb
BB: "[~@2 [eb2,d4]@6 ~ c4 ~ d4@2 c4@2 ~ [bb2,bb3]@2 [a2,a3]@2 [g2,g3]@2 [f2,f3]@6 ~ [a2,eb4]@6 ~ [bb2,d4]@12, ~@3 a2@2 ~@11]/2", // Ebmaj7 Bb A G F Adim Bb
BC: "[~@2 [eb2,eb3]@6 ~ [g2,d4]@6 [ab2,c4]@13 ~ [bb2,f3]@6 ~ [a2,gb3]@6 ~ [g2,g3]@5]/2", // Eb G5 Ab Bb5 D G
BD: "[~@2 [e2,ab3]@6 [f2,a3]@6 ~ [d2,f3]@6 ~ [eb2,g3]@6 ~ [c2,eb3]@6 ~ [bb1,d3]@6 ~ [bb2,f3]@5]/2", // E F Dm Eb Cm Bb Bb5
BE: "[~ a2@2 ~ c3@2 e3@2 g3@2 ~ f3@2 [f2,e3]@2 f3@2 bb2@2 ~ d3@2 a3@2 g3@2 [f2,f3]@2 ~ g3@6 ~ f3@2 e3@2 [f2,d3]@2 c3@2 ~ e3@2 g3@2 bb3@2 ~ a3@2 [f2,g3]@2 a3@2 d3@2 ~ f3@2 c4@2 bb3@2 [f2,a3]@2 ~ bb3@6 ~ a3@2 g3@2 [f2,f3]@2 e3@2 ~ g3 ~ bb3@2 d4@2 ~ c4@2 bb3@2 c4@2 eb3@2 ~ f3@2 c4@2 bb3@2 a3@2 ~ d3@2 ~@2 f3@2 ~ c4@2 bb3@2 a3@2 [db3,bb3]@3 ~@2 f3 ~ bb3@2 ~ a3@2 ab3@2 [c3,a3]@2 c3@3 f3@2 bb3@2 a3@2 ab3@2 ~ b2@2 ~@2 f3@2 ~ a3@2 g3@2 gb3@2 [bb2,g3]@3, ~ f2@11 ~@3 f2@11 ~@3 f2@11 ~@2 f2@11 ~@3 f2@11 ~@3 f2@11 ~@2 f2@6 ~ c3@6 ~ f3@5 ~@2 eb3@6 ~ bb3 ~ d3@4 ~ f3@6 ~@3 db3@4 f3@6 ~@8 f3@6 ~ a3 ~ b2@4 ~ f3@6 ~@3]/7", // Fmaj7 F Dm Fsus2 F Gb F Eb
BF: "~@2 e3@2 a3@2 ~ g3@2 gb3@2 g3@2 f3@2 ~ e3@2 d3@2 e3@2 c3@2, bb2@4 f3@6 ~ e3@5 ~@2 bb2@6",
BG: "~ gb3 ~ d3@2 c3@2 ~ ab2@2 a2@2 c3@2 [b1,b2]@6 ~ [d2,d3]@2 ~, ~ a2@6 ~ c2@6 ~@10", // B D
BH: "[db2,db3]@2 [d2,d3]@2 [g2,g3]@6 ~ [d2,d3]@6 ~ [c2,c3]@6", // Db D G D C
BI: "[~ [b1,b2]@6 [bb1,bb2]@6 ~ [d2,d3]@2 ~ [db2,db3]@2 [d2,d3]@2 [g2,g3]@6 ~ [d2,d3]@6 ~ [c2,c3]@6 ~ [bb1,bb2]@6]/2", // B Bb D Db D G D C …
BJ: "[[a1,a2]@6 ~ [c2,c3]@2 ~ [b1,b2]@2 [c2,c3]@2 [f2,f3]@6 ~ [c2,c3]@6 ~ [bb1,bb2]@6 ~ [a1,a2]@6 [ab1,ab2]@6 ~]/2", // A C B C F C Bb A …
BK: "[[c2,c3]@2 ~ [b1,b2]@2 [c2,c3]@2 [f2,f3]@6 ~ [c2,c3]@6 ~ [bb1,bb2]@6 ~ [ab1,ab2]@6 [g1,g2]@6 ~ [bb1,bb2]@2 ~ [a1,a2]@2 [bb1,bb2]@2]/2", // C B C F C Bb Ab G …
BL: "[[eb2,eb3]@6 ~ [bb1,g3]@6 ~ [ab1,bb3]@6 ~ [g1,eb4]@6 [gb1,gb2]@6 ~ [bb1,bb2]@2 ~ [a1,a2]@2 [bb1,bb2]@2 [eb2,eb3]@6 ~]/2", // Eb Absus2 Cm Gb Bb A Bb Eb
BM: "[[bb1,gb3]@6 ~ [ab1,bb3]@6 ~ gb1@6 [f1,f2]@6 ~ [bb1,bb2]@2 ~ [a1,a2]@2 [bb1,bb2]@2 [d2,d3]@6 ~ [f2,f3]@6 ~, ~@13 eb4@6 ~@29]/2", // Ebm Absus2 F Bb A Bb D F
BN: "[[ab2,ab3]@6 ~ [g2,g3]@6 [c2,c3]@6 ~ [eb2,eb3]@6 ~ [e2,e3]@6 ~ [f2,f3]@6 ~ [g2,g3]@6 ~]/2", // Ab G C Eb E F G
BO: "[[a2,a3]@6 [d2,d3]@6 ~ [f2,f3]@6 ~ [gb2,gb3]@6 ~ [g2,g3]@6 ~ [a2,a3]@6 ~ b2@6 [e2,e3]@6 ~ [g2,g3]@6 ~ [ab2,ab3]@6 ~ [a2,a3]@6 ~ [b2,b3]@6 ~ db3@6 [d2,d3]@6 ~ [a2,db4]@6 ~ [e2,e3]@6 ~ [b2,d4]@6 ~ [db3,db4]@2 [b2,b3]@2, ~@40 b3@6 ~@35 db4@6 ~@33]/5", // A D F Gb G A E G …
BP: "[a2,a3]@2 ~ [g2,g3]@2 [gb2,gb3]@2 [e2,e3]@2 ~@15", // A G Gb E
BQ: "[~@2 [db2,db3]@6 ~ [ab2,c4]@6 ~ [eb2,eb3]@6 ~ [bb2,db4]@6 ~ [c3,c4]@2 [bb2,bb3]@2 [ab2,ab3]@2 ~ [gb2,gb3]@2 [f2,f3]@2 [eb2,eb3]@2 ~@5]/2", // Db Ab Eb Bbm C Bb Ab Gb …
BR: "~@12 [c2,c3]@6 ~ [g2,b3]@5", // C G
BS: "[~@2 [d2,d3]@6 ~ [a2,c4]@6 ~ [b2,b3]@2 [a2,a3]@2 [g2,g3]@2 ~ [f2,f3]@2 [e2,e3]@2 [d2,d3]@2 ~@19]/2", // D Am B A G F E D
BT: "[~@22 [b1,b2]@6 ~ [gb2,bb3]@6 ~ [db2,db3]@6 ~ [ab2,b3]@5]/2", // B Gb Db Abm
BU: "~@2 [bb2,bb3]@2 [ab2,ab3]@2 [gb2,gb3]@2 ~ [e2,e3]@2 [eb2,eb3]@2 [db2,db3]@2 ~@9", // Bb Ab Gb E Eb Db
BV: "[~@8 [bb1,bb2]@6 ~ [bb1,a3]@6 ~ [c2,c3]@6 ~ [c2,bb3]@6 ~ a3 ~ bb3@2 a3@2 ~ [g2,g3]@2 [f2,f3]@2 [eb2,eb3]@2 [d2,d3]@6 ~ [d2,c4]@6 ~ [eb2,eb3]@6 ~ [eb2,d4]@6 ~ c4 ~ d4@2 c4@2 ~ [bb2,bb3]@2 [a2,a3]@2 [g2,g3]@2 [f2,f3]@6, ~@36 f2@6 ~@35 a2@6 ~@13]/4", // Bb Bbmaj7 C C7 G F Eb D …
BW: "[~ [a2,eb4]@6 ~ [bb2,d4]@13 ~ [eb2,eb3]@6 ~ [g2,d4]@6 [ab2,c4]@13]/2", // Adim Bb Eb G5 Ab
BX: "[~ [bb2,f3]@6 ~ [a2,gb3]@6 ~ [g2,g3]@6 ~ [e2,ab3]@6 [f2,a3]@8 ~@2 [d2,f3]@8 ~ [eb2,g3]@9 [c2,eb3]@8 ~ d3@7]/3", // Bb5 D G E F Dm Eb Cm
})).s("gm_piano").gain(0.47).pan(0.4)
// chords · piano · "A.PIANO 2" · soft notes
const piano_soft = note("<~@148 A@3 B C@2 ~ D E ~ F@3 ~@7 G H@2>".pickRestart({
A: "[~@9 d3@2 ~ f3@2 a3@2 c4@2 ~ b3@2 a3@2 d3@2 f3@2 ~ a3@2 c4@2 b3@2 a3@2 ~ d3@2 f3@2 a3@2 ~ c4@2 b3@2 a3@2 ~@22, ~@9 d2@6 ~ f2@6 ~ a2@6 ~ c3@6 ~ a2@6 ~ f2@6 ~@22]/3",
B: "~@19 db3@2 ~ e3@2, ~@19 db2@5",
C: "[ab3@2 b3@2 ~ bb3@2 ab3@2 db3@2 e3@2 ~ ab3@2 b3@2 bb3@2 ab3@2 ~ db3 ~ e3@2 ab3@2 ~ b3@2 bb3@2 ab3@2 ~@12, ~@2 e2@6 ~ ab2@6 ~ b2@6 ~ ab2@6 ~ e2@6 ~@12]/2",
D: "~@5 c3@2 ~ eb3@2 g3@2 bb3@2 ~ a3@2 g3@2 c3@2 eb3@2 ~, ~@5 c2@6 ~ eb2@6 ~ g2@5",
E: "g3@2 bb3@2 a3@2 ~ g3 ~ c3@2 eb3@2 g3@2 ~ bb3@2 a3@2 g3@2 ~@2, ~@2 bb2@6 ~ g2@6 ~ eb2@6 ~@2",
F: "[~@15 b2@2 ~ d3@2 gb3@2 a3@2 ~ ab3@2 gb3@2 b2@2 d3@2 ~ gb3@2 a3@2 ab3@2 gb3@2 ~ b2 ~ d3@2 gb3@2 ~ a3@2 ab3@2 gb3@2 ~@16, ~@15 b1@6 ~ d2@6 ~ gb2@6 ~ a2@6 ~ gb2@6 ~ d2@6 ~@16]/3",
G: "~@17 d2@7", H: "[~@2 [f2,f3]@9 ~ [bb1,bb2]@36]/2",
})).s("gm_piano").gain(0.29).pan(0.4)
// other · piano · "PIANO/BASS"
const piano_2 = note("<~@30 A@4 B C D E@2 F ~@131>".pickRestart({
A: "[~@18 d3@2 ~ f3 ~ a3@2 c4@2 bb3@2 ~ a3@2 bb3@2 eb3@2 g3@2 ~ d4@2 c4@2 bb3@2 ~ c4@4 ~@2 bb3@2 ~ a3@2 g3@2 f3@2 ~ a3@2 c4@2 eb4@2 d4@2 ~ c4@2 d4@2 g3@2 bb3@2 ~ f4@2 eb4@2 d4@2 ~ eb4@4 ~@2 d4@2 ~]/4",
B: "c4@2 bb3@2 a3@2 ~ c4 ~ eb4@2 g4@2 f4@2 ~ eb4@2 f4@2 ab3@2 bb3@2",
C: "~ f4@2 eb4@2 d4@2 ~ eb4 ~ g3@2 bb3@2 f4@2 ~ eb4@2 d4@2 eb4@2 ~",
D: "gb3@2 bb3@2 eb4@2 d4@2 ~ db4@2 d4@2 f3@2 bb3@2 ~ eb4@2 d4@2 db4@2",
E: "[~ d4@2 e3@2 bb3@2 d4@2 ~ c4@2 b3@2 c4@2 ~ eb3 ~ a3@2 d4@2 c4@2 ~ b3@2 c4@2 bb3@2 a3@2 ~ g3@2 a3@2 f3@2 ~ bb3@2 g3@2 f3@2]/2",
F: "db3@2 ~ d3@2 f3@2 ~@17",
})).s("gm_piano").gain(0.25).pan(0.2)
// bass · acoustic bass · "PIANO/BASS"
const bass = note(`<
~@39 A B C D E F G H I J K@2 L@2 M N O P Q R S T U V@2 W X@2 ~ Y Z AA@3 AB@2 AC@2 AD AE AF@2 AG@2 AH@2 AI@2 AJ@2 AK@2
AL@2 AM@3 AN AO@2 AP@2 AQ@3 ~ AR ~ AS@2 AT@2 AU@2 AV AW AX@2 AY AZ BA@2 BB@4 BC@2 BD BE BF BG BH BI BJ BK BL BM BN BO
BP BQ BR BS BT BU@2 BV@2 BW ~ BX@2 ~ BY BZ@2 CA@2 CB ~ CC@4 CD@2 CE@3 CF ~
>`.pickRestart({
A: "~@7 bb1@4 ~@3 d2@4 ~@3 f2@2 ~", B: "~ bb1@6 ~@4 eb2@4 ~@3 g2@4 ~@2", C: "bb2@2 ~@3 eb2@6 ~@3 bb1@4 ~@3 d2@3",
D: "~@4 f2@4 ~@3 bb2@2 ~@2 bb1@2 ~ bb1@4 ~@2", E: "~ bb1@4 ~@2 c2@4 ~@3 d2@4 ~@3 eb2@3",
F: "~@4 g2@4 ~@3 bb2@2 ~@2 e2@2 ~ e2@4 ~@2", G: "~ eb2@4 ~@3 g2@4 ~@2 bb2@2 ~@3 eb2@5",
H: "~@4 bb1@4 ~@3 d2@4 ~@3 bb2@4 ~@2", I: "~ bb2@2 ~@2 bb1@2 ~ bb1@4 ~@3 bb2@4 ~@2 a2@3",
J: "~@4 g2@4 ~@3 f2@4 ~@3 c3@4 ~@2", K: "[~ a2@4 ~@3 f2@4 ~@3 eb2@4 ~@3 eb2@4 ~@2 d2@4 ~@3 d2@4 ~@3 g1@4 ~@2]/2",
L: "[~ bb1@4 ~@3 d2@4 ~@3 g2@4 ~@3 a2@4 ~@3 d2@4 ~@2 g2@2 ~@3 eb2@2 ~@2 e2@2 ~@2]/2",
M: "~ f2@4 ~@3 f2@4 ~@2 d2@4 ~@3 d2@3", N: "~@4 g2@4 ~@3 g2@4 ~@3 c2@4 ~@2", O: "~ c2@4 ~@3 f2@4 ~@2 a2@4 ~@3 c3@3",
P: "~@4 a2@4 ~@3 f2@4 ~@3 f2@4 ~@2", Q: "~ f2@4 ~@2 f2@4 ~@3 bb1@4 ~@3 d2@3", R: "~@4 f2@2 ~@3 bb1@5 ~@4 eb2@4 ~@2",
S: "~ g2@4 ~@3 bb2@2 ~@2 eb2@5 ~@4 bb1@3", T: "~@4 d2@4 ~@3 f2@4 ~@3 bb2@3 ~ bb1@2",
U: "~ bb1@4 ~@3 bb1@4 ~@3 c2@4 ~@2 d2@3",
V: "[~@4 eb2@4 ~@3 g2@4 ~@3 bb2@2 ~@3 e2@2 ~@2 e2@2 ~@3 eb2@4 ~@3 g2@4 ~@2 bb2@2 ~]/2",
W: "~@2 eb2@5 ~@4 a2@4 ~@3 g2@4 ~@2", X: "[~ gb2@4 ~@3 e2@4 ~@3 d2@4 ~@3 c2@4 ~@2 bb1@2 ~@3 ab1@5 ~@4 g1@4 ~@2]/2",
Y: "~@2 g2", Z: "~ c2@4 ~@19", AA: "[~@23 db2@2 db2@6 ~ d2@4 ~@3 f2@4 ~@3 g2@4 ~@2 b2@4 ~@3 c3@4 ~@3 e3@4 ~@2]/3",
AB: "[~ f3@4 ~@3 f2@4 ~@3 bb2@4 ~@3 bb1@4 ~@3 eb2@4 ~@2 ab2@4 ~@3 g2@4 ~@2]/2",
AC: "[~ gb2@4 ~@3 f2@4 ~@3 f1@4 ~@3 bb1@4 ~@3 d2@4 ~@2 f2@2 ~@3 bb1@6 ~@2]/2",
AD: "~ eb2@4 ~@3 g2@4 ~@3 bb2@2 ~@2 eb2@5", AE: "~@5 bb1@4 ~@3 d2@4 ~@2 f2@4 ~@2",
AF: "[~ bb2@2 ~@3 bb1@2 bb1@4 ~@3 bb1@4 ~@3 c2@4 ~@3 d2@4 ~@3 eb2@4 ~@3 g2@4 ~]/2",
AG: "[~ bb2@2 ~@3 e2@2 e2@4 ~@3 eb2@4 ~@3 g2@4 ~@3 bb2@2 ~@2 eb2@6 ~@4 bb1@4 ~]/2",
AH: "[~@2 d2@4 ~@2 bb2@4 ~@3 bb2@2 ~@3 bb1@2 bb1@4 ~@3 bb2@4 ~@3 a2@4 ~@3 g2@4 ~]/2",
AI: "[~@2 f2@4 ~@3 c3@4 ~@2 a2@4 ~@3 f2@4 ~@3 eb2@4 ~@3 eb2@4 ~@3 d2@4 ~]/2",
AJ: "[~@2 d2@4 ~@3 g1@4 ~@3 bb1@4 ~@2 d2@4 ~@3 g2@4 ~@3 a2@4 ~@3 d2@4 ~]/2",
AK: "[~@2 g2@2 ~@2 eb2@2 ~@3 e2@2 ~@2 f2@4 ~@3 f2@4 ~@3 d2@4 ~@3 d2@4 ~@3 g2@4 ~]/2",
AL: "[~ g2@4 ~@3 c2@4 ~@3 c2@4 ~@3 f2@4 ~@3 a2@4 ~@2 c3@4 ~@3 a2@4 ~@2]/2",
AM: "[~ f2@4 ~@3 f2@4 ~@3 f2@4 ~@3 f2@4 ~@3 bb1@4 ~@3 d2@4 ~@2 f2@2 ~@3 bb1@5 ~@4 eb2@4 ~@3 g2@4 ~@3 bb2@2]/3",
AN: "~@2 eb2@5 ~@5 bb1@4 ~@3 d2@4 ~",
AO: "[~ f2@4 ~@3 bb2@2 ~@3 bb1@2 bb1@4 ~@3 bb1@4 ~@3 c2@4 ~@3 d2@4 ~@3 eb2@4 ~]/2",
AP: "[~@2 g2@4 ~@2 bb2@2 ~@3 e2@2 ~@2 e2@2 ~@3 eb2@4 ~@3 g2@4 ~@3 bb2@2 ~@2 eb2@5 ~@3]/2",
AQ: "[~@2 a2@4 ~@3 g2@4 ~@2 gb2@4 ~@3 e2@4 ~@3 d2@4 ~@3 c2@4 ~@3 bb1@2 ~@2 ab1@5 ~@5 g1@4 ~@11]/3",
AR: "~@6 g2@8 ~ c2@4 ~@5", AS: "[~@13 db2@2 db2@6 ~ d2@4 ~@3 f2@4 ~@3 g2@4 ~@3 b2@4 ~]/2",
AT: "[~@2 c3@4 ~@3 e3@4 ~@3 f3@4 ~@2 f2@4 ~@3 bb2@4 ~@3 bb1@4 ~@3 eb2@4 ~]/2",
AU: "[~@2 ab2@4 ~@3 g2@4 ~@3 gb2@4 ~@3 f2@4 ~@2 f1@4 ~@3 bb1@4 ~@3 bb1@4 ~]/2",
AV: "~@2 c2@4 ~@3 c2@4 ~@3 f2@4 g2 ~@2 f2", AW: "~@2 eb2 ~@2 d2@4 ~@3 d2@4 ~@3 eb2@4 ~",
AX: "[~@2 eb2@4 ~@3 a2@4 bb2 ~@2 a2 ~@2 g2 ~@2 f2@4 ~@3 a2@4 ~@3 bb2@8 ~@4]/2", AY: "~@2 eb2@4 ~@3 g2@4 ~@2 ab2@9",
AZ: "~@5 bb2@4 ~@3 a2@4 ~@3 g2@4 ~", BA: "[~@2 e2@4 ~@2 f2@4 ~@3 d2@4 ~@3 eb2@4 ~@3 c2@4 ~@3 bb1@4 ~@3 bb2@4 ~]/2",
BB: "[~ f2@11 ~ f2@2 f2@11 f2@2 ~ f2@11 f2@2 f2@11 ~ f2@2 f2@11 f2@2 ~ f2@11 f2@2 f2@4 ~@3 c3@4 ~@2]/4",
BC: "[~ f3@4 ~@3 eb3@4 ~@3 d3@4 ~@3 f3@4 ~@2 db3@4 ~@3 f3@4 ~@3 c3@4 ~@2]/2",
BD: "~ f3@4 ~@3 b2@4 ~@3 f3@4 ~@2 bb2@3", BE: "~@4 f3@4 ~@3 e3@4 ~@3 bb2@4 ~@2",
BF: "~ a2@4 ~@3 c2@4 ~@2 b1@4 ~@3 d2@2 ~", BG: "db2@2 d2@2 g2@4 ~@3 d2@4 ~@3 c2@4 ~@2",
BH: "~ b1@4 ~@2 bb1@4 ~@3 d2@2 ~ db2@2 d2@2 g2@3", BI: "~@4 d2@4 ~@3 c2@4 ~@3 bb1@4 ~@2",
BJ: "a1@4 ~@3 c2@2 ~ b1@2 c2@2 f2@4 ~@3 c2@3", BK: "~@4 bb1@4 ~@3 a1@4 ~@2 ab1@4 ~@3",
BL: "c2@2 ~ b1@2 c2@2 f2@4 ~@3 c2@4 ~@3 bb1@3", BM: "~@4 ab1@4 ~@2 g1@4 ~@3 bb1@2 ~ a1@2 bb1@2",
BN: "eb2@4 ~@3 bb1@4 ~@3 ab1@4 ~@3 g1@3", BO: "~@3 gb1@4 ~@3 bb1@2 ~ a1@2 bb1@2 eb2@4 ~@3",
BP: "bb1@4 ~@3 ab1@4 ~@3 gb1@4 ~@2 f1@4", BQ: "~@3 bb1@2 ~ a1@2 bb1@2 d2@4 ~@3 f2@4 ~@3",
BR: "ab2@4 ~@3 g2@4 ~@2 c2@4 ~@3 eb2@4", BS: "~@3 e2@4 ~@3 f2@4 ~@3 g2@4 ~@3", BT: "a2@4 ~@2 d2@4 ~@3 f2@4 ~@3 gb2@4",
BU: "[~@3 g2@4 ~@3 a2@4 ~@3 b2@4 ~@2 e2@4 ~@3 g2@4 ~@3 ab2@4 ~@3 a2@4]/2",
BV: "[~@3 b2@4 ~@3 db3@4 ~@2 d2@4 ~@3 a2@4 ~@3 e2@4 ~@3 b2@4 ~@3 db3@2 b2@2]/2", BW: "a2@2 ~ g2@2 gb2@2 e2@2 ~@15",
BX: "[~@2 db2@4 ~@3 ab2@4 ~@3 eb2@4 ~@3 bb2@4 ~@3 c3@2 bb2@2 ab2@2 ~ gb2@2 f2@2 eb2@2 ~@5]/2",
BY: "~@12 c2@4 ~@3 g2@4 ~", BZ: "[~@2 d2@4 ~@3 a2@4 ~@3 b2@2 a2@2 g2@2 ~ f2@2 e2@2 d2@2 ~@19]/2",
CA: "[~@22 b1@4 ~@3 gb2@4 ~@3 db2@4 ~@3 ab2@4 ~]/2", CB: "~@2 bb2@2 ab2@2 gb2@2 ~ e2@2 eb2@2 db2@2 ~@9",
CC: "[~@8 bb1@4 ~@3 bb1@4 ~@3 c2@4 ~@3 c2@4 ~@3 f2@4 ~@3 g2@2 f2@2 eb2@2 d2@4 ~@3 d2@4 ~@3 eb2@4 ~@3 eb2@4 ~@3 a2@4 ~@3 bb2@2 a2@2 g2@2 f2@4 ~@2]/4",
CD: "[~ a2@4 ~@3 bb2@8 ~@6 eb2@4 ~@3 g2@4 ~@2 ab2@9 ~@4]/2",
CE: "[~ bb2@4 ~@3 a2@4 ~@3 g2@4 ~@3 e2@4 ~@2 f2@5 ~@5 d2@5 ~@4 eb2@5 ~@4 c2@5 ~@4 d2@5 ~@2]/3", CF: "~@2 f2@5 ~@17",
})).s("gm_acoustic_bass").gain(0.34).pan(0.2)
// bass · acoustic bass · "PIANO/BASS" · soft notes
const bass_soft = note("<~@148 A@2 ~ B C@2 ~ D E ~ F@2 G ~@8 H@2>".pickRestart({
A: "[~@9 d2@4 ~@3 f2@4 ~@3 a2@4 ~@3 c3@4 ~@3 a2@4 ~@3 f2@4]/2", B: "~@19 db2@4 ~",
C: "[~@2 e2@4 ~@3 ab2@4 ~@3 b2@4 ~@3 ab2@4 ~@3 e2@4 ~@14]/2", D: "~@5 c2@4 ~@3 eb2@4 ~@3 g2@4 ~",
E: "~@2 bb2@4 ~@3 g2@4 ~@3 eb2@4 ~@4", F: "[~@15 b1@4 ~@3 d2@4 ~@3 gb2@4 ~@3 a2@4 ~@3 gb2@4 ~]/2", G: "~ d2@2 ~@9",
H: "[~ bb1@3]/2",
})).s("gm_acoustic_bass").gain(0.21).pan(0.2)
// other · piano · "A.PIANO 3"
const piano_3 = note("<~@30 A@4 B C D E@2 F ~@131>".pickRestart({
A: "[~@18 d4@2 ~ f4@2 a4@2 c5@2 bb4@2 ~ a4@2 bb4@2 eb4@2 g4@2 ~ d5@2 c5@2 bb4@2 ~ c5@4 ~@2 bb4@2 ~ a4@2 g4@2 f4@2 ~ a4@2 c5@2 eb5@2 d5@2 ~ c5@2 d5@2 g4@2 bb4@2 ~ f5@2 eb5@2 d5@2 ~ eb5@4 ~@2 d5@2 ~]/4",
B: "c5@2 bb4@2 a4@2 ~ c5 ~ eb5@2 g5@2 f5@2 ~ eb5@2 f5@2 ab4@2 bb4@2",
C: "~ f5@2 eb5@2 d5@2 ~ eb5@2 g4@2 bb4@2 f5@2 ~ eb5@2 d5@2 eb5@2 ~",
D: "gb4@2 bb4@2 eb5@2 d5@2 ~ db5@2 d5@2 f4@2 bb4@2 ~ eb5@2 d5@2 db5@2",
E: "[~ d5@2 e4@2 bb4@2 d5@2 ~ c5@2 b4@2 c5@2 ~ eb4@2 a4@2 d5@2 c5@2 ~ b4@2 c5@2 bb4@2 a4@2 ~ g4@2 a4@2 f4@2 ~ bb4@2 g4@2 f4@2]/2",
F: "db4@2 ~ d4@2 f4@2 ~@17",
})).s("gm_piano").gain(0.25).pan(0.1)
// chords · electric guitar jazz · "A.GUITAR"
const electric_guitar_jazz = note(`<
~@39 A B C D E F G D H I J@2 K@2 L M N O P Q R D H F S T U@2 V@2 W X Y@2 Z@2 AA@2 AB@2 AC@2 AD@2 AE@2 AF@2 AG@2 AH@2
AI@2 AJ@2 AK@2 AL@2 AM@2 AN@2 AO@2 AP@2 AQ@2 AR@2 AS@2 ~@58
>`.pickRestart({
A: "~@7 [ab3,bb3,d4,f4]@4 ~@3 [ab3,bb3,d4,f4]@4 ~@3 [ab3,bb3,d4,f4]@3", // Bb7
B: "~@4 [ab3,bb3,d4,f4]@4 ~@3 [g3,bb3,db4,eb4]@4 ~@3 [g3,bb3,db4,eb4]@4 ~@2", // Bb7 Eb7
C: "[g3,bb3,db4,eb4]@4 ~@3 [g3,bb3,db4,eb4]@4 ~@3 [ab3,bb3,d4,f4]@4 ~@3 [ab3,bb3,d4,f4]@3", // Eb7 Bb7
D: "~@4 [ab3,bb3,d4,f4]@4 ~@3 [ab3,bb3,d4,f4]@4 ~@3 [ab3,bb3,d4,f4]@4 ~@2", // Bb7
E: "~ [ab3,bb3,d4,f4]@4 ~@2 [ab3,bb3,d4,f4]@4 ~@3 [ab3,bb3,d4,f4]@4 ~@3 [g3,bb3,db4,eb4]@3", // Bb7 Eb7
F: "~@4 [g3,bb3,db4,eb4]@4 ~@3 [g3,bb3,db4,eb4]@4 ~@3 [g3,bb3,db4,eb4]@4 ~@2", // Eb7
G: "~ [g3,bb3,db4,eb4]@4 ~@3 [g3,bb3,db4,eb4]@4 ~@2 [g3,bb3,db4,eb4]@4 ~@3 [g3,bb3,db4,eb4]@3", // Eb7
H: "~ [ab3,bb3,d4,f4]@4 ~@3 [ab3,bb3,d4,f4]@4 ~@3 [ab3,bb3,d4,f4]@4 ~@2 [ab3,bb3,d4,f4]@3", // Bb7
I: "~@4 [ab3,bb3,d4,f4]@4 ~@3 [g3,bb3,c4,eb4]@4 ~@3 [g3,bb3,c4,eb4]@4 ~@2", // Bb7 Cm7
J: "[~ [a3,c4,eb4,f4]@4 ~@3 [a3,c4,eb4,f4]@4 ~@3 [g3,bb3,db4,eb4]@4 ~@3 [g3,bb3,db4,eb4]@4 ~@2 [gb3,a3,c4,d4]@4 ~@3 [gb3,a3,c4,d4]@4 ~@3 [g3,bb3,d4]@4 ~@2]/2", // F7 Eb7 D7 Gm
K: "[~ [g3,bb3,d4]@4 ~@3 [g3,bb3,d4]@4 ~@3 [g3,bb3,d4]@4 ~@3 [g3,bb3,d4]@4 ~@3 [g3,bb3,d4]@4 ~@2 [g3,bb3,eb4]@2 ~@3 [g3,bb3,d4,eb4]@3 ~ [ab3,b3,d4,e4]@3 ~]/2", // Gm Eb Ebmaj7 E7
L: "~ [a3,c4,eb4,f4]@4 ~@3 [a3,c4,eb4,f4]@4 ~@2 [gb3,a3,c4,d4]@4 ~@3 [gb3,a3,c4,d4]@3", // F7 D7
// … 133 more lines
More by Claude Bolling
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.