0:00/0:00
// Madman Across the Water — Elton John
// 131 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 23, 4/4 at bar 24) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 208 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(131/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 · "A.PIANO 2"
const piano = note(`<
~@6 A@2 B@2 ~ C ~ D E F G H I J K L M@4 N O P@3 Q R S T U V@2 W X Y@5 Z AA AB Z AC@3 AD AE AF AG AH AI@2 AJ AK AL@2 AM
AN AO@2 AP@2 AE AQ AR AS E AT AU AV AW AV AX@6 AY AV AZ@4 AX@2 AZ@2 AX@8 BA AV BB BC AX@2 BD@4 AX@2 BE@2 BF@2 BG@2
AX@6 BH BI BH BJ BK BL BH BM BN BO BN BP BH BQ BR BS ~@3 BT BU BL BV BW BX BY BZ@2 CA CB@2 CC CD@2 CE@2 CF CG CH CI@4
CJ CK@2 CL CM@3 CN@2 CO CP CQ@2 CR CS CT CU@2 CV CT CW@2 CX@2 CY CZ DA DB DC DD DE DD DF DG DH AV DI@2
>`.pickRestart({
A: "[c4@21 ~@7 e4@3 ~]/2", B: "[c4@21 ~@7 g3@4]/2", C: "~@3 [b3,d4]@5, ~@6 g3@5 ~@5", D: "~@3 d4@5",
E: "[a3,b3,c4,e4]!2", F: "[g3,a3,b3,d4]@7 ~ [g3,a3,b3,d4]@7 ~", G: "[f3,g3,a3,c4]@7 ~ f3@3 ~ f3@4, ~ [g3,a3,c4]",
H: "~@2 [f3,g3,a3,d4]@5 ~ f3@2 ~@2 f3@2 ~@2, ~@4 [g3,a3,c4]@3 ~", I: "[g3,c4,e4]@7 ~@5 c3@4, ~@8 [g3,c4,e4]@7 ~",
J: "[f#3,a3,d4]@7 ~ [a3,d4]@6 d3@2", K: "[f#3,a3,d4]@6 ~@2 [a3,d4]@3 ~ [f#3,a3,d4]@3 ~, ~@3 d3@3 ~@2",
L: "[f3,a3,c4]@2 ~@2 [g3,b3,d4]@2 ~@2 [a3,b3,c4,e4]@7 ~", // F G Am
M: "[[a3,b3,c4,e4]@10 ~@4 [g3,b3,c4,d4]@6 [g3,b3,c4,d4]@3 ~ [a3,b3,c4,e4]@16 ~@6 [g3,b3,c4,d4]@6 [g3,b3,c4,d4]@4 [a3,b3,c4]@7 ~]/4", // Am G Am G Am
N: "[a3,b3,c4,e4]@8 [g3,b3,d4]@7 ~", O: "[g3,b3,d4]@8 [f3,a3,c4]@7 ~",
P: "[f3@3 ~ f3@5 ~@5 [a3,c4]@5 ~ [f3,a3,c4]@4 [e3,g3,c4]@6 ~@2 [g3,c4,e4]@6 c3@2 [f#3,a3,d4]@7 ~, [a3,c4]@12 f3@7 ~@11 c3@6 ~@12]/3", // Am F C D Am
Q: "~@4 d3 ~ d3 ~ [f#3,a3,d4]@6 d3@2, [f#3,a3,d4] ~", // D
R: "f#3@2 ~@2 f#3@3 ~ f3@2 ~@2 f3@3 ~, d4@7 ~@9, ~@2 a3@5 ~ [a3,c4]@7 ~, ~@4 d3 ~@11", // Am
S: "g3@2 ~@2 g3@3 ~ [a3,b3,c4]@8, [b3,d4]@7 ~@9", T: "[a3,b3,c4]@6 ~ [g3,b3,d4,g4]",
U: "~ [a3,b3,d4,f#4]@2 ~ [a3,b3,c4,e4]@4", V: "[[a3,b3,c4,e4]@2 ~@12 [g3,b3,d4,e4]@9 ~ [a3,b3,c4,e4]@7 ~]/2",
W: "a3@3 ~ [a3,b3]@3 ~ [g3,b3,d4]@6 ~@2, [c4,e4] ~", X: "[g3,b3,d4]@3 ~ [g3,b3,d4]@4 [f3,a3,c4]@6 ~@2",
Y: "[f3@2 ~@2 f3@6 ~@2 f3 ~ [f3,a3,c4]@5 ~ [f3,a3,c4]@4 [e3,g3,c4]@6 ~@2 [e3,g3,c4]@6 c3@2 ~@8 f#3@3 ~@3 d3@2 ~@4 f#3@2 [f#3,a3,d4]@4 d3@2 [f#3,a3,d4]@3 ~ [f3,a3,c4]@5 ~@3, [a3,c4]@6 ~@9 c3@3 ~@2 [f#3,a3,d4]@4 [a3,d4]@6 ~@10, ~@46 d3@6 f#3@6 d3@7 ~@15]/5", // F C D F Am D D5
Z: "[g3,b3,d4]@7 ~ [a3,c4,e4]@7 ~", AA: "a3@2 ~@2 a3@5 ~ a3@6, [c4,e4]", AB: "~@4 [a3,c4,e4]@4 [f3,a3,c4]@7 ~",
AC: "[~@4 a3@7 ~ a3 ~ [a3,c4,e4]@5 ~ [a3,c4,e4]@3 ~@9 g3@3 ~ g3@3 ~ [g3,b3,d4]@7 ~, [c4,e4]@12 ~@12 [g3,c4,e4]@8 [c4,e4]@7 ~@9, ~@30 c3@7 ~@11]/3", // Am G C
AD: "[g3,b3,d4]@7 ~ [e3,a3,b3,d4]@7 ~", AE: "e3@3 ~ e3@3 ~ [e3,g#3,b3,d4]@7 ~, [a3,b3,d4] ~",
AF: "[e3,g#3,b3,d4]@7 ~ [a3,b3,c4,e4]@3 ~@5", AG: "[c3,g3,c4,e4] ~ [d3,f3,a3,d4] ~",
AH: "~@2 [g3,b3,d4]@5 ~ [a3,c#4,e4]@8", // G A
AI: "[[c#4,e4]@12 a3@2 [a3,c#4,e4]@5 ~ [a3,c#4,e4]@3 ~ [g3,c4,e4]@6 ~@2, a3@9 ~@23]/2", // C#m A C
AJ: "[a3,d4]@7 ~ [f3,a3,c4]@7 ~, f#3@5 ~@11", AK: "[g3,b3,d4]@7 ~ [a3,b3,c4,e4]@8",
AL: "[[c4,e4]@12 a3 ~ [a3,b3,c4,e4]@6 [a3,b3,c4,e4]@3 ~ [c4,e4]@4 ~@4, [a3,b3]@10 ~@14 g3@7 ~]/2", // C Am C Asus2
AM: "[f#3,a3,d4]@7 ~ [f3,a3,c4]@7 ~", AN: "[g3,a3,b3,d4]@7 ~ [a3,b3,c4,e4]@8",
AO: "[[c4,e4]@12 a3 ~ [a3,b3,c4,e4]@6 [a3,b3,c4,e4]@4 [f3,a3,c4]@7 ~, [a3,b3]@5 ~@11]/2", // C Am F Asus2
AP: "[f3@2 ~@2 f3@6 ~@2 f3 ~ [f3,a3,c4]@5 ~ [f3,a3,c4]@3 ~ [e3,a3,b3,d4]@7 ~, [a3,c4]@3 ~@5]/2", // F Esus4 Am
AQ: "[e3,g#3,b3,d4]@7 ~ [a3,c4,e4]@3 ~@5", AR: "~@2 [c2,c3,g3,c4,e4] ~", AS: "[a2,d3]@2 [c3,f3]@6 [g3,b3,d4]@7 ~",
AT: "~@6 [b3,c4,d4,g4]@3 ~ [a3,b3,f#4]@5 ~", AU: "[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@3 ~@3 [a3,b3,c4,e4] ~",
AV: "~@6 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~", AW: "[a3,b3,c4,e4]@3 ~ [b3,c4,e4]@2 ~ [b3,c4,e4], ~@4 a3 ~ a3@2",
AX: "[[a3,b3,c4,e4]@6 ~@2 a3@2 ~@2 a3@6 ~@4 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~, ~@4 [b3,c4,e4]@5 ~@7]/2", // Am G Bm7 Cmaj7
AY: "[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@3 ~ [a3,b3,c4,e4]@4", // Am
AZ: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@11 ~@3 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~]/2", // Am G Bm7
BA: "[a3,b3,c4,e4]@4 [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@6", BB: "[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@2",
BC: "~@2 [b3,c4,d4,g4]@3 ~ [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~", // G Bm7
BD: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3]@3 ~ a3@6 ~@4 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~, ~@4 [c4,e4]@5 ~@7]/2", // Am Asus2 G Bm7 C
BE: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3,e4]@3 ~ a3@6 ~@4 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~, ~@4 c4@5 ~@7]/2", // Am Asus2 G Bm7
BF: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3,c4,e4]@3 ~ [a3,b3,c4,e4]@7 ~@3 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~]/2", // Am G Bm7
BG: "[[a3,b3,c4,e4]@6 ~@2 [a3,b3]@3 ~ a3@7 ~@3 [b3,c4,d4,g4]@3 ~ [a3,b3,d4,f#4]@5 ~, ~@8 [c4,e4]@11 ~@13]/2", // Am Asus2 G Bm7 C
BH: "[a3,b3,c4]@7 ~ [a3,b3,c4]@2 ~@6", BI: "~@6 [b3,c4,d4,g4]@6 [a3,b3,f#4]@3 ~",
BJ: "~@6 [b3,c4,d4,g4]@6 [b3,d4,f#4]@3 ~", BK: "[a3,c4]@7 ~ [a3,b3,c4]@2 ~@6", BL: "~@6 [b3,c4,d4,g4]@6 [a3,b3]@3 ~",
BM: "~@6 [b3,c4,d4,g4]@6 [b3,f#4]@3 ~", BN: "c4@7 ~ [a3,b3,c4]@2 ~@6", BO: "~@6 [c4,d4,g4]@5 ~ [b3,d4]@3 ~",
BP: "~@6 [b3,d4]@6 [b3,d4]@3 ~, ~@3 g4@2 ~@3", BQ: "~@3 [b3,c4,d4]@3 f#4 ~, ~@3 g4@2 ~@3", BR: "c4@7 ~ [a3,c4]@2 ~@6",
BS: "~@6 [c4,d4]@5 ~ b3@3 ~", BT: "~@6 [b3,d4]@6 b3@3 ~, ~@3 [c4,g4]@2 ~@3", BU: "a4@7 ~ [e4,a4,b4] ~@7, ~@4 e5 ~@3",
BV: "[b3,c4,e4,g4]@7 ~ [b3,c4,e4,g4]@2 ~@6", BW: "~@6 [b3,c4,d4,g4]@9 ~",
BX: "[b3,c4]@8 a3@2 c4@2 [a3,e4]@3 ~, e4@5 ~@3, a3@3 ~@5", // Cmaj7 A5
BY: "~@4 b3@2 d4 ~ [g3,b3,g4]@4 [g3,b3,d4]@4, d4 ~@3, b3 ~@7, ~ g3@5 ~@10", // G
BZ: "[a3@2 ~@4 c4@2 [f3,a3]@3 ~@3 [a3,c4]@4 ~@4 c4@2 [a3,f4]@4 [f3,a3,c4]@3 ~, c4@2 a3@2 f4@3 ~@3 a3@2 ~@4, ~@2 f3@5 ~@5 f3@5 ~ f3@5 ~ f3@2 ~@6]/2", // F Am Dm F
CA: "g3 ~ g3 ~@3 c4 c3, [c4,e4]@8 [g3,e4]@7 ~, ~@6 c3@7 ~@3", // C
CB: "[[a3,d4]@6 ~@8 d3 ~@5 f#3 ~ [f#3,a3]@2 ~@2 f#3@2 a3@2 d4 ~, ~@6 d3@6 a3@7 ~@13, ~@8 d4@13 ~ d4@6 ~@4, ~@8 f#3@10 d3@5 ~ d3@4 ~@4]/2", // D5 F#m
CC: "[f3,a3,c4]@3 ~ [g3,b3,d4]@3 ~ [a3,b3,c4,e4]@7 ~", // F G Am
CD: "[[a3,b3,c4,e4]@3 ~@11 [b3,c4,d4,g4]@5 ~ [a3,b3,d4,f#4]@3 ~ a3@4 a3@2 ~@2, ~@24 [b3,c4,e4]@7 ~]/2", // Am G Bm7 Cmaj7
CE: "[[a3,b3,c4,e4]@3 ~@11 [a3,b3,d4,e4]@9 ~ a3@4 ~@2 a3@2, ~@3 [b3,c4,e4]]/2", // Am Asus4 Cmaj7
CF: "~@2 a3@2 b3@2 a3 ~@5 g3@3 ~, ~ [c4,e4]@3 ~@4, ~@2 b3 ~@5 [b3,d4]@7 ~", // C Bm
CG: "g3 ~@3 g3@3 ~@5 f3@3 ~, [b3,d4]@7 ~ [a3,c4]@7 ~", CH: "a3@2 f3@3 ~ f3@2 ~@2 f3@5 ~, c4@5 ~ [a3,c4]@9 ~",
CI: "[[f3,a3,c4]@3 ~ [f3,a3,c4]@4 ~@8 e3@2 ~@2 e3@2 c3@2 [f#3,a3,d4]@6 ~@2 f#3@2 ~@4 d3@2 ~@4 f#3 ~@5 d3 ~ [f#3,a3,d4]@3 ~ f3@3 ~ f3@4, ~@8 [e3,g3,c4]@8 [g3,c4]@7 ~@9 [a3,d4]@11 ~@3 [f#3,a3,d4]@6 ~@4 [a3,c4]@7 ~, ~@14 c3@6 ~@10 d3@6 f#3@5 ~ d3@4 ~@18]/4", // F D C C5 D5 D Am
CJ: "[g3,b3,d4]@7 ~ a3@3 ~ a3@3 ~, ~ [b3,c4,e4]", // G Cmaj7
CK: "[[a3,b3]@3 ~ a3@5 ~@3 a3 ~ [a3,b3,c4,e4]@5 ~ [a3,c4,e4]@4 f3@3 ~ f3@3 ~, [c4,e4]@6 ~@4 b3 ~ [a3,c4]@4]/2", // Asus2 Am C Am
CL: "g3@2 ~@2 g3@3 ~ a3@3 ~ a3@3 ~, [b3,d4]@7 ~ [b3,c4,e4]@7 ~", // Bm Cmaj7
CM: "[a3 ~@3 a3@5 ~ [a3,b3,c4,e4]@4 [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@3 ~ [g3,c4,e4]@6 ~@2 g3@2 ~@2 g3@3 ~ g3@3 ~ g3@3 ~, [b3,c4,e4]@3 ~@7 c3@2 ~@4, ~@32 [c4,e4]@8 [b3,d4]@7 ~]/3", // Am C Cmaj7 C Bm
CN: "[g3@2 ~@2 g3@3 ~ [a3,b3,e4]@5 ~@5 [a3,b3,e4]@4 e3 ~ [g#3,b3,e4]@6 e3@2, [b3,d4]@7 ~@7 [a3,b3,e4]@4 ~@14, ~@16 e3@5 ~@11]/2", // Asus2 E Bm Asus2
CO: "[g#3,b3,d4,e4]@4 [e3,g#3,b3,d4,e4]@3 ~ [c3,a3,c4,e4]@3 ~@5", CP: "[g3,b3,e4] ~ [f3,a3,c4,d4] ~",
CQ: "[e3@2 [g3,b3,d4]@6 a3@4 ~@2 a3@3 ~ a3@3 ~ a3@3 ~ a3@4 ~@2, ~@4 [b3,c4,e4]@6 ~ [b3,c4,e4]@4 ~]/2", // G Cmaj7
CR: "~@2 [a3,b3,c4,e4]@5 ~@7 c3@2, ~ [g3,c4,e4]", CS: "~@4 d3@2 ~@2 f3@2 ~@2 f3@3 ~, [f#3,a3,d4]@7 ~ [a3,c4]@7 ~",
CT: "g3@2 ~@2 g3@4 [a3,b3,c4,e4]@7 ~, [b3,d4]@7 ~@9", // Am Bm
CU: "[[a3,b3]@3 ~ a3@5 ~@3 a3 ~ [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@3 ~@7 c3@2, [c4,e4]@3 ~@3 [g3,c4,e4]@2]/2", // Asus2 Am C
CV: "~@4 d3 ~@3 f3@2 ~@2 f3@3 ~, [f#3,a3,d4]@7 ~ [a3,c4]@7 ~", // D Am
CW: "[a3@3 ~ a3@6 ~@2 a3 ~ [a3,b3,c4,e4]@5 ~ [a3,b3,c4,e4]@4 [f3,a3,c4]@7 ~, [b3,c4,e4]@3 ~@5]/2", // Am F Cmaj7
CX: "[f3@2 ~@2 f3@6 ~@2 f3 ~ [f3,a3,c4]@5 ~ [f3,a3,c4]@3 ~ [a3,b3,d4]@7 ~, c4@13 ~@19, a3@5 ~@11]/2", // F Bm7
CY: "[a3,b3,d4]@15 ~", CZ: "[e3,g#3,b3,d4]@7 ~ [a3,b3,c4,e4]@5 ~@3", DA: "~@4 [c3,g3,c4,e4]@3 ~",
DB: "~@2 [f3,a3,c4]@5 ~ [g3,a3,b3,d4]@7 ~", DC: "[a3,b3,c4,e4]@7 ~ [a3,b3,c4,e4]@8",
DD: "~@6 [b3,c4,d4,g4]@5 ~ [a3,b3,d4,f#4]@3 ~", DE: "[a3,b3,c4,e4]@3 ~ [a3,b3,c4,e4]@3 ~",
DF: "[a3,b3,c4,e4]@7 ~ b3@2 ~@2 [a3,b3]@4, ~ [c4,e4], ~@8 a3 ~@7", DG: "~@6 [b3,c4,d4,g4]@4 [a3,b3,f#4]@5 ~",
DH: "a3@3 ~ a3@2 ~@2 [b3,c4]@2 ~@2 [a3,b3,c4]@4, [b3,c4,e4]@7 ~ e4@8, ~@8 a3 ~@7", DI: "[[a3,b3,c4,e4]@7 ~]/2",
})).s("gm_piano").gain(0.45).pan(0.7)
// chords · piano · "A.PIANO 2" · soft notes
const piano_soft = note(`<
~@6 A@2 B@2 C@2 D@2 ~@5 E F ~@41 G ~@11 H ~@34 I@4 ~@2 J@2 ~@2 I@2 ~@7 K ~ L M N ~ O P Q P R ~ S T U V@2 ~ W X Y ~@16
Z ~@5 AA ~@10 AB ~@3 AA ~@4 AC ~@11 H ~@4
>`.pickRestart({
A: "[[a3,b3]@21 ~ [g3,a3,b3]@9 ~, ~@22 d4@5 ~@5]/2", B: "[[a3,b3,e4]@10 ~ [a3,b3,d4]@5, ~@22 g3@5 ~@5]/2",
C: "[[a3,b3,c4,e4]@21 ~@7 g3@4, ~@11 a3@5]/2", D: "[[a3,b3,c4,e4]@21 ~ g3@4 ~@2 g3@4, ~@11 [a3,b3]@5]/2", E: "~ f#3",
F: "~@8 f#3@3 ~@5", G: "~@14 c4 ~", H: "~@5 d4@2 ~", I: "[~@12 b3@7 ~@13]/2", J: "[~@12 [b3,e4]@7 ~@13]/2",
K: "~@6 d4 ~", L: "~@12 a3@3 ~", M: "b3@7 ~@9", N: "~@6 [d4,f#4] ~", O: "~@12 [a3,d4]@3 ~", P: "[a3,b3]@7 ~@9",
Q: "~@6 b3@5 ~ [a3,f#4]@3 ~", R: "~@6 c4@6 [a3,f#4]@3 ~", S: "~@12 [a3,b3,d4]@3 ~", T: "[a3,b3]@7 ~ b3@2 ~@6",
U: "~@6 [b3,g4]@5 ~ [a3,d4,f#4]@3 ~", V: "[[a3,b3,e4]@25 ~@7]/2", W: "~@12 [a3,d4,f#4]@3 ~", X: "[e4,b4,e5]@7 ~@9",
Y: "~@12 [d4,f#4]@3 ~", Z: "f3 ~@3 a3@2 ~@10", AA: "~ b3@2 ~", AB: "~@4 b3 ~@11", AC: "~@15 f3",
})).s("gm_piano").gain(0.3).pan(0.7)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
~@23 A B C D E@3 F@3 G@3 H C D I J K L M N O@2 P Q@2 R@2 S T U V W X Y Z AA AB AC Z AD AE AF AG AH@2 AI AJ AK AL AM AN
AO AP AQ AR AM AS AT AU AV AS AV AW AX AY AZ AS BA AP BB AS BC BD BE AP BA AS BF BG BA AP BH BI@2 BJ BK BL BM BN BO BP
BQ BP BQ BR BS BT BU BV BW BX BY BZ CA BP CB BR CC BP CD BP AO CE CF CE ~ CE ~ CE CG CE ~ CE ~ CE ~ CH CI CJ CK CL CM
CN CO@3 CP@3 CQ CR@2 CS CT CU CV CW CX CV CY CZ DA@3 DB DC DD DE Y Z DF@2 Y Z DG DH DI DJ DK DL DM DN DO BG DP AP DQ
AP DR AP DS DT@2
>`.pickRestart({
A: "~ a2", B: "~@3 d2 g1 a1 d2 e2", C: "e1@7 ~ a2@8", D: "~ e3 a2 e2 g2@4",
E: "[~@2 d3@2 g2@2 d2@2 f2@17 ~ c2@2 f2@6 a1@2 a#1@2 ~@2 c2@8]/3",
F: "[~@2 g2@2 c2@3 ~ d2@10 ~@4 a1 ~ d2 ~@3 d2@8 ~@4 f2@4 ~@4]/3",
G: "[g2@4 ~@4 a2@13 ~ d2 ~ g1@2 a1@2 d2@2 e2@4 e2@2 e1@3 ~ a2@8]/3", H: "a2 ~@2 d2 g1 a1 d2 e2", I: "~ a2 g2 d2 f2@4",
J: "f2@2 ~@2 c2@2 ~@4 f2 ~@3 c2@2", K: "~ a1 ~ b1 c2@4", L: "~ g2 c2 c#2 d2@4", M: "d2@7 ~ f#2@4 f#2@4",
N: "a2@2 f2 ~", O: "[g2@4 ~@4 a2@13 ~ d2@2 e2@2 g2@2 a2@4]/2", P: "g2 e2 d2 ~ f2@4", Q: "[g2@4 a2@7 e2@2 g2 a2@2]/2",
R: "[g2 e2 d2 ~ c2@6 g2@2 g2@4]/2", S: "~ c2 d2 d#2 e2@2 e2@2", T: "e1@2 e1 d2 e2@2 e2@2",
U: "e2@2 d2@2 c2@2 b1@2 a1@3 ~@5", V: "c2@3 ~@5 d2@2 ~@6", W: "e2@2 g2@3 ~@3 a2@8",
X: "a2@4 ~@2 d2@2 e2@2 g2@2 a2@3 ~", Y: "a2@2 g2@2 e2@2 d2@2 c2@3 ~@5", Z: "d2@3 ~@5 f2@3 ~@5", AA: "g2 d2 ~@2 a1@4",
AB: "a1@9 ~ c3@2 a2@2 g2@2", AC: "a2@2 e2@2 d2@2 a1@2 c2@3 ~@5", AD: "g2 d2 ~@2 a2@3 a2",
AE: "a2@3 ~@3 e2@4 a2@2 e2@3 ~", AF: "a2@5 ~@3 f2@6 f2@2", AG: "f2@2 ~ f2 f1 f1@2 f1", AH: "[f1 d2 e2@3 e2 e2@2]/2",
AI: "e2@4 a1 ~@3", AJ: "~@4 c2 ~@3", AK: "d2@2 f2@2 ~@4 [d2,g2]@3 ~@5", AL: "a2@8 a2@5 ~ e2@2",
AM: "g1 a1 d2 e2@3 ~ e2", AN: "[a1,a2]@8 [a1,a2]@3 ~@3 d2@2", AO: "g1@2 a1@2 d2@2 e2@7 ~@3", AP: "a2@3 a2!2 ~@2 d2",
AQ: "g1@2 a1@2 d2@2 e2@3 ~ e1@3 ~ g1@2", AR: "a2@2 a2!3 ~ d2!2", AS: "a2@2 a2!3 ~@2 d2",
AT: "g1@2 a1@2 c2@2 d2@4 a1@2 e1@3 ~", AU: "a2!5 ~@2 d2", AV: "g1 a1 d2 e2@2 d2 e2 ~", AW: "a2@2 a2 c3 a2 ~@2 d2",
AX: "g1 a1 d2 e2@3 e2!2", AY: "a2@3 a2 a2@2 c3@2 a2@2 ~@4 d2@2", AZ: "g1@2 a1@2 d2@2 e2@3 ~ g2@3 ~ g2 ~",
BA: "g1 a1 d2 e2@2 e2@2 e2", BB: "g1 a1 d2 e2@2 e2!3", BC: "g1 a1 d2 e2@2 e2@2 g2", BD: "a2@2 a2@2 a2 ~@2 d2",
BE: "g1 a1 d2 e2@2 g2@2 g#2", BF: "g1 a1 d2 g2@3 a2 ~", BG: "a2@7 ~ a2 ~@5 d2@2", BH: "g1!3 d2 e2 d2 e2 d2",
BI: "[g2@2 a2@2 ~@2 e2@2 a2@2 e2 ~@3 g1@4 a1@4 c2@4 d2@3 ~ e2@2]/2", BJ: "a2@2 g2@2 e2@2 a1@2 a2@2 e2 ~@3 d2@2",
BK: "~ d2 ~ e2 ~ g2 ~ a1", BL: "~ c2 ~ d2 ~ a1!2 d2", BM: "~@2 d#2@3 ~ e2@2 ~@2 a1@2 a1@2 ~@2",
BN: "~@2 c2@2 ~@2 a1@3 ~ e2@3 ~ g2@2", BO: "~ a2!2 d2!2 d#2!2 e2", BP: "a2@4 a2 ~@3", BQ: "g1 a1 c2 d2 e2!3 g2",
BR: "a2@3 a2!2 ~@3", BS: "g1 a1 d2 e1@3 e2 g2", BT: "a2!3 e2 a1 ~@3", BU: "g1 a1 d2 e1@4 ~", BV: "a2!3 c3 a2 ~@2 d2",
BW: "g1@2 a1@2 d2@2 e2@2 e1@7 ~", BX: "a2!5 ~@3", BY: "g1@2 a1@2 d2@2 e1@3 ~ e1@2 g2@3 ~", BZ: "a2@2 a2@2 a2 ~@3",
CA: "g1 a1 d2 e1@2 e2 g2 ~", CB: "g1@2 a1@2 d2@2 e2@4 g2@5 ~", CC: "g1 a1 d2 e2@3 g2@2", CD: "g1 a1 d2 e2@2 e1@3",
CE: "a2", CF: "g1 a1 d2 e2@4 ~", CG: "~@3 a2", CH: "a2!2", CI: "g2!2", CJ: "f2", CK: "~ f2 e2 d2",
CL: "c2@5 g2 c2 c#2", CM: "d2@13 ~@3", CN: "f#2@8 a2@4 a1@3 ~",
CO: "[f2@3 ~ g2@2 ~@2 a2@13 ~ d2@2 g1@2 a1@2 d2@2 e2@7 ~@3 a2@2 a2@2 a2@4]/3",
CP: "[a2@3 ~@3 d2@2 g1@2 a1@2 d2@2 e1@7 ~@3 a2@10 e3@2 a2@2 e2 ~ g2@2 g2@4 g2@2]/3",
CQ: "~@2 d3@2 ~@2 g2@2 f2@3 ~@3 c2@2", CR: "[~@4 f1@4 ~@2 a1@3 ~ c2@4 f2 ~ c2@2 a1@2 c2@7 ~]/2",
CS: "e2@3 g2@2 ~ c2@2 d2@8", CT: "f#2 a2", CU: "d3@3 ~ f2@4", CV: "g2 a2", CW: "a2@2 ~@4 d2 ~ e2@2 g2@2 a2@2 c3@2",
CX: "a2@2 g2@2 e2@2 c2 ~ f2@8", CY: "a2 ~@2 d2 e2 g2 a2 c3", CZ: "a2 g2 e2 a1 c2@4",
DA: "[e1@6 f1@2 g1@4 g2@6 g1@3 ~ g1@2 e1@2 e1@10 d3@2 e3@2 e3@2 d3@2 b2@3 ~]/3", DB: "e2 ~ e2@2 d2@2 c#2@2 c2@2 ~@6",
DC: "~@8 d2@3 ~@5", DD: "e2@2 g2@5 ~ a2@8", DE: "a2@6 g2@4 e2@2 g2@2 a2 ~",
DF: "[g2@2 a2@2 d2@3 ~ a2@13 ~ d2@2 e2@2 g2@2 a2@2 c3@2, f2 ~@31]/2", DG: "g2 d2 ~@2 a2@2 a2!2",
DH: "a2@9 ~ a2@2 g2@2 e2@2", DI: "d2 e2 d2 c2 f1@3 f1", DJ: "f1@2 f2!2 f1 f1@2 f1", DK: "f1@2 b1 c2 d2@2 d2@2",
DL: "d2 e2 f2@2", DM: "e2@3 ~ e2@3 ~ a1@3 ~@5", DN: "~@8 c2@3 ~@5", DO: "d2@2 f2@2 ~@4 g2@3 ~@5",
DP: "g1@2 a1@2 d2@2 e2@4 e1@3 ~ g2@2", DQ: "g1 a1 d2 e2 e1@2 e2!2", DR: "g1 a1 d2 e2@2 e1 e1@2",
DS: "g1 a1 d2 e2@2 e1!3", DT: "[a1@13 ~@3]/2",
})).s("gm_fretless_bass").gain(0.3)
// bass · piano · "A.PIANO 2"
const bass_2 = note(`<
~@6 A B A B A B A B C D E F G H I J@8 K@4 L@2 M N@8 O P@3 Q@7 R S@3 T U@3 V W@7 X Y Z AA AB AA Z AA Z AA Z AA Z AA Z
AA Z AA Z AA Z AA Z AA Z AA Z AA Z AA Z AA AC AA AD AE Z AA Z AA Z AA AF AA Z AA Z AG Z AA Z AA AB AH Z AA AI AJ AK B
AK B AK B AK B AK AL AK B AK B AM@2 ~@2 AN B AN AL Z AO AP@2 G H@2 AQ@2 AR@8 AS@2 AT@3 AU@7 R AV@3 AW AX@3 AY AZ@6 BA
BB BC Z AA Z AA Z AA Z AA BD@2
>`.pickRestart({
A: "a1", B: "g1 a1 d2 e2@5", C: "~@3 a2, a1@15 ~", D: "~@12 g2@3 ~, g1@15 ~", E: "[f1,f2]@7 f2",
F: "~@2 f2@4 f2@7 ~ f2 ~, f1@7 ~", G: "c2@15 ~", H: "d2@7 ~", I: "d2@12 d2 ~@3",
J: "[[f1,f2]@2 ~@2 [g1,g2]@2 ~@8 a2@8 e2 ~ g1@2 a1@2 d2@2 e2@10 ~@8 a2@4 ~@2 a2 ~ g1@2 a1@2 d2@2 e2@9 ~ a1@14 a2 ~ g1@14 g2 ~ f1@14 f2@2 ~@2 f2@6, ~@4 a1@7 ~@9 a1@7 ~@33 f1@4]/8", // F G
K: "[~@2 f2@5 ~ c2@14 ~@2 d2@14 ~@2 d2@14 ~@2 [f1,f2]@7 ~]/4", // F
L: "[g1@6 g2 ~@13 a2@2 ~@2 g1@2 a1@2 d2@2 e2@2, g2@4 ~@4 a1@15 ~@9]/2", M: "~ e2@2 ~ a1@3 ~",
N: "[a1@3 ~@5 g1@2 a1@2 d2@2 e2@8 ~@8 a2@7 ~ a2@2 ~@6 g2@7 ~ g2 ~@7 f2@7 ~ f2@2 ~@2 f2@7 ~ f2@5 ~ c2@14 ~@2 d2@14 ~@2 d2@8, ~@24 a1@15 ~ g1@14 ~@2 f1@14 ~@2 f1@13 ~@43]/8",
O: "~@2 f1 f2", P: "[~@4 g2@4 ~@6 a2@6 ~@2 a2@2 ~@6 a2@4 a2@3 ~@7 f2@3 ~, g1@6 ~@2 a1@14 ~@2 a1@13 ~@3 f1@7 ~]/3",
Q: "[~@4 g2@4 ~@6 a2@6 ~@2 a2@2 ~@2 a2@7 ~ a2@3 ~ a2@2 c2@14 ~@8 g2@7 ~ g2 ~ e2@13 ~ e2 ~ e2@15 ~ [a1,a2]@3 ~@5, g1@3 ~ a1@7 ~ a1@7 ~@9 g1@7 ~@21]/7", // A
R: "c2 ~ d2 ~", S: "[~@2 [g1,g2]@5 ~ a1@14 a2@2 ~@2 a2@7 ~ a2@3 ~ a2@2 c2@6 ~@2, ~@12 a1@7 ~@5]/3",
T: "d2@6 ~@2 f1@7 ~", U: "[g1@6 g2@2 a1@14 a2@2 ~@2 a2@11 ~ a2 ~ c2@8, ~@8 a1@5 ~@3]/3", V: "d2@7 ~ f1@6 f2@2",
W: "[g1@6 g2@2 a1@14 a2@2 ~@2 a2@11 ~ a2 ~ f1@14 f2@2 ~@2 f2@8 f2@3 ~ f2 ~ e2@13 ~ e2 ~ e2@12 ~@2 e2 ~ a1@3 ~@5, ~@24 a1@15 ~ f2@12 ~@4 f1@14 ~@42]/7",
X: "~@2 [c2,c3,g3,c4,e4] ~", Y: "[a2,d3]@2 [c3,f3]@6 g1@7 ~", Z: "~@6 a2@6 ~@2 a2 ~, a1@7 ~",
AA: "g1@2 a1@2 d2@2 e2@3 ~ e2@3 ~ e2 ~", AB: "~@6 a2@7 ~@2 a2, a1@15 ~", AC: "~@8 a2@3 ~@3 a2 ~, a1@7 ~",
AD: "~@6 a2@5 ~ a2@3 ~, a1@15 ~", AE: "~@2 a1@2 d2@2 e2@3 ~ e2@3 ~ e2 ~, ~ g1@2 ~@13",
AF: "a1@6 a1@8 a2 ~, ~@3 a2@3 ~@2", AG: "g1@2 a1 ~ d2 ~ e2@3 ~ e2@3 ~ e2 ~", AH: "g1@2 a1@2 d2@2 e2@3 ~ e2@3 ~ e2@2",
AI: "a1@5 ~@3 a2@2 ~@6, ~@5 a1@5 ~@6", AJ: "g1 ~ a1@2 d2@2 e2@10", AK: "a1@5 ~ a1@2 a2@2 ~@6",
AL: "g1 ~ a1 ~ d2@2 e2@10", AM: "[a1@25 ~@7]/2", AN: "a1@5 ~ e2@2 a2@2 ~@6", AO: "~@10 g2@3 ~ g2 ~, g1@15 ~",
AP: "~@10 f2@3 ~ f2@2, f1@7 ~", AQ: "[[f1,f2]@3 ~ [g1,g2]@3 ~@7 a2@6 ~@2 a2 ~ g1@2 a1@2 d2@2 e2@2, ~@4 a1@7 ~@5]/2",
AR: "[~@2 e2@3 ~ e2@2 ~@6 a2@5 ~@3 a2 ~ g1@2 a1@2 d2@2 e2@9 ~@9 a2@5 ~ a2 ~@7 g2@6 ~@2 g2 ~@7 f2@5 ~@3 f2@6 ~@2 f2@3 ~ f2@2 ~@2 f2@2 c2@15 ~ d2@8, ~@4 a1@7 ~@9 a1@7 ~ g1@7 ~ f1@15 ~@13]/8",
AS: "[~@8 d2@14 ~@2 f1@6 f2 ~, ~@6 f2 ~]/2",
AT: "[g1@6 g2 ~@7 a2@6 ~@2 a2 ~@3 a2@3 ~ [a1,a2]@4 a1@4 a2 ~ f1@6 f2 ~, g2@4 ~@4 a1@14 ~@2 a1@5 ~@11 f2@5 ~@3]/3", // A
AU: "[g1@6 g2 ~@7 a2@6 ~@2 a2@2 ~@2 a2@4 ~@4 a2@3 ~ a2@2 c2@14 c2 ~@7 g2@7 ~ g2 ~@3 e2@12 ~@2 e2@11 ~ e2@2 ~@2 c2@3 ~@5, g2@4 ~@4 a1@14 ~@2 a1@5 ~ a1@8 ~@18 g1@14 ~@42]/7",
AV: "[e2@2 g2@5 ~@9 a2@11 ~@3 a2@5 ~ a2 ~ a2@2 c2@8, ~@8 a1@15 ~@5 a1@10 ~@10]/3",
AW: "d2@6 ~@2 f2@5 f2@2 ~, ~@8 f1@7 ~",
AX: "[g1@6 g2 ~@7 a2@6 ~@2 a2@2 ~@2 a2@7 ~ a2@3 ~ a2 ~ c2@7 ~, g2@2 ~@2 a1@7 ~ a1@7 ~@5]/3",
AY: "d2@5 ~@3 f1@6 f2 ~, ~@8 f2@5 ~@3",
AZ: "[g1@6 g2 ~@7 a2@6 ~@2 a2@2 ~@2 a2@7 ~ a2@3 ~ a2 ~ f1@14 f2@2 ~@2 f2@8 f2@3 ~ f2@2 e2@5 ~ e2@7 ~ e2 ~ e2@6 e2 ~, g2@2 ~@2 a1@7 ~ a1@7 ~ f2@6 ~@2 f1@7 ~@13]/6",
BA: "e2@4 ~@2 e2 ~ a1@4 ~@4", BB: "~@2 c2 ~", BC: "d2 f2@3 g2@3 ~", BD: "[a1@27 ~@5]/2",
})).s("gm_piano").gain(0.4).pan(0.1)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
A B C D E F G H I J K L M N@2 O P Q@2 R S T U@2 V@2 W X Y@2 Z AA@2 AB AC@4 AD@3 AE AF@2 AG AH@3 AI@5 AJ@2 AK AL AM@2
AN AO AP AQ AR AS AT@2 AU@2 AV@2 AW AX AY AZ BA BB BC BD BE BF BE BG BH BI BJ BK BE BL BM BN BO BP BQ BR BS BT BE BU
BV BW BX BY@2 BZ CA CB CC CD BA CE BS CF CG CH CI CJ CK CL CM CN BA CO@2 CP BC CQ C D E F G H I J CR L M CS C D E F CT
H CU J CR L M CV@2 CW CX CY CZ@2 DA DB@3 DC@4 DD@2 DE DF DG DH DI@2 DJ@3 DK DL DM DN DO DP DQ@2 DR DS DT DU DV DW DX
DY DZ@2 EA EB AW EC ED EE EF EG EF EH EI EJ EK@2
>`.pickRestart({
A: "~@6 [b3,e4]@9 ~, a2, ~@2 e3@13 ~, ~@4 a3@11 ~", B: "b4 [b4,e5]@2 ~@3 [g3,b3,e4]@2, a2", C: "~ b3@5 e4@2 b3@8",
// … 352 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.