0:00/0:00
// Bridge Over Troubled Water — Paul Simon
// 94 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 82 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(94/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.
// bass · fretless bass
const bass = note(`<
~@4 A B C D E F G H I E J K L M N O P Q R S T Q U V W@3 X Y X Z AA AB AC AD AE AF@2 AG AH AI AJ AK AL AM AN AO AP AQ
AR AS AT AU AV AW AA AX AY AZ BA BB BC BD BE BF BG BH BI AM BJ BH BK BL BM BN BO BP@2
>`.pickRestart({
A: "~@3 g2", B: "c2@10 ~@2 c2@3 ~", C: "c2@21 ~@3 c2@6 ~@2", D: "c2@21 ~@3 c2@5 ~@3", E: "c2@3 f2",
F: "c2@21 ~@3 c2@7 ~", G: "c2@20 ~@4 c2@5 ~@3", H: "c2 f2", I: "c2@8 f2@3 ~ f2@4", J: "g2@21 ~@3 g2@4 ~@4",
K: "~@10 d2@5 ~, g2@23 ~@9", L: "c2@5 ~ c2 ~", M: "c2@3 a#2", N: "f2@3 e2 d2@3 f#2", O: "~@3 c2, g2@27 ~@5",
P: "f2@3 f#2", Q: "g2 a2", R: "f2 e2", S: "a2@11 ~ g2@4", T: "f2@23 ~ f#2@7 ~", U: "f2@9 ~@3 f2@4 g2@6 ~@2 g2@8",
V: "c2@5 ~ c2 ~ c2@7 ~", W: "c2@10 ~@2 c2@2 ~@2 c2@13 ~@3", X: "c2@11 ~ c2@2 ~@2 c2@12 e2@4", Y: "f2@5 ~ f2@6 g2@4",
Z: "f2@9 ~@3 f2@4 a#2@8 f2@8", AA: "c2@5 ~ c2 ~ c2@6 e2@2", AB: "f2@5 ~ f2 ~ f2@6 b2@2", AC: "c3@12 e2@4 f2@8 g2@7 ~",
AD: "c2@7 ~@5 c2@2 ~@2 c2@10 ~@2 c2@2 ~@2", AE: "c2@5 e2@2 f2",
AF: "[g2@9 ~@3 g2@2 ~@2 g2@24 ~@4 g2@4 e2@4 d2@4 c2@4 ~@4]/2", AG: "c2@10 ~@2 c2@4 c3@7 ~ c3@6 ~@2",
AH: "a#2@15 ~ g2@7 ~ e2@8", AI: "f2@5 ~@7 f2@4 d2@10 ~@2 f#2@4", AJ: "g2@4 ~@2 g2@2 c2@3 ~ c2@2 e2@2",
AK: "f2@10 ~@2 f2@3 ~ f2@7 ~ f#2@7 ~", AL: "g2@15 ~ a2@9 ~@3 a2@4", AM: "f2@9 ~@3 f2@4 e2@8 g#2@8",
AN: "a2@9 ~@3 a2@4 c3@8 c2@4 e2@4", AO: "f2@5 ~ f2 ~ f2@4 f#2@4", AP: "g2@10 ~@2 g2@4 a2@9 ~@3 a2@4",
AQ: "f2@2 f2@3 ~ f2@2 e2@4 g#2@4", AR: "a2@11 ~ a2@13 ~@3 a2@4", AS: "f2@9 ~@3 f2@3 ~ f2@8 g2@6 ~@2",
AT: "c2@10 ~@2 c2@2 ~@2 c2@7 ~ e2@7 ~", AU: "f2@9 ~@3 f2 ~@3 f2@8 g2@8", AV: "c2@10 ~@2 c2 ~@3 c2@8 e2@7 ~",
AW: "f2@5 ~ f2@2 a#2@4 f2@4", AX: "f2@5 ~ f2 ~ f2@4 g2@4", AY: "c2@6 c2@2 f2@5 ~ f2@2", AZ: "c2@3 e2 f2@4",
BA: "c2@5 ~ c2@2 g2@4 a2@4", BB: "g2@5 ~ g2 ~ g2@5 ~ g2@2", BC: "g2@10 ~@2 d2@4 g2@7 ~ g2@8",
BD: "c2@11 ~ c2@2 ~@2 c3@10 ~@2 c3@4", BE: "a#2@5 ~ a#2 ~ c3@4 g2@4", BF: "f2@3 e2 d2@2 f#2@2",
BG: "g2@11 ~ g2@4 c2@8 e2@8", BH: "f2@9 ~@3 f2@2 ~@2 f2@8 f#2@8", BI: "g2@5 ~ g2@2 a2@6 e2@2",
BJ: "a2@5 ~ a2@2 c2@6 e2@2", BK: "g2@11 ~ g2@4 a2@11 ~ e2@4", BL: "f2@9 ~@3 f2@4 g#2@7 ~ g#2@8", BM: "a2@7 c2",
BN: "d2 g2", BO: "c2@23 ~ c2@2 ~@6", BP: "[c2@19 ~@13]/2",
})).s("gm_fretless_bass").gain(0.28)
// chords · piano
const piano = note(`<
~ A B C D E@2 F@2 G@2 H I J@2 K L M N@2 O P Q R S T U V W X Y E@2 F@2 G@2 Z I J@2 AA L M N@2 O P Q R S AB@2 AC AD AE
AF AG AH AI@2 AJ AK@2 AL AM AN AO AP@2 AQ AR@2 AS AT AU@4 AV@3
>`.pickRestart({
A: "[f4,a4,c5]@9 ~@3 [f4,a4,c5]@4 [g4,b4]@8 [d#4,a4]@6 ~@2", B: "[e4,a4]@4 g4@11 ~ c5@4 e5@12, ~@4 g4@3 ~",
C: "~@2 [f4,a4] c5 [f4,a4,d5]@2 e5@2", D: "f4@4 g4@5 ~@3 f4 ~ f4@2, d5@3 ~@5, a4@5 ~@27",
E: "[e4@8 d4@4 c4@44 f4@3 ~ f4@4]/2", F: "[g4 e4@4 [c4,a4] [d4,a#4] [c4,a4]]/2",
G: "[g4@12 [e4,c5]@2 [f4,a4]@13 ~ a4@4, e4@19 ~@37 f4@5 ~@3]/2", // C F
H: "g4@2 ~ e4@2 d4@2 ~ c4@20 ~ f4 [g4,a4] b4, ~@14 d4 ~, ~@29 e4@2 ~", I: "c5@27 ~@5",
J: "[~@8 [c4,e4]@8 [b3,d4]@8 [a3,c4]@4 [b3,d4]@31 ~@5]/2", K: "g4@10 ~@2 g4@4 e4@5 d4@5 ~ c4@4 ~, b3@17 ~@15",
L: "c4@4 d4@4 e4@21 ~@3", M: "~@4 g4@3 ~ [g4,e5]@4 [a#4,d5]@4",
N: "[~@8 [f#4,d5]@6 [b4,d5]@10 [g4,a#4]@3 ~ [g4,a#4,d5]@4, [a4,c5]@19 ~@29 e5@8 ~@8]/2", // D Bm Gm Am
O: "[a4,c5]@2 [f4,b4] [d#4,a4], f4@13 ~@19", P: "a4 g4@3 e4 g4@3, e4@3 ~@5", Q: "~@2 a4 c5 d5@2 e5@2, ~ g#4",
R: "[a4,c5]@2 [g4,e5] [a#4,d5]", S: "[f4,a4,c5]@2 [g4,b4] [d#4,a4]", T: "a4 g4@3 ~ g4@3, e4@5 ~@3 e4@4 ~@4",
U: "~@2 [f4,a4] c5 [f4,d5]@2 [g4,e5]@2", V: "c5@16 [e4,g4]@7 ~ [e4,g4,c5]@8, e4@13 ~@19",
W: "[c4,f4]@6 ~@2 [c4,d4,f4]@3 ~ [c4,d4,f4]@4, a4 ~", X: "[e4,g4]@13 ~@3 g4@7 ~ [e4,g4,c5]@8, c4@4 e4 ~@3",
Y: "[c4,f4,a4]@17 ~@7 f4@2 ~@2 f4@4", Z: "g4@2 ~ e4@2 d4@2 ~ c4@20 d4 [e4,f4] [g4,a4] b4",
AA: "g4@10 ~@2 g4@4 e4@5 d4@5 ~ c4@4 ~, b3@15 ~@17",
AB: "[a4@4 g4@11 ~ [a4,c5]@3 ~ e5@20 [a4,c5]@4 d5@4 [a4,c5]@8 [g#4,b4]@8, e4@11 ~@9 c5@16 ~@28]/2", // Am G#m
AC: "a4@3 e5, c5@16 ~@8 c5@5 ~@3", AD: "c5@24 [f4,a4]@3 ~ a4@4, a4@18 ~@10 f4 ~@3", AE: "g4 f4 e4@6",
AF: "~@6 [f4,a4] b4, ~@14 g4 ~", AG: "[e4,g4]@27 ~@5", AH: "~ [c4,a4] [d4,a#4] [c4,a4]",
AI: "[g4@12 [e4,c5]@2 [f4,a4]@13 ~ a4 ~ [f4,a4]@2, e4@19 ~@37 f4 ~@7]/2", AJ: "[e4,g4]@4 a4@4 g4@3 e4@2 d4@3 c4@15 ~",
AK: "[g4 e4 d4 c4@7 [g3,e4]@2 d4@2 c4@2, ~@14 a3 ~]/2", AL: "d4, b3@11 ~@5",
AM: "g4@19 ~@5 [f4,g4]@2 ~@2 [f4,g4]@2 ~@2, b3@7 ~", AN: "[e4,g4]@3 [d4,f4] [c4,e4]@4",
AO: "~@8 g4@7 ~ e5@8 [a#4,d5]@8, ~@8 e4@13 ~@11, ~ g4", // A#
AP: "[[a4,c5]@16 f#4@12 [b4,d5]@20 [g4,a#4]@7 ~ [g4,a#4,d5]@8, ~@16 d5@9 ~@23 e5@8 ~@8]/2", // Am Bm Gm
AQ: "[f4,a4]@3 ~ [f4,b4]@2 [d#4,a4]@2, c5 ~", // F Fdim D#dim
AR: "[a4@2 g4@6 [e4,a4]@2 [a4,c5]@9 ~ [a4,c5]@2 d5@2 [a4,c5]@4 [g#4,b4]@4, e4@11 ~@53]/2", // A5 Am G#m
AS: "[a4,c5]@2 [g4,e5] [g4,a#4,d5], ~@8 a#4@3 ~@5", AT: "f5@2 e5 [a4,d5], a4@7 ~ a4@3 ~@5",
AU: "[[g4,e5]@7 ~ [a4,f5]@4 [g4,e5]@4 d5@4 c5@20 [a4,f5]@3 ~ [a4,f5]@4 [g#4,e5]@8 [b4,d5]@4 [a4,c5]@52 [g4,b4]@12 e5@4, ~@16 a4@3 ~ a4@15 ~@25 e5@60 ~@8]/4", // C Dm C Dm C#m Bm Am G
AV: "[d5@2 ~@6 f4@7 ~ e4@19 ~@13, g4 ~@5, ~@2 c5@33 ~@13]/3",
})).s("gm_piano").gain(0.5).pan(0.6)
// chords · epiano1
const epiano1 = note(`<
~@5 A B C@2 D@2 E@3 F@2 G@3 H I J K L M N O P@2 Q R S T U@2 V W X Y@2 Z AA AB AC AD AE AF AG AH@2 AI AJ AK AL AM AN AO
AP AQ AR@2 AS@3 AT@2 AU@3 H AV AW AX AY AZ BA@2 BB BC BD BE@2
>`.pickRestart({
A: "g3@9 ~@3 g3@2 ~@6 c4@4 ~@3 c4@2 ~@3, [c4,e4]@16 g3@15 ~, ~@24 e4@5 ~@3", // C
B: "[f3,a3]@9 ~@2 f3@2 ~@6 c4@5 ~@3 a3@4 ~, [c4,f4]@10 ~@2 f4@3 ~, ~@15 f3@13 ~@4", // F F5
C: "[g3@9 ~@3 g3@2 ~@6 c4@3 ~@4 c4@2 ~@3 f3@11 ~@5 [a#3,d4]@7 ~ a3@6 ~@2, [c4,e4]@16 g3@7 e4@16 ~@5 f3@20, ~@27 g3 ~@4 f4@32, ~@32 c4@9 ~@2 c4@5 ~@7 c4@7 ~@2]/2", // A# C
D: "[g3@8 ~@4 g3 ~@6 c4@5 ~@3 c4@2 ~@3 f3@11 ~ f3 ~@10 f4@5 a3@4, e3@15 g3@8 ~@8 c4@17 f3@13 ~@3, c4 ~@23 e4@5 ~@2 f4@21 c4@9 ~@3]/2",
E: "[g3@9 ~@3 g3 ~@3 f3@9 ~@3 f3@3 [c4,e4]@4 ~@8 e4@5 [f3,c4,f4]@11 ~ f3@4 g3@12 g3@4 ~@3 d4@5 ~@4 c4@4, [c4,e4]@15 ~ [c4,f4]@15 g3@3 ~ g3@13 ~@12 c4@20 g3@11 ~@5, ~@40 c4@6 ~@13 f4@5 e4@18 ~@6 g4@8]/3", // C F5 C F5
F: "[g3@9 ~@2 g3@2 ~@11 d4@4 g4@3 ~ g3@6 ~ g3@2 ~@2 g3@4 ~ d4@5 [a3,c4]@5 ~ [a3,c4]@3 ~@2, [b3,d4,g4]@16 g3@14 ~ [b3,d4]@13 ~@3 b3@6 ~@11, ~@20 b3@11 g4@18 ~@4 g4 ~@10]/2", // Am G Bm
G: "[g3@11 g3@2 ~@10 e4@5 g4@3 [a#3,g4]@13 a#3@3 ~@8 g4@4 a#3@4 f4@12 a3@4 a3@3 ~ a3@2 ~@4 d4@3 f#4@4, [e3,c4]@16 g3@15 d4@17 ~@3 d4@12 c4@16 [d4,f#4]@9 ~@8, ~@20 c4@12 ~@15 a#3@9 ~@7 a3@7 ~@17 a3@9]/3", // D# C D
H: "~ g3@7 ~@3 g3@4 c4@8 a#3@9, [b3,d4,g4]@11 ~@4 [e4,g4]@16 ~", // G Em
I: "f3@11 ~ a3@2 ~@5 c4@5 f4@4 [f#3,a3,d#4]@4, [c4,f4]@14 a3@11 ~@7", // D#dim F5
J: "g3@6 ~@6 c4@2 ~ [c#4,e4]@5 ~@4 c#4@4 g4@4, e4@12 ~@3 g4@10 ~@7, ~@7 g3@8 a3@3 ~@2 a3@12", // C#m
K: "f3@11 f3@4 g#3@4 ~@5 b3@3 ~ e4@2 ~@2, [c4,f4]@15 [b3,e4]@9 ~@8, ~@20 g#3@11 ~", // F5 E5
L: "[a3,e4]@8 ~@2 c4@2 e4@2 f4@2 g3@7 ~ g3@8, c4@5 ~@3 a3@8 e4@16, ~@24 a#3@3 ~@5", // A5
M: "f3@4 f3@3 ~@7 f4@10 [f#3,a3,c4,d#4]@8, [c4,f4]@5 a3@6 ~@5, a3@7 ~ f3@16 ~@8, ~@11 c4@12 ~@9", // F#dim F5
N: "[c4,e4,g4]@8 ~@4 c4@4 [a3,c#4,e4,g4]@7 ~@3 c#4@2 e4@2 g4@2, g3@6 ~@2 g3@9 ~@7 a3@8", // C A7
O: "[c4,f4]@8 ~@4 c4@2 ~@2 [g3,b3,d4,f4]@7 ~@2 b3@2 d4@2 f4@3, f3@6 ~@2 f3@9 ~@7 g3@5 ~@3", // F5 G7
P: "[[c4,e4]@12 g3 ~@7 c4@4 ~@8 f3@10 ~@2 f3@2 ~@6 a3@4 c4@4 f4@4, c3@9 ~@3 f3@4, g3@9 ~@7 g3@16 a3@17 ~@15, ~@6 e4@2 f4@5 ~@3, ~@14 c4@11 ~@7]/2", // C
Q: "[g3,c4]@10 ~@2 g3 ~@7 c4@4 ~@4 c4 ~@3, c3, e4@12 ~@4 g3@15 ~, ~@3 g4", // C5
R: "f3@5 ~@9 f3@2, [a3,c4,f4]@15 ~ f4@16, ~@12 f3@12 a3@7 ~, ~@5 c4@2 ~", // F
S: "g3@9 ~@3 g3@2 ~@6 c4@4 e4@4 c4@2 ~@2, [c4,e4]@16 g3@15 ~", // C
T: "[f3,a3]@9 ~@3 f3@2 ~@6 c4@4 f4@4 a3@4, [c4,f4]@5 ~@3, ~@16 f3@13 ~@3", // F F5
U: "[g3@9 ~@3 g3 ~@7 c4@4 ~@4 c4@2 ~@2 [f3,c4]@9 ~@3 [f3,c4]@4 [a#3,d4]@8 [a3,c4]@7 ~, [c4,e4]@2 g3 e4@2 ~@3, ~@28 g3 ~@3 f4@32]/2", // F5 A# Am C
V: "g3@8 ~@4 g3 ~@7 c4@4 e4@4 c4@2 ~@2, [e3,c4]@15 ~ g3@8 ~@8", // C
W: "f3@10 ~@2 f3 ~@15 a3@4, f4@23 ~ f4@7 ~, c4@16 f3@13 ~@3, ~@10 c4@5 ~",
X: "g3@9 ~@3 g3 ~@3 f3@9 ~@3 f3@4, [c4,e4]@15 ~ [c4,f4]@15 ~", // C F5
Y: "[[c4,e4]@4 ~@4 c4@4 e4@4 [f3,c4,f4]@11 ~ [f3,f4]@4 g3@10 ~@2 g3@2 ~@6 d4@4 ~@4 c4@4, g3@3 ~ g3@12 ~@12 c4@20 g3@11 ~@5, ~@16 e4@9 ~@3 g4@4]/2", // C F5 F
Z: "g3@9 ~@3 g3@2 ~@9 d4@5 g4@3 ~, [b3,d4,g4]@8 g3@7 ~, ~@19 b3@11 ~@2", // G
AA: "g3@6 ~@2 g3@2 ~@2 g3@4 [b3,d4]@5 ~ c4@5 ~ [a3,c4]@3 ~, g4@18 ~@4 g4 ~@9, [b3,d4]@13 ~@8 a3@4 ~@7", // Bm Am Bm
AB: "g3@11 ~ g3@2 ~@10 e4@4 g4@3 ~, [e3,c4] g3, ~@5 c4@3", // C
AC: "[a#3,g4]@11 ~ a#3@2 ~@9 g4@5 a#3@4, d4@16 a#3@9 ~@7, ~@5 d4@3", // D#
AD: "f4@11 a3@4 ~ a3@2 a3@2 ~@6 d4@2 f#4@4, c4@16 [d4,f#4]@9 ~@7, a3@7 ~@17 a3@8", // D
AE: "[b3,d4,g4]@10 g3@5 ~ c4@6 a#3@10, g3@7 ~@9 [e4,g4]@16", // G Em
AF: "f3@11 ~ a3@2 ~@6 c4@4 f4@4 [f#3,a3,d#4]@4, [c4,f4]@16 a3@11 ~@5", // D#dim F5
AG: "g3@6 ~@4 c4@2 ~@4 [c#4,e4]@4 ~@3 c#4@4 ~ g4@4, e4@11 ~@5 g4@10 ~@6, ~@8 g3@8 a3@3 ~ a3@12", // C#m
AH: "[f3@11 f3@4 ~ g#3@4 ~@4 b3@4 e4@2 ~@2 [a3,e4]@7 ~@4 e4@2 f4@2 g3@7 ~@2 g3@8, [c4,f4]@15 [b3,e4]@9 ~@7 c4@5 ~@6 c4@3 ~@2 e4@17, ~@20 g#3@11 ~@8 a3@8 ~@9 a#3@3 ~@5]/2", // A5 F5 E5
AI: "f3@4 f3@3 ~@7 f4@10 [f#3,a3,c4,d#4]@7 ~, [c4,f4]@10 a3@13 ~@9, a3@7 ~ f3@15 ~@9, ~@3 c4@3 ~@2", // F#dim F5
AJ: "[c4,e4]@11 g3@4 [c4,e4]@4 ~@4 c4@4 e4@5, g3@9 ~@6 a3@3 ~ a3@10 ~@3", // C
AK: "[f3,a3]@4 f3 ~@6 c4@2 f4@3 [a3,e4]@8 [b3,d4]@5 ~@3, [c4,f4]@10 a3@4 ~@2 c4@5 ~@11, ~@4 f3@3 ~@5 g#3@4", // F A5 Bm F5
AL: "~@3 [b3,d4]@4 ~@4 a2 ~@4 a2@12 e3@4, [a3,c4,e4]@5 ~@2 [a3,c4]@21 ~@4", // Bm Am
AM: "[a3,c4]@4 [g3,b3]@3 ~@5 f2 ~@3 f2@8 g2@7 ~, f3@7 a3@24 ~, ~@8 f3@23 ~", // Am G
AN: "g3@9 ~@3 g3@2 ~@6 c4@3 e4@5 c4@2 ~@2, [c4,e4,c5]@16 g3@15 ~", // C
AO: "[f3,a3,c4]@9 ~@2 f3@2 ~@7 c4@4 ~@3 a3@4 ~, f4@10 ~@2 f4@3 ~, ~@15 f3@13 ~@4", // F
AP: "g3@9 ~@3 g3 ~@7 c4@3 ~@4 c4@2 ~@3, [c4,e4]@16 g3@7 e4@9, ~@27 g3 ~@4", // C
AQ: "[f3,c4]@9 ~@3 f3@4 [a#3,d4]@8 [a3,c4]@7 ~, f4, ~@11 c4@5 ~@16", // F5 A# Am
AR: "[g3@8 ~@4 g3 ~@6 c4@5 e4@4 c4@2 ~@2 f3@10 ~@2 f3 ~@10 f4@5 a3@4, e3@15 g3@8 ~@8 c4@17 f3@13 ~@3, c4 ~@30 f4@21 c4@10 ~@2]/2",
AS: "[g3@9 ~@3 g3 ~@3 f3@9 ~@3 f3@3 [c4,e4]@4 ~@8 e4@5 [f3,c4,f4]@11 ~ [f3,f4]@4 g3@10 ~@2 g3@2 ~@5 d4@5 ~@4 c4@4, [c4,e4]@15 ~ [c4,f4]@15 g3@3 ~ g3@13 ~@16 e4@17 ~@7 g4@8, ~@40 c4@6 ~@14 c4@14 ~@6 g3@11 ~@5]/3", // C F5 F C F5
AT: "[g3@9 ~@2 g3@2 ~@10 d4@4 g4@3 ~ d4 g3@6 ~ g3@2 ~@2 g3@4 ~ d4@5 [a3,c4]@5 ~ [a3,c4]@3 ~@2, [b3,d4,g4]@15 g3@14 ~@2 b3@13 ~@3 b3@6 ~@11, ~@19 b3@11 ~ g4@18 ~@4 g4 ~@10]/2", // Am G
AU: "[g3@11 g3@2 ~@10 e4@4 g4@3 ~@2 g4@10 ~@2 a#3@2 ~@9 g4@4 a#3@4 f4@12 a3@4 a3@3 ~ a3@2 ~@4 d4@3 f#4@4, [e3,c4]@15 g3@16 a#3@10 ~@6 a#3@9 ~@7 c4@16 [d4,f#4]@9 ~@8, ~@19 c4@12 d4@17 ~@3 d4@12 a3@7 ~@17 a3@9]/3", // C D
AV: "f3@11 ~ a3@2 ~@5 c4@4 ~ [f#3,a3]@7 ~, [c4,f4]@15 a3@8 d#4@7 ~@2", // F#m F5
AW: "g3@6 ~ g3@8 [c4,e4]@5 ~@4 c4@4 e4@4, e4@11 ~@4 a3@8 ~@9", // C
AX: "c4@11 f3@4 [g#3,b3,e4]@9 b3@3 ~ e4@2 ~@2, f4 ~, f3 ~@3", // E
AY: "[a3,e4]@4 ~ c4 e4 ~@5 g3@4, c4@5 ~@3 a3@6 f4@2 e4@16, ~@15 g3@7 ~@2 a#3@4 ~@4", // A5
AZ: "f3@3 ~ f3@2 ~@8 f4@10 [a3,c#4,f#4]@7 ~, [c4,f4]@5 a3@6 ~@5, a3@7 ~ f3@16 ~@8, ~@3 c4@3 ~@2", // F#m F5
BA: "[[g3,c4,e4]@8 ~@4 c4@4 [a3,c4,e4]@7 ~@3 c4@2 e4@2 ~@2 [a3,c4,f4]@8 ~@3 c4@2 f4@3 [b3,e4]@8 d4@8, ~@8 g3@9 ~@7 a3@6 g4@4 ~@8 a3@3 ~@19, ~@32 f3@5 ~@3 f3@6 ~@2 [e3,g#3]@16]/2", // C Am F E5 E
BB: "[c4,e4]@5 ~@3 e4@4 d4@4 c4@7 ~ c4@3 b3@5, a3@7 ~", // C
BC: "a3@4 g3@4 f#3@7 ~@9 d4@7 ~, d3@15 b3@16 ~, ~@15 e4@8 ~@9, ~ g3", BD: "[c4,e4]@11 ~@5 [c4,f4]@16, c3@31 ~",
BE: "[[c3,c4,e4]@19 ~@13]/2", // C
})).s("gm_epiano1").gain(0.24).pan(0)
// chords · string ensemble 1
const string_ensemble_1 = note(`<
~ A B@6 C D@4 E@3 F@3 G@2 H I@2 J@3 K@4 L M N O P@2 Q@2 R@3 S@2 T U V@2 W@2 X@2 Y Z@2 AA@2 AB@3 AC AD@3 AE@2 AF@8 AG
AH AI@3 AJ@3
>`.pickRestart({
A: "[f3,c4,a4]@23 [f#3,c4,a4]@8 ~", // F F#dim
B: "[g4@14 ~ e4@4 g4@12 ~@32 c4@8 ~ [f4,b4]@22 ~ [g3,c4,e4]@19 ~ [c4,e4]@4 d4@4 c4@4 ~ c4@23 f4@8 ~ e4@14 ~@5 g3@4 [f3,d4]@4 [e3,c4]@4 ~, [g3,c4]@30 ~ d4@30 ~@67 a3@8 ~@23 g3@9 ~@11 e4@12 ~, ~@32 [f3,a4]@39 [g3,d4]@23 ~@21 g3@12 f3@8 ~@57]/6", // Fdim C Dm C C5 F G5
C: "[a3,c4]@2 ~@5 f3, f3@12 f3@7 f3@9 ~@4, ~@8 [c4,f4,a4]@7 [d4,f4,a#4]@8 [c4,f4,a4]@8 ~", // Am F A# F
D: "[c4 ~@22 c5@8 [f4,a4]@23 ~ [c4,f4,a4]@8 e4@16 ~ a4@8 ~@7 e4@6 ~@11 f4@15 ~, g3@31 ~@32 g4@2 ~@15 f4@14 ~@34, [e4,g4]@26 ~@5 c4@18 ~@14 c4@38 ~@27, ~@88 c5@35 ~@5]/4", // F Em
E: "[e4@7 ~ [c4,e4]@5 ~@2 [b3,d4]@7 ~ [a3,c4]@5 ~@60 [a3,c4,f4]@8, ~@28 [b3,d4]@31 ~@4 f3@32 ~, ~@29 g4@53 ~@14]/3", // C Bm Am F Bm
F: "[c4@15 b3@17 a#3@17 ~@15 f3@8 ~@9 f#4@15, [g3,e4]@21 f4@4 ~@7, ~@63 a3@7 ~@10 [f#3,a3,c4]@16]/3", // C F#dim
G: "[[g3,d4,g4]@15 ~@2 [a#3,e4]@14 ~ [a3,f4]@23 [a3,c4,f#4]@9, b3@5 ~@10 c4@39 ~@10, ~ [g3,g4] ~@2]/2", // G5 A#dim Dm F#dim G
H: "[c4,g4]@8 e4@7 ~, ~@16 c#4@11 ~@5", // C5
I: "[[c4,f4]@15 ~ g#4@16 [a3,a4]@15 ~ [g3,a#4]@13 ~@3, a3 ~@14 e4@25 ~@24, ~@15 [g#3,b3]@15 ~@2 c4@32]/2", // F5 A Gm G#m
J: "[f4@20 ~@3 f#4@8 ~@17 [c#4,e4,a4]@15 ~ a4@15 ~ b3@14 ~@2, [c4,c5]@49 ~@14 c4@16 g4@16 ~, a4@28 ~@4 g4@31 f4@31 ~@2]/3", // A C
K: "[[c4,e4]@22 ~ e4@8 f4@20 ~@12 g3@5 ~@19 e3@8 ~@16 f4@7 ~@2 f4@8, g3@31 a3@17 ~@47 [f3,a3]@32 ~, ~@23 c4@26 ~@14 e4@33 c4@32]/4", // C F
L: "[g3,c4,e4]@5 [g3,e4] [f3,d4] [e3,c4]", M: "c4@3 f4, [f3,a3]",
N: "[g3,c4]@20 [g3,e4]@4 [f3,d4]@3 [e3,c4]@4 ~, e4@17 ~@15", // C5 C Dm C
O: "[f3,a3,c4]@7 [a3,c4]@5 ~@3 [a#3,d4]@8 [a3,c4]@8 ~, ~@12 f3@19 ~", // F Am A# Am
P: "[g3@29 ~@2 a3@31 ~@2, e3@15 ~@16 f3@11 ~@22, c4 ~@63]/2",
Q: "[e4@24 [a3,f4]@8 [g3,e4]@15 f4@12 g4@4 ~, g3@9 ~@38 a3@16 ~, c4 ~@23 c4@14 ~@26]/2", // Dm C
R: "[[c4,e4]@7 ~@8 [b3,d4]@4 g3@5 [a3,c4]@4 g3@3 ~ [b3,d4]@27 ~@28 [a3,c4,f4]@8 ~, g3@11 g3@8 ~@12 g3@38 ~@3 f3@24, ~@8 [c4,e4]@7 ~@45 g4@22 ~@14]/3", // C Bm Am Bm F C
S: "[c4@15 b3@16 ~ a#3@11 ~@4 g3@17, e4, g3@45 ~@19]/2", T: "[f3,a3] ~ [f#3,a3,c4]@2, c4 ~",
U: "d4 [a#3,c4,e4], g3, g4@29 ~@3", V: "[f4@24 f#4@7 ~@16 c#4@16 ~, c4@23 ~@9, a4 [e4,g4]]/2",
W: "[[c4,f4,a4]@15 [b3,e4,g#4]@16 a4@16 ~ a#4@16, ~@31 e4@8 ~@25, ~@31 c4@5 ~@28]/2", // F E
X: "[f4@23 ~ d#4@7 ~ g4@15 ~@2 [e4,c5]@15, c5@3 ~, a4@29 ~@19 a4@15 ~]/2", // C
Y: "[f4,a4,c5]@15 ~ [e4,a4,c5]@7 [e4,g#4,b4]@8 ~", // F Am E
Z: "[e4@31 f4@24 ~ [f4,a4]@2 [g4,b4]@2 [a4,c5]@2 [c5,f5]@2, c5@7 ~, a4@53 ~@11]/2", // F G Am F5
AA: "[[g4,c5,e5]@19 ~ [g4,e5]@4 [f4,d5]@3 [e4,c5]@4 f4@20 ~@4 f5@8 ~, ~@31 [a4,c5]@32 ~]/2", // C Dm C Am
AB: "[[g4,c5,e5]@20 ~@4 f4@3 [e4,c5]@4 [a4,c5]@8 ~@8 [a#4,d5]@8 [a4,c5]@7 ~@25 g5@6 ~@3, ~@20 [g4,e5]@6 ~@5 f4@12 f4@21 ~@32, ~@23 d5@4 ~@12 [a4,c5]@7 ~@17 [g4,c5,e5]@32 ~]/3", // C Am A# Am C Am C
AC: "[a4,c5,f5]@23 [a4,c5,f5]@8 ~", // F
AD: "[[g4,e5]@16 [f4,a4]@7 ~ f4@7 [g4,c5,e5]@18 [f4,a4]@14 [g4,e5]@16 ~ [g4,b4,d5]@7 [a4,e5]@8 ~, c5@10 ~@11 c5@4 ~@7, ~@23 a4@8 ~@65]/3", // C F C F C G A5
AE: "[~ f4, [b4,d5,g5]@63 ~]/2", // G
AF: "[[e4,c5]@32 a#4@27 ~@4 f5@16 ~ [f#4,d5]@14 ~@18 [a#4,c5,e5]@13 ~@2 [f4,f5]@23 ~ f#4@7 ~ [g4,c5,e5]@16 [a4,c5,e5]@15 ~ [a4,c5]@7 ~@9 [a4,c5,e5]@8 [g#4,b4,d5]@8 ~@8 a3@16 ~ [c4,a#4,e5]@8, e5@60 ~@3 f4@12 ~@21 g5@32 ~@63 f5@15 ~@17 c5@19 ~@14, g4@42 ~@21 [a4,c5]@31 ~ [b4,d5]@19 ~@13 [a4,c5]@32 ~@64 [a4,e5]@23 ~@10, ~@228 e4@19 ~@9]/8", // C D C7 F C Am G#dim C7 …
AG: "c4@6 f4@17 ~ [a4,d5]@7 ~, [a4,c5,f5]@23 f#4@8 ~", // D5 F
AH: "e5@7 ~ f5@4 ~@8 c5@8 ~@4, [g4,c5]@15 [a3,a4]@17, ~@3 e5 d5@2 ~@2", // C5 A
AI: "[~@11 f3@5 [g#3,e4,b4,e5]@7 ~ [e4,g#4,b4,d5]@4 c5@36 [f#4,c5]@15 ~ b4@14 ~@2, [c4,a4,f5]@7 ~ [f4,a4,c5]@6 ~@14 e5@60 ~@8, ~@4 f3@7 ~@17 a4@52 ~@16, ~@64 a3@4 ~@11 [g3,g4,d5]@16 ~]/3", // E E7 F#dim F G5
AJ: "[[f4,a4]@3 ~ g4@11 ~ [f4,a4]@14 ~@2 [e4,g4]@38 ~@26, [c4,c5]@71 ~@25, ~ e4@2 ~@21]/3", // F Em C
})).s("gm_string_ensemble_1").gain(0.14).pan(0.9)
// drums · kick
const kick = s("bd").struct(`<
~@27 A@3 B A@7 C B A@2 C A C D A@13 E A@2 C B A@5 F G A C H A@2 C I B I B ~
>`.pickRestart({
A: "x ~@2 x!2 ~@3", B: "x", C: "x ~@2 x!2 ~@2 x", D: "x ~ x!2", E: "x ~@2 x!2 ~ x ~", F: "x ~@3 x ~@2 x", G: "x!2",
H: "x ~@2 x ~ x ~ x", I: "x ~@6 x",
})).gain(0.29)
// drums · rim
const rim = s("rim").struct("<~@31 [~@3 x]!8 ~ [~ x ~ x]!5 [~ x ~@2] [~ x ~ x]!7 ~@29>").gain(0.29)
// drums · snare
const snare = s("sd").struct("<~@55 A@8 ~ A B A@7 ~ A@3 ~@5>".pickRestart({
A: "~ x ~ x", B: "~@2 x ~@3 x!2",
})).gain(0.32)
// drums · clap
const clap = s("cp").struct("<~@31 [~ x ~@2]!24 ~@27>").gain(0.13)
// drums · low tom
const low_tom = s("lt").struct("<~@30 A ~@8 B ~@14 C ~@8 D ~@9 A ~ E F@2 ~@4>".pickRestart({
A: "~@3 x", B: "~@2 x ~@2 x!2 ~", C: "~@5 x!3", D: "~@6 x!2 ~@2 x!3 ~ x!2", E: "~@7 x", F: "x",
})).gain(0.29)
// drums · hihat
const hihat = s("hh").struct(`<
A B C D E F G H I J K F L F M N O P Q R S T F U V W F X Y N Z AA AB@2 AC AA AB@2 AC AA AB@2 AC AA AB@2 AC AA AB@2 AC
AA AB@2 AC ~@27
// … 50 more lines
More by Paul Simon
50 Ways To Leave Your Lover1976 · E minor · 102 bpmYou Can Call Me Al1986 · F major · 128 bpmAt the ZooD minor · 170 bpmHazy Shade of WinterF major · 132 bpmKodachromeE major · 140 bpmLate In The EveningF major · 120 bpmLoves Me Like a RockG major · 144 bpmMe and Julio Down by the School YardA major · 180 bpm
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.