0:00/0:00
// Muscle of Love — Alice Cooper
// 141 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 140 bars on a 24-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 31, guitar program 30.
setcpm(141/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
const overdriven_guitar = note(`<
A@3 B C D E F@3 G H@2 I J K L M N O P Q R S T U V@6 W@2 X Y Z@2 AA@3 AB AC AD AE@3 AF AG@3 AH AI@2 AJ AK@5 AL@8 AM@5
AN AO@2 AP AQ@2 AR AS ~ AT AU@2 AV@3 AW AX AY AZ BA BB BC BD BE BF AY AZ BA BB BC BD BE BF AY AZ BA BB BC BD BE BF AY
AZ BA BB BC BD BE BF AY AZ BA BB BC BD BE BF AY AZ BA BB BC BD BG BH BI BJ
>`.pickRestart({
A: "[~@14 a3@6 f#3@2 b2@4 ~ b3@2 ~@2 b3@3 ~ f#3@2 a3@2 b3@2 a3 ~ f#3@2 d3@2 f#3@2 d3@2 d3@4 b2@4 b3@2 ~@2 b3@2 ~ a3 ~ f#3@2 ~@2]/3",
B: "[d3,a3,d4]@7 ~ [e3,b3,e4]@6 ~@2 b2@4 b3@2 ~@2", C: "b3@2 a3@2 f#3@2 ~ a3@2 b3@2 a3@2 f#3@2 d3@2 f#3@2 d3@2 d3@3",
D: "~ b2@4 b3@2 ~@2 b3@4 f#3@2 ~@2 [d3,a3,d4]@7", E: "~@2 [e3,b3,e4]@6 ~@2 b2@4 b3@2 ~@2 b3@2 a3 ~ f#3@2",
F: "[a3@2 b3@2 a3@2 f#3@2 d3@2 f#3@2 d3@2 d3@4 ~ b2@4 b3@2 ~@2 b3@4 f#3@2 ~@3 d4@7 ~ [e3,b3,e4]@7 ~ [c#3,f#3]@4 [c#3,f#3]@4 ~@12, ~@35 [d3,a3]@8 ~@9 f#2@8 ~@12]/3", // E5 F#5 D5
G: "~@4 [c#3,f#3]!2, ~@2 f#2", H: "[~@18 f#2@2 a2@6 ~ [b2,f#3,b3]@4 ~ b2@4 ~@12, ~@31 f#3@5 ~@12]/2",
I: "~@15 [b2,f#3,b3]@4 [b2,f#3,b3]@4 ~", J: "~@17 b2@2 a2@5", K: "~@2 [c#3,f#3]@4 ~ [c#3,f#3]@4 ~@13, ~ f#2@4 ~@7",
L: "~@7 [c#3,f#3]@2 [c#3,f#3]@2 ~, ~@7 f#2@4 ~", M: "~@17 f#2@2 a2@5", N: "~ [b2,f#3,b3]@2 [b2,f#3]@2 ~@7",
O: "~@13 [b2,f#3,b3]@4 ~ [b2,f#3,b3]@4 ~@2", P: "~@8 b2 a2@3", Q: "~ [c#3,f#3]@4 [c#3,f#3]@4 ~@15, ~ f#2@8 ~@15",
R: "~@13 [c#3,f#3]@4 [c#3,f#3]@4 ~@3, ~@13 f#2@8 ~@3", S: "~@15 f#2@2 a2@6 ~", T: "[b2,f#3,b3] [b2,f#3] ~@4",
U: "~@3 [b2,f#3,b3]!2 ~", // B5
V: "[~@14 b2@2 a2@6 ~@2 c3@15 ~@2 [d3,a3,d4]@15 ~@2 [e3,b3,e4]@32 ~@5 [g2,g3]@16 [g#2,a2,g#3,a3] [a2,a3]@16 ~@2 [c#3,f#3]@4 ~ [c#3,f#3]@4 ~@5, ~@23 [g3,c4]@15 ~@56 d3@16 ~@20 f#2@8 ~@6]/6", // D5 E5 G Amaj7 A F#5 C5
W: "[~@11 [c#3,f#3]@2 [c#3,f#3]@2 ~@9, ~@11 f#2@4 ~@9]/2", // F#5
X: "~ f#2@2 a2@6 ~ [f#3,b3]@4 [b2,f#3]@4 ~@6, ~@9 b2@4 ~@11", Y: "~@7 [b2,f#3,b3]",
Z: "[~@2 [b2,b3]@4 ~@17 b2@2 ~ a2@6 ~ [c#3,f#3]@4 [c#3,f#3]@4 ~@7, ~ f#3@4 ~@28 f#2@8 ~@7]/2", // B F#5
AA: "[~@20 [c#3,f#3]@4 ~ f#3@3 ~@19 f#2@2 a2@6 ~ [b2,f#3,b3]@4 [b2,f#3]@4 ~@8, ~@5 f#2@2 ~@11, ~@6 c#3 ~@11]/3", // F#5 B5
AB: "~@5 [b2,f#3,b3]", AC: "[b2,f#3,b3]@2 ~@9 b2", AD: "a2@6 ~ [c3,g3,c4]@15 ~@2",
AE: "[~ [d3,a3,d4]@15 ~@2 [e3,b3,e4]@32 ~@4 [g2,d3,g3]@16 ~ [g#2,a2,g#3,a3]]/3", AF: "[a2,a3]@8 ~ b2@2 b3",
AG: "[~@2 b3@3 ~ f#3@2 a3@2 b3@2 ~ a3 f#3@2 d3@2 f#3@2 ~ d3@2 d3@3 b2@4 ~ b3@2 ~@2 b3@2 a3 ~ f#3@2 ~@2 [d3,a3,d4]@7 ~ [e3,b3,e4]@6 ~@2 b2@4 ~ b3@2 ~@2 b3@2 a3@2]/3", // D5 E5
AH: "f#3 a3 b3 a3 f#3 d3 f#3 d3 d3@2 b2@2",
AI: "[b3@2 ~@2 b3@4 f#3@2 ~@3 d4@7 ~ [e3,b3,e4]@6 ~@2 b2@5 b3@2 ~@2 b3@2 a3 f#3@2 a3@2 ~ b3@2, ~@12 [d3,a3]@7 ~@29]/2", // E5 D5
AJ: "a3 f#3 d3 f#3 d3 d3@2 b2@2 b3 ~ b3",
AK: "[~@2 f#3@2 ~@3 [a3,d4]@7 ~ [e3,b3,e4]@7 ~ [f#2,c#3,f#3]@4 [f#2,c#3,f#3] ~ [f#2,c#3,f#3]@2 [f#2,c#3]@2 c#3@2 c#3@4 ~@4 f#3 ~ f#2@2 [c#3,f#3]@4 ~@2 c#3@2 [c#3,f#3] ~@3 [c#3,f#3] f#3@3 c#3 f#3@2 ~ f#3 ~ f#2 ~ [c#3,f#3]@3 ~ f#3 [c#3,f#3]@2 ~ f#2 [f#2,c#3,f#3]@2 [c#3,f#3]@4 [c#3,f#3]@2 [c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 c#3@4 c#3@2 ~ f#2 [f#2,c#3,f#3]@2 [c#3,f#3]@2 [c#3,f#3]@2 [c#3,f#3]@2 [c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 ~ f#2, ~@6 d3@8 ~@17 f#3 ~ f#3@6 [c#3,f#3]@2 c#3@6 ~@4 [c#3,f#3]@2 ~@3 [c#3,f#3]@2 ~@2 c#3@2 ~@2 c#3@4 [c#3,f#3]@2 ~@4 c#3@2 ~@2 [c#3,f#3]@2 ~@20 [c#3,f#3]@2 ~@16 [c#3,f#3]@2, ~@35 f#2@10 ~@2 f#2@10 f#2@6 f#2@3 f#2@2 ~@2 f#2@8 ~@4 f#2@8 ~@4 [f#2,f#3]@6 ~@4 f#2@4 f#2@4 ~@8, ~@20 f#3 ~ f#3 ~@3 f#3 ~@33]/5", // D5 E5 F#5 F#
AL: "[~@3 f#2 [f#2,c#3,f#3]@2 [f#2,c#3]@2 c#3@2 c#3@4 [c#3,f#3]@2 f#3@2 f#3@2 [f#2,f#3]@2 [c#3,f#3]@4 [c#3,f#3]@2 [c#3,f#3]@2 [c#3,f#3]@2 [c#3,f#3]@2 [c#3,f#3]@2 c#3@2 c#3 ~ f#3@2 [f#2,f#3]@2 [f#2,c#3,f#3]@2 [c#3,f#3]@4 [c#3,f#3]@2 [c#3,f#3]@2 [f#2,c#3,f#3] ~ [f#2,c#3]@2 [c#3,f#3]@4 ~@2 c#3 ~ f#3 ~ f#2 ~@5 c#3@2 [f#2,c#3,f#3]@2 ~@2 c#3@2 ~@2 c#3@2 [c#3,f#3] ~ f#2@2 [f#2,c#3,f#3] ~ f#2@2 [f#2,c#3,f#3]@4 [f#2,c#3,f#3] ~ [f#2,c#3] [f#2,c#3]@2 c#3@2 c#3@4 [c#3,f#3]@2 f#3@2 f#3@2 [f#2,f#3]@2 [c#3,f#3]@4 [c#3,f#3]@2 [c#3,f#3]@2 [c#3,f#3]@2 [c#3,f#3]@2 [c#3,f#3]@2 c#3@2 c#3 ~ f#3@2 [f#2,f#3]@2 [f#2,c#3,f#3]@2 [c#3,f#3]@4 [c#3,f#3]@2 [c#3,f#3]@2 ~ f#2 [f#2,c#3,f#3]@2 [c#3,f#3]@4 [c#3,f#3]@2 [c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 c#3@4 c#3@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [c#3,f#3]@2 [c#3,f#3]@2 [c#3,f#3]@2 [c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 c3@3, ~@2 [c#3,f#3]@2 ~@2 f#3 ~ f#3@6 ~@2 c#3@6 ~@14 f#3@4 c#3@4 ~@11 f#3@2 ~@5 [c#3,f#3]@2 ~@3 [c#3,f#3]@2 c#3@4 ~@9 [c#3,f#3]@2 ~@3 [c#3,f#3]@2 ~@2 [c#3,f#3]@2 ~@18 c#3@6 ~@18 c#3@4 ~@10 [c#3,f#3]@2 ~@41, ~@10 f#2@10 ~@2 f#2@10 f#2@6 f#2@4 ~@4 f#2@8 ~@4 f#2@7 [f#2,c#3]@2 ~@3 [f#2,f#3]@6 ~@2 [f#2,c#3,f#3]@2 f#2@4 f#2@4 ~@17 f#2@10 ~@2 f#2@10 f#2@6 f#2@4 ~@4 f#2@8 ~@4 f#2@8 ~@4 [f#2,f#3]@6 ~@4 f#2@4 f#2@4 ~@9, ~@63 f#3@2 ~@14 f#3@2 ~@2 f#3@2 ~@14 f#3@2 f#3 ~ f#3@6 ~@22 f#3@4 ~@57]/8", // F#5 F# F#5 F# F#5 F# F#5 F# …
AM: "[~@3 e3@6 f3@6 g3@6 d3@5 f#3@6 g3@6 ~ a3@5 e3@6 g#3@6 a3@6 b3@6 d4@6 e4@6 g#4@6 a#4@5 ~ [c#3,f#3]@4 ~ [c#3,f#3]@4 ~@19, ~@23 f#2@2 ~@5]/5", // F#5
AN: "~@2 [c#3,f#3]!2 ~@2, ~ f#2 ~", AO: "[~@10 f#2@2 a2@6 ~ [b2,f#3,b3]@4 [b2,f#3]@4 ~@21]/2",
AP: "~@6 [b2,f#3,b3]@4 ~ [b2,b3]@4 ~@9, ~@5 f#3@2 ~@5", // B5 B
AQ: "[~@8 b2@2 ~ a2@6 [c#3,f#3]@4 ~ [c#3,f#3]@4 ~@22, ~@17 f#2@8 ~@23]/2", // F#5
AR: "~@5 [c#3,f#3]@4 [c#3,f#3]@4 ~@11, ~@5 f#2@8 ~@11", AS: "~@7 f#2@2 a2@6 ~ [b2,f#3,b3]@4 [b2,f#3]@4",
AT: "~@3 [b2,f#3,b3]@4 ~ [b2,b3]@4 ~@12, ~@7 f#3@4 ~@13", // B5 B
AU: "[~@5 b2@2 ~ a2@6 ~ c3@15 ~@2 [d3,a3,d4]@15 ~, ~@14 [g3,c4]@15 ~@19]/2", // D5 C5
AV: "[~ [e3,b3,e4]@31 ~@5 [g2,d3,g3]@16 [g#2,g#3] [a2,a3]@16 ~@2]/3", // E5 G5 G# A
AW: "[c#3,f#3]@4 [c#3,f#3]@2 [c#3,f#3]@2 ~ f#2 [f#2,c#3,f#3]@2 [c#3,f#3]@4 [c#3,f#3]@2 [c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2, f#2@4 [c#3,f#3] ~ f#2@4 ~@2", // F#5
AX: "c#3@2 c#3 [f#2,c#3,f#3]!2 [c#3,f#3]!4 [f#2,c#3,f#3]!3, [f#2,f#3]@3 ~@2 f#2@2 f#2@2 ~@3", AY: "c3 e3 f3 g3",
AZ: "d3 f#3 g3 a3", BA: "e3 g#3 a3 b3", BB: "d4@6 e4@6 g#4@6 a#4@5 ~", BC: "g2 b2 c3 d3", BD: "a2 c#3 d3 e3",
BE: "b2 d#3 e3 f#3", BF: "a3@6 b3@6 d#4@6 f4@5 ~", BG: "b2@4 b3@2 ~@2 b3@3 ~ f#3@2 a3@2 b3@2 ~ a3 f#3@2 d3@2",
BH: "f#3@2 ~ d3 d3@4 b2@4 a2@4 ~ f#2@4 e2@3", BI: "~@2 [d3,a3,d4]@8 ~ [e3,b3,e4]@7 ~@3 f#3@2 ~, ~@20 [b2,b3]@3 ~",
BJ: "~ b3@4 ~@19, [b2,f#3] ~@5", // B5
})).s("gm_overdriven_guitar").gain(0.32).pan(0.2)
// bass · fretless bass
const bass = note(`<
~@3 A ~ B C ~ D@2 E F@2 G@3 H I J K L M N O P Q R@2 S T@3 U@2 V W X Y Z AA@2 AB AC AD AE@2 AF AG ~ AH@2 ~ AI@2 ~ AJ@7
AK@5 AL@5 AM AN AO@2 AP AQ@2 AR AS ~ AT AU@3 AV@2 AW AX AY AZ BA BB BC BD BE BF AY AZ BA BB BC BD BE BF BG BH BA BB BC
BD BE BF AY AZ BA BB BC BD BE BF AY AZ BA BB BC BD BE BF AY AZ BA BB BC BD BI ~ BJ BK
>`.pickRestart({
A: "d2@7 ~ e2@8 b1@6 ~@2", B: "~@3 d2", C: "~ e2@4 b1@3 ~@4",
D: "[~@11 [d2,a2]@8 ~ b2@7 ~ f#1@4 f#1@4 ~ f#2@4 f#2@2 f#2@4 ~, ~@19 e2@7 ~@22]/2", // D5
E: "e2@7 d#2@4 d2@4 f#1@4 ~ f#1@4",
F: "[f#2@4 ~ f#2@2 f#2@4 e2@2 e2@3 ~@2 f#1@2 a1@6 ~ b1@4 b1@4 ~ b2@4 b2@2 ~ b2@4 a#2]/2",
G: "[~ a2@4 ~ g#2@4 g2@3 ~ b1@4 ~ b1@4 b2@4 ~ b2@2 b2@4 a#2@2 ~ a2@3 ~ b1@2 a1@7 f#1@4 ~ f#1@4 ~@13]/3",
H: "~@7 f#1@2 f#1@2 ~", I: "~@17 f#1@2 a1@5", J: "~ b1@4 ~ b1@4 ~@14", K: "~@13 b1@4 b1@4 ~@3", L: "~@8 b1 a1@3",
M: "~ f#1@4 f#1@4 ~@15", N: "~@12 f#1@4 ~ f#1@4 ~@3", O: "~@15 f#1@2 a1@6 ~", P: "b1!2 ~@4", Q: "~@12 b1@4 b1@3 ~@5",
R: "[~@23 c2@13 c2@5 d2@6 ~]/2", S: "c2@6 d2@5 e2@4 e2@4 ~ a2@4",
T: "[b2@2 e3@4 ~ d3@4 b2 ~@2 e3@2 d3@2 b2@3 ~ g1@13 ~ g1@4 a1@6 ~ g1@7 a1@4 f#1@4 f#1@4 ~@6]/3",
U: "[~@11 f#1@2 f#1@2 ~@9]/2", V: "f#1@2 ~ a1@6 b1@4 ~ b1@4 ~@6", W: "~@7 b1", X: "~ b1@4 ~@19",
Y: "b1@2 a1@6 ~ f#1@4 f#1@4 ~@7", Z: "~@5 f#1", AA: "[~ f#1@4 ~@18 f#1@2 a1@6 ~ b1@4 b1@4 ~@8]/2", AB: "~@19 b1@4 ~",
AC: "b1 ~@7", AD: "~@7 c2@13 c2@4", AE: "[~ d2@6 ~ c2@6 d2@5 e2@4 e2@4 ~ a2@4 b2@2 e3@4 ~ d3@4 b2 ~ e3@2 ~]/2",
AF: "d3@2 b2@3 ~ g1@13 ~ g1@4", AG: "a1@6 ~ g1@6 a1@5 ~@6", AH: "[~@19 d2@7 ~ e2@8 ~ b1@6 ~@6]/2",
AI: "[~@13 d2@7 ~ e2@8 b1@6 ~@13]/2",
AJ: "[~@7 a2@8 [e2,b2]@7 ~ f1@6 f#1@2 f#1@2 f#1@2 f1@6 f#1@2 f#1 ~ f#1@2 f1@6 f#1@2 f#1@2 f#1@2 f1@4 f#1@2 f#1 ~ f#1@2 f#1@2 f1@5 ~ f#1@2 f#1 f#1@2 ~ f1@5 f#1@2 f#1@2 f#1 ~ f1@5 ~ f#1@2 f#1@2 f#1@2 f3@2 f#3@2 f#3@2 f#3@2 f#3@2 f#3@2 f1@6 f#1@2 f#1 ~ f#1@2 f1@6 f#1@2 f#1 ~ f#1@2 f1@6 f#1@2 f#1@2 f#1@2 f1@4 f#1@2 f#1@2 f#1@2 f#1@2 f1@2, ~@3 d2@4 ~@77]/7", // E5
AK: "[~@4 f#1@2 f#1 ~ f#1@2 f1@6 f#1@2 f#1@2 f#1@2 f1@6 f#1@2 f#1@2 f#1@2 f3@2 f#3@2 f#3@2 f#3@2 f#3 f#3@2 ~ f1@6 f#1@2 f#1@2 f#1@2 f1@6 f#1@2 f#1 f#1@2 f1@6 f#1@2 f#1@2 f#1@2 f1@4 f#1@2 f#1 ~ f#1@2 f#1@2 f1@5 ~ f#1@2 f#1 ~ f#1@2 f1@6 f#1@2 f#1@2 f#1 ~ f1@3]/5",
AL: "[~@3 f#1@2 f#1@2 f#1@2 f3@2 f#3@2 f#3@2 f#3@2 f#3@2 f#3@2 c2@6 e2@6 f2@6 g2@6 d2@6 f#2@6 g2@6 a2@6 e2@5 g#2@6 a2@6 b2@6 d3@6 e3@5 f#3 g#3@6 a#3@6 f#1@4]/5",
AM: "~ f#1@4 ~@19", AN: "~@2 f#1!2 ~@2", AO: "[~@10 f#1@2 a1@6 ~ b1@4 b1@4 ~@21]/2", AP: "~@3 b1@2 b1@2 ~@5",
AQ: "[~@9 b1@2 a1@6 f#1@4 ~ f#1@4 ~@22]/2", AR: "~@5 f#1@4 f#1@4 ~@11", AS: "~@7 f#1@2 a1@6 ~ b1@4 b1@4",
AT: "~@3 b1@4 b1@3 ~@14", AU: "[~@14 c2@13 c2@5 d2@6 ~ c2@6 d2@5 e2@4 e2@4 a2@4 ~ b2@2 e3@4 d3@3]/3",
AV: "[~@2 b2 ~ e3@2 d3@2 b2@3 ~@2 g1@13 g1@4 a1@6 ~ g1@6 ~ a1@4]/2",
AW: "f#1@3 ~ f#1@4 f#1@2 f#1@2 f1@4 f#1@3 ~ f#1@2 f#1@2", AX: "f1@4 f#1@4 f#1@2 f#1 ~ f1@6 f3@4 d3 a#2",
AY: "c2 e2 f2 g2", AZ: "d2@6 f#2@6 g2@5 ~ a2@6", BA: "e2 g#2 a2 b2",
BB: "d3@5 ~ e3@4 f#3 ~ g#3@5 b3@5 ~@2, ~@17 a#3 ~@6", BC: "g1 b1 c2 d2", BD: "a1 c#2 d2 e2", BE: "b1 d#2 e2 f#2",
BF: "a2@6 b2@6 d#3@4 f3 f#3@4 ~@3", BG: "c2 c3 a#2 g2", BH: "d2 d3 c3 a2", BI: "b1 ~@2", BJ: "~@2 d2@9 e2@9 b1@3 ~",
BK: "b1 ~@5",
})).s("gm_fretless_bass").gain(0.44)
// other · lead 1 square
const lead_1_square = note(`<
~@14 A@4 B@2 ~ C D E F G ~ H I@2 J@3 K L M ~ N O P@3 ~ Q R@2 S T ~ U ~@22 V W@4 ~ X@3 Y Z AA@4 AB AC ~ AD AE@3 AF AG
AH ~ AI AJ AK ~ AL@3 ~ AM AN AO@2 AP AQ@2 AR AS@3 ~ AT@4 ~@18
>`.pickRestart({
A: "[~@17 f#4@15 ~@3 f#4@4 e4@2 ~ f#4@10 ~ e4@2 f#4@5 ~@11 a4@3 ~ g#4@2 f#4@14 ~@5]/4",
B: "[~@10 f#4@4 ~ e4 ~ f#4@10 ~ e4@2 e4 ~ f#4@6 ~@10]/2", C: "~@5 f#4@2 ~@2 f#4@2 ~ e4@2 ~@2 f#4@4 ~ e4@2 ~",
D: "f#4@2 ~@2 f#4@3 ~@14 a4@3", E: "~@2 g#4 ~ f#4@11 ~@9", F: "~@4 a4@3 ~@2 f#4@2 ~@2 f#4@4 ~ e4@2 f#4@2 ~@2",
G: "a4 ~@3", H: "~@8 c4@3 ~ c4@4 ~ d4@4 c4@3", I: "[~@2 d4@2 ~@2 e4@37 ~@5]/2",
J: "[~@3 d4@2 ~@2 d4@4 ~ b3@4 d4@2 ~@2 d4@6 ~@10 e4@2 f#4@2 ~@3 f#4@2 ~@2 e4@2 ~ f#4@8 e4@2 ~@2 f#4@3 ~@7]/3",
K: "~@6 a4@3 ~@2 a4@2 f#4@9 ~@2", L: "~@7 f#4 e4 f#4 e4 ~", M: "~ f#4@2 e4@4 ~@9 f#4@4 ~@4",
N: "~@15 f#4 ~ f#4 ~@2 f#4@2 ~@2", O: "f#4@8 e4@2 ~@3 f#4@3 ~@8",
P: "[~@5 a4@3 ~ a4@2 ~ a4@2 ~ f#4@11 ~@10 f#4@3 ~@2 f#4@2 f#4 ~ f#4@2 e4@2 ~@3 e4@2 f#4@4 ~@14]/3",
Q: "~@8 c4 ~ c4@2", R: "[~ d4@4 c4@4 ~ d4@2 ~@2 e4@33 ~]/2", S: "~@11 d5 d5@3 d5@4 b4@4 ~",
T: "d4@4 b3@4 ~ d4@6 ~@3 b3@6", U: "~@5 d4@2 ~", V: "~ f#4@3 ~ f#4@2 ~@2 f#4@3 ~@2 f#4@6 ~ e4@2 ~",
W: "[~ f#4@5 ~@10 a4@2 ~ a4@2 ~@2 f#4@14 ~@10 f#4@2 ~@2 f#4@4 ~ e4@2 ~@2 f#4@3 ~@2 e4 ~ f#4@10 ~@19]/4",
X: "[~@2 f#4@3 ~ e4 ~@2 f#4@10 ~ e4@2 f#4@4 ~@11 a4@2 ~@3 g#4 ~ f#4@14 ~@10 f#4 ~ f#4@2]/3",
Y: "~@3 f#4@2 ~@2 f#4@6 ~@5 a4@3 ~ d4 ~", Z: "e4@7 ~@17",
AA: "[~@23 c4@2 ~@2 c4@4 ~ d4@4 c4@4 ~ d4@3 ~ e4@34 ~@9 d4 d4@2 ~@2 d4@3]/4", AB: "~@2 b3@4 d4@4 ~ b3@2 ~@2 d4@9",
AC: "b3 ~@3", AD: "~ c5@16 ~ c5@3 ~ d5@2", AE: "[~@3 d5@13 ~@2 d5@2 ~ e5@39 ~@12]/3", AF: "~@3 d5@2 ~ d5@3 b4@3",
AG: "d5@5 ~ d5@4 ~@2 d5@12", AH: "b4 ~@2", AI: "c5@8 ~ c5@2 d5", AJ: "~@3 d5@13 ~@2 d5@3 f#5@3",
AK: "~ d5@2 ~ e5@9 ~@11", AL: "[~@6 d5@4 ~@2 d5@6 b4@3 ~ d5@4 ~ d5@11 ~@3 d5@4 b4@5 ~@22]/3", AM: "c5@17 c5@4 ~ d5@2",
AN: "~@3 d5@15 c5@2 ~@2 f#5@2", AO: "[~@3 e5@26 ~@19]/2", AP: "~@4 b4 ~ d5@4 ~@2 d5@6 b4@6",
AQ: "[d5@3 ~ d5@7 ~@7 d5@3 b4@9 ~@18]/2", AR: "~@3 b5@15 a5@4 g5@2", AS: "[e5@23 f#5@4 e5@14 ~ d5@4 b4@17 ~@9]/3",
AT: "[~@6 d5@4 ~@2 d5@6 b4@4 d5@7 ~@7 d5@4 ~@2 d5@4 b4@8 ~@9 b5@5 ~@3 a5@6 ~@4 f#5@7 e5@3 d#5@5]/4",
})).s("gm_lead_1_square").gain(0.4)
// other · overdriven guitar
const overdriven_guitar_2 = note(`<
~@3 A ~ B C ~ D@3 E F@2 G ~@10 H I ~@15 J@2 ~ K L ~@9 M@2 ~ N O P Q R S T U@2 V ~@13 W@2 ~@22 X@2 Y@4 Z@2 AA@2 AB@2
AC@2 AD AE AF AG AH@6 AI AJ@2 AK AL AM@2 AN AO AP
>`.pickRestart({
A: "a3@2 b3 g#3 b3@2 ~ a#3@11 ~@6", B: "~@17 [a3,d4,f#4]@7", C: "~@2 [b3,e4,g#4]@6 ~@2 [f#3,b3,f#4]@5 ~@9",
D: "[~@11 [a3,d4,f#4]@7 ~@2 [b3,e4,g#4]@6 ~@11 b3@5 ~@2 b3@20 ~@8]/3", E: "b3@5 ~@2 b3@17",
F: "[~@11 e4@5 ~@3 e4@15 ~@14]/2", G: "f4@4 d4 ~ b3 ~ e4@3 ~@2 d4@11", H: "~@21 b4@2 a4",
I: "~ f#4@2 f4@2 e4@2 d#4 ~ d4@3 ~ b3 ~ e4@5 ~@4",
J: "[~@2 d4@4 ~ b3@2 d4@2 e4@2 ~@2 d4@2 e4 ~ d4@2 e4 ~ e4@6 b3 ~@18]/2",
K: "~ e4@2 g4@2 a4@2 a4@2 a4@3 ~@6 a4@2 g4@2 a4@2", L: "a4@2 ~ a4@6 ~ f4 ~@13", M: "[b3@2 ~]/2",
N: "~@16 a4 ~ a4@2 a4@2 a#4@2", O: "~@2 b4@3 ~ a4@2 a4@2 b4@2 ~@2 b4@3 ~ a4 ~ a4@2 b4@2",
P: "~ b4@3 ~@4 a4 ~ b4@2 a4@2 f#4@2 a4 a4@2 ~ a4@2 a#4@2", Q: "~@2 b4@3 ~ a4 ~ a4@2 b4@2 ~@2 b4@3 ~ a4 ~ a4 ~ b4@2",
R: "~ b4@3 ~@3 a4@2 b4@3 ~@4 f#5@2 e5 c#5@2 e5@3, ~@7 c#5@2 ~@3",
S: "~ e5@3 ~ c#5 ~ c#5@2 d#5@2 ~@2 e5@3 ~ c#5 ~ c#5@2 e5@2 ~", T: "~ e5@3 ~@3 c#5 ~ e5@2 c5 ~ b4 ~ c#5@3 a4@2 ~ b4@3",
U: "[~ c#5@3 ~@3 c#5@2 f#5 ~@2 c5@2 ~ b4@2 c#5@2 e5@2 b4@2 c#5@2 b4@2 g#4@2 f#4@2 a4@2 f#4@2 a4 ~ b4@11, ~@11 e5@2 ~@35]/2",
V: "~ f#4 ~@22", W: "[~@7 e4@4 ~ a4@2 b4@2 a4@2 b4@2 ~@3 d5@2 ~@2 f5@7 c5 ~@13]/2",
X: "[g4@5 ~ a4@23 ~@7 g4@3 ~ a4@2 g4@3 ~ a4@2]/2",
Y: "[g4@6 ~ e4@3 ~@2 e4@29 ~@6 g4@4 ~@3 e4@3 ~ e4@20 ~@6 g4@4 a4@2 g#4@3 ~ a4@2]/4", Z: "[f#4@11 ~@5]/2",
AA: "[g#4@4 ~@3 g#4@23 ~@6 g4@3 a4@2 ~ g4@3 a4@2 ~]/2", AB: "[g4@5 ~ e4@2 ~ e4@29 ~@10]/2",
AC: "[g4@4 ~@2 e4@4 e4@19 ~@7 g4@3 ~ a4@2 g4@3 a4@2 ~]/2", AD: "a4@5 ~@2 a4@3 ~@2 a4@12", AE: "~@4 a4@5 ~ a4@10 ~@4",
AF: "d5@3 ~@3 d5@17 ~", AG: "d5@2 ~@2 d5@3 ~ b4@2 ~@2 d5@2 ~@2 b4@3 ~ a4@4",
AH: "[~ b4@18 ~@2 a#4@5 ~ g4@3 ~@2 a4@2 f#4@2 e4@5 g4@4 [g4,g#4] ~@6 e4@4 g4@2 ~@3 a4@14 d5@3 ~ a#4@8 g4@5 ~@2 d5@9 ~ b4@2 d5 b4@2 a4@3 b4@3 a4@14 ~@15, ~@45 e4@7 ~@92]/6", // G#maj7
AI: "g4@3 ~ a4@3 ~ b4@2 ~@2 d5@12", AJ: "[~@5 d5@9 ~ b4@2 ~@2 d5@7 b4@2 ~@2 d5@11 ~@7]/2", AK: "~@16 e5@3 ~ g5@2 ~@2",
AL: "~ g#5@4 ~@2 g#5@3 ~@2 g#5@9 g5@3",
AM: "[~@2 e5 g5 ~ e5@3 ~ d5 ~ b4 ~ d5@2 b4 ~ a4 g4@3 ~ e4@4 ~@2 b4@2 ~@2 b4@2 a4@2 f#4@2 a4@2 b4@2 a4 ~ f#4@2 e4@2]/2",
AN: "f#4@2 d#4@2 d4@3 ~ b3@4 ~ a3@4 f#3@4 e3@3", AO: "~@2 [d3,a3]@9 ~ [e3,b3]@7 ~@2 [b2,f#3]@3",
AP: "~ [b2,f#3]@4 ~@19", // B5
})).s("gm_overdriven_guitar").gain(0.44).pan(0.6)
// chords · overdriven guitar
const overdriven_guitar_3 = note("<~@26 A@3 B@3 ~@11 C D@3 E ~@35 F@2 G@3 ~@52>".pickRestart({
A: "[~@23 [g3,c4,e4]@7 [c4,e4]@4 [c4,e4]@2 ~@5 d4@5 f#4 ~ [d4,f#4]@4 [d4,f#4]@2 ~@5 g#4@4 g#4@2 [e4,g#4]@4 ~ [e4,g#4] ~, ~@30 g3@6 ~@5 a3@13 ~@5 b3@12 ~, ~@41 f#4@4 ~@14 e4@6 ~@7]/3", // C D E
B: "[~@2 [b3,e4,g#4]@2 [e4,g#4]@4 ~ [e4,g#4]@2 [e4,g#4]@5 [e4,g#4]@2 ~@5 g4@6 [d4,g4]@4 ~ g4@2 g4@2 g4 ~ [e4,a4]@6 ~ [e4,a4]@4 [e4,a4]@4 ~@17, ~@4 b3@7 b3@7 ~@4 b3@16 ~@34, ~@22 d4@7 ~@5 d4@4 ~@2 c#4@14 ~@18]/3", // E G5 A5
C: "~@7 [g3,c4,e4]@7 [c4,e4]@4 [c4,e4]@2 ~@4, ~@7 g3@3 ~@2", // C
D: "[~ f#4@4 f#4 ~ [d4,f#4]@5 [d4,f#4]@2 ~@5 g#4@4 g#4@2 [e4,g#4]@4 ~ [e4,g#4] ~@3 [b3,e4,g#4]@2 [e4,g#4]@4 ~ [e4,g#4]@2 [e4,g#4]@4 ~ g#4@2 ~@4 [d4,g4]@7 [d4,g4]@4 ~@3 g4@2 g4 ~, ~ a3@13 ~@4 b3@12 ~@6 b3@7 b3@7 ~@4 b3@16 ~@2, ~ d4@6 ~@11 e4@6 ~@23 e4@2 ~@16 g4@2 ~@5, ~@33 d4@2 ~]/3", // D E G5
E: "[e4,a4]@6 ~ [e4,a4]@4 [e4,a4]@4 ~@9, c#4@7 ~@5", // A5
F: "[~@14 [g3,c4,e4]@7 [c4,e4]@4 [c4,e4]@2 ~@5 f#4@4 f#4 ~ [d4,f#4]@4 ~ [d4,f#4]@2 ~@3, ~@21 g3@6 ~@5 a3@13 ~@3, ~@16 d4@3 ~@5]/2", // C D
G: "[~ e4@5 g#4@2 [e4,g#4]@4 [e4,g#4] ~@4 [b3,e4,g#4]@2 [e4,g#4]@4 [e4,g#4]@2 ~ e4@4 [e4,g#4]@2 ~@5 [d4,g4]@7 [d4,g4]@4 g4@2 g4@2 g4 ~@2 [e4,a4]@6 [e4,a4]@4 [e4,a4]@4 ~@3, ~ b3@12 ~@6 b3@7 b3@7 ~@4 b3@16 ~@19, ~ g#4@4 ~@20 g#4@4 ~@19 d4@4 ~@3 c#4@13 ~@4]/3", // E G5 A5
})).s("gm_overdriven_guitar").gain(0.32).pan(0.4)
// bass · fretless bass
const bass_2 = note("<~@15 A@3 B@3 C@3 D@3 ~@4 E@2 F@3 G@8 ~@27 H@8 I@5 ~@56>".pickRestart({
A: "[~@5 [a#1,c#3]@29 ~@7 [a#1,c#3]@31]/3", B: "[~@5 [a#1,c#3]@31 ~@5 [a#1,c#3]@30 ~]/3",
C: "[~@4 [a#1,c#3]@29 ~@6 [a#1,c#3]@31 ~@2]/3", D: "[~@4 [a#1,c#3]@30 ~@5 [a#1,c#3]@29 ~@4]/3",
E: "[~@13 [a#1,c#3]@29 ~@6]/2", F: "[~ [a#1,c#3]@31 ~@5 [a#1,c#3]@31 ~@4]/3",
G: "[~ [a#1,c#3]@30 ~@5 [a#1,c#3]@29 ~@6 [a#1,c#3]@31 ~@6 [a#1,c#3]@30 ~@5 [a#1,c#3]@29 ~@20]/8", // A#m
H: "[~@23 [a#1,c#3]@29 ~@6 [a#1,c#3]@31 ~@6 [a#1,c#3]@30 ~@5 [a#1,c#3]@30 ~@5 [a#1,c#3]@27]/8", // A#m
I: "[~@8 [a#1,c#3]@30 ~@6 [a#1,c#3]@30 ~@5 [a#1,c#3]@29 ~@12]/5", // A#m
})).s("gm_fretless_bass").gain(0.02).pan(0.4)
// other · overdriven guitar
const overdriven_guitar_4 = note("<~@9 A@2 B C@2 D ~@75 E@8 F@8 ~@34>".pickRestart({
A: "[~@13 c#4@5 ~@2 c#4@20 ~@8]/2", B: "c#4@5 ~@2 c#4@17", C: "[~@11 f#4@5 ~@3 f#4@15 ~@14]/2",
D: "f#4@4 ~@4 e4@3 ~@2 d4@11",
E: "[~@4 c3@6 e3@6 f3@6 g3@6 d3@6 f#3@6 g3@6 a3@6 e3@6 g#3@6 a3@6 b3@6 d4@6 e4@6 g#4@6 a#4@5 ~ g2@6 b2@6 c3@6 d3@6 a2@6 c#3@6 d3@6 e3@6 b2@6 d#3@6 e3@6 f#3@6 a3@6 b3@6 d#4@6 f4@2]/8",
F: "[~@4 c3@6 e3@6 f3@6 g3@6 d3@6 f#3@6 g3@6 a3@6 e3@6 g#3@6 a3@6 b3@6 d4@6 e4@6 g#4@6 a#4@5 ~ g2@6 b2@6 c3@6 d3@6 a2@6 c#3@6 d3@6 e3@6 b2@6 d#3@6 e3@6 f#3@6 a3@6 ~@14]/8",
})).s("gm_overdriven_guitar").gain(0.17).pan(0.8)
// other · distortion guitar · C#maj7
const distortion_guitar = note("<[~@19 g#3 g3 [d3,d#3,e3,f3] [c3,c#3] ~] ~@139>")
.s("gm_distortion_guitar").gain(0.45).pan(0)
// drums · kick
const kick = s("bd").struct(`<
~@3 A ~ B C ~@2 D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP ~ AQ AR
~ AS AT ~ AU AV AW AX AY AZ AY AZ AY BA BB BC BD BC BB BE BF AH BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT AO BU BV
BU@3 BW BU@3 BW BU@3 BX BU@3 BW BU@3 BW BU@3 BW BU@3 BY BU@2 BZ BW BU@3 BW BU@2 CA BW BU@3 BW BU@2 ~@2 CB CC
>`.pickRestart({
A: "x!3", B: "~@17 x ~@6", C: "~ x ~@3 x ~@6", D: "~@4 x ~@8 x ~ x ~@3 x ~@4", E: "x ~@3 x ~ x ~@8 x ~@8",
F: "x ~ x ~@4 x ~@3 x ~@4 x ~ x ~@5", G: "~@3 x ~@8 x ~ x ~@4 x ~@3 x", H: "~@3 x ~@2 x ~@8 x ~@7 x",
I: "~@2 x ~@3 x ~ x ~@4 x ~@3 x ~@4 x ~", J: "~@2 x ~@8 x ~ x ~@4 x ~@3 x ~", K: "~@3 x ~@10 x ~@8 x",
L: "~ x ~@3 x ~@4 x ~@3 x ~@9", M: "~ x ~@8 x ~@2 x ~@3 x ~@3 x ~@2", N: "~@2 x ~@10 x ~@8 x ~",
O: "x ~@4 x ~@3 x ~@3 x ~@10", P: "~ x ~@8 x ~ x ~@3 x ~@4 x ~@2", Q: "~ x ~@10 x ~@8 x ~ x",
R: "~@4 x ~@3 x ~@4 x ~@10", S: "x ~@8 x ~ x ~@4 x ~@3 x ~@3", T: "x ~@11 x ~@7 x ~@2 x",
U: "~@3 x ~@6 x ~@3 x ~@4 x ~@3 x", V: "~@8 x ~@8 x ~@6", W: "x ~@3 x ~@6 x ~@5 x ~@4 x ~",
X: "~@5 x ~@5 x ~@4 x ~@5 x ~", Y: "~@7 x ~@8 x ~@4 x ~@2", Z: "~ x ~@4 x ~@3 x ~@8 x ~ x ~@2",
AA: "~@2 x ~@3 x ~@4 x ~@10 x ~", AB: "~@6 x ~@2 x ~@3 x ~@4 x ~@3 x ~", AC: "~@9 x ~@8 x ~ x ~@3",
AD: "~ x ~@3 x ~@4 x ~@10 x ~@2", AE: "~@6 x ~ x ~@3 x ~@4 x ~@3 x ~@2", AF: "~@8 x ~@8 x ~@2 x ~@3",
AG: "x ~@4 x ~@3 x ~@10 x ~@3", AH: "~@5 x ~ x ~@4 x ~@3 x ~@4 x ~@2", AI: "~@8 x ~@8 x ~ x ~@3 x",
AJ: "~@4 x ~@3 x ~@10 x ~@4", AK: "~@4 x ~@2 x ~@3 x ~@6 x ~@3 x ~", AL: "~@3 x ~@3 x ~@8 x ~@7",
AM: "~ x ~@6 x ~@3 x ~@6 x ~@4", AN: "~ x ~@2 x ~@2 x", AO: "~@2 x ~@2 x ~@2", AP: "x ~@2 x", AQ: "~@19 x ~@4",
// … 128 more lines
More by Alice Cooper
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.