0:00/0:00
// Mull of Kintyre — McCartney
// 93 bpm, 3/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 6 "BAG PIPE" bagpipe (copy of ch 7 "BAG PIPE" bagpipe); ch 8 "BAG PIPE" bagpipe (copy of ch 7 "BAG PIPE" bagpipe)
// note: Full arrangement: all 148 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(93/3)
// 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 · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
~@13 A@7 B@6 C D@2 E F G ~ H@6 I@3 J K@2 L@4 ~@52 M@2 N@3 O@2 P@3 Q R S@2 T U V W X Y@3 Z AA AB AC AD@2 AE AF AG@3
AH@2 AI AJ AK AL@2 AM AN ~@5
>`.pickRestart({
A: "[~@25 c#5@7 [e4,a4,c#5]@7 ~ [e4,a4,c#5]@5 ~ e4@2 [e4,a4,c#5]@7 ~ [e4,a4,c#5]@7 ~ [e4,a4,c#5]@5 [e4,a4,c#5]@3 [e4,a4,c#5]@8 [e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3 [e4,a4,c#5]@7 ~ [e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3 [e4,a4,c#5]@7 ~ [e4,a4,c#5]@7 ~ [e4,a4,c#5]@5 ~ [e4,a4]@2 [e4,a4,c#5]@5 ~ e4@2 [a4,d5]@5 [a4,c#5]@3 [a4,c#5]@5 [a4,c#5]@2 ~, ~@23 a3@145, ~@24 [e4,a4]@8 ~@13 [a4,c#5]@3 ~@93 c#5@3 ~@5 [a4,c#5]@2 ~ e4@15 ~]/7", // A A5 A D5 A A5 A
B: "[[d4,f#4,d5]@8 [d4,f#4,d5]@7 ~ [d4,f#4,d5]@5 [f#4,d5]@3 [f#4,d5]@7 ~ [d4,f#4,d5]@8 [d4,f#4,d5]@5 [f#4,d5]@3 [e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3 [e4,a4,c#5]@5 ~ [e4,a4]@2 [a4,c#5]@5 [a4,c#5]@3 a4@3 c#5 ~ [a4,b4]@3 [e4,a4,c#5]@5 [e4,a4,c#5]@3 [e4,a4,c#5]@7 ~ [e4,a4,c#5]@8 [a4,c#5]@5 [e4,a4,c#5]@3 [e4,a4,c#5]@7 ~ c#5@5 c#5@3 ~ c#5@4 c#5@3, a3@55 ~ a3@88, ~@21 d4@10 ~@38 c#5@3 e4@8 e4@7 ~@41 [e4,a4]@8 [e4,a4]@8, ~@40 d5 ~@31]/6", // D A A5 A Asus2 A A5
C: "~ [a4,c#5]@7 [e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3, a3@15 ~ a3@8, e4@7 ~@17", // A
D: "[[e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3 [e4,a4,c#5]@5 ~ e4@2 [f#4,d5]@8 [d4,f#4,d5]@7 ~ [f#4,d5]@5 [d4,f#4,d5]@3, a3, ~@7 [a4,c#5] ~@5 d4@2 ~]/2", // A D A
E: "[a3,d4,f#4,d5]@7 ~ [d4,f#4,d5]@7 ~ [f#4,d5]@5 [f#4,d5]@3, ~@7 a3@17, ~@5 d4@3", // D
F: "[b3,e4,g#4,b4]@8 [g#4,b4]@5 [g#4,b4]@3 [e4,g#4,b4]@5 [g#4,b4]@3, ~@4 b3@7 ~, ~ e4 ~", G: "[e4,a4,c#5]",
H: "[[e4,a4,c#5]@8 [e4,a4]@6 [a4,c#5]@2 ~ c#5@4 [a4,c#5]@3 [e4,a4,c#5]@8 [e4,a4,c#5]@5 [a4,c#5]@3 ~ c#5@4 [a4,c#5]@2 ~ [d4,f#4,d5]@7 ~ [d4,f#4,d5]@5 [d4,f#4,d5]@3 [f#4,d5]@5 [f#4,d5]@3 [f#4,d5]@5 [f#4,d5]@3 [d4,f#4,d5]@8 [d4,f#4,d5]@7 ~ [e4,a4,c#5]@8 [e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3 [e4,a4,c#5]@8 [a3,e4,a4,c#5]@7 ~ [a4,c#5]@5 [a4,c#5]@2 ~, a3@14 a3@2 ~ [a3,e4], ~@8 c#5@5 ~@3 e4@8 ~@16 [e4,a4]@7 ~@17 d4@8 d4@8 ~@64, ~@16 a4@5 ~@123]/6", // A A5 A D A A5
I: "[[d4,f#4,d5]@8 [f#4,d5]@5 [f#4,d5]@3 [f#4,d5]@5 [f#4,d5]@3 [f#4,d5]@5 [f#4,d5]@3 [d4,f#4,d5]@8 [d4,f#4,d5]@7 ~ [e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3 [a4,c#5]@5 [a4,c#5]@3, a3@31 ~ a3@32 [a3,e4]@8, ~ d4!2 d4 ~@5]/3", // D A A5
J: "[e4,a4,c#5]@8 [e4,a4,c#5]@8 [a4,c#5]@5 [a4,c#5]@3, a3, ~@2 e4", // A
K: "[[e4,a4,c#5]@8 [e4,a4,c#5]@8 [e4,a4,c#5]@5 ~ e4@2 ~ [a4,c#5]@7 [e4,a4,c#5]@8 [a4,c#5]@5 [a4,c#5]@3, a3@15 ~ a3@32, ~@21 [a4,c#5]@3 e4@7 ~@9 e4@8]/2", // A
L: "[[a3,e4,a4,c#5]@8 [a3,e4,a4,c#5]@8 [e4,a4,c#5]@6 [e4,a4,c#5]@2 [e4,a4,c#5]@7 ~ [e4,a4,c#5]@8 [e4,a4,c#5]@3 ~@6 [d4,f#4]@26 ~@21, ~@16 a3@30 ~ d3@27 ~@22, ~@16 [f#3,a3]@9 ~@7]/4", // A D F#m
M: "[~@3 [a4,c#5] [a3,e4,a4,c#5]!2, ~@22 a3@9 ~@17, ~@23 e4@9 ~@16]/2", // A
N: "[[a3,e4,a4,c#5]@8 [e4,a4,c#5]@8 [e4,a4,c#5]@5 [a4,c#5]@3 [a4,c#5]@8 [e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3 [e4,a4,c#5]@8 [e4,a4,c#5]@8 [e4,a4,c#5]@3 ~@5, ~ a3@2 a3@4 a3@2, ~@21 e4@10 ~@41]/3", // A
O: "[~ f#4@7 [f#3,a3,d4,f#4]@7 ~ [f#3,a3,d4]@4 ~ [f#3,d4]@3 [d3,f#3,d4]@7 ~ d4@4 ~ [a3,d4]@3 d4@5 d4@2 ~, d3@15 d3@6 a3@10 d3@13 ~@4, [f#3,a3,d4]@8 ~@12 f#4@4 f#4@11 ~ f#4@3 ~ [a3,f#4]@8, ~@31 [f#3,a3]@6 f#3@8 ~@3]/2", // D D5 D F#m
P: "[[b3,e4,g#4]@7 ~ [b3,e4,g#4]@8 [b3,e4,b4]@6 ~@3 c#5@39 ~@8, b4@7 ~ e3@22 ~@6, ~@16 g#4@3 ~@4 a3@41 ~@8, ~@3 [e4,a4]@5 ~]/3", // E E5 A5
Q: "[e4,a4,c#5]@7 ~ [a4,c#5]@5 [a4,c#5]@3 [e4,a4,c#5]@5 [e4,a4,c#5]@3, a3@2 a3, ~ e4 ~", // A
R: "[e4,a4,c#5]@2 [e4,a4,c#5]@2 [e4,a4,c#5] ~, a3", // A
S: "[[a3,d4,f#4]@8 ~@8 [d4,f#4]@5 [d4,f#4,d5]@3 [f#3,a3,d4,f#4,d5]@8 [a3,d4,f#4,d5]@5 [a3,d4,f#4,d5]@3 [a3,d4,f#4]@7 ~, f#3@4 d3@7 ~, ~@2 [a3,d4,f#4]@2 [f#3,a3]@2 ~@2 f#3@3 ~, ~@9 d5@12 ~@19 d5@4 ~@4]/2", // D F#m
T: "[a3,e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3 [a3,e4,a4,c#5]@8, ~ a3 ~", // A
U: "[a3,e4,a4,c#5]@8 [e4,a4,c#5]@5 ~@3 [a4,c#5]@5 ~@3, ~@4 a3@3 e3@5, ~@13 e4@8 ~@3, ~@13 [a4,c#5]@3 a3@8", // A
V: "~ d5@7 [f#3,d4,f#4,d5]@5 [f#3,d4,f#4,d5]@3 [f#3,f#4,d5]@5 [f#3,a3,f#4,d5]@3, [d3,f#3,a3,d4,f#4] d3@2, ~@8 a3@13 ~@3, ~@2 d4", // D
W: "~ d5@4 ~@8 [d4,f#4,d5]@3 [d4,f#4,d5]@5 [d4,f#4,d5]@3, d3@11 ~, a3@2 a3, [f#3,d4,f#4]@5 [d4,f#4,d5]@8 ~@11, ~@3 f#3@8 ~", // D
X: "[a3,e4,a4,c#5]@8 [e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3, ~ a3@2", // A
Y: "[[a3,e4,a4,c#5]@8 [e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3 [e4,a4,c#5]@8 [e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3 [e4,a4,c#5]@5 [a3,e4,a4,c#5]@8 [e4,a4,c#5]@3 [a3,e4,a4,c#5]@5 [e4,a4,c#5]@3, ~@8 a3@16 a3@29 ~@19, ~@21 e3@30 ~@2 e3@18 ~]/3", // A
Z: "[f#3,a3,d4,f#4]@8 [f#3,d4,f#4]@8 [f#4,d5]@5 [f#4,d5]@3, d3, d5@2 [f#3,d4], ~ a3@2", // D
AA: "[f#3,a3,d4,f#4,d5]@8 [f#3,a3,d4,f#4,d5]@7 ~ [d4,f#4,d5]@4 ~ [d4,f#4]@3, d3@15 d3@8 ~, ~@2 [f#3,a3], ~@20 d5@3 ~", // D F#m
AB: "[g3,b3,d4,g4,b4]@8 [g3,b3,d4,g4]@8 [b3,d4,g4]@4 ~ [b3,d4]@3, ~ b4@2, ~@2 g3, ~@20 g4@3 ~", // G Bm
AC: "[g3,b3,d4,g4]@5 [g3,b3,d4,g4]@7 ~ [g3,b3]@3 [g4,b4]@4 ~ g4 g4@2, ~@12 [d4,g4,b4]@3 ~ [g3,b3,d4]@8, ~@5 b4", // G
AD: "[[f#3,a3,d4,f#4]@8 [f#3,a3,d4,f#4]@8 [a3,d4,f#4]@5 [a3,d4,f#4]@3 [f#3,a3,d4,f#4]@8 [f#3,a3,d4,f#4]@8 [f#3,d4,f#4]@4 ~ f#4@3, d3@16 d3@16 d3@12 d4@3 ~, ~@2 f#3 ~@2 a3]/2", // D
AE: "[b3,d4,g4]@8 [g3,b3,d4,g4]@8 [g3,d4,g4,b4]@4 ~ [g3,d4,g4]@3, ~@2 b3, ~@20 b4@3 ~", // G G5
AF: "[d4,g4]@5 [d4,g4,b4]@7 ~ [b3,d4,g4]@3 [g4,b4]@5 b4@3, [g3,b3]@13 g3@9 ~@2, b4@3 ~@9 b4@3 ~ [b3,d4]@8", // G5 G Bm
AG: "[~ [a3,d4]@64 ~@7, d3@31 ~@5, ~ f#4@61 ~@10, ~ f#3@46 ~@25]/3", // D5
AH: "[~@24 [f#3,a3,d4,f#4,d5]@8 [f#3,a3,d4,f#4,d5]@8 [f#4,d5]@5 [f#4,d5]@3, ~@23 d3@24 ~, ~@5 [f#3,a3,d4]]/2", // D
AI: "[f#3,a3,d4,f#4,d5]@8 [f#3,d4,f#4,d5]@7 ~ [d4,f#4,d5]@5 [f#4,d5]@3, d3@11 ~, ~ a3@2, ~@15 f#3@7 ~@2", // D
AJ: "[e4,a4,c#5]@8 [e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3, a3", // A
AK: "[a3,e4,a4,c#5]@7 ~ [e4,a4,c#5]@8 [a3,e4]@8, ~@7 a3@8 ~ [a4,c#5]@5 ~@3", // A A5 A
AL: "[[f#3,a3,d4,f#4,d5]@8 [f#3,a3,d4,f#4,d5]@8 [f#3,a3,d4,f#4,d5]@5 [f#3,d4,f#4,d5]@3 [f#3,d4,f#4,d5]@7 ~ [a3,d4,f#4,d5]@8 [f#4,d5]@5 [f#4,d5]@2 ~, d3@21 a3@10 f#3@8 ~ [f#3,a3,d4]@8, ~@12 d3@11 ~]/2", // D
AM: "~ [a4,c#5]@7 [e4,a4,c#5]@8 [e4,a4,c#5]@5 [e4,a4,c#5]@3, [a3,e4]@7 ~ [e3,a3]@16", // A A5
AN: "[a3,e4,a4,c#5]@8 [a3,e4,a4,c#5]@7 ~ [e4,a4,c#5]@5 a4 ~@2, e3, ~@5 a3@3", // A
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.2)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
~@9 A B C ~@2 D@3 E F G H I D J D F D G H K L M@2 N O H P Q@2 R S D@2 T@2 U@2 H V@2 W@3 X Y Z AA AB@2 AC@2 R AD@2 AE R
AF AC AG AH@2 X AI AJ AH@2 AC AK@2 AL@2 AM AN@3 AO AC AP@2 AQ@4 AR D AR AS@4 AT@2 D AU D AV H AW AX AY@2 D AZ H BA D@2
H@2 D N BB BC@2 BD@2 BE H@2 BF@2 BG@4 BH@2 D BI AC@2 D BJ@2 ~@4
>`.pickRestart({
A: "~@2 c#3", B: "d3 e3 f#3", C: "d3@7 ~", D: "a1@11 ~", E: "a1@16 e1@5 ~@3", F: "a1@19 ~@2 e1@3", G: "a1 b1 c#2",
H: "d2@11 ~", I: "d2@15 e1@7 ~@2", J: "a1 e1 f#1", K: "d2@16 b1@5 ~@3", L: "e2@16 e1@7 ~", M: "[a1@15 ~]/2",
N: "a1@7 ~", O: "a1@8 c#2@3 ~", P: "d2@16 f#2@5 ~@3", Q: "[a1@21 ~@2 a1@16 ~ c#2@6 ~@2]/2", R: "d2@7 a1",
S: "d2@13 ~@3 d2@7 ~", T: "[a1@15 e1@5 ~@3 a1@19 ~@3 e1@3]/2", U: "[a1@15 e2@8 a1@21 ~@4]/2",
V: "[d2@23 g1@23 ~@2]/2", W: "[g1@15 b1@5 ~@3 d2@22 ~@2 d2@23 ~@2]/3", X: "g1@11 ~", Y: "g1@15 b1@5 ~@4",
Z: "d2@16 a1@5 ~@3", AA: "d2@19 ~@2 a1@3", AB: "[d2@23 d2@8 a1@9 f#1@8]/2", AC: "d2@23 ~",
AD: "[d2@8 e1@7 f#1@8 g1@23 ~@2]/2", AE: "g1@15 b1@7 ~@2", AF: "d2@15 a1@5 ~@4", AG: "d2@7 ~", AH: "[d2@15 ~]/2",
AI: "g1@7 ~ g1@3 ~", AJ: "a1@14 ~ a1@7 ~@2", AK: "[d2@23 g1@20 ~@2 g1@2 ~]/2", AL: "[g1@15 b1@4 ~@4 d2@23 ~@2]/2",
AM: "d2@15 ~ d2@4 ~@4", AN: "[g1@20 ~ g1 ~ g1@15 ~ b1@5 ~@3 d2@23 ~@2]/3", AO: "d2@20 ~ a1@3",
AP: "[d2@23 a1@23 ~@2]/2", AQ: "[a1@23 d2@23 ~ d2@24 a1@23 ~@2]/4", AR: "a1@4 e1 ~",
AS: "[a1@21 ~@2 a1@8 b1@8 c#2@8 d2@23 ~ d2@16 e1@5 ~@4]/4", AT: "[a1@21 ~@2 a1@13 ~ d2@2 e2@8 ~]/2",
AU: "a1@14 ~@2 a1@5 ~@3", AV: "a1@8 b1@7 ~ c#2@7 ~", AW: "d2@8 b1@3 ~", AX: "e2@14 ~@2 e1@5 ~@3", AY: "[a1@11 ~]/2",
AZ: "a1@5 c#2@2 ~", BA: "d2@5 e1@2 ~", BB: "a1@2 e2", BC: "[a2@8 e2@7 c#2@7 ~ d2@22 ~@3]/2",
BD: "[d2@14 ~ d2@5 ~@3 g1@19 ~@3 g1 ~@2]/2", BE: "g1@4 b1 ~", BF: "[g1@18 ~@3 g1 ~ g1@7 ~ g1@8 ~ b1@7 ~]/2",
BG: "[d2@82 ~@11 a1@3]/4", BH: "[d2@22 ~ d2@24 ~]/2", BI: "a1@23 ~", BJ: "[a1@22 ~ d2@22 ~@3]/2",
})).s("gm_fretless_bass").gain(0.33)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel_2 = note(`<
A@8 B@4 C@8 D@2 E@8 F@3 G@4 H@4 I J K@8 L@2 M@2 N@8 O@2 P@6 Q@2 R@3 S@2 T@2 U@4 V@4 W@4 X@8 Y@5 Z AA@5 AB@4 AC@4 AD@6
AE@2 AF@2 AG@6 AH@6 AI@7
>`.pickRestart({
A: "[~@8 [e3,a3,c#4,e4]@7 ~ e3@8 ~@8 [e3,a3,c#4,e4]@8 e3@8 ~@8 [c#4,e4]@8 ~@16 [c#4,e4]@8 a3@8 ~@8 [e3,a3,c#4,e4]@8 e3@8 ~@8 [a3,c#4,e4]@8 [a3,c#4]@8 ~@8 [a3,d4,f#4]@8 a3@8 ~@8 [a3,d4,f#4]@8 [a3,d4,f#4]@8, a2@24 a2@23 ~ a2@23 ~ a2@24 a2@23 ~ a2@72, ~@16 [a3,c#4,e4]@15 ~@9 [a3,c#4,e4]@15 e3@17 ~@7 e3@17 ~@32 e3@15 ~ d3@24 d3@24, ~@55 a3@8 ~ [a3,c#4,e4]@15 a3@8 ~ [c#4,e4]@16 ~@8 [a3,c#4,e4]@15 ~@9 e4@11 ~@13 [d4,f#4]@15 ~@17]/8", // A C#m A D A C#m A D
B: "[~@8 [e3,a3,c#4,e4]@8 e3@8 ~@8 [a3,c#4,e4]@8 [a3,c#4]@7 ~@9 [a3,d4,f#4]@8 a3@8 ~@8 [a3,d4,f#4]@7 ~ [a3,d4,f#4]@7 ~, a2@23 ~ a2@72, ~@16 [a3,c#4,e4]@16 e3@15 ~ d3@24 d3@24, ~@40 e4@8 ~@16 [d4,f#4]@15 ~@17]/4", // A D A D
C: "[~@8 [a3,c#4,e4]@8 ~@17 [a3,c#4,e4]@8 a3@8 ~@7 [a3,c#4,e4]@8 [e3,e4]@8 e4@7 ~ [a3,c#4,e4]@7 ~@17 [a3,c#4,e4]@8 ~@16 [a3,c#4,e4]@8 c#4@5 ~@11 [e3,a3,c#4,e4]@8 e3@8 ~@8 [a3,c#4,e4]@8 ~ e4@7, a2@23 ~@2 a2@24 a2@23 a2@23 ~ a2@24 a2@21 c#4@11 ~@32 [a3,c#4]@8, ~@16 [a3,c#4]@16 e3@17 ~@30 e3@17 ~@7 e3@17 ~@8 e3@16 a2@24 a2@24, ~@17 e4@16 ~@8 c#4@15 ~@8 [a3,c#4]@15 ~@8 a3@16 ~@9 [a3,c#4,e4]@16 ~@8 a3@8 ~@16 [a3,c#4,e4]@16 e3@15 ~, ~@41 e4@4 ~@43 [c#4,e4]@16 ~@32 e4@16 ~@40]/8", // A E A C#m
D: "[~ [a3,d4,f#4] a3 ~ [d4,f#4] [a3,d4,f#4], d3@23 ~ d3@24, ~@16 [d4,f#4]@15 a3@8 ~@9]/2", // D
E: "[~@8 [a3,c#4,e4]@8 e3@8 ~@8 [a3,c#4,e4]@8 ~@16 [a3,c#4,e4]@8 e3@8 ~@8 [a3,c#4,e4]@8 e3@8 ~@9 e3@7 [c#4,e4]@5 ~@11 [a3,c#4,e4]@8 [a3,c#4]@7 ~@9 f#4@7 ~@17 f#4@7 ~ f#4@5 ~@3, a2@24 a2@23 ~ a2@23 ~ a2@23 ~ a2@96, ~@7 e3@8 ~ [a3,c#4,e4]@15 e3@18 ~@63 [e3,a3]@8 e3@22 ~@2 d3@24 d3@24, ~@40 [a3,c#4,e4]@16 ~@8 [a3,c#4,e4]@16 ~@8 [a3,c#4,e4]@16 [a3,c#4,e4]@8 ~@5 [c#4,e4]@11 ~@8 e4@8 ~@7 [a3,d4]@8 a3@9 ~@7 [a3,d4]@8 [a3,d4]@7 ~@2, ~@10 [d4,f#4] ~]/8", // A C#m A A5 A C#m D5 D
F: "[~@8 [g#3,b3,e4]@8 [e3,g#3,b3]@6 ~@3 [c#4,e4]@43 ~@4, e2@17 ~@19, ~@7 e3@8 ~ e4@7 a2@45 ~@4, ~@6 [e3,a3]@11 ~]/3", // E C#m A5
G: "[~@8 [a3,c#4,e4]@8 ~@16 [a3,c#4,e4]@8 [a3,c#4]@7 ~@9 [a3,d4,f#4]@7 ~@17 [a3,d4,f#4]@8 [a3,d4,f#4]@8, a2@24 ~ a2@71, ~@8 e3@17 ~@7 e3@15 ~ d3@24 d3@24, ~@16 [a3,c#4]@16 ~@31 a3@8 ~@25, ~@17 e4@15 ~@8 e4@11 ~@13 [d4,f#4]@15 ~@17]/4", // A D A D
H: "[~ [e3,a3,c#4,e4] e3 ~ [a3,c#4,e4] [a3,c#4] ~ [d4,f#4] a3 ~ [a3,d4,f#4]!2, a2@24 a2@71 ~, ~@16 [a3,c#4,e4]@16 ~@8 [e3,e4]@11 ~@4 a3@8 ~ [d4,f#4]@16 ~@16, ~@48 d3@23 ~ d3@24]/4", // A D A E D
I: "~ [e3,a3,c#4,e4]!2, a2", J: "~@8 [a3,c#4,e4]@7 ~ [a3,c#4,e4]@8, [a2,e3]",
K: "[~@8 [e3,a3,c#4,e4]@8 e3@8 ~@8 [a3,c#4,e4]@8 ~@16 [a3,c#4,e4]@8 ~@16 [a3,c#4,e4]@8 [c#4,e4]@8 d3@8 [d4,f#4]@5 [d4,f#4]@3 a3@8 ~@8 [a3,d4,f#4]@8 [a3,d4,f#4]@5 ~@11 [g3,b3,g4]@8 ~@16 [g3,b3,g4]@8 [g3,b3,g4]@8, a2@23 ~ a2@23 ~ a2@23 ~ a2@72 g2@24 g2@20 ~@4, ~@16 [a3,c#4,e4]@15 ~ e3@15 ~@9 e3@16 ~@8 e3@16 ~@8 d3@15 ~ d3@71 ~, ~@40 [a3,c#4,e4]@16 ~@8 [a3,c#4,e4]@16 ~@8 a3@5 ~@11 a3@8 [d4,f#4]@15 ~@33 [g3,b3,g4]@16 ~@16]/8", // A C#m D G A D G
L: "[~@2 [a3,d4,f#4]@2 a3@2 ~@2 [a3,d4,f#4]@2 [a3,d4,f#4] ~, d3@24 d3@23 ~, ~ [d4,f#4] ~]/2", // D
M: "[~@8 [b3,d4,g4]@8 b3@8 ~@8 [b3,d4,g4]@8 [b3,d4,g4]@7 ~, g3@24 g3@23 ~, ~ [d4,g4] ~]/2", // G G5
N: "[~@8 [a3,d4,f#4]@7 ~ a3@8 ~@8 [d4,f#4]@8 ~@16 [a3,d4,f#4]@8 ~@16 [a3,d4,f#4]@8 a3@8 ~@8 [a3,d4,f#4]@8 ~@16 [a3,d4,f#4]@8 ~@16 [a3,d4,f#4]@8 ~@16 [a3,d4,f#4]@8 [a3,d4,f#4]@4 ~@4, d3@23 ~ d3@24 d3@24 d3@23 ~ d3@23 ~ d3@23 ~ d3@24 d3@22 ~@2, ~@16 [d4,f#4]@15 ~@9 [a3,d4,f#4]@16 ~@8 [a3,d4,f#4]@16 ~@8 [d4,f#4]@16 ~@8 [a3,d4,f#4]@16 ~@8 [a3,d4,f#4]@16 ~@8 [a3,d4,f#4]@16 ~@16]/8", // D
O: "[~@8 [b3,d4,g4]@8 ~@16 [b3,d4,g4]@8 [b3,d4,g4]@7 ~, g3@12 g3@11 ~, ~ [b3,d4,g4] ~]/2", // G
P: "[~@8 [d4,f#4]@8 ~@16 [a3,d4,f#4]@8 a3@8 ~@8 [d4,f#4]@8 ~@16 [d4,f#4]@8 [d4,f#4]@7 ~ [a3,d4,f#4]@40 ~@8, d3@23 ~ d3@23 ~ d3@24 d3@23 d3@45 ~@4, ~@8 a3@23 ~@25 a3@17 ~@7 a3@15 ~@49, ~@16 [d4,f#4]@16 ~@8 [d4,f#4]@15 ~@9 [d4,f#4]@16 ~@64]/6", // D
Q: "[~@4 [d4,g4]@4 ~@8 [b3,d4,g4]@4 [b3,d4,g4]@3 ~, g3@12 g3@11 ~, ~ b3@2 ~@3, ~ [d4,g4] ~]/2", // G5 G G5
R: "[~@8 [e3,a3,c#4,e4]@8 [e3,a3,c#4,e4]@4 ~@4 [d4,f#4]@43 ~@5, a2@35 ~, ~@23 [d3,a3]@45 ~@4]/3", // A D D5
S: "[~@8 [d4,f#4]@8 ~@16 [d4,f#4]@8 [a3,d4,f#4]@5 ~@3, d3 d3, ~@8 a3@16 ~@7 a3@8 ~@9, ~ [d4,f#4] ~]/2", // D
T: "[~ [g3,b3,g4] ~@2 [b3,g4] [g3,b3,g4], g2@23 ~ g2@21 ~@3, ~@16 [g3,b3,g4]@15 g3@8 ~@9]/2", // G Em G
U: "[~@2 [a3,d4,f#4]@2 a3@2 ~@2 [a3,d4,f#4]@2 [a3,d4,f#4] ~@3 [g3,b3,g4]@2 ~@4 [g3,b3,g4]@2 [g3,b3,g4]@2, d3@22 ~@2 d3@65 ~@7, ~@16 [d4,f#4]@16 ~@16 g2@23 ~ g2@20 ~@4, ~@64 [g3,b3,g4]@15 ~@17]/4", // D G D G
V: "[~@4 [d4,f#4]@4 a3@4 ~@4 [a3,d4,f#4]@4 a3@4 ~@4 [a3,d4,f#4]@4 a3@4 ~@4 [d4,f#4]@4 [a3,d4,f#4]@3 ~, d3 d3 d3 d3, ~@16 [d4,f#4]@16 ~@8 [d4,f#4]@16 ~@8 [d4,f#4]@15 a3@8 ~@9]/4", // D
W: "[~@8 [a3,c#4,e4]@8 ~@16 [a3,c#4,e4]@8 [a3,c#4,e4]@7 ~@9 [a3,d4,f#4]@8 a3@8 ~@8 [a3,d4,f#4]@8 [a3,d4,f#4]@6 ~@2, a2@22 ~@2 a2@71 ~, ~@16 [a3,c#4,e4]@15 ~@17 d3@23 ~ d3@24, ~@4 [d4,f#4] ~]/4", // A D A D
X: "[~@8 [a3,c#4,e4]@8 ~@16 [a3,c#4,e4]@8 ~@16 [e3,a3,c#4,e4]@8 e3@8 ~@8 [a3,c#4,e4]@8 e3@8 ~@16 [a3,c#4]@8 a2@7 ~ b2@7 ~ c#3@5 ~@11 [a3,d4,f#4]@5 [a3,d4,f#4]@2 ~ [d4,f#4]@5 ~@11 [d4,f#4]@5 [d4,f#4]@3 [d3,a3,d4,f#4]@7 ~, a2@23 ~ a2@24 a2@23 ~ a2@23 ~ a2@23 ~@73, ~@8 e3@15 ~@17 [e3,a3,c#4,e4]@16 ~@48 [c#4,e4]@8 e4@15 ~@38 [d4,f#4]@11 ~@16, ~@16 [a3,c#4,e4]@16 ~@32 [a3,c#4,e4]@16 ~@8 [a3,c#4]@15 a3@8 ~@49 a3@9 ~@7 a3@8 ~@8, ~@106 e3@14 ~@23 d3@16 d3@8 ~ d3@16 ~@8]/8", // A D A C#m D A
Y: "[~@8 [e3,a3,c#4,e4]@8 e3@8 ~@8 [a3,c#4,e4]@5 [a3,c#4,e4]@3 e3@8 ~@8 [e3,a3,c#4,e4]@8 e3@8 ~@8 [a3,c#4,e4]@8 ~@16 [c#4,e4]@7 ~ [c#4,e4]@8, a2@23 ~ a2@23 ~ a2@24 a2@23 ~ a2@23 ~, ~@16 [a3,c#4,e4]@16 e3@8 [a3,c#4,e4]@16 ~@8 [a3,c#4,e4]@15 e3@17 ~@7 e3@16 ~, ~@88 [a3,c#4,e4]@15 a3@8 a3@8 ~]/5", // A C#m A
Z: "a2@7 ~ b2@8 c#3@7 ~",
AA: "[~@8 [a3,d4,f#4]@8 a3@7 ~@9 f#4@7 ~ [d4,f#4]@5 ~@11 [g#3,b3,e4]@7 ~ [b3,e4]@7 ~ [a3,e4]@47 ~, d3@23 d3@25 ~@7 e3@8 e3@4 ~@4 [a2,e3]@49, ~@16 [d4,f#4]@15 [a3,d4]@8 a3@6 ~@2 e2@37 ~@36, ~@64 g#3@4 ~@4 c#4@43 ~@5]/5", // D E E5 A5 D D5
AB: "[~@8 [c#4,e4]@5 [c#4,e4]@3 e3@8 ~@8 [e3,a3,c#4,e4]@8 [e3,a3,c#4]@7 ~@9 [a3,d4,f#4]@8 a3@8 ~@8 [d4,f#4]@5 [d4,f#4]@3 [d4,f#4]@5 [d4,f#4]@3, a2@23 ~ a2@72, ~ [e3,a3] [a3,c#4,e4]@2 ~ e4 d3@3 d3@3, ~@8 [d4,f#4]@2 a3!2]/4", // C#m A D A5 A D
AC: "[~@8 [a3,c#4,e4]@7 ~@17 [a3,c#4,e4]@8 [a3,c#4,e4]@8 ~@8 [d4,f#4]@5 [d4,f#4]@3 [d4,f#4]@5 d4@3 ~@8 [a3,d4,f#4]@8 [a3,d4,f#4]@8, a2@23 ~ a2@72, ~@8 e3@17 ~@7 e3@14 ~@2 d3@24 d3@24, ~@16 [a3,c#4,e4]@16 ~@24 a3@8 a3@9 ~@23, ~@69 f#4@11 ~@16]/4", // A D A
AD: "[~@8 [e3,a3,c#4,e4]@7 ~ e3@8 ~@8 [e3,a3,c#4,e4]@8 e3@8 ~@8 [a3,c#4,e4]@8 ~@16 [e3,a3,c#4,e4]@5 [e3,a3,c#4,e4]@3 [c#4,e4]@5 c#4@3 ~@8 [a3,d4,f#4]@8 a3@8 ~@8 [a3,d4,f#4]@8 [a3,d4,f#4]@4 ~@4, a2@23 ~ a2@24 a2@23 ~ a2@13 ~@59, ~@16 [a3,c#4,e4]@16 ~@8 [a3,c#4,e4]@16 e3@22 ~@10 [e3,a3]@8 d3@23 ~ d3@23 ~, ~@64 [a3,c#4,e4]@15 ~@14 e4@5 ~@14 [d4,f#4]@16 ~@16]/6", // A C#m D A A5 A D
AE: "[~@8 [b3,d4,g4]@8 b3@8 ~@8 [b3,d4,g4]@8 [g3,b3,d4,g4]@7 ~, g3@8 g3@5 ~@3, ~@16 [d4,g4]@15 ~@17]/2", // G G5
AF: "[~@8 [a3,d4,f#4]@8 [a3,d4]@8 a3@6 ~@2 [a3,d4,f#4]@8 [a3,d4,f#4]@5 ~@3, d3 d3, ~ f#4 ~]/2", // D D5 D
AG: "[~@8 [b3,d4,g4]@8 ~@16 [b3,d4,g4]@8 [b3,d4,g4]@3 ~@6 f#4@73 ~@22, g3@23 ~ g3@19 ~@4 d3@89 ~@8, ~@16 [b3,d4,g4]@15 ~@17 a3@80 ~@16, ~@12 d4@19 ~@5]/6", // G
AH: "[~@8 [d4,f#4]@5 [d4,f#4]@3 [d4,f#4]@15 ~ [d4,f#4]@8 [a3,d4,f#4]@7 ~@9 [a3,c#4,e4]@8 ~@16 [a3,c#4,e4]@8 [e3,a3,c#4,e4]@8 ~@8 [a3,d4,f#4]@8 a3@8 ~@8 [a3,d4,f#4]@8 [a3,d4,f#4]@6 ~@2, d3@49 ~@15 [a3,c#4,e4]@16 ~@16 d3@24 d3@24, ~ a3!2 ~@3 a2@3 a2@9, ~@7 [d4,f#4] ~]/6", // D A D A D
AI: "[~@32 [c#4,e4]@7 ~ e4@8 d3@23 ~@97, a2@23 ~ a2@135 ~@9, ~@8 a3@23 a3@8 a3@7 ~@122, ~@8 [c#4,e4]@8 [c#4,e4]@15 ~@9 c#4@7 ~@121, ~@10 e3@21 e3@15 ~@122]/7", // C#m
})).s("gm_acoustic_guitar_steel").gain(0.25).pan(0.3)
// chords · recorder
const recorder = note(`<
~@32 A@2 B C@3 D E@3 F@2 ~@18 G@5 H@5 I J@3 K@6 L@3 M@2 ~@17 N@8 O P@3 O Q@3 R@2 ~ S@6 T@3 M@2 U@2 V@4 W X Y@2 ~@4
>`.pickRestart({
A: "[~@23 c#3@13 ~ c#3@3 e3@7 ~]/2", B: "a3@13 ~@3 a3@8",
C: "[a3@8 f#3@7 e3@6 f#3@8 e3@11 d3@4 c#3@14 ~@3 c#3@3 e3@7 ~]/3", D: "a3@2 a3",
E: "[a3@8 f#3@7 e3@6 f#3@8 e3@10 d3@8 a2@12 ~ a2@3 ~ a2@8]/3", F: "[a2@29 ~@19]/2",
G: "[~@23 g4@8 b4@8 a4@5 g4@11 f#4@8 ~ e4@5 d4@10 [a3,f#4]@8 ~ [g3,e4]@4 [f#3,d4]@14 ~@14]/5", // D C D
H: "[[f#3,a3]@8 [f#3,d4]@8 [f#3,b3]@5 [f#3,a3]@11 f#3@8 [f#3,a3]@7 ~ [f#3,a3]@8 [f#3,d4]@8 [f#3,b3]@8 [f#3,a3]@8 [g3,b3,e4]@7 ~ [a3,c#4]@7 ~ [b3,d4]@12 ~ b3@8 [d3,g3,e4]@3, d3@81 ~@6 f#4@8 g4@12 ~ f#4@9 ~@3, ~@32 g3@7 ~]/5", // F#m D B5 F#m D B5 F#m Em …
I: "[b3,d4]@7 ~ d3@13 a3@3, g3@7 ~, ~@7 b3@13 ~@4", // Bm
J: "[[e3,a3]@13 [a3,b3]@3 e4@7 ~ [d3,f#3,d4]@44 ~@4, c#3@23 ~@49, ~@13 e3@11 ~@48, ~@16 a3@51 ~@5]/3", // A5 Asus2 D
K: "[[d3,a3,d4]@12 [d3,b3,e4]@3 ~ f#4@7 ~ a3@15 [a3,f#4,a4]@8 ~ f#4@7 ~ [g3,g4]@8 [f#3,d4,f#4]@5 [g3,e4,g4]@8 [g3,d4,g4]@10 ~ [e3,b3]@5 [d3,a3,d4]@15 [d3,b3,e4]@3 [f#3,d4,f#4]@8 ~ a3@14 ~ [a3,f#4,a4]@8 f#4, ~@15 [f#3,d4]@8 [f#4,a4]@15 ~@9 [a3,a4]@8 e4@8 ~@24 e4@5 ~@27 [f#4,a4]@14 ~@11]/6", // D5 E7 D G D C G5 E5 …
L: "[[a3,a4]@7 ~ [e4,g4]@7 [f#3,d4,f#4]@5 ~ [g3,e4]@6 ~ [a3,f#4]@2 g4 ~ [g3,d4]@11 ~@2 [b3,e4]@2 ~ [a3,d4]@12 [e3,b3,e4]@3 ~ [g3,e4]@8, ~@7 g3@7 ~@6 g4@7 a4@2 ~ [g3,e4]@2 ~@15 d3@12 ~@4 d4@2 ~@7, ~@31 g4@11 ~@21 g4@8 ~]/3", // A Em D C D G5 E5 D5 …
M: "[[d3,d4,f#4]@11 ~@5]/2", // D
N: "[[a3,c#4]@7 ~ e4@7 [b3,d4]@8 [a3,c#4]@8 [b3,d4]@8 [c#4,e4]@7 ~ [d4,f#4]@13 [c#4,e4]@3 ~ [b3,d4]@4 ~ a3@7 ~ f#3@11 ~@4 [e3,a3]@3 ~ g#3@12 [f#3,a3]@3 b3@8 [a3,c#4]@31 ~@18 a3@12 ~ c#3@3 [e3,c#4]@8, ~@7 c#4@7 ~@54 c#4@7 ~ a3@11 ~@8 e3@13 ~@59 c#3@12 ~ a3@3 ~@9]/8", // A Bm A Bm C#m D C#m Bm …
O: "[a3,e4]@7 ~ [a3,e4]@4", // A5
P: "[[a3,e4]@8 [f#3,d4]@7 ~ [e3,c#4]@5 [f#3,d4]@7 [e3,d4]@12 [d3,b3]@4 ~ a3@15 ~ [c#3,a3]@3 [e3,c#4]@7 ~, ~@11 c#3@4 ~@3]/3", // A5 D C#m D E7 G F#m C#m
Q: "[[a3,e4]@8 [f#3,d4]@7 ~ c#4@5 [f#3,d4]@7 ~@2 d4 d4@8 d3@6 b3@2 ~ a3@12 ~ a3@2 ~ [c#3,e4]@7 ~, ~@15 e3@6 ~@7 e4@2 ~@33 c#4@2 ~@7, ~@29 e3@9 ~@9 c#3@12 ~ c#3@3 ~@9]/3", // A5 D C#m
R: "[[c#3,c#4]@29 ~@19]/2", // C#
S: "[[d3,a3,d4]@12 [d3,b3,e4]@3 [f#3,d4,f#4]@8 ~ a3@13 ~@2 [a3,f#4,a4]@8 ~ f#4@7 ~ [g3,g4]@8 [f#3,d4,f#4]@5 [g3,e4,g4]@8 [g3,d4,g4]@10 ~ [e3,b3]@5 [d3,a3,d4]@15 [d3,b3,e4]@3 [f#3,d4,f#4]@8 ~ a3@13 ~@2 [a3,f#4,a4]@8 f#4, ~@23 [f#4,a4]@13 ~@11 [a3,a4]@8 e4@8 ~@24 e4@5 ~@27 [f#4,a4]@14 ~@11]/6", // D5 E7 D G D C G5 E5 …
T: "[[a3,a4]@7 ~ g4@7 [f#3,d4,f#4]@5 ~ [g3,e4]@6 ~ [a3,f#4]@2 g4 ~ [g3,d4]@12 ~ [b3,e4]@2 ~ [a3,d4]@12 ~ e3@2 ~ [g3,e4]@8, ~@7 [g3,e4]@8 ~@5 g4@7 a4@2 ~ [g3,e4]@2 ~@15 d3@13 ~@3 d4@2 ~@7, ~@31 g4@11 ~@18 [b3,e4]@3 g4@8 ~]/3", // A D C D G5 E5 D5 C …
U: "[~@23 [f#3,d4]@13 [f#3,d4]@3 [a3,f#4]@8 ~]/2", // D
V: "[[d4,a4]@21 ~@2 [c#4,e4]@13 ~ c#4@2 [e4,a4]@8 [a3,e4]@21 ~@4 d4@12 [f#3,d4]@3 [a3,f#4]@8 ~, ~@36 f#4@3 ~@32 f#3@13 ~@12]/4", // D5 C#m A5 D
W: "[d4,a4]@5 ~", X: "[c#4,e4]@12 ~ f#4@2 ~ a4@8, ~@12 c#4@3 e4@8 ~", Y: "[[a3,e4]@22 ~ [f#3,d4]@13 ~@12]/2",
})).s("gm_recorder").gain(0.25).pan(0.3)
// other · bagpipe · "BAG PIPE"
const bagpipe = note(`<
~@41 A@7 B C D E F G D H I@6 J@3 K@2 L@3 M N O H P@2 E Q R D S F R D T U E F V W X Y Z W AA@2 AB@5 AC AD@4 AE@6 W AF
AG AH W AI AJ AK AL M@2 AM AN@2 D E AO@2 AP AQ AR@3 E AS@2 AT E AU AV AT AW ~@4
>`.pickRestart({
A: "[~@144 a4@13 b4@3 d5@8, a2@37 ~@5]/7", B: "f#5@15 f#5@8 ~", C: "f#5@7 e5@9 d5@8", D: "e5@5 d5@11 b4@8",
E: "a4@13 b4@3 d5@8", F: "f#5@2 f#5", G: "f#5@7 e5@8 ~ d5@8", H: "a4@13 b4@3 d5@2 e5@6", I: "[d5@71 d5@48 d5@25]/6",
J: "[a4@23 b4@24 g4@21 ~ a4@3]/3", K: "[d5@23 a4@24 ~]/2", L: "d5/3", M: "a4", N: "b4", O: "g4", P: "d5/2",
Q: "f#5@16 f#5@7 ~", R: "f#5 e5 d5", S: "a4@13 b4@3 d5@7 ~", T: "a4@12 ~ b4@3 d5@2 e5@6", U: "d5",
V: "e5@12 f#5@3 ~@2 a5@6 ~, ~@8 g5 ~@3", W: "c#5@23 ~", X: "a4@3 ~ d5@2, ~@13 b4@5 ~@6", Y: "f#5@23 ~",
Z: "e5@12 ~ f#5@3 ~ a5@6 ~, ~@8 g5 ~@3", AA: "[a4@47 ~]/2", AB: "[a4@47 a4@72 ~]/5", AC: "e5@13 f#5@2 ~ g5@2 a5@5 ~",
AD: "[a4@47 a4@47 ~@2]/4", AE: "[a4@47 a4@72 e5@14 f#5@3 a5@8]/6", AF: "c#5@7 b4@8 a4@8 ~", AG: "b4@5 a4@19",
AH: "e5@12 ~ f#5@3 a5@8", AI: "c#5@8 b4@7 ~ a4@8", AJ: "b4@5 a4@18 ~", AK: "e5@13 f#5@3 a5@7 ~",
AL: "c#5@12 d5@3 ~ e5@8", AM: "a4@12 b4@3 ~ d5@8", AN: "[f#5@15 f#5@8 f#5@8 e5@7 ~@2 d5@7 ~]/2",
AO: "[f#5@15 f#5@8 f#5@8 ~ e5@8 d5@8]/2", AP: "e5@5 d5@10 b4@8 ~", AQ: "a4@13 b4@3 d5@2 e5@5 ~", AR: "[d5@71 ~]/3",
AS: "[f#5@15 ~ f#5@7 e5@13 ~@3 a5@8 ~, ~@36 f#5@5 ~@7]/2", AT: "c#5", AU: "f#5@15 ~ f#5@8", AV: "e5@13 f#5@3 a5@8",
AW: "a4@13 ~@11",
})).s("gm_bagpipe").gain(0.11).pan(0.9)
// drums · kick
const kick = s("bd").struct("<~@33 A@37 ~ A@4 ~ A@33 ~@2 A@32 ~@5>".pickRestart({
A: "x",
})).gain(0.38)
// drums · snare
const snare = s("sd").struct("<~@33 A B A B ~@2 A B C B A B A B D@22 ~@2 D@3 ~@2 D@18 ~@15 E@2 D@32 ~@5>".pickRestart({
A: "~@22 x!2", B: "x", C: "~@21 x!3", D: "~@8 x ~@4 x ~ x!2 ~@4 x ~@2", E: "x!24",
})).gain(0.27)
stack(acoustic_guitar_steel, bass, acoustic_guitar_steel_2, recorder, bagpipe, kick, snare)
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.