0:00/0:00
// Junior's Farm — Paul McCartney
// 131 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 141 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: edit a riff to change every repeat.
// chords · overdriven guitar
const overdriven_guitar = note(`<
A@2 B C A@2 D E F G@2 H@2 I J K L M@2 N O P Q R S@2 T U V W@2 X Y@2 ~@8 Z@2 AA@2 AB AC ~ AD@5 AE ~ AF AG AH AI AJ AK
AL AM AN AO AP@2 AQ AR@2 AS AT A@2 B C A@2 D E AU AV@2 AW@5 AX AY ~ AZ@4 BA BB ~@3 BC@4 BD@2 BE BF BG@2 BH BI@4 BJ@4
BK@2 ~@19
>`.pickRestart({
A: "[[g2,g3]@15 ~]/2", B: "[f2,f3]@6 [f2,f3] ~@3 [c3,c4]@2 [d3,d4]@2 ~@2", C: "[g2,g3]",
D: "[f2,f3]@3 [f2,f3] ~ [c3,c4] [d3,d4] ~", E: "[g2,g3]@13 ~@3",
F: "g2@2 ~@2 [d4,g4]@2 ~@2 g2@2 g2@2 [d4,g4] ~@3, ~ g2@2 ~@5", // G5
G: "[g2@2 g2@2 [d4,g4]@2 ~@4 [g3,c4,e4] ~@3 [g3,b3]@4 g2@2 [b3,d4,g4] ~@3 g2@2 g2@2 [g3,b3,d4,g4] ~@3, ~@7 d4 ~@8]/2", // G5 C G
H: "[g2@2 g2@2 [g3,b3,d4,g4]@2 ~@2 [g3,c4,e4]@2 ~@2 [g3,c4,e4] ~ g3@6 [d4,g4] ~@3 g2@2 g2@2 [b3,d4,g4] ~@3, ~@14 d4@3 ~@15]/2", // G C G5 G
I: "g2 ~ [b3,g4] ~@2 [g3,c4,e4,g#4] ~ [g3,b3,d4], ~ g2@2 ~@5", // Em C G
J: "~@2 g2@2 [b3,d4,g4] ~@3 g2@2 g2@2 [b3,d4,g4]@2 ~@2", K: "g2 ~ [b3,g4] ~ g2 ~ [b3,d4,g4] ~, ~ g2@2 ~@2 g2@2 ~",
L: "f2@2 f2@2 [a3,c4,f4] ~@3 f2@2 f2@2 [a3,c4,f4] ~@3", M: "[~@4 [g3,b3,e4]@2 [g3,b3,e4]@7 ~@19, ~ e3@6 ~]/2",
N: "g2!2 [d4,g4] ~ g2 ~ g4 ~, ~@5 g2@2 ~", O: "g2 ~ g4 ~@2 [g3,c4,e4] ~ [g3,b3,d4], ~ g2@2 ~@5",
P: "~@4 [b3,d4,g4] ~@3 g2@2 ~@2 [b3,d4,g4] ~@3, ~ g2@2 ~@2 g2@2 ~", Q: "g2!2 [b3,d4,g4] ~@2 g2 [b3,d4,g4] ~",
R: "f2@2 f2@2 [a3,c4,f4] ~@3 f2@2 ~@2 [a3,c4,f4]@2 ~@2, ~@5 f2@2 ~", S: "[e2@4 ~@2 e2@17 ~@9]/2",
T: "~@4 [d4,g4]@2 ~@2 g2@2 ~@2 [b3,d4,g4] ~@3, g2@3 ~@2 g2@2 ~", // G5 G
U: "g2 ~ [g3,b3,d4,g4] ~ g2!2 [b3,d4,g4] ~, ~ g2@2 ~@5", V: "f2 ~ [a3,c4,f4] ~ f2!2 [a3,c4,f4] ~, ~ f2@2 ~@5",
W: "[g2 ~ [b3,d4,g4] ~@2 [g3,c4,e4] ~ [b3,d4]@3 [b3,d4,g4] ~ g2!2 [b3,d4,g4] ~, ~ g2@2 ~@4 g3@4 ~@5]/2", // G C Bm G
X: "g2 ~ [b3,d4,g4] ~ g2 ~ [b3,d4,g4] ~, ~ g2@2 ~@2 g2@2 ~", // G
Y: "[f2!2 [a3,c4,f4] ~ f2 [f3,a3,c4,f4] ~ [g3,b3,d4,g4]@5 ~@4]/2", Z: "[~@2 [b3,d4,g4]@10 ~ [c4,e4] ~ g2]/2",
AA: "[[b3,d4,g4]@15 ~]/2", AB: "[f3,a3,c4,f4]@7 ~", AC: "[e3,g3,b3,e4]@7 ~",
AD: "[[g2,d3,g3]@11 ~@2 [g3,c4,e4] ~ [g3,b3,d4]@15 ~ [f3,c4]@9, ~@31 a3@8 ~]/5", AE: "[e3,g3,b3]@15 ~",
AF: "g2@2 ~@2 [b3,d4,g4]@2 ~@2 g2@2 ~@2 [g3,b3,d4,g4] ~@3, ~ g2@2 ~@2 g2@2 ~", // G
AG: "g2@2 g2@2 [g3,b3,d4,g4] ~@3 g2@2 g2@2 [g3,b3,d4,g4] ~@3", // G
AH: "f2@2 f2@2 [a3,c4,f4] ~@3 f2@2 ~@2 [a3,c4,f4] ~@3, ~@5 f2@2 ~", // F
AI: "g2@2 g2@2 [g3,b3,d4,g4]@2 ~@4 a#3@2 g3@2 e3 ~", AJ: "g2@2 g2@2 [b3,d4,g4] ~@3 g2@2 g2@2 [b3,d4,g4] ~@3",
AK: "g2@2 g2@2 [b3,d4,g4] ~@3 g2@2 g2@2 [d4,g4] ~ f2@2", AL: "f2@4 [a3,c4,f4] ~@3 f2@2 f2@2 [a3,c4,f4] ~@3",
AM: "g2 ~ [b3,d4,g4] ~@5, ~ g2@2 ~@5", AN: "g2@4 [d4,g4]@2 ~@2 g2@2 g2@2 [b3,d4,g4] ~ f2@2",
AO: "f2@4 [c4,f4] ~@3 f2@2 f2@2 [c4,f4]@2 ~@2", // F5
AP: "[g2@2 ~@2 [b3,d4]@2 ~@2 b3@2 g3@2 [c4,e4]@2 ~@2 [b3,d4]@4 [d4,g4] ~@3 g2@2 ~@2 [b3,d4,g4] ~@3, ~@2 g2@4 ~@2 d4@4 ~@2 g3@7 ~@5 g2@4 ~@2]/2", // Bm C Bm G5 G
AQ: "~@4 [d4,g4] ~@3 g2@2 g2@2 [d4,g4] ~ f2@2, ~ g2@2 ~@5", // G5
AR: "[f2@4 [a3,c4,f4] ~@5 [a3,c4,f4]@2 ~@2 [b3,d4,g4]@5 ~@5 [c4,f4]@4 [c4,f4,a4] ~@3, ~@11 g3@2 ~@3]/2", // F G F5 F
AS: "[f3,a3,c4]@7 ~", AT: "[g3,b3,d4,g4]@15 ~", AU: "g2@2 g2@2 [b3,d4,g4] ~@3 g2@2 g2@2 [g3,b3,d4,g4] ~@3",
AV: "[g2@2 ~@2 [d4,g4]@2 ~@2 [g3,c4,e4]@2 ~@2 [g3,c4]@2 [g3,b3,d4]@6 [d4,g4] ~@3 g2@2 g2@2 [b3,d4,g4] ~@3, ~ g2@2 ~@13]/2", // G5 C C5 G G5 G
AW: "[g2@2 ~@2 [g3,b3,d4,g4]@2 ~@2 g2 ~ [g3,c4,e4]@2 ~@2 [g3,b3,d4,g4]@23 ~@5 [g3,c4,e4]@2 ~@4 [b3,d4,g4]@28 ~@4, ~ g2@3 ~@19 g2@15 ~@2]/5", // G C G C G
AX: "[f3,g3,c4]@15 ~, f4@13 ~@3", AY: "[b2,e3,g3]@3 ~",
AZ: "[[g2,d3,g3]@19 ~@3 g3@2 [c4,e4] ~ g3@2 [c4,e4] ~@3 [b3,d4,g4]@29 ~@3, ~@30 g3@31 ~@3]/4", // G5 C G
BA: "[c4,e4], [f3,g3]@7 ~", BB: "[b2,e3,g3,b3]@15 ~",
BC: "[[f2,c3]@8 ~@6 [g2,d3,g3]@9 ~ [g3,c4,e4]@2 ~@2 [g3,c4] ~ [g3,b3]@25 ~ a3 b3 d4@2 g4@2 ~@2]/4", // F5 G5 C C5 G
BD: "[[f3,a3]@12 ~@2 [g3,b3,d4]@7 ~@11]/2", BE: "g2@2 ~@2 [b3,d4,g4] ~@3 g2@2 ~@2 [b3,d4,g4] ~@3, ~ g2@2 ~@2 g2@2 ~",
BF: "f2@2 f2@2 [f3,a3,c4,f4] ~@3 f2@2 f2@2 [a3,c4] ~@3", // F Am
BG: "[g2@2 ~@2 [g3,b3]@2 ~@2 [g3,c4]@2 ~@2 [g3,c4] ~ [g3,b3,d4]@6 [b3,d4,g4] ~@3 g3@2 ~@2 [b3,d4,g4]@2 ~@2, ~ g2@2 ~@10 g3@2 ~]/2", // G C5 G
BH: "g2@2 g2@2 [b3,d4,g4] ~@3 g2@2 g2@2 [b3,d4] ~ f2@2", // G Bm
BI: "[f2@4 [a3,c4,f4] ~@3 f2@2 [f3,a3,c4]@2 ~@2 d3@4 g2@2 [g3,b3,d4,g4] ~@3 [d3,g3,b3]@2 ~@2 [g3,b3,d4,g4] ~@3 [f3,a3,c4]@12 ~@4 [g3,b3]@12 ~@2 f2@2, ~@14 [g3,b3,d4]@6 ~@10 f2@13 ~@3 g2@14 ~@4, ~@48 d4@9 ~@7]/4", // F G F G
BJ: "[f2@2 ~@2 [a3,c4,f4] ~@5 [f3,a3,c4]@2 ~@4 e2@13 ~@35, ~@2 f2@4 ~@8 b2@39 ~@11, ~@7 e3@15 ~@10, ~@7 g3@11 ~@14, ~@7 b3@10 ~@15]/4", // F
BK: "[f3,b3,d4]/2", // Bdim
})).s("gm_overdriven_guitar").gain(0.44).pan(0.7)
// chords · overdriven guitar · soft notes
const overdriven_guitar_soft = note(`<
~@10 A B C D E D ~@3 F D ~ G ~@6 H@2 ~@12 I ~@3 J ~@6 K ~@7 L ~@3 M ~ N O P ~@10 Q R@2 ~@8 S@2 ~@3 K ~@3 T U@3 V ~@2 W
X ~ Y Z AA@2 AB AC ~@24
>`.pickRestart({
A: "~@4 d3 ~@3", B: "d3 ~@7", C: "~@8 d3@5 ~@3", D: "~@2 d4 ~@5", E: "~@6 g3 ~", F: "~@6 d4 ~", G: "~@4 g2 ~@3",
H: "[~@2 g3 ~@4 g4@3 ~@6]/2", I: "~@5 g3 ~@2", J: "b2@7 ~", K: "e4@15 ~", L: "~@12 f3 ~@3", M: "~@2 g4 ~@5",
N: "g2@2 ~@2 b3 ~@11", O: "~@5 f3 ~@2", P: "~@6 c4@2 a4@2 ~@2 g3 ~@3", Q: "~@4 g3 ~@11", R: "[~@7 g4@3 ~@6]/2",
S: "[b3@19 ~@13]/2", T: "f3 ~", U: "[~@14 d4@25 ~@9]/3", V: "c4@5 ~@11", W: "~@12 f4 ~@3", X: "~@8 e4@2 ~@2 e4 ~@3",
Y: "d3@2 d3@3 ~@11", Z: "c3@5 ~@11", AA: "[~@8 d4@2 ~@4 c3@13 ~@3 d3@2]/2", AB: "d3@3 ~", AC: "~@4 f3 ~@3 f2@3 ~@5",
})).s("gm_overdriven_guitar").gain(0.16).pan(0.7)
// bass · electric bass pick
const bass = note(`<
A@2 B C D@2 B E F G@4 H G@2 I J@2 G K G@2 I L M G@2 I G@3 N G F G O P Q R S T U G@3 V W@2 F G@3 X@3 F G I Y F G Z F AA
I G@3 AB G V Y AC@2 AD C D@2 B E F G@2 H G H G@2 I L AE G H G H I AF@2 F G AG G F AH V G AI I G@3 AJ AK AL G V AM@2
AN@3 AO AP AQ AP AR AS AT@2 AQ AP AQ AU AR AS AV AW AX@3
>`.pickRestart({
A: "g1/2", B: "f1@3 f1 ~ c2 d2@2", C: "g1@15 ~", D: "[g1@15 ~]/2", E: "g1@13 ~@3", F: "g1@2 g1!6", G: "g1!8",
H: "g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1 ~ f1@2", I: "f1!8", J: "[e1!7 e1@2 e1 e1@2 e1!2 f1 f#1]/2", K: "g1!7 f1",
L: "e1!8", M: "e1!6 f1 f#1", N: "f1!7 g1", O: "f1!7 e1", P: "g1!6 e1 f1", Q: "g1@2 g1@2 g1!2 e1 f1",
R: "g1@2 g1@2 g1!4", S: "f1@4 f1@4 f1@2 f1 ~ e1 ~ f1@2", T: "g1@2 g1!2 g1@4",
U: "g1@2 g1@2 g1@2 g1@2 g1 ~ g1@2 g1@2 g1@2", V: "f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1 ~",
W: "[e1@4 e1@4 e1@2 e1@2 e1@2 e1@4 e1@2 e1@2 e1@2 e1@2 e1@2 f1 ~ f#1 ~]/2",
X: "[f1@4 f1@4 f1@2 f1@2 e1@2 e1@6 e1@4 e1@2 e1@2 e1@2 e1@4 e1@2 e1@4 e1@2 e1@2 f1 ~ f#1@2]/3",
Y: "g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1 ~ g1@2", Z: "f1@2 f1!6", AA: "g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1 ~",
AB: "f1@4 f1@2 f1@2 f1@2 f1@2 f1@2 f1 ~", AC: "[g1@31 ~]/2", AD: "f1@6 f1@3 ~ c2@2 d2@4",
AE: "e1@2 e1@2 e1@2 e1@2 e1@2 e1@2 f1 ~ f#1@2",
AF: "[e1@2 e1@2 e1@2 e1@2 e1@2 e1@2 e1@2 e1@4 e1@2 e1@2 e1@2 e1@2 e1@2 f1 ~ f#1@2]/2",
AG: "f1@2 f1@2 f1 ~ f1@2 f1@2 f1@2 f1@2 f1@2", AH: "g1!4 g1@2 g1@2", AI: "g1@2 g1@2 g1 ~ g1@2 g1@2 g1@2 g1@2 g1 ~",
AJ: "f1@4 f1@2 f1@2 f1 ~ f1@2 f1@3 ~", AK: "g1@2 g1@2 g1@2 g1@2 g1@2 g1@2 g1@3 ~",
AL: "f1@4 f1@2 f1@2 f1@2 f1@2 f1@3 ~", AM: "[e1@29 ~@3]/2", AN: "[g2@2 g2@2 g2@2 e3@3 ~ c3@2 d3@34 ~@2]/3",
AO: "e2@15 ~", AP: "d2", AQ: "e2", AR: "c2", AS: "b1@15 ~", AT: "[a1@27 ~@5]/2", AU: "d2@15 ~", AV: "a1@7 ~",
AW: "c2 d2", AX: "[~ g1@38 ~@9]/3",
})).s("gm_electric_bass_pick").gain(0.49)
// chords · clavinet
const clavinet = note(`<
~@10 A@4 B@2 C D@2 E@4 F G@2 B@2 H I J K H I J K H K J K H K L@2 B@2 F M@2 N@2 O@2 F P@2 J K H J@2 K H K Q H J R@2 H K
S Q ~@10 T@2 L@2 U@2 V G@2 E@2 W@2 F X@2 J K H K J I H K Q H K J K H K F Q Y Z@3 ~@2 AA AB AC AD AE AF AG@2 AH AI AJ
AK AL AM AN AO AP@3
>`.pickRestart({
A: "[b3@7 b3@4 b3@5 b3@16, d4, g3@15 ~ g3@15 ~]/4", B: "[[g3,b3,d4]@29 ~@3]/2", C: "[f3,c4], a3@7 ~",
D: "[[b3,e4], [e3,g3]@29 ~@3]/2", E: "[[g3,b3,d4]@15 ~]/2", F: "[f3,a3,c4]@15 ~", G: "[[e3,g3]@7 ~, b3@31 ~]/2",
H: "[f3,a3,c4]@7 ~", I: "[g3,b3,d4]@13 ~@3", J: "[g3,b3,d4]", K: "[g3,b3,d4]@7 ~", L: "[g3,b3,d4]/2",
M: "[[e3,g3,b3,e4]@15 ~]/2", N: "[[b3,d4]@15 ~, g3]/2", O: "[[g3,b3,d4]@27 ~@5]/2",
P: "[[b3,e4]@31 ~, [e3,g3]@7 ~]/2", Q: "[g3,b3,d4]@15 ~", R: "[[b3,d4]@8 [b3,d4]@7 ~, g3@15 ~]/2",
S: "[f3,a3]@15 ~, c4@13 ~@3", T: "[b3@18 b3@7 ~ b3@5 ~, [g3,d4]@13 ~@3]/2", U: "[[g3,b3,d4]@7 ~]/2",
V: "~@2 c4@13 ~, [f3,a3]", W: "[[b3,d4]@25 ~@7, g3@7 ~]/2", X: "[[b3,e4]@3 ~@13, e3@15 ~, g3@5 ~@11]/2",
Y: "[f3,c4]@15 ~, a3@13 ~@3", Z: "[[g3,b3]@11 ~@5, e4@5 ~@3]/3", AA: "~ b3 ~ b3 ~ b3 ~ b3, e3!2, ~@4 e4@7 ~ e4@4",
AB: "~ b3 ~ b3 ~ b3 f#4 b3, d3!2, ~@4 f#4@7 ~@5", AC: "~ b3 ~ b3 ~ b3 ~ b3, e3@7 ~ e3@8, ~@4 e4@7 ~ e4@4",
AD: "~ b3 ~ b3 f#4 b3 f#4 b3, d3, ~ f#4 ~@2", AE: "~ g3 ~ g3 ~ g3 e4 g3, c3@7 ~ c3@7 ~, ~@4 e4@7 ~@5",
AF: "~ f#3 ~@3 f#3 ~ f#3, b2@8 b2@7 ~, ~@4 d4@7 ~ d4@4, ~@3 f#3@2 ~@3",
AG: "[~ e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3 e4 e3, a2@8 a2@8 a2@7 ~ a2@7 ~, ~@4 e4@7 ~ e4@7 ~ e4@7 ~@5]/2",
AH: "~@3 b3 ~@3 b3, e3@7 ~ e3@8, ~ b3@2 ~@2 b3@2 ~, ~@4 e4@7 ~ e4@4",
AI: "~ b3 ~ b3 ~ b3 f#4 b3, d3@8 d3@7 ~, ~@4 f#4@7 ~@5", AJ: "~@2 e4 b3 ~ b3 e3 b3, e3@11 ~@5, ~@2 b3@4 ~@2 e4@7 ~",
AK: "~ b3 f#4 b3 f#4 b3 f#4 b3, d3@15 ~", AL: "~ g3 ~ g3 ~@2 e4 g3, c3@7 ~ c3@8, ~@2 e4@3 g3@2 ~",
AM: "~@2 d4 ~ d4 ~@2 f#3, b2@15 ~, ~ f#3@2 f#3@2 f#3@2 ~, ~@3 d4",
AN: "~@2 e4 ~@2 e3@2 ~, a2, ~ e3@2 e3@2 ~@3, ~@8 e4@7 ~", AO: "~ g3 ~ g3 ~@2 f#4 ~, c3@4 d3@3 ~, ~@2 e4@2 ~ a3@2 ~",
AP: "[~@2 d4@35 ~@11, ~ [g2,g3]@37 ~@10, ~ b3@35 ~@12]/3", // G
})).s("gm_clavinet").gain(0.33).pan(0.3)
// other · piccolo
const piccolo = note(`<
~@25 A B C@2 D@2 E@3 ~@15 F G H I J K A B C@2 L@2 M@3 N@2 O@2 P Q@4 ~@18 R S T H U@2 V@2 W C@2 X@2 M@3 Y@2 Z@2 P AA@5
AB ~@23
>`.pickRestart({
A: "~@3 g5", B: "g5!4", C: "[g5@2 g5@2 ~@2 d5@2 b4@3 ~@3 f5@4 e5@2 d5@2 c5@2 b4@3 ~ b4@2 b4@2]/2",
D: "[b4@2 c5@2 d5@2 c5@2 b4@3 ~@3 g5@5 ~ g5@4 g5@4 g5@4]/2",
E: "[g5@2 g5@2 ~@2 d5@2 b4@3 ~@3 f5@4 e5@2 d5@2 c5@2 b4@2 b4@4 b4@8 ~@10]/3", F: "~@2 g5!6", G: "g5!2 ~ g5@3 ~@2",
H: "~ g5!7", I: "a5@3 ~ g5@2 g5@2 d5@3 ~@3 e5@2", J: "f5@2 d5!2 c5@2 c5!2", K: "b4 c5 d5 b4@2 a4 g4@2",
L: "[b4@2 c5@2 d5@2 c5@2 b4@3 ~@3 g5@6 g5@4 g5@4 g5@4]/2",
M: "[g5@2 g5@2 ~@2 d5@2 b4@3 ~@3 f5@4 e5@2 d5@2 c5@2 b4@2 b4@3 ~ b4@8 ~@6 g5@4]/3",
N: "[g5@4 g5@2 ~@2 d5@2 b4@2 ~@2 f5@3 e5@2 d5@2 c5@2 ~ b4@3 ~ b4@2 b4@2]/2",
O: "[b4@2 c5@2 d5@2 c5@2 b4@4 ~@2 g5@5 g5@4 ~ g5@3 g5@4 ~]/2", P: "g5@2 g5@2 ~@2 d5@2 b4@3 ~@3 f5@2",
Q: "[~@2 e5@2 ~ c5@2 ~ b4@2 b4@3 ~ b4@8 ~@8 f5@4 e5@2 d5@2 c5@2 b4@2 ~ d5@3 c5@4 b4@9 ~@5, ~@2 d5 ~@18 c5 ~@10]/4",
R: "~@7 g5", S: "g5!8", T: "g5@3 ~ g5@2 g5@5 ~@5", U: "[g5@3 ~ g5@2 g5@6 ~@2 g5@4 g5@2 f5 f5@2 ~ e5@4 e5@4]/2",
V: "[d5@2 e5 g5@3 d5@4 b4@13 ~@5 g5@4]/2", W: "g5@4 g5@4 g5@3 ~ g5@4",
X: "[b4@2 c5@2 d5@2 c5@2 b4@3 ~@3 g5@5 ~ g5@4 g5@4 g5@3 ~]/2",
Y: "[g5@4 g5@3 ~ d5@2 b4@2 ~@2 f5@3 e5@2 d5@2 c5@2 ~ b4@3 ~ b4@2 b4@2]/2",
Z: "[b4@2 c5@2 d5@2 c5@2 b4@4 ~@2 g5@5 g5@4 ~ g5@3 g5@3 ~@2]/2",
AA: "[~@2 e5@2 ~ c5@2 ~ b4@2 b4@3 ~ b4@8 ~@8 f5@4 e5@2 d5@2 c5@2 b4@2 ~ d5@2 ~ c5@4 b4@9 ~@3 f5@4 e5@2 d5@2 c5@2 d5@2 d5@2 ~@2 c5@2, ~@2 d5 ~@18 c5 ~@18]/5",
AB: "b4",
})).s("gm_piccolo").gain(0.3).pan(0.6)
// other · overdriven guitar
const overdriven_guitar_2 = note(`<
~@17 A B ~@6 C ~@7 D E@2 F G H I@2 J ~@5 K L ~@6 M ~@3 N ~@3 O ~@26 P@2 ~@6 Q R S T ~@4 U ~@11 V W@3 ~@7 X Y Z AA AB
AC AD AE AF AG@2 ~
>`.pickRestart({
A: "~@7 a3", B: "b3 d4!3 b3 g3!2 e3", C: "a#2@2 d3@2 e3@2 g3@2 a3 g3 e3@2 g3@2 e3@2", D: "~@10 d4@2 e4@2 d4 ~",
E: "[g4@4 a4@2 g4 ~ a4@3 ~@3 a4@4 d5 ~ a#4@4 g4@4 e4 ~ d4 ~]/2", F: "d#4@2 g4@2 g4@2 e4 ~ e4 ~ e4@2 d4@2 a#3@2",
G: "d4 ~ a#3@2 a3@6 ~@6", H: "d5 e5 ~ d5 e5 ~ d5 e5 ~ d5 e5 ~ d5 e5 ~ d5, ~@2 g5@3 g5@3 g5@2 ~ g5@3 g5@2",
I: "[e5 ~ d5 e5 ~ d5 e5 f#5 a5@4 ~@2 a5@4 ~@2 a5 ~ g5@2 g5 e5 d5@2 d5 b4 a4@2, ~ g5@3 g5@3 ~@25]/2",
J: "a4@3 g4 e4@2 g4@9 ~", K: "~@7 a2", L: "b2@2 d3@2 e3 ~ g3 ~ a3 ~ a3 ~ g3@2 e3@2",
M: "e4@2 d4@2 b3@2 a3@2 a3@3 ~ a3 g3 e3@2", N: "~@5 b3 g3 e3", O: "~@8 d3 e3 g3@2 g3@2 e3@2",
P: "[~@14 a3@4 d4@2 e4 ~ d4 ~ b3@2 g3@2 a3 g3 e3@2]/2", Q: "a4@3 d5 a4@3 d5 a4@3 d5 a#4@2 g4 ~",
R: "g4@9 ~ f#4@2 e4@2 d4 ~", S: "d4@5 ~@3 g3@2 g3@2 g3@2 e3@2", T: "~@5 g3 b3 ~", U: "~@8 d#3@2 g3@2 d#3 ~ d3@2",
V: "e4 d4 b3 a3 g3@2 e3 d3", W: "[f#2@2 g2@4 e3@4 c3@2 d3@31 ~@5]/3", X: "~@2 a4@2 b4@2 d5 ~ a4@2 a#4@2 g4 ~ e4@2",
Y: "g4@3 ~", Z: "a4@2 g4@2 a4 ~ a4@3 ~@3 a4@2 g4@2", AA: "a4 ~ g4@2 e4 ~ d4 ~ e4@5 ~@3",
AB: "b3 g#3 g3@2 a3@2 b3@2 a3@2 g3@2 a3@2 b3@2", AC: "g3@3 ~", AD: "a3@2 d4 ~ d#4@2 g4@4 ~@2 a4@2 g4@2",
AE: "a4 ~ g4@4 ~@2", AF: "a#4@2 b4@2 e5@2 d5@2 b4@2 a4 ~ a4@2 g4@2", AG: "[~ a4@29 ~@2]/2",
})).s("gm_overdriven_guitar").gain(0.49).pan(0.3)
// other · overdriven guitar
const overdriven_guitar_3 = note("<A B@2 ~ C D E F ~@65 A B@2 ~ C D E F ~@60>".pickRestart({
A: "~@6 e4@4 c4 ~ d4@2 e4@2", B: "[f4@2 g4@3 ~ d#4@5 ~ c4 d4@18 ~]/2", C: "~@3 e4@2 c4 d4 e4",
D: "f4@2 g4@2 ~@2 c5@4 d5 b4 b4@2 ~@2", E: "c5@6 c5@2 ~@2 d5@2 d5@3 ~", F: "d5@7 ~",
})).s("gm_overdriven_guitar").gain(0.49).pan(0.4)
// other · overdriven guitar
const overdriven_guitar_4 = note("<A B@2 ~ C D E F ~@65 A B@2 ~ C D E F ~@41 G H G I F J@2 ~@12>".pickRestart({
A: "~@6 g4 a4@3 e4@2 f4@2 g4@2", B: "[a4@2 b4@3 ~ f#4@5 ~ e4@18 ~@2]/2", C: "~@6 g4 a4@3 e4@2 e4@2 g4@2",
D: "a4 b4 ~ e5@2 f5 d5 ~", E: "f5@3 f5 ~ g5!2 ~", F: "g5@15 ~", G: "g5", H: "f#5@15 ~", I: "f#5",
J: "[f#5@15 e5@17]/2",
})).s("gm_overdriven_guitar").gain(0.38).pan(0.7)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@8 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU
AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN ~@7 BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD@3 CE CF
CG CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV CW@2 ~@22
>`.pickRestart({
A: "[g2,d3] g2 [g2,d3]!6", B: "[g2,d3]@2 [g2,d3]@2 d3 ~ d3 ~ [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2, ~ g2 ~@2",
C: "d3 ~ d3 ~ [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2, g2 ~@3", // G5
D: "[g2,d3]@2 [g2,d3]@2 [g2,d3] ~ [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2", // G5
E: "[g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~ [g2,d3]@2 [g2,d3]@2 [g2,d3] ~", // G5
F: "[g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~ [g2,d3]@2 [g2,d3] ~ [g2,d3]@2 [g2,d3]@2", G: "[g2,d3]!8",
H: "g2@2 g2@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3] ~", // G5
I: "[f2,c3]@2 [f2,c3] ~ [f2,c3] ~ [f2,c3]@2 [f2,c3]@2 [f2,c3]@2 [f2,c3]@2 [f2,c3] ~", // F5
J: "[e2,b2] e2 [e2,b2]!3 e2 [e2,b2]!2", K: "[e2,b2]!5 e2 [e2,b2] e2",
L: "[g2,d3] ~ g2@2 [g2,d3]@2 g2@2 g2@2 [g2,d3] ~ [g2,d3]@2 [g2,d3]@2", // G5
M: "g2@2 g2@2 [g2,d3] ~ [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2", // G5
N: "[g2,d3]@2 [g2,d3] ~ [g2,d3]@2 g2 ~ [g2,d3] ~ [g2,d3]@2 [g2,d3]@2 [g2,d3]@2", // G5
O: "[g2,d3] ~ g2@2 [g2,d3]@2 [g2,d3]@2 g2@2 [g2,d3]@2 [g2,d3]@2 g2 ~", // G5
P: "[f2,c3]@2 [f2,c3]@2 [f2,c3]@2 [f2,c3]@2 [f2,c3]@2 f2@2 [f2,c3]@2 [f2,c3] ~", // F5
Q: "[e2,b2]@2 [e2,b2] ~ e2@2 [e2,b2]@2 [e2,b2]@2 [e2,b2] ~ [e2,b2]@2 e2@2", // E5
R: "[e2,b2]@2 [e2,b2] ~ [e2,b2]@2 [e2,b2]@2 e2 ~ [e2,b2]@2 [e2,b2]@2 e2@2", // E5
S: "[g2,d3]@2 g2 ~ [g2,d3]@2 [g2,d3]@2 [g2,d3] ~ [g2,d3]@2 [g2,d3]@2 [g2,d3] ~", // G5
// … 132 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.