0:00/0:00
// Pacific Coast Highway — Sonic Youth
// 101 bpm, 4/4, key E minor. 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 11 "Muted Guitar" electric guitar muted (copy of ch 4 "Muted Guitar" electric guitar muted, 0.267 beats late)
// note: Full arrangement: all 137 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(101/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.
// other · synth strings 1 · "Synth Strings"
const synth_strings_1 = note("<~@56 A@4 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K@2 J@2 L@2 J@2 M@2 ~@49>".pickRestart({
A: "[e4@32 d4@31 ~, b3@63 ~]/4", B: "[[a3,c#4]@31 ~]/2", C: "[[g3,b3]@31 ~]/2", D: "[e4@31 ~]/2",
E: "[[d4,f#4]@31 ~]/2", F: "[[e4,a4]@31 ~]/2", G: "[e4,b4]/2", H: "[e4@4 b4@5 d5@2 c#5 a4@2 b4@2]/2",
I: "[e4@4 b4@5 a4@2 g4 f#4@2 d4@2]/2", J: "[e4@8 b4@10 d5@4 c#5@2 a4@4 b4@3 ~]/2", K: "[e5@7 ~]/2",
L: "[e4@7 ~ b4@10 a4@4 g4@2 f#4@4 d4@3 ~]/2", M: "[e5@27 ~@5]/2",
})).s("gm_synth_strings_1").gain(0.2).pan(0.6)
// chords · pad choir · "Choir Pad"
const pad_choir = note(`<
~@8 A B C B C B C D ~@16 A B C B C B C D ~@24 E@2 F@2 G@4 H@2 I J I K L ~ I M I J I M N@2 ~@24 O@8 P Q R@2 P S T@2 P U
V W X Y P Z ~
>`.pickRestart({
A: "~@3 [a4,c#5]", B: "[g4,b4] ~", C: "~@12 [a4,c#5]@3 ~", D: "[g4,b4]@7 ~@9", E: "[[e4,g4]@31 ~]/2",
F: "[[d4,f#4]@29 ~@3]/2", G: "[c#4@8 b3@7 ~, e4@15 ~]/4", H: "[e3@7 ~ b3@10 d4@4 c#4@2 a3@4 b3@3 ~]/2",
I: "e3@7 ~ b3@8", J: "~@2 a3@3 g3@2 ~ f#3@3 ~ d3@3 ~", K: "~@2 d4@4 c#4 ~ a3@4 b3@3 ~", L: "e4@3 ~",
M: "~@2 d4@3 ~ c#4 ~ a3@3 ~ b3@3 ~", N: "[e4@13 ~@3]/2", O: "[~@96 a4@29 ~@3, b3@64 f#4@61 ~@3, ~ d4@2 ~]/8", P: "e4",
Q: "f#4 d4", R: "[e4@3 d4]/2", S: "f#4 a4", T: "[b4@5 d5 b4 a4]/2", U: "d4 a4, f#4", V: "~ b4, e4",
W: "a4@8 f#4@7 ~, d5@15 ~", X: "[e4,b4]", Y: "~@8 d4@7 ~, f#4", Z: "f#4@2 d4@2 a3@3 ~",
})).s("gm_pad_choir").gain(0.23).pan(0.3)
// chords · acoustic guitar nylon · "Nylon Guitar"
const acoustic_guitar_nylon = note(`<
~@16 A B C D@2 E F G H I J K L M N@2 ~@8 A B C D@2 E F G H O J K L M N@2 P@2 Q@2 R@2 S@2 T@2 U@2 V@2 W@2 P@2 Q@2 R@2
S@2 T@2 U@2 V@2 W@2 X Y@3 Z@2 AA@2 AB@4 AC@2 AD@2 X Y@3 Z@2 AA@2 AB@4 AC@2 AD@2 AE@2 AF AG AH@2 AI AJ AK@2 AL@2 AM@2
AN AO ~
>`.pickRestart({
A: "~@11 g3 ~@3 a3, e2@3 [c#2,c#4], e4 b3@2 ~, ~@2 e3@3 e4@2 e4@9, ~@3 g3@3 e3@4 e3@2 ~@2 c#3@2", // C#
B: "~@6 d3 d4@2 ~ d3 e3 ~@3 b3, d2@11 ~ [a2,c#4]@4, d4@5 d4@2 ~@2 d4@2 ~@5, ~@2 d3@2 a3@7 ~@3 a3@2, ~@3 f#3@4 ~@6 e3@3", // A
C: "~@6 e3 ~@4 a3 ~@3 a3, e2@3 [c#2,c#4,e4], e4@4 b3@3 [b3,e4]@5 ~@4, ~@2 e3@3 e4@2 ~@9, ~@3 g3@4 ~@3 e3@2 ~@2 c#3@2", // C#m E5
D: "[~@6 d3@2 ~@2 d3@2 f#3@2 d3 ~@3 e3 ~@2 e4 ~ e4 ~@2 e3@2 ~@2 c#3@2, d2@15 ~ e2@12 [c#2,a3,e4]@4, d4@5 d4@5 ~@6 e4@4 ~@2 e3@3 e4@3 ~@4, ~@2 d3@2 a3@4 ~ a3@6 ~@5 b3@8 ~@4, ~@3 f#3@5 g3@2 ~@5 g3@3 ~ g3@9 ~@4]/2", // A
E: "f#3@2 ~@4 d3 [f#3,a3,d4]@2 ~ d3 e3 ~@3 b3, d2@11 ~ [a2,c#4]@4, d4@4 a3@3 ~@7 a3@2, ~@2 d3@3 d4@2 ~@9, ~@3 f#3@4 ~@2 [f#3,a3,d4]@2 ~@2 e3@3", // D A D
F: "~@6 e3 [b3,e4]@2 ~@2 g3 ~@3 a3, e2@3 [c#2,e4], e4@4 b3@3 ~@2 [b3,e4]@3 ~ a3@2 ~, ~@2 e3@3 e4@2 ~@9, ~@3 g3@4 ~@3 e3@2 ~@2 [c#3,c#4]@2", // E5 C#m E5 C#
G: "~@6 d3 f#3@3 ~@5 g3, d2@15 ~, d4@4 a3@7 ~ a3@4, ~@2 d3@3 d4@7 ~ d4@3, ~@3 f#3@3 ~@4 d3@4 d3@2",
H: "~@2 e3 ~@3 e3 e4@2 ~ e3 ~@3 c#3@2, e2@11 ~ [c#2,c#4]@4, e4 b3@2 ~, ~@3 g3@8 ~@5, ~@5 e4@2 ~@2 e4@7", // C#
I: "~@5 d4 ~@5 d4 ~@3 c#4, d2@3 ~, d4@4 a3@5 f#3@3 ~ e3@3, ~ d3@2 d3@2 [d3,a3] [a2,c#4]@2, ~@3 f#3@3 ~ d4@4 ~@3 a3@2", // D5 A
J: "~@5 e4 ~ e4@2 ~@2 g3 ~@3 c#4, e2@3 [c#2,c#4], e4@2 b3@4 ~ [c#3,a3], ~@2 e3@4 e3@4 e3@2 ~ e3@3, ~@3 g3@4 ~@2 e4@3 ~@4", // C# F#m
K: "~@7 [d3,d4], d2, d4@3 f#3@4 d4@5 a3@4, ~@2 d3@3 d4 d3@3 ~ d3@4 ~@2, ~@4 a3@5 f#3@7", // D
L: "~@7 e4@2 ~@2 g3 ~@3 c#4, e2@3 ~, e4@4 b3@8 ~ e3@3, ~@2 e3@3 e4 e3@4 e3@2 [c#3,c#4]@4, ~@3 g3@5 ~ e4@3 ~@2 a3@2", // C#
M: "~@2 d3 ~@2 d4 d3 d4@2 ~ d3 e3 ~@3 b3, d2@11 ~ [a2,c#4]@4, d4@4 a3@7 ~@2 e3@3, ~@3 f#3@3 ~@3 d4@2 ~@3 a3@2", // A
N: "[~@5 e4 e3 e4 ~@2 e3 g3 ~@3 c#4 ~@6 d3 d4@2 ~ d3 ~ a3@2 [d3,d4] ~, e2@11 ~ [c#2,c#4]@4 d2@14 ~@2, e4@4 b3@7 ~@3 a3@5 f#3@4 ~@4 f#3@2 ~@3, ~@2 e3@4 ~@3 e4@2 ~@3 c#3@2 ~@2 d3@3 d4@2 ~@2 d4@4 ~@3, ~@3 g3@8 ~@2 e3@3 d4@4 a3@7 ~@5]/2", // D C#
O: "~@5 d4 ~@9 c#4, d2@3 ~, d4@4 a3@5 f#3@3 ~ e3@3, ~ d3@2 d3@2 [d3,a3] [a2,c#4]@2, ~@3 f#3@3 ~ d4@4 d4@2 ~ a3@2", // D5 A
P: "[[b3,e4,g4] ~ e3 [b3,e4,g4] ~@2 [b3,e4]@4 e3@2 e4@2 e3 e4@3 e3@2 e4!2 e3 ~ e4@2 e3@2 e4@2 e3@2, e2@15 ~, ~@6 g4@25 ~, ~@3 e3 ~@12]/2", // Em E5
Q: "[[b3,d4,f#4] ~ e3 [b3,d4,f#4] ~@2 [b3,d4]@4 e3 ~ [b3,d4] ~ e3 [b3,d4]@3 e3@2 b3 ~ e3 ~ b3!2 e3 b3 ~ b3 e3@2, e2@15 ~, ~@3 f#4@12 ~, ~@3 e3 ~@12]/2", // Bm
R: "[[a3,c#4,e4] ~ e3 [a3,c#4,e4] ~@2 [a3,c#4]@4 e3 ~ [a3,c#4] ~ e3 [a3,c#4]@3 e3@2 [a3,c#4]!2 e3 ~ a3 ~ e3 a3 ~ a3 e3@2, e2@15 ~, ~@6 e4@25 ~, ~@3 e3 ~@12]/2", // A
S: "[[g3,b3,e4] ~ e3 [g3,b3,e4] ~@2 [g3,b3]@4 e3 ~ [g3,b3] ~ e3 [g3,b3]@3 e3 ~ [g3,b3] ~ e3 ~ [g3,b3] ~ e3 ~ [g3,b3] ~ e3@2, e2@15 ~, ~@3 e4@12 ~, ~@6 e3 ~@25]/2", // Em G
T: "[[b3,e4,g4] ~ e3 [b3,e4,g4] ~@2 [b3,e4]@4 e3 ~ [b3,e4]@2 e3@2 b3 ~ e3 b3 ~ b3 e3!2 e4@2 e3@2 b3@2 e3@2, e2@15 ~, ~@6 g4@25 ~, ~@3 e3 ~@12]/2", // Em E5
U: "[[b3,d4] ~ e3 [b3,d4,f#4] ~@2 [b3,d4]@3 ~ e3 ~ b3@2 e3 b3@2 b3 e3!2 b3 ~ e3 ~ b3 ~ e3 ~ b3@2 e3 ~, e2@15 ~, f#4 ~@2 f#4@12 ~, ~@6 e3 ~@25]/2", // Bm
V: "[[a3,c#4] ~ e3 [a3,c#4] ~@2 [a3,c#4]@3 ~ e3 ~ [a3,c#4] ~ e3 a3 ~ a3 e3!2 a3@2 e3 ~ [a3,c#4] ~ e3 [a3,c#4] ~@2 e3@2, [e2,e4]@31 ~, ~@6 e3 ~@22 [a3,c#4]@2 ~]/2", // A E A
W: "[[g3,b3,e4] ~ e3 [g3,b3,e4] ~@2 [e3,g3,b3]@3 ~ e3 ~ g3@2 e3 ~ b3!2 e3 ~ g3 ~ e3 ~ b3 ~ e3 ~@3 e3 ~, e2@31 ~, ~@3 e4@13]/2", // Em
X: "e2@4 [g3,b3,e4]!2 ~@6 [a3,c#4,e4] ~@3", // Em A
Y: "[g3@6 b2 d3 e3 g3 d3@2 e3 g3 ~ g3 e2@4 [g3,b3,e4]!2 e3 ~@3 e3 ~ [a3,c#4,e4] ~ e3 g3@7 b2 d3 e3 g3 d3@2 e3 g3 d3 g3, [b3,d4]@20 ~@11 [b3,d4]@17]/3", // Em A Bm
Z: "[~@2 e3 ~ [g3,b3,e4]!2 e3 ~@3 e3 ~ [a3,c#4,e4] ~ e3 g3@7 b2 d3 e3 g3 d3 ~@5, e2@5 ~@10 [b3,d4,e4]@17]/2", // Em A E7
AA: "[~@2 e3 ~ [g3,b3,e4]!2 e3 ~@3 e3 ~ [a3,c#4,e4] ~ e3 g3@7 b2 d3 e3 g3 d3 ~ e3 g3 d3 g3, e2@4 ~@11 [b3,d4]@17]/2", // Em A Bm
AB: "[~@2 e3 ~ [g3,b3,e4]!2 e3 ~@3 e3 ~ [a3,c#4,e4] ~ e3 g3@7 b2 d3 e3 g3 ~@2 e3 ~ g3 ~@3 e3 ~ [g3,b3,e4]!2 e3 ~@3 e3 ~ [a3,c#4,e4] ~ e3 g3@7 b2 d3 e3 g3 f#3@2 g3!2 f#3 g3, e2@5 ~@10 [b3,d4]@20 ~@12 [b3,d4]@17, ~@32 e2@5 ~@27]/4", // Em A Em A Bm
AC: "[~@2 e3 ~ [g3,b3,e4]!2 e3 ~@3 e3 ~ [a3,c#4,e4] ~ e3 [g3,b3,d4]@7 b2 d3 e3 [g3,b3,d4] d3@2 e3 g3 d3 g3, e2@5 ~@27]/2", // Em A G
AD: "[~@2 e3 ~ [g3,b3,e4]!2 e3 ~@3 e3 ~ [a3,c#4,e4] ~ e3 g3@7 b2 d3 e3 g3 d3@2 e3 g3 e3 g3, e2@5 ~@10 [b3,d4]@17]/2", // Em A Bm
AE: "[~@2 e3 ~@2 e4 e3 [g3,b3,e4] ~@2 e3 ~ [c#2,a3,c#4,e4] ~ c#3 ~@3 d3 ~@3 d3 ~ [g3,a3,d4] ~ d3 [g3,a3,d4]@2 f#3 d3 f#3, e2@11 ~@5 d2@5 d4@2 ~@9, ~@3 g3@3 ~@9 [a3,d4]@5 a3@2 ~@7 [a3,d4]@3, ~@4 b3@2 ~@9 f#3@3 ~ f#3@3 ~@10]/2", // Em A Gsus2 D5
AF: "~@2 e3 ~@2 e4 e3 [g3,b3,e4] ~ g3 e3 a3 c#2@2 c#3 ~, e2@3 g3@3 ~@6 [a3,c#4,e4]@4, ~@4 b3@2 ~@3 [b3,e4]@3 ~@4", // Em A E5
AG: "[a3,d4]@2 d3 ~@3 d3 ~@2 e4 d3 [a3,d4,f#4]@2 a3 d3 a3, d2@6 ~@2 [a3,d4,f#4]@2 ~@3 [d4,e4]@3", // D5 D Dsus2
AH: "[~@2 e3 ~@2 e4 e3 [g3,b3,e4] ~@2 e3 a3 [c#2,a3,c#4,e4] ~ c#3 ~@3 d3 ~@2 d4 d3 ~ [g3,a3,d4] ~ d3 [g3,a3,d4] ~ f#3 d3 f#3, e2@5 ~@3 d2@4 ~@4, ~@3 g3@3 ~@3 [g3,b3,e4]@2 ~@4 [a3,d4]@5 a3@2 ~@7 [a3,d4]@3, ~@4 b3@2 ~@9 f#3@3 ~ f#3@3 ~@10]/2", // Em A Gsus2 Em D5
AI: "~@2 e3 ~@2 e4 e3 e4 ~@2 e3 ~ [c#2,c#4]@2 c#3 ~, e2@9 e4@6 ~, ~@3 g3@7 ~ a3@4 ~, ~ b3@2 ~", // C#
AJ: "f#3@2 d3 ~@2 a3 d3 ~@3 d3 ~@3 d3 f#3, [d2,d4]@9 a3@2 d4@5, a3@5 ~@3 f#3@4 ~ a3@3", // D
AK: "[~@2 e3 ~@2 e4 e3 [g3,b3,e4] ~ [g3,b3,e4] e3 a3 [c#2,a3,c#4,e4] ~ c#3 ~@3 d3 ~@3 d3 ~ [f#3,a3,d4] ~ d3 [f#3,b3,d4]@2 f#3 d3 f#3, e2@4 b3@2 ~@9 [a3,d4]@5 a3@2 ~@7 [a3,d4]@3, ~@3 g3@3 ~@9 f#3@3 ~ f#3@3 ~@10, ~@16 d2@5 d4@2 ~@9]/2", // Em A D Bm D5
AL: "[~@2 e3 ~@2 e4 e3 [g3,b3,e4] ~@2 e3 a3 [c#2,a3,c#4,e4] ~ c#3 ~@3 d3 ~ [f#3,a3,d4]!2 d3 [f#3,a3,d4] ~ [f#3,a3,d4] d3!2 [g3,a3] ~ d3 ~, e2@4 b3@2 ~@10 d2@5 ~@11, ~@3 g3@3 ~@3 [g3,b3,e4]@2 ~@4 [f#3,a3,d4]@4 ~@9 d4@4]/2", // Em A D Gsus2 Em D
AM: "[~@2 e3 ~@2 e4 e3 [g3,b3,e4] ~ [g3,b3,e4] e3 a3 [c#2,a3,c#4,e4] ~ c#3 ~@3 d3 ~@2 d4 d3 ~ [f#3,a3,d4] ~ d3 ~ [f#3,a3,d4] ~ d3 [f#3,a3,d4], e2@4 b3@2 ~@9 [a3,d4]@5 a3@2 ~@10, ~@3 g3@3 ~@9 f#3@3 ~ f#3@3 ~@10, ~@16 d2@9 ~@7]/2", // Em A D D5
AN: "~@2 e3 ~@2 e4 e3 [g3,b3,e4] ~ [g3,b3,e4] e3 ~ c#2@2 c#3 ~, e2@4 b3@2 ~@5 a3@5, ~@3 g3@3 ~@6 [c#4,e4]@4", // Em C#m
AO: "~@2 d3 ~ [f#3,a3,d4]!2 d3 [f#3,a3,d4] ~ [f#3,a3,d4] d3!2 [f#3,b3]@2 [d3,f#3,a3] ~, d2@5 ~@7 d4@4", // D B5 D
})).s("gm_acoustic_guitar_nylon").gain(0.3).pan(0.4)
// chords · piano
const piano = note(`<
~@8 A B C D E B F G ~@16 A B H D E B I G ~@8 J K L M N O P@2 Q@2 R@2 S@2 T@2 U ~ V ~ W@2 X ~ Y@2 Z ~ AA ~ U ~ AB@2
AC@2 AD@2 T@2 AE@7 AF@8 AG@8 AH@7 AI@5 M AJ O AK@2 AL@2 AM AN AO AP AQ AR ~
>`.pickRestart({
A: "[e2,e3]@11 ~ [e4,a4,c#5,e5]@3 ~", B: "[d4,g4,b4,d5]@15 ~", C: "[e2,e3]@6 [e4,c#5,e5] ~, ~@12 a4 ~@3",
D: "[d4,g4,b4,d5]@11 ~ [d4,f#4,a4,d5]@2 ~@2", E: "[e2,e3]@6 [e4,a4,c#5,e5] ~",
F: "[e2,e3]@11 ~ [e4,e5]@2 ~@2, ~@12 [a4,c#5] ~@3", G: "[d4,g4,b4,d5]@11 ~ [d4,f#4,a4,d5]@4",
H: "[e2,e3]@12 [e4,a4,e5] ~@3, ~@6 c#5 ~", I: "[e2,e3]@11 ~ [a4,c#5,e5] ~@3, ~@6 e4 ~", J: "e5@13 ~ f#5!2",
K: "~ d5 ~ d5 ~ e5 ~ e5 ~ b4 ~ b4@2 a4 d5 ~", L: "b4@13 ~ a4!2", M: "~ b4 ~ b4 ~@6 b4 d5 e5 b4 e5 ~",
N: "[b4,e5] [f#5,a5] b5 e6 a6 ~@8 a5 b5 d6", O: "e6 ~ a5 b5 ~ b5 ~ b5@6 ~ a5!2",
P: "[a5 ~ f#5!2 ~ e5 ~ e5 ~ d5 ~ d5 ~ b4 ~ b4@2 a4@2 d5@2 a4@2 b4@5 ~@4]/2",
Q: "[[b3,e4,g4] ~@2 [b3,e4,g4] ~@2 [b3,e4,g4]@13 ~@13]/2", // Em
R: "[[b3,d4,f#4] ~@2 [b3,d4,f#4] ~@2 [b3,d4,f#4]@16 ~@10]/2", // Bm
S: "[[a3,c#4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4]@12 ~@14, e4 ~@15]/2", // A
T: "[[g3,b3,e4] ~@2 [g3,b3,e4] ~@2 [g3,b3,e4]@13 ~@13]/2", U: "[b3,e4,g4] ~@2 [b3,e4,g4] ~@2 [b3,e4,g4]@10",
V: "[b3,d4,f#4] ~@2 [b3,d4,f#4] ~@2 [b3,d4,f#4]@10", W: "[[a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [a3,c#4,e4]@13 ~@13]/2",
X: "[g3,b3,e4] ~@2 [g3,b3,e4] ~@2 [g3,b3,e4]@8 ~@2", Y: "[[e4,g4,b4] ~@2 [e4,g4,b4] ~@2 [e4,g4,b4]@14 ~@12]/2",
Z: "[d4,f#4,b4] ~@2 [d4,f#4,b4] ~@2 [d4,f#4,b4]@8 ~@2", AA: "[c#4,e4,a4] ~@2 [c#4,e4,a4] ~@2 [c#4,e4,a4]@10",
AB: "[[b3,e4,g4] ~@2 [b3,e4,g4] ~@2 [b3,e4,g4]@21 ~@5]/2", // Em
AC: "[[b3,d4,f#4] ~@2 [b3,d4,f#4] ~@2 [b3,d4,f#4]@19 ~@7]/2", // Bm
AD: "[[a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 [c#4,e4]@14 ~@12, ~@3 a3@6 ~@7]/2", // A C#m
AE: "[~@20 b4@5 ~@25 a4@6, e2@28 d4@3 b4 e2@16 d5@8, ~@22 f#4@28 a4@29 ~@3 e5@9 g5@21, ~@28 g4@23 g4@28 ~@7 b4@8 f#5@18, ~@32 e4@19 ~ e4@2 f#4@25 ~@9 a5@24]/7",
AF: "[~@2 a4 ~@69 b3 ~@38 b4@2 ~@11 c#5@2 ~ d5, b4@10 e4@2 f#4@19 ~@4 g5@5 d5@6 e5@3 ~ b4@9 ~ a4@10 e4@10 [e2,e4]@18 c#5@6 f#4@8 ~@2 f#4@7 ~ f#4@6, ~ d5@5 e5@7 g4@18 ~@3 f#5@7 e5@3 f#5@6 ~@3 d5@18 a4@28 d5@6 c#5@7 ~ c#5@5 a4@3 ~@5 a4@2, ~@3 a4@5 d5@6 e4@17 ~@5 e5@2 b5@4 b4@4 ~ a4@9 c#5@16 ~@6 d4@22 a4@7 ~@3 a4@4 ~@2 b4@4 ~ b4@2 ~@5, ~@4 f#4@5 a4@6 ~ e2@48 b4@8 ~@2 b3@26 ~@2 b4@5 ~ d5@10 ~ e5@9]/8", // E
AG: "[~@7 b4@2 ~ f#4@2 ~@4 e5@14 ~@26 a3@16 ~@28 b4@6 ~@2 b4@5 ~@13 c#5@2, ~ b4@3 c#5@7 ~ b4@18 ~@8 d4@32 ~@5 b4@4 a5 e2@48, ~@2 f#4@7 d5@21 ~@12 b3@2 g4@28 ~@2 a4@2 e5@19 ~@21 b4@4 ~@3 a4@5, ~@6 a4@4 ~@4 c#5@16 ~@10 e4@32 e4@4 ~@2 g5@17 ~@4 g5@6 ~@2 g5@6 ~@2 g5@4 ~ e5@6 ~@2, ~@16 e2@31 f#4@25 ~ f#4@3 ~ f#5@18 ~@3 f#5@7 ~ f#5@3 ~@5 f#5@4 d5@7 ~@3]/8",
AH: "[~@4 g4@3 ~ a4@2 ~@60 a4@2 ~@6 a4@2 ~@3 b4@2 ~@17 a4@2 b4@2 ~@4 a4@2, ~@2 d5@8 c#5@20 ~@5 e4@4 ~ f#4@19 d5@7 b4 e5@37 ~@3 d5@5, ~@11 d5@19 ~@6 b3@6 ~@2 b3@25 a5@6 f#5@5 a5@8 b4@5 f#5@5 ~ a5@13, ~@14 b4@16 ~@4 d4@28 a4@8 ~@2 b4@4 ~ b4@4 ~@4 f#5@5 ~ a5@5 b4@5 f#5@3 ~@5 e5@3, ~@16 e2@37 ~@5 b4@6 f#4@6 ~@4 f#4@6 ~@2 f#4@4 a4@4 f#4@4 a4@4 f#4@6 ~@2 f#4@4 ~@2]/7",
AI: "[~@6 a4@2 ~@6 a4@2 b4@2 ~@8 a4@2 ~@2 e5@2 ~@14 f#5!2 ~ d5@2 ~@2 e5@2 ~@2 b4@2 ~@2 a4 ~@2 b4@13 ~ a4!2, b4@5 f#5@6 a5@10 e5@2 b4@2 g5@52 ~@3, ~@2 f#4@4 ~@2 b4@5 f#5@5 ~ d5@30 ~@2 d5@11 d5@15 ~@3, ~@3 a5@7 f#4@4 ~@4 f#4@12 ~@2 e5@21 ~@2 e5@22 ~@3, ~@22 a4@2 f#5@2 ~@2 b4@29 ~@2 b4@5 ~@16]/5",
AJ: "[b4,e5] [f#5,a5] b5 e6 [g6,a6] ~@8 a5 b5 d6", // E5 F#m Gsus2
AK: "[a5 ~ f#5!2 ~ e5 ~ e5 ~ d5 ~ d5 ~ b4 ~ b4@2 a4@2 d5@2 a4 ~ b4@5 b4!2 d5 e5]/2",
AL: "[f#5!2 b4 d5 ~ f#5 ~ b4 ~ d5 ~ e5@2 f#5 ~@2 b4 ~ d5 ~ e5 ~ b4 ~ a5@2 ~@3 e5 a5 d6, ~@15 f#5@2 ~@15]/2",
AM: "~ d6 b5 ~ b5 ~@2 e5 ~ e5 a5 ~ d6 ~ b5 ~", AN: "e5 ~ a5 d6 ~ d6 b5 ~ d5 ~ f#5 ~ e5@2 d5 c#5",
AO: "~ c#5 d5 ~ b4 ~ c#5 a4 ~ a4 b4 ~ b4@2 a4 ~", AP: "a4@2 b4!2 ~ a4 ~ a4@6 ~@3",
AQ: "e4 f#4 e4 d4 [e4,a4] d5 e5 f#5 a5 ~ g5 f#5 ~ d5 ~@2", AR: "~ e5 a5 b5 d6!2 b5 ~ a5 ~ b5 d6 ~ d6 ~@2",
})).s("gm_piano").gain(0.33).pan(0.7)
// bass · slap bass 2
const bass = note(`<
~@4 A B A B A B A B A B A B ~@16 A B A B A B A C ~@16 D ~ D ~ E ~ F ~ G H I J I K I L M N O P Q R S T U V W X U Y Z AA
AB ~@48
>`.pickRestart({
A: "e1@2 e2 ~ d3 e3 e2 e3 ~ e3 e2 b2 g1@2 g2 b2", B: "a1@2 a2 ~ d3 e3 a2 e3 ~ e3 a2 b2 d1@2 d2 b2",
C: "a1 ~ a2 ~ d3 e3 a2 e3 ~ e3 a2 b2 d1@2 d2 b2", D: "e2@2 ~ e2 ~@2 e2@6 ~@4", E: "e2 ~@2 e2 ~@2 e2@4 ~@6",
F: "e2@2 ~ e2 ~@2 e2@3 ~@7", G: "e2 ~@2 e2 ~@2 e2@2 ~@6 e3!2", H: "~ e3 e2!2 e3!2 e2 e3 e2 ~ b1 ~ d2@2 e2 e3",
I: "e2 ~@2 e2 ~@2 e2@2 ~@6 d3 e3", J: "e2 b2 d3 ~ e3 ~@3 d3 e3 b2!2 a2@2 b2!2",
K: "e2 b2 e2 ~ e3 ~ e2 b2 b1@2 d2@2 e2 ~ e2 ~", L: "b2 ~ b2 ~ d3 ~ b2!2 f#2 ~ g2@2 a2 b2 g2 b2",
M: "e1@2 e2 ~ d3 e3 e2 ~ e3 ~ f#2@2 g2 b2 f#2 b2", N: "~@2 e2 ~ e3!2 e2 ~ e3 ~ e2 b2 b1@2 d2 b2, e1 ~@3",
O: "e1@2 e2 ~ e3!2 e2 ~ e3 ~ f#2@2 g2 b2 f#2 b2", P: "~@2 e2 ~ e3!2 e2 e3 ~ e3 e2 e3 d2@2 e2 ~, e1 ~@3",
Q: "e3!2 e2 ~ e3 ~ e2 ~ e3 ~ f#2@2 g2 e3 f#2 e3", R: "e1@2 e2 ~ e3!2 e2 e3 ~ e3 e2 e3 d2@2 e2 e3",
S: "e1@2 e2 ~ e3!2 e2 ~ e3 ~ f#2@2 g2 ~ f#2 ~", T: "d3 e3 e2 ~ e3!2 e2 e3 ~ e3 e2 b2 d2@2 e2 b2",
U: "e1@2 e2 ~ e3!2 e2 ~ e3 ~ f#2@2 g2 e3 f#2 e3", V: "~@2 e2 ~ e3!2 e2 e3 ~ e3 e2 e3 b1 ~ d2 ~, e1 ~@3",
W: "e1@2 e2 ~ e3!2 e2!2 e3!2 f#2@2 g2@2 f#2 e3", X: "e1@2 e2 ~ e3!2 e2 ~ e3 ~ e2 ~ e3!2 e2 e3",
Y: "e1@2 e2 ~ e3!2 e2 ~ e3 ~ e2 e3 d2@2 e2 e3", Z: "e1@2 e2 ~ e3!2 e2!2 e3 ~ f#2@2 g2 ~ f#2 e3",
AA: "~@2 e2 ~ e3!2 e2 ~ e3 ~ e2 e3 d2@2 e2 ~, e1 ~@3", AB: "e1 ~@7",
})).s("gm_slap_bass_2").gain(0.27)
// bass · electric bass finger · "Fingered Bass"
const bass_2 = note("<~@103 A B C D E F G H I J@2 K L M@2 N O P Q R S T U V W X Y V Z AA AB V AC ~>".pickRestart({
A: "~@2 f#3 g3 e3!2 c#3@2 d3 e3 c#3 e3 b2 e3 a2 e3", B: "e2@2 e3 ~ f#3 g3 e3 g3 ~ f#3 e3 ~ a3 ~ g3 ~",
C: "f#3 g3 e3!2 c#3@2 d3 ~@3 e3!2 b2 e3!3", D: "e2@2 e3!2 ~ e3!2 ~ e3 ~@5 f#3 g3",
E: "e3!2 c#3 d3 c#3 ~ b2 ~ f#3 g3 b2 e3 ~@4", F: "e2@2 e3 ~ f#3 g3 e3!2 a3 g3 ~ f#3 ~ g3 ~ e3",
G: "~@2 c#3 e3 d3 e3 c#3 ~@5 e3!2 b2 e3", H: "~@2 e3 ~ f#3 g3 e3!2 b3@2 ~@4 a3 [g3,a3], e2 ~@3",
I: "f#3 e3 d3 g3 f#3 d3 b2 a2 d3 b2 a2 e2 d2 ~ d2 ~",
J: "[e2@2 e2 d2 ~ d2 e2 ~ e2 ~ b1 ~ d2@2 b1 e2@2 e2 ~ e2 d2 ~ e2 ~ f#2 g2 a2!2 b2 ~ d3 e3]/2",
K: "e2 ~ e2 d2 ~ d2 e2 ~ e2 ~ b1 ~ d2@2 b1 e2", L: "~ e2 ~ e2 d2 ~ e2 ~@3 b2 d3 e3 d3 b2 ~",
M: "[e2 ~ e2 d2 ~ d2 e2 ~ e2 ~ b1 ~ d2@2 b1 e2@2 e2 ~ e2 d2 ~ e2 ~ f#2 g2 a2 b2 d3 ~ c#3 ~]/2",
N: "e2 ~ e2 d2 ~ d2 e2 ~ e2 ~ b1 ~ d2@2 b1 ~", O: "e2 ~ e2 d2 ~ d2 e2 ~ f#2 g2 a2!2 g2 ~ f#2 ~",
P: "e2@3 ~ e2!2 ~ e2 ~@4 c#2@2 ~@2", Q: "d2@5 ~@5 a2 b2 d3!2 b2 a2", R: "e3@2 ~@4 e2!2 ~ e2 ~ e2 c#2@2 c#2 ~",
S: "d2@2 ~@4 a1 b1 d2!2 ~@2 d2 ~@3", T: "e2@3 ~@9 e3!2 e2 ~", U: "~@6 d2 ~ d2@2 a1 b1 d2!3 ~",
V: "e2@2 ~@10 c#2 ~ c#2 ~", W: "d2@2 ~@4 a2 b2 d3!2 b2 ~ a2 ~ d3 ~", X: "e2@2 ~@4 b1 d2 e2!2 ~ e2 c#2 ~ c#2 ~",
Y: "d2@5 ~ a1 b1 d2!2 ~ d2 ~ d2 ~ d2", Z: "d2@2 ~@4 a2 b2 d3!2 b2 ~ a2 ~ b2 ~", AA: "e2@2 ~@9 e2 c#2 ~ c#2 ~",
AB: "d2@2 ~@4 b1 a1 ~ a1 ~ a1 b1 ~ d2 ~", AC: "d2@4 ~@8 d2 ~ d2 ~",
})).s("gm_electric_bass_finger").gain(0.23)
// chords · music box
const music_box = note("<~@24 A B C D A E C F ~@40 G H G I J K L ~ J M G I J N O ~@50>".pickRestart({
A: "~@3 [e4,g4]@5, [e3,e5], ~@3 [b3,b4]@13", B: "~@6 [f#4,a4]@9 ~, [a3,f#5]@15 ~, ~@3 [d4,d5]@12 ~",
C: "~@7 b4, e3, e5@3 [e4,g4]@5, ~@3 b3@13, ~@3 b4@9 e5@4", D: "[f#3,d4,a4,d5]@15 ~",
E: "~@3 [f#4,a4]@5, [a3,f#5], ~@3 [d4,d5]@13", F: "[f#3,d4,f#4,d5]@13 ~@3", G: "e4@7 ~ b4@8",
H: "~@2 d5@3 ~ c#5@2 a4@3 ~ b4@2 ~@2", I: "~@2 a4@3 ~ g4 ~ f#4@3 ~ d4@3 ~", J: "e4@3 ~ b4@4",
K: "~@2 d5@3 ~ c#5 ~ a4@3 ~ b4@2 ~@2", L: "e5@5 ~@3", M: "~@2 d5@3 ~ c#5 ~ a4@3 ~ b4@3 ~",
N: "~@2 d5@3 ~ c#5 ~ a4@3 ~ b4 ~@3", O: "e5@5 ~@11",
})).s("gm_music_box").gain(0.25).pan(0.7)
// other · electric guitar muted · "Muted Guitar"
const electric_guitar_muted = note(`<
A B C D E F G H I B C D E F G H I B C D E F G H I B C D E F G H I B C D E F G H I B C D E F G H I B C D E F G H I B C
D E F G H I B C D E F G H I B C D E F G H I B C D E F G H I B C D E F G H I B C D E F G H I B C D E F G H I B C D E F
G H I B C D E F G H I B C D E F G H ~
>`.pickRestart({
A: "~@2 e4 ~ e3 ~ b3 ~ d3 d4 ~ d4 e3 ~ a3 ~", B: "d3 b3 ~ b3 e3!2 e4 ~ b2 ~ b3 d4 d3 a3 ~ b3",
C: "e3 ~ e4 ~ d3 ~ b3 ~ e3 d4 ~ a3 b2!2 b3 ~", D: "e3 ~ a3 ~ d3 b3 ~ d4 e3!2 a3 b3 d3 ~ e4 ~",
E: "e3 b3 ~ d4 d3!2 a3 ~ e3 ~ b3 ~ d3 e4 ~ d4", F: "e3!2 a3 ~ b2 ~ b3 ~ e3 d4 ~ b3 d3!2 a3!2",
G: "e3 ~ b3 ~ d3 d4 ~ b3 e3!2 a3!2 d3 ~ e4 ~", H: "e3 b3 ~ d4 d3!2 a3 ~ e3 b3 ~ d4 d3!2 b3 ~",
I: "e3 ~ e4 ~ e3 ~ b3 ~ d3 d4 ~ d4 e3 ~ a3 ~",
})).s("gm_electric_guitar_muted").gain(0.07).pan(1)
// bass · piano · "Honky Tonk"
const bass_3 = note("<~@8 A ~ A ~ A ~ A ~@122>".pickRestart({
A: "e1@3 ~",
})).s("gm_piano").gain(0.25).pan(0.2)
// other · clavinet
const clavinet = note("<~@32 A B A C D E A F ~@97>".pickRestart({
A: "e3 e4 e2 e3 ~ e3 e2 e3 g3 a3 e2 ~ e3 ~ e2 ~", B: "e3 ~ e2 e3 ~ e3 e2 e3 g3 a3 [e2,e3] ~ b3 ~ [e2,a3] ~",
C: "e3!2 e2 e3 ~ e3 e2 e3 g3 a3 [e2,e3] ~ d3 ~ [e2,e3] ~", D: "e3 e4 e2 e3 ~ e3 e2 e3 g3 a3 [e2,e3] ~ e3 ~ e2 ~",
E: "e3 e4 e2 e3 ~ e3 e2 e3 g3 a3 e2 e3 b3 ~ [e2,a3] ~", F: "e3 e4 e2 e3 ~ e3 e2 e3 g3 a3 [e2,e3] ~ d3 ~ e2 ~",
})).s("gm_clavinet").gain(0.25).pan(0.2)
// drums · kick
const kick = s("bd").struct(`<
~@16 A B A@9 C A@3 C D@8 A B A@9 C A@3 C D@32 ~@16 A E B F B G B H A I A C A J K L M@3 N M@3 N M@7 N ~
>`.pickRestart({
A: "x ~@4 x ~ x", B: "x", C: "x ~@3 x!2 ~ x", D: "x!4", E: "x ~@2 x", F: "~@2 x!2 ~ x!2 ~", G: "~@2 x!2 ~@2 x ~",
H: "x!2 ~@2 x!2 ~ x", I: "x ~@4 x ~@2", J: "x ~@9 x!2 ~@2 x ~", K: "x ~ x ~@7 x!2 ~@2 x ~",
L: "x ~ x ~@5 x ~ x!2 ~@2 x ~", M: "x ~ x!2 ~@6 x!2 ~@2 x ~", N: "x ~ x!2 ~@4 x ~ x!2 ~@2 x ~",
})).gain(0.2)
// drums · rim
// … 101 more lines
More by
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.