0:00/0:00
// (Dont Fear) The Reaper — Blue Oyster Cult
// 142 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 5/4 at bar 96, 4/4 at bar 98) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 173 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): guitar program 29, guitar program 31.
setcpm(142/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 · lead 4 chiff
const lead_4_chiff = note(`<
~@8 A@2 ~@2 A@2 ~ B C D E@2 F G H@2 I J K@3 L@2 ~@2 M@2 ~@14 N@3 ~ O@3 ~ P Q R@2 S J T U V W X@2 Y@2 Z AA AB@3 A@2 ~@2
AC@3 ~@45 AD AE@2 ~ AD AF@2 ~ AG AH@2 AI AJ AK AL AK AM AN@2 AO AP AQ AR AS AP AT ~@19
>`.pickRestart({
A: "[c5@9 ~ b4@2 ~@2 a4@7 ~ g4@7 ~ g4@2]/2", B: "~@7 g4", C: "a4@3 ~ a4 ~ a4 ~ g4@4 d4 ~ e4@2",
D: "~@2 g4@2 ~@6 c4 ~ c4 ~ c4 ~", E: "[a4@5 ~ a4 ~ b4 ~ b4 ~ b4@2 c5@9 ~@9]/2", F: "~@4 c5 b4 ~ b4",
G: "~@2 c5@3 ~@11", H: "[~@4 a4 ~ a4 ~ b4 ~ b4 ~ b4 ~ c5@5 ~@13]/2", I: "~@4 a4 ~ a4 ~ b4@3 ~ b4 ~ b4@2",
J: "~@2 c5 ~ c5@3 ~@9", K: "[~@4 a4 ~ a4 ~ b4@3 ~ b4 ~ c5@33 ~]/3", L: "[c5@10 ~ b4@2 ~@2 a4@7 g4@7 ~ g4@2]/2",
M: "[c5@10 ~ b4@2 ~ a4@6 ~@2 g4@7 ~ g4@2]/2", N: "[c5@9 ~ b4@2 ~@2 a4@7 ~ g4@7 ~ g4@4 ~@14]/3",
O: "[c5@10 b4@2 ~@2 a4@7 ~ g4@7 ~ g4@4 ~@14]/3", P: "~@4 a4@2 a4@2 b4@3 ~ b4 ~ b4@2", Q: "~@2 c5 ~ c5@4 ~@6 g4 ~",
R: "[a4@4 a4 ~ a4 ~ b4@3 ~ b4 ~ c5@6 ~@12]/2", S: "~@5 a4 ~@2 b4@3 ~ b4 ~ b4@2",
T: "a4@3 ~ a4@2 a4 ~ b4@3 ~ b4 ~ b4@2", U: "~@2 c5 ~ c5@3 ~@7 a4 ~", V: "a4@3 ~ a4!2 ~@2 b4 ~ b4 ~ b4!2 ~ b4",
W: "b4 ~ c5 ~ c5@6 ~@6", X: "[~@8 c5@2 b4@3 ~ b4@4 c5@4 ~@10]/2", Y: "[~@4 a4 ~ a4 ~ b4 ~ b4 ~ b4 ~ c5@4 ~@14]/2",
Z: "~@4 a4@3 ~ b4@3 ~ b4 ~ b4@2", AA: "~@2 c5 ~ c5@2 ~@10", AB: "[~@4 a4 ~ a4 ~ b4 ~ b4 ~ b4 ~ c5@33 ~]/3",
AC: "[c5@9 ~ b4@2 ~@2 a4@7 ~ g4@8 g4@4 ~@14]/3", AD: "~ [c5,e5]",
AE: "[~@2 [b4,d5]@2 ~@2 [a4,c5]@7 ~ [g4,b4]@7 ~ [a4,c5]@2 ~@8]/2", // Bm Am G Am
AF: "[~@2 d5@2 ~@2 [a4,c5]@7 ~ [g4,b4]@7 ~ [a4,c5]@3 ~@7, ~ b4@2 ~@29]/2", AG: "~@6 a4 ~ a4@4 a4 ~ a4 ~",
AH: "[b4@4 b4 ~ b4 ~ b4@2 c5 ~ c5@6 ~@4 g4@2 a4@4 a4 ~ a4 ~]/2", AI: "b4 ~ b4 ~ b4 ~ c5@9 ~",
AJ: "~@6 a4 ~ a4@3 ~ a4 ~ b4@2", AK: "~@2 b4 ~ b4 ~ b4 ~ b4 ~ c5@2 c5@4", AL: "~@6 a4 ~ a4@3 ~ a4 ~ b4 ~",
AM: "~@6 a4 ~ a4@3 ~ a4 ~ a4 ~", AN: "[b4 ~ b4 ~ b4 ~ b4!2 ~ b4 c5 ~@2 c5@5 ~@14]/2", AO: "c5@2 b4@3 ~ b4@4 c5@3 ~@3",
AP: "~@6 a4!2", AQ: "b4!3 c5@2 ~@3", AR: "~@13 a4 a4@2", AS: "b4@2 ~ b4 ~ b4 ~@2 c5@2 ~@6",
AT: "b4@2 b4@3 ~ c5@6 ~@4",
})).s("gm_lead_4_chiff").gain(0.56).pan(0.7)
// other · string ensemble 1
const string_ensemble_1 = note(`<
~@8 A@2 ~@2 B@2 ~ C D E F@2 G H I@2 J K L@3 M@2 ~@2 N@2 ~@14 O@2 ~@2 P@3 ~ Q R S@2 T U V W X Y Z@2 AA@2 AB AC AD@3 A@2
~@2 AE@3 ~@45 AF AG@2 ~ AF AH@2 ~ AI AJ@2 AK AL AM AN AM AO AP@2 AQ AR AS AT AU AR AV ~@19
>`.pickRestart({
A: "[c4@9 ~ b3@2 ~@2 a3@7 ~ g3@7 ~ g3@2]/2", B: "[c4@8 ~@2 b3@2 ~@2 a3@7 ~ g3@7 ~ g3@2]/2", C: "~@14 g3 ~",
D: "a3@3 ~ a3@2 a3@2 g3@3 ~ d3@2 e3@2", E: "~@2 g3@3 ~@5 c3 ~ c3 ~ c3 ~",
F: "[a3@5 ~ a3 ~ b3@2 b3 ~ b3 ~ c4@9 ~@9]/2", G: "~@4 c4 b3 ~ b3", H: "~@2 c4@3 ~@11",
I: "[~@4 a3@2 a3@2 b3 ~ b3 ~ b3 ~ c4@6 ~@12]/2", J: "~@4 a3 ~ a3@2 b3@3 ~ b3@2 b3@2", K: "~@2 c4@2 c4@3 ~@9",
L: "[~@4 a3@2 a3 ~ b3@3 ~ b3 ~ c4@33 ~]/3", M: "[c4@10 ~ b3@2 ~@2 a3@6 ~ g3@6 ~@2 g3@2]/2",
N: "[c4@9 ~@2 b3@3 a3@6 ~@2 g3@6 ~@2 g3@2]/2", O: "[c4@10 b3@2 ~@2 a3@7 ~ g3@7 ~ g3@2]/2",
P: "[c4@10 b3@3 ~ a3@7 ~ g3@7 ~ g3@4 ~@14]/3", Q: "~@4 a3 ~ a3 ~ b3@3 ~ b3 ~ b3@2", R: "~@2 c4 ~ c4@4 ~@6 g3 ~",
S: "[a3@3 ~ a3 ~ a3 ~ b3@2 ~@2 b3 ~ c4@6 ~@12]/2", T: "~@5 a3@2 ~ b3@3 ~ b3@2 b3@2", U: "~@2 c4 ~ c4@2 ~@10",
V: "a3@3 ~ a3 ~ a3@2 b3@3 ~ b3 ~ b3@2", W: "~@2 c4@2 c4@3 ~@7 a3 ~", X: "a3@3 ~ a3!2 ~@2 b3@2 b3 ~ b3!2 ~ b3",
Y: "b3 ~ c4 ~ c4@6 ~@6", Z: "[~@4 c4 b3 ~ b3@2 c4@2 ~@5]/2", AA: "[~@4 a3@2 a3 ~ b3 ~ b3 ~ b3 ~ c4@5 ~@13]/2",
AB: "~@4 a3@3 ~ b3@3 ~ b3 ~ b3@2", AC: "~@2 c4 ~ c4@3 ~@9", AD: "[~@4 a3 ~ a3@2 b3 ~ b3 ~ b3 ~ c4@33 ~]/3",
AE: "[c4@9 ~ b3@2 ~@2 a3@6 ~@2 g3@7 ~ g3@4 ~@14]/3", AF: "~ [c4,e4]",
AG: "[~@2 [b3,d4]@2 ~@2 [a3,c4]@7 ~ [g3,b3]@7 ~ [a3,c4]@3 ~@7]/2", // Bm Am G Am
AH: "[~@2 d4@2 ~@2 [a3,c4]@7 ~ [g3,b3]@7 ~ [a3,c4]@3 ~@7, ~ b3@2 ~@29]/2", AI: "~@6 a3 ~ a3@4 a3@2 a3 ~",
AJ: "[b3@4 b3 ~ b3 ~ b3 ~ c4 ~ c4@6 ~@4 g3@2 a3@3 ~ a3 ~ a3@2]/2", AK: "b3 ~ b3 ~ b3 ~ c4@9 ~",
AL: "~@6 a3 ~ a3@4 a3 ~ b3@2", AM: "~@2 b3 ~ b3 ~ b3 ~ b3 ~ c4 ~ c4@4", AN: "~@6 a3 ~ a3@3 ~ a3 ~ b3 ~",
AO: "~@6 a3 ~ a3@3 ~ a3 ~ a3 ~", AP: "[b3 ~ b3 ~ b3 ~ b3!2 ~@2 c4 ~@2 c4@5 ~@14, ~@9 b3@2 ~@21]/2",
AQ: "c4@2 b3@3 ~ b3@4 c4@3 ~@3", AR: "~@6 a3!2", AS: "b3@2 b3@2 b3 ~ c4@4 ~@6", AT: "~@13 a3 a3@2",
AU: "b3@2 ~ b3 ~ b3 ~@2 c4@2 ~@6", AV: "b3 ~ b3@3 ~ c4@6 ~@4",
})).s("gm_string_ensemble_1").gain(0.69)
// other · pad poly
const pad_poly = note(`<
~@8 A@2 ~@2 A@2 ~ B C D E@2 F G H@2 I J K@3 L@2 ~@2 M@2 ~@14 N@3 ~ O@3 ~ P Q R@2 S J T U V W X@2 Y@2 Z AA AB@3 A@2 ~@2
AC@3 ~@45 AD AE@2 ~ AD AF@2 ~ AG AH@2 AI AJ AK AL AK AM AN@2 AO AP AQ AR AS AP AT ~@19
>`.pickRestart({
A: "[c6@9 ~ b5@2 ~@2 a5@7 ~ g5@7 ~ g5@2]/2", B: "~@7 g5", C: "a5@3 ~ a5 ~ a5 ~ g5@4 d5 ~ e5@2",
D: "~@2 g5@2 ~@6 c5 ~ c5 ~ c5 ~", E: "[a5@5 ~ a5 ~ b5 ~ b5 ~ b5@2 c6@9 ~@9]/2", F: "~@4 c6 b5 ~ b5",
G: "~@2 c6@3 ~@11", H: "[~@4 a5 ~ a5 ~ b5 ~ b5 ~ b5 ~ c6@5 ~@13]/2", I: "~@4 a5 ~ a5 ~ b5@3 ~ b5 ~ b5@2",
J: "~@2 c6 ~ c6@3 ~@9", K: "[~@4 a5 ~ a5 ~ b5@3 ~ b5 ~ c6@33 ~]/3", L: "[c6@10 ~ b5@2 ~@2 a5@7 g5@7 ~ g5@2]/2",
M: "[c6@10 ~ b5@2 ~@2 a5@6 ~ g5@7 ~ g5@2]/2", N: "[c6@9 ~ b5@2 ~@2 a5@7 ~ g5@7 ~ g5@4 ~@14]/3",
O: "[c6@10 b5@2 ~@2 a5@7 ~ g5@7 ~ g5@4 ~@14]/3", P: "~@4 a5@2 a5@2 b5@3 ~ b5 ~ b5@2", Q: "~@2 c6 ~ c6@4 ~@6 g5 ~",
R: "[a5@4 a5 ~ a5 ~ b5@3 ~ b5 ~ c6@6 ~@12]/2", S: "~@5 a5 ~@2 b5@3 ~ b5 ~ b5@2",
T: "~ a5@3 a5@2 a5 ~ b5@3 ~ b5 ~ b5@2", U: "~@2 c6 ~ c6@3 ~@7 a5 ~", V: "a5@3 ~ a5 ~ a5 ~ b5 ~ b5 ~ b5 ~ b5!2",
W: "b5 ~ c6 ~ c6@6 ~@6", X: "[~@8 c6@2 b5@3 ~ b5@4 c6@4 ~@10]/2", Y: "[~@4 a5 ~ a5 ~ b5 ~@2 b5!2 ~ c6@4 ~@14]/2",
Z: "~@4 a5@3 ~ b5@3 ~ b5 ~ b5@2", AA: "~@2 c6 ~ c6@2 ~@10", AB: "[~@4 a5 ~ a5 ~ b5 ~ b5 ~ b5 ~ c6@33 ~]/3",
AC: "[~ c6@9 b5@2 ~@2 a5@7 ~ g5@8 g5@4 ~@14]/3", AD: "~ [c6,e6]",
AE: "[~@2 [b5,d6]@2 ~@2 [a5,c6]@7 ~ [g5,b5]@7 ~ [a5,c6]@2 ~@8]/2", // Bm Am G Am
AF: "[~@2 [b5,d6]@2 ~@2 [a5,c6]@7 ~ [g5,b5]@7 ~ [a5,c6]@3 ~@7]/2", AG: "~@6 a5 ~ a5@4 a5 ~ a5 ~",
AH: "[b5@4 ~ b5 ~ b5 b5@2 c6 ~ c6@6 ~@4 g5@2 a5@4 a5 ~ a5 ~]/2", AI: "b5 ~ b5 ~ b5 ~ c6@9 ~",
AJ: "~@6 a5 ~ a5@3 ~ a5 ~ b5@2", AK: "~@2 b5 ~ b5 ~ b5 ~ b5 ~ c6@2 c6@4", AL: "~@6 a5 ~ a5@3 ~ a5 ~ b5 ~",
AM: "~@6 a5 ~ a5@3 ~ a5 ~ a5 ~", AN: "[b5 ~ b5 ~ b5 ~ b5!2 ~ b5 ~ c6 ~ c6@5 ~@14]/2", AO: "c6@2 b5@3 ~ b5@4 c6@3 ~@3",
AP: "~@6 a5!2", AQ: "b5!3 c6@2 ~@3", AR: "~@13 a5 a5@2", AS: "b5@2 ~ b5 ~ b5 ~@2 c6@2 ~@6",
AT: "b5@2 b5@3 ~ c6@6 ~@4",
})).s("gm_pad_poly").gain(0.4).pan(0.4)
// other · lead 2 sawtooth
const lead_2_sawtooth = note(`<
~@8 A@2 ~@2 B@2 ~@5 C D E F G D H I@3 J@2 ~@2 K@2 ~@14 L@2 ~@2 M@2 ~@5 N O G P Q R H S T F H D H U@3 V@2 ~@2 W@2 ~@63
X Y Z AA AB AC AD AE X AF ~@18
>`.pickRestart({
A: "[[e4,e5]@9 ~ d5@2 ~@2 [c4,c5]@7 ~ [b3,b4]@7 ~ [c4,g4]@2, ~@10 d4 ~@21]/2", // E C B C5
B: "[[e4,e5]@9 ~ d5 ~@3 [c4,c5]@7 ~ b4@7 ~ [c4,g4]@2, ~@9 d4@2 ~@10 b3@7 ~@4]/2", // E C C5
C: "~@4 [a3,a4]@2 a4 ~ [b3,b4]@4 [b3,b4] ~ [b3,b4]@2", D: "~ [c4,c5] ~@6",
E: "~@4 [a3,a4]@3 ~ [b3,b4]@3 ~ [b3,b4] ~ [b3,b4]@2", F: "~@2 [c4,c5]@3 ~@11",
G: "~@4 a3@2 [a3,a4] ~ [b3,b4]@3 ~ [b3,b4] ~ [b3,b4]@2, ~@4 a4 ~@11", // A B
H: "~@4 a3@2 a4 ~ [b3,b4]@3 ~ [b3,b4] ~ [b3,b4]@2, ~@4 a4 ~@11", // B
I: "[~@2 c4@2 ~@11 e5@29 ~@4, ~ c5@2 ~@11 c4@29 ~@5]/3",
J: "[~ e5@8 ~ [d4,d5]@2 ~@2 [c4,c5]@7 ~ [b3,b4]@7 ~ g4@2, e4@9 ~@21 c4 ~]/2", // D C B
K: "[[e4,e5]@9 ~ [d4,d5] ~@3 [c4,c5]@6 ~@2 [b3,b4]@7 ~ [c4,g4]@2]/2", // E D C B C5
L: "[[e4,e5]@9 d5 d4@2 ~@2 [c4,c5]@7 ~ [b3,b4]@7 ~ c4@2, ~@30 c5 ~]/2", // E C B
M: "[[e4,e5]@9 ~ d4@2 ~@2 [c4,c5]@6 ~@2 [b3,b4]@7 ~ c5@2, ~@10 d5 ~@18 c4@2 ~]/2", // E C B
N: "~@4 a4@2 a3 ~ [b3,b4]@3 ~ [b3,b4] ~ [b3,b4]@2, ~@4 a3 ~@11", O: "~@2 [c4,c5]@2 c5 ~@11",
P: "~@2 c4@2 c5 ~@11, ~@2 c5 ~@13", Q: "~@3 a4@2 ~ a3 a4 [b3,b4]@3 ~ [b3,b4] ~ [b3,b4]@2, ~@3 a3 ~@12",
R: "~ c4 c5 ~@5, ~@2 c5 ~@13", S: "~ [c4,c5]@3 ~@4", T: "~@5 a4!2 ~ [b3,b4]@3 ~ [b3,b4] ~ [b3,b4]@2, ~@4 a3@3 ~@9",
U: "[~@2 [c4,c5]@2 ~@28 c4@13 ~@3, ~@7 e5@17]/3", // C
V: "[~@2 e5@6 ~@2 d5@2 ~@2 [c4,c5]@7 ~ b4@6 ~@2 [c4,c5]@2, ~@10 d4 ~@10 b3@7 ~@4]/2", // C
W: "[[e4,e5]@9 ~ [d4,d5] ~@3 [c4,c5]@7 ~ [b3,b4]@7 ~ [c4,c5]@2]/2", X: "~@12 a4@3 ~", Y: "b4@4 b4 ~ b4@3 ~ c5@6",
Z: "~@13 a4 ~ a4", AA: "b4 ~ b4 ~ b4 ~ c5@2 ~@8", AB: "~@12 a4@2 a4 ~", AC: "b4 ~ b4 ~ b4 ~ b4!2 ~ b4 c5 ~ c5@4",
AD: "~@12 a4 ~ a4 ~", AE: "b4@3 ~ b4 ~ b4@3 c5@3 ~@4", AF: "b4@3 ~ b4 ~ b4@3 ~ c5@6",
})).s("gm_lead_2_sawtooth").gain(0.34).pan(0.7)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
A@4 B@12 C@2 D E F@3 B@16 G@2 A@4 B@12 H I J K L K L K L K M@8 N O@3 P@6 Q G@2 ~@32 R@8 S@8 T U V W X Y X Y X Y Z@8
AA@7 AB@7 AC@5
>`.pickRestart({
A: "[~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3, a2@3 g3@2 ~@2 g3@2 ~@2 g3@3 ~ g3@2 ~@2 g3@3 ~ g3@3 ~ g3@2 ~@3, ~@4 g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~]/4",
B: "[~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3, a2@3 g3@3 ~ g3@3 ~ g3@2 ~@3, ~@4 g2@3 ~ f2@3 ~ g2@3 ~]/2",
C: "[[f2,c3]@4 [g2,d3]@3 [a2,e3]@9]/2", D: "[f2,c3] [e2,b2]", E: "[a2,e3] [g2,d3]",
F: "[~ e3 a3 ~@2 d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3, f2@3 g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~ g3@2 ~@3, ~@4 g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~]/3",
G: "[~ c3 a3@16 ~@14, a2 ~, ~ c4@16 ~@15]/2", H: "[f2,c3]!4 [g2,d3]!3 [a2,e3]", I: "[a2,e3]!8",
J: "[f2,c3]!4 [e2,b2]!4", K: "[a2,e3]!4 [g2,d3]!4", L: "[f2,c3]!4 [g2,d3]!4",
M: "[~ d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 g3, f2@3 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@3, ~@4 g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~]/8",
N: "~ d3 e3 ~@2 d3 e3 g3, f2@3 g3@2 ~@3, ~@4 g2@3 ~",
O: "[~ e3 a3 ~@2 d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3, a2@3 g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~ g3@2 ~@3, ~@4 g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~]/3",
P: "[~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3, f2@3 g3@3 ~ g3@3 ~ g3@2 ~@3, ~@4 g2@3 ~ a2@3 ~ g2@3 ~]/2",
Q: "~ e3 a3 ~@2 d3 e3 g3, f2@3 g3@3 ~@2, ~@4 g2@3 ~",
R: "[~@5 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 g3, ~@4 a2@3 g3@2 ~@2 g3@2 ~@2 g3@3 ~ g3@2 ~@2 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~@2, ~@8 g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~]/8",
S: "[~ d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 g3, g2@3 ~ a2@3 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~@2, ~@8 g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~]/8",
T: "~ d3 e3 g3 [f2,c3]!4, g2@3 ~@5", U: "[g2,d3]!3 [a2,e3]!5", V: "[a2,e3]!4 [f2,c3]!4", W: "[e2,b2]!4 [a2,e3]!4",
X: "[g2,d3]!4 [f2,c3]!4", Y: "[g2,d3]!4 [a2,e3]!4",
Z: "[[g2,d3]!4 ~ d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@3 a3 g3, ~@4 f2@3 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@3, ~@8 g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~]/8", // G5
AA: "[~ d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 g3, g2@3 g3@2 ~@2 g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~@2, ~@4 f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~]/7",
AB: "[~ d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 g3, g2@3 ~ a2@3 g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~@2, ~@8 g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~]/7",
AC: "[~ d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 g3@3 ~@2, g2@3 ~ f2@3 g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~@6, ~@8 g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~@5]/5",
})).s("gm_acoustic_guitar_steel").gain(0.35).pan(0.7)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
~@2 A@14 B@2 C D E@3 A@16 ~@4 A@14 ~@10 F@8 G H@3 I@6 J ~@2 K L M N O P N Q R K S M T L U N V P W Q X K Y M Z P W Q AA
P W Q AB ~ AC@8 AD@7 ~@9 AE@8 AF@7 AG@7 AH@5
>`.pickRestart({
A: "[~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3, a2@3 g3@3 ~ g3@3 ~ g3@2 ~@3, ~@4 g2@3 ~ f2@3 ~ g2@3 ~]/2",
B: "[[f2,c3]@4 [g2,d3]@3 [a2,e3]@9]/2", C: "[f2,c3] [e2,b2]", D: "[a2,e3] [g2,d3]",
E: "[~ e3 a3 ~@2 d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3, f2@3 g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~ g3@2 ~@3, ~@4 g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~]/3",
F: "[~ d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 g3, f2@3 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@3, ~@4 g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~]/8",
G: "~ d3 e3 ~@2 d3 e3 g3, f2@3 g3@2 ~@3, ~@4 g2@3 ~",
H: "[~ e3 a3 ~@2 d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3, a2@3 g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~ g3@2 ~@3, ~@4 g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~]/3",
I: "[~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3, f2@3 g3@3 ~ g3@3 ~ g3@2 ~@3, ~@4 g2@3 ~ a2@3 ~ g2@3 ~]/2",
J: "~ e3 a3 ~@2 d3 e3 g3, f2@3 g3@3 ~@2, ~@4 g2@3 ~", K: "f4 g#4 c5 f4 g#4 c5 f4 g#4", L: "c5 f4 g#4 c5 f4 g#4 c5 f4",
M: "g4 b4 f4 g4 b4 f4 g4 b4", N: "f4 g4 b4 f4 g4 b4 f4 g4", O: "b4 f4 g#4 c5 f4 g#4 c5 f4",
P: "g#4 c5 f4 g#4 c5 f4 g#4 c5", Q: "b4 f4 g4 b4 f4 g4 b4 f4", R: "g4 b4 f4 g#4 c5 f4 g#4 c5",
S: "c5 f4 g4 b4 f4 g4 b4 f4", T: "f4 g4 b4 f4 g#4 c5 f4 g#4", U: "g#4 c5 f4 g4 b4 f4 g4 b4",
V: "b4 f4 g4 b4 f4 g#4 c5 f4", W: "f4 g#4 c5 f4 g4 b4 f4 g4", X: "g4 b4 f4 g4 b4 f4 g#4 c5",
Y: "c5 f4 g#4 c5 f4 g4 b4 f4", Z: "f4 g4 b4 f4!2 g#4 c5 f4", AA: "g4 b4 f4 g4 f4 g#4 c5 f4", AB: "g4 b4 ~@6",
AC: "[~@5 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 g3, ~@4 a2@3 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~@2, ~@8 g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~]/8",
AD: "[~ d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~@4, g2@3 ~ a2@3 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~ g3@2 ~@7, ~@8 g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~@5]/7",
AE: "[~@5 d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 ~@3 a3 g3, ~@4 f2@3 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@2 g3@2 ~@3, ~@8 g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~]/8",
AF: "[~ d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 g3, g2@3 g3@2 ~@2 g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~@2, ~@4 f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~]/7",
AG: "[~ d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 d3 e3 g3, g2@3 ~ a2@3 g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~ g3@3 ~@2, ~@8 g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~]/7",
AH: "[~ d3 e3 g3 ~ e3 a3 ~@2 d3 e3 ~@2 e3 a3 ~@2 d3 e3 ~@2 d3 e3 ~@2 d3 e3 g3 ~ e3 a3 ~@2 d3 e3 g3@3 ~@2, g2@3 ~ f2@3 g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~ g3@2 ~@6 g3@3 ~@6, ~@8 g2@3 ~ a2@3 ~ g2@3 ~ f2@3 ~ g2@3 ~ a2@3 ~ g2@3 ~@5]/5",
})).s("gm_electric_guitar_clean").gain(0.48)
// bass · electric bass pick
const bass = note(`<
~@3 A B C D C E C E C F G H C I@2 J K L M N M N M N M N M N M N M N M N M N O@3 ~@2 A B C D C E C E C F G H C P@2 J K
Q K Q K Q K Q K Q K Q K Q K Q M L R L R L R L R L O@3 ~@7 S T@2 U@2 T@2 V@3 W@2 X@2 W@2 Y@6 Z@4 ~@2 AA AB AC AD AE AF
AE AF AE AG AC AH AI AJ AK AL AM AN AM AN AM AN AM AN AM AN AM AN AM AN AO AP AQ AR AQ AR AQ AR AQ AR AQ AR AQ AR AQ
AR AQ AR AS
>`.pickRestart({
A: "~@7 a2", B: "a1@2 ~ a1 g1@2 ~@2", C: "f1@2 ~ f1 g1@2 c2 d2", D: "a1@2 ~ a1 g1@2 ~ g1", E: "a1@2 e2 g2 g1@2 d2 e2",
F: "a1@2 e2 g2 g1@2 c2 d2", G: "f1@2 c2 f1 g1@2 c2 d2", H: "a1@2 ~ a1 g1@2 c2 d2",
I: "[f1@2 f1!2 g1@3 a1@4 c1 e2 g2 a2@2]/2", J: "f1@2 f1!2 e1@2 e1!2", K: "a1!4 g1!4", L: "f1@2 f1!2 g1@2 g1!2",
M: "a1@2 a1!2 g1@2 g1!2", N: "f1@2 f1!2 g1@2 c2 d2", O: "[a1@5 ~]/3", P: "[f1@2 f1!2 g1@3 a1@4 a1!5]/2",
Q: "f1!4 g1!4", R: "a1@2 a1!2 g1@2 c2 d2", S: "~@2 f1@3 g1@3", T: "[g#1@3 g2@3 f2@4 g1@3 b1@3]/2",
U: "[d2@3 g#2@3 g2@4 f1@3 g1@3]/2", V: "[d2 g#2 g2@2 f1 g1 g#1 g2]/3", W: "[f2@4 g1@3 b1@3 d2@3 g#2@3]/2",
X: "[g2@4 f1@3 g1@3 g#1@3 g2@3]/2", Y: "[g2 [f1,f2]@4 [g1,g2]@4 [f1,f2]@3]/6", Z: "[~ [g1,g2]@6 ~]/4",
AA: "~@3 a2 a1!2 ~ a1", AB: "g1!2 ~@2 f1!2 ~ f1", AC: "g1!2 c2 d2 a1!2 ~ a1", AD: "g1!2 ~ g1 f1!2 ~ f1",
AE: "g1!2 c2 d2 a1!2 e2 g2", AF: "g1!2 d2 e2 f1!2 ~ f1", AG: "g1!2 c2 d2 f1!2 c2 f1", AH: "g1!2 c2 d2 f1!2 ~ f1",
AI: "g1!2 c2 d2 f1@2 f1!2", AJ: "g1@3 a1@4 a0", AK: "e2 g2 a2 g2 f1@2 f1!2", AL: "e1@2 e1!2 a1!4", AM: "g1!4 f1!4",
AN: "g1!4 a1!4", AO: "g1!4 f1@2 f1!2", AP: "g1@2 g1!2 a1@2 a1 b1", AQ: "e2!2 d2@2 f1@2 f1!2",
AR: "g1@2 c2 d2 a1@2 a1 b1", AS: "e2!2 d2@2 ~@4",
})).s("gm_electric_bass_pick").gain(0.57)
// chords · overdriven guitar
const overdriven_guitar = note(`<
~@27 A B@3 C@4 D@4 ~@16 E F G@2 H I J I J I J I K L K L K L K L K ~@2 M@3 ~ N O@2 ~@11 P Q@2 R@2 S@2 T@3 U@2 V@2 U@2
W@6 X@4 ~@14 Y Z@2 AA AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AC
AD
>`.pickRestart({
A: "~ g5 f5 e5@3 ~ e5", B: "[e5@2 d5 c5 b4 g4 e4 a4@17]/3", C: "[~ a4 b4 c5@2 b4 a4 d5@3 d5 c5 b4 g4 e4 a4@17]/4",
D: "[~ a4 b4 b4@3 d5 c5@2 b4@4 e4 b4 a4@17]/4", E: "~ [e4,a4]@2 ~",
F: "[a3,e4]@2 [e3,a3] ~@2 e3 d3 [g2,e3], ~@3 g3@4 ~, ~@3 d3@3 ~@2", G: "[[f2,c3]@4 [g2,d3]@3 [a2,e3]@9]/2",
H: "[f2,c3] [e2,b2]", I: "[a2,e3] [g2,d3]", J: "[f2,c3] [g2,d3]", K: "[f2,c3] ~ [g2,d3] ~", L: "[a2,e3] ~ [g2,d3] ~",
M: "[~@2 e5 b4@3 a4@5 g4!2 a4 a4@10]/3", N: "~@2 a4 b4 b4@3 b4", O: "[a4 g4@2 a4@2 b4@2 a4@9]/2", P: "~@2 f1@3 g1@3",
Q: "[g#1@3 g1@3 f1@4 g1@3 b1@3]/2", R: "[d2@3 g#2@3 g2@4 f1@3 g1@3]/2", S: "[g#1@3 g2@3 f2@4 g1@3 b1@3]/2",
T: "[d2 g#2 g2@2 f1 g1 g#1 g2]/3", U: "[f2@4 g1@3 b1@3 d2@3 g#2@3]/2", V: "[g2@4 f1@3 g1@3 g#1@3 g2@3]/2",
// … 115 more lines
More by Blue Oyster Cult
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.