0:00/0:00
// Son of Your Father — John Elton
// 162 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 150 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(162/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 B C D@2 E@2 F@2 G@2 H I J K@2 L M N@2 O P Q@3 R@3 S T U V W@2 X Y@2 Z AA@2 AB AC AD@2 AE AF AG@2 AH@2 AI AJ AK AL AM
AN@2 AO@2 K@2 L M N@2 O P Q@3 R@3 S T U V W@2 X Y@2 Z AA@2 AB AP AD@2 AE AQ AG@2 AH@2 AI AJ AK AL AM AN@2 AO@2 AR@2
F@2 G@2 H I J K@2 L M N@2 O P AS AB AP AD@2 AE AQ AG@2 AH@2 AI AJ AK AL AM AT AK AL AM AU AK AL AV@2 AW@3 ~
>`.pickRestart({
A: "~@12 gb3 g3 bb3 ~",
B: "[eb2,eb3,g3,eb4]@2 [eb3,g3,bb3] ~ eb2@2 [eb3,c4,eb4]@2 eb2 ~ [eb3,g3,bb3,c4,eb4]@2 eb2@2 [eb3,g3,bb3,c4,eb4]@2, eb1@15 ~, ~@2 [c4,eb4]@2 ~@2 [g3,bb3] ~@9", // Eb Cm Cm7 Cm Gm
C: "eb2@2 [g3,c4,eb4] ~ [eb2,eb3,g3,c4]@2 [gb3,bb3]@2 [eb2,g3]@2 eb3 ~ [eb2,eb3,ab3,c4]@2 [eb3,g3,bb3]@2, eb1@7 ~, ~@2 [eb3,bb3]@2 ~@2 eb3@4 ~@2 g3 ~@3", // Cm Gb Eb Ab Eb Eb5
D: "[eb2@2 eb3 ~ [eb2,eb3,c4]@3 ~ [eb2,eb3,c4]@2 [eb3,g3,c4,eb4]@2 eb2 ~ [eb3,g3,bb3,c4,eb4]@2 eb2@2 [eb3,g3,bb3,c4,eb4]@2 [eb3,g3,c4] ~ [eb3,gb3,bb3]@2 eb2@2 eb3 ~ [eb2,eb3,ab3]@2 [eb3,g3,bb3]@2, eb1@15 ~, ~@4 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~ bb3 ~@9 eb2@2 ~@2 g3 ~@3 c4 ~@3]/2", // Cm Cm7 Cm Ebm Ab5 Eb
E: "[[eb3,gb3]@2 g3@2 eb3 ~@3 [eb3,gb3,bb3]@2 g3 ~ eb2 ~ [eb3,g3,bb3,c4,eb4]@2 ~@2 [g3,bb3,c4,eb4]@2 ~@4 [eb3,gb3]@2 g3@2 eb3@2 gb3 ~, eb1@11 ~@3 eb1@13 ~@5, bb3@5 ~@9 eb2@4 eb3@4 eb2@4 ~@2 eb2@4, ~@12 bb3@3 ~]/2", // Ebm Cm7 Ebm
F: "[[ab2,ab3,b3]@2 c4@2 ab2 ~ ab2 ~ [ab3,b3,eb4]@2 c4 ~ ab2 ~ [ab3,c4,eb4,f4,ab4] ~@3 [c4,eb4,f4,ab4] ~ [c4,eb4,f4,ab4] ~ ab2 ~ [c4,eb4,f4,ab4] ~ [c4,eb4,f4,ab4]@2 ab2@2 [ab3,c4,eb4,f4,ab4] ~, ab1@11 ~@3 ab1@14 ~@4, eb4@5 ~@9 ab2@6 ~@12, ~@9 ab3 ~@2 ab3@2 ~@2]/2", // Abm Fm7
G: "[[bb2,db4,f4]@2 d4@2 ~@2 bb2 ~ [bb3,d4,f4]@2 ~@2 [bb2,bb3] ~ [d4,f4,g4,bb4] ~@3 [bb3,g4,bb4]@3 ~ bb2 ~ [d4,f4,g4,bb4]@4 bb3@2 ~@2, bb1@5 ~@2 bb1@7 ~@2, bb3@5 ~@9 bb2@4 ~@10 bb2 ~@3, ~@14 bb3@3 ~ [d4,f4] ~@5 bb3@3 ~@5]/2", // Bbm Bb Gm7 Eb Gm7 Dm
H: "[ab2,ab3,eb4]@2 c4 ~@3 ab2 ~ [c4,eb4] ~@3 ab2 ~ gb3@2, ab1@12 ~@2 ab2 ~, b3 ~@7 ab3@5 ~@3, ~@5 [c4,eb4]@2 ~", // Ab5 Cm
I: "g3@2 [g3,eb4] ~ eb3 ~ [g3,eb4]@2 eb3 ~ [g3,eb4]@2 c4@2 gb3@2, eb2@3 ~", // Cm
J: "g3@2 [g3,eb4]@2 eb3 ~ [g3,eb4]@2 eb3@2 [g3,eb4]@2 eb3@2 ~@2, eb2@3 ~, eb3 ~@15", // Cm
K: "[db3@2 [eb3,gb3]@2 g3@2 eb3 ~ [eb3,bb3,db4]@3 ~ [db3,eb3,c4]@3 ~ [gb3,bb3]@2 g3 ~ bb2@2 [eb3,g3,c4,eb4]@2 db3 ~ [eb3,eb4]@2 [eb2,bb2] ~ eb3 ~, eb2@8 bb2 ~@3 eb2@10 ~@10, ~@2 bb3@4 ~@6 ab3 ~@3 [db3,eb3]@4 ~@2 bb3 ~@3 [g3,bb3,c4]@5 ~, ~@16 bb2 ~@11 db3@2 ~@2]/2", // Ebm Eb7 Cm Gb Cm Eb Eb5 Dbsus2 …
L: "eb3@2 b3 ~ c4@3 ~ [eb3,gb3,ab3,c4] ~@3 [ab2,gb3,ab3,f4]@3 ~, ab2@5 ~@3 [ab2,eb4]@2 ~@6, ~@2 [ab3,eb4]@5 ~@5 [eb3,db4] ~@3", // Ab7 Db Ab5 Eb7
M: "[eb3,b3]@2 c4 ~ eb3 ~ [ab3,c4,eb4,f4,ab4]@2 ~@2 [ab3,ab4]@2 eb3@2 ab3@2, [ab2,gb3,ab3,eb4] ~ gb3@2, ~@2 ab2 ~, ~@10 [c4,eb4,f4]@5 ~", // Abm Fm7 Ab Ab7 F7
N: "[[bb3,d4,f4]@3 ~ [bb3,eb4,g4]@3 ~ g4@2 [d4,f4]@3 ~ [bb3,eb4,g4]@4 f3@2 [bb3,eb4,g4]@3 ~ g4@2 [bb2,ab3,d4,f4]@5 ~, ab3@7 ab3@5 ~@4, bb2@5 bb2@7 ~@4, f3@6 ~@2 [f3,bb3]@5 ~ f3 ~@9 [f3,bb3]@8, db4 ~@7 eb4 ~ db4 ~@13 eb4 ~ db4 ~@5]/2", // Bb Eb Dm Eb Bb7 Bb5
O: "eb3@2 ab3@2 c4@2 ab3 ~ [eb3,ab3,c4,eb4]@4 [c4,eb4]@2 ab3 ~, ~ eb4@2 ~@5, ~@2 b3 ~@9 [ab2,ab3] ~@3", // Ab Cm Ab
P: "bb2@2 ~@2 [c4,eb4]@2 ~@4 [g3,gb4]@2 ~@2 g3 ~, eb2@3 ~@5, ~ g3 ~@2, ~@4 bb3 ~@5 db4@4 ~@2", // Cm Gmaj7
Q: "[[g3,bb3,c4,eb4]@2 ~@4 [g3,db4,gb4]@4 ~@2 [bb3,c4,eb4]@2 db4@2 d4@3 ~ [bb3,d4,f4]@2 ~@2 [bb3,f4,ab4]@2 ~@2 [bb3,eb4,g4]@2 ~@2 [bb3,db4,f4]@2 d4 ~ f3@2 [ab3,bb3,d4,f4,bb4]@3 ~@3 ab3@2 bb3@2, ~@6 c4 ~@3 g3@4 [bb3,f4]@5 ~@3 bb2@6 ~@2 bb2@17 ~, ~@22 ab3@4 f3@4 ab3@6 ~@6 [bb3,d4,f4,bb4]@5 ~]/3", // Cm7 Gb Cm7 Bb Bb7 Eb Bbm Bb7 …
R: "[~@4 ab3 ~ eb3 ~ b3@2 ~@4 [g3,bb3,eb4]@2 ~@2 [g3,bb3,eb4]@2 bb2@2 ~@2 [gb3,eb4]@2 ~@2 [bb3,eb4]@3 ~ [g3,bb3,eb4]@4 ~@2 [gb3,eb4]@2 ~@6 [g3,bb3,eb4]@2, ab2@14 ~@2 eb2@15 ~ eb2@12 ~@4, ~@8 [ab3,eb4]@6 ~@12 g3@5 ~@9 g3@6 ~@2, ~@5 c4@2 ~@14 [bb3,eb4]@2 ~, ~@12 eb3@8 ~@2 eb3@4 ~@2 eb3@6 ~@2 eb3@7 ~ eb3@4]/3", // Eb Ebm Eb5 Eb Ebm Eb Ab5 Eb5
S: "~@2 gb3@2 g3@3 ~ [g3,bb3,eb4]@3 ~ ab3@2 ab3 ~, ~ [bb3,eb4]@3 ~@2 [eb3,c4,eb4]@2", // Eb Eb5 Cm
T: "[bb3,db4,f4]@2 d4 ~ [bb3,d4,f4] ~ [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 bb3 ~, [bb2,ab3]@15 ~", // Bbm Bb Bb7
U: "[bb3,f4,ab4]@3 ~ [eb4,g4]@2 bb3 ~ [bb3,db4,f4]@2 ~@2 ab3@2 g3 ~, bb2@11 ~@5, ab3@9 ~ d4@5 ~, ~@4 bb3 ~@3 f3@7 ~", // Bb7 Eb Bbm
V: "[g3,bb3,eb4]@3 ~ [g3,bb3]@2 ~@2 [g3,eb4]@2 bb3 ~ bb2@2 [ab3,c4,eb4]@2, eb2@3 ~, ~@3 eb3@5", // Eb Gm Cm Ab
W: "[~@2 [ab3,c4]@4 eb3 ~@7 ab3 ~ [eb2,g3,bb3,eb4]@4 ~@4 [d3,g3,bb3]@5 ~@3, ab2@15 ~@9 [d2,d4,f4]@3 ~@5, ~@2 eb4@2 ~@4 [ab3,c4,eb4]@7 ~@17, ~@12 eb3@7 ~@13]/2", // Ab Eb Gm Dm Ab
X: "[g3,bb3,c4]@5 ~@3 [bb2,g3,bb3,eb4]@8, [c3,eb4]@7 ~@9", // C7 Eb Cm
Y: "[~@2 c4@2 eb3 ~ [ab3,c4,eb4]@3 ~@5 ab3 ~ [g3,bb3,eb4]@3 ~ g3@2 ~@6 eb3@2 bb3 ~, ab2@12 eb3@8 bb3 ~ eb3@6 ~@4, [gb3,ab3,b3,eb4]@4 ~@6 [ab3,c4,eb4]@5 ~ eb2@15 ~, ~@24 [g3,eb4]@7 ~, ~@13 bb3@2 ~]/2", // Ab Eb Abm7 Ab Cm
Z: "[f3,db4]@2 d4 ~ [bb3,f4]@2 d4 ~@7 g3@2, ab3, bb2@3 bb2, [bb3,f4]@4 d4 ~@3 [f3,bb3,d4,f4]@8", // Db Bb5 Bb
AA: "[[g3,bb3,eb4]@4 bb2@2 ~@2 gb3@2 g3@2 bb3 ~ [g3,bb3,eb4]@2 eb3 ~@7 [gb3,eb4]@4 [eb3,g3]@4, eb2@7 ~, eb3@3 ~@3 eb3@4 ~@8 [g3,bb3,eb4]@4 ~@6 eb4 ~@3, ~@10 eb3@3 ~@3]/2", // Eb Ebm Eb
AB: "[g3,bb3,eb4]@2 ~@2 gb3 g3 ~ [f3,c4], ~@6 eb3@4 ~@4 a3 ~, ~@2 eb4 ~", // Eb F5
AC: "~@2 f3@4 ~@2 ab3@2 a3@4 ab3 ~, ~ [a3,c4]@3 [f3,c4]@3 ~, ~@6 eb3@9 ~", // Am F5
AD: "[[ab3,b3,eb4]@2 c4 ~ [c4,eb4] ~ [ab3,c4,eb4] ~ [gb3,ab3,c4,eb4]@5 ~ gb3@2 [eb3,g3]@5 ~ [ab3,c4,eb4]@4 [g3,eb4]@4 gb3 ~, ~@4 ab3@2 ~@8 eb4@7 ~ eb3@6 ~@4, ~@13 bb3@3]/2", // Abm Cm Ab Ab7 Eb Ab Cm
AE: "gb3 ~@2 eb3 [g3,bb3,eb4]@2 eb3 [f3,ab3,c4], eb4@7 ~@9, eb3 bb2@2 ~, ~ g3@2 ~@5", // Eb Fm
AF: "a3 ~ [f3,a3,c4]@2 [f3,a3,c4]@3 ~ ab3@2 ~@4 bb3 ~, ~@4 [f3,c4]@3 ~, ~@5 a3@2 ~, ~@3 eb3", // F F5
AG: "[[f3,db4]@2 ~@2 f3@2 ~@2 [f4,ab4] ~ [bb3,f4,ab4]@2 ~@4 [bb3,db4]@2 d4@2 ~@2 [bb3,d4,f4]@2 ~@2 bb3@2 [f3,ab3]@2 bb3 ~, f4@7 ~@6 f3@7 bb2@8 ~@4, [ab3,bb3]@4 ~@2 ab3@9 ~@5 ab3@6 ~@6, ~@2 d4@6 bb3@2 ~@2 [bb3,eb4,g4]@2 ~@2 f4@5 ~ [g4,bb4]@4 [d4,f4,g4,bb4]@6]/2", // Db Fm Bb7 Bbm Bb Fm Absus2 Eb …
AH: "[~@4 g3 ~@2 [a3,c4] ~ [f3,c4] ~@2 [a3,c4]@2 c3 ab3, eb2@10 bb3@4 ab3 ~ f2@10 ~@6, eb3@3 bb2@3 eb3@4 c3@2 f3 ~@3, ~@4 [g3,bb3,eb4]@4 eb4@5 ~@5 a3 ~@3 eb3@6 ~@4]/2", // Am F5 Am Eb
AI: "[ab3,b3,eb4]@2 c4 ~ [c4,eb4] ~ [ab3,c4,eb4]@2 ~@2 ab3@2 gb3 ~ ab3 ~, ab2@3 ~, gb3@2 eb3 ~, ~@2 ab3 ~@2 c4@2 ~", // Abm Cm Ab
AJ: "[g3,bb3]@3 ~ g3@2 ~@2 [ab3,c4]@2 bb3@2 eb3@2 g3 ~, eb2@3 ~, eb4@7 ~ eb4@7 ~, eb3@2 ~ bb2@3 ~@2, ~@10 g3 ~@5", // Gm Ab
AK: "[eb3,g3,bb3,eb4]@7 ~ [d2,d3,g3,bb3,d4,f4]@7 ~, eb2@3 ~@13", AL: "~@4 [c3,g3,bb3,c4,eb4]@4 [bb2,g3,bb3,eb4]@7 ~",
AM: "b3 c4 ~ [ab3,c4,eb4]@2 ab3 gb3 ab3, ab2@3 ~, [gb3,ab3,eb4]@4 eb3@11 ~, ~@5 [c4,eb4]@2 ~", // Ab Ab7 Cm
AN: "[[eb3,g3,eb4]@3 ~ [eb3,ab3]@2 g3@2 bb3@2 eb3@2 ~@2 eb3@2 bb2@2 ~@2 bb2 ~@3 c3@4 [bb2,eb3]@4, eb2@29 ~@3, bb2@7 ~ bb2@7 ~@7 bb2@4 ~@6, ~@8 eb3 ~@9 eb3@5 ~@9]/2", // Eb Ab5 Eb5
AO: "[~@4 [eb3,ab3]@2 g3 ~ [bb2,bb3]@2 eb3@2 bb2@2 eb3@2 ~@2 eb3@4 bb2@2 c3@3 ~ [bb2,eb3]@3 ~, eb2@7 ~, bb2@6 ~@2 eb3 ~@7 bb2@6 ~@10]/2", // Ab5 Bb Eb5
AP: "~@2 f3@4 ~@2 a3@2 a3@4 ab3 ~, ~ [a3,c4]@3 [f3,c4]@3 ~, ~@6 eb3@9 ~", // Am F5
AQ: "a3 ~ [f3,a3,c4]@2 [f3,a3,c4]@3 ~ a3@2 ~@4 bb3 ~, ~@4 [f3,c4]@3 ~, ~@5 a3@2 ~, ~@3 eb3", // F F5
AR: "[[eb3,gb3]@2 g3@2 eb3 ~ eb2 ~ [eb3,gb3,bb3]@2 g3 ~ eb2 ~ [eb3,g3,bb3,c4,eb4]@2 ~@2 [g3,bb3,c4,eb4]@2 ~@4 [eb3,gb3]@2 g3@2 eb3@2 gb3 ~, eb1@11 ~@3 eb1@13 ~@5, [eb2,bb3]@5 ~@9 eb2@4 eb3@4 eb2@4 ~@2 eb2@4, ~@12 bb3@3 ~]/2", // Ebm Cm7 Ebm Eb5
AS: "[g3,bb3,c4,eb4] ~@2 [g3,db4,gb4]@2 ~ [bb3,c4,eb4] [d4,f4], ~@6 c4 ~@3 g3@4 ~@2", // Cm7 Gb Cm7 Dm
AT: "[eb3,g3,eb4]@3 ~ [eb3,ab3]@2 g3@2 bb3@2 eb3@2 ~@4, eb2@8 eb3 ~@7, bb2@7 ~ bb2@7 ~", // Eb Ab5
AU: "[eb3,g3,eb4]@3 ~ eb3@3 ~ bb2@7 ~, eb2@5 ~@3, bb2@7 ~ bb3@2 ~@6, ~@8 eb3 ~@7", // Eb
AV: "[[ab2,gb3,ab3,c4,eb4]@31 ~]/2", AW: "[eb2,bb2,eb3,g3,eb4]/3",
})).s("gm_piano").gain(0.35).pan(0.3)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
~@5 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA@2 AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT
AU AV AW AX@4 J K L M N O P Q R S T U V W X Y Z AA@2 AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW
AX@4 A B C D E F G H I J K L M N O P Q R AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AY AU AV AW AY AU AV AZ@2 BA@3 ~
>`.pickRestart({
A: "eb1@3 ~@3 bb1@2 eb2@3 ~@3 gb1@2", B: "g1 ~ g1@2 ~@2 g1@2 bb1 ~ bb1 ~ bb1@3 ~",
C: "ab1@4 ~@2 ab1 ~ ab1 ~ ab1 ~@3 ab1@2", D: "~@2 ab1 ~ b1@2 b1@2 c2@2 db2@2 d2@2 eb2@2",
E: "bb1@4 ~@2 bb1 ~ bb2@3 ~@3 bb1 ~", F: "~@2 bb2@4 ~@4 bb2@2 g2 ~ g2@2", G: "ab2@4 ~@2 eb2 ~ ab2 ~ ab2 ~@3 ab2 ~",
H: "eb2 ~ eb2 ~@3 eb2 ~ eb2@2 eb1@2 gb1@2 g1@2", I: "eb1@4 ~@4 eb1@5 ~ g2@2", J: "~@2 bb1@2 g1@3 ~@3 g1@2 ab1@2 a1@2",
K: "bb1 ~ bb1 ~ c2 ~ c2 ~ db2 ~ db2@2 d2@2 eb2@2", L: "ab1@4 ~@2 ab1 ~ ab1@3 ~@3 c2 ~",
M: "~ c2 db2 d2 c2 db2 d2 eb2", N: "bb1@3 ~ bb1 ~ bb1 ~ bb2@2 f2@2 ~@2 bb2 ~",
O: "~@2 bb2 ~ f2@3 ~@3 f2@2 bb1 ~ a1@2", P: "ab1@3 eb2 ab2 eb2 ab2 bb2", Q: "eb2@5 ~@3 eb2@4 ~@2 gb1@2",
R: "g1 ~ g1@2 ab1 ~ ab1 ~ a1 ~ a1@2 bb1@3 ~", S: "bb2@3 ~@3 f2@2 bb2 ~@5 db2@2",
T: "d2 ~ d2 ~ eb2@2 e2@2 f2@3 ~ f1 ~ f1@2", U: "ab1 ~@3 ab1@3 ~@3 ab1 ~ db2@2 d2@2",
V: "eb2@3 ~@3 bb1@2 eb2@3 ~@3 eb2 ~", W: "eb2 ~@3 eb2@3 ~@3 eb2@2 g2@2 eb2@2", X: "eb2@5 ~ g1@3 ~ g1@2 ab1@2 a1@2",
Y: "bb1@2 ~@2 bb2@2 f2@2 bb2 ~ bb2 ~ db2 ~ d2@2", Z: "~@2 d2@2 eb2@2 e2 ~ f2 ~ f2 ~ bb1@2 bb2@2",
AA: "[eb2@6 ~@2 eb2@2 f2@2 g2@2 ab2@7 ~@3 ab2 ~ ab2@2 g2 ~ f2@2]/2", AB: "eb2 ~ d2 ~", AC: "c2@2 ~@2 bb1 ~@3",
AD: "ab1@4 ~@2 ab1@3 ~ c2@2 db2@2 d2@2", AE: "eb2@3 ~ eb2 g2 ab2 a2", AF: "bb2@4 ~@4 bb2@2 f2@2 ~@2 bb2 ~",
AG: "eb2@9 ~@3 bb2@2 eb3 ~", AH: "~@2 bb2@2 eb2@5 ~@3 bb1@4", AI: "eb1@4 ~@2 eb1@2 eb2@3 ~ eb1@2 e1@2",
AJ: "f1 ~ f1 ~@3 f1 ~ f2@8", AK: "ab1@3 ~@3 ab1 ~ ab2@2 c2@2 db2@2 d2@2", AL: "eb2@2 eb2 ~@3 bb1@2 eb2@6 ~@2",
AM: "eb2 ~ eb2 ~@3 bb1@2 eb2@3 ~ eb2@2 e2@2", AN: "f2 ~ f2 ~@3 c2 ~ f2@4 ~@4",
AO: "bb2 ~ bb1@2 d2 ~ d2@2 eb2 ~ eb2@2 e2 ~ e2 ~", AP: "f2@2 f1@2 bb1 ~ bb1 ~ c2 ~ c2@2 db2@2 d2@2",
AQ: "eb2@2 eb1 ~ g1 ~ g1@2 ab1 ~ ab1@2 a1@2 bb1@2", AR: "f2@2 f1 ~ a1 ~ a1@2 bb1 ~ bb1@2 b1@2 c2@2",
AS: "bb1@2 ab1@2 ~@2 eb2@2 ab2@3 ~@3 ab2@2", AT: "eb2@2 bb1 ~@3 bb1@2 eb2@4 ~@4", AU: "eb2@5 ~@3 d2@4 ~@4",
AV: "~@4 c2@2 ~@2 bb1@3 ~@5", AW: "ab1@7 ~@3 c2@2 db2@2 d2@2", AX: "[eb2 ~ eb2 ~ eb1@60]/4", AY: "eb2 ~ eb2 ~ eb1@12",
AZ: "[ab1@31 ~]/2", BA: "eb1/3",
})).s("gm_fretless_bass").gain(0.4)
// other · clavinet
const clavinet = note(`<
~@5 A B C D E F G H ~ I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH ~@19 I J K L M N O P Q R S T U V W X
Y Z AA AB AC AD AE AF AG AH ~@19 A B C D E F G H ~ I J K L M N O P Q ~@28
>`.pickRestart({
A: "eb2 ~ eb2 ~@3 eb2 ~ db3@2 eb3 ~ eb2 ~ eb2 ~", B: "~@2 eb2 ~ db2@2 eb2 ~ eb2 ~ eb2 ~ eb2@2 ~@2",
C: "ab1@3 ~ ab1 ~ ab1 ~ gb2 ~ ab2 ~ ab1 ~ ab1 ~", D: "~@2 ab1 ~@3 ab1 ~ gb2@2 ab2 ~ ab1 ~ ab1 ~",
E: "bb1@3 ~@3 bb1 ~ ab2 ~ bb2 ~ bb1 ~ bb1@2", F: "~@2 bb1 ~ bb1 ~ bb1 ~ ab2@2 bb2 ~ bb1 ~ bb2 ~",
G: "ab1@3 ~ ab1 ~ ab1 ~ gb2 ~ ab2 ~ ab1 ~ ab2 ~", H: "eb2@3 ~@13", I: "eb2@2 ~@2 eb2 ~ eb2 ~ db3@2 eb3 ~ eb2 ~ eb3 ~",
J: "eb2 ~ eb2 ~ db3@2 eb3 ~ eb2 ~ eb3 ~ eb2 ~ eb3 ~", K: "ab1@3 ~ ab1 ~ ab1 ~ gb2 ~ ab2 ~ ab1 ~@3",
L: "~@2 ab2 ~ ab1 ~ ab1 ~ gb2 ~ ab2 ~ ab1@2 ab2 ~", M: "bb1@3 ~ bb1 ~ bb1 ~ ab2 ~ bb2 ~ bb1 ~ bb2 ~",
N: "~@2 bb2 ~@3 bb1 ~ ab2 ~ bb2 ~ bb1 ~ bb2 ~", O: "ab1@3 ~ ab1 ~ ab1 ~ ab2@2 ~@2 ab1 ~ ab2 ~",
P: "eb1 ~ eb2 ~ eb1 ~ eb1 ~ eb2 ~ eb1 ~ eb2 ~ eb1 ~", Q: "eb1 ~ eb2 ~ eb1 ~ eb2 ~ eb1 ~ eb1 ~ eb2 ~@3",
R: "[bb1,f2]@4 ~@4 [bb2,d3,f3]@4 f2 ~ bb2 ~", S: "~@2 bb2 ~@3 [bb1,f2] ~ [bb2,f3]@4 f2 ~@3",
T: "ab1 ~ ab1@2 eb2@2 ab2@2 b2@2 c3@2 ab2 ~ ab2 ~", U: "eb2@2 gb2@2 g2@2 eb2@2 bb2@2 ~@2 eb2@2 gb2 ~",
V: "eb1@4 ~@2 eb2 ~ gb2@2 g2 ~ eb2@2 bb2 ~", W: "eb2@2 bb2 ~@3 eb2@2 [gb2,eb3]@2 g2 ~ eb2 ~ ab2 ~",
X: "~@6 f2 ~ [bb2,db3,f3]@2 d3 ~ f2 ~ d3 ~", Y: "~@2 [bb2,f3] ~@3 f2 ~ [bb2,d3,f3] ~ [bb2,d3,f3] ~ f2 ~ [bb2,f3] ~",
Z: "eb2@4 ~@2 eb2 ~ [gb2,eb3]@2 g2 ~ eb2 ~ g2 ~", AA: "~@2 bb2 ~ ab1 ~ eb2 ~ [ab2,eb3]@4 eb2@2 ab2 ~, ~@4 c3@3 ~",
AB: "eb2 ~ d2 ~", AC: "c2@4 ~@4 bb1@3 ~@5", AD: "ab1 ~ ab1@2 eb2@2 ab2@2 ~@2 ab2 ~@3 ab2 ~",
AE: "eb2@2 gb2 ~ eb2 ~ g2@2 bb2@2 eb2 ~ eb3@2 eb2@2", AF: "bb1@4 bb2 ~ f2 ~ [bb2,db3,f3]@2 d3 ~ f2@2 bb2 ~",
AG: "eb1@5 ~ db2 ~ eb1 ~ eb2 ~ eb1 eb2 ~@2", AH: "eb1@2 db2@2 eb2@2 ~ eb1@3 ~@3 eb2 ~@2, ~@11 eb1@2 ~@3, ~@6 db2 ~",
})).s("gm_clavinet").gain(0.35).pan(0.8)
// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
~@5 A B C D E F G@2 H I J K L E M N O P Q R S@2 T U V W T X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ ~@4
AR AS AT I J K L E M N O P Q R S@2 T U V W T X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ ~@4 AR AS AT A B
C D E F G@2 H I J K L E M N O P AF AG AH AI AJ AK AL AM AN AO AP AQ ~@16
>`.pickRestart({
A: "~@4 g3 ~@5 bb3 ~@5", B: "[bb3,eb4] ~@5 [bb3,eb4] ~@5 [bb3,eb4]@2 eb4 ~", C: "~@4 c4 ~@5 [c4,eb4] ~@5",
D: "c4 ~@5 [c4,eb4] ~@5 [c4,eb4] ~@3", E: "~@4 eb4 ~@3 db4@2 d4@2 ~@4", F: "eb4 ~@3 db4@2 d4@2 ~@2 bb3 ~@5",
G: "[~@6 eb4@2 f4@3 eb4 f4@2 eb4@6 ~@12]/2", H: "~@2 db4@2 db4@2 db4@2 db4@2 db4@2 db4@2 db4 ~",
I: "~@4 d4 ~@5 eb4 ~@5", J: "d4 ~@6 [bb3,eb4] ~@4 eb4@2 eb4 ~", K: "~@10 eb4 ~@5",
L: "[c4,eb4] ~@5 [c4,eb4] ~@5 eb4@2 [c4,eb4] ~", M: "eb4 ~ db4 d4 ~@4", N: "~@10 f4@4 eb4 ~",
O: "f4 ~ eb4@2 ~@4 eb4@2 eb4@2 ~@4", P: "~@2 gb3@4 bb3 ~ bb3@2 bb3 ~@5", Q: "~@4 bb3 ~@5 [bb3,d4] ~@5",
R: "[bb3,d4] ~@5 [bb3,d4]@4 [bb3,d4]@2 ~@4", S: "[~@6 ab3 ~ db4@2 c4@2 ~@2 bb3@5 ~@7 bb3 ~@5]/2",
T: "~@4 eb4 ~@5 [bb3,eb4] ~@5", U: "[bb3,eb4] ~@5 [bb3,eb4] ~@9", V: "~@4 db4@4 bb3 ~@7",
W: "db4@2 c4@2 ~@2 bb3@6 bb3 ~@3", X: "~@2 b3 ~@3 [c4,eb4] ~@5 c4 ~@3", Y: "~ eb4@5 ~@2 bb3@6 ~@2, bb3@5 ~@11",
Z: "[g3,c4]@4 ~@4 [f3,bb3]@5 ~@3", AA: "~@4 c4 ~@5 c4 ab3 ~@4", AB: "[g3,bb3] ~@5 [gb3,bb3] ~@9",
AC: "~@4 bb3 ~@5 [f3,bb3] ~@5", AD: "~@3 bb3@2 eb4!3", AE: "~@6 e4@4 eb4 ~ f4@2 eb4@2", AF: "~@4 bb3 ~@5 bb3 ~@5",
AG: "a3 ~@5 a3 ~@3 c4 ~@5", AH: "~@4 [c4,eb4] ~@5 [c4,eb4] ~@5", AI: "bb3 ~@5 [bb3,eb4] ~@9", AJ: "~@4 bb3@7 bb3 ~@4",
AK: "a3 ~@5 [a3,c4] ~@9", AL: "~@10 f3@4 bb3 ~", AM: "~@2 bb3@2 ~@2 c4@3 ~ bb3 ~ c4@2 bb3 ~",
AN: "~@4 bb3 ~@5 eb4 bb3 ~@4", AO: "a3 ~@6 [f3,a3,c4] ~@8", AP: "~@4 b3@6 [c4,eb4] ~@5",
AQ: "[bb3,eb4] ~@5 [bb3,eb4] ~@5 eb4 ~@3", AR: "~@6 db4!2", AS: "~@8 db4@2 ~@2 db4@2 ~ db4",
AT: "~@2 c4@2 ~@2 bb3@5 ~@5",
})).s("gm_electric_guitar_muted").gain(0.32)
// chords · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note(`<
~@5 A ~@5 B ~@2 C D E F ~@8 G H ~@5 I J ~@2 K ~@2 G L ~@2 M N ~@5 O ~@7 C D E F ~@8 G H ~@5 I J ~@2 K ~@2 G L ~@2 M N
~@5 O ~@7 A ~@5 B ~@2 C D E F ~@5 G L ~@2 M N ~@5 O ~@16
>`.pickRestart({
A: "~@4 bb3 ~@5 g3 ~@5", B: "~ bb3@2 ~@5", C: "~@10 bb3 ~@5", D: "~@14 bb3 ~", E: "~@11 c4 ~@4", F: "~@6 c4 ~",
G: "~@10 g3 ~@5", H: "~@4 bb3 ~@11", I: "~ g4@5 ~@2 [f3,d4]@6 ~@2", J: "eb4@4 ~@5 d4@3 ~@4", K: "~@4 f3 ~@11",
L: "~@3 f3 ~@2 f3 ~@9", M: "~@4 g3@7 g3 ~@4", N: "c4 ~@9 c4 ~@5", O: "~@6 g3 ~@5 bb3 ~@3",
})).s("gm_electric_guitar_muted").gain(0.12)
// chords · harmonica
const harmonica = note(`<
~@12 A B ~@7 C D E F G H I J K L M N O P Q R S T U ~ V ~ W ~@2 X Y ~@7 Z AA AB AC ~@7 C D E F G H I J K L M N O P Q R
S T U ~ V ~ W ~@2 X Y ~@7 Z AA AB AC ~@19 V ~ W ~@2 X Y ~@20
>`.pickRestart({
A: "bb3@2 c4@2 [bb3,c4] ~ [g3,bb3,c4] ~ [bb3,c4,eb4] [bb3,eb4] ~ [bb3,c4] [bb3,c4,eb4] ~ [f3,bb3,d4] ~, ~@2 eb4 ~@5", // Bbsus2 C7 Cm7 Eb5 Bbsus2 Cm7 Bb
B: "[c4,eb4] ~ [ab3,bb3,d4] ~ [eb4,g4,bb4] ~ [g3,bb3,c4] ~ [g3,bb3]@2 c4 ~@5, g4@2 ~@6 eb3 ~@7", // Cm Bb7 Eb C7 Gm
C: "~@4 [g3,bb3,eb4] ~ [g3,bb3,c4] ~ [g3,bb3,c4] ~@3 [bb3,c4,f4] ~ [g3,bb3] ~, ~@4 eb4 ~@2 eb4", // Eb C7 Bbsus2 Gm
D: "~@2 [g3,bb3,eb4] ~ [bb3,eb4,f4] ~@11, ~ gb4 ~@2", // Eb Bbsus4
E: "[f3,ab3,bb3] ~@3 [f3,ab3] ~ ab3 ~ ab3@2 bb3 ~@5, ~@2 bb3 ~@5", // Bb7 Fm
F: "~@2 [f3,ab3] ~ f3@2 ab3@2 bb3 ~ ab3 ~ ab3@2 bb3 ~, ~ bb3 ~@6", G: "~@4 ab3@8 bb3 ~@3",
H: "g3@4 eb4 ~@3 eb4 ~ [bb3,eb4] ~@5", I: "~@6 bb3@2 g3@3 ~ bb3@2 eb4@2",
J: "gb4@2 c4 ~ eb4@2 c4 ~ eb4@2 eb4 ~@3 eb4 ~", K: "~@2 bb3@2 bb3 ~ bb3@2 ~@4 bb3@2 [f3,ab3] ~, ~@12 ab3 ~@3",
L: "ab3 ~ [f3,ab3,bb3] ~ [f3,bb3] ~ [f3,ab3,bb3] ~ [f3,ab3,bb3] ~ [f3,ab3] ~ [f3,ab3,bb3] ~ [f3,ab3] ~, ~@5 bb3 ~ bb3", // Bb7 Bb5 Bb7 Fm Bb7 Fm
M: "eb4@4 ~@6 bb3 ~@5", N: "~ eb4 gb4 eb4 gb4 eb4 c4 eb4", O: "~@2 g4@2 f4 eb4 f4 eb4, ~@4 gb4 ~@11",
P: "~ eb4 ~ eb4!3 ~ eb4!3 ~ eb4 eb4@3 ~", Q: "ab3@9 ~ ab3 ~ ab3 ~ ab3@2", R: "bb3@3 ~ bb3@2 c4@2 eb4 ~@3 c4@2 ~@2",
S: "bb3@7 ~",
T: "[eb4,gb4]@2 [bb3,db4,eb4] ~ [bb3,eb4] ~ [bb3,db4,eb4,gb4] ~ [bb3,db4] ~ [db4,eb4,gb4] ~ [db4,eb4] ~ [db4,eb4,gb4] ~, [bb3,db4] ~@15", // Ebm Eb7 Eb5 Ebm7 Bbm Ebm7 Dbsus2 Ebm7 …
U: "[db4,eb4,gb4]@2 [bb3,db4,eb4] ~ [bb3,db4] ~ [db4,eb4,gb4]@2 bb3 ~ [bb3,db4,eb4] ~ bb3 ~ [bb3,db4,eb4] ~, ~@7 gb4", // Ebm7 Eb7 Bbm Ebm7 Eb7
V: "~@12 [a3,c4] ~ [a3,c4] ~", // Am
W: "~@2 [g3,bb3,c4] ~ [bb3,c4,eb4]@2 [g3,bb3,c4] ~ [bb3,c4,eb4]@2 [bb3,c4] ~ [g3,bb3,c4] ~ [bb3,c4,eb4] ~, ~@5 eb4 ~@2", // C7 Cm7 C7 Cm7 Bbsus2 C7 Cm7
X: "~@4 [d4,f4] ~@3 [d4,f4] ~ [d4,f4,bb4] ~ [d4,f4] ~ ab4 ~, ~@4 bb4@3 ~ ab4@2 ~@6", // Dm Bb Dm
Y: "[d4,f4] ~ [d4,f4] ~ [d4,f4] ~ [d4,f4] ~ [ab4,bb4] [f4,g4] [bb3,c4,d4] [f3,g3] [bb2,c3,d3] g2 ~@2, bb4 ~ ab4 ~@5", // Dm Absus2 Fsus2 Bb Fsus2 Bb
Z: "~@4 [bb3,eb4]@2 [g3,bb3,c4] ~ [bb3,c4,eb4]@2 [bb3,c4,eb4]@2 [g3,bb3,c4] ~ [bb3,c4,eb4] ~, ~@4 c4 ~@11", // Eb5 C7 Cm7 C7 Cm7
AA: "[g3,bb3,c4] ~ [g3,bb3,c4] ~ [bb3,c4,eb4]@2 [g3,bb3,c4] ~ [bb3,c4,eb4] ~ [bb3,c4,eb4]@2 [g3,bb3,c4] ~ [bb3,c4,eb4] ~", // C7 Cm7 C7 Cm7 C7 Cm7
AB: "bb3@2 c4@2 [bb3,eb4]@2 c4 ~ [bb3,c4] ~ [bb3,c4] ~ [g3,bb3,c4] ~ [bb3,c4,eb4] ~, ~@4 c4 ~@3 eb4@2 eb4@2 ~@4", // Eb5 Bbsus2 C7 Cm7
AC: "[bb3,c4] ~ [bb3,c4] ~ [bb3,c4] ~ [bb3,c4] ~ [f4,gb4] f4 eb4 ~ c4@2 eb4 ~, ~@2 eb4 ~@5", // Bbsus2 Gbmaj7
})).s("gm_harmonica").gain(0.3).pan(0.2)
// other · brass section · "BRASS 1"
const brass_section = note(`<
~@40 A B C D E F G ~@4 H I J K L@3 ~@27 A B C D E F G ~@4 H I J K L@3 ~ M@6 N@3 O P Q@2 R@2 S@3 A B C D E F G ~@4 H I
J K T I J K T I J U@2 V@3 ~
>`.pickRestart({
A: "bb3", B: "c4", C: "eb4@13 ~@3", D: "c5 bb4 ~ g4 ~ eb4@3, ~@6 gb4 ~@9", E: "bb3@6 c4@2 c4@2 eb4@3 ~@3",
F: "a3@3 c4!2 f4 ~@2", G: "bb4", H: "~@2 bb4 ~@3 g4@2 ~@2 eb4@5 ~, ~@6 gb4 ~@9", I: "eb4@3 ~ f4@2 ~@2",
J: "~@2 eb4 ~ eb4@4", K: "gb4", L: "[g4@11 ~@5]/3",
M: "[eb4@23 ~ gb4@2 g4@2 bb4@2 ab4@19 ~ eb4@2 ~@2 gb4@2 ~@2 ab4@2 a4@2 bb4@33 ~]/6",
N: "[~@4 gb4 f4 ~ eb4@15 c5 eb5, ~@44 bb4 ~@3]/3", O: "eb5@3 ~@5 eb4@4 ~@4",
P: "~@2 bb4@2 ~@2 eb4 ~ bb4@2 g4@2 eb4@3 ~", Q: "~@2 c5@2 ~@2 eb4@2 c5@3 ~@5", R: "f4/2",
S: "[~@4 gb4 f4 ~ eb4@16 ~]/3", T: "g4", U: "gb4/2", V: "g4/3",
})).s("gm_brass_section").gain(0.45)
// chords · trumpet
const trumpet = note(`<
~@51 A@2 B C D@3 ~@38 A@2 B C D@3 ~ E@3 F@3 G@3 H I J K L@2 M@3 ~@11 A@2 B C N O B C N O B P@2 Q@3 ~
>`.pickRestart({
A: "[~@2 bb4@2 ~@2 g4@2 ~@8 [g3,bb3]@5 ~@3 [g3,bb3,d4,f4]@5 ~@3, ~@6 gb4 ~@3 eb4@11 ~@11]/2", // Gm Gm7
// … 169 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.