0:00/0:00
// In the Shape of a Heart — Jackson Browne
// 126 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 8 "PICK BASS" electric bass pick (copy of ch 2 "ACOU BASS" acoustic bass)
// note: Full arrangement: all 177 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
A B C D E F G H A B C D E F G H A B C D E F G H A B C D E I G H E F G J A B C D E F G J A B C D K F G J A B C D K F G
H A B C D E F G J A B C D L F G J A B C D E F G H E F M H N O N O N O N O A B C D L F G H A B C D E F G H A B C D K F
G H E F M H E F G H E F M H E F G J A B C D E F M J A B C D E F G H E F G H N O N O N O N O N O N O N O N O P Q R@2 ~
>`.pickRestart({
A: "[e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
B: "[e2,b2]@2 [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~ [e2,b2] ~", // E5
C: "[c#3,g#3]@2 [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3]@2 [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~", // C#5
D: "[c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~ [c#3,g#3] ~", // C#5
E: "[a2,e3]@2 e3 ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~", // A5
F: "[a2,f#3] ~ [a2,f#3] ~ [a2,f#3]@2 [a2,f#3]@2 [a2,f#3] ~ [a2,f#3]@2 [a2,f#3] ~ [a2,f#3] ~", // D
G: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3]@2 [a2,e3] ~ [a2,e3] ~ [a2,e3]@2 [a2,e3] ~", // A5
H: "[a2,f#3] ~ [a2,f#3] ~ [a2,f#3] ~ [a2,f#3] ~ [a2,f#3] ~ [a2,f#3] ~ [a2,f#3] ~ [a2,f#3] ~", // D
I: "[a2,f#3] ~ [a2,f#3] ~ [a2,f#3]@2 [a2,f#3]@2 [a2,f#3] ~ [a2,f#3]@2 [a2,f#3] ~ [a2,f#3]@2", // D
J: "[b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~", // B5
K: "[a2,e3]@2 e3 ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3]@2", // A5
L: "[a2,e3]@2 e3 ~ [a2,e3] ~ [a2,e3]@2 [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~", // A5
M: "[a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3]@2 [a2,e3] ~ [a2,e3]@2 [a2,e3]@2 [a2,e3] ~", N: "[a2,e3] ~ [a2,e3] ~@13",
O: "[b2,f#3] ~ [b2,f#3] ~@13", P: "[a2,e3]@2 [a2,e3]@2 ~@2 [a2,e3]@9 ~", Q: "[b2,f#3] ~ [b2,f#3]@2 ~@12",
R: "[[c#3,g#3]@31 ~]/2", // C#5
})).s("gm_electric_guitar_muted").gain(0.31)
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
A ~ B ~ C ~ C ~ D E F ~ C G C ~ A H B G I G I J K E B L C G C M I G I N O@2 P Q R S R T O U P V R S R T W J B ~ C ~ C
J W J B ~ C G C N O@2 P@2 R S R T O@2 P X R@3 S R@4 C Y I Z AA AB AC AB O AD P AE R@4 W AF B AG C ~ C J AH J B AI C@4
I@3 C I C@3 I@3 AJ I C@2 N O@2 P@2 R S R T O U P V R@3 S R@4 C AK I AL AA Y I AK C AM AA AN AO AP AQ AR AS Y AT@2 ~
>`.pickRestart({
A: "e0!2 ~@6", B: "c#1!2 ~@6", C: "a0!2 ~@6", D: "e1 ~ e1@2 ~@12", E: "~@7 g#0", F: "c#1 ~ c#1@2 ~@12", G: "~@7 f#0",
H: "~@14 g#0 ~", I: "a0 ~ a0@2 ~@12", J: "~@7 b0", K: "e1@2 e1@3 ~@11", L: "~@5 e0 f#0 e0", M: "~@5 e0 f#0 b0",
N: "~ b0!7", O: "e1!8", P: "c#1!8", Q: "c#1!6 d#1 e1", R: "a0!8", S: "a0!7 e0", T: "b0!8", U: "e1!5 b0 c#1 e1",
V: "c#1!5 d#1 e1 b0", W: "e1!2 ~@6", X: "c#1!6 b0!2", Y: "b0 ~ b0@2 ~@12", Z: "b0 ~ b0@2 ~@10 f#0@2",
AA: "a0!2 ~@5 a0", AB: "b0!2 ~@5 b0", AC: "a0!2 ~@3 b0 c#1 e1", AD: "e1!6 d#1!2", AE: "c#1!5 e0 g#0 b0",
AF: "~@7 d#1", AG: "~@7 e0", AH: "e0 ~ e0@2 ~@12", AI: "~@5 e0 g#0 b0", AJ: "a0@2 a0@2 ~@10 a0 ~", AK: "b0!2 ~@6",
AL: "b0!2 ~ c#1@2 e1 c#1 b0", AM: "b0!2 ~@5 e0", AN: "b0 ~ b0@2 ~@2 c#1@4 e1@2 c#1@2 b0@2", AO: "a0 ~ a0@2 ~@10 e0@2",
AP: "b0 ~ b0@2 ~@6 e0@2 f#0@2 e0@2", AQ: "a0!2 ~ a0@3 ~ a0", AR: "b0@2 b0@2 ~@2 b0@3 ~ b0@2 c#1@2 e1@2",
AS: "a0 ~ a0@2 ~@2 a0@8 f#0 ~", AT: "c#0/2",
})).s("gm_acoustic_bass").gain(0.36)
// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
~@19 A@5 B@8 C@3 D@5 E@4 F@2 G@4 H I J@6 K@7 L@3 M@8 F@2 G@4 H N@5 O P O P O P O P ~@32 Q@8 M@8 F@2 G@4 H N@5 R S R T
R S U V ~@8 W X@4
>`.pickRestart({
A: "[~@8 [e3,a3]@12 ~@4 a3@11 ~@5, ~@15 a2@25 ~@7 [a2,e3]@23 ~@10]/5", // A5
B: "[[e2,b2,e3,g#3]@28 ~@4 g#3@25 ~@8 c#4@26 ~@5 [a2,a3,c#4]@28 ~@4, ~@31 [c#3,e3]@26 ~@6 e3@28 ~@4 e3@29 ~@4, ~@64 [a2,a3]@27 ~@37]/8", // E A C#m A
C: "[[a2,e3]@29 ~@4 c#4@15, [a3,c#4]@27 ~@4 e3@17, ~@2 [a2,a3]]/3", // A5 A
D: "[~@16 [g#4,b4]@31 ~ [g#4,b4]@31 e4, ~@15 e4@32 [c#4,e4]@32 ~]/5", // G#m C#m
E: "[~@49 d#5@14 ~, [a4,c#5]@32 [e4,a4,c#5]@31 ~, ~@16 [f#4,b4,d#5]@32 [f#4,b4]@15 ~]/4", // A B B5
F: "[~ b3, ~ b3@7 ~@8, ~ g#4@7, ~@3 e4@3 e4@10, ~ f#4@3]/2",
G: "[~@16 b3@15 ~ [e4,a4]@15 ~ [f#4,b4]@16, ~@2 b3@14 ~@15 c#4@17 ~@16, ~@4 g#4@27 ~@33, ~@6 e4@6 e4@19 ~@16 d#4@17, ~@8 f#4@23 ~@33]/4", // A5 B5
H: "[e4,a4,c#5]", I: "[f#4,b4,d#5]@15 ~",
J: "[[b2,e3,g#3]@30 ~@2 [e3,g#3]@26 ~@6 [e3,a3]@26 ~@5 a2, ~@31 c#3@27 ~@5 a2@27 ~@6]/6", // E A5
K: "[e3@14 ~@2 g#3@14 ~@2 [e3,g#3]@11 ~@5 [c#3,e3,a3]@8, a3@26 ~@5 [b2,e3]@28 ~@4 c#3@23 ~@9 a2@17]/7", // E A E5
L: "[~@16 [e3,a3]@19 ~@13, ~@15 [a2,c#3]@19 ~@14]/3", // A5 A
M: "[[e4,g#4,b4]@26 ~@6 [g#4,b4]@28 ~@4 [a4,c#5]@12 ~@4 d#5@13 ~@3 [a4,c#5]@13 ~@3 d#5@13 ~@3, ~@31 e4@29 ~@3 e4@13 ~@2 f#4@15 ~@2 e4@13 ~@3 [f#4,b4]@15 ~@2, ~@31 c#4@26 ~@22 b4@14 ~@35]/8", // E G#m A B5
N: "[[f#4,b4,d#5]@12 ~@4 [a4,c#5]@13 ~@3 [b4,d#5]@14 ~@2 [a4,c#5]@12 ~@4 [f#4,d#5]@14 ~@2, ~@15 e4@13 ~@3 f#4@15 ~ e4@13 ~@3 b4@14 ~@3]/5", // B A B A D#m
O: "[a2,e3,a3]!2 ~@6", P: "[b2,f#3,b3]!2 ~@6",
Q: "[[a2,e3,a3]@12 ~@4 b3@13 ~@3 [e3,a3]@13 ~@3 [f#3,b3]@13 ~@3 [e3,a3]@13 ~@3 [f#3,b3]@13 ~@3 a3@13 ~@3 [f#3,b3]@14 ~@2, ~@15 [b2,f#3]@14 ~@2 a2@14 ~@2 b2@14 ~@2 a2@13 ~@3 b2@14 ~@2 [a2,e3]@14 ~@2 b2@15 ~@2]/8", // A5 B5 A5 B5 A5
R: "[e3,a3,c#4]!2 ~@6", S: "[f#3,b3,d#4]!2 ~@6", T: "[f#3,b3,d#4]@2 [f#3,b3,d#4] ~@13",
U: "[e3,a3,c#4] ~ [e3,a3,c#4]@2 ~@12", V: "[f#3,b3,d#4] ~ [f#3,b3,d#4] ~@13", W: "[a3,c#4,e4,a4]!2 ~@6",
X: "[[d#4,f#4,b4]!2 ~@6 [e4,g#4,b4]@16 ~@8, ~@15 [c#3,c#4]@34 ~@15]/4", // B E C#
})).s("gm_acoustic_guitar_nylon").gain(0.36)
// chords · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
~@4 A@2 B@2 ~@4 A@2 B@2 ~@4 A@2 B@2 C@5 D E F@2 D G@2 H@2 I@2 J K J K L@2 M@3 N@3 O@2 P@2 Q R S T H@2 U@3 V Q W O@2
X@2 Q R S Y L@2 Z@3 AA@2 AB AC AD@2 AB AE AF AG AH AI AJ AK AL H@2 I@2 AM@2 AN R ~@4 AO@2 AP@2 ~@4 AQ@2 A@2 AR@3 AS@4
AT AU@4 AV@2 AW@2 AX@2 AY@2 AZ AT AZ AT L@2 Z@3 AA@2 BA BB AD@2 AB BC BD BC BD BE BF BG BD BH BI BJ BK BL BI BM@2 BN
BI BO@2 ~
>`.pickRestart({
A: "[~@6 [a4,c#5,e5]@2 ~@2 [a4,c#5,e5]@2 ~@2 [b4,d#5,e5]@17 ~]/2", // A Emaj7
B: "[~@3 [a4,c#5,e5] ~ [a4,c#5,e5] ~ [b4,d#5,e5]@8 ~]/2", // A Emaj7
C: "[~@2 e6 ~ d#6 ~ b5 ~ f#5 ~ g#5 ~ e5 ~ f#5 ~@3 e6 ~ d#6 ~ b5 ~ f#5 ~ g#5 ~ e5 ~ f#5!2 [e4,a4,c#5]@8, [g#4,b4]@9 f#5@2 g#5@10 d#6@4 f#5@2 g#5@2 e5@11, e5@7 b5@9 e5@7 b5@9 ~@8, ~@3 e6@10 e5@2 f#5@4 e6@13 ~@8, ~@5 d#6@11 [g#4,c#5]@16 ~@8]/5", // A G#m C#5
D: "[f#4,b4,d#5]@15 ~", E: "[e4,a4,c#5]",
F: "[~@16 [e4,a4,c#5]@15 ~, d#5@9 ~@7, b4@7 b4@7 ~@2, f#4@3 f#4@3 ~@2, ~@5 d#4@4 ~@7]/2", // A
G: "[~@4 e6@2 ~@2 d#6@2 ~@2 b5@2 ~@2 [b4,d#5,f#5]@15 ~, [a4,c#5,e5]@15 ~, ~@3 e6@12 ~, ~@5 d#6@10 ~, ~@7 b5@8 ~]/2", // B A
H: "[b4,e5,g#5]/2", I: "[b4,c#5,e5,g#5]/2", J: "[a4,c#5,e5,a5]", K: "[b4,d#5,f#5,b5]",
L: "[e5@5 ~@2 b5, b4, g#5@3 g#5, ~@5 e5@3]/2",
M: "[e5@5 ~@2 b5 [a4,c#5,e5,a5,c#6]@4, c#5@2 ~, g#5 g#5, c#6@4 ~ e5@3 ~@4]/3", // A
N: "[~@32 [b4,d#5,f#5,b5]@15 ~, [b4,d#5,f#5,b5]@16 [a4,c#5,e5,a5]@31 ~, ~ f#6@4 ~, ~@5 g#6@16 ~@3, ~@7 e6@16 ~]/3", // B A
O: "[[b4,e5,g#5]@31 ~]/2", P: "[[c#5,e5,g#5]@31 ~]/2", Q: "[a4,c#5,e5]", R: "[b4,d#5,f#5]", S: "[c#5,e5,a5]",
T: "[d#5,f#5,b5]@15 ~", U: "[~@19 e5@5, [e5,g#5]@2 ~, c#5@13 c#5@5 c#5@6, b4@12 b4@2 b4@3 b4@7, ~@11 e4@4 e4@9]/3",
V: "~@7 g#5, [b4,d#5,f#5]", W: "b4@3 b4 [b4,f#5] [b4,f#5]@3, d#5, f#5 ~",
X: "[b4@13 ~ c#5@2, [e5,g#5], c#5@7 ~, ~@13 b4@3]/2", Y: "[d#5,f#5,b5]",
Z: "[e5@20 ~@8 b5@4 [e4,a4,c#5]@15 ~, c#5@2 ~, g#5 g#5, c#6@4 ~ e5@5 ~@2]/3", // A
AA: "[~ [a4,c#5,e5,c#6], [f#4,b4,d#5]@31 ~, ~@8 f#6@4 f#6@19 ~, ~@10 g#6@21 ~, ~@14 e6@17 ~]/2", // A B
AB: "[b4,d#5,f#5]@7 ~", AC: "[e4,a4,c#5]@15 ~",
AD: "[~ [a4,c#5,e5,c#6], [f#4,b4,d#5], ~@2 f#6 f#6@5, ~@5 g#6@11, ~@7 e6@9]/2", // A B
AE: "[a4,c#5,e5,a5,e6] [a4,c#5,e5,a5,c#6,e6] ~@6, c#6 ~@15", // A
AF: "[b4,f#5,b5,d#6,f#6] [b4,d#5,f#5,b5,d#6,f#6] ~@6, d#5 ~@15", // B
AG: "[a4,c#5,a5,c#6,e6] ~ [a4,e5,a5,c#6,e6]@2 ~@12, e5@2 c#5 ~@13", // A
AH: "[b4,d#5,d#6,f#6] ~ [b4,f#5,b5,d#6,f#6]@2 ~@12, [f#5,b5]@2 d#5 ~@13", // B B5
AI: "[a4,e5,a5,e6] [e5,a5,c#6,e6] ~@6, [c#5,c#6] ~ [a4,c#5] ~@13", // A5 A C# A
AJ: "[f#5,b5,d#6,f#6] [b4,d#5,f#5,b5,d#6,f#6] ~@6, [b4,d#5] ~@15", // B
AK: "[a4,c#5,e5,c#6,e6] ~ [a4,c#5,e5,a5,c#6,e6]@2 ~@12, a5 ~@7", // A
AL: "[b4,d#5,f#5,d#6,f#6] ~ [b4,d#5,f#5,b5,d#6,f#6]@2 ~@12, b5 ~@7", AM: "[~ [f#4,b4,d#5], c#5@3 c#5@5, ~@3 e4@13]/2",
AN: "c#5@3 ~@3 e5@2, a4, e5@3 ~, ~@3 c#5@5", AO: "[~@3 [a4,c#5] ~ [a4,c#5,e5] ~ [b4,d#5,e5]@9]/2",
AP: "[~@6 [a4,c#5]@2 ~@2 [a4,c#5,e5]@2 ~@2 [b4,d#5,e5]@15 ~@3]/2", // A Emaj7
AQ: "[~@3 [a4,c#5,e5] ~ [a4,c#5,e5] ~ [b4,d#5,e5]@9]/2", // A Emaj7
AR: "[~@4 e6@2 ~@2 d#6@2 ~@2 b5@2 ~@18 [a4,c#5,e5]@15 ~, [a4,c#5,e5]@16 [b4,d#5,f#5]@19 ~@13, ~@6 e6@29 ~@13, ~@10 d#6@25 ~@13, ~@14 b5@21 ~@13]/3", // A B
AS: "[f#5@6 ~@8 e5@2 ~@4 e6@2 ~@2 d#6@2 ~@2 b5@2 ~@18 [a4,c#5,e5]@15 ~, [b4,d#5]@10 ~@5 b5@16 ~, ~@3 f#5@7 ~@3 d#6@16 ~@3, ~@10 g#5@10 ~@2 e6@22 g#5@19 ~, ~@16 [a4,c#5,e5]@16 [b4,d#5,f#5]@31 ~]/4", // A B A B
AT: "[b4,d#5,f#5]@15 ~", // B
AU: "[~@4 e6@2 ~@2 d#6@2 ~@2 b5@2 ~@16 e5@2 ~@4 e6@2 ~@2 d#6@2 ~@6 [b4,d#5,f#5]@15 ~, [a4,c#5]@8 [b4,d#5,f#5]@13 d#6@10 ~, e5@7 b5@12 e6@12 ~, ~@3 e6@10 g#5@9 b5@9 ~, ~@5 d#6@11 [a4,c#5,e5]@15 ~]/4", // B A B A
AV: "[~@2 e6 ~ d#6 ~ b5 ~@6 g#5@2 e5, [a4,c#5,e5]@16 [b4,d#5,f#5]@15 ~, ~@6 e6@25 ~, ~@10 d#6@21 ~, ~@14 b5@17 ~]/2", // A B
AW: "[~@4 e6@2 ~@2 d#6@2 ~@6 b4@15 ~, [a4,c#5,e5]@15 ~@17, ~@6 e6@9 ~@17, ~@10 d#6@5 ~@17, ~@6 b5@9 ~]/2", // A
AX: "[~@2 e6 ~ d#6 ~ b5@8 ~@2, [b4,e5,g#5]@15 ~, ~@3 e6@11 ~@2, ~@5 d#6@9 ~@2]/2", // E
AY: "[~@2 e6 ~ d#6 ~ b5@9 ~, [c#5,e5,g#5]@15 ~, ~@3 e6@12 ~, ~@5 d#6@10 ~]/2", AZ: "[a4,c#5,e5]@15 ~",
BA: "[b4,d#5,f#5]@7 b5", BB: "[a4,c#5,e5]@13 ~@3, c#6", BC: "[e5,a5,c#6] [c#5,e5,a5,c#6] ~@6, c#5 ~@15",
BD: "[d#5,f#5,b5,d#6]!2 ~@6", BE: "[e5,a5,c#6]!2 ~@6, c#5 ~ c#5 ~@13",
BF: "[f#5,b5] [d#5,f#5,b5,d#6] ~@6, [d#5,d#6] ~@15", BG: "[c#5,e5,a5,c#6]!2 ~@6", BH: "[c#5,e5,a5,c#6]!2 ~@6, a4 ~@3",
BI: "[b4,d#5,f#5,b5,d#6]!2 ~@6", BJ: "[a4,c#5,e5,a5,c#6]!2 ~@2 [a5,c#6] [b5,d#6] [c#6,e6]!2, ~@14 [c6,d#6] ~",
BK: "~ d#6@2 f#5@4 g#5, ~ b5@5 ~@2", BL: "[a4,c#5,e5,a5,c#6] [a4,c#5,c#6] ~@6, ~@2 [e5,a5] ~@13",
BM: "[~@6 [g#4,b4]@3 ~ [e4,b4]@4 [d#4,b4]@14 ~@4, ~@7 f#4@8 ~]/2", // G#m E5 G#m
BN: "[a4,c#5,c#6] ~ [a4,c#5,e5,a5,c#6]@2 ~@12, [e5,a5] ~@7", BO: "[[g#4,b4,d#5,e5,g#5,b5,c#6,e6]@27 ~@5]/2",
})).s("gm_epiano2").gain(0.36)
// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
A ~ A ~ B ~ B ~ A ~ A ~ B ~ B ~ A ~ A ~ B ~ B ~@29 A ~ A ~ B ~ B ~ A ~ A ~ B ~ B ~@37 A ~ A ~ B ~ B ~ A ~ A ~ B ~ B ~
B C B C B C B C B C B C B C B C ~@20 B C B C B C B C B C B C B C B C B C ~@3
>`.pickRestart({
A: "[e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~@9", // E
B: "[e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~@9", // A
C: "[f#4,b4,d#5] ~ [f#4,b4,d#5] ~ [f#4,b4,d#5] ~ [f#4,b4,d#5] ~@9", // B
})).s("gm_electric_guitar_clean").gain(0.2)
// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note(`<
A ~ A ~ B ~ B ~ A ~ A ~ B ~ B ~ A ~ A ~ B ~ B ~@29 A ~ A ~ B ~ B ~ A ~ A ~ B ~ B ~@37 A ~ A ~ B ~ B ~ A ~ A ~ B ~ B ~
B C B C B C B C B C B C B C B C ~@20 B C B C B C B C B C B C B C B C B C ~@3
>`.pickRestart({
A: "~@8 [e4,g#4,b4] ~ [e4,g#4,b4] ~@5", B: "~@8 [e4,a4,c#5] ~ [e4,a4,c#5] ~@5",
C: "~@8 [f#4,b4,d#5] ~ [f#4,b4,d#5] ~@5", // B
})).s("gm_electric_guitar_clean").gain(0.1)
// chords · harpsichord · "HARPSICHRD"
const harpsichord = note(`<
~@16 A@2 B@2 C D E F G@2 H@2 I J K L I M N@2 O@2 P@2 Q R S T U@2 V@3 W X Y Z@2 AA@2 I J K F Z@2 AA@2 I J K F AB@4 AC
AD AE AF AG@2 AH@3 AI AJ AK AL AM AN AO AP AQ AP AQ AP AQ AP AQ AR@4 AS J AT F AU@3 ~@13 AV AW AX AY@2 AZ BA BB BC@4
BD@4 BE@2 BF@2 BG BH BI BJ BK@5 BL BM BN@2 BO BP BQ BR BS BR BT BU BT BV BW BX BY BZ@2 CA BY CB@2 CC CD CE@3
>`.pickRestart({
A: "[[b1,g#2]@31 ~]/2", B: "[[c#2,g#2]@31 ~]/2", C: "[e2,a2,c#3]", D: "[f#2,b2,d#3]", E: "[a2,c#3,e3]",
F: "[b2,d#3,f#3]@15 ~", G: "[~ e4 d#4 b3 f#3 g#3 e3 f#3, [b1,e2,g#2,b2]@31 ~]/2",
H: "[~ e4 d#4 b3 f#3 g#3 e3 f#3, [c#2,e2,g#2,c#3]@31 ~]/2", I: "[e2,a2,c#3]@15 ~", J: "[f#2,b2,d#3]@15 ~",
K: "[a2,c#3,e3]@15 ~", L: "[b2,d#3,f#3]", M: "[b2,d#3]@15 ~, f#2@3 ~",
N: "[~@2 e4@2 d#4@2 ~@2 [b2,d#3,f#3]@7 ~, [a2,c#3,e3]@15 ~@17, ~@6 b3@9 ~]/2", O: "[[b2,e3,g#3,b3,e4,g#4,b4]@31 ~]/2",
P: "[[c#3,e3,g#3,b3,c#4,e4,g#4,c#5]@31 ~]/2", Q: "[c#3,e3,a3,c#4,c#5], [a2,e4,a4]@7 ~",
R: "[b2,d#3,b3,d#4,b4,d#5], f#4@7 ~", S: "[c#3,e3,a3,c#4,e4,a4,c#5,e5]", T: "[d#3,f#3,b3,d#4,f#4,b4,d#5,f#5]@15 ~",
U: "[e3@5 ~@2 [b3,b4], [e2,g#2,b2]@31 ~, b4@13 ~@3, g#3@3 [g#3,g#4], [e4,g#4]@5 [e3,e4]@3]/2", // B E G# E
V: "[[e3,e4,g#4,c#5]@20 ~@8 [b3,b4]@4 [a2,e3,a3,c#4,e4,a4,c#5]@15 ~, e2@11 ~, [g#2,c#3]@24 g#4@7 ~@17, g#3 g#3, c#4@3 ~@7 [e3,e4]@6 ~@8]/3", // C#m B A C#5 E
W: "[f#2,b2,f#3,b3,d#4,f#4,b4,d#5]", X: "[a2,c#3,e3,a3,c#4,e4,a4,c#5,e5]",
Y: "[b2,d#3,f#3,b3,d#4,f#4,b4,d#5,f#5]@15 ~", Z: "[[b2,e3,g#3]@15 ~]/2", AA: "[[c#3,e3,g#3]@15 ~]/2",
AB: "[[b2,e3,g#3]@16 [c#3,e3,g#3,c#4,e4,g#4]@15 ~, b3@31 ~, [e4,g#4]@15 ~@17]/4", // E C#m E
AC: "[c#3,e3,a3,c#4], [e4,a4]@7 ~, a2@3 ~", AD: "[b2,f#3,f#4,b4]@7 ~, [d#3,b3,d#4], f#2@3 ~",
AE: "[a2,c#3,e3,a3,b3,c#4,e4,c#5]@15 ~, a4@13 ~@3", AF: "[b2,d#3,f#3,b3,d#4,f#4]@15 ~, [b4,d#5]@3 ~",
AG: "[[e3,e4,g#4]@5 ~@2 [b3,b4], [e2,g#2,b2]@31 ~, [g#3,b4]@3 [g#3,g#4], ~@5 [e3,e4]@3]/2", // E B E G#m G# E
AH: "[[e3,g#4]@5 ~@2 [b3,b4] [c#3,e3,a3]@4, [e2,g#2]@2 ~, c#3@12 g#4@4 [e4,a4,c#5]@7 ~, [g#3,c#5] g#3, [c#4,e4]@19 ~ [e3,e4]@12 c#4@3 ~@13]/3", // E B A E A C#5 C#m E
AI: "[f#4,d#5]@4 f#5 [g#4,g#5] [f#4,f#5] [e4,e5], [f#3,b3], d#3@7 ~, b4@3 ~, ~@2 f#4 ~", // D#m G# F# E B5
AJ: "[c#3,e3,a3,c#5]@15 ~, e4@13 ~@3, a4@11 ~@5, c#4@3 ~@13", AK: "[d#3,f#3,b3,b4], [f#4,d#5]@7 ~",
AL: "[c#3,e3,a3,e4,a4,c#5]@15 ~", // A
AM: "[f#4,d#5]@4 f#5 [g#4,g#5] [f#4,f#5] [e4,e5], [d#3,f#3,b3]@15 ~, b4@13 ~@3, ~@2 f#4 ~", // D#m G# F# E B
AN: "[e3,a3,c#4]@15 ~, [e4,a4,c#5]@13 ~@3", AO: "[f#3,b3,d#4,f#4,b4,d#5]@7 ~, d#3@9 ~@7",
AP: "[a2,c#3,e3,a3,c#4,e4,a4,c#5] ~ [e4,a4,c#5] ~@13", AQ: "[b2,d#3,f#3,b3,d#4,f#4,b4,d#5] ~ [f#4,b4,d#5] ~@13",
AR: "[b2@31 ~ c#3@32, [e3,g#3]@55 ~@9]/4", AS: "~@3 c#3, c#3@11 ~@5, ~@6 e2@9 ~",
AT: "e3@6 ~@6 e3@3 ~, c#3@15 ~, ~@6 a2@9 ~", AU: "[[e2,b2]@11 ~@5]/3", AV: "~ e4 d#4 b3, [e2,a2,c#3]@15 ~",
AW: "[f#2,b2,d#3]@15 ~, f#3@3 ~", AX: "[e2,c#3], a2@7 ~",
AY: "[~@6 f#3@4 g#3@3 ~@7 e4@3 ~ d#4@4 b3@4, [f#2,b2,d#3]@7 e3@3 ~@6, ~@16 [e2,a2,c#3]@15 ~]/2", // B A
AZ: "f#3@11 ~ g#3@3 ~, [f#2,b2,d#3]@15 ~", BA: "[a2,c#3]@15 ~, e3@5 ~@11", BB: "[b2,d#3,f#3]@7 ~",
BC: "[e4@2 e5 ~ d#5 ~ b4 ~ f#4@3 ~@7 e5 ~ d#5 ~ b4 ~ [f#2,b2,d#3]@8, [e2,a2,c#3,a4]@6 b3@7 [g#3,g#4]@6 e5@2 d#5 b3 b4@9, ~@2 e4@3 d#5@3 [f#2,b2,d#3,f#3]@7 e4 [e2,a2,c#3]@16, ~@3 e5@4 b4@8 e3@5 d#4@12, ~@4 d#4@7 f#4@7 e4@14]/4", // B A G# B A
BD: "[e4@4 e5@2 ~@2 d#5@2 ~@2 b4@2 ~@2 f#4@6 ~@14 e5@2 ~@2 d#5@2 ~@2 b4@2 ~@2 [f#2,b2,d#3]@15 ~, [a2,c#3,a4]@12 b3@14 [g#3,g#4]@12 e5@4 d#5@2 b3@2 b4@17 ~, e3@8 d#4@8 [b2,d#3,f#3]@14 e4@2 [e2,a2,c#3]@31 ~, ~@4 e4@6 d#5@12 f#4@14 e4@27 ~, ~@6 e5@8 b4@16 e3@10 d#4@23 ~]/4", // B A G# B A
BE: "[e4@4 e5@2 e5@2 d#5 ~ d#5@2 b4@2 b4@18, [b2,e3,g#3,g#4]@31 ~, b3@6 b3@9 ~, ~@4 e4@27 ~, ~@2 d#4 ~@5]/2", // E
BF: "[e4@4 e5 ~ e5@2 d#4@2 d#5@2 b4@2 b4@17 ~, [c#3,e3,g#3,c#4]@31 ~, g#4@7 ~, ~@4 e4@27 ~, ~@8 d#5 ~@3 b3@7 ~@13]/2", // C#m
BG: "[c#3,e3,a3,e4,c#5], [a2,a4]@7 ~", BH: "[d#3,f#3,b3,d#4,d#5], [b2,f#4,b4]@7 ~",
BI: "[a2,e3,a3,c#4,e4,a4,c#5,e5]@15 ~, c#3@11 ~@5", BJ: "[b2,d#3,f#3,b3,d#4,f#4]@7 ~, [b4,d#5,f#5]",
BK: "[[e3,e4]@20 ~@12 [e3,e4,c#5]@20 ~@8 [b3,b4]@4 [a2,c#3,e3,e4,c#5]@15 ~, [b3,b4]@7 [b3,b4]@6 [e3,e4]@3 ~@4, [g#3,g#4]@12 [g#3,g#4]@4 c#4@13 ~@3 a4@6 ~@2, ~@10 [e3,e4]@6 c#3@15 ~@9, ~@4 [g#3,g#4]@3 [g#3,g#4]@3]/5", // E C#m B A B E G# E …
BL: "f#4@4 f#5 g#5 f#5 [e4,e5], [b2,d#3,f#3,b4,d#5]@15 ~, ~@2 f#4!2, ~@10 g#4 ~@5", // E B
BM: "[a2,c#3,e3,e4,a4,c#5]@15 ~, c#4 ~@7", // A
BN: "[[b2,d#3,f#3,f#4,b4,d#5]@14 b3@2 [a2,c#3,e3,e4,a4,c#5]@15 ~, ~@7 b4@7 ~@2, ~@16 c#4@3 ~@13]/2", // B A
BO: "f#4@4 f#5 g#5 [f#4,f#5] [e4,e5], [b2,d#3,f#3,b4,d#5]@15 ~, ~@2 f#4 ~, ~@10 g#4 ~@5", // F# E B
BP: "[a2,c#3,e3,a3,e4,a4,c#5]@15 ~, c#4 ~@7", BQ: "[b2,d#3,f#3,b3]@13 ~@3, [f#4,b4,d#5]",
BR: "[e3,a3,c#4,e4,a4,c#5] ~ [e4,a4,c#5] ~@13", BS: "[f#3,b3,d#4,f#4,b4,d#5] ~ [f#4,b4,d#5] ~@13",
BT: "[f#3,b3,f#4,b4,d#5] ~ [f#4,b4,d#5] ~@13, d#4 ~@7", BU: "[a3,c#4,e4,a4,c#5] ~ [e4,a4,c#5] ~@13, e3 ~@7",
BV: "[e3,a3,c#4]@2 [e4,a4,c#5] ~@13, [e4,a4,c#5] ~@15", BW: "[f#3,b3,d#4]@2 [f#4,b4,d#5] ~@13, [f#4,b4,d#5] ~@15",
BX: "[e4,a4,c#5] ~ [e4,a4,c#5] ~@13, [e2,c#3], a2@7 ~", BY: "[f#4,b4,d#5] ~ [f#4,b4,d#5] ~@13, [f#2,b2,d#3]@15 ~",
BZ: "[[e4,a4,c#5] ~ [e4,a4,c#5] ~@5 [a3,c#4]@2 [d#3,b3,d#4]@2 [c#4,e4]@2 e4@2 [f#4,b4,d#5] ~ [f#4,b4,d#5] ~@7 [f#2,f#3]@4 g#3@2, [e2,a2,c#3]@6 e3@3 [d#3,d#4]@2 ~@5, ~@14 f#2@11 ~@7, ~@14 b2@7 ~ b2@9 ~, ~@7 c#4@2 b3@4 ~@3]/2", // A G#m C#m B F# A D#
CA: "[e4,a4,c#5] ~ [e4,a4,c#5] ~@13, [e2,a2,c#3]@15 ~, e3 ~@3", // A
// … 104 more lines
More by Jackson Browne
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.