0:00/0:00
// Norwegian Wood — The Beatles
// 163 bpm, 6/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 66 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(163/6)
// 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 · harpsichord
const harpsichord = note("<~ A B C@2 D E F@3 G@3 H@5 ~@6 I J@4 K@4 L@8 ~@8 M N O@2 P@8 Q@5>".pickRestart({
A: "[e3,b3,e4,b4]@16 ~@11 [b3,e4,a4]@5, g#4@31 ~, ~ e3, ~@16 [b3,e4]@5 b4@10 ~, ~@16 b4@3 c#5@13", // E5 Esus4 E5
B: "[e3,b3,e4]@16 ~@11 g#4@5, g#3, g#4@11 a4@5, ~ [e3,f#4], ~@17 [b3,e4]@15", // E5 Esus2 E5
C: "[~ b3@16 ~@10 c#4@6 b3@8 b3 ~@2 e4@5 b3@5 b3@5 [b3,e4]@5, e3@16 ~ [e3,b3,d4]@16 e3@31, ~ e4@32 g#3@10 g#3@16 ~@5, ~@22 a4@12 ~@8 b3@7 e4@10 ~@5]/2", // E5 E7
D: "~@11 b3@4 ~@2 e4 ~@9 [e4,a4]@5, e3@15 ~@2 [e3,b3]@12 ~@3, ~ [e4,b4]@15 ~ b4@5 b4@10, ~ b3@10 ~@9 c#5@12, ~@9 g#3@7 ~@16", // A5 E5
E: "~@11 b3@5 ~ e4@5 e4@5 [e4,g#4]@5, e4@16 ~ [b3,f#4]@15, ~ g#4@21 a4@10, ~ b3@10 ~@5 e3@16, ~@9 g#3@23", // E B5
F: "[~@12 e3@4 ~@12 e3@5 ~@10 g#3@6 ~@11 g#3@5 ~@9 b3@2 b3@5 b4@5 ~@6 [e4,a4]@4, e3@11 b3@5 e3@11 c#4@6 [e3,b3]@16 [e3,b3,e4]@16 [e3,e4]@16 [e3,b3]@15, ~ [b3,e4]@10 e4@22 ~@32 g#4@31, ~@9 g#3@13 [g#3,a4]@12 ~@32 b4@15 e4@5 b4@10, ~@17 [b3,d4]@17 ~@31 b3@9 g#3@22]/3", // A5 E5 E E5 Amaj7 Bm
G: "[~@12 b3@5 ~@11 g#4@5 ~@11 b3@5 ~@11 c#4@5 ~@9 g#3@2 g#3@5 ~@10 b3@5, ~ e4@16 [b3,f#4]@16 ~@8 g#3@9 e3@5 [g#3,a4]@10 g#3@9 ~@22, ~ [e3,b3,g#4]@10 g#4@16 ~@17 e4@22 ~@15 e4@15, ~@9 g#3@23 ~ [e3,b3,e4]@11 ~@6 b3@15 b3@16 b3@10 ~@5, ~@22 a4@11 ~@16 d4@17 e3@16 e3@14]/3", // B5 Amaj7 E E5
H: "[~@12 b3@5 ~@12 b3@5 b3@8 g#3@2 b3@6 ~@10 g#4@5 ~@11 b3@5 ~@6 g#3@5 c#4@5 ~@9 g#3@2 [g#3,b3]@5 ~ [e3,b3,g#4]@18 ~@28, ~ [e3,e4,b4]@16 ~ e3@16 [e3,e4]@16 [e3,b3,e4,f#4]@16 [b3,e4]@10 e4@21 g#3@9 ~@7 [g#3,e4]@18 ~@29, ~@2 b3@10 ~@5 b4@3 c#5@8 [e4,a4]@5 ~@22 a4@11 ~@16 b3@15 b3@11 ~@52, ~@10 g#3@23 ~@11 g#3@16 ~@5 e3@16 [e3,d4]@17 e3@16 ~@46, ~@18 [b3,e4]@5 b4@10 ~ g#4@26 ~@13 g#3@13 ~ a4@11 ~@62]/5", // G#m E E5 E Esus2 E5 C#m A5 …
I: "~@29 f#4@3",
J: "[~@3 g#4 ~@10 b3@5 ~@10 [e4,a4]@5 ~@22 e4@5 ~ e4@5 ~@10 b3@5 ~@11 c#4@6 g#3@8 ~@2 b3@6 [e3,e4]@13, ~@2 [e3,e4]@17 [e3,b3]@16 e3@32 e3@16 [e3,b3,d4]@17 ~@15 b3@10 ~@3, ~@3 b4@16 e4@10 ~@5 e4@16 [b3,f#4]@17 [b3,e4]@10 e4@22 [e3,b3]@11 ~@18, ~@11 g#3@8 b4@5 b4@11 g#4@8 b3@2 g#4@11 a4@12 ~@60, ~@22 c#5@13 b3@5 g#3@21 g#4@6 ~@8 g#3@13 [g#3,a4]@12 ~@7 g#3@21]/4", // A5 E E5 E7 B5 E5 Amaj7
K: "[~@13 b3@6 ~@10 [e4,a4]@6 [e3,b3]@9 g#3@2 ~@11 e4@5 [e4,g#4]@5 [e3,b3]@8 ~@3 b3@5 d4@5 ~@6 c#4@5 ~@21 b3@8, ~@3 [e4,b4]@16 e4@5 b4@11 g#4@11 g#4@16 ~@5 e4@10 e4@22 ~@29, ~@3 b3@10 ~@6 b3@16 e4@16 e4@5 ~ a4@11 ~@21 [d4,a4]@11 ~@9 b3@11 ~@8, ~@11 g#3@24 ~@9 b3@7 [b3,f#4]@17 ~@7 g#3@13 g#3@11 ~@8 g#3@8 [g#3,g#4]@13, ~@19 b4@3 c#5@14 ~@16 e3@15 ~@9 [e3,b3]@2 ~@5 [e3,b3]@16 [e3,b3]@10 ~@19]/4", // A5 E5 E E5 D5 B5 G# E5
L: "[~@14 b3@5 ~@11 b3@5 ~@11 b3@5 ~@5 [g#3,e4]@5 ~ [e4,g#4]@5 ~@11 [e3,b3]@5 d4@5 ~@6 c#4@5 ~@11 b3@3 ~@30 e3@5 ~@10 [e4,a4]@5 ~@9 b3@2 b3@5 ~@6 e4@5 ~ g#3@4 ~@11 e3@5 ~@6 g#3@5 ~ e3@4 ~@11 b3@3 ~@3 g#4@3 ~@2 b3@5 [b3,g#4]@2, ~@3 [e3,e4,b4]@16 e3@10 [e4,a4]@6 e4@14 ~@7 a4@11 ~@49 g#4@16 b3@10 b3@6 b4@5 b4@10 ~ g#4@10 g#4@11 a4@10 ~@16 d4@5 ~ [d4,a4]@11 ~@28, ~@3 b3@10 ~@6 [b3,e4]@5 b4@11 [b3,g#4]@10 g#4@16 ~@16 e4@6 ~@6 d4@11 b3@10 ~@3 [b3,e4]@12 ~@7 [e4,b4]@16 e4@10 ~@5 b3@9 g#3@19 ~@5 [e3,b3,e4]@10 [b3,e4]@6 b3@15 b3@10 ~@19, ~@11 g#3@24 e3@16 [e3,b3,f#4]@16 [e3,b3,e4]@11 ~@5 [e3,b3]@16 e3@11 e3@5 ~ e3@15 e3@11 ~@6 [e3,g#3,b3]@15 [e3,e4]@16 e4 b3@10 [b3,e4,g#4]@5 ~@9 g#3@9 ~@9 [g#3,c#4]@6 ~@8 g#3@7 g#3@2 ~@4 [g#3,e4]@7, ~@19 b4@3 c#5@13 ~@8 g#3@13 ~@5 g#3@14 g#3@9 ~@4 [g#3,a4]@11 g#3@9 g#3@7 g#3@10 ~ [g#3,b3,e4]@7 ~@7 g#3@8 ~@3 c#5@12 ~@16 f#4@15 ~@17 e3@11 ~@6 e3@17 ~@11]/8", // C#m E E5 A5 E E5 A5 D5 …
M: "~@14 b3@5 ~@10 [e4,a4]@3, ~@3 [e3,e4,b4]@17 b3@12, ~@3 b3@11 ~@5 b4@3 c#5@10, ~@11 g#3@8 e3@13, ~@20 e4@5 b4@7", // A5 E5
N: "~@3 b3@8 b3@2 b3@5 ~@11 g#4@3, ~@2 e4@21 e4 a4@8, ~ e3@8 [b3,f#4]@7, ~@2 g#3@9 g#3@21, ~@3 g#4@26 ~@3", // B5
O: "[~@13 [b3,e4]@5 ~@11 c#4@5 ~@11 b3@5 b3@10 ~ b3@3, ~@2 [b3,e4]@11 ~@5 [e3,d4]@17 e3@10 e3@19, ~@11 g#3@8 b3@15 b3@11 ~@19, ~@24 [g#3,a4]@11 ~@8 g#3@7 [g#3,e4]@14]/2", // E5 E7 Amaj7 C#m
P: "[~@14 b3@5 b4@6 ~@4 [e4,a4]@6 b3@8 ~ b3@2 b3@5 e4@5 ~@6 g#4@5 ~@11 b3@5 d4@5 g#3@5 ~ c#4@5 ~@16 g#3@5 [g#3,b3]@5 ~ b3@5 ~@11 b3@5 ~@11 [e4,a4]@5 b3@8 ~ b3@2 [e3,b3]@5 ~ e4@4 e4@5 ~ [g#3,e4,g#4]@5 ~@15 e4@2 d4@5 g#3@5 [g#3,c#4]@5 b3@9 ~@7 g#3@5 g#3@6 [g#3,b3,e4]@2, ~@3 [e4,b4]@16 [e3,b3]@16 [e3,e4]@16 b3@15 ~@9 g#3@13 ~@5 g#3@5 ~ b3@11 b3@10 ~@6 g#3@6 b3@8 g#3@8 e4@2 c#5@3 b4@10 ~@8 g#3@19 ~@14 g#3@9 ~@23 g#3@7 g#4@13, ~@11 g#3@25 ~@7 g#3@23 ~ e3@16 [e3,b3]@16 e3@32 [e3,e4]@16 b4 b3@15 e4@16 ~@5 a4@11 ~@22 a4@11 ~@13 e4@13 ~@2, ~@19 e4@10 ~@6 g#4@21 [e4,a4]@11 e4@11 e4@22 ~@13 e4@7 e4@11 ~ b4@15 e3@16 e3@11 ~@5 [e3,b3,f#4]@16 [e3,b3]@11 [e3,b3]@6 [e3,b3]@15 e3@29, ~@25 b4@11 ~@15 f#4@17 ~@20 [d4,a4]@11 ~@9 g#3@7 g#4@10 g#4@6 g#4@32 g#4@26 ~@6 e4@14 ~@29 b3@16 ~@2]/8", // A5 G#m A5 E5 C#m C#5 E E5 …
Q: "[~@14 b3@6 b4@5 ~@5 e4@5 b3@8 b3@2 ~ b3@5 ~@10 [g#3,g#4]@5 ~@8 g#3@2 ~@7 e3 ~@4 g#3@5 ~ e3@5 [e3,b3,e4]@31 ~@30, ~@3 e4@27 ~@15 e4@7 ~@4 [e4,a4]@11 ~@15 d4@16 ~@62, ~@3 e3@17 [e3,b3]@15 [e3,e4,g#4]@10 ~@6 [e3,b3,f#4]@16 ~@26 [g#3,c#4]@5 ~ g#3@7 ~@54, ~@3 b4@9 g#3@22 ~@9 g#3@18 ~@5 [b3,e4]@11 b3@6 b3@16 ~@61, ~@4 b3@9 b4@7 ~@9 a4@6 ~@43 a4@6 ~@4 a4@11 ~@61]/5", // G# E5 A5 E5 E Esus2 C#5 E5
})).s("gm_harpsichord").gain(0.1).pan(0.3)
// chords · harpsichord · soft notes
const harpsichord_soft = note(`<
~ A ~ B C D E F G H I J ~@2 K L ~@9 M@2 N O@4 P@2 Q ~@3 R@2 S ~@8 T U@2 V W@3 X ~ X Y@2 Z@2 AA ~@2
>`.pickRestart({
A: "g#3 ~@31", B: "g#3", C: "~@27 g#3@5", D: "~ g#4@15 ~@13 e3@3, ~@7 b3", E: "e3@11 e3@5 ~@16, g#3@9 ~@23",
F: "g#3@9 ~@23", G: "~ g#3@10 ~@6 g#3@11 ~@4", H: "~@5 c#5@3", I: "~@17 e4@5 [e3,e4]@10, ~@6 e3@5 ~@5",
J: "~ g#3@8 ~@3 e3@6 ~@11 e3@3", K: "~@2 g#3@8 b3@2 ~@17 g#3@3", L: "~ g#3@8 ~@19 g#3@4",
M: "[~@19 g#3@15 g#3@5 ~@25]/2", N: "~@2 g#3@9 ~@21",
O: "[~@14 e3@5 ~@11 b3@5 e3@17 e3@15 g#3@8 ~@3 g#3@22 ~@10 e3@5 ~@13, ~@76 e3@7 ~@45]/4",
P: "[~@3 g#3@8 ~@6 e4@2 e4@16 ~@29, ~@13 e3@22 ~@29]/2", Q: "~@17 e4@7 ~@8", R: "[~@3 g#3@9 ~@7 e3@16 g#3@9 ~@20]/2",
S: "~@3 g#3@8 ~@6 [b3,e4]@3 ~@12", T: "~@3 g#4 ~@16 g#3@12", U: "[~@29 e4@4 ~ e3@16 ~@14, ~@19 e3@15 g#3@9 ~@21]/2",
V: "~ g#3 ~@14", W: "[~@3 [e3,b3]@11 e3@5 ~@3 c#5@14 ~@15 e3@15 ~ b3@11 ~@18, ~@22 g#3@3 ~@7]/3", X: "~@3 g#3 ~@28",
Y: "[~@25 d4@11 ~@28]/2", Z: "[~@25 b4@10 g#3@8 ~@2 e3@5 ~@2 e4@4 ~@8, ~@22 c#5@13 ~@10 g#4@16 ~@3]/2",
AA: "~@13 [g#3,e4]@7 ~@12, ~@2 e3@17 ~@13", // C#m
})).s("gm_harpsichord").gain(0.05).pan(0.3)
// chords · piano · "harpsichord"
const piano = note("<~@17 A B@8 ~@15 C@4 D@5 ~@16>".pickRestart({
A: "~@2 [g4,b4] ~@13 [g4,b4]@2 [e4,g4,b4]@5 [e4,a4] ~@5 g3@3, ~@2 b3@2 ~@3 b3@6 [g3,b3]@10 b3@2 ~@3 b3@4, ~@4 e4@5 ~@7, ~ [g4,b4] ~@2", // G Em A5 G
B: "[a4@2 e4@5 b3@5 ~@6 [g3,b3]@5 b3@5 ~ [b3,g4]@5 a3@9 ~@8 e4@10 [a3,e4]@5 [a3,a4]@9 [a3,a4]@2 a4@3 ~@2 [c#4,e4]@5 ~ e4@5 [c#4,e4]@5 [g3,b3]@5 ~@9 [e4,g4,b4]@2 ~ e4@4 ~@9 [e4,a4]@2 ~ e4@4 ~@12 g3@5 b3@5 [b3,g4]@5 ~ a3 ~@15 [a3,a4]@5 [c#4,a4]@5 [f#3,c#4,a4,f#5]@5 b3@8 ~@8 [b3,d#4]@5 ~ [b3,d#4,f#4,b4]@12 ~@28, ~@2 a4@21 ~@21 a4@4 a4@4 ~@28 a4@7 ~@11 [g4,b4] ~@15 [g4,b4]@6 a4@8 ~@2 a4@5 ~ g4@10 g4@11 ~@6 a4@16 ~@15 b4@14 b4@8 ~@40, ~@7 g4@11 g4@10 ~@15 a3@9 ~@25 a3@10 [a3,a4]@12 ~@5 g3@15 ~@6 [g3,b3]@10 [g3,b3]@6 [g3,b3]@6 ~@15 [f#3,c#4]@11 f#3@16 ~@67, ~@7 e4@9 e4@7 [e4,a4]@11 [c#4,a4]@11 c#4@5 c#4@10 ~@6 [c#4,e4]@11 [c#4,e4]@5 ~@16 e4@2 ~@4 [e4,g4,b4]@8 ~@7 e4@9 ~@7 e4@9 e4@7 ~ [e4,a4]@11 ~@10 c#4@6 ~@5 a3@11 ~@8 [b3,d#4]@7 d#5@17 ~@29, ~@12 b3@6 ~@16 e3@16 e3@16 e3@16 e3@16 ~@11 b3@10 b3@6 ~@21 b3@5 ~@20 a3@5 f#4@18 ~@11 f#4@11 ~@40]/8", // G Em A5 A C#m G Em A5 …
C: "[~@3 [e4,g4,b4] ~@5 g3@5 ~@3 [e4,g4,b4]@2 ~@5 [g3,b3,e4]@5 ~@4 [e4,a4]@2 [e4,g4]@5 b3@5 ~@6 [g3,b3]@5 [b3,e4]@5 e4 [g3,b3,e4,g4]@5 a3@9 a3@5 ~@2 [e3,c#4,e4]@10 ~ [c#4,e4]@5 [a3,a4]@14 ~@2 e4@5 ~ [e4,a4]@5 e4@2, ~@3 b3@2 ~@3 g4@9 ~@6 f#4@7 b3@5 [b3,a4]@2 ~@8 g3@6 ~@10 b4@6 ~@15 a3@2 ~@15 [c#4,e4]@16 [e3,c#4]@10 ~@3, ~@8 b3@6 [g3,b3]@10 a4@8 f#4@3 ~@5 g4@11 g4@11 ~@5 [e3,c#4,e4]@16 ~@10 e3@6 ~@14 [a3,a4]@7 a3@5 ~@3, ~@9 [e4,b4]@8 ~@2 [e4,g4,b4]@6 ~@4 e4@4 ~@7 e4@9 e4@7 a4@11 a4@14 a4@18 ~@29]/4", // Em A5 Em G E5 Em C#m A …
D: "[~@3 e4 [g4,b4] ~@3 e4 ~@8 [e4,g4]@2 [e4,g4,b4]@5 [b3,e4]@5 e4@3 ~ a4@2 ~ g4@4 ~@9 e4@2 [e3,g3,b3,e4]@5 ~ b3@4 ~ [b3,e4,g4]@5 a4 ~@13 f#4@2 ~ f#4@4 ~@6 [c#4,f#4,a4]@5 ~@21 f#4@5 ~ f#4@6 ~@28, ~@3 b3@4 ~@2 e4@8 ~@15 e4@3 ~@5 e4@9 ~@2 g4@10 b4@6 ~ a4@15 a4@11 ~@5 b4@11 d#4@5 b4@5 d#4@11 ~@29, ~@3 g3@2 ~@3 g3@16 ~@5 g3@10 ~ [g3,g4]@11 ~@5 e4@6 ~@5 f#4@11 c#4@11 ~@4 f#5@6 b3@8 ~ b3@5 f#4@3 b3@15 ~@29, ~@4 e4@3 ~ [g4,b4]@8 ~@8 [f#4,a4]@8 f#4@6 ~@7 b3@6 ~@5 a4@11 [f#3,c#4]@11 f#3@21 d#4@11 f#3@22 ~@28, ~@14 b3@10 ~@5 b3@6 [e3,b3,e4,a4]@5 ~@17 g3@11 ~@7 a3@13 [a3,c#5]@11 f#4 d#5@32 ~@28]/5", // G Em E5 Em F#m G F#m F#5 …
})).s("gm_piano").gain(0.07).pan(0.3)
// chords · piano · "harpsichord" · soft notes
const piano_soft = note("<~@17 A@4 B@3 C ~@16 D@3 ~ E@3 F ~@17>".pickRestart({
A: "[~@2 [e3,g3]@2 ~@4 [e3,g3]@5 e3@10 [e3,g3]@2 ~@7 e4@2 ~ b3@4 g3@11 ~@6 g3@11 ~@26 c#4@5 ~@22 c#4@5 ~@3, ~@29 e3@5 e3@16 e3@16 ~@62, ~@34 g3@5 ~@89]/4", // Em
B: "[~@7 b3@6 e3@10 [e3,g3]@6 e3@9 e3@7 e3@6 ~@5 g3@11 ~@16 c#4@5 ~@8, ~@2 e3@11 ~@38 e3@16 ~@29]/3", // Em
C: "~ f#4@5 ~@10",
D: "[~@4 g3 ~@9 e3@10 ~@6 g3@5 e3 ~@4 g3@5 ~ b3@5 ~@5 g3@6 ~@34, ~@24 e3@11 ~@5 e3@11 e3@15 ~@30]/3",
E: "[~@3 e3@2 ~@3 b3@6 ~@3 b4@2 ~@5 g3@5 ~@11 b3@5 e3@6 ~@6 e3@11 ~@21 c#4@5 ~@2, ~@14 e3@5 e3@16 ~@53 f#4@6 ~@2]/3",
F: "~@7 f#4@9 ~@16, ~@3 f#3@11 ~@18",
})).s("gm_piano").gain(0.04).pan(0.3)
// bass · acoustic bass · "bass"
const bass = note("<~@5 A B C@6 D E@2 F@6 G@7 H I@4 J@6 K@6 L@7 M@2 N O@4 P@6>".pickRestart({
A: "~ e3@14 ~ e3@3 ~@3 [b2,e3]@10, ~ e2@31, ~@15 [b1,b2]@2 ~@15", // E5 B
B: "~ b2 ~@13 [b1,b2]@2 e3 ~@4 [b2,e3]@10, ~ [e2,e3]@16 e2@15", // B E5 E
C: "[~ [e2,e3]@14 b2@2 e3 ~@4 [b2,e3]@11 b2@14 [b1,b2]@2 [e2,e3]@3 ~@2 [e2,b2,e3]@12 b2@2 ~@13 e2@2 ~@4 [b2,e3]@10 ~ b2@15 ~@30 b1@2 e3@2 ~@4 [b2,e3]@10 ~ e3@15 ~@11 b2@4, ~ b2 ~@13 b1@8 ~@10 e3@16 ~@30 b2@2 e3 ~@31 b2@10 b2@20 b2@4 ~@30 b2@11 ~@4, ~@17 e2@32 ~@17 [e2,e3]@14 b1@4 ~@2 e2@11 [e2,e3]@15 ~ e2@32 ~@16 e2@17 b1@14, ~@114 e3@15 e3@16 ~@47]/6", // E E5 B E E5 E
D: "~ b2@14 ~@2 e3 ~@5 [b2,e3]@9, ~@8 [b1,b2] e2@7", // E5 B
E: "[~ e3@15 b2@4 ~@8 b2@5 b2@14 ~ b2@2 e3@2 ~@3 [e2,b2,e3]@9, ~ b2@14 ~ b1@17 e3@16 ~@15, ~@47 b1@4 ~@13]/2", // E5
F: "[~@2 b2@14 ~@12 b2@6 ~@16 b1@2 ~@9 [b1,b2]@4 e3@14 ~@2 b1@16 ~ a2@14 ~@13 a2@6 a2@9 a2@2 a2@3 ~@2 e2@15 e3@5 e3@11 e3 ~@5 e3@8, ~ e2@17 b1@17 ~@79 e1@32 e1@16 ~@30, ~@2 e3@17 ~@15 e3@31 ~@15 e3@2 ~@110, ~@16 b2@12 ~@6 e2@64 ~@14 a2@4 ~@29 a2@2 ~@45]/6", // B
G: "[~@24 e2@11 [f#1,f#2]@14 f#2 [f#1,f#2]@5 ~ f#2@5 f#2@5 b2@14 ~@2 f#2@6 [b1,f#2,b2]@10 e3@15 ~@7 e3@10 ~ b2@2 ~@11 b2@2 e3 ~@5 b2@9 b2@2 ~@26 e2@6 ~@14 [e2,e3]@2 b1@13, ~@3 [e2,e3]@21 ~@42 b1@15 f#1@17 ~@15 b2@2 ~@16 e3@15 ~@6 e3@11 e3@33 ~@28, ~@17 [b1,b2]@18 ~@21 f#1@11 ~@13 b2@2 ~@16 e2@32 e2@17 ~@14 e2@28 ~@35, ~@114 b1@32 b1@17 b1@31 ~ [b1,b2]@16 ~@13]/7", // F# B5 E B
H: "~@3 e3@14 e3@2 [b1,b2]@3 ~@8 b2@2, ~ b2@4 ~@27, ~@3 e2@20 ~@7 b1 ~", // B
I: "[~@3 e3@14 ~@2 b2@3 ~@2 b2@6 ~@5 e3@13 ~@3 b1@10 ~ [b1,b2]@5 e3@13 ~@33 [b1,b2]@2 [e2,e3]@2 ~@4 e3@7, ~@3 e2@46 e2@18 ~@16 b1@30 ~@15, ~@3 b2@2 ~@19 e3@11 ~@14 e3@3 ~@29 e3@2 ~@21 [e2,e3]@11 ~@5 e2@8, ~@30 b2@20 b2@4 ~@13 b2@2 ~@13 b2@31 ~@15]/4", // B E
J: "[~@3 b2@14 ~@2 e3 ~@31 e3 ~@4 [b2,e3]@11 ~ e3@14 ~@33 e2@5 ~ e3@11 ~@16 e2@5 [e2,e3]@5 ~@6 b2@13 ~@2 b1@6 [b1,b2]@7, ~@2 e2@19 ~@14 [e2,e3]@16 ~@5 e2@44 ~@21 e2@26 ~@11 e2@23 ~@11, ~@3 e3@15 b1@2 ~@4 [b1,e2,e3]@12 ~@14 e2@3 ~@29 e3@2 ~@16 e3@15 e3@2 ~@15 e3@15 e3@6 ~@11 e3@15 ~@13, ~@17 b2@2 ~@15 b2@3 ~@12 b2@3 ~@15 b2@14 ~ b2@12 b2@19 b2@3 ~@29 b2@3 ~@5 b2@2 ~@22 b2@8 ~@7, ~@83 b1@30 ~ b1@2 ~@30 b1@2 ~@44]/6", // E5 E B E E5
K: "[~@3 e2@15 e3@2 ~@10 b2@5 [e2,e3] ~@20 b1@11 e2@2 ~@4 e3@2 ~@19 e3@5 a2@14 ~@2 [e1,e2]@11 [e1,e2]@5 [a1,a2]@14 a2@2 [e1,e2]@16 [e2,e3] ~@15 b1@13, ~@2 b2@3 ~@15 b1@16 ~@4 [e2,e3]@27 e3 ~@5 e2@20 ~@6 a1@16 d2@2 ~@28 a1@19 ~@28, ~@27 e3@4 ~@27 e3@6, ~@84 b2@15 ~@14 a2@17 ~@43 e2@8 ~@11]/6", // E A E
L: "[~@2 e3 e2@4 ~@23 b2@5 ~ f#2@13 ~ f#2 [f#1,f#2]@4 ~@2 [f#1,f#2]@5 [f#1,f#2]@5 b2@14 b2@2 ~ [f#2,a2] ~@9 a2@5 ~ d#2 ~@14 [e2,e3] ~@4 b2@9 b2@2 ~@16 e3 ~@4 b2@8 ~@19 [b1,b2]@13 ~@2 e2@16 ~@6 b2 ~@4 [e2,b2]@3, ~ [b1,b2]@2 ~@14 e2@7 e3@11 ~@54 b2@11 ~@20 e3@11 e3@16 ~@4 e3@10 e2@16 e2@17 ~@30, ~@19 b1@11 ~@5 f#1@14 f#1@2 ~@16 [b1,f#2]@17 ~@4 b1@11 [e2,e3]@12 ~@33 b2@2 ~@14 b2@18 ~@14 b2@5 ~@27, ~@25 e2@11 ~@47 b1@5 ~@26 [b1,b2]@2 ~@29 b1@34 ~@45, ~@163 e3@17 ~@44]/7", // F# F#m E B E5 B B5 E …
M: "[~@3 [e2,e3]@13 ~@2 [e2,e3]@6 b2@8 ~@2 [b1,e3]@16 ~ e3 ~@5 b2@2 ~@5, ~@3 b2@3 ~@10 b2@4 ~@13 b2@17 b2@2 ~@4 e3@8, ~@17 b1@3 ~@4 [e2,e3]@11 ~@15 e2@5 ~@9]/2", // E E5 E
N: "~@19 b1@5 [e2,e3]@8, ~ b2@3 e2@18 ~@10, ~@2 b1@3 ~@13 e3@2 ~@12, ~@3 e3@14 b2@3 ~@12", // E
O: "[~@2 b1 e3@14 ~@3 b1@15 e2@14 ~@2 e3 e2@2 ~@3 [e2,e3]@11 [e2,e3]@13 [b1,b2]@2 ~ e2@2 ~@3 [e2,e3]@9 ~@2 b2@2 ~@14 e2@2 ~@3 [e2,e3]@7, ~ b2@4 ~@13 b2@9 ~@8 e3@12 ~@2 b2@3 ~@5 b2@2 ~@24 e3@2 ~@4 b2@2 ~@22 b2@2 e3@2 ~@4 b2 ~@6, ~@3 e2@24 ~@23 b1@2 ~@47 [e2,e3]@14 ~ b1@4 ~@10]/4", // E B E
P: "[~@19 [b1,b2]@16 ~ [e2,e3]@14 ~@2 e2@2 ~@2 [e2,b2,e3]@10 ~ [e2,e3]@14 ~@3 e2 ~@3 [b1,b2]@3 ~@7 [e2,e3]@14 ~@3 e2@4 ~@7 b2@3 ~@2 [b1,e3]@34 ~@27, ~ b2@5 ~@45 e3@2 ~@14 b2@11 ~@3 b2@2 e3@2 ~@3 e3 ~@23 b2@2 e3@2 ~@4 e3@8 ~@3 b2@16 ~@45, ~@4 [e2,e3]@19 ~@27 [b1,b2]@3 ~@29 b1@3 ~@8 [b1,b2]@7 ~@13 b1@2 ~@5 e2@10 ~@62]/6", // B E E5 E B E E5 E …
})).s("gm_acoustic_bass").gain(0.25)
// bass · acoustic bass · "bass" · soft notes
const bass_soft = note(`<
~@11 A B C D E ~ F G@2 ~ H I@2 ~ J@2 ~ K L M ~ N@4 ~ O@2 ~ P@2 Q@2 ~ R S@2 T@3 ~ U ~ V@2 ~ W ~@8
>`.pickRestart({
A: "~@17 e2@15", B: "~@2 b2@15 ~@15", C: "~ [e2,e3]@16 ~@15", D: "~ e2@17 ~@14", E: "e2@17 ~ e2@3 ~@11",
F: "~@19 b2 ~@12", G: "[~@29 e3@5 a1@16 ~@14, ~@18 b2@15 ~@31]/2", H: "~@17 b2 ~@14", I: "[~@24 e3@11 ~@29]/2",
J: "[~@19 e3 ~@4 b2@10 ~@19 e2@11]/2", K: "~@4 [e2,e3]@13 ~@2 b2@13", L: "~ b1@4 ~@27", M: "~@17 e3@4 ~@11",
N: "[~@3 e2@14 e2@23 ~@17 b2@10 ~@22 b2@9 ~@30]/4", O: "[~@4 e2@15 ~@6 b2@11 b2@13 ~@15]/2",
P: "[~@3 e3@15 ~@2 b2@10 ~@34, ~@18 e2@17 ~@29]/2", Q: "[~ b2@3 ~@7 e3@6 ~@12 e2@5 ~@30]/2", R: "~@19 b2@13",
S: "[~@17 e3@7 ~@6 b1@6 ~@28]/2", T: "[~@24 a#2@12 ~@20 e2@11 e2@29, ~@67 b2@13 ~@16]/3",
U: "~@2 e3@15 ~@7 e3 ~@7, ~ b1@5 ~@26", V: "[~@3 e2@15 ~@6 e2@10 ~@30]/2", W: "~@4 b2 ~@27",
})).s("gm_acoustic_bass").gain(0.12)
// other · bassoon
const bassoon = note("<~@5 A@3 B C D@2 E@2 F ~ G H ~@8 I@2 J@7 K@7 ~@8 L@4 M@2 N@7 O@3>".pickRestart({
A: "[~ e2@30 e2@34 [e2,e3]@31, e3@5 ~@27]/3", B: "e2, e3@11 ~@21", C: "~ e2@31, e3", D: "e2",
E: "[e3@33 e3@31, e2]/2", F: "~ [e2,e3]@31", G: "~ e2@30 ~", H: "~@2 [e2,e3] ~@29",
I: "[~@3 e2@31 ~ e3@6 ~@23, ~@17 e2@15]/2",
J: "[~@2 [e2,e3]@33 e3@32 e3@32 [e2,e3]@32 [e2,e3]@32 [e2,e3]@31 ~ e2@29, ~@35 e2@64 ~@95 e3@30]/7", // E
K: "[~@3 e3@31 ~ e3@32 e3@32 e3@32 [e2,e3]@32 ~ [e2,e3]@32 e2 ~@27, ~@2 e2@32 e2@32 ~ e2@64 ~@93]/7", // E
L: "[~@3 e2@31 e2@32 e2@32 e2@30]/4", M: "[~@2 [e2,e3]@32 ~ e2@29, ~@17 e3@15]/2",
N: "[~@2 [e2,e3]@33 [e2,e3]@32 [e2,e3]@32 [e2,e3]@32 ~ e3@31 e3@31 ~ e3@29, ~@131 e2@63 e2@30]/7", // E
O: "[~@3 e2@32 [e2,e3]@34 ~@27, ~@2 e3@33 ~@61]/3", // E
})).s("gm_bassoon").gain(0.15).pan(0)
// other · bassoon · soft notes
const bassoon_soft = note("<~@6 A ~@3 B C ~@2 D@3 ~@9 E@2 ~@6 F@2 ~@14 G H@2 I@2 ~@11>".pickRestart({
A: "~ e3@31", B: "e3@7 ~@9", C: "~ b3@15, e3",
D: "[~@33 e3@32 e3@11 ~@20, ~@31 e2@34 ~@31, ~@33 [b2,g#3]@34 ~@29, ~@11 g#2@2 ~@19]/3", E: "[~@3 e3@32 ~@29]/2",
F: "[~@15 d4@21 ~@28]/2", G: "~@3 e3@12 ~@17", H: "[~@2 e3@32 e3@3 ~@27]/2", I: "[~ e3@16 ~@15]/2",
})).s("gm_bassoon").gain(0.05).pan(0)
// drums · kick
const kick = s("bd").struct("<~ A B@2 C D@8 E@2 F G@8 H@2 I J@12 K J@10 G H@2 J@7 K J@3 L ~>".pickRestart({
A: "x ~@6 x!2 ~@7", B: "x ~@14 x!2 ~@15", C: "x ~@14 x ~ x ~@14", D: "~ x ~@13 x ~ x ~@14", E: "~ x ~@14 x!2 ~@14",
F: "~ x ~@14 x ~ x ~@13", G: "~ x ~@6 x!2 ~@6", H: "~@2 x ~@14 x!2 ~@13", I: "~@2 x ~@14 x ~ x ~@12",
J: "~@3 x ~@13 x ~ x ~@12", K: "~@3 x ~@14 x!2 ~@12", L: "~@3 x ~@28",
})).gain(0.25)
// drums · shaker
const shaker = s("sh").struct(`<
A B C@2 D@4 E@3 F G H@2 I@4 J@4 K L@2 M@3 N O@2 M@2 O@3 P Q R S M@4 O@4 M T L@2 M@2 O@3 P Q R S M@2 ~@2
>`.pickRestart({
A: "~@21 x ~@5 x ~@4", B: "~@6 x ~@4 x ~@2 x ~ x ~@5 x ~@4 x ~@4", C: "~@6 x ~@4 x ~@3 x!2 ~@5 x ~@4 x ~@4",
D: "~@6 x ~@4 x ~@3 x ~ x ~@4 x ~@4 x ~@4", E: "~@6 x ~@5 x ~@2 x ~ x ~@4 x ~@5 x ~@3",
F: "~@6 x ~@5 x ~@2 x ~ x ~@5 x ~@4 x ~@3", G: "~@7 x ~@4 x ~@2 x ~ x ~@5 x ~@4 x ~@3",
H: "~@7 x ~@4 x ~@3 x!2 ~@5 x ~@4 x ~@3", I: "~@7 x ~@4 x ~@3 x ~ x ~@4 x ~@4 x ~@3",
J: "~@7 x ~@5 x ~@2 x ~ x ~@4 x ~@5 x ~@2", K: "~@8 x ~@4 x ~@2 x ~ x ~@5 x ~@4 x ~@2",
L: "~@8 x ~@4 x ~@3 x!2 ~@5 x ~@4 x ~@2", M: "~@8 x ~@4 x ~@3 x ~ x ~@4 x ~@4 x ~@2",
N: "~@8 x ~@4 x ~@3 x ~ x ~@4 x ~@5 x ~", O: "~@8 x ~@5 x ~@2 x ~ x ~@4 x ~@5 x ~",
P: "~@8 x ~@5 x ~@2 x ~ x ~@5 x ~@4 x ~", Q: "~@9 x ~@4 x ~@2 x ~ x ~@5 x ~@4 x ~",
R: "~@9 x ~@4 x ~@3 x!2 ~@5 x ~@4 x ~", S: "~@9 x ~@4 x ~@2 x ~ x ~@4 x ~@5 x ~",
T: "~@7 x ~@5 x ~@2 x ~ x ~@5 x ~@4 x ~@2",
})).gain(0.16)
// drums · jingle bells
const jingle_bells = s("sleighbells:4").struct("<~@17 A B A@4 C A ~@16 D E F D@2 C@2 G ~@17>".pickRestart({
A: "~@7 x ~@5 x ~@9 x ~@8", B: "~@7 x ~@4 x ~@10 x ~@8", C: "~@8 x ~@4 x ~@10 x ~@7", D: "~@4 x ~@2 x ~@4 x ~@3",
E: "~@7 x ~@5 x ~@10 x ~@7", F: "~@8 x ~@5 x ~@10 x ~@6", G: "~@9 x ~@4 x ~@10 x ~@6",
})).gain(1.1)
stack(
harpsichord, harpsichord_soft, piano, piano_soft, bass, bass_soft, bassoon, bassoon_soft, kick, shaker, jingle_bells
)
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.