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, A@4 for four bars: edit a riff to change every repeat.
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
~@4 A B C D A B E F G H I J K L A M E H A M E N G H O H O P Q R S T U Q V Q V W R H U@2 A M A L X M E Y A B E G@2 H Z
AA O AB AC R AD U Q V AC Z AC R S U T A B AE Y A B E G@2 AF B AG B AH Q R S AI U Q AJ AK AJ AC AL S T Q AJ AM AN AK R
S U AI AO B A M A AP AQ M A M A AP A M K AP AR@2
>`.pickRestart({
A: "c3@5 ~ e2@5 ~ 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@5 ~ f3@6 a3@3 ~", F: "d3@6 f2@6 a2@3 ~", G: "d3@5 ~ a2@5 ~ c3@3 ~", H: "d3@5 ~ d3@8 ~@2",
I: "c3@5 ~ e3@6 g3@2 ~@2", J: "a2@5 ~ a2@5 ~ g2@3 ~", K: "c3@5 ~ e3@6 g3@4", L: "a2@3 ~", M: "a2@5 ~ c3@6 e3@3 ~",
N: "d3@5 ~ d3@6 a2@3 ~", O: "a2@2 ~ a2@2 g2 a2@2", P: "d3@5 ~ d3@4 c3 ~ d3@3 ~", Q: "f3@5 ~ f3@10",
R: "e3@5 ~ e3@9 ~", S: "d3@5 ~ d3@10", T: "c3@4 ~@2 c3@9 ~", U: "c3@5 ~ c3@8 ~@2", V: "a2@4 ~@2 a2@9 ~",
W: "f3@5 ~ f3@9 ~", X: "c3@6 e2@6 g2@3 ~", Y: "d3@2 ~ d3@4 ~", Z: "a2@5 ~ a2@5 ~ a2@3 ~", AA: "d3@5 ~ a2@5 ~ d3@4",
AB: "d3@5 ~ a2@4 c3@2 d3@3 ~", AC: "f3@5 ~ f3@6 f3@4", AD: "d3@5 ~ d3@5 ~ d3@4", AE: "d3@3 f3@3 a3@2",
AF: "d3@3 a2@3 d3@2", AG: "d3@5 ~ d3@4 a2@2 d3@4", AH: "d3@5 ~ d3@5 ~ d3@2 ~@2", AI: "c3@5 ~ c3@5 ~ c3@2 ~@2",
AJ: "a2@4 ~@2 a2@6 c3@2 a2 ~", AK: "f3@5 ~ f3@7 ~ f3@2", AL: "e3@5 ~ e3@5 ~ e3@4", AM: "f3@5 ~ f3@8 e3@2",
AN: "a2@5 ~ a2@3 ~ a2 ~ c3@2 a2 ~", AO: "c3@5 ~ e2@6 g2@3 ~", AP: "a2@5 ~ c3@3 ~ c3@2 e3@3 ~",
AQ: "c3@4 ~@2 e2@5 ~ g2@3 ~", AR: "[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 N U V W ~@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: "[e5,g5] ~ [d5,f5] ~ [c5,e5]@3 ~ [a4,c5]@2 [c5,e5]@3 ~ [d5,f5]@2", // Em Dm C Am C Dm
V: "[d5,f5]@5 ~ [d5,f5]@5 ~ [e5,g5]@2 [d5,f5]@2", W: "~@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 G H I J@3 K E K E K I L@3 M@2 N@2 A O P@2 A B Q@4 E F E F H I R@2 K E K E K I S@3 T@4 U@6 E
F E F H I V@3 K E K E H I W@2 H E K E K I X Y@2 M@2 Z@2 M@12 AA@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]@15 ~",
G: "[a3,d4,f4]@7 ~", H: "[f3,a3,c4,f4]@15 ~", I: "[e3,a3,c4,e4]@15 ~", J: "[[d3,d4]@16 c4@29 ~@3, [f3,a3]@15 ~]/3",
K: "[a3,c4,f4]@15 ~", L: "[[d3,d4]@8 c4@15 ~, [f3,a3]@15 ~]/3", M: "[g3@7 ~ a3@7 ~, [c4,e4]@15 ~]/2",
N: "[g3@7 ~ a3@3 ~@5, [c4,e4]@11 ~@5]/2", O: "[d4,f4]@4 [c4,e4]@9 ~@3, a3@3 ~",
P: "[g4@3 ~ [c4,f4]@27 ~, [a3,d4]@31 ~]/2", Q: "[g4@5 ~ f4@57 ~, [a3,d4]@63 ~, ~@6 c4@27 ~@31]/4",
R: "[[d3,d4]@8 c4@7 ~, f3, a3@15 ~, ~@2 c3 ~]/2", S: "[[d3,d4] c3@2, [f3,a3]@15 ~, ~@8 c4@15 ~]/3",
T: "[g3@14 ~@18 [d4,f4]@31 ~, [c4,e4]@15 ~@17, ~@8 a3@23 ~]/4", // Dm C
U: "[g3@14 ~@18 [d4,f4]@63 ~, [c4,e4]@31 ~@65, ~@16 a3@79 ~]/6", // Dm C
V: "[[d3,d4]@16 c4@29 ~@3, [f3,a3]@15 ~, ~@8 c3@9 ~@7]/3", W: "[[d3,d4]@16 [c3,c4]@13 ~@3, [f3,a3]@7 ~]/2",
X: "[d3,f3,a3,d4]", Y: "[[f3,a3,c4]@15 ~, c3]/2", Z: "[g3@15 ~ a3@14 ~@2, [c4,e4]@15 ~]/2",
AA: "[[c3,g3,c4,e4]@9 ~@7]/2", // C
})).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@3 H A B A C A I J G D B K G H L M G N G O P G Q R S B T E U E G V W X B Y Z AA AB AC AD D AE AF
AG G H AH H N G AI E G AJ AK AL AM E AN AO G W AP A P AQ AR AS AT AU AV AW H AX H AY AZ U E BA BB BC BD P BE B U BF BG
BH BI BF BJ E BK BL BM BN BO A B BP BQ BR N BS BT BU BV BW AL BX BY BZ CA CB@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]@3 ~", // 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] ~ [a3,d4,a4,d5,f5] ~", // Dm
I: "[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
J: "[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
K: "[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
L: "[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
M: "[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
N: "[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
O: "[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
P: "[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
Q: "[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
R: "[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
S: "[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
T: "[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
U: "[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
V: "[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
W: "[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
X: "[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
Y: "[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
Z: "[a3,e4,a4,c5,e5]@7 ~", // Am
AA: "[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
AB: "[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
AC: "[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
AD: "[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
AE: "[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
AF: "[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
AG: "[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
AH: "[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
AI: "[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
AJ: "[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
AK: "[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
AL: "[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
AM: "[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
AN: "[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
AO: "[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
AP: "[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
AQ: "[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
AR: "[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
AS: "[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
AT: "[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
AU: "[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
AV: "[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
AW: "[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
AX: "[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
AY: "[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
AZ: "[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
BA: "[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
BB: "[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
BC: "[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
BD: "[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
BE: "[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
BF: "[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
BG: "[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
BH: "[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
BI: "[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
BJ: "[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
BK: "[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
BL: "[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
BM: "[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
BN: "[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
BO: "[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
BP: "[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
BQ: "[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
BR: "[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
BS: "[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
BT: "[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
BU: "[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
BV: "[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
BW: "[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
BX: "[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
BY: "[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
BZ: "[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
CA: "[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
CB: "[[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
const bongos_2 = s("bongo:18").struct("<~@38 [~@13 x ~@2] ~@29 [~@13 x ~@2] ~@62>").gain(0.41)
// drums · congas
const congas = s("conga:13").struct(`<
~@4 A B A@4 C A@3 B D C ~ A E A F C B A@14 C A@6 G A@3 ~ A B A G C A@4 C@2 A@6 G A@3 G A@2 ~ H G B A@7 D ~ A@2 D G A ~
A@2 ~ A I A@5 C A B A B A B A@4 C A C G I A C A G A G A C D J ~@2
>`.pickRestart({
A: "~@6 x!2", B: "~@3 x", C: "~@5 x!2 ~", D: "~@7 x", E: "~@3 x ~@3 x", F: "~@3 x ~@4", G: "~@5 x!3",
H: "~@4 x!2 ~ x", I: "~@10 x ~@2 x ~@2", J: "x!2 ~@5 x",
})).gain(0.99)
// drums · congas · soft notes
const congas_soft = s("conga:13").struct(`<
// … 62 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.