0:00/0:00
// Empty Garden — Elton John
// 106 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 5, 4/4 at bar 5) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 135 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): tk3.
setcpm(106/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 · epiano1 · "tk1"
const epiano1 = note(`<
A@5 B C D@2 E@2 F@2 G@2 H@2 I@2 J K L@2 M N O P Q R S T U@2 V@2 W X Y Z AA@2 AB AC AD AE AF@2 AG AH AI AJ AK AL AM AN
AO AP AQ@2 AR AS AT AJ AU@2 AV P Q R S T U@2 V@2 W X Y Z AA@2 AB AC AD AE AF@2 AG AH AI AJ AK AL AM AN AO AP AQ@2 AR
AS AT AJ AG AH AI AJ AK AL AM AN AO AP AQ@2 AR AS AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM@2
>`.pickRestart({
A: "[~@8 [g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [eb3,g3,bb3,eb4]@6 bb2@2 [g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [g3,bb3,eb4]@6 ~@2 [ab3,c4]@6 [ab3,c4]@2 ~@8 [ab3,c4]@6 [ab3,c4] ~ [ab3,c4]@6 ~@4 [ab3,c4]@4 g3 ~, ~@8 eb2@15 ~ eb2@14 eb3@10 eb3@15 ~@7 eb3@9 ~, ~@40 eb2@16 eb2@16 eb2@7 ~, ~@24 [ab3,c4]@4 ~@7 [ab3,c4]@2 ~@3, ~@27 ab2@4 ~@9]/5", // Eb Ab
B: "[g3,bb3,eb4]@3 [g3,bb3,eb4] [g3,bb3,eb4]@2 [g3,bb3,eb4] bb2, eb2@15 ~, ~@8 eb3@7 ~", // Eb
C: "[g3,bb3,eb4]@6 [g3,bb3,eb4]@2 ~@4 eb3@3 ~, eb2@15 ~, ~@8 [g3,bb3,eb4]@7 ~", // Eb
D: "[[f3,bb3,d4]@6 [f3,bb3,d4]@2 [f3,bb3,d4]@6 f2@2 [f3,bb3,d4]@6 [f3,bb3,d4]@2 ~@4 bb2@3 ~, bb1@15 ~ bb1@15 ~, ~@2 bb2@5 ~, ~@22 f2@9 ~, ~@24 [f3,bb3,d4]@7 ~]/2", // Bb
E: "[[g3,c4,eb4]@6 [g3,c4,eb4]@2 [g3,c4,eb4]@6 g2@2 [g3,c4,eb4]@6 [g3,c4,eb4]@2 [g3,c4,eb4]@4 [c3,g3,c4,eb4]@3 ~, c2@15 ~ c2@15 ~, ~@2 c3@5 ~]/2", // Cm
F: "[[ab3,c4,eb4]@6 [ab3,c4,eb4]@2 [eb3,ab3,c4,eb4]@6 ~@2 [ab3,c4,eb4]@6 [ab3,c4,eb4]@2 [ab3,c4,eb4]@4 [eb2,ab3,c4,eb4]@3 ~, eb2@7 eb3@9, ~@4 eb2@3 ~]/2", // Ab
G: "[[g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [eb3,g3,bb3,eb4]@6 ~@2 [g3,bb3,eb4]@6 [g3,bb3,eb4]@2 ~@4 eb3@3 ~, eb2@7 bb2@4 ~ [g3,bb3,eb4]@3 ~, ~@16 eb2@15 ~]/2", // Eb
H: "[[f3,bb3,d4]@3 [f3,bb3,d4] [f3,bb3,d4]@3 ~ [f3,bb3,d4]@3 [f3,bb3,d4] [f3,bb3,d4]@2 [bb2,f3,bb3,d4]@2, ~@7 bb2@7 ~@2, ~@16 bb1@15 ~]/2", // Bb
I: "[[g3,c4,eb4]@3 [g3,c4,eb4] [g3,c4,eb4]@3 g2 [g3,c4,eb4]@3 [g3,c4,eb4]@2 [g3,c4,eb4] [c3,g3,c4,eb4]@2, c2@15 ~ c2@15 ~, ~@2 c3@5 ~, ~@11 g2@5]/2", // Cm
J: "[ab3,c4,eb4]@3 [ab2,ab3,c4,eb4]@4 eb2, [ab1,f4]@15 ~", // Ab Db
K: "[ab3,c4,eb4]@3 [ab3,c4,eb4]!2 ~ ab2@2, ab1@15 ~, ~@10 [ab3,c4,eb4]@5 ~", // Ab
L: "[[f3,bb3,d4]@3 [f3,bb3,d4]!2 [f3,bb3,d4]@2 f2 ~ [f3,bb3,d4]@2 [f3,bb3,d4]@2 ~ f2@2, bb1@14 [f3,bb3,d4]@4 ~@4 bb2@9 ~, ~@8 bb2@7 ~ bb1@15 ~, ~@26 [f3,bb3,d4]@5 ~]/2", // Bb
M: "[g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [g3,bb3,eb4]@6 [g3,bb3,eb4] ~", // Eb
N: "[g3,bb3,eb4] [g3,eb4]@2 [g3,eb4] [g3,bb3,eb4]@2 [bb2,g3,bb3,eb4] eb2, eb2@7 ~, ~@2 bb3@6 eb3@7 ~", // Eb Cm Eb
O: "[ab1,ab3,c4,eb4]@3 [eb2,ab3,c4,eb4] [ab2,ab3,c4,eb4]@3 eb2", // Ab
P: "[ab3,eb4]@2 [ab3,c4]@4 c4@2 [ab3,c4,eb4]@4 [eb2,ab3,c4,eb4]@3 ~, ab1@8 ab1@7 ~, c4 ~ eb4@6 ~@8", // Ab5 Ab
Q: "[g3,bb3,eb4]@3 [g3,bb3,eb4] [eb3,g3,bb3,eb4]@3 bb2, eb2@15 ~", // Eb
R: "[g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [g3,bb3,eb4]@4 [eb3,g3,bb3,eb4]@3 ~, eb2@15 ~", // Eb
S: "[f3,bb3,d4]@3 [f3,bb3,d4] [bb2,f3,bb3,d4]@3 f2, bb1@15 ~", // Bb
T: "[bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [bb2,f3,bb3,d4]@3 ~, bb1@15 ~, ~@6 f2@9 ~", // Bb
U: "[[g3,c4,eb4]@6 [g3,c4,eb4]@2 ~@10 [g3,c4,eb4]@4 [g3,c4,eb4]@2 [g3,c4,eb4]@4 [c3,g3,c4,eb4]@3 ~, c2@15 ~ c2@15 ~, ~@6 g2@8 g2@8 g2@9 ~, ~ [c3,g3,c4,eb4] ~@2]/2", // Cm
V: "[[ab3,c4,eb4]@3 [ab3,c4,eb4] [ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@3 [ab3,c4,eb4] [ab3,c4,eb4]@2 [ab2,ab3,c4,eb4]@2, ab1@7 eb2@4 ~@5, ~@16 ab1@15 ~]/2", // Ab
W: "[g3,bb3,eb4]@3 [g3,bb3,eb4] [g3,bb3,eb4]@3 bb2, eb2@15 ~", // Eb
X: "[g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [g3,bb3,eb4]@4 [bb2,g3,bb3,eb4]@3 ~, eb2@15 ~", // Eb
Y: "[f3,bb3,d4]@6 [f3,bb3,d4]@2 [f3,bb3,d4]@2 [f3,bb3,d4]@4 [f3,bb3,d4] ~, bb1@7 f2, ~@8 bb2@7 ~", // Bb
Z: "[f3,bb3,d4] [f3,bb3,d4]@2 [f3,bb3,d4] [f3,bb3,d4]@2 [f2,f3,bb3,d4]@2, bb1@15 ~, ~@3 f2@3 ~@2, ~@8 bb2@7 ~", // Bb
AA: "[[g3,c4,eb4]@6 [g3,c4,eb4]@2 [g3,c4,eb4]@6 g2@2 [g3,c4,eb4]@6 ~@6 [c3,g3,c4,eb4]@3 ~, ~@6 g2@8 ~@2 c2@15 ~, ~@2 c3@5 ~, ~@11 [g3,c4,eb4]@3 ~@2, ~@26 g2@5 ~]/2", // Cm
AB: "~@8 [ab2,ab3,c4,eb4]@7 ~, ab1@15 ~, [ab3,c4,eb4] ~, ~@3 eb2@4 ~", // Ab
AC: "[ab3,c4,eb4]@6 [ab3,c4,eb4]@2 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~, ab1@15 ~", // Ab
AD: "[f3,bb3,d4]@6 [f3,bb3,d4]@2 [bb2,f3,bb3,d4]@6 [f3,bb3,d4] ~, bb1@7 f2", // Bb
AE: "[f3,bb3,d4] [f3,bb3,d4]@2 [f3,bb3,d4]!2 [f3,bb3] [f3,bb3,d4] bb2, bb1@15 ~", // Bb Bb5 Bb
AF: "[[g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [eb3,g3,bb3,eb4]@6 ~@2 [g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 eb4@2 [bb2,g3,bb3,eb4]@3 ~, eb2@14 bb2@8 ~@4 eb3@5 ~, ~@16 eb2@15 ~]/2", // Eb
AG: "[ab3,c4,eb4]@6 [ab3,c4,eb4]@2 [ab2,ab3,c4,eb4]@6 [ab3,c4,eb4] ~, ab1@15 ~", // Ab
AH: "[ab3,c4,eb4] [ab3,c4,eb4]@2 [ab3,c4,eb4] [ab3,c4,eb4]@2 [ab2,ab3,c4,eb4]@2, ab1@15 ~, ~@6 eb2@9 ~", // Ab
AI: "[g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [eb3,g3,bb3,eb4]@6 [g3,bb3,eb4] ~, eb2@15 ~, ~@3 bb2@4 bb2", // Eb
AJ: "[g3,bb3,eb4]@2 [g3,bb3,eb4]@4 [g3,bb3,eb4]@2 [g3,bb3,eb4]@4 [g3,bb3,eb4]@3 ~, eb2@15 ~, ~@8 eb3@7 ~", // Eb
AK: "[ab3,c4]@6 [ab3,c4,eb4]@2 [ab1,ab3,c4,eb4]@6 [ab3,c4,eb4] ~, ab2@15 ~", // Ab
AL: "ab3@2 [ab3,c4,eb4]@4 [ab3,c4,eb4]@2 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~, ab1@15 ~, ~@8 ab2@7 ~", // Ab
AM: "[g3,c4,eb4]@6 [g3,c4,eb4]@2 [g3,c4,eb4]@6 [g3,c4,eb4] ~, c2@15 ~, ~@3 g2@4 g2", // Cm
AN: "[g3,c4] [g3,c4,eb4]@2 [g3,c4,eb4] [g3,c4,eb4]@2 [c2,g3,c4,eb4]@2, c2@3 ~, eb4 ~@5 g2@9 ~, ~ c3", // C5 Cm
AO: "[f3,c4]@6 [f3,c4]@2 [f1,f3,ab3,c4]@6 [f3,c4] ~, f2@15 ~, ab3@4 ~@3 c2", // F5 Fm F5
AP: "[f3,c4] [f3,ab3,c4]@2 c4 [f3,ab3,c4]@2 [f1,f3,ab3,c4]@2, f1@3 ~, ~@8 f2@7 ~", // F5 Fm
AQ: "[[c2,g3,c4,eb4]@6 [g3,c4]@2 [g3,c4,eb4]@6 [g3,c4,eb4] ~ [g3,c4,eb4]@2 [g3,c4,eb4]@4 [g3,c4,eb4]@2 [g3,c4,eb4]@4 [c2,g3,c4,eb4]@4, ~@2 c3@2 c2@3 ~, ~@14 g2@8 g2@9 ~, ~@24 c3@7 ~]/2", // Cm C5 Cm
AR: "[ab3,c4,eb4]@6 [ab3,c4,eb4]@2 [ab2,ab3,c4,eb4]@6 [ab1,ab3,c4,eb4] ~, ab1@7 ~, ~@6 eb2@9 ~", // Ab
AS: "[f3,bb3,d4]@6 [f3,bb3,d4]@2 [bb2,f3,bb3,d4]@6 [f3,bb3,d4] ~, ~@3 f2@4 bb1", // Bb
AT: "[g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [g3,bb3,eb4]@6 [g3,bb3,eb4] ~, eb2@15 ~, ~@3 bb2@4 ~, ~ eb3", // Eb
AU: "[[g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [eb3,g3,bb3,eb4]@6 [g3,bb3,eb4] ~ [g3,bb3,eb4]@2 [g3,bb3,eb4]@4 [g3,bb3,eb4]@2 [g3,bb3,eb4]@4 [eb2,g3,bb3,eb4]@4, eb2@14 bb2@8 bb2@9 ~, ~@4 eb2@3 ~, ~@24 eb3@7 ~]/2", // Eb
AV: "[ab3,c4,eb4]@3 [ab3,c4,eb4] [ab2,ab3,c4,eb4]@3 eb2, ab1@15 ~, ~@3 eb2@4 ~", // Ab
AW: "[g3,bb3,eb4]@6 ~@2 [g3,bb3,eb4]@3 ~ [eb2,g3,eb4]@4, eb2@5 ~ eb2@5 ~ bb3@2 ~@2", // Eb
AX: "[ab3,c4,f4]@6 ~@2 [ab3,c4,f4]@3 ~ [f2,ab3,c4,f4]@4, f2@5 ~ f2@5 ~@5", // Fm
AY: "[ab2,ab3,c4,eb4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~, ~@3 ab2@2 ab2@3", // Ab
AZ: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~, bb2@5 ~ bb2@5 ~ bb2@4", // Bb
BA: "[g3,bb3,eb4]@3 eb2 [g3,bb3,eb4] ~ [g3,bb3,eb4] ~, eb2@5 ~@5 eb2@6", // Eb
BB: "[ab3,c4,f4]@6 f2@2 [ab3,c4,f4]@2 ~@2 [ab3,c4,f4]@3 ~, f2@5 ~@5 f2@6", // Fm
BC: "[ab3,c4,eb4]@3 ab2 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~, ab2@5 ~@5 ab2@6", // Ab
BD: "[bb3,d4,f4]@3 bb2 [bb3,d4,f4] ~ [bb3,d4] ~, bb2@5 ~@5 bb2@6, ~@12 f4 ~@3", // Bb
BE: "[g3,bb3,eb4]@6 eb2@2 [g3,bb3,eb4]@2 ~@2 [g3,bb3,eb4]@3 ~, eb2@5 ~@5 eb2@6", // Eb
BF: "[ab3,c4,f4]@6 ~@2 [ab3,c4,f4]@3 ~ [ab3,c4,f4]@2 ~@2, f2@5 ~ f2@4 ~@2 f2@4", // Fm
BG: "[ab2,ab3,c4,eb4]@6 ~@2 [ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@2 ~@2, ~@6 ab2@5 ~ ab2@4", // Ab
BH: "[bb3,d4,f4]@6 ~@2 [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~@2, bb2@5 ~ bb2@4 ~@6", // Bb
BI: "[g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@2 [g3,bb3,eb4] ~, eb2@5 ~ eb2@10", // Eb
BJ: "[f2,ab3,c4,f4]@6 ~@2 [ab3,c4,f4]@3 ~ [ab3,c4,f4]@3 ~, ~@6 f2@9 ~", // Fm
BK: "[ab2,ab3,c4,eb4]@6 ~@2 [ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@2 ~@2, ~@3 ab2@5", // Ab
BL: "[bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~, bb2@5 ~ bb2@4 bb2@4 ~@2", // Bb
BM: "[[bb3,eb4,g4] ~ [g3,bb3,eb4]@18 ~@12]/2", // Eb
})).s("gm_epiano1").gain(0.22).pan(0.4)
// chords · epiano1 · "tk1" · soft notes
const epiano1_soft = note(`<
~@2 A@3 ~ B ~@2 C D ~@3 E F G ~@3 H ~@2 I@2 ~ J K B L M ~ N O P Q ~ L ~ R ~ S T L U K V W ~@2 X Y Z AA ~ AB AC AD ~@2
AE AF B K ~@2 J K B L M ~ N O P Q ~ L ~ R ~ S T L U K V W ~@2 X Y Z AA ~ AB AC AD ~@2 AE AF B W ~@2 X Y Z AA ~ AB AC
AD ~@2 AE ~@11 AG ~@6
>`.pickRestart({
A: "[~@2 bb2@6 ~@6 ab2@8 ~@8 ab2@17 ~]/3", B: "~@6 bb2@9 ~", C: "~@3 g2@4 ~", D: "~@6 g2@9 ~",
E: "~@6 bb2@8 [g3,bb3,eb4] ~", F: "~@8 f2@7 ~, bb1@15 ~", G: "~@6 f2@9 ~", H: "~@3 ab2@3 ~@2",
I: "[~ eb3@2 ~, eb2@15 ~@17]/2", J: "~@3 eb2@3 ~@2, ~@3 ab3 ~@4", K: "~@3 bb2@4 ~", L: "~@3 f2@4 ~", M: "f3 ~@7",
N: "[g3,c4,eb4] ~@7", O: "~@8 ab2@7 ~", P: "~@6 eb2@9 ~", Q: "~@8 eb3@7 ~", R: "c2@15 ~", S: "~@7 eb2",
T: "~@5 eb2@3", U: "~@10 f2@5 ~, ~@5 d4 ~@2", V: "~@5 [g3,bb3] ~@2, ~@3 bb2@3 ~@2", W: "~@3 eb2@4 eb2",
X: "~@3 bb2@4 bb2", Y: "eb4@3 ~@4 eb2", Z: "eb4@2 ~@4 eb2@9 ~", AA: "~@8 c3@7 ~", AB: "~@14 ab3 ~",
AC: "ab3 ~@2 [f3,ab3] ~@4, ~@6 c2@9 ~", AD: "~@6 c2@9 ~, ~@3 eb4 ~@4", AE: "bb1@7 ~", AF: "~@7 bb2",
AG: "~@10 bb2@5 ~",
})).s("gm_epiano1").gain(0.12).pan(0.4)
// bass · fretless bass · "tk2"
const bass = note(`<
~@25 A@2 B@2 C@2 D@2 E F G H I J K L M N I O P Q M R P S M R T U V W X Y Z AA AB@3 AC A@2 B@2 C@2 AD@2 AE F G H I J K
L M N I O P Q M AF P AG AH AI AJ AK AL AM AN AO AP AA AQ AR M AF P AG AH AI AJ AK AL AM AN AO Z AA AS W M I G V M I S
AT R AU S W AV AW AX ~
>`.pickRestart({
A: "[ab1@13 ~ bb1@2]/2", B: "[eb1@29 ~@3]/2", C: "bb1/2", D: "[c2@29 ~ c3 d3]/2", E: "eb3",
F: "eb2@5 ~ eb2 ~ eb2@4 bb1@4", G: "eb1@6 eb1 ~ eb1@7 ~", H: "eb1@6 c2 ab1", I: "bb1@5 ~ bb1 ~ bb1@7 ~",
J: "bb1@5 ~ bb1 ~ bb1@8", K: "c2@5 ~ c2 ~ c2@6 ~@2", L: "c2@2 ~ c2", M: "ab1@5 ~ ab1 ~ ab1@7 ~", N: "ab1@7 ~ ab1@8",
O: "bb1@10 ~@2 bb1@3 ~", P: "eb1@5 ~ eb1 ~ eb1@7 ~", Q: "eb1@15 ~", R: "ab1@5 ~ ab1 ~ ab1@8",
S: "eb1@5 ~ eb1 ~ eb1@8", T: "c2@5 ~ c2 ~ c2@7 ~", U: "c2@5 ~ c2 ~ c2@6 c2@2", V: "f1@5 ~ f1 ~ f1@7 ~",
W: "f1@5 ~ f1 ~ f1@8", X: "c2@5 ~ c2 ~ c2@5 ~ bb1@2", Y: "c2@4 ~@2 c2 ~ c2@4 g1@4",
Z: "ab1@5 ~ ab1 ~ ab1@3 ~ ab1 ~@3", AA: "bb1@5 ~ bb1 ~ bb1 ~@3 bb1@3 ~",
AB: "[eb1@36 ~@2 g3@3 ~ eb3@2 bb2@2 ab2@2]/3", AC: "g2@2 eb3@2 g2@2 ab2 ~@3 bb2@2 bb1@3 ~", AD: "[c2@29 ~ c3 ~]/2",
AE: "eb3, d3 ~@15", AF: "ab1@5 ~ ab1 ~ ab1@2 ~@2 bb1@3 ~", AG: "eb1@5 ~ eb1@2 g1@8",
AH: "ab1@5 ~ ab1 ~ ab1@4 ab1@2 ~@2", AI: "ab1@5 ~ ab1 ~ ab1@3 ~ ab1@2 bb1@2", AJ: "c2@5 ~ c2@2 c3@4 c2@3 ~",
AK: "c2@5 ~ c2 ~ c2@3 ~ c2@2 ~@2", AL: "f1 g1", AM: "ab1 bb1", AN: "c2 d2", AO: "eb2 g2",
AP: "ab1@5 ~ ab1 ~ ab1@3 ~ ab1@2 ~@2", AQ: "eb1@5 ~ eb1 ~ eb1@5 ~ eb1 ~", AR: "eb1 ~ eb1@3 ~ eb1 ~ eb1@7 ~",
AS: "eb1@7 ~ eb1@8", AT: "f1@5 ~ f1 ~ f1@6 f1@2", AU: "bb1@5 ~ bb1 ~ bb1@5 ~ bb1 ~",
AV: "ab1@5 ~ ab1 ~ ab1@5 ~ ab1@2", AW: "bb1@5 ~ bb1 ~ bb1@3 ~ bb1@3 ~", AX: "eb1",
})).s("gm_fretless_bass").gain(0.33)
// other · overdriven guitar · "tk3"
const overdriven_guitar = note("<~@94 A ~@6 B C ~@6 D ~ E ~@6 F ~@3 F ~@2 G F ~@2 H F ~@4>".pickRestart({
A: "~@14 c3 ~", B: "~@3 eb2 eb2@3 eb2", C: "eb2 eb2@2 eb2@2 eb2 eb2@2", D: "b2@3 ~@5", E: "e2@3 ~@5", F: "f2@3 ~@5",
G: "eb2@13 ~@3", H: "eb2 ~",
})).s("gm_overdriven_guitar").gain(0.14).pan(0.4)
// chords · acoustic guitar steel · "tk7"
const acoustic_guitar_steel = note(`<
~@47 A B C D E F G H I J K L M N@3 ~@24 A B C D E F G H I J K L M N@3 A B C D E F G H I J K L M O P Q R S T U V W X U
V Y X U V Y ~@2
>`.pickRestart({
A: "[ab3,c4,eb4,ab4]@4 [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4]@2 [ab3,c4,ab4]@4 [ab3,c4,ab4]@2 [ab3,c4,eb4,ab4] ~, ~@4 eb4@3 ~", // Ab
B: "[ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4]@3 ~", // Ab
C: "[g3,bb3,eb4,g4]@4 [g3,bb3,eb4,g4]@2 [g3,bb3,eb4,g4]@2 [g3,bb3,eb4]@4 [g3,bb3,eb4]@2 [g3,bb3,eb4,g4] ~, ~@4 g4@3 ~", // Eb
D: "[g3,bb3,eb4,g4]@2 [g3,bb3,eb4,g4]@2 [g3,bb3,eb4,g4]@2 [g3,bb3,eb4,g4]@2 [g3,bb3,eb4,g4]@2 [g3,bb3,eb4,g4]@2 [g3,bb3,eb4,g4]@3 ~", // Eb
E: "[ab3,ab4]@4 [ab3,ab4]@2 [ab3,c4,eb4,ab4]@2 [ab3,c4]@4 [ab3,c4]@2 [ab3,c4,eb4,ab4] ~, [c4,eb4]@3 ~ [eb4,ab4]@3 ~", // Ab Cm Ab5
F: "[ab3,c4,eb4]@2 [ab3,c4,eb4]@2 [ab3,c4,eb4]@2 [ab3,c4,eb4]@2 [ab3,c4,eb4]@2 [ab3,c4,eb4]@2 [ab3,c4,eb4]@3 ~, ab4@15 ~", // Ab
G: "[g3,c4,eb4,g4]@4 [g3,c4,eb4,g4]@2 [g3,c4,eb4,g4]@2 [g3,c4,eb4]@4 [g3,c4,eb4]@2 [g3,c4,eb4,g4] ~, ~@4 g4@3 ~", // Cm
H: "[g3,c4,eb4,g4]@2 [g3,c4,eb4,g4]@2 [g3,c4,eb4,g4]@2 [g3,c4,eb4,g4]@2 [g3,c4,eb4,g4]@2 [g3,c4,eb4,g4]@2 [g3,c4,eb4,g4]@3 ~", // Cm
I: "[f3,ab3,c4,f4]@4 [f3,ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@4 [f3,ab3,c4,f4]@2 [f3,ab3,c4,f4] ~, ~@3 f3@3 ~@2", // Fm
J: "[f3,ab3,c4,f4]@2 [f3,ab3,c4,f4]@2 [f3,ab3,c4,f4]@2 [f3,ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [f3,ab3,c4,f4]@3 ~, ~@2 f3 ~", // Fm
K: "[g3,c4,eb4,g4]@4 [g3,c4,eb4,g4]@2 [g3,c4,eb4,g4]@2 [eb4,g4]@4 [eb4,g4]@2 [g3,c4,eb4,g4] ~, ~@4 [g3,c4]@3 ~", // Cm Eb Cm C5
L: "[g3,c4,eb4,g4]@2 [g3,c4,eb4,g4]@4 [g3,c4,eb4,g4]@2 [g3,c4,eb4,g4]@2 [g3,c4,eb4,g4]@2 [g3,c4,eb4,g4]@3 ~", // Cm
M: "[ab3,c4,ab4]@4 [ab3,c4,ab4]@2 [ab3,c4,ab4]@2 [ab3,c4,eb4,ab4]@4 [ab3,c4,eb4,ab4]@2 [ab3,c4,eb4,ab4] ~, eb4 ~", // Ab
N: "[~@2 f4@2 [bb3,d4,f4,bb4]@2 [bb3,d4,f4,bb4]@2 [bb3,d4]@2 [bb3,d4]@2 [bb3,d4,f4,bb4]@3 ~ [bb3,eb4]@26 ~@6, [bb3,d4,bb4]@4 ~@4 [f4,bb4]@4 ~@3 [eb3,g3]@28 ~@5]/3", // Bb Eb5 Bb Bb5 Eb
O: "~@2 f4@2 [bb3,d4,f4,bb4]@2 [bb3,d4,f4,bb4]@2 [bb3,d4]@2 [bb3,d4]@2 [bb3,d4,f4,bb4]@3 ~, [bb3,d4,bb4] ~ [f4,bb4] ~", // Bb Bb5
P: "[bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [bb3,eb4,g4]@2 [bb3,eb4,g4]@2 [bb3,eb4,g4]@2 [bb3,eb4,g4]@2 [bb3,eb4,g4] ~", // Eb
Q: "[c4,ab4]@2 f4@4 f4@2 [c4,f4,ab4]@2 [c4,f4,ab4]@2 [c4,f4,ab4]@2 [c4,f4,ab4] ~, ~ [c4,ab4]@3 ~@4", // Fm
R: "[c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [eb4,ab4]@2 [eb4,ab4]@2 [c4,eb4,ab4] ~, ~@5 c4@2 ~", // Ab Ab5 Ab
S: "[d4,bb4]@2 [d4,f4,bb4]@4 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [f4,bb4]@2 [f4,bb4]@2 [d4,f4,bb4] ~, ~@5 d4@2 ~", // Gm Bb Bb5 Bb
T: "[bb3,eb4,g4]@2 [bb3,eb4,g4]@4 [bb3,eb4,g4]@2 [bb3,eb4,g4]@2 [bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4,g4] ~, ~@5 g4@2 ~", // Eb Eb5 Eb
U: "[c4,ab4]@2 [c4,f4,ab4]@4 [c4,f4,ab4]@2 [c4,f4,ab4]@2 [c4,f4,ab4]@2 [c4,f4,ab4]@2 [c4,f4,ab4] ~", // Fm
V: "[c4,eb4,ab4]@2 [c4,eb4,ab4]@4 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4] ~", // Ab
W: "[d4,bb4]@2 [d4,f4,bb4]@4 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4] ~", // Gm Bb
X: "~@2 [bb3,eb4,g4]@4 [bb3,eb4,g4]@2 [bb3,eb4,g4]@2 [bb3,eb4,g4]@2 [bb3,eb4,g4]@2 [bb3,eb4,g4] ~", // Eb
Y: "[d4,f4,bb4]@2 [d4,f4,bb4]@4 [d4,bb4]@2 [d4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4] ~, ~@3 f4@2 ~@3", // Bb Gm Bb
})).s("gm_acoustic_guitar_steel").gain(0.12)
// chords · harpsichord · "tk8"
const harpsichord = note(`<
~@24 A B@6 C@2 D@6 C@4 E@4 ~@24 C@2 D@6 C@4 E@4 ~@30 F G H I J K L I J G K I F L K M N@2
>`.pickRestart({
A: "~@7 bb4 ~@7 bb2, ab6@4 ab5 g5 eb5@2 ab4@4 ab3 g3 eb3@2, ~ g6@7 ~@3 bb3@5, ~ eb6@3 ~ eb4@3, ~@3 bb5@5 ~ g4@7",
B: "[[ab3,c4,eb4,ab4,c5,eb5]@5 ~ [ab3,c4,eb4,ab4,c5,eb5] ~ [ab3,c4,eb4,ab4,c5,eb5]@17 ~@7 [eb4,eb5]@5 ~ [eb3,bb3,eb4,g4,bb4,eb5] ~ [eb3,bb3,eb4,g4,bb4,eb5]@12 ~@12 [d4,d5]@6 [f3,bb3,bb4,d5] ~ [f3,bb3,d4,f4,bb4,d5]@20 ~@4, ~@31 [eb3,bb3,g4,bb4]@6 ~@26 [f3,f4]@8 ~@25, ~@21 [bb3,bb4]@2 ~@9]/6", // Ab Eb D Bb Eb F Bb
C: "c5 eb5 d5 eb5 c5 eb5 d5 eb5",
D: "[[ab3,c4,eb4,ab4,c5,eb5]@5 ~ [ab3,c4,eb4,ab4,c5,eb5] ~ [ab3,c4,eb4,ab4,c5,eb5]@22 ~@2 [bb3,eb4,bb4,eb5]@5 ~ [eb3,bb3,eb4,g4,bb4,eb5] ~ [eb3,bb3,eb4,g4,bb4,eb5]@17 ~@7 [d4,d5]@6 [f3,bb3,d4,f4,bb4,d5] ~ [f3,bb3,d4,f4,bb4,d5]@20 ~@4, ~@31 [eb3,g4]@6 ~@26 [f3,bb3,f4,bb4]@6 ~@27]/6", // Ab Eb5 Eb D Bb Eb Bb5
E: "[[f3,bb3,d4,f4,bb4,d5]@5 ~ [f3,bb3,d4,f4,bb4,d5] ~ [f3,bb3,d4,f4,bb4,d5]@16 ~@8 [bb3,eb4,bb4,eb5]@6 [eb3,bb3,eb4,g4,bb4,eb5] ~ [eb3,bb3,eb4,g4,bb4,eb5]@20 ~@4, ~@31 [eb3,g4]@6 ~@27]/4", // Bb Eb5 Eb
F: "~@2 bb4@2 eb5@2 bb4@9 ~", G: "~@2 c5@4 bb4@9 ~", H: "~ c5@2 bb4@5", I: "~@2 d5@4 bb4@7 ~@3",
J: "~ bb4 eb5 bb4@4 ~", K: "~ c5@2 bb4@4 ~", L: "~@2 c5@4 bb4@7 ~@3", M: "~ d5@2 bb4@3 ~@2",
N: "[~@3 eb5@7 ~@6, ~ g4@9 ~@6, ~ bb4@4 ~@3]/2",
})).s("gm_harpsichord").gain(0.17).pan(0.6)
// chords · flute · "tk9"
const flute = note(`<
~@55 A@2 B C D E ~ F G ~@9 H ~ I ~ J ~@17 A@2 B C D E ~@10 A@2 B C D E ~@9 K@2 L@2 K@2 M ~@2
>`.pickRestart({
A: "[ab3,c4] ~ [c4,f4] ~ [f4,ab4] ~ [c4,f4] ~ [ab4,c5] ~@7", // Ab F5 Fm F5 Ab
B: "[g3,c4] ~ [c4,eb4] ~ [eb4,g4] ~ [c4,eb4] ~ [g4,c5] ~@7", // C5 Cm Eb Cm C5
C: "[g3,c4] ~ [c4,eb4] ~ [eb4,g4] ~ [c4,eb4] ~ [g4,c5] ~ [eb4,g4] ~ [c4,eb4] ~ [g3,c4] ~", // C5 Cm Eb Cm C5 Eb Cm C5
D: "[ab3,c4] ~ [c4,eb4] ~ [eb4,ab4] ~ [c4,eb4] ~ [ab4,c5] ~@7", // Ab Cm Ab5 Cm Ab
E: "[bb3,d4] ~ [d4,f4] ~ [f4,bb4] ~ [d4,f4] ~ [bb4,d5] ~@7", // Bb Dm Bb5 Dm Bb
F: "eb4 f4 g4 bb4 [eb4,eb5] [f4,f5] [g4,g5] [bb4,bb5] [eb4,eb5,eb6] [f5,f6] [g5,g6] [bb4,bb5,bb6] [eb5,eb6,eb7] [f6,f7] [g6,g7] [bb5,bb6,bb7]", // Eb F G Bb Eb F G Bb …
G: "[eb6,eb7] f7 g7 [bb6,bb7] eb7 ~@2 bb7 ~@8", H: "~@10 [c5,eb5] ~ [c5,f5] ~ [c5,eb5] ~",
I: "~@10 [eb4,g4] ~ [eb4,ab4] ~ [eb4,g4] ~", J: "~@10 [d5,f5] ~ [eb5,g5] ~ [d5,f5] ~",
K: "[~@2 g5@2 f5@4 eb5@4 d5@2 eb5@5 ~@13]/2", L: "[ab5@4 g5@4 f5@4 eb5@2 eb5@7 ~@11]/2", M: "ab5@2 g5@2 f5@2 eb5 ~",
})).s("gm_flute").gain(0.14).pan(0.3)
// chords · flute · "tk9" · soft notes
const flute_soft = note("<~@62 A B ~@68 C@2 ~>".pickRestart({
A: "~@9 f4 g4 ~ eb4 [f4,f5] [g4,g5] bb4", B: "eb5 [f5,f6] [g5,g6] bb5 eb6 [f6,f7] [g6,g7] bb6 eb7 f7 g7 bb7 ~@4",
C: "[~@7 eb5@9]/2",
})).s("gm_flute").gain(0.08).pan(0.3)
// drums · kick
const kick = s("bd").struct("<A B@3 C@98 D C@11 E@2 C@17 F ~>".pickRestart({
A: "~@4 x ~@2 x", B: "x ~@3 x ~@2 x", C: "x ~@2 x!2 ~@3", D: "x ~@2 x!2 ~ x ~", E: "x ~@2 x!2 ~@2 x", F: "x!2 ~@6",
// … 70 more lines
More by Elton John
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.