0:00/0:00
// Real Love — The Beatles
// 88 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 82 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(88/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 · distortion guitar · "Lead Guitars"
const distortion_guitar = note(`<
~@13 A ~ B ~@5 C D E F ~@8 G@2 H ~@5 I ~ J ~@4 K L@2 M N ~ O@2 P ~@5 Q@2 R@2 ~@3 S T U V W X Y X Z@2 AA AB ~
>`.pickRestart({
A: "~@3 [a4,b4,c#5,d#5]@2 ~@2 c#5 a4 [g#4,b4] [a4,c#5] [b4,d#5]@12 ~, ~@3 [b4,c#5,d#5] ~@8", // B7 G#m A B
B: "~@3 [a4,b4,c#5,d#5] ~ c#5 ~@2 g4 ~ [g4,b4]@12 ~@2, ~@3 [b4,d#5] ~@8, ~@7 [a4,c#5]@2 ~@15", // B7 G B A
C: "~@3 [d4,e4]@2 ~ e4@3 d4@2 ~ d4@3 c4@2 ~ c4@3 b3@2 ~, ~@6 d4 ~@17", D: "b3@11 ~",
E: "~@3 [b3,c4]@2 ~ c4@3 b3@2 ~ b3@3 a3 ~@2 a3@3 g#3@2 ~", F: "g#3@7 ~@5", G: "[~ g#3 [a3,b3] c#4 g#3@5 ~@7]/2",
H: "~ g3 [a3,b3] c#4 g3@4", I: "~@6 [d5,e5]@2 d5 c5 d5@2 c5@6 d5@6, ~@18 c#5 ~@5",
J: "~@5 b5@3 a5@2 ~ a5@7 a#5 b5@5, ~@5 a5 ~@4 g5@2 ~@12",
K: "~ f#4@4 a4@3 c5 c#5@2 e5@2 c#5@3 ~ b4@2 a4@2 b4@2 ~, f4@5 ~@19",
L: "[~ b4@2 c#5@2 ~ d5@3 d5@3 c#5@7 c#5@2 ~ c#5 ~ e5@5 f#5@4 b5@5 a5@2 ~ e5@3 f#5@2 ~@2, g#4@2 ~@4 c#5 ~@2 c#5 ~@11 f#5@2 d#5@2 ~@8 a#5 ~@6 f#5@2 ~@6]/2",
M: "e5@2 b4@2 e5@3 c#6@3 c#6@2 b5@11 ~, ~@7 c6 ~@2 b5 ~@13",
N: "d#5@2 b4@2 d#5@2 [b5,c6] ~@2 c#6@3 b5@11 ~, ~@6 c#6@3 b5 ~@14", // Cmaj7
O: "[~@3 g#3@3 b3@3 c#4@3 g#3@16 ~@20, ~@3 g3 ~@44]/2", P: "~@2 f#3 g3@3 b3@3 c#4@3 g3@12",
Q: "[~@2 g#3@2 ~ b3@2 ~@2 g#3@2 ~ [d3,e3]@2 ~ c3@2 ~ d3@2 ~ e3@20 ~@7, ~@14 d3@2 ~@5 d#3 ~@26]/2", // Dsus2
R: "[~@2 a3 c4 ~ d#4 e4@2 a4@2 ~@2 d4 ~ c4@3 a4@4 ~ g#4@16 ~@10, ~@11 e4@2 ~@4 g#4 ~@30]/2",
S: "~@11 c#5, ~@21 b4@2 ~", T: "b4@8 ~@3 c#5, ~@21 b4@2 ~", U: "b4@3 g#4@6 ~@2 c#5, ~@21 b4@2 ~", V: "b4@9 ~ b4 c#5",
W: "b4@6 e5@13 ~@3 c#5@2, ~@6 d#5 ~@14 b4@2 ~", X: "b4@19 ~@3 c#5@2, ~@21 b4@2 ~",
Y: "b4@6 g#4@11 ~@5 c#5@2, ~@21 b4@2 ~",
Z: "[b4@6 e5@12 ~@3 b4@2 ~ b4@19 ~@3 c#5@2, ~@6 d#5 ~@16 c#5@2 ~@20 b4@2 ~]/2",
AA: "b4@6 g#4@13 ~@3 c#5@2, ~@21 b4@2 ~", AB: "b4@3 g#4@8 ~",
})).s("gm_distortion_guitar").gain(0.41)
// chords · piano · "Bright Acoustic Piano"
const piano = note(`<
~@4 A B C D E F G H I B C D E F G H I J I K L M N M ~@4 I B C D E F G H I J I O P M Q M R S R T U V B C D E F G H I J
I W P M X M Y M X M Z M N M P M N AA AB
>`.pickRestart({
A: "[e3,g#3,b3]@18 ~ [g#3,b3] e3 ~@3", B: "[g#3,b3,d#4]", C: "[e3,g#3,c#4]@18 ~@2 [e3,g#3,c#4] ~@3",
D: "[d#3,g3,b3]@23 ~", E: "[e3,a3,c#4]@18 ~@2 [e3,a3,c#4] ~@3", F: "[a3,c#4] [d#3,b3], ~@12 f#3 ~@11",
G: "~@3 [g#3,b3,e4] ~@4 [b3,d4,f#4] ~@3 [a3,c#4,e4] ~@4 [a3,c#4,e4]@7, [e1,e2] [b1,b2] [a1,a2]@2", // E Bm A E B A
H: "~@3 [g#3,b3,e4] ~@4 [b3,d4,f#4] ~@3 [a1,a2,a3,c#4,e4]@12, [e1,e2] [b1,b2] ~@2", // E Bm A E B
I: "[e3,g#3,b3]@18 ~@2 [e3,g#3,b3] ~@3", J: "[e3,a3,c4]",
K: "[a1,a3,c4,e4]@3 ~@2 [a3,c4] ~@3 [a1,a3,c4,e4]@15, ~@2 [a1,e4] ~@9", // Am A5
L: "~@3 [g#3,b3,e4] ~@4 [g#3,b3,e4] ~@3 [g#3,c#4] ~@4 [g#3,c#4,e4]@7, [e1,e2] [c#1,c#2], ~@6 e4 ~@5", // E C#5 C#m E C#
M: "~@3 [a3,c#4,e4] ~@4 [a3,c#4,e4] ~@3 [b1,b2,b3,d#4,f#4]@12, [a1,a2] ~", // A B A
N: "~@3 [g#3,b3,e4] ~@4 [g#3,b3,e4] ~@3 [g#3,c#4,e4] ~@4 [g#3,c#4,e4]@3 ~ [g#3,c#4,e4] ~@2, [e1,e2] [c#1,c#2]", // E C#m E C#
O: "[a1,a3,c4,e4]@3 ~@2 [a1,a3,c4,e4]@2 ~@2 [a1,a3,c4,e4]@15", // Am
P: "~@3 [g#3,b3,e4] ~@4 [g#3,b3,e4] ~@3 [g#3,c#4,e4] ~@4 [g#3,c#4,e4]@7, [e1,e2] [c#1,c#2]", // E C#m E C#
Q: "~@3 [g#3,b3,e4] ~@4 [g#3,b3,e4] ~@3 [g#3,e4] ~@4 [g#3,c#4,e4]@3 ~ [g#3,c#4,e4] ~@2, [e1,e2] [c#1,c#2], ~@6 c#4 ~@5", // E C#m E C#
R: "[f#1,a3,c#4,f#4] [g#1,a3,c#4,f#4] [a1,a3,c#4,f#4] [b1,a3,c#4,f#4]", S: "~ [c#1,g#3,c#4,f4]@23",
T: "[b1,b3,e4,f#4]", U: "[b1,d#4,f#4]", V: "[e3,g#3,b3]@18 ~@2 [e3,g#3,b3] ~@3, [e1,e4] ~@23",
W: "[a1,a3,c4,e4]@3 ~@2 [a1,a3,c4,e4] ~@3 [a1,a3,c4,e4]@15", // Am
X: "e4 ~@2 [g#3,b3,e4] ~@4 [g#3,b3,e4] ~@3 [g#3,c#4,e4] ~@4 [g#3,c#4,e4]@3 ~ [g#3,c#4,e4] ~@2, [e1,e2] [c#1,c#2]", // E C#m E C#
Y: "g#3 ~@2 [g#3,b3,e4] ~@4 [g#3,b3,e4] ~@3 [g#3,c#4,e4] ~@4 [g#3,c#4,e4]@7, ~ [e1,e2]@11 [c#1,c#2]@12", // E C#m E C#
Z: "[e1,e2] ~@2 [g#3,b3,e4] ~@4 [g#3,b3,e4] ~@3 [g#3,c#4,e4] ~@4 [g#3,c#4,e4]@7, ~ [e1,e2]@11 [c#1,c#2]@12", // E C#m E C#
AA: "[a1,a3,c#4,e4]@12 ~@11 [b1,b3,d#4,f#4]", AB: "[e1,g#3,b3,e4] ~",
})).s("gm_piano").gain(0.31)
// chords · electric guitar clean · "Clean Guitar"
const electric_guitar_clean = note(`<
A B C B D E F G H I J K D L F M N I J K D O D P Q R S T A B A B D U F V N W X Y Z O D P AA AB AC AD AE AF AE AG AH D
AI F V N I J AJ AK AL D P Q R Q T Q R S AM Q R Q T Q R AN AO AP
>`.pickRestart({
A: "~@3 [g3,b3,e4] ~ [g3,b3,e4] ~@3 [g3,b3,e4]@2 [g3,b3,e4]@4 [g3,b3,e4]@2 [g3,b3,e4] ~@6", // Em
B: "~@3 [f#3,b3,d#4]@2 [f#3,b3,d#4] ~@3 [f#3,b3,d#4]@2 [f#3,b3,d#4]@4 [f#3,b3,d#4]@2 [f#3,b3,d#4] ~@6", // B
C: "~@3 [g3,b3,e4]@2 [g3,b3,e4] ~@3 [g3,b3,e4]@2 [g3,b3,e4]@4 [g3,b3,e4]@2 [g3,b3,e4] ~@6", // Em
D: "~@3 [g#3,b3,e4]@2 [g#3,b3,e4] ~@3 [g#3,b3,e4]@2 [g#3,b3,e4] ~@3 [g#3,b3,e4]@2 [g#3,b3,e4] ~@3 [g#3,b3,e4]@2 [g#3,b3,e4]", // E
E: "~@3 [g#3,b3,d#4]@2 [g#3,b3,d#4] ~@3 [g#3,b3,d#4]@2 [g#3,b3,d#4] [g#3,b3,d#4]@3 [g#3,b3,d#4]@2 [g#3,b3,d#4] ~@3 [g#3,b3,d#4]@2 [g#3,b3,d#4]", // G#m
F: "~@3 [g#3,c#4,e4]@2 [g#3,c#4,e4] ~@3 [g#3,c#4,e4]@2 [g#3,c#4,e4] ~@3 [g#3,c#4,e4]@2 [g#3,c#4,e4] ~@3 [g#3,c#4,e4]@2 [g#3,c#4,e4]", // C#m
G: "~@3 [g3,b3,d#4]@2 [g3,b3,d#4] ~@3 [g3,b3,d#4]@2 [g3,b3,d#4] d#4@3 [g3,b3,d#4] ~ [g3,b3,d#4] ~@3 [g3,b3,d#4]@2 [g3,b3,d#4]", // Gaug
H: "~@3 [a3,c#4,e4]@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]!2 ~", // A
I: "~@3 [a3,c#4,f#4]@2 [a3,c#4,f#4] ~@3 [a3,c#4,f#4]@2 [a3,c#4,f#4] [f#3,d#4]@3 [f#3,b3,d#4]@2 [f#3,b3,d#4] ~@3 [f#3,b3,d#4]@2 [f#3,b3,d#4]", // F#m D#m B
J: "~@3 [g#3,b3,e4] ~@2 [f#3,b3,d4] ~@2 [f#3,b3,d4]@2 [f#3,b3,d4] [a3,c#4,e4]@12", // E Bm A
K: "[g#3,b3,e4]@3 [g#3,b3,e4] ~@2 [f#3,b3,d4] ~@2 [f#3,b3,d4] ~ [f#3,b3,d4] ~@3 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4]@2 [a3,c#4,e4]", // E Bm A
L: "~@3 [g#3,b3,d#4]@2 [g#3,b3,d#4] ~@3 [g#3,b3,d#4]@2 [g#3,b3] [g#3,b3]@3 [g#3,b3,d#4]@2 [g#3,b3,d#4] ~@3 [g#3,b3,d#4]@2 [g#3,b3,d#4], ~@12 d#4 ~@11", // G#m
M: "~@3 [g3,b3,d#4]@2 [g3,b3,d#4] ~@3 [g3,b3,d#4]@2 [g3,b3,d#4] [g3,d#4]@3 [g3,b3,d#4]@2 [g3,b3,d#4] ~@3 [g3,b3,d#4]@2 [g3,b3,d#4]", // Gaug Cm Gaug
N: "~@3 [a3,c#4,e4]@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2 [a3,c#4,e4] ~@3 [a3,c#4,e4]@2 [a3,c#4,e4]", // A
O: "~@3 [a3,c4,e4]@2 [a3,c4,e4] ~@3 [a3,c4,e4]@2 [a3,c4,e4] [a3,c4,e4]@3 ~@2 [a3,c4,e4] ~@3 [a3,c4,e4]@2 [a3,c4,e4]", // Am
P: "~@3 [a3,c4,e4]@5 [a3,c4,e4] ~@3 [a3,c4,e4] ~@4 [a3,c4,e4]@6 [a3,c4,e4]", // Am
Q: "~@3 [g#3,b3,e4] ~@2 [g#3,b3,e4] ~@2 [g#3,b3,e4]@2 [g#3,b3] g#3@12, ~@12 e4 ~@11", // E G#m
R: "[a3,e4]@3 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4]@2 [a3,c#4,e4] ~@3 [f#3,b3,d#4] ~@2 [f#3,b3,d#4] ~@2 [f#3,b3,d#4]@2 [f#3,b3,d#4], c#4 ~@23", // A5 A B
S: "~@3 [g#3,b3,e4] ~@2 [g#3,b3,e4] ~@2 [g#3,b3,e4]@2 ~ g#3@12, ~@11 [g#3,b3]@2 ~@11, ~@12 e4 ~@11", // E G#m
T: "[a3,e4]@3 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [f#3,b3,d#4] ~@2 [f#3,b3,d#4] ~@2 [f#3,b3,d#4] ~@2 [f#3,b3,d#4]@2 [f#3,b3,d#4], c#4 ~@23", // A5 A B
U: "~@3 [g#3,b3,d#4]@2 [g#3,b3,d#4] ~@3 [g#3,b3,d#4]@2 [g#3,b3,d#4] [g#3,b3,d#4]@3 ~@2 [g#3,b3,d#4] ~@3 [g#3,b3,d#4]@2 [g#3,b3,d#4]", // G#m
V: "~@3 [g3,b3,d#4]@2 [g3,b3,d#4] ~@3 [g3,b3,d#4]@2 [g3,b3,d#4] [g3,b3,d#4]@3 ~@2 [g3,b3,d#4] ~@3 [g3,b3,d#4] ~ [g3,b3,d#4]", // Gaug
W: "~@3 [a3,c#4,f#4]@2 [a3,c#4,f#4] ~@3 [a3,c#4,f#4]@2 [a3,c#4,f#4] ~@3 [f#3,b3,d#4] ~ [f#3,b3,d#4] ~@3 [f#3,b3,d#4]@2 [f#3,b3,d#4]", // F#m B
X: "~@3 [g#3,b3,e4] ~@2 [f#3,b3,d4] ~@2 [f#3,b3,d4] ~ [f#3,b3,d4] [a3,c#4,e4]@12", // E Bm A
Y: "[g#3,b3,e4]@2 ~ [g#3,b3,e4] ~@2 [f#3,b3,d4] ~@2 [f#3,b3,d4]@2 [f#3,b3,d4] ~@3 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4]@2 [a3,c#4,e4]", // E Bm A
Z: "~@3 [g#3,b3,e4] ~ [g#3,b3,e4] ~@3 [g#3,b3,e4]@2 [g#3,b3,e4] ~@3 [g#3,b3,e4]@2 [g#3,b3,e4] ~@3 [g#3,b3,e4]@2 [g#3,b3,e4]", // E
AA: "~@3 [g#3,b3,e4]@5 [g#3,b3,e4] ~@3 [g#3,c#4,e4] ~@4 [g#3,c#4,e4]@6 [g#3,c#4,e4]", // E C#m
AB: "~@3 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4]@2 [a3,c#4,e4] [f#3,d#4]@12", // A D#m
AC: "[g#3,e4]@3 [g#3,b3,e4] ~@2 [g#3,b3,e4] ~@2 [g#3,b3,e4]@2 [g#3,b3,e4] ~@3 [g#3,c#4,e4] ~@2 [g#3,c#4,e4] ~@2 [g#3,c#4,e4]@2 [g#3,c#4,e4], b3 ~@23", // C#m E C#m
AD: "~@3 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4]@2 [a3,c#4,e4] [f#3,b3,d#4]@12", // A B
AE: "~@2 [a3,c#4,f#4] ~@2 [a3,c#4,f#4]!2 ~@2 [a3,c#4,f#4]@2 [a3,c#4,f#4] ~@2 [a3,c#4,f#4]!2 ~@4 [a3,c#4,f#4] ~@3", // F#m
AF: "~@2 [g#3,c#4,f4] ~@2 [g#3,c#4,f4]!2 ~@2 [g#3,c#4,f4]@2 [g#3,c#4,f4] ~@2 [g#3,c#4,f4]!2 ~@2 [g#3,c#4,f4]@2 [g#3,c#4,f4] ~@3", // C#
AG: "~@2 [f#3,b3,e4] ~@2 [f#3,b3,e4]!2 ~@2 [f#3,b3,e4]@2 [f#3,b3,e4] ~@2 [f#3,b3,e4]!2 ~@2 [f#3,b3,e4]@2 [f#3,b3,e4] ~@3", // Esus2
AH: "~@2 [f#3,b3,d#4] ~@2 [f#3,b3,d#4]!2 ~@2 [f#3,b3,d#4]@2 [f#3,b3,d#4] ~@2 [f#3,b3,d#4]!2 ~@2 [f#3,b3,d#4]@2 [f#3,b3,d#4] ~@3", // B
AI: "~@3 [g#3,b3,d#4]@2 [g#3,b3,d#4] ~@3 [g#3,b3,d#4]@2 [g#3,b3,d#4] [g#3,b3,d#4]@3 g#3@2 [g#3,b3,d#4] ~@3 [g#3,b3,d#4]@2 [g#3,b3,d#4]", // G#m
AJ: "[g#3,b3,e4]@3 [g#3,b3,e4] ~@2 [f#3,b3,d4] ~@2 [f#3,b3,d4]@2 [f#3,b3,d4] ~@3 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4]@2 [a3,c#4,e4]", // E Bm A
AK: "~@3 [g#3,b3,e4]@2 [g#3,b3,e4] ~@3 [g#3,b3,e4]@2 [g#3,b3,e4] ~@2 [g#3,b3,e4]@2 ~ [g#3,b3,e4] ~@3 [g#3,b3,e4]@2 [g#3,b3,e4]", // E
AL: "~@3 [a3,c4,e4]@2 [a3,c4,e4] ~@3 [a3,c4,e4]@2 [a3,c4,e4] ~@3 [a3,c4,e4] ~ [a3,c4,e4] ~@3 [a3,c4,e4]@2 [a3,c4,e4]", // Am
AM: "[a3,c#4,e4]@2 ~ [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [f#3,b3,d#4] ~@2 [f#3,b3,d#4] ~@2 [f#3,b3,d#4] ~@2 [f#3,b3,d#4]@2 [f#3,b3,d#4]", // A B
AN: "~@3 [g#3,b3,e4] ~@2 [g#3,b3,e4] ~@2 [g#3,b3,e4]@2 ~ [g#3,c#4]@12, ~@11 [g#3,b3]@2 ~@11, ~@12 e4 ~@11", // E C#5 G#m
AO: "~@3 [a3,c#4,e4] ~ [a3,c#4,e4] ~@3 [a3,c#4,e4]@2 [a3,c#4,e4] ~@3 [f#3,b3,d#4]@2 [f#3,b3,d#4] ~@3 [f#3,b3,d#4]@2 [f#3,b3,d#4]", // A B
AP: "[g#3,b3,e4] ~", // E
})).s("gm_electric_guitar_clean").gain(0.31)
// bass · electric bass finger · "Finger Bass"
const bass = note(`<
~@4 A B C D E F G H A I J K L M N H O P A Q R S T U ~@4 A V C D P W N H A P A X Y Z AA U AB AC AD AE AF A B C D AG F N
H D AH D X Y AI AA AJ AK AL AA AJ Y AL AM AJ Y AL AA AN AO
>`.pickRestart({
A: "e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~",
B: "d#2@2 ~ d#2@2 ~ d#2 ~@2 d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2@2 ~",
C: "c#2@2 ~ c#2@2 ~ c#2@2 ~ c#2@2 ~ c#2@2 ~ c#2@2 ~ c#2@2 ~ c#2@2 ~",
D: "b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~",
E: "a1@2 ~ a1@2 ~ a1 ~@2 a1@2 ~ a1@2 ~ a1 ~@2 a1 ~@2 a1@2 ~",
F: "f#1@2 ~ f#1@2 ~ f#1 ~@2 f#1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~",
G: "e1@2 g#3 c#2 ~ e1 f#1@2 ~ d2@2 f#3 a1@2 c#3 f#1 ~ a1 e1@2 a1 f#1@2 a1",
H: "e1@3 c#3 ~ e1 f#1@3 d2@2 b1 a1@2 [a3,c#4] f#1 ~ a1 e1@2 a1 f#1@2 c#3", // A
I: "d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2 ~@2 d#2@2 ~ d#2@2 ~",
J: "c#2@2 ~ c#2@2 ~ c#2@2 ~ c#2@2 ~ c#2@2 ~ c#2@2 ~ c#2@2 ~ c#2 ~@2",
K: "b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1 ~@2 b1@2 ~",
L: "a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1 ~@2 a1@2 ~ a1@2 ~",
M: "f#1@2 ~ f#1@2 ~ f#1@2 ~ f#1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~",
N: "e1@2 g#3 c#2 ~ e1 f#1@3 d2@2 f#3 a1@2 c#3 f#1 ~ a1 e1@2 a1 f#1@2 a1",
O: "e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1 ~@2 e1@2 ~ e1@2 ~",
P: "a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~", Q: "a1@5 a1 ~@3 a1@5 ~ c2@2 e1 [a2,c3]@2 c2@3 e1",
R: "e1@2 g#3 c#2 ~ e1 b1@3 c#2@2 b3 c#2@2 e3 e1 c#2 ~ g#1@2 c#2 e1@2 c#2",
S: "a1@3 f#2 ~ a1 e1@3 f#1@2 a1 b1@2 [b3,d#4] g#1 ~ b1 f#1 ~ b1 g#1@2 d#3", // B
T: "e1@2 e3 c#2 ~ e1 b1@3 c#2 g#2 b1 c#2@2 e1@3 ~ g#1@2 c#2 e1@2 g#3",
U: "a1@2 a2 f#1 ~ a1 e1@3 f#1@2 c#2 ~@2 b1 g#1 ~ b1 f#1@2 b1 g#1@2 [d#3,b3]", // G#m
V: "d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2@2 ~",
W: "f#1 ~@2 f#1@2 ~ f#1@2 ~ f#1 ~@2 b1@2 ~ b1@2 ~ b1@2 ~ b1 ~@2", X: "a1@5 a1 ~@3 a1@6 c2@2 e1 [a2,c3]@2 c2@3 e1",
Y: "e1@2 g#3 c#2 ~ e1 b1@3 c#2@2 b3 c#2@2 e3 e1 ~ c#2 g#1@2 c#2 e1@2 c#2",
Z: "a1@2 ~ f#2 ~ a1 e1@3 f#1@2 a1 b1@2 [b3,d#4] g#1 ~ b1 f#1@2 b1 g#1@2 d#3", // B
AA: "e1@2 e3 c#2 ~ e1 b1@3 c#2 g#2 b1 c#2@2 e1@4 g#1@2 c#2 e1@2 g#3",
AB: "f#1@2 [f#4,a4] a1 ~ f#1 g#2@2 g#1 g#2@2 g#3 a2 a1@2 a1@2 ~ b1@2 ~ b1@2 ~", // F#m
AC: "c#2@2 [c#4,f4] a#1 ~ c#2 g#1@2 c#2 a#1@2 f3 c#2@2 ~ c#2@2 ~ c#2@2 ~ c#2@2 ~", // C#
AD: "f#1@2 [f#4,a4] a1 ~ f#1 g#2@2 g#1 g#2@2 g#3 a1@2 ~ a1@2 ~ b1@2 ~ b1@2 ~", // F#m
AE: "b1@2 [b3,e4] f#1 ~ b1 f#1@2 b1 f#1 ~ e3 b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~", // E5
AF: "b1@2 [b3,d#4] g#1 ~ b1 f#1@2 b1 g#1@2 d#3 b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~", // B
AG: "a1 ~@2 a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~",
AH: "c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~",
AI: "a1@3 f#2 ~ a1 e1@3 f#1 ~ a1 b1@2 [b3,d#4] g#1 ~ b1 f#1@2 b1 g#1@2 d#3", // B
AJ: "a1@2 a2 f#1 ~ a1 e1@3 f#1@2 c#2 b1@2 b1 g#1 ~ b1 f#1@2 b1 g#1@2 [d#3,b3]", // G#m
AK: "e1@2 g#3 c#2 ~ e1 b1@2 ~ c#2@2 b3 c#2@2 e3 e1 ~ c#2 g#1@2 c#2 e1@2 c#2",
AL: "a1@3 f#2 ~ a1 e1@3 f#1@2 a1 b1@2 [b3,d#4] g#1 ~ b1 f#1@2 b1 g#1@2 d#3", // B
AM: "e1@2 e3 c#2 ~ e1 b1@3 c#2 g#2 b1 c#2 ~ e1@4 g#1@2 c#2 e1@2 g#3, ~@13 c#2@2 ~@9",
AN: "a1@2 f#2 f#1@2 a1 e1@2 c#3 f#1@2 a1 b1@2 [b3,d#4] g#1 ~ b1 f#1@2 b1 g#1@2 b1", AO: "e1@13 ~@11",
})).s("gm_electric_bass_finger").gain(0.41)
// drums · kick
const kick = s("bd").struct(`<
~@4 A@6 B C A@6 B C A@4 B C@2 D ~@4 A@6 B C E A@3 B C@2 D F@5 A@6 B C A@4 B C@2 D B C@2 D B C@2 D B C@2 G ~
>`.pickRestart({
A: "x ~@4 x ~@3 x ~@5 x ~@4 x ~@3", B: "x ~@4 x ~@3 x ~@2 x ~@4 x ~@2 x ~@3", C: "x ~@4 x ~@2 x!2 ~@5 x ~@4 x ~@3",
D: "x ~@2 x ~@5 x ~@5 x ~@4 x ~@3", E: "x ~@3 x ~@4 x ~@5 x ~@4 x ~@3", F: "x ~@4 x ~@3 x ~@2 x ~@4 x ~@6",
G: "x ~@4 x ~@3 x ~@2 x ~@4 x ~@5 x",
})).gain(0.41)
// drums · snare
const snare = s("sd").struct(`<
A@4 B@4 C B D B@7 D B@4 E D B D B A@4 B@6 D B@4 E D B D B F@4 G B@6 D B@4 H D B D B D B D B D B D B D B D I ~
>`.pickRestart({
A: "~@6 x ~@7 x ~@3 x ~@4 x", B: "~@6 x ~@11 x ~@4 x", C: "~@3 x ~@5 x ~ x", D: "~ x ~ x", E: "~@6 x ~@16 x",
F: "~@6 x ~@8 x ~@2 x ~ x ~@2 x", G: "~@6 x ~@8 x ~@2 x ~ x ~ x ~", H: "~@3 x ~@7 x",
I: "~@6 x ~@8 x ~@2 x ~ x!2 ~ x",
})).gain(0.36)
// drums · hihat
const hihat = s("hh").struct(`<
A@5 B@3 A B C D A B@3 A B C D A B@3 C D E D A@5 B@3 A B C D A B@3 C D E D@6 A B@3 A B C D A B@3 C D E D C D E D C D E
D F D E G ~
>`.pickRestart({
A: "x ~@2 x ~@2 x ~@2 x ~ x!2 ~ x ~@3 x ~@2 x ~@2", B: "x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@3 x ~@2 x ~@2",
C: "x ~@4 x!2 ~@2 x ~@2 x ~ x ~@3 x ~@2 x ~@2", D: "~@3 x ~@2 x ~@2 x ~@2 x ~ x ~@3 x ~@2 x ~@2",
E: "~@3 x ~ x!2 ~@2 x ~@2 x ~ x ~@3 x ~@2 x ~@2", F: "x ~@4 x!2 ~@2 x ~@3 x!2 ~@3 x ~@2 x ~@2",
G: "~@3 x ~@2 x ~@2 x ~@2 x ~ x ~@3 x ~@4 x",
})).gain(0.36)
// drums · open hat
const open_hat = s("oh").struct(`<
A@6 B A@4 C A@2 B A@4 C A@2 B D A C E C A@6 B A@4 C A@2 B D A C E C F@5 A@2 B A@4 C A@2 B G A C E C A C E C A C E C A
C E H ~
>`.pickRestart({
A: "~@2 x ~@5 x ~@6 x ~@8", B: "~@2 x ~@5 x ~@2 x ~@3 x ~@8", C: "x ~@7 x ~@6 x ~@8", D: "~@2 x ~@5 x ~@6 x ~@7 x",
E: "x ~ x ~@5 x ~@6 x ~@8", F: "x ~@7 x ~@6 x ~@4 x ~@3", G: "~@2 x ~@5 x ~@6 x ~@6 x ~",
H: "x ~@7 x ~@6 x ~@4 x!2 ~@2",
})).gain(0.36)
// drums · crash
const crash = s("cr").struct(`<
~@10 A ~@7 A ~@4 B A ~@13 A ~@4 B A ~@3 B@5 ~@6 A ~@4 B A ~@3 A ~@3 A ~@3 A ~@2 C ~
>`.pickRestart({
A: "x", B: "~ x ~@2", C: "~@6 x ~@16 x",
})).gain(0.41)
// … 54 more lines
More by The Beatles
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.