0:00/0:00
// Empty Garden (Hey Hey Johnny) — John Elton
// 106 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 6, 4/4 at bar 7) 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): OVERDRIVE.
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.
// other · overdriven guitar · "OVERDRIVE"
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.1).pan(0.4)
// bass · fretless bass · "FRETLESS"
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 AD@2 B@2 C@2 AE@2 AF F G H I J K
L M N I O P Q M AG P AH AI AJ AK AL AM AN AO AP AQ AA AR AS M AG P AH AI AJ AK AL AM AN AO AP Z AA AT W M I G V M I AU
AV R AW S W AX AY AZ ~
>`.pickRestart({
A: "[eb2@13 ~ bb1@2]/2", B: "[eb1@29 ~@3]/2", C: "bb1/2", D: "[c2@29 ~ c3 d3]/2", E: "eb3",
F: "eb2@6 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@8", 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@5 ~ 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: "[eb1@13 ~ bb1@2]/2", AE: "[c2@29 ~ c3 ~]/2", AF: "eb3, d3 ~@15",
AG: "ab1@5 ~ ab1 ~ ab1@2 ~@2 bb1@3 ~", AH: "eb1@5 ~ eb1@2 g1@8", AI: "ab1@5 ~ ab1 ~ ab1@4 ab1@2 ~@2",
AJ: "ab1@5 ~ ab1 ~ ab1@3 ~ ab1@2 bb1@2", AK: "c2@5 ~ c2@2 c3@4 c2@3 ~", AL: "c2@5 ~ c2 ~ c2@3 ~ c2@2 ~@2",
AM: "f1 g1", AN: "ab1 bb1", AO: "c2 d2", AP: "eb2 g2", AQ: "ab1@5 ~ ab1 ~ ab1@3 ~ ab1@2 ~@2",
AR: "eb1@5 ~ eb1 ~ eb1@5 ~ eb1 ~", AS: "eb1 ~ eb1@3 ~ eb1 ~ eb1@7 ~", AT: "eb1@7 ~ eb1@8", AU: "eb1@6 eb1 ~ eb1@8",
AV: "f1@5 ~ f1 ~ f1@6 f1@2", AW: "bb1@5 ~ bb1 ~ bb1@5 ~ bb1 ~", AX: "ab1@5 ~ ab1 ~ ab1@5 ~ ab1@2",
AY: "bb1@5 ~ bb1 ~ bb1@3 ~ bb1@3 ~", AZ: "eb1",
})).s("gm_fretless_bass").gain(0.36)
// chords · epiano2 · "E.PIANO 2"
const epiano2 = 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@2 AI AJ AK AL AM
AN AO AP@2 AQ AR AS AI AT@2 O P Q R S T U@2 V@2 W X Y Z AA@2 AB AC AD AE AF@2 AG AH@2 AI AJ AK AL AM AN AO AP@2 AQ AR
AS AI AG AH@2 AI AJ AK AL AM AN AO AP@2 AQ AR AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK@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 [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 Cm 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] f3 [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: "[ab3,c4,eb4]@3 [ab3,c4,eb4] [ab2,ab3,c4,eb4]@3 eb2, ab1@15 ~, ~@3 eb2@4 ~", // 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@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 ~, ~@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 ~@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]@2 [ab3,c4,eb4]@4 [ab3,c4,eb4]@2 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~ [g3,bb3,eb4]@6 [g3,bb3]@2 [eb3,g3,bb3,eb4]@6 [g3,bb3,eb4] ~, ab1@15 ~@7 bb2@8 bb2@2, ~@6 eb2@9 ~ eb2@15 ~, ~@12 ab2@19 ~]/2", // Ab Eb Gm Eb
AI: "[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
AJ: "[ab3,c4]@6 [ab3,c4,eb4]@2 [ab1,ab3,c4,eb4]@6 c4 ~, ab2@15 ~", // Ab
AK: "ab3@2 [ab3,c4,eb4]@4 [ab3,c4,eb4]@2 [ab3,c4,eb4]@4 [ab3,c4,eb4]@3 ~, ab1@15 ~, ~@8 ab2@7 ~", // Ab
AL: "[g3,c4,eb4]@6 [g3,c4,eb4]@2 [g3,c4,eb4]@6 [g3,c4,eb4] ~, c2@15 ~, ~@3 g2@4 g2", // Cm
AM: "[g3,c4] [g3,c4,eb4]@2 [g3,c4,eb4] [g3,c4,eb4]@2 [c2,g3,c4,eb4]@2, c2@3 ~, ~@6 g2@9 ~, ~ c3", // C5 Cm
AN: "[f3,c4]@6 [f3,c4]@2 [f1,f3,ab3,c4]@6 [f3,c4] ~, f2@15 ~, ab3@4 ~@3 c2", // F5 Fm F5
AO: "[f3,c4]@2 [f3,ab3,c4]@4 c4@2 [f3,ab3,c4]@4 [f3,ab3,c4]@3 ~, f1@3 ~, ~@8 f2@7 ~", // F5 Fm
AP: "[[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
AQ: "[ab3,c4,eb4]@6 [ab3,c4,eb4]@2 [ab2,ab3,c4,eb4]@6 [ab1,ab3,c4] ~, ab1@7 ~, ~@6 eb2@9 ~", // Ab
AR: "[f3,bb3]@6 [f3,bb3,d4]@2 [bb2,f3,bb3,d4]@6 [f3,bb3,d4] ~, ~@3 f2@4 bb1", // Bb5 Bb
AS: "[g3,bb3,eb4]@6 [g3,bb3,eb4]@2 [g3,bb3,eb4]@6 [bb3,eb4] ~, eb2@15 ~, ~@3 bb2@4 ~, ~ eb3", // Eb Eb5
AT: "[[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
AU: "[g3,bb3,eb4]@6 ~@2 [g3,bb3,eb4]@3 ~ [eb2,g3,eb4]@4, eb2@5 ~ eb2@5 ~ bb3@2 ~@2", // Eb
AV: "[f2,ab3,c4,f4]@6 ~@2 [ab3,c4,f4]@3 ~ [f2,ab3,c4,f4]@4, ~@6 f2@5 ~@5", // Fm
AW: "[ab2,ab3,c4,eb4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~, ~@3 ab2@2 ab2@3", // Ab
AX: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 [bb3,d4,f4] ~, bb2@5 ~ bb2@5 ~ bb2@4", // Bb
AY: "[g3,bb3,eb4]@3 eb2 [g3,bb3,eb4] ~ [g3,bb3,eb4] ~, eb2@5 ~@5 eb2@6", // Eb
AZ: "[ab3,c4,f4]@6 f2@2 [ab3,c4,f4]@2 ~@2 [ab3,c4,f4]@3 ~, f2@5 ~@5 f2@6", // Fm
BA: "[ab3,c4,eb4]@3 ab2 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~, ab2@5 ~@5 ab2@6", // Ab
BB: "[bb3,d4,f4]@3 bb2 [bb3,d4,f4] ~ [bb3,d4,f4] ~, bb2@5 ~@5 bb2@6", // Bb
BC: "[g3,bb3,eb4]@6 eb2@2 [g3,bb3,eb4]@2 ~@2 [g3,bb3,eb4]@3 ~, eb2@5 ~@5 eb2@6", // Eb
BD: "[ab3,c4,f4]@6 ~@2 [ab3,c4,f4]@3 ~ [ab3,c4,f4]@2 ~@2, f2@5 ~ f2@4 ~@2 f2@4", // Fm
BE: "[ab2,ab3,c4,eb4]@6 ~@2 [ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@2 ~@2, ~@6 ab2@5 ~ ab2@4", // Ab
BF: "[bb3,d4,f4]@6 ~@2 [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~@2, bb2@5 ~ bb2@4 ~@6", // Bb
BG: "[g3,bb3,eb4]@3 ~ [g3,bb3,eb4]@2 [g3,bb3,eb4] ~, eb2@5 ~ eb2@10", // Eb
BH: "[f2,ab3,c4,f4]@6 ~@2 [ab3,c4,f4]@3 ~ [ab3,c4,f4]@3 ~, ~@6 f2@9 ~", // Fm
BI: "[ab2,ab3,c4,eb4]@6 ~@2 [ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@2 ~@2, ~@3 ab2@5", // Ab
BJ: "[bb3,d4,f4]@3 ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~, bb2@5 ~ bb2@4 bb2@4 ~@2", // Bb
BK: "[[bb3,eb4,g4] ~ [g3,bb3,eb4]@18 ~@12]/2", // Eb
})).s("gm_epiano2").gain(0.26).pan(0.4)
// chords · epiano2 · "E.PIANO 2" · soft notes
const epiano2_soft = note(`<
~@2 A@3 ~ B ~@2 C D ~ E ~ F G H ~@3 I J ~ K@2 ~ L M B N O ~ P Q R S ~ N T U ~ V W N X M Y Z ~ AA AB AC AD AE AF AG AH
AI ~ AJ AK AL B M ~@2 L M B N O ~ P Q R S ~ N T U ~ V W N X M Y Z ~ AA AB AC AD AE AF AG AH AI ~ AJ AK AL B Z ~ AA AB
AC AD AE AF AG AH AI ~ AJ AK ~@11 AM ~@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: "ab3@3 ~@5",
F: "~@6 bb2@8 [g3,bb3,eb4] ~", G: "~@8 f2@7 ~, bb1@15 ~", H: "~@6 f2@9 ~", I: "~@3 ab2@3 ~@2", J: "~@4 [bb3,d4] ~@3",
K: "[~ eb3@2 ~, eb2@15 ~@17]/2", L: "~@3 eb2@3 ~@2, ~@3 ab3 ~@4", M: "~@3 bb2@4 ~", N: "~@3 f2@4 ~", O: "[f3,d4] ~@7",
P: "[g3,c4,eb4] ~@7", Q: "~@8 ab2@7 ~", R: "~@6 eb2@9 ~", S: "~@8 eb3@7 ~", T: "~@3 f2@3 ~@2", U: "c2@15 ~",
V: "~@7 eb2", W: "~@5 eb2@3", X: "~@10 f2@5 ~, ~@5 d4 ~@2", Y: "~@5 [g3,bb3,eb4] ~@2, ~@3 bb2@3 ~@2",
Z: "~@3 eb2@4 eb2", AA: "~@3 eb4 ~@4", AB: "~@3 bb2@4 bb2", AC: "eb4@6 ~@8 [ab3,eb4] ~, ~@7 eb2",
AD: "eb4@2 ~@4 eb2@9 ~", AE: "~@8 c3@7 ~", AF: "eb4 ~@7", AG: "~@14 ab3 ~",
AH: "ab3 ~@2 [f3,ab3] ~@2 f1@2, ~@6 c2@9 ~", AI: "~@6 c2@9 ~, ~@3 eb4 ~@4", AJ: "~@14 eb4 ~", AK: "bb1@7 ~, d4@3 ~@5",
AL: "~@7 bb2, ~@14 g3 ~", AM: "~@10 bb2@5 ~",
})).s("gm_epiano2").gain(0.15).pan(0.4)
// chords · acoustic guitar steel · "STEEL GTR"
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.11)
// chords · harpsichord · "HARPSICHRD"
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@2 H I J K H I L J H F K J M N@2
>`.pickRestart({
A: "~@15 bb2, ab6@4 ab5 g5 eb5 bb4 ab4 g4 eb4 bb3 ab3 g3 eb3@2, ~ g6@15, ~ eb6@7, ~@3 bb5@13",
B: "[[ab3,c4,eb4,ab4,c5,eb5]@5 ~ [ab3,c4,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, ~@6 eb4@2 ~@23 [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: "[~ 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, [f3,bb3,d4,f4,bb4]@5 ~@26 [eb3,g4]@6 ~@27]/4", // Bb Eb5 Eb Bb Eb
F: "~@2 bb4@2 eb5@2 bb4@9 ~", G: "~ c5@2 bb4@5", H: "~@2 d5@4 bb4@7 ~@3", I: "~ bb4 eb5 bb4@4 ~", J: "~ c5@2 bb4@4 ~",
K: "~@2 c5@4 bb4@7 ~@3", L: "~@2 c5@4 bb4@9 ~", M: "~ d5@2 bb4@3 ~@2",
N: "[~@3 eb5@7 ~@6, ~ g4@9 ~@6, ~ bb4@4 ~@3]/2",
})).s("gm_harpsichord").gain(0.19).pan(0.6)
// chords · flute
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.4)
// chords · flute · 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.06).pan(0.4)
// 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",
})).gain(0.19)
// … 69 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.