0:00/0:00
// Ballroom Dancing — McCartney
// 159 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 183 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): MUTED GTR.
setcpm(159/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 · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
~@2 A@2 B@2 C@2 D@2 E F G H I J K L M N O P Q R S T U V W@2 X@2 Y@2 Z AA AB AC AD@2 AE@4 AF@2 AG@2 AH AI@3 AJ AK AL@2
AM AN AO@2 AP@2 AQ AR AS@2 AT@2 AU@2 AV AW AX@2 AY@2 AZ BA BB BC BD BE BF BG BH@2 BI BJ BK BL BM BN BO BP BQ BR BS BT
BU BV BW BX BY BZ BY CA CB CC CD CE CF CG CH@4 CI@2 CJ@2 CK@2 CL@2 CM@2 CN@2 B@2 C@2 D@2 E F CO@2 E F CP CQ CP@2 B@2
C@2 D@2 E F CR H I J CS CT CU@2 CV P Q R S T U V W@2 X@2 Y@2 Z AA AB AC CW BN CX BN CY
>`.pickRestart({
A: "[[b2,f#3]!2 g#3 ~ [b2,f#3] b2 [b2,g#3] [b2,f#3]@2 [b2,f#3] g#3 [b2,f#3] b3!2 [b2,g#3] [b2,f#3]]/2", // B5 E B5 E B5
B: "[~@2 [b2,f#3]@2 [b2,g#3]@2 b2@2 [b2,f#3]@2 ~@2 g#3@2 [b2,f#3]@4 [b2,f#3]@2 g#3@2 [b2,f#3] ~ b3@3 ~ [b2,g#3]@2 [b2,f#3]@2]/2", // B5 E B5 E B5
C: "[[b2,f#3]@3 ~ g#3@2 ~@2 f#3@2 ~@2 [b2,g#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,g#3]@2 f#3@2 [b2,b3]@2 b2@2 [b2,g#3]@2 [b2,f#3] ~]/2", // B5 E B5 E B E B5
D: "[[e3,b3]@2 b3@2 c#4@2 ~@2 b3@2 ~@2 [e3,c#4]@2 [e3,b3]@4 b3@2 c#4@2 b3@3 ~ [e3,b3]@2 [e3,c#4]@2 b3 ~]/2", // E5 C#m E5 C#m
E: "[b2,f#3]!2 b2@2 [b2,f#3] b2 [b2,g#3] [b2,f#3], ~@4 g#3 ~@11", // B5 E B5
F: "b2 [b2,f#3] [b2,g#3] f#3 b2 [b2,f#3] [b2,g#3] [b2,f#3]", // B5 E B5 E B5
G: "[b3,d#4,f#4]@2 [f#4,b4] ~@3 b3@2 [b3,d#4,f#4,b4]@4 a#4 ~@3", H: "[e3,b3] b3 [e3,c#4] ~ b3 ~ [e3,c#4] [e3,b3]",
I: "e3@2 [e3,b3]@2 [e3,c#4]@2 b3@3 ~ b3@2 [e3,c#4]@2 b3@2", J: "[e3,b3] b3 [e3,c#4] e3 b3!2 [e3,c#4] [e3,b3]",
K: "g#3@3 ~ g#3 ~ d#3@3 ~ g#3 ~ b2@2 g#3 ~", L: "[e3,b3]@2 b3@2 c#4@2 ~@2 b3@2 e3@2 [e3,c#4]@2 [e3,b3] ~",
M: "[b2,f#3] f#3 [b2,g#3] ~ [b2,f#3] b2 [b2,g#3] [b2,f#3]", // B5 E B5 E B5
N: "~ [b2,f#3] [b2,g#3] b2 f#3 [b2,f#3] [b2,g#3] [b2,f#3]", O: "b3@6 ~@2 g#3@5 ~ g3 ~", P: "f#3@2 ~@2 b2@7 ~@5",
Q: "[e3,b3] b3 c#4 ~ b3 ~ [e3,c#4] b3", R: "~@2 b3@2 c#4@2 b3@4 b3@2 c#4@2 b3 ~",
S: "[b2,f#3]!2 [b2,g#3] b2 f#3 b2 g#3 [b2,f#3]", // B5 E B5
T: "~@2 [b2,f#3]@2 [b2,g#3]@2 f#3 ~@3 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2", U: "b3!2 c#4 ~ b3 ~ c#4 [e3,b3]",
V: "e2@5 ~ g#2@5 ~ a2@3 ~",
W: "[[b2,f#3]@2 f#3 ~ [b2,g#3]@2 ~@2 [b2,f#3]@2 ~@2 [b2,g#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,g#3]@2 f#3@2 [b2,b3]@2 [b2,b3]@2 [b2,g#3]@2 [b2,f#3] ~]/2", // B5 E B5 E B5 E B E …
X: "[b3!2 c#4 ~ b3 e3 [e3,c#4] [e3,b3]@2 b3 ~ e3@2 b3 c#4 [e3,b3], e3@4 ~@18 b3 ~@9]/2", // C#m E5
Y: "[[b2,f#3]@2 f#3@2 g#3@2 ~@2 f#3@2 ~@2 [b2,g#3]@2 [b2,f#3]@4 f#3 ~ g#3@2 f#3@2 [b2,b3]@2 [b2,b3]@2 [b2,g#3]@2 [b2,f#3] ~, ~ b2@2 ~@13]/2", // B5 E B5 B E B5
Z: "b3@2 b3 ~ c#4@2 ~@2 b3@2 b3@2 [e3,c#4]@2 [e3,b3]@2, e3 ~@3", AA: "e3@7 ~ [e3,a3]@6 ~@2, a3@5 ~@11",
AB: "[b2,f#3]!2 [b2,g#3] ~ [b2,f#3] ~ [b2,g#3] [b2,f#3]", AC: "~ [b2,f#3] [b2,g#3] [b2,f#3] b2 f#3 [b2,g#3] [b2,f#3]",
AD: "[[b2,f#3]@2 f#3 ~ [f#3,b3]@2 f#3@2 b3@2 [f#3,b3]@2 [f#3,b3]@2 [f#3,b3]@4 [f#3,b3]@2 [f#3,b3] ~ [f#3,b3]@2 [f#3,b3]@2 [f#3,b3]@2 [f#3,b3]@2 [f#3,b3]@2, ~@6 b3 ~@25]/2", // B5
AE: "[[b2,f#3] ~ [b2,f#3]@2 g#3@2 f#3 ~ f#3@2 ~@2 [b2,g#3]@2 [b2,f#3]@4 [b2,f#3]@2 b2@4 f#3@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@4 [b2,f#3]@2 b2@4 f#3@2 ~@2 g#3@2 [b2,f#3]@4 [b2,f#3]@2 [b2,g#3]@2 f#3@2 ~@2 [b2,f#3]@2 [b2,g#3]@2 f#3 ~, ~@3 b2@2 ~@5 g#3 ~@7 g#3 ~@13]/4", // B5 E B5 E B5 E B5 E
AF: "[b3!2 [e3,c#4] ~ b3 ~ [e3,c#4] [e3,b3]@2 [e3,b3] [e3,c#4] b3 e3 b3 [e3,c#4] b3]/2", // C#m E5 C#m
AG: "[[b2,f#3]@3 ~ [b2,g#3]@2 b2@2 [b2,f#3]@2 ~@2 [b2,g#3]@2 [b2,f#3]@4 b2@2 [b2,g#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2]/2", // B5 E B5 E B5 E B5 E …
AH: "b3@2 [f#4,b4] ~@3 b3@2 [b3,d#4,f#4]@4 d4 ~@3, ~@4 b4 ~@3", // B5 B
AI: "[[e3,b3]@2 ~@2 [e3,c#4]@2 ~@2 [e3,b3]@2 ~@2 [e3,c#4]@2 [e3,b3]@4 [e3,b3]@2 e3@2 b3@2 e3@2 b3@2 [e3,c#4]@2 b3 ~ b3@2 ~@2 e3@4 [e3,b3]@2 e3@2 [e3,c#4]@2 e3@2, ~@15 e3@2 ~ c#4 ~@5]/3", // E5 C#m E5 C#m E5 C#m E5 C#m
AJ: "g#3@3 ~ g#3@2 d#3@3 ~ d#3@2 b2@3 ~", AK: "[e3,b3] ~ e3@2 [e3,b3] ~ [e3,c#4] b3, ~@2 c#4 ~@5",
AL: "[[b2,f#3] ~ [b2,g#3] b2 b2@2 [b2,g#3] [b2,f#3]@2 [b2,f#3] [b2,g#3] [b2,f#3] b2 [b2,f#3] [b2,g#3] [b2,f#3], ~@4 f#3 ~@11]/2", // B5 E B5 E B5 E B5
AM: "b3@6 ~@2 g#3@6 g3 ~", AN: "f#3@2 ~@2 b2@5 ~@7",
AO: "[[e3,b3]@2 b3@2 [e3,c#4]@2 ~@2 [e3,b3]@2 e3@2 [e3,c#4]@2 [e3,b3]@4 [e3,b3]@2 c#4@2 b3 ~ e3@2 [e3,b3]@2 [e3,c#4]@2 [e3,b3]@2, ~@5 e3 ~@2]/2", // E5 C#m E5 C#m E5 C#m E5
AP: "[b2@4 [b2,g#3]@2 b2@2 [b2,f#3]@2 b2@2 [b2,g#3]@2 b2@6 [b2,g#3]@2 b2@4 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3] ~, f#3@2 ~@12 f#3@3 ~@5 f#3 ~@9]/2", // E B5 E B5 E B5
AQ: "[e3,b3] ~ [e3,c#4] e3 b3 e3 [e3,c#4] b3", AR: "e3@2 ~ g#3@2 ~ a3 ~",
AS: "[[b2,f#3]@2 b2@2 [b2,g#3] ~@3 [b2,f#3]@2 b2@2 [b2,g#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,g#3]@2 f#3@2 b2@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3] ~]/2", // B5 E B5 E B5 E B5 E …
AT: "[[e3,b3] ~ [e3,c#4] ~ [e3,b3] ~ [e3,c#4] [e3,b3]@2 [e3,b3] [e3,c#4] [e3,b3] ~ [e3,b3] [e3,c#4] b3]/2", // E5 C#m E5 C#m E5 C#m E5 C#m
AU: "[f#3 ~ f#3 ~ [b2,g#3]@2 b2@2 [b2,f#3]@2 b2@2 [b2,g#3]@2 [b2,f#3]@4 [b2,f#3]@2 g#3@2 f#3 ~ b2@2 [b2,f#3]@2 [b2,g#3]@2 f#3 ~, b2 ~@4 b2 ~@2]/2", // E B5 E B5 E
AV: "[e3,b3] b3 [e3,c#4] ~ [e3,b3] e3 [e3,c#4] ~", AW: "[e3,a3]@7 ~ [e3,a3]@5 ~@3",
AX: "[[b2,f#3]@2 b2@2 b2@4 f#3@2 b2@2 [b2,g#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2 b2 ~ [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2, ~@2 g#3 ~@13]/2", // B5 E B5 E B5 E B5
AY: "[[b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 ~@2 [b2,f#3]@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@4 b3@2 [b2,f#3]@2 [b2,f#3,b3]@2 [b2,f#3,b3] ~ [b2,f#3,b3]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2]/2", // B5 E B5 E B5
AZ: "[b2,f#3]@2 f#3 ~ [b2,g#3]@2 b2@2 [b2,f#3]@2 b2@2 [b2,g#3]@2 [b2,f#3]@2", // B5 E B5 E B5
BA: "~@2 [f#4,b4] ~@3 f#4@2 [f#4,b4]@2 [f#4,b4]@2 [f4,a#4] [e4,a4] ~@2", // B5 A#5 A5
BB: "[e3,b3] b3 [e3,c#4] e3 b3 e3 [e3,c#4] [e3,b3]", // E5 C#m E5
BC: "~@2 b3 ~ [e3,c#4]@2 b3 ~ b3 ~ [e3,b3]@2 [e3,c#4]@2 [e3,b3]@2, e3@2 ~ e3@2 ~@3", // C#m E5 C#m E5
BD: "[b2,f#3] f#3 [b2,g#3] b2@2 [b2,f#3] [b2,g#3] [b2,f#3], ~@3 f#3 ~@4", // B5 E B5 E B5
BE: "~@2 f#3 ~ g#3@2 [b2,f#3]@4 [b2,f#3]@2 [b2,g#3]@2 b2 ~, b2@3 ~@5", // B5 E
BF: "[e3,b3]@3 ~ [e3,c#4]@2 e3@4 e3@2 [e3,c#4]@2 b3 ~", BG: "e2@5 ~ g#2@6 a2@4",
BH: "[f#3@2 f#3 ~ g#3@2 ~@2 f#3@2 b2@2 [b2,g#3]@2 b2@4 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@4 [b2,f#3]@2 b2@2 f#3 ~, b2@10 ~@4 f#3@2 ~@12 g#3 ~@3]/2", // E B5 E B5
BI: "[e3,b3] b3 e3 ~ b3 e3 c#4 b3, ~@3 e3@2 ~@3", BJ: "e3@2 b3@2 c#4@2 e3@4 [e3,b3]@2 [e3,c#4]@2 b3 ~, ~@6 b3 ~@9",
BK: "f#3@2 f#3 ~ [b2,g#3]@2 ~@2 f#3@2 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3]@2, b2@2 ~ b2@2 ~@3", // E B5 E B5
BL: "b2@2 f#3@2 [b2,g#3]@2 [b2,f#3]@4 [b2,f#3]@2 [b2,g#3]@2 [b2,f#3] ~", // E B5 E B5
BM: "[c3,g3]@2 c3@2 [c3,a3]@2 c3@4 [c3,g3]@2 [c3,a3]@2 g3 ~, ~@3 g3 ~@4", // C5 F C5 F
BN: "[d3,a3] a3 b3 d3@2 [d3,a3] [d3,b3] ~, ~ d3@2 a3 ~@4", // D5 G
BO: "[b2,f#3]!2 [b2,g#3] ~ f#3 b2 [b2,g#3] [b2,f#3], ~@3 b2@2 ~@3", // B5 E B5
BP: "b2 f#3 g#3 b2@2 [b2,f#3] [b2,g#3] [b2,f#3], ~@3 f#3 ~@4", // B5 E B5
BQ: "~@2 f#3@2 f#3@2 [f#3,b3]@2 f#3 ~ f#3@2 [f#3,b3]@2 f#3@2", BR: "[f#3,b3]!4 [f#3,b3,d#4] [f#3,b3]!2 [f#3,b3,d#4]",
BS: "[b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~", // B5
BT: "[b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~", // B5
BU: "[b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~", // B5
BV: "[b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [f#3,b3] ~", // B5
BW: "[b2,f#3,b3] ~ [b2,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~", // B5 B B5
BX: "[b2,f#3,b3] ~ [f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~", // B5
BY: "[b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~", // B5
BZ: "[b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~", // B5
CA: "[f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~", // B5
CB: "[b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~", // B5
CC: "[f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~", // B5
CD: "[f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~", // B5
CE: "[b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~", // B5
CF: "[f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~", // B5
CG: "[b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [f#3,b3] ~", // B5
CH: "[b2@24 b2@7 ~ e2@23 ~ a2@8, ~@31 g#2@2 ~@31]/4", CI: "[b2@15 ~]/2", CJ: "[e2@23 ~ a2@8]/2",
CK: "[b2@24 d3@7 ~]/2", CL: "a2/2", CM: "[b2@24 d3@5 b2 ~@2]/2", CN: "[e2@24 e3@7 ~]/2",
CO: "[~@2 c#4@2 d#4@2 ~@2 c#4@2 ~@2 [f#3,d#4]@2 [f#3,c#4]@4 b3@2 c#4@2 b3@3 ~ [e3,b3]@2 [e3,c#4]@2 b3 ~]/2", // D#m F#5 E5 C#m
CP: "[b2,f#3,b3]", CQ: "[b2,f#3,b3]@15 ~", CR: "[b2,d#3,f#3]@2 [f#3,b3] ~@3 b2@2 [b2,d#3,f#3,b3]@4 a#3 ~@3",
CS: "g#3@3 ~ g#3 ~@5 g#3 ~ b2@2 g#3 ~, d#3@3 d#3@5", CT: "[e3,b3]@2 b3@2 c#4 ~@3 b3@2 e3@2 [e3,c#4]@2 [e3,b3] ~",
CU: "[[b2,f#3] ~ [b2,g#3] ~ b2!2 [b2,g#3] f#3@2 [b2,d#3,f#3] b2!2 f#3 [b2,e3,f#3] [b2,g#3,f#4] [b2,f#3,e4], ~ f#3@3 f#3@3 b2 ~@2 e3@3 ~@3, ~@20 g#3 ~ b3@10]/2", // B5 E B Bsus4 G#m7 Bsus4
CV: "[d#4,f#4]@4 ~ f4 e4 ~ g#3@5 ~ g3 ~, b3@3 ~@5, ~@2 d4 ~@5", // D#m
CW: "[b2,c3,g3]@2 c3@2 [c3,a3]@2 c3@4 [c3,g3]@2 [c3,a3]@2 g3 ~, f#3 ~@5 g3@2 ~@8", // Cmaj7 F C5 F
CX: "[b2,c3,f#3,g3]@2 c3@2 [c3,a3]@2 c3@4 [c3,g3]@2 [c3,a3]@2 g3 ~, ~@3 g3 ~@4", // Cmaj7 F C5 F
CY: "[e2,b2,f#3]@2 [e2,b2] ~ [e2,b2]@2 ~@10", // Esus2 E5
})).s("gm_overdriven_guitar").gain(0.22).pan(0.2)
// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note(`<
~@2 A B C B D E F G ~@2 H I J K ~ L M ~ N ~ O P Q R S ~ T ~ U V W A X ~ Y@2 ~@2 Z R Q AA AB AC ~@2 AD AE AF AG ~ AH M
~ N ~ AI ~ AJ@2 AK ~ E@2 AE AL ~ AA AM ~ AN ~ E M ~ AO AG ~ M ~ AP ~@3 AQ AR ~@2 AS AT ~ AU AV ~@4 AA ~@4 AW ~@16 AX
~@3 AY ~@2 C B D E F G ~@2 AZ G ~@6 C B D E F G ~@2 BA I J K ~ BB M ~ BC ~ O P Q R S ~ T ~ U V W A X ~ Y@2 AS AT AS AT
~
>`.pickRestart({
A: "~@2 b2!2 ~@4", B: "~@2 b2 ~ b2!2 ~@2", C: "b2 ~@4 b2!2 ~", D: "~ b2!5 ~@2", E: "~@3 b2 ~@4", F: "~ e3!5 ~@2",
G: "~@2 e3@2 e3@2 e3@2 e3@2 ~@4 e3 ~", H: "~@12 [d4,f4] c#4 ~@2", I: "~ e3 ~ e3!3 ~@2", J: "~@3 e3!3 ~ e3",
K: "~ e3 ~@2 e3!2 ~@2", L: "~ e3!2 ~ e3 ~@3", M: "~ b2 ~@6", N: "~@15 f#3", O: "~ e3!5 ~ e3",
P: "e3@2 e3@2 e3@2 e3@4 e3@2 e3@2 e3 ~", Q: "~@4 b2 ~ b2 ~", R: "~@4 b2 ~@3", S: "e3!3 ~ e3!3 ~",
T: "~@2 b2 ~@3 b2 ~@3 b2@2 ~@4", U: "~@2 e3!3 ~@3", V: "~ e3!2 ~@2 e3!2 ~", W: "~@3 b2 ~ b2 ~@2", X: "~@2 e3!4 ~@2",
Y: "~@5 b2 ~@2", Z: "~@2 b2 ~@2 b2 ~@2", AA: "~@14 b2 ~", AB: "e3!2 ~@2 e3!2 ~@2", AC: "~@6 e3@3 ~ e3@2 ~@2 e3@2",
AD: "~@2 d#4 ~@9 c#4 c4 ~@2", AE: "~ e3 ~ e3 ~ e3 ~@2", AF: "~@3 e3 ~ e3 ~@2", AG: "~ e3 ~@6", AH: "~ e3 ~@3 e3 ~ e3",
AI: "~ e3 ~ e3 ~@4", AJ: "~@2 f#3 ~@13", AK: "~ e3 ~@2 e3 b3 ~ e3", AL: "~@4 e3 ~@2 e3", AM: "~ e3 ~ e3 ~@3 e3",
AN: "~ f#3 ~@2 b2 ~@3", AO: "~@2 d4 ~@13", AP: "~@2 e3@2 ~@10 e3 ~", AQ: "~@2 e3@2 ~@8 e3@2 e3 ~",
AR: "~@2 e3@2 e3@2 ~@8 e3 ~", AS: "~@14 c3 ~", AT: "~@14 a3 ~", AU: "~ b2!2 ~@5", AV: "~ b3 ~@5 b3",
AW: "~@10 b2 ~@5", AX: "~@15 b2", AY: "~@15 g#2", AZ: "~ f#3!5 ~@2", BA: "~@12 [d3,f3] c#3 ~@2",
BB: "~ e3 e3@2 e3 ~@3", BC: "~@6 c#4 [b3,c4] ~@7 f#3",
})).s("gm_overdriven_guitar").gain(0.14).pan(0.2)
// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
~@2 A@3 B A@2 C@2 A@2 D E C F G H A I J K C L A@2 M N A@2 C O A@2 P Q A@2 R S A@3 T C U V W X E C Y Z AA A AB AC AD C
AE A B AF AG A@2 C AH D A M Q A B AI AJ AK A C AL A@2 AM AN A@2 C AO A B AP AQ A AR AS AT AU AV AW ~ AU AV AX AY AU AV
AZ ~ AU AV BA@2 BB@2 BC BD BE@2 BF@2 BG@2 BH@2 BI@2 BJ@2 A@3 D C@2 A@2 BK BL A BM BN BO BP BQ A@4 BR BS A BT BU BR C
BV BW BX A BY BZ AD BR CA A@2 C CB A@2 C CC A CD CE CF CG CH CI CJ CI CK CL
>`.pickRestart({
A: "b1!2 ~@2 f#1!2 ~@2", B: "b1!2 ~@2 f#1@2 ~@2", C: "e2!2 ~@2 b1!2 ~@2", D: "b1@2 b1 ~@5 f#1@2 f#1@2 ~@4",
E: "e1!2 ~@2 b1!2 ~@2", F: "e2!2 ~@2 b1 e2 f#2 g2", G: "g#2@5 ~ d#2@5 ~ b1@2 ~@2",
H: "e2@2 e2@2 ~@4 e2@2 e2 ~@3 e2 ~", I: "b1@2 b1@2 ~@4 f#2@2 f#2 ~@3 f#2 ~", J: "b2@7 ~ g#2@7 ~",
K: "f#2@2 ~@2 b1@9 ~@3", L: "e2@2 e2 ~ g#1@4 a1@3 ~ a#1@4", M: "e2!2 ~@2 b1@2 c#2 b1", N: "e1@5 ~ g#1@6 a1@4",
O: "e2!2 ~ e2 c#2 b1 g#1 f#1", P: "e1!2 ~@2 b1!2 c#2 e2", Q: "a1@8 a1@7 ~", R: "b1@2 b1@2 ~@4 f#1@2 f#1 ~ a1@2 a#1@2",
S: "b1@4 b1@2 b1 a1", T: "b1@2 b1@2 ~@4 f#1@2 f#1 ~ b1@4", U: "e2!2 ~@2 b1 ~ c#2 g#1",
V: "b1 ~ b1@2 ~@4 f#1@2 f#1@2 ~@4", W: "b1@2 b1@2 ~@4 f#1@5 ~@3", X: "b1@2 b1@2 ~@4 f#1@3 ~ g#1@3 ~",
Y: "e2@2 e2@2 ~@4 b1@2 b1@2 ~@2 b1 ~", Z: "g#2@3 d#2@3 b1@2", AA: "e2@2 e2@2 ~@4 b1@2 b1 ~@3 g#1@2",
AB: "b1@2 b1@2 ~@4 f#1@2 f#1 ~ g#1@4", AC: "b2@8 g#2@7 ~", AD: "f#2 ~ b1@5 ~", AE: "e2!2 ~ e1 g#1@2 a1@2",
AF: "e2@2 e2@2 ~@4 b1@2 b1 ~@5", AG: "e1@2 ~@4 g#1@5 ~ a1@3 ~", AH: "e2@2 e2@2 ~@2 c#2@3 ~ b1 ~ g#1@2 f#1 ~",
AI: "b1!2 ~@2 f#1!2 a1 a#1", AJ: "b1@2 b1@2 b1@2 b1 ~", AK: "b1@2 b1@2 ~@4 f#1@2 f#1 ~@5",
AL: "e2@2 e2@2 ~@4 b1@3 ~ c#2@2 g#1@2", AM: "e2@2 e2@2 ~@4 b1@2 b1 ~ c#2@2 ~@2", AN: "e1@6 g#1@5 ~ a1@4",
AO: "e2@2 e2 ~@3 e1@2 g#1@4 a1@4", AP: "c2!2 ~@2 g1!2 ~@2", AQ: "d2@2 d2@2 ~@4 a1@2 a1@2 ~@2 a1 ~",
AR: "b1!2 ~@2 f#1!2 g#1 f#1", AS: "b1!8", AT: "b1@2 b1@2 b1@2 b1 ~ e2@2 f#2@2 e2@2 d2@2", AU: "b1!2 ~@6",
AV: "e1!2 ~@6", AW: "a1@2 b1@3 ~@11", AX: "a1 a1@4 g1@3", AY: "f#1@6 e1@6 a1@3 ~", AZ: "a1 b1 ~@6",
BA: "[a1 a1@15]/2", BB: "[b1@23 ~ d2@6 c#2 ~]/2", BC: "e1@15 ~", BD: "f#3@3 e3@3 d3@2", BE: "[b2@23 ~ d2@8]/2",
BF: "[e2@29 ~@3]/2", BG: "[b1@15 ~]/2", BH: "a1/2", BI: "[b1@23 ~ d2@7 ~]/2", BJ: "[e2@11 f#2 ~ f2@2 ~]/2",
BK: "f#1!2 ~@2 c#2!2 ~@2", BL: "e1@4 g1@2 g#1@2 a1@4 a#1@3 ~", BM: "b1@2 b1 ~@3 b1 ~ f#1@2 ~@2 f#1@2 ~@2", BN: "b1",
BO: "b1@6 b1 ~", BP: "b2!2", BQ: "b2", BR: "e2!2 ~@2 b1@2 ~@2", BS: "e2@2 e2@2 ~@2 b1@2 ~@2 b1 ~ g#1@2 a1@2",
BT: "b1@2 b1 ~@3 b1 ~ a1@3 ~ g#1@2 f#1 ~", BU: "b1@2 b1 ~ g#1@2 f#1 ~ b1@2 ~@2 d#2@2 ~@2",
BV: "e2@2 e2@2 ~@4 b1@2 e2@2 f#2 ~ g2@2", BW: "g#2@2 g#2@2 d#2@2 b1@6 g#1@3 ~", BX: "e2@2 e2@2 ~@4 b1@3 ~@3 g#1@2",
BY: "b1@2 b1 ~@3 b1 ~ f#2@3 ~ g#2@2 f#2@2", BZ: "b2@7 ~ g#2@7 g2", CA: "e2@2 e2@2 ~@2 e1@2 g#1@3 ~ a1@4",
CB: "e1@5 ~ g#1@4 g#1 ~ a1@2 a1 ~", CC: "e2@2 e2@2 ~@2 c#2 ~ e2@2 c#2@2 b1@2 g#1@2",
CD: "b1@2 b1@2 ~@4 f#1@3 ~ b1@3 ~", CE: "e2!2 ~@2 b1@2 c#2 e2", CF: "a1!2", CG: "b1@2 b1@2 ~@2 b1 ~ f#1@4 ~@4",
CH: "b1@2 b1 ~@3 b1 ~ f#1@3 ~ b1@3 ~", CI: "c2!2 ~ c2 c2@2 c2@2", CJ: "d2@2 d2 ~@3 d2@2 d2@4 d2@4",
CK: "d2!2 ~ d2 d2@2 d2@2", CL: "e2!3 ~@5",
})).s("gm_electric_bass_finger").gain(0.49)
// chords · piano · "A.PIANO 2"
const piano = note(`<
A B C D E C F G H I G J G K L M N L O G P Q R S T G R U O V R S O G L W O@2 X Y O@3 B R Z O AA G I Z@2 AB L AC AD P AE
R Z AF AG R AH O G AI AJ AF G R AK O@5 AL R L O AM AN AO O@2 R Z AP V AQ AR O@2 AS AT ~@45 AU AV@2 G AW@2 AX I Z AY AZ
G I BA Z BB L AG G P Q H Z O AX BC BD AT G BE L O G L BF O BG BH AR BI AR BJ
>`.pickRestart({
A: "b2 ~@3 [a3,b3,d#4] ~ [a3,b3,d#4]@2 f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2, ~ b2@2 ~@5", // B7
B: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2 f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,b3]@2, ~@14 d#4 ~", // B7 Asus2
C: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,b3]@2 f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,b3]@2, ~@6 d#4 ~@7 d#4 ~", // B7 Asus2 B7 Asus2
D: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,b3]@2 f#2 ~ f#2@2 [a3,b3,d#4] ~ [b3,d#4] ~, ~@6 d#4 ~@7 a3@2", // B7 Asus2 B7 B
E: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,b3,d#4] ~ f#2 ~ f#2@2 [a3,b3,d#4] ~ [b3,d#4] ~, ~@7 a3", // B7 B
F: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,b3,d#4] ~ f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,b3]@2, ~@14 d#4 ~", // B7 Asus2
G: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2 f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,b3,d#4] ~", // B7
H: "e2 ~ e2@2 [g#3,b3,e4] ~ [g#3,b3]@2 b2 ~ b2@2 [g#3,b3,e4] ~ [b3,e4] ~, ~@6 e4 ~@7 g#3@2", // E G#m E E5
I: "e2 ~ e2@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2 b2 ~ b2@2 [g#3,b3,e4] ~ [b3,e4] ~, ~@7 g#3", // E E5
J: "b2 ~ b2@2 [a3,b3,d#4] ~ [b3,d#4] ~ f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,b3]@2, ~@6 a3@2 ~@6 d#4 ~", // B7 B B7 Asus2
K: "e2 ~ e2@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2 b2 ~ b2@2 [g#3,b3,e4] ~ [g#3,e4]@2, ~@14 b3 ~", // E C#m
L: "e2 ~ e2@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2 b2 ~ b2@2 [g#3,b3,e4] ~ [g#3,b3,e4] ~", // E
M: "e2 ~ e2@2 [g#3,b3,e4] ~ [b3,e4] ~ b2 ~ b2 ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~, ~@3 g#3 ~@4", // E E5 E
N: "g#2 ~ g#2@2 [g#3,b3,d#4] ~ [g#3,b3,d#4]@2 d#2 ~ d#2@2 [g#3,b3,d#4] ~ [g#3,b3,d#4] ~", // G#m
O: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2 f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2", P: "[b2,b3] [g#2,g#3]",
Q: "[f#2,f#3]@3 ~ [b1,b2]@11 ~", R: "e2 ~ e2@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2 b2 ~ b2@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2",
S: "e2 ~ e2@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2 b2 ~ b2@2 [g#3,b3,e4] ~ [g#3,e4] ~, ~@7 b3", // E C#m
T: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2 f#2@2 f#2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2", // B7
U: "e2@3 ~ e2@2 [g#3,b3,e4]@4 e2@2 [g#3,b3,e4]@2 ~@2", // E
V: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2 f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,b3] ~, ~@7 d#4", // B7 Asus2
W: "a2@4 [a3,c#4,e4]@4 ~@4 [a3,c#4,e4]@3 ~, ~@8 a2@7 ~", // A
X: "b2@2 [a3,b3,d#4] ~ [a3,b3,d#4] ~ [a3,b3,d#4] ~ [a3,b3,d#4] ~ [a3,b3,d#4] ~ [a3,b3,d#4] ~ [a3,b3,d#4] ~", // B7
Y: "[a3,b3,d#4] ~ [a3,b3,d#4] ~ [a3,b3,d#4] ~ [a3,b3,d#4] ~ [a3,b3,d#4] ~ [a3,b3,d#4] ~ [a3,b3,d#4] ~ [a3,b3] ~, ~@7 d#4", // B7 Asus2
Z: "e2 ~ e2@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2 b2 ~ b2@2 [g#3,b3,e4] ~ [g#3,b3]@2, ~@14 e4 ~", // E G#m
AA: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,d#4]@2 f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2, ~@6 b3 ~@9", // B7 Adim B7
AB: "g#2 ~ g#2@2 [g#3,b3,d#4] ~ [g#3,b3,d#4]@2 d#2 ~ d#2@2 [g#3,b3,d#4] ~ [g#3,d#4]@2, ~@14 b3 ~", // G#m G#5
AC: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,d#4]@2 f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,b3]@2, ~@6 b3 ~@7 d#4 ~", // B7 Adim B7 Asus2
AD: "b2 ~ b2@2 [a3,b3,d#4] ~ [b3,d#4] ~ f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,b3,d#4] ~, ~@3 a3 ~@4", // B7 B B7
AE: "[f#2,f#3]@3 ~ [b1,b2]@10 ~@2", // F# B
AF: "b2 ~ b2@2 [b3,d#4] ~ [a3,b3,d#4]@2 f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2, ~@2 a3 ~@5", // B B7
AG: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2 f#2 ~ f#2@2 [a3,b3,d#4] ~ [a3,d#4]@2, ~@14 b3 ~", // B7 Adim
AH: "e2@2 ~@2 e2@2 [g#3,b3,e4]@4 e2@2 [g#3,b3,e4]@3 ~", // E
AI: "e2 ~@3 [g#3,b3,e4] ~ [g#3,b3,e4]@2 b2 ~ b2@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2, ~ e2@2 ~@5", // E
AJ: "e2 ~ e2@2 [g#3,b3,e4] ~ [b3,e4]@2 b2 ~ b2@2 [g#3,b3,e4] ~ [g#3,b3]@2, ~@6 g#3@4 ~@4 e4 ~", // E E5 E G#m
AK: "a2 [a3,c#4,e4] ~ [a3,c#4,e4], ~ a2", // A
AL: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2 f#2 ~@3 [a3,b3,d#4] ~ [a3,b3,d#4] ~, ~@10 f#2@5 ~", // B7
AM: "b2 ~ b2@2 [a3,b3,d#4] ~ [a3,b3,d#4]@2 f#2 ~@3 [a3,b3,d#4] ~ [b3,d#4] ~, ~@5 f#2@2 a3", // B7 B
AN: "e2 ~ e2@2 [g#3,b3,e4] ~ [g#3,b3,e4]@2 b2 ~@3 [g#3,b3,e4] ~ [g#3,b3,e4]@2, ~@5 b2@2 ~", // E
AO: "e2@3 ~ e2@2 [g#3,b3,e4]@4 e2@2 [b3,e4]@4, ~@6 g#3 ~", // E E5
// … 294 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.