0:00/0:00
// Hope of Deliverance — McCartney
// 124 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 131 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(124/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.
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
~@4 A B C D A B C E F G H I J K L M N O A P Q R F S T G U V W X Y Z AA AB AC W AD AE X AF AG@2 L P L K AH P N AI AJ AK
N AL F G AM AN AO AP AQ AR AS AG W AT AQ AU AV AR Y AA AW AH AX AY S AH B AY AZ BA BB BC BD AK BE AE AR Y BF AG AE BG
BH BI BJ BK Y AW W BG BL BM BH X AF AG BN AH B A BO BP BQ BR P L P L BQ AJ P BS BT BU@2
>`.pickRestart({
A: "c3@6 e2@6 g2@3 ~", B: "a2@5 ~ c3@6 a2@3 ~", C: "d3@5 ~ f3@6 a3@4", D: "d3@4 ~@2 d3@7 ~@3", E: "d3@6 f2@6 a2@3 ~",
F: "d3@5 ~ a2@5 ~ c3@3 ~", G: "d3@5 ~ d3@8 ~@2", H: "c3@5 ~ e3@6 g3@2 ~@2", I: "a2@5 ~ a2@5 ~ g2@3 ~",
J: "c3@5 ~ e3@6 g3@4", K: "a2@3 ~", L: "c3@5 ~ e2@5 ~ g2@3 ~", M: "a2@5 ~ c3@5 ~ e3@3 ~", N: "d3@5 ~ f3@6 a3@3 ~",
O: "d3@5 ~ d3@7 ~@3", P: "a2@5 ~ c3@6 e3@3 ~", Q: "d3@2 ~ f3@3 a3@2", R: "d3@5 ~ d3@6 a2@3 ~", S: "d3@2 ~ d3@4 ~",
T: "a2@2 ~ a2@2 g2 a2@2", U: "a2@5 ~ a2@4 g2@2 a2@4", V: "d3@5 ~ d3@4 c3 ~ d3@3 ~", W: "f3@5 ~ f3@10",
X: "e3@5 ~ e3@9 ~", Y: "d3@5 ~ d3@10", Z: "c3@5 ~ c3@10", AA: "c3@4 ~@2 c3@9 ~", AB: "f3@2 ~ f3@5",
AC: "a2@4 ~@2 a2@9 ~", AD: "a2@5 ~ a2@9 ~", AE: "f3@5 ~ f3@9 ~", AF: "d3@5 ~ d3@9 ~", AG: "c3@5 ~ c3@8 ~@2",
AH: "c3@5 ~ e2@6 g2@3 ~", AI: "d3@3 ~@3 d3@7 ~@3", AJ: "c3@6 e2@5 ~ g2@3 ~", AK: "a2@3 c3@3 a2@2",
AL: "d3@6 a2@5 ~ c3@3 ~", AM: "a2@5 ~ a2@5 ~ a2@3 ~", AN: "d3@5 ~ a2@5 ~ d3@4", AO: "a2@4 ~@2 a2@4 g2@2 a2@3 ~",
AP: "d3@5 ~ a2@4 c3@2 d3@3 ~", AQ: "f3@5 ~ f3@6 f3@4", AR: "e3@5 ~ e3@10", AS: "d3@5 ~ d3@5 ~ d3@4",
AT: "a2@2 ~ a2@5", AU: "a2@4 ~@2 a2@5 ~ a2@4", AV: "f3@6 f3@5 ~ f3@4", AW: "c3@3 ~@3 c3@8 ~@2",
AX: "a2@5 ~ c3@6 a2@2 ~@2", AY: "d3@3 f3@3 a3@2", AZ: "d3@2 ~ a2@3 c3 ~", BA: "d3@5 ~ a2@6 c3@2 ~@2",
BB: "d3@3 a2@3 d3@2", BC: "a2@5 ~ c3@5 ~ a2@3 ~", BD: "d3@5 ~ d3@4 a2@2 d3@4", BE: "d3@5 ~ d3@5 ~ d3@2 ~@2",
BF: "c3@5 ~ c3@5 ~ c3@2 ~@2", BG: "a2@4 ~@2 a2@6 c3@2 a2 ~", BH: "f3@5 ~ f3@7 ~ f3@2", BI: "a2@5 ~ a2@6 c3@2 a2@2",
BJ: "f3@5 ~ f3@5 ~ f3@4", BK: "e3@5 ~ e3@5 ~ e3@4", BL: "f3@5 ~ f3@8 e3@2", BM: "a2@5 ~ a2@3 ~ a2 ~ c3@2 a2 ~",
BN: "c3@5 ~ c3@5 ~ c3@3 ~", BO: "a2@6 c3@6 e3@3 ~", BP: "c3@6 e2@5 ~ g2@2 ~@2", BQ: "a2@5 ~ c3@3 ~ c3@2 e3@3 ~",
BR: "c3@4 ~@2 e2@5 ~ g2@3 ~", BS: "c3@5 ~ e3@6 g3@3 ~", BT: "a2@5 ~ c3@3 ~ c3 ~ e3@3 ~", BU: "[c3@27 ~@5]/2",
})).s("gm_acoustic_bass").gain(0.28)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note("<~@76 A B C D E B C F G H I J K L M N O@2 P Q N R S T U V W X ~@27>".pickRestart({
A: "~@2 [e4,g4]@2 [f4,a4]@2 [g4,b4]@2 [a4,c5] ~ [b4,d5]@2 [c5,e5]@2 [d5,f5] ~", B: "[c5,e5]@5 [d5,f5]@2 [e5,g5]",
C: "[a4,c5]@5 [b4,d5]@2 [c5,e5]", D: "[f4,a4]",
E: "~@2 [e4,g4]@2 [f4,a4]@2 [e4,g4]@2 [f4,a4]@2 [e4,g4]@2 [d4,f4] ~ [c4,e4] ~", F: "[f4,a4]@5 [g4,b4]@2 [a4,c5]",
G: "~@14 [a3,d4] c4", H: "[d4,f4]@5 ~ [e4,g4]@5 ~ [f4,a4]@4", I: "~@2 [g4,c5]@5 ~ [a4,d5]@4 [c5,e5]@2 [d5,f5]@2",
J: "[c5,e5]@7 ~", K: "~@8 [d5,f5]@3 [c5,e5]@3 [b4,d5]@2", L: "~ [a4,c5]@12 ~@3",
M: "~@8 [c5,e5]@3 ~ [d5,f5]@2 [e5,g5] ~", N: "[f5,a5]@7 ~ [f5,a5]@5 ~ [f5,a5]@2",
O: "[[e5,g5]@2 [d5,f5]@2 [c5,e5]@4 [a4,c5]@2 [c5,e5]@3 ~ [d5,f5]@7 ~ [d5,f5]@4 [e5,g5]@3 ~ [d5,f5]@2]/2", // Em Dm C Am C Dm Em Dm
P: "~ [c5,e5]@7", Q: "~@2 [c5,e5]@4 ~@2 [c5,e5]@3 ~ [c5,e5]@2 ~@2", R: "[e5,g5]@2 [d5,f5]@2 [c5,e5]@9 ~@3",
S: "[f5,a5]@7 ~ [g5,b5]@5 ~ [f5,a5]@2", T: "[e5,g5]@2 [d5,f5] ~ [c5,e5]@9 ~@3",
U: "[f5,a5]@7 ~ [f5,a5]@4 ~@2 [f5,a5]@2", V: "[e5,g5] ~ [d5,f5] ~ [c5,e5]@3 ~ [a4,c5]@2 [c5,e5]@3 ~ [d5,f5]@2",
W: "[d5,f5]@5 ~ [d5,f5]@5 ~ [e5,g5]@2 [d5,f5]@2", X: "~@2 [c5,e5]@9 ~@5",
})).s("gm_acoustic_guitar_steel").gain(0.32)
// chords · string ensemble 2 · "STRINGS"
const string_ensemble_2 = note(`<
~@18 A B C@2 A B D@4 E F E F G H I@3 J K J E L H M@3 N@2 O@2 A P Q@2 R S T@4 E U E U G H V@2 J K J K J H W@3 X@4 Y@6 E
U K U Z H AA@3 L K J E G H AB@2 AC E L E J H AD AE@2 AF@2 AG@2 AF@2 AH@2 AI@4 AG@2 AI@2 AJ@2
>`.pickRestart({
A: "[g3,c4,e4]@7 ~", B: "[d4,f4]@2 [c4,e4]@5 ~, a3@7 ~", C: "[[d4,g4]@2 ~@2 d4@11 ~, a3@29 ~@3, ~@2 [c4,f4]@13 ~]/2",
D: "[[a3,d4,g4]@5 ~ [a3,d4,f4]@57 ~, ~@3 c4@13 ~@16]/4", E: "[a3,c4,e4]@15 ~", F: "[a3,d4,f4]@7 ~",
G: "[f3,a3,c4,f4]@15 ~", H: "[e3,a3,c4,e4]@15 ~", I: "[[d3,d4]@16 c4@29 ~@3, [f3,a3]@15 ~]/3", J: "[a3,c4,f4]@15 ~",
K: "[a3,c4,e4]@7 ~", L: "[a3,c4,f4]@7 ~", M: "[[d3,d4]@8 c4@15 ~, [f3,a3]@23 ~]/3",
N: "[g3@15 ~ a3@14 ~@2, [c4,e4]@31 ~]/2", O: "[g3@7 ~ a3@3 ~@5, [c4,e4]@11 ~@5]/2",
P: "[d4,f4]@4 [c4,e4]@9 ~@3, a3@3 ~", Q: "[g4@3 ~ [c4,f4]@27 ~, [a3,d4]@31 ~]/2", R: "[g3,c4,e4]@15 ~",
S: "[d4,f4]@4 [c4,e4]@11 ~, a3@7 ~", T: "[g4@5 ~ f4@57 ~, [a3,d4]@63 ~, ~@6 c4@27 ~@31]/4", U: "[a3,d4,f4]@15 ~",
V: "[[d3,d4]@8 c4@7 ~, f3, a3@15 ~, ~@2 c3 ~]/2", W: "[[d3,d4] c3@2, [f3,a3]@23 ~, ~@8 c4@15 ~]/3",
X: "[g3@14 ~@18 [d4,f4]@31 ~, [c4,e4]@15 ~@17, ~@8 a3@23 ~]/4", // Dm C
Y: "[g3@15 ~@17 [d4,f4]@63 ~, [c4,e4] ~@2, ~@16 a3@79 ~]/6", Z: "[f3,a3,c4,f4]@7 ~",
AA: "[[d3,d4]@16 c4@29 ~@3, [f3,a3]@15 ~, ~@8 c3@9 ~@7]/3", AB: "[[d3,d4]@16 [c3,c4]@13 ~@3, [f3,a3]@7 ~]/2",
AC: "[f3,a3,c4,f4]", AD: "[d3,f3,a3,d4]", AE: "[[f3,a3,c4]@15 ~, c3]/2", AF: "[g3@7 ~ a3@7 ~, [c4,e4]@31 ~]/2",
AG: "[g3@15 ~ a3@14 ~@2, [c4,e4]@15 ~]/2", AH: "[g3@15 ~ a3@13 ~@3, [c4,e4]@29 ~@3]/2",
AI: "[g3@7 ~ a3@7 ~, [c4,e4]@15 ~]/2", AJ: "[[c3,g3,c4,e4]@9 ~@7]/2",
})).s("gm_string_ensemble_2").gain(0.2)
// chords · acoustic guitar nylon · "A.GUITAR"
const acoustic_guitar_nylon = note(`<
A B A C D E F@2 A E G@2 H I A B A J A K L H D B M H I N O H P H Q R H S T U B V E W E H X Y Z B AA AB AC AD AE AF D AG
AH AI H I AJ I P H AK E H AL AM AN AO E AP AQ AR Y AS A R AT AU AV AW AX AY AZ I BA I BB BC W E BD BE BF BG R BH B BI
BJ BK BL BM BN BO E BP BQ BR BS BT A B BU BV BW P BX BY BZ CA CB AN CC CD CE CF CG@2
>`.pickRestart({
A: "[g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~", // C
B: "[a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5] ~", // Am
C: "[a3,c4,e4,a4,c5,e5]@13 ~@3", // Am
D: "[g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5] ~", // C
E: "[a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~", // Am
F: "[a3,d4,f4,a4,d5,f5]@3 ~ [a3,d4,f4,a4,d5,f5] ~ [a3,d4,f4,a4,d5,f5]@3 ~ [a3,d4,f4,a4,d5,f5] ~ [a3,d4,f4,a4,d5,f5]@3 ~", // Dm
G: "[a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@2 ~@2", // Dm
H: "[a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~", // Dm
I: "[a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5] ~", // Dm
J: "[c4,e4,a4,c5,e5]@7 ~, a3@3 ~", // Am
K: "[a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,e5]@2 [a4,c5,e5] ~, ~@12 [a4,c5] ~@3", // Am
L: "[a3,d4,a4,d5,g5]@3 ~ [d4,a4,d5,g5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~", // Dsus4 Dm
M: "[a3,d4,a4,d5,g5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5] ~", // Dsus4 Dm
N: "[a3,d4,d5] ~ [a3,d4,d5] ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5] ~, [a4,f5] ~@7", // D5 Dm
O: "[a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4]@2 [c5,e5] ~, ~@12 [c5,e5] ~@3", // Am A5 C
P: "[a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5] ~", // Am
Q: "[a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4]@4 [a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~, ~@6 [a4,c5,f5]@3 ~@7", // F
R: "[a3,c4,e4,a4,c5,e5]@3 ~ [c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~", // Am
S: "[a3,c4,a4,c5,f5]@3 ~ [c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@3 ~", // F
T: "[a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~, ~@6 [a3,c4] ~", // F Am
U: "[a3,c4,f4]@4 [a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~, [a4,c5,f5] ~@7", // F
V: "[a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,f5]@2 c5 ~, ~@12 c5 ~@3", // F
W: "[a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~", // F
X: "[a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5] ~ [c4,a4,c5,f5] ~", // F
Y: "[a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@3 ~", // F
Z: "[g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~ [c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~", // C
AA: "[g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [c4,e4,g4,c5,e5]@3 ~, [f3,d4] ~@11 g3 ~@3", // C Dm
AB: "[a3,e4,a4,c5,e5]@7 ~", // Am
AC: "[g3,c4,e4,g4,c5,e5]@3 ~ [c4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@2 c5 ~", // C
AD: "[a3,c4,e4,a4,c5,e5]@3 ~ [c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~, ~@12 d5 ~@3", // Am
AE: "[a3,d4,a4,d5,g5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,f4,a4,d5,f5] ~ [a3,f4,a4,d5,f5]@2 ~@2", // Dsus4 Dm
AF: "[a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4]@2 [d5,f5] ~, ~@12 [d5,f5] ~@3", // Dm D5 Dm
AG: "[a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~, c4 ~@5 c#4 ~@9", // Am
AH: "[a3,d4,a4,d5,g5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [d5,f5] ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5] ~", // Dsus4 Dm
AI: "[a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~, ~@6 [a3,d4] ~", // Dm D5
AJ: "[a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@2 ~@2 [a3,e4,a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~, ~@6 [a3,e4] ~", // Am A5
AK: "[a3,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,f4,a4,c5,f5]@3 ~ [a4,c5,f5] ~ [a3,c4,f4,a4]@2 [c5,f5] ~, ~@6 c4@4 ~@2 [e4,c5,f5] ~@3", // F F5 Fmaj7
AL: "[a3,c4,a4,c5,f5]@2 ~@2 [c4,a4,c5,f5] ~ [a3,a4,c5]@4 [a3,c4,f5] ~ [a3,c4,a4,c5,f5]@2 ~@2, ~@6 [c4,f5]@3 ~@7", // F Am F F5
AM: "[a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5] ~, d4 ~@15", // F
AN: "[a3,c4,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~, ~@6 [a3,e4] ~", // Am A5
AO: "[a3,f4,c5,f5]@4 [c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~, a4 ~@7", // F
AP: "[a3,c4,f4,a4,c5,f5]@2 ~@2 [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5] ~", // F
AQ: "[a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~ [c4,e4,a4,c5,e5] ~ [a3,c4,e4]@2 [a4,c5,e5] ~, ~@12 [a4,c5,e5] ~@3", // Am
AR: "[a3,d4,a4,d5,f5]@2 ~@2 [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~", // Dm
AS: "[a3,c4,a4,c5,f5]@3 ~ [a4,c5,f5] ~ [a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@2 ~@2", // F
AT: "[a3,d4,a4,d5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,f4,a4,d5,f5]@3 ~, ~@12 d#5 ~@3", // D5 Dm
AU: "[a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~, [c5,d#5] ~@15", // Dm Cm
AV: "[g3,c4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~", // C
AW: "[a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,e5]@2 c5 ~, ~@12 c5 ~@3", // Am A5
AX: "[a3,d4,a4,d5,g5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [d4,a4,d5,f5] ~ [a3,d4,a4,d5]@2 f5 ~, ~@12 f5 ~@3", // Dsus4 Dm D5
AY: "[a3,d4,a4,d5,f5]@3 ~ [d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a4,d5,f5] ~ [a4,d5,f5] ~, ~@6 [a3,d4] ~", // Dm D5
AZ: "[a3,d4,d5,f5]@4 [a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,f5]@2 d5 ~, a4@2 ~@10 d5 ~@3", // Dm
BA: "[a3,e4,a4,c5,e5]@2 ~@2 [a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~", // Am
BB: "[a3,e4,c5,e5]@4 [a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~, a4 ~@5 [a3,e4] ~", // Am A5
BC: "[a3,d4,f5]@4 [a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~, [a4,d5] ~@7", // Dm D5
BD: "[a3,d4,a4,d5,f5]@3 ~ [a3,d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~ [a3,d4,d5] ~ [a3,d4,a4,d5,f5]@3 ~", // Dm D5 Dm
BE: "[a3,c4,c5,f5]@4 [c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@3 ~, a4 ~@7", // F
BF: "[a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@2 ~@2 [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5] ~", // F
BG: "[a3,c4,a4,c5,f5]@4 [a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~, f4 ~@15", // F
BH: "[a3,c4,f4,a4,c5,f5]@2 ~@2 [c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~", // F
BI: "[a3,c4,f4,a4,c5,f5]@2 ~@2 [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~", // F
BJ: "[a3,c4,e4]@4 [a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~, [a4,c5,e5] ~@7", // Am
BK: "[a4,d5,f5]@2 ~@2 [a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~@3 [a3,d4,a4,d5,f5]@3 ~, [a3,d4] ~@3", // Dm D5
BL: "[a3,c4,a4,c5,f5]@4 ~@2 [a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@3 ~", // F
BM: "[a3,c4,f4,a4,c5,f5]@3 ~ [a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~ [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~", // F
BN: "[a3,c4,e4,a4,c5,e5]@4 [a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~", // Am
BO: "[a3,c4,f4,a4,c5,f5]@3 ~ [a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@5 ~ [a3,c4,f4,a4,c5,f5]@3 ~", // F
BP: "[a3,c4,f4,a4,c5,f5]@2 ~@2 [a3,c4,f4,a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@4 [a4,c5,f5] ~ [a3,c4,f4,a4,c5,f5]@3 ~", // F
BQ: "[a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~ [a3,c4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~", // Am
BR: "[a3,d4,a4,d5,f5]@3 ~ [d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@4 [d4,a4,d5,f5] ~ [a3,d4,a4,d5,f5]@3 ~, e5 ~@11 b3 ~@3", // Dm
BS: "[a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,f5]@2 c5 ~, ~@12 c5 ~@3", // F
BT: "[a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@3 ~ [a3,c4,a4,c5,f5] ~ [a3,c4,a4,c5,f5]@2 ~@2", // F
BU: "[g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~, ~@6 a#3 ~@9", // C
BV: "[a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,e5]@2 [a4,c5,e5] ~, ~@12 c5 ~@3", // Am A5 Am
BW: "[g3,e4,c5,e5]@4 [g4,c5,e5] ~ [g3,c4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~, g4@2 ~@4 [a#3,e4] ~@9", // C A#dim
BX: "[g3,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4]@2 [g4,c5,e5] ~, ~@12 [g4,c5,e5] ~@3", // C
BY: "[a3,e4,a4,c5,e5]@2 ~@2 [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~, ~@6 [a3,e4] ~", // Am A5
BZ: "[g3,c4,e4,e5]@4 [g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5] ~, [g4,c5] ~@7", // C C5
CA: "[a3,e4,a4,c5,e5]@2 ~@2 [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@2 c5 ~", // Am
CB: "[g3,e4,c5,e5]@4 [g4,c5,e5] ~ [g3,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4]@2 [g4,c5,e5] ~, g4@2 ~@10 [g4,c5,e5] ~@3", // C
CC: "[g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4]@2 [g4,c5,e5] ~, ~@12 [g4,c5,e5] ~@3", // C
CD: "[a3,e4,a4,c5,e5]@2 ~@2 [a3,e4,a4,c5,e5] ~ [a3,c4,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a4,c5,e5] ~ [a4,c5,e5] ~, ~@6 [a3,e4] ~", // Am A5
CE: "[g3,c4,e4,g4,c5,e5]@3 ~ [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@2 ~@2 [g3,c4,e4,g4,c5,e5] ~ [g3,c4,e4,g4,c5,e5]@2 [g4,c5,e5] ~", // C
CF: "[a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@3 ~ [a3,e4,a4,c5,e5] ~ [a3,e4,a4,c5,e5]@2 ~@2", // Am
CG: "[[g3,c4,g4,c5,e5]@15 ~, e4@27 ~@5]/2", // C
})).s("gm_acoustic_guitar_nylon").gain(0.2)
// drums · kick
const kick = s("bd").struct(`<
~@4 A@3 B A@3 B A B A B A C A B A B A B A@3 D@5 A@12 B E B@3 C A@10 D@4 A@5 B@2 A B A@3 E F@8 B A B A@10 B A@14 B A B
A B A B A B C A@2 B A@2 G C ~
>`.pickRestart({
A: "x ~@2 x ~@4", B: "x ~@2 x ~@3 x", C: "x", D: "x ~@2 x!2 ~@3", E: "x ~@2 x ~ x ~ x", F: "x!2",
G: "x ~@2 x ~ x!2 ~",
})).gain(0.31)
// drums · rim
const rim = s("rim").struct("<~@4 [~@3 x]!13 ~ [~@3 x]!18 ~@95>").gain(0.36)
// drums · clap
const clap = s("cp").struct("<~@77 [~@2 x!2 ~@2 x ~]!52 ~@2>").gain(0.36)
// drums · snare
const snare = s("sd").struct("<~@36 A B@12 ~ C@17 A B@9 D@45 E D@5 F ~@2>".pickRestart({
A: "~@10 x!3 ~ x ~", B: "~ x ~ x", C: "~@3 x", D: "~@2 x!2 ~@2 x ~", E: "~@4 x ~@5 x ~ x!3 ~",
F: "~@4 x ~ x ~@3 x ~ x ~ x!2",
})).gain(0.31)
// drums · hihat
const hihat = s("hh").struct("<~@4 A@13 B A@18 C A@12 B A@17 C A@54 C A@5 D B ~>".pickRestart({
A: "x!8", B: "x", C: "x!5 ~@3", D: "x!7 ~",
})).gain(0.31)
// drums · crash
const crash = s("cr").struct(`<
~@4 A ~@13 A ~@18 A ~@11 A@2 ~@17 A ~@8 A ~@13 A ~@4 A ~@7 A ~@8 A ~@9 A ~@5 A ~
>`.pickRestart({
A: "x",
})).gain(0.26)
// drums · bongos
const bongos = s("bongo:4").struct("<~@15 [~@7 x] ~@115>").gain(0.41)
// drums · bongos
// … 75 more lines
More by 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.