0:00/0:00
// Please Mister Postman — The Beatles
// 129 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(129/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 · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
~@13 A@4 B@2 C@2 D@2 E@2 F@2 G@2 ~@8 H@2 I@5 J K@2 L@2 F@2 M@2 ~@8 N@2 O@2 P@2 Q R S@2 T@2 U@2 V W S@2 X@2 Y@2 Q W Z
AA@2
>`.pickRestart({
A: "[[a3,c#4,e4]@31 [a3,c#4,f#4]@31 ~@2]/4", B: "[[d4,f#4], a3@15 ~]/2", C: "[[g#3,b3]@29 ~@3, e4@31 ~]/2",
D: "[[a3,c#4,a4]@6 [a4,c#5] [g#4,b4], e4@17 ~@15]/2", E: "[[c#4,f#4,a4]@27 ~ [e4,g#4]@4]/2",
F: "[[a3,d4,f#4]@15 ~]/2", G: "[[b3,e4,g#4]@25 ~@7]/2", H: "[[a3,c#4,e4,a4]@31 ~]/2",
I: "[c#4@16 d4@23 ~, [f#4,a4]@79 ~, f#3 ~@4]/5", J: "[b3,e4], [g#4,b4]@7 ~", K: "[[e4,a4,c#5]@7 [g#4,b4]]/2",
L: "[[c#4,f#4,a4]@7 [e4,g#4]]/2", M: "[[b3,e4,g#4]@15 ~]/2",
N: "[[a4,c#5]@23 ~ [a4,c#5]@4 [g#4,b4]@4, e4@3 ~, c#4@3 ~@13]/2", // A G#m
O: "[[c#4,f#4]@23 ~ [f#4,a4]@3 ~ [e4,g#4]@4, a4@21 ~@11]/2", P: "[a3,d4,f#4]/2", Q: "[d4,f#4,a4]@15 ~",
R: "[e4,g#4,b4]@15 ~", S: "[[a4,c#5]@23 ~ [a4,c#5]@4 [g#4,b4]@4, e4@3 ~]/2",
T: "[[f#4,a4]@27 ~ [e4,g#4]@4, c#4@25 ~@7]/2", U: "[~ a3@3, [d4,f#4]@31 ~]/2", V: "[d4,f#4,a4]", W: "[e4,g#4,b4]@7 ~",
X: "[[f#4,a4]@13 ~ [e4,g#4]@2, c#4@7 ~]/2", Y: "[[d4,f#4]@31 ~]/2",
Z: "[e4,a4,c#5]@3 ~@3 [f#4,d5]@3 ~ [e4,c#5] ~ [d4,b4]@3 ~", AA: "[[c#4,e4,a4]@3 ~ [c#4,a4]@8 ~@4]/2",
})).s("gm_string_ensemble_1").gain(0.32)
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
~ A ~ B C D E F G H I J K D L F G M N O P Q L R S T U J V D E W S X I J Y D Z AA G M AB AC AD Q Z AE AF H AG J AH D E
F G AI AJ AK AL AM Z AE AN AO AG AP AQ Q AR F AS AI AT AU AV Q AW F G AX AY AZ BA BB BC@2
>`.pickRestart({
A: "a1@5 ~@11", B: "f#1@5 ~@11", C: "~@5 c#3 c3 b2, ~@12 c#3 ~@3", D: "a2@5 ~ a2@2 e2@5 ~ e2 ~",
E: "a2@5 ~ a2@2 e2 ~ e2 ~ a2@2 g#2 ~", F: "f#2@5 ~ f#2@2 c#2@5 ~ c#2@2", G: "f#2@5 ~ f#2@2 c#2 ~ c#2@2 f#2@2 e2@2",
H: "d2@5 ~ d2@2 a1@5 ~ a1@2", I: "d2@5 ~ d2@2 a1 ~ a1@2 d2@2 d#2 ~", J: "e2@5 ~ e2@2 b1@5 ~ b1@2",
K: "e2@5 ~ e2@2 e2 ~ e2 ~ f#2@2 g#2@2", L: "a2@5 ~ a2@2 e2 ~ e2 ~ a2@2 g#2@2", M: "d2@5 ~ d2@2 a1 ~ a1@3 ~ a1@2",
N: "d2 ~ d2@3 ~@3 a1 ~ a1@2 d2@2 d#2 ~, ~@3 d2@2 ~@3", O: "e2@5 ~ e2@2 b1 ~ b1@3 ~ b1@2",
P: "e2@5 ~ e2 ~ e2 ~ e2 ~ f#2 ~ g#2 ~", Q: "a2@5 ~ a2@2 e2@5 ~ e2@2", R: "f#2@5 ~ f#2@2 c#2@4 ~@2 c#2 ~",
S: "f#2@5 ~ f#2@2 c#2 ~ c#2 ~ f#2@2 e2@2", T: "d2@4 ~@2 d2@2 a1 ~ a1@3 ~ a1@2",
U: "d2@4 ~@2 d2@2 a1 ~ a1@2 d2@2 d#2 ~", V: "e2@6 b1@2 e2 ~ e2 ~ f#2 ~ g#2 ~", W: "f#2@5 ~ f#2 ~ c#2@4 ~@2 c#2 ~",
X: "d2@4 ~@2 d2@2 a1@5 ~ a1@2", Y: "e2@6 b1@2 e2 ~ e2 ~ f#2@2 g#2@2", Z: "a2@5 ~ a2@2 e2 ~ e2@2 a2@2 g#2 ~",
AA: "f#2@5 ~ f#2@2 c#2 ~ c#2@3 ~ c#2@2", AB: "d2 ~ d2@3 ~ d2@2 a1 ~ a1@2 d2@2 d#2 ~",
AC: "e2@5 ~ e2@2 ~@2 b1@3 ~ b1@2", AD: "e2 ~ e2@3 ~ e2 ~ e2 ~ e2@2 f#2 ~ g#2 ~", AE: "f#2@5 ~ f#2@2 c#2@4 ~@2 c#2@2",
AF: "f#2@6 c#2@2 f#2 ~ f#2@2 e2 ~ e2@2", AG: "d2@5 ~ d2@2 a1 ~ a1@2 d2 ~ d#2 ~",
AH: "e2@6 b1@2 e2 ~ e2 ~ f#2@2 g#2 ~", AI: "d2@5 ~ d2@2 a1@4 ~@2 a1@2", AJ: "d2@4 ~@2 d2@2 a1 ~ a1@2 d2@2 d#2@2",
AK: "e2 ~@3", AL: "e1@10 e2@2 f#2@2 g#2 ~", AM: "a2@5 ~ a2@2 e2@4 ~@2 e2@2",
AN: "f#2@5 ~ f#2@2 c#2 ~ c#2@2 f#2 ~ e2@2", AO: "d2@2 ~ d2 a1@2 ~ a1", AP: "e2@5 ~ e2@2 b1@4 ~@2 b1@2",
AQ: "e2 ~ e2@3 ~ e2 ~ e2 ~ e2@2 f#2@2 g#2 ~", AR: "a2@6 e2@2 a2 ~ a2@2 g#2@4", AS: "f#2@6 c#2@2 f#2 ~ f#2@2 e2@4",
AT: "d2@5 ~ d2@2 a1 ~ a1 ~ d2@2 d#2 ~", AU: "e2@5 ~ e2 ~ e2 ~ e2@3 ~ e2 ~",
AV: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2@2 f#2@2 g#2@2", AW: "a2@6 e2@2 a2 ~ a2@2 g#2@2 g#2@2",
AX: "d2@4 ~@2 d2 ~ a1 ~ a1@3 ~ a1@2", AY: "d2@5 ~ d2@2 a1 ~ a1@2 d2 ~ d2 ~",
AZ: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~", BA: "e2 ~ e2 ~ e2 ~ b1 ~ e1 ~ e1 ~ e1 ~ e1@2",
BB: "a1 ~ a1 d2@2 c#2 b1@2", BC: "[a1@3 ~@5 a1@11 ~@13]/2",
})).s("gm_acoustic_bass").gain(0.72)
// other · tenor sax
const tenor_sax = note(`<
~ A ~ B C D E F G H I J K L M N O H P Q R S T U O H V W X Y T Z AA AB V 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 AW BE BF BG BH BI BJ BK BL BM AY BN BO BP BQ AV BR BS BT BU BV BW BX@2
>`.pickRestart({
A: "a3 ~@3", B: "f#3@3 ~@13", C: "~@5 c#4 c4 b3", D: "a3@3 ~@3 a3 ~ e3@3 ~@3 e3@2",
E: "a3@3 ~@3 a3@2 e3 ~ e3@2 a3@2 g#3@2", F: "f#3@2 ~@4 f#3@2 c#3@3 ~@3 c#3@2",
G: "f#3@3 ~@3 f#3 ~ c#3 ~ c#3 ~ f#3@2 e3@2", H: "d3@3 ~@3 d3@2 a2@3 ~@3 a2@2",
I: "d3@3 ~@3 d3 ~ a2 ~ a2 ~ d3@2 d#3 ~", J: "e3@3 ~@3 e3 ~ b2@3 ~@3 b2@2", K: "e3@3 ~@3 e3 ~ e3 ~ e3@2 f#3 ~ g#3 ~",
L: "a3@2 ~@4 a3 ~ e3@2 ~@4 e3 ~", M: "a3@2 ~@4 a3 ~ e3 ~ e3 ~ a3@2 g#3@2", N: "f#3@3 ~@3 f#3 ~ c#3@2 ~@4 c#3@2",
O: "f#3@2 ~@4 f#3 ~ c#3 ~ c#3 ~ f#3@2 e3@2", P: "d3@3 ~@3 d3 ~ a2 ~ a2 ~ d3 ~ d#3 ~",
Q: "e3@4 ~@2 e3@2 b2@2 ~@4 b2 ~", R: "e3@5 ~ e3 ~ e3 ~ e3@2 f#3 ~ g#3@2", S: "a3@3 ~@3 a3@2 e3@3 ~@3 e3@2",
T: "a3@3 ~@3 a3@2 e3 ~ e3 ~ a3@2 g#3@2", U: "f#3@3 ~@3 f#3 ~ c#3@2 ~@4 c#3 ~",
V: "d3@3 ~@3 d3@2 a2 ~ a2 ~ d3 ~ d#3 ~", W: "e3@3 ~@3 e3 ~ b2@3 ~@3 b2 ~", X: "e3@5 ~ e3 ~ e3 ~ e3@2 f#3@2 g#3@2",
Y: "a3@3 ~@3 a3 ~ e3@3 ~@3 e3 ~", Z: "f#3@3 ~@3 f#3 ~ c#3@3 ~@3 c#3 ~", AA: "f#3@3 ~@3 f#3 ~ c#3 ~ c#3 ~ f#3 ~ e3@2",
AB: "d3@3 ~@3 d3 ~ a2@3 ~@3 a2 ~", AC: "e3@3 ~@3 e3@2 b2@3 ~@5", AD: "~@5 e5 f#5 e5",
AE: "a5@3 ~ c5@2 a4 ~ b4@2 a4@2 f#4@2 a4@2", AF: "c5 ~ a4 c5 c#5 [d5,e5] f#5 ~ a5@5 ~@3",
AG: "c#5@2 e5@2 c#5 ~ b4 ~ c#5@2 b4@2 a4 ~ f#4 ~, ~@8 b4 ~@7", AH: "a4@2 b4@2 c#5 ~ f#4@6 ~@2 a4 ~",
AI: "b4@2 ~@2 a4@2 b4@2 d5@2 e5@2 f#5 ~ a5 ~", AJ: "d6@3 ~ f#5 d5@2 ~", AK: "a5@2 d6@2 a5 ~ f#5 ~ e5@4 d5@3 ~",
AL: "~@2 g#5 a5 b5 a5 ~ g#5 ~ f#5 e5 ~ d5 c#5 ~ b4", AM: "a4@3 ~@5", AN: "~@8 c#3@4 ~@2 c#3 ~",
AO: "f#3@4 ~@2 f#3@2 c#3 ~ c#3 ~ f#3@2 e3@2", AP: "d3@4 ~@2 d3 ~ a2@4 ~@2 a2 ~",
AQ: "d3@5 ~ d3@2 a2 ~ a2 ~ d3@2 d#3 ~", AR: "e3@2 ~ e3 b2@2 ~ b2", AS: "e3@5 ~ e3 ~ e3 ~ e3@2 f#3@2 g#3 ~",
AT: "a3@2 ~ a3 e3@2 ~ e3", AU: "a3@5 ~ a3@2 e3 ~ e3@2 a3@2 g#3@2", AV: "f#3@5 ~ f#3@2 c#3@4 ~@2 c#3 ~",
AW: "f#3@5 ~ f#3@2 c#3 ~ c#3 ~ f#3@2 e3@2", AX: "d3@5 ~ d3 ~ a2@5 ~ a2 ~", AY: "d3@5 ~ d3@2 a2 ~ a2 ~ d3 ~ d#3 ~",
AZ: "e3 ~@3", BA: "e3@7 ~", BB: "a3@4 ~@2 a3 ~ e3@4 ~@2 e3 ~", BC: "a3@5 ~ a3@2 e3 ~ e3 ~ a3@2 g#3@2",
BD: "f#3@5 ~ f#3 ~ c#3@4 ~@2 c#3 ~", BE: "d3@5 ~ d3 ~ a2@4 ~@2 a2 ~", BF: "d3@3 ~@3 d3 ~ a2@4 ~@2 d3 ~",
BG: "e3@4 ~@2 e3 ~ e3 ~ e3 ~ e3 ~ e3 ~", BH: "e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3@2 f#3@2 g#3 ~",
BI: "a3@5 ~ a3@2 e3@4 ~@2 e3 ~", BJ: "a3@4 ~@2 a3@2 e3 ~ e3 ~ a3@2 g#3 ~", BK: "f#3@4 ~@2 f#3@2 c#3@4 ~@2 c#3 ~",
BL: "f#3@4 ~@2 f#3@2 c#3 ~ c#3 ~ f#3@2 e3 ~", BM: "d3@5 ~ d3@2 a2@4 ~@2 a2 ~", BN: "e3@5 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3 ~",
BO: "e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3@2 f#3 ~ g#3 ~", BP: "a3@5 ~ a3@2 e3@5 ~ e3 ~",
BQ: "a3@5 ~ a3@2 e3 ~ e3 ~ a3@2 g#3 ~", BR: "f#3@5 ~ f#3 ~ c#3 ~ c#3 ~ f#3@2 e3 ~", BS: "d3@4 ~@2 d3 ~ d3@4 ~@2 d3 ~",
BT: "d3 ~ d3 ~@3 d3 ~ d3 ~ d3@3 ~ d3 ~", BU: "e3@5 ~ e3 ~ e3@5 ~ e3 ~",
BV: "e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ f#3@2 g#3 ~", BW: "a3@2 ~@2 a3@2 d4@3 ~ c#4@2 b3@2 ~@2",
BX: "[a3@3 ~@5 a4@11 ~@13]/2",
})).s("gm_tenor_sax").gain(0.47)
// chords · piano · "A.PIANO 2"
const piano = note(`<
~@5 A B C D E F G H ~@16 A I C J E F K L ~@16 A B C M N O G P Q@2 R@2 S@2 T U V@2 W@2 X@3 Y Z@2 R@2 AA@3 AB@2 ~@2
>`.pickRestart({
A: "~@4 [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@5 ~", // A
B: "[a3,c#4,e4]@3 ~ [a3,c#4,f#4] ~ [a3,c#4,e4]@7 ~@3", // A F#m A
C: "~@2 [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~", // F#m
D: "[a3,c#4,f#4] ~ [a3,c#4,g#4]@3 ~ [a3,c#4,f#4]@7 ~@3", // F#m Amaj7 F#m
E: "~@2 [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~", // D
F: "[a3,d4,f#4] ~ [a3,d4,g#4]@3 ~ [a3,d4,f#4]@8 ~@2", // D
G: "~@4 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2 [b3,e4,g#4] ~ [b3,e4,g#4] ~", // E
H: "[b3,e4,g#4] ~ [b3,e4,a4]@3 ~ [b3,e4,g#4]@8 ~@2", I: "[a3,c#4,e4]@3 ~ [a3,c#4,f#4] ~ [a3,c#4,e4]@8 ~@2",
J: "[a3,c#4,f#4] ~ [a3,c#4,g#4]@3 ~ [a3,c#4,f#4]@9 ~", // F#m Amaj7 F#m
K: "~@4 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4]@3 ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~", // E
L: "[b3,e4,g#4] ~ [b3,e4,a4]@3 ~ [b3,e4,g#4]@7 ~@3", M: "[a3,c#4,f#4] ~ [a3,c#4,g#4]@3 ~ [a3,c#4,f#4]@10",
N: "~@2 [a3,d4,f#4] ~ [a3,d4,f#4] ~@3 [a3,d4,f#4] ~ [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] ~", // D
O: "[a3,d4,f#4] ~ [a3,d4,g#4]@3 ~ [a3,d4,f#4]@7 ~@3", P: "[b3,e4,g#4] ~ [b3,e4,a4]@2 ~@2 [b3,e4,g#4]@6 ~@4",
Q: "[[c#4,e4,a4]@23 ~ [e4,c#5]@4 b4@4, ~@14 d4 ~, ~@28 c#5 ~@3]/2", R: "[[c#4,f#4,a4]@15 ~]/2",
S: "[[d4,f#4,a4]@31 ~]/2", T: "[d4,f#4,a4]@15 ~", U: "[g#4,b4]@15 ~, e4@13 ~@3",
V: "[[c#4,e4,a4]@24 [a4,c#5]@4 [g#4,b4]@3 ~]/2", W: "[[c#4,f#4,a4]@31 ~]/2", X: "[[d4,f#4,a4]@47 ~]/3",
Y: "[e4,g#4,b4]@15 ~", Z: "[[c#4,e4,a4]@6 [a4,c#5] [g#4,b4]]/2", AA: "[~@16 d5@31 ~, [d4,f#4,a4]@31 ~@17]/3",
AB: "[[g#4,e5]@14 ~@2 [a3,a4,c#5]@3 ~@13, e4@19 ~@13, b4 ~]/2", // C#m A
})).s("gm_piano").gain(0.52)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
~ A ~ B ~ C@2 D@2 E F G@2 C H I J F@2 K G L M D@2 N O G@2 H@2 D I O F P G C@2 D@2 O@2 F Q R H I@2 O S T U H C I@2 V W
X Y R@2 I J F Z F U C R I@2 F@3 U C@2 AA AB F W@2 AC AD AE@2
>`.pickRestart({
A: "[a3,e4,a4,c#5,e5]@3 ~@13", B: "[c#4,f#4,a4,c#5,f#5]@3 ~@13",
C: "~@4 [a3,e4,a4,c#5,e5] ~ [a3,e4,a4,c#5,e5]@2 ~@4 [a3,e4,a4,c#5,e5]@2 ~@2", // A
D: "~@4 [c#4,f#4,a4,c#5,f#5] ~ [c#4,f#4,a4,c#5,f#5]@2 ~@4 [c#4,f#4,a4,c#5,f#5]@3 ~", // F#m
E: "~@4 [d4,a4,d5,f#5] ~ [d4,e4,a4,d5,f#5]@2 ~@4 [a3,d4,a4,d5,f#5]@3 ~", // D
F: "~@4 [a3,d4,a4,d5,f#5] ~ [a3,d4,a4,d5,f#5]@2 ~@4 [a3,d4,a4,d5,f#5]@2 ~@2", // D
G: "~@4 [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5]@2 ~@4 [b3,e4,g#4,b4,e5]@3 ~", // E
H: "~@4 [a3,e4,a4,c#5,e5] ~ [a3,e4,a4,c#5,e5]@2 ~@4 [a3,e4,a4,c#5,e5]@3 ~", // A
I: "~@4 [c#4,f#4,a4,c#5,f#5] ~ [c#4,f#4,a4,c#5,f#5]@2 ~@4 [c#4,f#4,a4,c#5,f#5]@2 ~@2", // F#m
J: "~@4 [c#4,f#4,a4,c#5,f#5] ~ [c#4,f#4,a4,c#5,f#5] ~@5 [c#4,f#4,a4,c#5,f#5]@2 ~@2", // F#m
K: "~@4 [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~@5 [b3,e4,g#4,b4,e5]@4", // E
L: "~@4 [a3,d4,e4,a4,c#5,e5] ~ [a3,e4,a4,c#5,e5] ~@5 [a3,e4,a4,c#5,e5]@2 ~@2", // A
M: "~@2 e4 ~ [a3,e4,a4,c#5,e5] ~ [a3,e4,a4,c#5,e5]@2 ~@4 [a3,e4,a4,c#5,e5]@3 ~", // A
N: "~@4 [d4,a4,d5,f#5] ~ [d4,a4,d5,f#5]@2 ~@4 [a3,d4,a4,d5,f#5]@3 ~", // D
O: "~@4 [a3,d4,a4,d5,f#5] ~ [a3,d4,a4,d5,f#5]@2 ~@4 [a3,d4,a4,d5,f#5]@3 ~", // D
P: "~@4 [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5]@2 ~@4 [b3,e4,g#4,b4,e5]@4", // E
Q: "~@4 [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~@5 [b3,e4,g#4,b4,e5]@3 ~", // E
R: "~@4 [a3,e4,a4,c#5,e5] ~ [a3,e4,a4,c#5,e5] ~@5 [a3,e4,a4,c#5,e5]@2 ~@2", // A
S: "~@4 [a3,d4,a4,d5,f#5] ~ [a3,d4,a4,d5,f#5] ~@5 [a3,d4,a4,d5,f#5]@3 ~", // D
T: "~@4 [b3,c#4,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5]@2 ~@4 [b3,e4,g#4,b4,e5]@3 ~", // C#m7 E
U: "~@4 [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5]@2 ~@4 [b3,e4,g#4,b4,e5]@2 ~@2", // E
V: "~@4 [d4,a4,d5,f#5] ~ [d4,a4,d5,f#5] ~@5 [a3,d4,a4,d5,f#5]@2 ~@2", // D
W: "~@4 [a3,d4,a4,d5,f#5] ~ [a3,d4,a4,d5,f#5] ~@5 [a3,d4,a4,d5,f#5] ~@3", X: "[b3,e4,g#4,b4,e5]@7 ~@9",
Y: "[b3,e4,g#4,b4,e5]@15 ~", Z: "~@4 [a3,d4,a4,d5,f#5] ~ [a3,d4,a4,d5,f#5] ~@5 [a3,d4,a4,d5,f#5]@2 ~@2",
AA: "~@4 [c#4,f#4,a4,c#5,f#5] ~ [c#4,f#4,a4,c#5,f#5]@2 ~@4 [c#4,f#4,a4,c#5,f#5] ~@3", // F#m
AB: "~@2 f#4 ~ [c#4,f#4,a4,c#5,f#5] ~ [c#4,f#4,a4,c#5,f#5] ~@5 [c#4,f#4,a4,c#5,f#5]@2 ~@2", // F#m
AC: "~@4 [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5]@2 ~@4 [b3,c#4,e4,g#4,b4,e5] ~@3", // E C#m7
AD: "[a3,e4,a4,c#5,e5]@2 ~@2 [a3,e4,a4,c#5,e5] ~ [d4,a4,d5,f#5]@2 ~@2 [c#4,a4,e5] ~ [b3,a4,d5]@2 ~@2", // A D A Bm7
AE: "[[a3,e4,a4,c#5]@3 ~@5 [a3,e4,a4,c#5]@14 ~@10]/2", // A
})).s("gm_acoustic_guitar_steel").gain(0.42)
// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
~ A ~ B C D E F@2 G@2 H I J K L@2 G M N O P Q R S T U V W X Y Z@2 AA T AB@2 AC Y AD@2 AE U AF AG Y@2 AH@2 AI AJ AK AL
Y@2 AM Z AF AN ~@3 AO AP AQ AR AS AT@2 AU AV AW@2 AX@2 ~ AY AZ BA BB BC BD ~ BE@2 BF BG@2
>`.pickRestart({
A: "[a3,e4,a4] ~@3", B: "[f#3,c#4,f#4]@5 ~@11", C: "~@10 c#5@2 c5@2 b4 ~",
D: "~@2 a4 c#5 e5@2 a5@2 ~@2 e5 ~ c#5 ~ e5 ~", E: "~@2 a4 c#5 e5 ~ a5@2 ~@2 e5 ~ c#5 ~@3",
F: "~@2 f#4 a4 c#5 ~ f#5 ~@3 c#5 ~ a4 ~ c#5 ~", G: "~@2 f#4 a4 d5 ~ f#5 ~@3 d5 ~ a4 ~ d5 ~",
H: "~@2 e4 g#4 b4@2 e5 ~@3 b4 ~ g#4 ~ b4 ~", I: "~@8 b4 c#5 [d#5,e5] ~ f#5@2 e5@2", J: "a5 ~@3",
K: "~@2 a4 c#5 e5 ~ a5@2 ~@2 e5 ~ c#5 ~ e5 ~", L: "~@2 f#4 a4 c#5 ~ f#5@2 ~@2 c#5 ~ a4 ~ c#5 ~",
M: "~@2 f#4 a4 d5 ~ f#5 ~@3 d5 ~ a4@2 d5 ~", N: "~@2 e4 g#4 b4 ~ e5@2 ~@2 b4 ~ g#4 ~ b4 ~",
O: "~@2 e4 ~ b4@2 e5@4 b4 ~ g#4@2 b4 ~, ~@3 g#4@3 ~@10", P: "~@2 a4 c#5 e5@2 a5@3 ~ e5 ~ c#5@2 e5 ~",
Q: "~@2 a4 c#5 e5@2 a5@3 ~ e5@2 ~@4", R: "~@2 f#4 a4 c#5 ~ f#5@4 c#5 ~ a4 ~ c#5 ~",
S: "~@2 f#4 a4 c#5 ~ f#5@3 ~ c#5 ~ a4 ~ c#5 ~", T: "~@2 f#4 a4 d5@2 f#5@4 d5@2 a4@2 d5 ~",
U: "~@2 f#4 a4 d5 ~ f#5@4 d5@2 a4@2 d5 ~", V: "~@2 e4 g#4 b4@2 e5@4 b4@2 g#4@2 b4@2",
W: "~@2 e4 g#4 b4@2 e5@4 b4@2 e5@2 ~@2", X: "~@2 a4 c#5 e5@2 a5@3 ~ e5@2 c#5@2 e5@2",
Y: "~@2 a4 c#5 e5@2 a5@4 e5@2 c#5@2 e5 ~", Z: "~@2 f#4 a4 c#5@2 f#5@4 c#5@2 a4@2 c#5 ~",
AA: "~@2 f#4 a4 d5@2 f#5@3 ~ d5@2 a4@2 d5 ~", AB: "~@2 e4 g#4 b4@2 e5@4 b4@2 g#4@2 b4 ~",
AC: "~@2 a4 ~ e5@2 a5@4 e5 ~ c#5@2 e5 ~, ~@3 c#5@2 ~@11", AD: "~@2 f#4 a4 c#5 ~ f#5@4 c#5@2 a4@2 c#5 ~",
AE: "~@2 f#4 a4 d5 ~ f#5@3 ~ d5@2 a4@2 d5 ~", AF: "~@2 d4 a4 d5@2 f#5@4 d5@2 a4@2 d5 ~",
AG: "~@2 e4 g#4 b4@2 e5@4 b4@2 g#4@2 ~@2", AH: "~@2 f#4 c#5 f#5@2 a5@4 f#5@2 c#5@2 f#5 ~",
AI: "~@2 a4 d5 f#5@2 a5@4 f#5@2 d5 ~ f#5 ~", AJ: "~@2 a4 d5 f#5@2 a5@4 f#5@2 d5@2 f#5 ~",
AK: "~@2 g#4 b4 e5@2 g#5@4 e5@2 b4@2 e5 ~", AL: "~@2 e4 g#4 b4@2 e5@3 ~ b4@2 e5@2 ~@2",
AM: "~@2 f#4 a4 c#5@2 f#5@4 c#5@2 a4@2 c#5@2", AN: "~@2 d4 a4 d5 ~ f#5@3 ~ d5@2 a4 ~ d5 ~",
AO: "~@2 e5@2 c#6 ~ d5@2 b5 ~@3 a5@4, ~@10 c#5@5 ~", AP: "[c#5,f#5]@7 ~",
AQ: "~@12 a4@3 ~, ~ f#4@5 ~@2, ~@2 a4@3 c#5@2 ~, ~@3 f#5@4 ~", AR: "[a4,d5]@15 ~",
AS: "~@2 a4 b4 d5 ~ d5@4 b4 ~ d5@2 b4 ~", AT: "[e5@18 ~@8 e6@5 ~, ~@24 g#5@7 ~]/2", AU: "[a5,c#6]",
AV: "~@2 e5@2 c#6 ~ d5@2 b5 ~@3 a5@3 ~, ~@10 c#5@5 ~",
AW: "[~@6 c#5@4 ~@4 f#5@13 ~@5, f#5@12 c#5@15 ~@5, a4@9 ~ a4@17 ~@5]/2",
AX: "[a4@4 b4@2 ~@2 d5@13 ~@11, d5@3 a4@7 ~@6]/2", AY: "~@2 g#5@2 ~@2 [g#5,e6] ~@2 e6 ~@6, ~@8 [f#5,d6]@7 ~",
AZ: "~@2 c#6@13 ~, e5", BA: "~ e5 c#6 [c5,d5] b5 ~ a5@2, ~@10 c#5@5 ~", BB: "~@2 c#5@11 ~@3, f#5, a4@13 ~@3",
BC: "~@6 f#5@3 ~ f#5@2 e5@2 d5@2, ~@9 a5@2 ~@5", BD: "e5 f#5@5 ~@2", BE: "[~@8 e6@7 ~, ~@14 g#5@15 ~@3]/2",
BF: "[a5,c#6]@4 ~@2 [f#5,d6]@3 ~ [e5,c#6] ~ [d5,b5]@3 ~", BG: "[[c#5,a5]@5 ~@3 [a4,c#5]@14 ~@10]/2",
})).s("gm_electric_guitar_muted").gain(0.33)
// drums · kick
const kick = s("bd").struct(`<
~ A@4 B C B@2 D C B E F E F@2 B E F B E F@2 B F E F E F@2 B@4 C G B@2 H E F@3 B F@3 E F@3 D F@3 E F E A I F@3 J B F@2
G F B@2 E F@3 G F E B F K D E G L M ~
>`.pickRestart({
A: "x ~@6 x", B: "x ~@2 x!3 ~ x", C: "x ~@2 x!3 ~@2", D: "x!2 ~ x!3 ~@2", E: "x ~@3 x!2 ~@2", F: "x ~@3 x!2 ~ x",
G: "x!2 ~@2 x!2 ~@2", H: "x!2 ~@2 x!2 ~ x", I: "x ~@4 x ~ x", J: "x!2 ~ x!2 ~@3", K: "x!2 ~ x!2 ~@2 x",
L: "x ~ x!2 ~ x!2 ~", M: "x!2",
})).gain(0.56)
// drums · snare
const snare = s("sd").struct("<~@5 [~ x ~ x]!54 ~@2 [~ x ~ x]!15 [~@2 x ~@3 x!2] [~ x ~ x]!8 ~@3>").gain(0.56)
// drums · clap
// … 30 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.