0:00/0:00
// Rock Show — McCartney
// 130 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 188 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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 · piano · "A.PIANO 1"
const piano = note(`<
A B C D E@2 F@3 G H I F@5 G H I F@2 J ~ K ~ J L@2 ~ M@2 N O P Q P R S T S U V W X W X Y@2 Z V W X W AA AB AC AD AE AF
AG AH AI AH AJ@2 ~ M@2 AC@2 AK@11 AL AM@4 AN AO AP@2 AQ AR AS AT AU AV AW AX P@3 AY AC AZ BA BB BC BD BC BD BE BF@2 ~
BG@2 AC@2 BH BI BJ BK BL P BM P BM P BM P BM P BM P BM P BM P BM P BN ~@4 BO@2 BP BQ BR BS BT BU BV BQ BP BQ BP BW BP
BW BP BW BP BW BP BW BP BW BP BW BP BX BP BX BP BW BP BW BP BW BP BY@4 ~
>`.pickRestart({
A: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,a4]@2 [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~, ~@4 e4 ~@11", // A F#m A
B: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [d4,f#4,a4] ~@3 [d4,f#4,a4] ~@3", // A D
C: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~", // A
D: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4] ~ [c#4,e4] ~ [f#4,a4]@2 ~@2 [e4,a4]@2 ~@2, ~@4 a4@2 ~@2 d4 ~@3 c#4 ~@3", // A C#m F#m A5
E: "[[b3,e4,g#4]@9 ~@7]/2", F: "[e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~ [e5,a5] ~",
G: "[e5,a5] ~ [e5,a5] ~ [d5,g5] ~ [d5,g5] ~ [c#5,f#5] ~ [c#5,f#5] ~ [c5,f5] ~ [c5,f5] ~", // A5 G5 F#5 F5
H: "[b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~", // E5
I: "[b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [b4,e5] ~ [d5,g5] ~ [d#5,g#5] ~", // E5 G5 G#5
J: "~@2 [d4,f#4,a4] ~ [d4,f#4,a4]@3 ~", K: "~@2 [d4,f#4,a4] ~ [d4,f#4,a4]@4",
L: "[[e4,e5]@2 [f#4,f#5]@2 [g#4,g#5]@2 [a4,a5]@4 b4@2 [c5,c6]@2 [c#5,c#6]@17 ~, ~@10 b5 ~@21]/2", // E F# G# A C C#
M: "[~@6 [e4,a4,c#5]@7 ~ [d#4,g#4,b4]@7 ~ [c#4,f#4,a4]@9 ~]/2", // A G#m F#m
N: "[e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [a4,e5,a5] ~ [a#4,e5,a#5] ~ [b4,e5,b5] ~", // E5 A5 A#dim E5
O: "[e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [f#5,b5,f#6] ~ [f#5,b5,f#6]!2 [g#5,b5,g#6]@2 [g#5,b5,g#6]@2", // E5 B5 G#m
P: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~", // A5
Q: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,d6,f#6]@3 ~ [a5,d6,f#6]@3 ~", // A5 D
R: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,d6,f#6]@3 ~ [a5,c#6,e6]@3 ~", // A5 D A
S: "[d5,f#5]@4 a4@2 ~@4 a4 ~ a4@4, ~@3 [c#5,e5]@3 ~@2", T: "[b4,d5]@2 a4 ~@2 a4 a4@2, ~@6 [c#5,e5]@7 ~@3",
U: "[b4,d5]@4 a4@2 ~@4 a4 ~ a4@2 ~@2, ~@6 [c#5,e5]@7 ~@3", V: "[d5,f#5]@4 a4@2 [c#5,e5]@6 a4@3 ~",
W: "[b4,d5]@2 a4 [c#5,e5]@3 a4@2", X: "[d5,f#5]@2 a4 [c#5,e5]@3 a4@2",
Y: "[[b4,d5]@4 ~@2 [d5,g5]@25 ~, ~@4 b4@27 ~]/2", Z: "[d5,b5]@5 ~ [d5,b5]@6 [e5,c#6]@3 ~", AA: "[d#4,f#4,a4,b4] ~@7",
AB: "[d#4,f#4,a4,b4] ~ [f#4,a4,b4] ~@13, ~ d#4 ~@6", // B7
AC: "[e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~", // E5
AD: "[e5,b5,e6] ~@15", AE: "~@10 [b3,b4]@2 c5@2 [c#4,c#5] ~, ~@12 c4 ~@3",
AF: "[d4,a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~", // D
AG: "[a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~", // A
AH: "~@4 [a4,d5,f#5]@2 ~@2 [a4,d5,f#5]@7 ~", // D
AI: "[a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,d5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,d5,f#5] ~ [a4,c#5,e5] ~, ~@2 f#5 ~@5", // A D5 A D A
AJ: "[[e4,e5]@2 [f#4,f#5]@2 [g#4,g#5]@2 [a4,a5]@4 b4@2 [c5,c6] ~ [c#5,c#6]@12 ~@6, ~@10 b5 ~@21]/2", // E F# G# A C C#
AK: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4]@2 ~@6", // A5
AL: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4]@2 ~@2 [a#3,f4]@3 ~", // A5 A#5
AM: "[b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ b3@2 ~@6, ~@8 f#4 ~@7", AN: "[b3,e4,g#4]@6 ~@2 [a3,d4,f#4]@7 ~",
AO: "[g4,c5,e5]@3 ~ [f#4,b4,d#5]@3 ~", AP: "[[e4,a4,c#5]@25 ~ [d4,g4,b4]@6]/2",
AQ: "~@2 [e5,b5,e6] ~ [e5,b5,e6] ~@3 [g4,d5,g5] ~ [g4,d5,g5] ~@3 [d5,a5,d6] ~", // E5 G5 D5
AR: "[d5,a5,d6] ~@3 [c5,g5,c6]@5 ~ [f#4,a4,d5]@4 ~@2", // D5 C5 D
AS: "[e4,a4] ~ a4 ~ [e4,a4] ~ [f#4,a4] ~, e5@13 ~@3, ~@4 f#4 ~@11", // A5 F#m
AT: "[e4,a4]@2 ~@2 [f#4,a4] ~ [d7,e7,f7,g7] [e6,f6,g6,a6,b6,c7] [e5,f5,g5,a5,b5,c6,d6] [b4,c5,d5] [g4,g5,d6]@4 ~@2", // A5 F#m Em7 Cmaj7 Em7 Bm G5
AU: "~@2 [e5,b5,e6] ~ [b5,e6] ~@3 [g4,d5,g5] ~ [g4,d5] ~@3 [d5,a5,d6] ~, ~@2 e5 ~@2 g5 ~@2", // E5 G5 D5
AV: "[d5,a5,d6]@2 ~@2 [c5,g5,c6]@5 ~ [a4,d5,f#5,a5]@5 ~", // D5 C5 D
AW: "[e3,a3,e4] ~ [e3,a3,e4] ~ [a3,f#4] ~@3 [e3,a3,e4]@2 ~@2 [f#3,a3,f#4]@2 ~@2, ~@2 f#3 ~@5", // A5 D A5 F#m
AX: "[e3,a3,e4]@2 ~@2 [f#3,a3,f#4]@2 [e3,a3,e4]@2 ~@2 [e3,a3,e4] ~ [f#3,a3]@2 ~@2, ~@12 f#4 ~@3", // A5 F#m A5 F#m
AY: "[a5,e6,a6] ~ [a5,e6,a6] ~ [g5,c#6,g6] ~ [g5,c#6,g6] ~ [f#5,c#6,f#6] ~ [f#5,c#6,f#6] ~ [f5,c#6,f6] ~ [f5,c#6,f6] ~", // A5 Gdim F#5 C#
AZ: "[e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~ [e5,b5,e6] ~@3 [e5,b5,e6] ~ [g5,d6,g6] ~ [g#5,d#6,g#6] ~", // E5 G5 G#5
BA: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6]@4 ~@2", // A5
BB: "[a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~ [a5,e6,a6] ~@5", // A5
BC: "~@2 [a4,d5,f#5] ~ [a4,d5,f#5]@3 ~", // D
BD: "[e5,e6] ~ [e5,a5,e6] ~ [e5,a5,e6] ~ [e5,a5,e6] ~ [e5,a5,e6] ~ [e5,a5,e6] ~ [e5,a5,e6] ~ [e5,a5,e6] ~, a5 ~@7", // E A5
BE: "~@4 [d5,f#5]@2 ~@2 [a4,d5,f#5]@5 ~@3, ~@4 a4 ~@11", // D
BF: "[[c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,e5] ~ [a4,c#5,f#5]@25 ~, a4 ~@15]/2", // C#m A F#m
BG: "[~@6 [e4,a4,c#5]@6 ~@2 [d#4,g#4,b4]@6 ~@2 [c#4,f#4,a4]@7 ~@3]/2", // A G#m F#m
BH: "~@4 [f#5,a5] ~@3 [d5,f#5,a5]@5 ~@3, ~@2 d5 ~@5", // F#m D
BI: "[a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,f#5] ~ [a4,e5,a5] ~, ~@6 a5 ~", // A5 D A5
BJ: "~@4 [f#5,a5] ~@3 [d5,f#5,a5]@4 [d5,f#5,a5]@2 a4 ~, ~@2 d5 ~@5", // F#m D
BK: "~@2 [e4,e5]@2 [f#4,f#5]@2 [a4,a5]@3 ~ [e4,e5]@2 f#4@2 [a4,a5]@2, ~@12 f#5 ~@3", // E F# A E A
BL: "~@2 [d5,f#5,a5] ~ [d5,f#5,a5]@4", // D
BM: "[a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~", // D
BN: "[a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~ [a5,f#6,a6] ~@3", // D
BO: "a1 ~ a2 ~ a1 ~ a2 ~", BP: "a1@2 ~@2 a2@2 c#4@2 a1@2 ~@2 [a2,c4]@2 c#4 ~, ~@4 c4 ~@3 e4@7 ~",
BQ: "[b3,d4,g4] ~@3 [b3,d4,g4] ~@3 a1@2 ~@2 a2@2 ~@2, a1 ~ a2 ~ [a3,d4,f#4]@3 ~", // G D
BR: "a1@2 ~@2 [a2,c4]@2 c#4@2 a1@2 ~@2 [a2,c4]@2 c#4 ~, ~@4 e4@3 ~", // Am
BS: "[b3,d4,g4] ~@3 [b3,d4,g4] ~@3 a1@2 ~@2 a2@2 ~ [d#3,c4], a1@2 ~@2 a2@2 ~@2 [a3,d4,f#4]@7 ~", // G Cm D
BT: "c#4@4 a2@2 c#4@2 a1@2 ~@2 [a2,c4]@2 c#4 ~, e3@3 ~, a1@2 ~@2 c4 ~@3 e4@7 ~", // Am
BU: "[b3,d4,g4] ~@3 [b3,d4,g4] ~@3 a1@2 ~@2 a2@2 ~@2, a1@2 ~@2 a2@2 ~@2 [a3,d4,f#4]@7 ~", // G D
BV: "a1@2 ~@2 [a2,c4]@2 ~@2 a1@2 ~@2 [a2,c4]@2 c#4 ~, ~ e4@3 e4@4, ~@3 c#4@3 ~@2", // Am
BW: "[b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [d1,a3,d4,f#4]@7 ~, g1@7 ~@9", // G D
BX: "[b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [a3,d4,f#4]@6 ~@2, g1@7 ~ d1@8", // G D
BY: "[[b3,d4,g4] ~@3 [b3,d4,g4] ~@3 [d1,a3,d4,f#4]@7 ~@2 a1@46 ~, g1@7 ~@8 a2@48 ~, ~@16 [e3,a3,c#4,e4]@47 ~]/4", // G D A
})).s("gm_piano").gain(0.38).pan(0.7)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
A@2 B@2 C@2 D E F G H I J@2 K@2 L@2 M I N@2 O F O P O Q R S@3 T U F V W@2 X@4 Y@2 Z@2 AA AB AC@2 X@4 AD AE AF AG AH O
P AI P O Q AJ AK@2 AL M AM AN AO AN AO AN AO AN AO AP AQ AP AR AS@2 AT AU AV AW AX@2 AY@2 AZ BA BB BC AZ BD F P BE@2
BF I BG@2 O F BH BI BH Q S BJ@2 BK BL@2 O F O P O BM BN BO BN BO BP F BP BQ BR F BR BS BR F BT@2 BU@2 ~@13 BV@2 BW BX
BY BZ CA BZ CB BX BW CC CD CE CB BX CF CE CG CH CB CI CB BX CJ CE CJ CE CK@3 CL
>`.pickRestart({
A: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 d2!2 d2@2]/2", B: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 d2@2 a1@2]/2",
C: "e2/2", D: "a1@2 c2 c#2 e2!2 f#2 a2", E: "a2 a1 c2 c#2 e2!2 f#2 e2", F: "a1!2 c2 c#2 e2!2 f#2 a2",
G: "a1!2 c#2!2 e2!2 g1 f#1", H: "e1!2 f#1 g1 g#1 b1 c#2 e2", I: "e2!2 g1 g#1 e1!2 g1 g#1",
J: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 a1!2 e1 f#1]/2", K: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a2 c2 c#2 e2!2 f#2 e2]/2",
L: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a2 c2 c#2 e2!2 g1 f#1]/2", M: "e1!3 g1 g#1 b1 c#2 e2",
N: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 a1!2 b1 a1]/2", O: "d2!6 c2 b1", P: "a1!2 c2 c#2 e2!2 f#2 e2",
Q: "a1 c#2 e2 f#2@2 f#1!3", R: "e1 f#1!2 e1 f#1!4", S: "e1 f#1!3 e1 f#1!3", T: "e1!5 f#1 g#1 b1",
U: "c#2 e2!5 f#2 e2", V: "a2 a1 c2 c#2 d2!3 c2", W: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 d2@2 a1!2]/2", X: "d2/2",
Y: "[d2@3 d2@13]/2", Z: "[~@3 d2@13, d3]/2", AA: "d2", AB: "d2 e2 f#2 g2@2 d2 b1@2",
AC: "[g1@21 g1!3 g1@2 g1@2 a1@4]/2", AD: "b1 ~@3", AE: "b1@2 b1@3 ~@11", AF: "e1!3 f#1 g#1 b1 c#2!2", AG: "e2@3 ~@13",
AH: "~@3 e1!3 b1 c#2", AI: "d2!5 c2!2 b1", AJ: "f#1!8", AK: "f#1!3 e1 f#1!3 e1", AL: "f#1!3 e1 f#1!3 f1",
AM: "e2 g1 g#1 b1 e1!2 g1 g#1", AN: "a1!5 ~@3", AO: "a1@2 a1@2 a1@2 a1@2 a1 ~@7", AP: "a1!5 ~@2 a1",
AQ: "a1@2 a1@2 a1@2 a1@2 a1 ~@5 a1@2", AR: "a1!6 a#1@2", AS: "b1!5 ~@2 b1", AT: "b1!5 ~@3", AU: "b1!5 a1 b1@2",
AV: "e2 d2", AW: "c2@8 b1@7 ~", AX: "[a1@25 ~ g1@6]/2", AY: "[e1@6 g1@6 d2@6 c2@7 ~ d2@6]/2", AZ: "a1!8",
BA: "a1@2 a1@2 a1@2 a1@3 ~ g1@5 ~", BB: "e1@5 ~ g1@5 ~ d2@4", BC: "~@2 c2@7 ~ d2@6", BD: "a1!6 g#1 a1",
BE: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 e2!2 g1 f#1]/2", BF: "e1!2 g1 g#1 b1!2 c#2 e2",
BG: "[a1!2 c2 c#2 e2!2 f#2 a2@2 a1 c2 c#2 a1!2 c2 c#2]/2", BH: "~@2 d2@2 d2@3 ~ d2@2 d2@2 c2@2 b1@2",
BI: "a1@2 a1@2 a1@2 c#2@3 ~ e2@2 f#2@2 a2@2", BJ: "f#1!4 e1 f#1!3", BK: "f#1!3 e1@2 f#1 e1 f#1",
BL: "[e2!7 e2@2 e1 g1 g#1 b1!2 c#2 e2]/2", BM: "a1!3 c2 c#2 e2 f#2 a2", BN: "d2!5 f#1 g1 a1", BO: "a1!6 c2 c#2",
BP: "d2!5 f#1 g#1 a1", BQ: "a1!5 c2 c#2 e2", BR: "d2!5 c2 b1 a1", BS: "a1!2 c2 c#2 a1!2 c2 c#2",
BT: "[d2!5 c2 b1 a1@2 a1 g1!2 f#1!2 e1!2]/2", BU: "[d2!5 f#1 g1 a1@9]/2", BV: "[~ a2@5 a2@2, a1@7 ~@25]/2",
BW: "a1@4 a2@3 a2", BX: "g2 d2", BY: "a1@8 a2 ~ a2@4 g#2@2", BZ: "g2@8 d2@7 ~", CA: "a1@4 a1@2 a2 g#2",
CB: "a1@4 a2@3 g#2", CC: "g2@7 ~ d2@7 ~", CD: "a1@4 ~ a2@2 g#2", CE: "g2 ~ g2 ~ d2@4", CF: "a1@9 ~ a2@4 a2@2",
CG: "a1@5 ~ a2 g#2", CH: "g2@2 ~@2 g2@2 ~@2 d2@7 ~", CI: "g2@2 ~@2 g2 ~@3 d2@7 ~", CJ: "a1@2 c2 c#2 e2@2 c2 c#2",
CK: "[a1@47 ~]/3", CL: "a1 ~",
})).s("gm_fretless_bass").gain(0.45)
// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
A B A C D E A F A G H I A J A K A L M I A N O A O P O Q R S@3 T U A V A W X ~@15 Y Z AA D AB O P AC P O AD AE AF@2 AG
M AH AI@11 AJ AK@2 AL AM AN AO AP AQ AR AS AT AU AR AS AT AV A P A AW AX I A AY O A AZ BA AZ AD S BB@2 BC BD BE O A O
P O BF BG BH BG BH BI A BG BJ BK A BK BL BK A BK BM BG ~@46
>`.pickRestart({
A: "a2!2 c3 c#3 e3!2 f#3 a3", B: "~ a2 c3 c#3 d3 ~ d3 ~", C: "a2!2 c3 c#3 d3 ~ a2 ~", D: "e2 f2 f#2 g2 g#2 a2 a#2 b2",
E: "c3 c#3 d3 d#3 e3 f3 f#3 d#3", F: "~ a2 c3 c#3 e3!2 f#3 e3", G: "a2!2 c3 c#3 e3!2 g2 f#2",
H: "e2!2 f#2 g2 g#2 b2 c#3 e3", I: "e3!2 g2 g#2 e2!2 g2 g#2", J: "~ a2 c3 c#3 a2!2 e2 f#2",
K: "~ a3 c3 c#3 e3!2 f#3 e3", L: "~ a3 c3 c#3 e3!2 g2 f#2", M: "e2!3 g2 g#2 b2 c#3 e3", N: "~ a2 c3 c#3 a2!2 b2 a2",
O: "d3!6 c3 b2", P: "a2!2 c3 c#3 e3!2 f#3 e3", Q: "a2 c#3 e3 f#3 ~ f#2!2 e2", R: "e2 f#2!2 e2 f#2!4",
S: "e2 f#2!3 e2 f#2!3", T: "e2!5 f#2 g#2 b2", U: "c#3 e3!5 f#3 e3", V: "a3 a2 c3 c#3 d3!3 c3",
W: "~ a2 c3 c#3 d3 ~ a2!2", X: "d3 ~@7", Y: "b2 ~@7", Z: "b2!2 ~@6", AA: "e2!3 f#2 g#2 b2 c#3 b2",
AB: "c3 c#3 d3 e3 e2!2 b2 c#3", AC: "d3!5 c3!2 b2", AD: "a2 c#3 e3 f#3 ~ f#2!3", AE: "f#2!8", AF: "f#2!3 e2 f#2!3 e2",
AG: "f#2!3 e2 f#2!3 f2", AH: "e3 g2 g#2 b2 e2!2 g2 g#2", AI: "a2!5 ~@3", AJ: "a2!6 a#2 ~", AK: "b2!5 ~@2 b2",
AL: "b2!5 ~@3", AM: "b2!5 a2 b2 ~", AN: "e3 ~@3 d3 ~@3", AO: "c3 ~@3 b2 ~@3", AP: "a2 ~@7", AQ: "~@5 g2 ~@2",
AR: "e2 ~@2 g2 ~@2 d3 ~", AS: "~ c3 ~@3 d3 ~@2", AT: "a2!8", AU: "a2!5 g2 ~@2", AV: "a2!6 g#2 a2",
AW: "~ a2 c3 c#3 e3!2 g2 f#2", AX: "e2!2 g2 g#2 b2!2 c#3 e3", AY: "~ a2 c3 c#3 a2!2 c3 c#3",
AZ: "~ d3!2 ~ d3!2 c3 b2", BA: "a2!3 c#3 ~ e3 f#3 a3", BB: "f#2!4 e2 f#2!3", BC: "f#2!3 e2 ~ f#2 e2 f#2", BD: "e3!8",
BE: "~ e2 g2 g#2 b2!2 c#3 e3", BF: "a2!3 c3 c#3 e3 f#3 a3", BG: "d3!5 f#2 g2 a2", BH: "a2!6 c3 c#3",
BI: "d3!5 f#2 g#2 a2", BJ: "a2!5 c3 c#3 e3", BK: "d3!5 c3 b2 a2", BL: "a2!2 c3 c#3 a2!2 c3 c#3",
BM: "~ a2 g2!2 f#2!2 e2!2",
})).s("gm_electric_guitar_muted").gain(0.38).pan(0.3)
// chords · flute
const flute = note(`<
~@10 A B@3 ~@4 A B@3 C ~ D ~ E ~@14 F G H I J K L@2 M G H I ~ N O@3 ~ C ~ D ~ E ~@39 A P@3 Q ~ R ~ S ~@7 Q ~ R ~ S ~ Q
~ R ~ S ~ Q ~ R ~ S ~ Q ~ R ~ S ~@46
>`.pickRestart({
A: "~ [e4,b4]!7", B: "[[d4,a4]@2 [d4,a4]@4 [b3,g#4]@3 ~@3 a4@2 a4@6 ~@8 e5@2 e5@6 ~@12]/3",
C: "~@4 [d4,f#4]@2 ~@2 [d4,f#4]@5 ~@3", D: "~@4 [d4,f#4]@3 ~ [d4,f#4]@5 ~@3",
E: "~@4 [d4,f#4]@2 [d4,f#4]@2 [d4,f#4]@5 ~@3", F: "~@7 f#4, ~@14 a3 ~",
G: "[d4,a4]@4 [b3,a4]@2 [c#4,a4]@7 ~ [c#4,a4]@2", H: "[b3,g4] [b3,g4]@2 [a3,e4]@3 [a3,c#4]@2", I: "[f#3,a3,c#4]",
J: "~@7 [a3,a4]", K: "[d4,a4]@4 [b3,a4] ~ [c#4,a4]@8 [a3,a4]@2", L: "[[b3,g4]@2 [b3,g4] [d4,b4]@13]/2",
M: "~@14 [a3,f#4] ~", N: "a4@2 a4@2 a4@4 a4@3 ~ a4@2 g#4@2", O: "[a4@2 a4@3 ~ a4@4 g#4@2 a4@2 b4@19 ~@15]/3",
P: "[[d4,a4]@2 [d4,a4]@4 [b3,g#4]@3 ~@3 a4@2 a4@6 ~@8 [c#5,e5] ~ [c#5,e5]@6 ~@12]/3", // D5 E C#m
Q: "~@4 [d4,f#4,d5]@2 ~@2 [d4,f#4,d5]@5 ~@3", R: "~@4 [d4,f#4,d5]@3 ~ [d4,f#4,d5]@5 ~@3",
S: "~@4 [d4,f#4,d5]@2 [d4,f#4,d5]@2 [d4,f#4,d5]@5 ~@3", // D
})).s("gm_flute").gain(0.3).pan(0.4)
// other · music box
const music_box = note("<~@38 A B C D E B C F G H ~@2 C D E B ~@134>".pickRestart({
A: "d5@2 ~@4 c#5@2 ~@4 a4 ~@3", B: "b4@2 ~@4 c#5@2 ~@4 a4 ~@3", C: "d5@2 ~@4 c#5 ~@5 a4 ~@3",
D: "b4 ~@2 c#5 ~@2 a4 ~", E: "d5 ~@5 c#5 ~@5 a4 ~@3", F: "b4 ~@5 c#5@2 ~@4 a4 ~@3", G: "d5 ~@5 c#5@2 ~@4 c#5@2 ~@2",
H: "d5 ~ b4 g5 ~@4",
})).s("gm_music_box").gain(0.27).pan(0.4)
// other · tubular bells · "TUBULARBEL"
const tubular_bells = note("<~@30 A@2 ~@6 B C B C B C B D E F ~ G H I J I ~@134>".pickRestart({
A: "[~@6 [e5,a5,c#6]@5 ~@3 [d#5,g#5,b5]@5 ~@3 [c#5,f#5,a5]@5 ~@5]/2", B: "d6@3 c#6@3 a5@2", C: "b5@3 c#6@3 a5@2",
D: "b5@6 c#6@6 a5@3 ~", E: "d6@6 c#6@5 ~ a5@4", F: "b5@5 ~ b5@6 ~@4", G: "b5@3 ~@3 b5@2 ~@4 c#6@2 ~@2",
H: "d6@5 ~ c#6@2 ~@4 a5@2 ~@2", I: "b5@2 ~@4 c#6@2 ~@4 a5 ~@3", J: "d6@3 ~@3 c#6 ~@5 a5@2 ~@2",
})).s("gm_tubular_bells").gain(0.22).pan(0.6)
// chords · church organ · "CHURCH ORG"
const church_organ = note("<~@83 A@5 ~@100>".pickRestart({
A: "[[b4,f#5]@13 ~@3]/5", // B5
})).s("gm_church_organ").gain(0.16).pan(0.6)
// other · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note("<~@141 A@3 ~@20 B@2 C@2 D@2 E@2 D@2 C@2 D@2 E@2 D@2 E@2 F@3 G>".pickRestart({
A: "[~@22 b5 [f#5,g5,a5] [c5,d5,e5] [g4,a4,b4] [d4,e4,f#4] [a#3,b3,c4] a3@4 [b3,c4] [d4,e4,f#4] [g4,a4,b4] [c5,d5,e5] a5@12, ~@7 [a1,e2,a2]@17, ~@36 f#5 ~@11]/3", // F#m C G D Cmaj7 D G C …
B: "[[f#7,g7] [d#7,e7,f7] [c7,c#7,d7] [a6,a#6,b6] [f#6,g6,g#6] [d#6,e6,f6] [c6,c#6,d6] [a5,a#5,b5] g5@16 f#5@4 g5@2 f#5@2, ~@8 g#5 ~@23]/2", // Gmaj7
C: "[e5@6 f#5 e5]/2", D: "[g5@12 f#5@2 g5 f#5]/2", E: "[e5@3 d5]/2", F: "[[a2,a4]@47 ~]/3", G: "[a4,a5,a6] ~",
})).s("gm_lead_2_sawtooth").gain(0.33).pan(0.6)
// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
A@2 B@2 C D E F G H I J K L M F G H I N K L O P O Q R S T U V@2 W@2 X Y Z AA AB@2 AC@2 AD@4 AE@4 AF@4 AG AH AI AJ AK O
AL O AM AN AO AP AQ AR@2 W@2 AS@11 AT AU@4 AV AW AX@2 AY AZ BA@2 AY AZ BB@2 M BC G BD I BE K L O BF O BG AN BH BI BJ
BK@2 W@2 BL BM BN BO O BP O BQ O BR BN BS O BT BN BU BL BV BN BT BL BW BX@3 ~@11 BY BZ BY BZ BY BZ BY BZ BY BZ BY BZ
BY BZ BY BZ BY BZ BY BZ BY BZ BY BZ BY BZ BY BZ BY CA@3 ~
>`.pickRestart({
A: "[~@7 a3@4 ~ [d3,a3] ~ [d3,a3] ~, [a2,e3]@3 ~]/2", // D5 A5
B: "[~@4 [a2,e3]@2 ~@2 [a2,e3] ~ [a2,e3]@2 ~@2 [a2,e3]@10 [d3,a3]@2 ~@2 [a2,e3]@4]/2", C: "e2 ~ f#2 ~ g#2 a2 a#2 b2",
D: "c3 c#3 d3 d#3 e3 f3 f#3 d#3", E: "[a2,e3]@3 ~ [a2,e3,a3] ~@3 a2 ~ [a2,e3]@2 ~@4, a3 ~@15",
F: "[a2,e3,a3] ~ [a2,e3,a3]@2 ~@2 a2@2 ~@2 [a2,e3]@2 ~@4", G: "~@4 [a2,e3,a3]@2 ~@4 [a2,e3]@2 ~@2 e3 ~",
H: "~@2 [a2,e3,a3]@2 ~@2 [a2,e3,a3]@3 ~ e3 ~ [a2,e3,a3]@2 ~@2", I: "~@4 [e2,b2,e3]@2 ~@2 e3 ~ [e2,b2,e3]@3 ~@3",
J: "[e2,b2,e3] ~ [e2,b2,e3]@2 ~@2 [e2,b2,e3]@2 ~@2 [e2,e3] ~@3 [e2,b2,e3]@2", // E5 E E5
K: "~@4 [a2,e3,a3]@2 ~@2 [a2,e3,a3] ~ [a2,e3,a3]@2 ~@4", L: "a2 ~ [a2,e3,a3]@3 ~ [a2,e3,a3]@2 ~@2 [a2,e3,a3]@2 ~@4",
M: "[a2,e3,a3]@3 ~@2 [a2,e3] ~@2", N: "[e2,b2,e3] ~ [e2,b2,e3]@2 ~@2 [e2,b2,e3]@2 ~@2 [b2,e3] ~@3 [e2,b2,e3]@2",
// … 252 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.