0:00/0:00
// Maybe I'm Amazed — Paul McCartney
// 82 bpm, 4/4, key D major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 74 bars on a 48-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): guitar program 29.
setcpm(82/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
const piano = note(`<
A@5 B@3 C@6 D E F G@6 H I J@2 K ~@4 L M N O P M N O Q H I J@2 R I S@3 T@3 U@3 V W X ~ Y@5 ~@3 Z AA ~@4
>`.pickRestart({
A: "[~@57 [g#2,e3]@6 [a3,d4]@13 ~@7 [f#2,d3]@7 [a3,d4]@13 ~@6 [f2,d3]@7 [b3,d4]@13 ~@7 [e2,b2]@6 [a2,c#3,a3,c#4,e4]@26 a2@10 c#3@10 ~@8 a3@13 ~@25 a3@6, ~@37 [b3,e4]@13 [b3,e4]@13 ~@14 [a3,d4]@13 ~@13 [a3,d4]@13 ~@13 [b3,d4]@13 ~@46 e3@13 ~@20 c#3@13 ~@6, ~@44 [g#2,e3]@13 ~@6 [f#2,d3]@19 ~@8 [f2,d3]@19 ~@7 [e2,b2]@19 ~@79 a2@13 e3@13]/5", // C#m D5 D D5 Dm Bm E5 A …
B: "[~@7 e4@24 ~@2 [d4,f4]@12 ~@7 [a#2,d3]@6 [f2,a2]@6 ~@12 [f2,a2]@6 ~ [g2,c3]@6 ~@12 c3@6 d3@6 ~@13 g2@6 a#2@6 [a#2,d3]@6, ~ c#4@13 ~@19 [a#2,d3,f3,a#3]@18 ~@13 [f2,a2]@12 ~@13 [g2,c3]@12 g2@12 [g2,d3]@12 ~ d3@12 ~@6, ~@46 [d4,f4]@12 [c4,f4]@12 [c4,f4]@12 ~ [e4,g4]@12 [c4,e4,g4]@12 [b3,d4]@12 [b3,d4]@12 ~ [a#3,d4,f4]@12]/3", // Dm A# F C5 A# F C5 G5 …
C: "[~@6 [a#2,d3]@6 f2@6 ~@13 f2@6 [c3,d4]@6 [c2,c3,c4]@12 [c2,c3]@3 [c#2,c#3]@3 ~ [d2,d3]@3 [d#2,d#3]@2 [e2,e3]@3 [f2,f3]@3 [f#2,f#3]@3 [g2,g3]@3 [g#2,g#3]@3 [a2,a3]@3 [d4,f4]@12 ~@7 [a#2,d3]@6 [f2,a2]@6 ~@12 [f2,a2]@6 [g2,c3]@6 ~@13 c3@6 d3@6 ~@13 g2@6 a#2@6 ~@12 [a#2,d3]@6 [f2,c3]@6 ~@13 f2@6 g#2@6 ~@12 [g#2,c3]@6 [g2,a#2]@6 ~@13 [g2,a#2]@6 [g3,d4]@6, [a#3,d4,f4]@12 [c4,f4]@12 ~ [c4,f4]@12 g3@18 ~@43 [d4,f4]@12 [c4,f4]@12 [c4,f4]@12 [e4,g4]@12 ~ [c4,e4,g4]@12 [b3,d4]@12 [b3,d4]@12 ~ [a#3,d4,f4]@12 [a#3,d4,f4]@12 [c4,f4]@12 ~ [c4,f4]@12 [c4,f4]@12 [c4,f4]@12 [a#3,d#4]@12 ~ [a#3,d#4]@12 ~@6, ~@18 f2@12 ~@55 [a#2,d3,f3,a#3]@18 ~@13 [f2,a2]@12 ~@13 [g2,c3]@12 g2@12 [g2,d3]@12 ~ d3@12 [a#2,d3]@12 ~@12 [f2,c3]@12 ~ c3@12 [g#2,c3]@12 ~@13 [g2,a#2]@12 ~@12]/6", // A# Csus2 C C# D D# E F …
D: "~@13 [e3,g3]@6 [e3,g3]@9 ~@3 [e3,g3]@6 ~@6 [d3,a3,d4,f#4]@5", // Em D
E: "~ [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@6 ~ [d3,a3,c#4,f#4]@6 [d3,a3,c#4,f#4]@6 [d3,a3,c#4,f#4]@6 [d3,a3,c#4,f#4]@6 [d3,a3,c4,f#4]@4", // D Dmaj7 D7
F: "~ [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [f#2,a#2,f#3,c#4]@3 [f#2,a#2,f#3,c#4]@3 [g2,b2,g3,d4]@2", // D7 F# G
G: "[~@3 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 ~@6 [a3,f4]@3 [a3,f4]@3 [a3,f4]@3 [a3,f4]@3 [a3,f4]@3 [d2,d3]@3 [a3,f4]@3 [a3,f4]@3 ~@3 [a3,f4]@3 [a3,f4]@3 [d2,d3]@3 [a3,f4]@3 [a3,f4]@3 [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@6 [d3,a3,c#4,f#4]@6 [d3,a3,c#4,f#4]@6 [d3,a3,c#4,f#4]@6 ~ [d3,a3,c#4,f#4]@6 [d3,a3,c4,f#4]@6 [d3,a3,c4,f#4]@6 [d3,a3,c4,f#4]@6 [d3,a3,c4,f#4]@6 [d3,a3,c4,f#4]@6 [d3,a3,c4,f#4]@6 [f#2,a#2,f#3,c#4]@6 [f#2,a#2,f#3,c#4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 ~ [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [a3,d4]@6 [a3,d4]@6 ~@6 [a3,d4]@6 ~@25, ~@15 d2@4 [d2,d3]@3 ~ [d2,d3]@2 [d2,d3]@2 ~@2 [d2,d3]@2 ~@65]/6", // G Dm D Dm D Dm D Dmaj7 …
H: "~@8 [e3,g3]@2 e3@2 e3 g3 c#3 a2", // Em
I: "[d4,f4]@2 ~ [a#2,d3] [f2,a2] ~@2 [f2,a2], [a#2,d3]@3 ~@2 [f2,a2]@2 ~, ~ [d4,f4] [c4,f4]!2", // Dm A# F A# F Dm F5
J: "[[g2,c3] ~@2 c3 d3 ~@2 g2 a#2 ~@2 [a#2,d3] f2 ~@2 f2, [e4,g4] [c4,e4,g4] [b3,d4]!2 [a#3,d4,f4]!2 [c4,f4]!2, ~ [g2,c3]@2 g2@2 [g2,d3]@2 d3@2 [a#2,d3]@2 ~@2 f2@2 ~]/2", // C5 A# Em C Bm A# F5 C5 …
K: "[c2,d4]@2 [c1,c2,c4]@4 [c1,c3] [c#1,c#3] [d1,d3] [d#1,d#3] [e1,e3] [f1,f3] [f#1,f#3] [g1,g3] [g#1,g#3] [a1,a3], g3@3 ~@5", // Csus2 C C# D D# E F F# …
L: "[g3,d4] ~@2 e3!2 ~ e3 ~", M: "[d3,a3,d4,f#4]!4 [d3,a3,c#4,f#4]!4", N: "[d3,a3,c4,f#4]!6 [f#2,a#2,f#3,c#4]!2",
O: "[g2,b2,g3,d4]!8", // G
P: "~@2 [a3,f4]!5 [d2,d3] [a3,f4]!2 ~ [a3,f4]!2 [d2,d3] [a3,f4]!2, d2@4 [d2,d3]@3 ~ [d2,d3]@2 [d2,d3]@2 ~@2 [d2,d3]@2", // Dm D Dm D Dm D
Q: "[a3,d4]!2 ~ [a3,d4] ~@4", // D5
R: "[c3,d4]@2 [c2,c3,c4]@4 [c2,c3] [c#2,c#3] [d2,d3] [d#2,d#3] [e2,e3] [f2,f3] [f#2,f#3] [g2,g3] [g#2,g#3] [a2,a3], g3@3 ~@5", // Csus2 C C# D D# E F F# …
S: "[[g2,c3] ~@2 c3 d3 ~@2 g2 a#2 ~@2 [a#2,d3] [f2,c3] ~@2 f2 g#2 ~@2 [g#2,c3] [g2,a#2] ~@2 [g2,a#2], [e4,g4] [c4,e4,g4] [b3,d4]!2 [a#3,d4,f4]!2 [c4,f4]!2 [c4,f4]!2 [a#3,d#4]!2, ~ [g2,c3]@2 g2@2 [g2,d3]@2 d3@2 [a#2,d3]@2 ~@2 [f2,c3]@2 c3@2 [g#2,c3]@2 ~@2 [g2,a#2]@2 ~]/3", // C5 A# F5 G# Gm Em C Bm …
T: "[[g3,d4]@6 ~@12 [e3,g3]@6 [e3,g3]@9 ~@3 [e3,g3]@6 ~@5 [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@6 [d3,a3,d4,f#4]@6 [d3,a3,c#4,f#4]@5 [d3,a3,c#4,f#4]@6 [d3,a3,c#4,f#4]@6 [d3,a3,c#4,f#4]@6 [d3,a3,c4,f#4]@6 [d3,a3,c4,f#4]@5 [d3,a3,c4,f#4]@6 [d3,a3,c4,f#4]@6 [d3,a3,c4,f#4]@6 [d3,a3,c4,f#4]@5 [f#2,a#2,f#3,c#4]@6 [f#2,a#2,f#3,c#4]@6 [g2,b2,g3,d4]@4]/3", // G5 Em D Dmaj7 D7 F# G
U: "[~@2 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@5 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@5 d2@11 ~ d2@6 [d3,a3,f4]@3 [d2,d3,a3,f4]@2 [d3,a3,f4]@3 [d3,a3,f4]@3 [d3,a3,f4]@3 [d3,a3,f4]@3 [d3,a3,f4]@3 [d2,d3,a3,f4]@3 [d2,d3,a3,f4]@3 [d3,a3,f4]@3 [d3,a3,d4,f#4]@17 ~@38, ~@65 d2@6 d2@6 ~@67]/3", // G Dm D
V: "~@37 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@5", // G
W: "~ [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@5 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [g2,b2,g3,d4]@6 [a3,d4]@5 [a3,d4]@6 ~", // G D5
X: "~@5 [a3,d4]@6 ~@37", // D5
Y: "[~@43 [d4,f4]@12 ~@6 [a#2,d3]@6 [f2,a2]@6 ~@12 [f2,a2]@6 [g2,c3]@6 ~@12 c3@5 d3@6 ~@12 g2@6 a#2@6 ~@12 [a#2,d3]@6 f2@6 ~@12 f2@6 [c2,d4]@6 [c1,c2,c4]@11 [c1,c3]@3 [c#1,c#3]@3 [d1,d3]@3 [d#1,d#3]@3 [e1,e3]@3 [f1,f3]@3 [f#1,f#3]@3 [g1,g3]@3 [g#1,g#3]@3 [a1,a3]@3 ~@7, ~@43 [a#2,d3]@18 ~@12 [f2,a2]@12 ~@12 [g2,c3]@12 g2@11 [g2,d3]@12 d3@12 [a#2,d3]@12 ~@12 f2@12 ~@60, ~@55 [d4,f4]@12 [c4,f4]@12 [c4,f4]@12 [e4,g4]@12 [c4,e4,g4]@11 [b3,d4]@12 [b3,d4]@12 [a#3,d4,f4]@12 [a#3,d4,f4]@12 [c4,f4]@12 [c4,f4]@12 g3@18 ~@36]/5", // Dm A# F C5 A# Csus2 C C# …
Z: "~@6 [g3,d4] ~", AA: "~ e3!2 ~ e3 ~@3",
})).s("gm_piano").gain(0.21)
// chords · piano · soft notes
const piano_soft = note("<A ~@27 B C@3 ~@32 D@5 ~@5>".pickRestart({
A: "~@11 [g#2,e3]@6 ~@14 [g#2,e3]@13 ~@4, ~@11 [b3,e4]@13 [b3,e4]@13 ~@11, ~@18 [g#2,e3]@13 ~@17", // C#m E5 C#m
B: "[d4,f4]@2 ~ [a#2,d3] [f2,a2] ~@2 [f2,a2], [a#2,d3,f3,a#3]@3 ~@2 [f2,a2]@2 ~, ~ [d4,f4] [c4,f4]!2", // Dm A# F A# F Dm F5
C: "[[g2,c3] ~@2 c3 d3 ~@2 g2 a#2 ~@2 [a#2,d3] [f2,c3] ~@2 f2 g#2 ~@2 [g#2,c3] [g2,a#2] ~@2 [g2,a#2], [e4,g4] [c4,e4,g4] [b3,d4]!2 [a#3,d4,f4]!2 [c4,f4]!2 [c4,f4]!2 [a#3,d#4]!2, ~ [g2,c3]@2 g2@2 [g2,d3]@2 d3@2 [a#2,d3]@2 ~@2 [f2,c3]@2 c3@2 [g#2,c3]@2 ~@2 [g2,a#2]@2 ~]/3", // C5 A# F5 G# Gm Em C Bm …
D: "[~@41 [d4,f4]@12 ~@6 [a#2,d3]@5 [f2,a2]@6 ~@12 [f2,a2]@6 [g2,c3]@6 ~@11 c3@6 d3@6 ~@12 g2@6 a#2@6 ~@11 [a#2,d3]@6 [f2,c3]@6 ~@12 f2@6 g#2@5 ~@12 [g#2,c3]@6 [g2,a#2]@6 ~@12 [g2,a#2]@6 ~@11, ~@41 [a#2,d3,f3,a#3]@17 ~@6 [c4,f4]@12 [c4,f4]@12 [e4,g4]@12 [c4,e4,g4]@11 [b3,d4]@12 [b3,d4]@12 [a#3,d4,f4]@11 [a#3,d4,f4]@12 [c4,f4]@12 [c4,f4]@12 [c4,f4]@11 [c4,f4]@12 [a#3,d#4]@12 [a#3,d#4]@12 ~@11, ~@53 [d4,f4]@12 ~@5 [f2,a2]@12 ~@12 [g2,c3]@11 g2@12 [g2,d3]@12 d3@12 [a#2,d3]@11 ~@12 [f2,c3]@12 c3@11 [g#2,c3]@12 ~@12 [g2,a#2]@12 ~@17]/5", // Dm A# F C5 A# F5 G# Gm …
})).s("gm_piano").gain(0.14)
// chords · drawbar organ
const drawbar_organ = note("<~@2 A@4 ~@44 B@4 C@7 ~@8 D@3 E@2>".pickRestart({
A: "[~@46 [e3,a3,c#4,e4,a4]@129 ~@17]/4", // A
B: "[~@47 [a3,d4,d5,f#5]@23 ~ [a3,d4,c#5,f#5]@23 f#5@23 g5@10 ~ f#5@12 [b3,d4,g4,d5]@46 [a3,d4,d5,f#5]@6, ~@47 [a3,d4,c5]@23 ~@26]/4", // D Dmaj7 G D D7
C: "[~@41 [d4,d5,f#5]@23 [d4,c#5]@23 ~@23 g5@10 ~@2 f#5@11 [b3,d4,g4,d5]@46 ~ f#4@17 f4@28 ~@2 [d3,d5]@25 [a3,c#5]@53 ~@31, ~@41 a3@93 ~@46 [d3,a3,d5]@47 ~@109, ~@32 f#5@23 ~@113, ~@87 [d4,c5]@46 ~@94 [e4,g4]@79 ~@30]/7", // D Dmaj7 G D A D5 D7 Em
D: "[~@35 [a3,d4,d5,f#5]@5 ~ [a3,d4,d5,f#5]@5 ~ [a3,d4,d5,f#5]@5 ~ [a3,d4,d5,f#5]@5 [a3,d4,c#5,f#5]@5 ~ [a3,d4,c#5,f#5]@5 ~ [a3,d4,c#5,f#5]@5 ~ [a3,d4,c#5,f#5]@5 ~ [a3,d4,c5,f#5]@5 [a3,d4,c5,f#5]@5 ~ [a3,d4,c5,f#5]@5 ~ [a3,d4,c5,f#5]@5 ~ [a3,d4,c5,g5]@5 ~ [a3,d4,c5,g5]@4 ~ [a3,d4,c5,f#5]@5 ~ [a3,d4,c5,f#5]@4 ~@2 [b3,d4,g4,d5]@5 ~ [b3,d4,g4,d5]@4 ~ [b3,d4,g4,d5]@4 ~]/3", // D Dmaj7 D7 Am7 D7 G
E: "[~ [b3,d4,g4,d5]@4 ~@2 [b3,d4,g4,d5]@4 ~@2 [b3,d4,g4,d5]@4 ~@2 [b3,d4,g4,d5]@4 ~ [b3,d4,g4,d5]@4 ~@2 [a3,d4,d5,f#5]@35 ~@31]/2", // G D
})).s("gm_drawbar_organ").gain(0.32)
// bass · electric bass finger
const bass = note(`<
~@9 A@5 B C D E@7 F G F H F I F J K L M N O L M N P Q F G F H F I F J R@6 S T@7 U@3 V W X@4 Y
>`.pickRestart({
A: "[~@37 a#2@24 ~ a2@24 c2@24 ~ g2@24 ~ a#2@24 a2@24 ~ g#2@24 g2@24 ~ c2@6]/5",
B: "c2@6 c2@6 ~ c2@6 c2@6 c2@6 c2@6 c2@6 d2@5", C: "~ d2@6 d2@6 d2@6 ~ d2@6 d2@6 d2@6 d2@6 d2@4",
D: "~ d2@3 d2@3 d2@3 d2@3 d2@3 f#2@3 f#2@3 g2@2",
E: "[~@3 g2@6 g2@6 g2@3 f#2@3 g2@6 g2@6 g2@6 g2@6 d2@24 ~@24 d2@6 d2@6 d2@6 d2@6 d2@6 d2@6 d2@6 ~ d2@6 d2@6 d2@6 d2@6 d2@6 d2@6 d2@6 f#2@6 f#2@6 g2@6 g2@6 g2@6 g2@3 f#2@3 ~ g2@6 g2@6 g2@6 g2@6 f#2@12 d3@6 f2@12 d3@12 f2@6 e2@12 ~ d3@6 e2@6 a2@24]/7",
F: "a#2!2 a2!2", G: "g2@2 g2 c2 g2@2 g2 a2", H: "c2@2 c2@4 c2 c#2 d2 d#2 e2 f2 f#2 g2 g#2 a2",
I: "g2 c2 e2 g2@3 g2 a2", J: "g#2!2 g2!2", K: "c2!8", L: "d2!8", M: "d2!6 f#2!2",
N: "g2@2 g2@2 g2@2 g2 f#2 g2@2 g2@2 g2@2 g2@2", O: "d2 ~", P: "f#2@2 d3 f2@2 d3@2 f2", Q: "e2@2 d3 e2 a2@4",
R: "[c2@6 c2@6 c2@6 c2@6 c2@6 c2@6 c2@6 c2@5 d2@11 ~ d2@11 ~ d2@11 d2@11 ~ d2@11 d2@11 ~ d2@11 f#2@11 ~ g2@11 ~ g2@11 g2@11 ~ g2@11 d2@11 ~@12 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@11 d2@11 ~ d2@11 d2@11 ~ d2@9]/6",
S: "~@3 d2@11 d2@11 ~ f2@11 g2@11",
T: "[~ g2@11 g2@11 ~ g2@11 ~ f#2@11 d3@6 f2@12 d3@12 f2@6 e2@12 d3@6 e2@6 ~ a2@53 ~@26 a#2@12 a#2@12 a2@12 a2@12 g2@12 g2@6 c2@5 g2@12 g2@6 a2@6 a#2@12 a#2@12 a2@12 a2@12 c2@6]/7",
U: "[c2@11 c2@3 c#2@3 d2@3 d#2@3 e2@3 f2@3 f#2@3 g2@3 g#2@3 a2@3 a#2@12 a#2@11 a2@12 a2@12 g2@6 c2@6 e2@5 g2@17 ~ g2@6 a2@6 a#2@9]/3",
V: "~ a#2@6 a2@6 a2@6 g#2@5", W: "~ g#2@12 g2@12 g2@11 c2@6 c2@6",
X: "[c2@6 c2@6 c2@6 c2@6 c2@5 c2@6 d2@11 ~ d2@11 d2@11 ~ d2@11 ~ d2@11 d2@11 ~ d2@11 f2@11 ~ g2@11 g2@11 ~ g2@11 ~ g2@11 d2@11 ~@7]/4",
Y: "~@5 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 ~@19",
})).s("gm_electric_bass_finger").gain(0.32)
// other · electric guitar clean
const electric_guitar_clean = note(`<
~@24 A B C D C E F G H ~ I@2 J I@3 K ~@9 L@3 M@4 N@2 ~ O P@2 Q R@5 S@5
>`.pickRestart({
A: "a2@2 [d3,d4]@2 [e3,e4] [f3,f4] [d3,d4]@2 [a3,a4]@2 [f3,f4]@2 [e3,e4]@2 [d3,d4]@2", // D E F D A F E D
B: "[e3,e4]@9 [f3,f4]@3 [e3,e4]@6 [d3,d4]@25 ~@5", // E F E D
C: "~@2 [d3,d4]@2 [e3,e4] [f3,f4] [d3,d4]@2 [a3,a4]@2 [f3,f4]@2 [e3,e4]@2 [d3,d4]@2", // D E F D A F E D
D: "[e3,e4]@3 [d3,d4]@3 [c3,c4]@25 ~@17", E: "[e3,e4] [f3,f4] [e3,e4] [d3,d4]@3 [b2,b3] [g2,g3]",
F: "[f3,f4]@9 [g3,g4]@3 [f3,f4]@6 [e3,e4]@9 [c3,c4]@3 [e3,e4]@3 [g3,g4]@3 [c3,c4]@4 ~@8", // F G F E C E G C
G: "[e3,e4]@3 [f3,f4] [e3,e4]@2 [d3,d4]@4 [b2,b3] [a2,a3] [g2,g3] [a2,a3]@3", // E F E D B A G A
H: "[c3,c4]@2 [b2,b3] [c3,c4]@2 [a2,a3] [g2,g3]@4 [c3,c4] [b2,b3] [a3,a4] [g3,g4] [e3,e4]@2", // C B C A G C B A …
I: "[d3,a3,d4]@6 [d3,a3,d4]@6 [d3,a3,d4]@25 ~@11", J: "[d3,a3,d4]", K: "[d3,a3,d4]@37 ~@11",
L: "[~@47 [d3,a3,d4]@6 [d3,a3,d4]@6 [d3,a3,d4]@23 ~@12 [d3,a3,d4]@6 [d3,a3,d4]@5 [d3,a3,d4]@24 ~@11 [d3,a3,d4]@4]/3", // D5
M: "[~@2 [d3,a3,d4]@6 [d3,a3,d4]@24 ~@10 [d3,a3,d4]@36 ~@11 [d3,a3,d4]@5 [d3,a3,d4]@6 [d3,a3,d4]@24 ~@11 [d3,a3,d4]@6 [d3,a3,d4]@6 [d3,a3,d4]@24 ~@10 [d3,a3,d4]@6 [d3,a3,d4]@5]/4", // D5
N: "[~ [d3,a3,d4]@24 ~@11 [d3,a3,d4]@36 ~@24]/2", O: "~@43 d3@5",
P: "[~ [d3,d4]@6 [e3,e4]@3 [f3,f4]@3 [d3,d4]@6 [a3,a4]@6 [f3,f4]@6 [e3,e4]@6 [d3,d4]@6 [e3,e4]@9 [f3,f4]@3 [e3,e4]@6 [d3,d4]@17 [b2,b3]@6 [g2,g3]@7 ~@5]/2", // D E F D A F E D …
Q: "[d3,d4]@2 [e3,e4] [f3,f4] [d3,d4]@2 [a3,a4]@2 [f3,f4]@2 [e3,e4]@2 [d3,d4]@2 [e3,e4] [d3,d4]", // D E F D A F E D …
R: "[[c3,c4]@11 [e3,e4]@3 [d3,d4]@3 [c3,c4]@10 ~@2 [e3,e4]@3 [d3,d4]@3 [c3,c4]@3 [c3,c4]@3 [d3,d4]@4 ~@2 [d3,d4]@6 [e3,e4]@3 [f3,f4]@3 [d3,d4]@5 [a3,a4]@6 [f3,f4]@6 [e3,e4]@6 [d3,d4]@6 [e3,e4]@6 [f3,f4]@6 [e3,e4]@5 [d3,d4]@18 [b2,b3]@6 [g2,g3]@6 [f3,f4]@8 [g3,g4]@3 [f3,f4]@6 [e3,e4]@9 [c3,c4]@3 [e3,e4]@3 [g3,g4]@3 [c3,c4]@4 ~@8 [e3,e4]@8 [f3,f4]@3 [e3,e4]@6 [d3,d4]@12 [b2,b3]@3 [a2,a3]@3 [g2,g3]@3 [a2,a3]@8 ~@6 c3@6, ~@19 c4]/5", // C E D C E D C D …
S: "[[c3,e3]@6 [c3,e3,g3,c4]@6 [c3,e3,g3,c4,e4]@6 [c3,e3,g3,c4,e4,g4]@6 [c3,e3,g3,c4,e4,g4,c5]@5 [c3,e3,g3,c4,e4,g4,c5]@6 [d3,a3,d4]@6 [d3,a3,d4]@6 [d3,a3,d4]@24 ~@11 [d3,a3,d4]@5 [d3,a3,d4]@6 [d3,a3,d4]@24 ~@11 [d3,a3,d4]@6 [d3,a3,d4]@5 [d3,a3,d4]@24 ~@11 [d3,a3,d4]@36 ~@30]/5", // C D5
})).s("gm_electric_guitar_clean").gain(0.4)
// chords · lead 1 square
const lead_1_square = note("<~@14 A@3 B@4 C ~@11 D E F ~ D E F ~@34>".pickRestart({
A: "[~@43 [d5,f#5]@24 ~ [c#5,f#5]@24 c5@36 a4@12 ~@4, ~@23 f#5@12 ~]/3", // D F#5
B: "[~@21 [g4,c5]@24 [a4,d5]@6 ~@42 [d5,f#5]@24 [c#5,f#5]@24 ~ c5@36 a4@12 ~@2, ~@71 f#5@24 ~]/4", // C5 D5 D F#5
C: "~@23 [g4,c5]@24 ~", D: "[d5,f#5] [c#5,f#5]", E: "c5@3 a4, f#5", F: "~ [g4,c5]",
})).s("gm_lead_1_square").gain(0.25)
// other · electric guitar clean
const electric_guitar_clean_2 = note("<~@28 A B A C D ~@31 E@4 F@2 ~@4>".pickRestart({
A: "[a2,a3] [e3,e4] [a3,a4] ~ [g2,g3] [d3,d4] [g3,g4] ~", B: "[f2,f3] [c3,c4] [f3,f4] [c3,c4] [c3,c4,c5]@4",
C: "[f2,f3] [c3,c4] [f3,f4] ~ [d#2,d#3] [a#2,a#3] [d#3,d#4] ~", D: "[e3,e4] [c3,c4]",
E: "[~@41 [a2,a3]@6 [e3,e4]@6 [a3,a4]@6 ~@5 [g2,g3]@6 [d3,d4]@6 [g3,g4]@6 ~@6 [f2,f3]@6 [c3,c4]@6 [f3,f4]@5 [c3,c4]@6 [c3,c4,c5]@23 ~ [a2,a3]@6 [e3,e4]@5 [a3,a4]@6 ~@6 [g2,g3]@6 [d3,d4]@6 [g3,g4]@6 ~@6 [f2,f3]@5 [c3,c4]@5]/4", // A E A G D G F C …
F: "[~ [f3,f4]@6 ~@6 [d#2,d#3]@6 [a#2,a#3]@6 [d#3,d#4]@6 ~@5 [c3,c4]@23 ~ [c3,c4]@23 ~@13]/2", // F D# A# D# C
})).s("gm_electric_guitar_clean").gain(0.8).pan(1)
// chords · electric guitar muted
const electric_guitar_muted = note("<~@42 A B C D A E C F G@2 ~@22>".pickRestart({
A: "[a#3,d4,f4,a#4]@2 ~@4 [a#3,d4,f4,a#4]@2 ~ [a#3,d4,f4,a#4]@2 ~ [a#3,d4,f4,a#4]@2 ~@4 [a#3,d4,f4,a#4]@2 ~@4 [f3,a3,c4,f4]@2 ~@4 [f3,a3,c4,f4]@2 ~ [f3,a3,c4,f4]@2 ~ [f3,a3,c4,f4]@2 ~ [f3,a3,c4,f4]@2 ~ [f3,a3,c4,f4]@2 ~@4", // A# F
B: "[g3,c4,e4,c5]@2 ~@4 [g3,c4,e4,c5]@2 ~ [g3,c4,e4,c5]@2 ~ [g3,c4,e4,c5]@2 ~@4 [g3,c4,e4,c5]@2 ~@4 [g3,b3,d4,g4]@2 ~@4 [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@2 ~@4 [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@2 ~", // C G
C: "[a#3,d4,f4,a#4]@2 ~@4 [a#3,d4,f4,a#4]@2 ~@4 [a#3,d4,f4,a#4]@2 ~ [a#3,d4,f4,a#4]@2 ~ [a#3,d4,f4,a#4]@2 ~@4 [f3,a3,c4,f4]@2 ~@4 [f3,a3,c4,f4]@2 ~ [f3,a3,c4,f4]@2 ~@4 [f3,a3,c4,f4]@2 ~ [f3,a3,c4,f4]@2 ~ [f3,a3,c4,f4]@2 ~", // A# F
D: "[c3,e3,g3,c4,e4,g4] ~@23", // C
E: "[c4,e4,g4,c5]@2 ~@4 [c4,e4,g4,c5]@2 ~ [c4,e4,g4,c5]@2 ~ [c4,e4,g4,c5]@2 ~@4 [c4,e4,g4,c5]@2 ~@4 [g3,b3,d4,g4]@2 ~@4 [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@2 ~@4 [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@2 ~", // C G
F: "[g#3,c4,d#4,g#4]@2 ~@4 [g#3,c4,d#4,g#4]@2 ~@4 [g#3,c4,d#4,g#4]@2 ~ [g#3,c4,d#4,g#4]@2 ~ [g#3,c4,d#4,g#4]@2 ~@4 [g3,b3,d4,g4]@2 ~@4 [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@2 ~@4 [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@2 ~", // G# G
G: "[[c3,e3,g3,c4,e4,g4]@2 ~@4 [c3,e3,g3,c4,e4,g4]@2 ~@4 [c3,e3,g3,c4,e4,g4]@2 ~@4 [c3,e3,g3,c4,e4,g4]@2 ~@4 [c3,e3,g3,c4,e4,g4]@2 ~@4 [c3,e3,g3,c4,e4,g4]@2 ~ [c3,e3,g3,c4,e4,g4]@2 ~ [c3,e3,g3,c4,e4,g4]@2 ~@4 [c3,e3,g3,c4,e4,g4]@2 [c3,e3,g3,c4,e4,g4]@2 ~ [d3,f#3,a3,d4,f#4,a4]@2 ~@47]/2", // C D
})).s("gm_electric_guitar_muted").gain(0.2)
// drums · kick
const kick = s("bd").struct(`<
~@9 A B C D E F G H I J K L M N O P@3 Q R S@3 T U@3 V U@2 W X Y P@3 Q R S@3 Z AA AB AC AD AE AF AG AH AI AJ AK AL AM
AN AO AP B AQ AR AS AT AU AV
>`.pickRestart({
A: "~@37 x ~@10", B: "~@7 x ~@8 x ~@2 x ~@4", C: "~@15 x ~@18 x ~@5 x ~@7", D: "~@16 x ~@18 x ~@5 x ~@6",
E: "~@17 x ~@18 x ~@5 x ~@5", F: "~@43 x ~@4", G: "~ x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@3",
H: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", I: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", J: "~@15 x",
K: "~@3 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@5 x ~", L: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
M: "~@4 x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@2 x ~@2 x", N: "~@11 x ~@2 x ~@2 x ~@23 x ~@2 x ~@2 x",
O: "~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@17", P: "x!3 ~ x!3 ~", Q: "x ~@9 x!6", R: "x ~ x ~ x!4", S: "x ~ x ~ x ~ x!2",
T: "x!2 ~ x", U: "x!8", V: "x", W: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", X: "x ~@3 x!3 ~@7 x!2", Y: "x!6 ~@2",
Z: "x ~@11 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4 x", AA: "~@5 x ~@5 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5 x ~@5 x ~",
AB: "~@4 x ~@4 x ~@5 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5 x ~@3",
AC: "~@2 x ~@5 x ~@4 x ~@2 x ~@2 x ~@5 x ~@5 x ~@2 x ~@2 x ~ x ~@2 x ~@5",
AD: "~@12 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@4 x ~",
AE: "~@4 x ~@5 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5 x ~@5 x ~@2", AF: "~@3 x ~@4 x ~@5 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5 x ~@4",
AG: "~ x ~@5 x ~@4 x ~@11 x ~@5 x ~@2 x ~@2 x ~@10 x", AH: "~@5 x ~@11 x ~@5 x ~@11 x ~@11 x", AI: "~@5 x ~@6 x ~@35",
AJ: "~@31 x ~@2 x ~@8 x ~@4", AK: "~ x ~@17 x ~@5 x ~@17 x ~@4", AL: "~ x ~@16 x ~@5 x ~@17 x ~@5",
AM: "x ~@2 x!2 ~@2 x", AN: "~@41 x ~@6", AO: "~@8 x ~@2 x ~@5 x ~@2 x ~@3", AP: "~@5 x ~@5 x ~ x ~@2",
AQ: "~@13 x ~@17 x ~@4 x ~@5 x ~@5", AR: "x ~@5 x ~@5 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5 x ~@5 x",
AS: "~@5 x ~@4 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4 x ~@5 x ~@2", AT: "~@3 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5 x ~@5 x ~@4 x ~@4",
AU: "~ x ~@2 x ~@2 x ~@5 x ~@5 x ~@2 x ~ x ~@2 x ~@2 x ~@17",
AV: "x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@21",
})).gain(0.36)
// drums · snare
const snare = s("sd").struct(`<
~@15 A B C ~ D E F G H I@3 J I@8 K I@2 L M N I@3 J I@4 O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL
>`.pickRestart({
A: "~@7 x ~@24 x ~@15", B: "~ x ~@2 x ~", C: "~@3 x ~@7 x ~@3 x", D: "~@3 x ~@7 x ~@4", E: "~@5 x ~@11 x ~@6",
F: "~@10 x ~@24 x ~@5 x ~@2 x ~@2 x", G: "~@11 x ~@2 x ~@26 x ~@2 x ~@3",
H: "~@5 x ~@6 x ~@23 x ~@2 x ~@2 x ~@2 x ~@2", I: "~ x ~ x", J: "x ~@9 x!6", K: "x", L: "~@4 x ~@7 x ~ x!2",
M: "x ~@3 x!2 ~@8 x!2", N: "~@2 x ~ x ~@7 x!4", O: "x ~@11 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4 x",
P: "~@11 x ~@11 x ~@10 x ~@11 x ~", Q: "~@9 x ~@11 x ~@10 x ~@11 x ~@3",
R: "~@8 x ~@4 x ~@2 x ~@2 x ~@11 x ~@2 x ~@2 x ~ x ~@2 x ~@5",
S: "~@17 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@6", T: "~@4 x ~@11 x ~@10 x ~@11 x ~@8",
U: "~@3 x ~@10 x ~@11 x ~@10 x ~@10", V: "~ x ~@10 x ~@11 x ~@5 x ~@2 x ~@2 x ~@10 x",
W: "~@5 x ~@11 x ~@5 x ~@11 x ~@11 x", X: "~@5 x ~@6 x ~@35", Y: "~@31 x ~@2 x ~@13", Z: "~@7 x ~@23 x ~@16",
AA: "~@7 x ~@22 x ~@17", AB: "~ x ~@3 x ~ x", AC: "~@23 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@9", AD: "~@5 x ~@22 x ~@19",
AE: "~@4 x ~@22 x ~@20", AF: "~ x ~@11 x ~@10", AG: "~ x ~@23 x ~@22",
AH: "x ~@5 x ~@5 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5 x ~@5 x", AI: "~@5 x ~@4 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4 x ~@5 x ~@2",
AJ: "~@3 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5 x ~@5 x ~@4 x ~@4",
AK: "~ x ~@2 x ~@2 x ~@5 x ~@5 x ~@2 x ~ x ~@2 x ~@2 x ~@17",
AL: "~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@21",
})).gain(0.36)
// drums · mid tom
const mid_tom = s("mt").struct(`<
~@9 A B C D E F G H I J K L M N O P@3 Q R S@3 T U@3 V U@2 W X Y P@3 Q R S@3 Z AA AB AC AD AE AF AG ~@2 AH ~@8 AI AJ AK
AL AM
>`.pickRestart({
A: "~@37 x ~@10", B: "~@7 x ~@8 x ~@2 x ~@4", C: "~@15 x ~@18 x ~@5 x ~@7", D: "~@16 x ~@18 x ~@5 x ~@6",
E: "~@17 x ~@18 x ~@5 x ~@5", F: "~@43 x ~@4", G: "~ x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@3",
H: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", I: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", J: "~@15 x",
K: "~@3 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@5 x ~", L: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
M: "~@4 x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@11 x", N: "~@11 x ~@2 x ~@26 x ~@2 x ~@3",
O: "~@5 x ~@6 x ~@23 x ~@2 x ~@2 x ~@2 x ~@2", P: "x ~ x ~@4 x!2 ~ x ~@5", Q: "x ~@9 x!4 ~@2", R: "x ~ x ~ x!4",
S: "x ~ x ~ x ~ x!2", T: "x!2 ~ x", U: "~ x ~ x ~ x ~ x", V: "x", W: "~ x ~ x ~ x ~@2", X: "x ~@3 x!2 ~@8 x!2",
Y: "~@2 x ~ x ~@7 x!4", Z: "~@4 x!4", AA: "~@5 x ~@11 x ~@10 x ~@11 x ~@7", AB: "~@4 x ~@10 x ~@11 x ~@10 x ~@9",
AC: "~@2 x ~@10 x ~@2 x ~@2 x ~@5 x ~@11 x ~ x ~@8", AD: "~@23 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@4 x ~",
AE: "~@10 x ~@11 x ~@10 x ~@11 x ~@2", AF: "~@8 x ~@11 x ~@10 x ~@11 x ~@4",
AG: "~@7 x ~@16 x ~@5 x ~@2 x ~@2 x ~@11", AH: "~@17 x ~@6", AI: "~@24 x ~@4 x ~@11 x ~@6",
AJ: "~@5 x ~@10 x ~@11 x ~@10 x ~@8", AK: "~@3 x ~@11 x ~@10 x ~@11 x ~@9",
AL: "~ x ~@2 x ~@2 x ~@5 x ~@10 x ~@2 x ~@20", AM: "~@11 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@21",
})).gain(0.36)
// drums · high tom
const high_tom = s("ht").struct(`<
~@24 A@3 B ~@5 C@3 ~ C@3 ~@2 A@3 B ~@4 D E F G H I J K ~@2 L ~@8 M N O P Q
>`.pickRestart({
A: "~ x ~ x", B: "~@14 x!2", C: "x!4", D: "~@42 x ~@4 x", E: "~@11 x ~@11 x ~@10 x ~@11 x ~",
F: "~@9 x ~@11 x ~@10 x ~@11 x ~@3", G: "~@8 x ~@22 x ~@2 x ~@13", H: "~@35 x ~@2 x ~@2 x ~@6",
I: "~@4 x ~@11 x ~@10 x ~@11 x ~@8", J: "~@3 x ~@10 x ~@11 x ~@10 x ~@10", K: "~ x ~@10 x ~@35", L: "~@31 x ~@16",
M: "~@24 x ~@4 x ~@5 x ~@11 x", N: "~@10 x ~@11 x ~@11 x ~@10 x ~@2", O: "~@9 x ~@10 x ~@11 x ~@10 x ~@4",
// … 16 more lines
More by Paul McCartney
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.