0:00/0:00
// Elected — Alice Cooper
// 132 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 132 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(132/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 B@2 ~@3 C@4 D@3 E@2 F@2 G@2 H@4 I@2 J@2 K@4 L@8 M@4 N@2 O@2 H@4 I@2 J@2 K@4 L@8 M@4 P@4 Q@2 R@2 S T U@2 V@2 W@2 X Y
H@4 I@2 J@2 Z AA AB AC AD AA AE AF K@4 L@8 AG@8 AH@6 ~
>`.pickRestart({
A: "~@14 [e3,a3,c#4,e4] [a3,c#4,e4]", B: "[[a2,e3,a3,c#4,e4]@31 ~]/2",
C: "[~@14 [a2,e3,a3,c#4,e4] [e3,a3,c#4,e4] [e3,a3,c#4,e4]@14 [e3,a3]@2 a3@2 [a3,c#4]@2 [e3,a3,c#4]@2 [a2,e3,a3,c#4]@2 [e3,a3,c#4]@4 [e3,a3,c#4]@4 [a3,c#4]@2 [a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [a2,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2, ~@15 a2@22 ~@3 a2@14 a2@4 ~@2 a2@4, ~@15 c#4@2 ~@7 e4@4 ~@4, ~@32 e3@4 ~@12 e3@4 ~@6 e3 ~@5]/4", // A A5 A
D: "[[a2,e3,a3,c#4]@2 [a2,e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4]@2 [e3,c#4,e4]@2 [e3,c#4]@18 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3,c#4]@2 [e3,a3,c#4] ~ d3 [d3,g3,b3], ~@2 a2@3 ~@2 [a2,a3]@10 ~@7, ~@16 e4@29 [g3,b3]@2 ~]/3", // A C#m A5 A G A G
E: "[[d3,g3,b3,g4]@13 ~ [b2,e3,g#3,b3]@4 [e3,a3,c#4]@3 ~ e3@4 c#3@3 e2@3, b2@11 ~@21]/2", // G E A
F: "[a2@20 a2@2 ~@2 e3@2 [e3,a3]@2 [e3,a3,c#4] a3 [d3,g3] [g2,b2,d3,g3], c#4@7 ~, a3@3 ~, e3@22 ~@6 a2@3 ~]/2", // A5 A G5 G
G: "[[g2,b2,d3,g3,b3,g4]@6 ~ [e3,g#3,b3]@2 [a2,e3,a3,c#4]@2 e3@2 c#3@2 e2]/2", // G E A
H: "[[e3,a3]@16 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [a2,d3,g3] [d3,g3] [d3,g3,b3]@13 ~ [b2,e3,g#3,b3]@4 [e3,a3,c#4]@3 ~ e3@4 c#3@4 e2@2, c#4@20 ~@11 b2@12 ~@21, ~@32 g4@11 ~@21]/4", // A5 A Dsus4 G5 G E A
I: "[[e3,a3]@18 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [a2,e3,a3]@2 b3 [d3,g3,b3], c#4@15 ~]/2", // A5 G
J: "[[d3,g3,b3]@13 ~ [b2,e3,g#3,b3,e4]@4 [a2,e3,a3,c#4,e4]@3 ~ e3@4 c#3@4 e2@2, [g2,b2,g4]@11 ~@21]/2", // G E A G
K: "[[a3,c4,f4]@8 ~@2 [e4,g4,c5]@2 ~@2 [d4,f4,a#4]@10 ~@2 [a#3,d#4,g4]@2 ~@2 [g#3,c4,d#4,g#4]@10 ~@2 [a#3,d4,f4]@2 ~@2 [b3,d4,g4]@6 ~@3 [e4,g4] [g3,c4,e4,g4]@5 ~ [g3,d#4,e4,g4,g#4] [c4,f4,a4], ~@27 [c4,e4] ~@4]/4", // F C A# D# G# A# G Em …
L: "[[c4,f4,a4]@8 ~@2 [c4,e4,g4,c5]@2 ~@2 [a#3,d4,f4,a#4]@10 ~@2 [a#3,d#4,g4]@2 ~@2 [g#3,c4,d#4,g#4]@10 ~@2 [a#3,d4,f4]@2 ~@2 [g3,b3,d4,g4]@7 ~@2 [e4,g4] [g3,c4,e4,g4]@5 ~ [c4,f4,a4]!2 [c4,f4,a4]@8 ~@2 [c4,e4,g4,c5]@2 ~@2 [a#3,d4,f4,a#4]@10 ~@2 [a#3,d#4,g4]@2 ~@2 [c4,d#4,g#4]@10 ~@2 [a#3,d4,f4]@2 ~@2 [g3,b3,d4,g4]@6 ~@2 g4!2 [c4,e4,g4]@4 ~@2 [c4,f4,a4]!2, ~@27 [c4,e4,g4] ~@3 a3@5 ~@23 g3@3 ~@2, ~@59 [c4,e4] ~@4]/8", // F C A# D# G# A# G Em …
M: "[[c4,f4,a4]@8 ~@2 [e4,g4,c5]@2 ~@2 [d4,f4,a#4]@10 ~@2 [g3,a#3,d#4,g4]@2 ~@2 [g#3,c4,d#4,g#4]@9 ~@3 [f3,a#3,d4,f4]@2 ~@2 [g3,b3,d4,g4]@6 ~@3 b2 [e2,b2,g#3]@5 ~ [a2,e3]!2, ~@27 e2 ~@4, ~@55 e3@6 ~@3]/4", // F C A# D# G# A# G E …
N: "[e3@5 e3!2 [e3,a3] [e3,a3]!5 [e3,a3]@2 [e3,a3], c#4@25 ~ c#4@6, a3@7 ~@9, a2@3 a2@2 a2@3]/2", // A5
O: "[[a2,e3,a3] [e3,a3]!3 [a2,e3,a3]!2 [e3,a3]!2 [e3,a3]!2 [a2,e3,a3]!2 [a2,e3,a3,c#4]!3 [a2,e3,a3,c#4,e4], ~ a2@3 ~@2 a2@4 c#4@2 ~@4]/2", // A5 A
P: "[e3,a3]!8", Q: "[d3,g3]!8", R: "[d3,f#3]!8", S: "c3 [c3,f3]!7", T: "[c3,f3]!8", U: "[b2,e3]!8", V: "d3!8",
W: "c3!8", X: "b2!8", Y: "e2!8", Z: "f4@4 e4@4 d4@3 ~ c4@4", AA: "a#3 a3 g3 f3", AB: "d#3@3 ~ d3@4 c3@4 a#2@3 ~",
AC: "g2 b2@2 c3", AD: "f4 e4 d4 c4", AE: "d#3 d3 c3 a#2", AF: "g2@4 b2@4 c3@4 c3@3 ~",
AG: "[[c4,f4,a4]@8 ~@2 [e4,g4,c5]@2 ~@2 [d4,f4,a#4]@10 ~@2 [g3,a#3,d#4,g4]@2 ~@2 [g#3,c4,d#4,g#4]@9 ~@3 [f3,a#3,d4,f4]@2 ~@2 [g3,b3,d4,g4]@6 ~@3 [e4,g4] [g3,c4,e4,g4]@5 ~ [c4,f4,a4]!2 [c4,f4,a4]@8 ~@2 [c4,e4,g4,c5]@2 ~@2 [a#3,d4,f4,a#4]@10 ~@2 [a#3,d#4,g4]@2 ~@2 [c4,d#4,g#4]@10 ~@2 [a#3,d4,f4]@2 ~@2 [g3,b3,d4,g4]@6 ~@2 g4!2 [c4,e4,g4]@4 ~@2 [c4,f4,a4]!2, ~@27 [c4,e4,g4] ~@3 a3@5 ~@23 g3@3 ~@2, ~@59 [c4,e4] ~@4]/8", // F C A# D# G# A# G Em …
AH: "[[c4,f4,a4]@8 ~@2 [e4,g4,c5]@2 ~@2 [d4,f4,a#4]@10 ~@2 [g3,a#3,d#4,g4]@2 ~@2 [g#3,c4,d#4,g#4]@9 ~@3 [f3,a#3,d4,f4]@2 ~@2 [g3,b3,d4,g4]@6 ~@3 [e4,g4] [g3,c4,e4,g4]@5 ~ [c4,f4,a4]!2 [c4,f4,a4]@31 ~, ~@27 [c4,e4,g4] ~@3 a3@17]/6", // F C A# D# G# A# G Em …
})).s("gm_overdriven_guitar").gain(0.29).pan(0)
// chords · overdriven guitar · soft notes
const overdriven_guitar_soft = note(`<
A ~@6 B@2 C@2 ~ D E@2 ~ F G@2 H@2 I ~ J@2 ~@2 K@2 L@2 ~ M N O ~ M ~ P Q@2 ~ R S@3 T H@2 I ~ J@2 ~@2 K@2 L@2 ~ M N O ~
M ~ P Q@2 ~ R ~@8 U ~@9 H@2 I ~ J@2 ~@4 V ~@5 K@2 L@2 ~ M N O ~ M ~ P Q@2 ~ O ~ M ~ P Q@2 ~ O ~@3
>`.pickRestart({
A: "~@14 a2 ~", B: "[~@7 e4@3 ~@6]/2", C: "[~@4 e4 e4@4 ~@7]/2", D: "~@2 a2@13 ~, ~ c#4@4 ~@3",
E: "[~@7 g2@4 ~@3 e4@4 e4@3 ~@11]/2", F: "~@6 e3@2 a3@2 ~@3 e3 ~@2", G: "[~@14 e4@7 ~@11, ~@7 b2@2 ~@7]/2",
H: "[~@20 c#4@4 ~@7 g2, ~@7 a2@8 ~]/2", I: "~ g2@11 ~@4", J: "[a2@18 a2@8 a2@2 ~@2 [g2,d3] ~]/2",
K: "[f3@4 ~@3 a#3@5 ~ g3 ~@2]/2", L: "[~@10 f3@2 ~ g3@7 ~@2 g3@2 ~@6 g#3 a3]/2", M: "~@5 g3 ~@2", N: "~@5 f3 ~@2",
O: "~@3 g3 ~@4", P: "~@15 a3", Q: "[a3@4 ~@3 a#3@5 ~@4]/2", R: "~@7 g#3 ~@8", S: "[~@17 c#4@7, e4]/3",
T: "c#4@2 ~@3 e4@2 ~", U: "f3 ~@7", V: "~@8 d#3 ~@7",
})).s("gm_overdriven_guitar").gain(0.13).pan(0)
// bass · fretless bass
const bass = note(`<
~ A@6 B@4 C B D@2 C B D@2 C B D@2 E F G@2 H I J K L I J K L I J K L I J M B@4 C B N O E F P@2 L I J K L I J K L I J K
L I J Q B@4 R@2 S@2 T@2 U@2 V W X@2 Y U E F Z O E F Z O AA AB AC AD AA AB AC AD AA AB AC AD AA AB AC AD AE AF AG AH AE
AF AG AH AI AJ AK AL AI AJ AK AM AN@2 ~
>`.pickRestart({
A: "[~@10 a3!2 a3@2 a3@80 ~@2, a1@47 ~]/6", B: "a2!8", C: "a1 a2!7",
D: "[g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 e2@4 a2@3 ~ e2@4 c#2@4 e2@2]/2", E: "a1!2 e2 g2 a2 g2 e2 a1",
F: "a1!2 e2 g2 a2 g2 e2 g1", G: "[g1@2 g1@2 d2@2 f2@2 g2@2 f2@2 d2@2 e2@4 a2@3 ~ e2@4 c#2@3 ~ e2@2]/2",
H: "f2@2 f2!2 f2@2 f2!2 f2@2 e2@4 d2@2", I: "d2 ~ d2!2 d2@2 d2!2 d2@2 d#2@4 c2@2",
J: "c2@2 c2!2 c2@2 c2!2 c2@2 d2@3 ~ b1@2", K: "b1@2 b1!2 b1@2 b1!2 c2@2 c2!2 c2@2 c2!2",
L: "f2@2 f2!2 f2@2 f2!2 f2@2 e2@3 ~ d2@2", M: "b1!4 e2!4", N: "g2!4 g1 b1 d2 e2", O: "~@2 a2@3 ~ e2@4 c#2@4 e2@2",
P: "[g1@2 g1@2 d2@2 d2@2 g1@2 b1@2 d2@2 e2@4 a2@3 ~ e2@4 c#2@4 e2@2]/2", Q: "b1@2 b1!2 b1@2 b1!2 e2@2 e2!2 e2@2 e2!2",
R: "g2!8", S: "f#2!8", T: "f2!8", U: "e2!8", V: "d2!8", W: "a2!8 g#2 g2 f#2 f2 e2 d#2 d2 c#2", X: "c2!8", Y: "b1!8",
Z: "g1!2 d2!2 g1 b1 d2 e2", AA: "f3@4 e3@3 ~ d3@3 ~ c3@3 ~", AB: "a#2@3 ~ a2@4 g2@3 ~ f2@3 ~",
AC: "d#2@3 ~ d2@3 ~ c2@3 ~ a#1@4", AD: "g1@4 b1@4 c2@4 d3@3 ~", AE: "f3!2 e3!2 d3!2 c3!2", AF: "a#2!2 a2!2 g2!2 f2!2",
AG: "d#2!2 d2!2 c2!2 a#1!2", AH: "g1@2 g1@2 b1@2 b1@2 c2@4 d3@3 ~", AI: "f3@2 f3!2 e3@2 e3!2 d3@2 d3!2 c3@2 c3!2",
AJ: "a#2@2 a#2!2 a2@2 a2!2 g2@2 g2!2 f2@2 f2!2", AK: "d#2@2 d#2!2 d2@2 d2!2 c2@2 c2!2 a#1@2 a#1!2",
AL: "g1@2 g1!2 b1@2 b1!2 c2@4 d3@3 ~", AM: "g1@2 g1!2 b1@2 b1!2 c2@4 d2@3 ~", AN: "f2/2",
})).s("gm_fretless_bass").gain(0.44)
// chords · distortion guitar
const distortion_guitar = note(`<
A B@2 C@3 D E@2 F@4 G@2 H@2 I@2 J@2 K@2 L@2 M@2 N@4 O@8 P@4 Q@2 R S J@2 K@2 L@2 M@2 N@4 O@8 P@4 T@2 U V W@2 U X Y@2 Z
V AA@2 AB AC AD AE J@2 K@2 L@2 M@2 AF@2 AG AH AI@2 AG AH AF@2 AG AH AI@2 AG AH AF@2 AG AH AI@2 AG AH AF@2 AG AH AI@2
AG AH AJ@2 ~
>`.pickRestart({
A: "~@14 [a2,e3,e4] [e3,a3,c#4,e4]", B: "[[a2,e3,a3,c#4,e4]@31 ~]/2",
C: "[a3@2 e3@2 g3@2 d3@15 ~@3 e3@2 c3@2 d3@2 g2@16 ~@2]/3", D: "g2 f#2 f2 e2 c3 e2@2 f#2",
E: "[[a2,e3,a3,c#4,e4]@12 [e3,a3,c#4]!4]/2", // A
F: "[[e3,a3,c#4]@2 [e3,a3,c#4]@2 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4]@2 [e3,a3,c#4]@2 ~ e3 [e3,a3,c#4,e4]@2 [e3,a3,c#4,e4]@2 ~ e3 [e3,a3,c#4,e4]@2 ~ e3 [a2,c#4,e4]@2 [e3,c#4]@18 a3@2 [e3,a3]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4,e4]@2 ~ g3, ~@4 a2@2 ~ e4@2 [a3,c#4,e4] ~@2 [a3,c#4,e4] ~@2 a3@10 c#4@2 ~@4 b3, ~@16 a2@4 a2@8 [a2,a3,c#4,e4]@2 e3 ~ e4@27 ~@5, ~@8 a2@5 a2@3]/4", // A C#m A5 A
G: "[[d3,g3,b3]@13 ~ [b2,e3,g#3,b3]@4 [e3,a3,c#4]@3 ~ e3@4 c#3@4 e2@2, [g2,b2,g4]@11 ~@21]/2", // G E A G
H: "[[e3,a3]@6 [e3,a3]@4 a3@2 [e3,a3]@2 e3@2 e3@2 [e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [a2,e3,a3,c#4] g3, c#4@11 ~@5, a2@6 a2@4 ~@3 a2@2 ~, ~@7 a3@2 ~@7]/2", // A5 A
I: "[[d3,g3,b3]@13 ~ [e2,b2,e3,g#3,b3,e4]@4 [a2,e3,a3,c#4,e4]@4 e3@4 c#3@4 e2@2, [g2,g4]@11 ~@21]/2", // G E A G
J: "[[a2,e3]@12 a2@2 a2@2 a2 ~ [e3,a3]@2 [e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [a2,e3,a3,c#4] g3, c#4@3 ~, a3@9 a2@2 ~@2 a2@2 ~]/2", // A5 A
K: "[[g2,b2,g3,b3,g4]@11 ~@3 [b2,e3,g#3,b3,e4]@4 [a2,e3,a3,c#4,e4]@3 ~ e3@4 c#3@4 e2@2]/2", // G E A
L: "[[a2,e3,a3]@20 e3@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [e3,a3] g3, c#4@3 a2]/2", // A5
M: "[[d3,g3,b3]@13 ~ [b2,e3,g#3,b3,e4]@4 [a2,e3,a3,c#4,e4]@3 ~ e3@4 c#3@4 e2@2, [g2,g4]@11 ~@21]/2", // G E A G
N: "[[f2,c3]@8 ~@2 [c3,g3,c4]@2 ~@2 [a#2,f3,a#3]@10 ~@2 [d#3,a#3,d#4]@2 ~@2 [g#2,d#3,g#3]@10 ~@2 [a#2,f3]@3 ~ [g2,d3,g3]@6 ~@4 [c3,g3,c4]@4 ~@2 [f2,c3]!2]/4", // F5 C5 A#5 D#5 G#5 A#5 G5 C5 …
O: "[[f2,c3,f3]@8 ~@2 [c3,g3,c4]@2 ~@2 [a#2,f3,a#3]@10 ~@2 [d#3,a#3,d#4]@2 ~@2 [g#2,d#3,g#3]@10 ~@2 [a#2,f3,a#3]@2 ~@3 g2@5 ~@2 [c3,g3,c4] [g3,c4] [c3,g3,c4]@5 [b2,b3] c3 f2 [f2,f3]@8 ~@2 [c3,g3,c4]@2 ~@2 [a#2,f3,a#3]@9 ~@3 [d#3,a#3,d#4]@2 ~@2 [g#2,d#3,g#3]@10 ~@2 [a#2,f3,a#3]@2 ~@2 [g2,d3,g3]@6 ~@3 c4 [c3,g3,c4]@4 ~@2 [f2,c3]!2, ~@46 [d3,g3]@6 ~@11 c3@9 ~@46 [c3,g3,c4]@2 ~@8]/8", // F5 C5 A#5 D#5 G#5 A#5 C5 B …
P: "[[c3,f3]@8 ~@2 [c3,g3,c4]@2 ~@2 [a#2,f3,a#3]@9 ~@3 [d#3,a#3,d#4]@2 ~@2 [g#2,d#3,g#3]@10 ~@2 [a#2,f3,a#3]@2 ~@2 [g2,d3,g3]@6 ~@2 [b2,e3] e3 e3@6 [a2,e3]!2, ~@27 e2@4 ~, ~@55 b2@7 ~@2]/4", // F5 C5 A#5 D#5 G#5 A#5 G5 E5 …
Q: "[[e3,a3]@6 a3 [e3,a3] e3 [e3,a3] e3!4 [a2,e3]!2, a2@5 a2@2 ~]/2", // A5
R: "~ [a2,e3] e3 ~ a2 [a2,e3]!2 [a2,e3,a3], ~ a2 ~@2, ~@3 e3@2 ~@3", // A5
S: "[a2,e3] e3 [e3,a3] [a2,e3,a3]!2 [e3,a3]!2 [a2,e3,a3], ~ a2@2 ~@2 a2@2 ~", T: "[a2,e3,a3,c#4]/2", U: "d5 c#5",
V: "b4 a4", W: "[b4@4 c#5@8 e4@19 ~]/2", X: "b4@8 a4@7 ~", Y: "[b4@4 c5@7 ~ b4@18 ~@2]/2", Z: "d5@8 c#5@7 ~",
AA: "[b4@4 c#5@7 e4@18 ~@3]/2", AB: "d5@8 c5@7 ~", AC: "b4@7 ~ a4@8", AD: "d5@7 ~ c5@7 ~", AE: "b4@8 e4@7 ~",
AF: "[f2@5 [c3,g3] ~ [a#2,f3]@3 a2@2 g2@2 c3 f2]/2", AG: "d#3@2 d3@2 c3!2 a#2@2", AH: "g2 b2 c3!2",
AI: "[f2@4 ~ [c3,g3] ~ [a#2,f3]@3 a2@2 c3!2 f2@2]/2", AJ: "[f2@25 ~@7]/2",
})).s("gm_distortion_guitar").gain(0.32).pan(0.9)
// chords · distortion guitar · soft notes
const distortion_guitar_soft = note(`<
~@8 A@2 ~@2 B ~@2 C D ~@2 E@2 ~@2 F@2 ~@2 G ~ H ~@4 I ~@3 J ~@4 K L M N E@2 ~@2 F@2 ~@2 G ~ H ~@4 I ~@3 J ~@22 E@2 ~@2
F@2 ~@6 O ~@7 O ~@7 O ~@7 O ~@6
>`.pickRestart({
A: "[~@2 a2@3 ~@3]/2", B: "~@2 e3@2 ~@11 d3", C: "~@5 e3 ~@2", D: "~@6 c#4@2 c#4@2 ~@5 [d3,b3]",
E: "[~@12 e3@2 e3@4 ~@6 c#4@2 ~@4 b3 ~]/2", F: "[~@20 [a2,a3]@2 ~@4 c#4@2 ~@3 d3, e4@31 ~]/2", G: "f3 ~",
H: "~@10 a#3@3 ~@3", I: "~@7 c3 ~@5 f#3 ~@2", J: "~@12 [f#3,b3] [a#2,b2] ~@2", K: "~@6 e3 ~", L: "~@2 a3 ~@5",
M: "[a2,e3] ~@7", N: "a3 c#4@7, ~ a3 ~@6", O: "~@5 c4 ~@2",
})).s("gm_distortion_guitar").gain(0.18).pan(0.9)
// other · distortion guitar
const distortion_guitar_2 = note("<~@45 A@2 ~@31 B C@2 ~@3 D ~@2 E F ~@43>".pickRestart({
A: "[~@2 d4@5 ~]/2", B: "~@2 c#5 e5", C: "[b4@3 g#4@5]/2", D: "f4@9 g3@7", E: "d#3",
F: "d4 [c4,c#4] b3 a#3@7 ~@6, e2@3 ~@13", // C#maj7
})).s("gm_distortion_guitar").gain(0.4).pan(0.9)
// other · trumpet
const trumpet = note(`<
~@62 A B@4 C@4 D@2 ~@8 E@2 F@2 G@2 H I J@2 K L J@2 K M ~@15 N O@4 P@4 B@4 Q@4 R@2 ~
>`.pickRestart({
A: "~@8 b4@2 c5 ~ b4@2 c5 d5",
B: "[a4@8 ~@2 c5@3 ~ a#4@11 ~ d#5@2 ~@2 g#4@11 ~ a#4@2 ~@2 g4@9 ~ b4@2 c5 ~ b4@2 ~ d5, f5@27 ~@5, e5 ~@61 c5@2]/4",
C: "[a4@9 ~ c5@2 ~@2 a#4@11 ~ d#5@2 ~@2 g#4@11 ~ a#4@3 ~ g4@9 ~ [g#4,e5]@7 ~, f5@7 ~, e5 ~@63]/4", D: "[a4@15 ~]/2",
E: "[a5@31 ~]/2", F: "[g5@31 ~]/2", G: "[f5@31 ~]/2", H: "f5@15 ~", I: "e5@4 d5@4 c5@3 ~ b4@3 ~",
J: "[a4@25 ~ e4@2 g4@2 f#4@2]/2", K: "g4@13 ~ g#4@2", L: "~@2 a4@3 ~@9 g#4@2", M: "~@2 a4@5 ~@9", N: "~@15 e5",
O: "[f5@2 ~@2 f5@51 ~@8 e5]/4", P: "[f5@2 ~@2 f5@50 ~@2 b4@2 c5 ~ b4@2 c5 d5]/4",
Q: "[a4@9 ~ c5@2 ~@2 a#4@11 ~ d#5@2 ~@2 g#4@11 ~ a#4@3 ~ g4@9 ~ b4@2 c5 ~ b4@2 c5 d5, f5@7 ~, e5 ~@63]/4",
R: "[f5, e5 ~@31]/2",
})).s("gm_trumpet").gain(0.4).pan(0.9)
// other · trombone
const trombone = note(`<
~@47 A@2 B C A@2 B D E@8 F@4 G@4 H@2 I@2 J@2 K@2 L@2 M@2 N@2 O@2 P Q A@2 B C A@2 B D R S T U R S V W R S V U R S V U R
S V U R S V X F@4 Y@4 Z@2 ~
>`.pickRestart({
A: "[a2@31 ~]/2", B: "g2@2 ~@2 g2@3 ~ g2@2 b2 ~ d3 ~ e3@2", C: "~@2 a3@2 ~@2 e3@3 ~ c#3@3 ~ e3 ~",
D: "~@2 a3@2 ~@2 e3@3 ~ c#3@3 ~ e2 ~",
E: "[f2@9 ~ g2@2 ~@2 a#2@11 ~ a#2@3 ~ g#2@11 ~ a#2@3 ~ g2@8 ~@2 b2@2 c3 ~ b2@2 c3 ~]/4",
F: "[[f2,c4]@9 ~ [c3,e4]@2 ~@2 [a#2,d4]@11 ~ [a#2,d#4]@3 ~ [g#2,c4]@11 ~ [a#2,d4]@3 ~ b3@10 b2@2 c3 ~ b2@2 c3 ~, ~@23 g2@4 ~@5]/4", // F5 C A# D#5 G# A#
G: "[[f2,c4]@9 ~ [c3,e4]@3 ~ [a#2,d4]@11 ~ [a#2,d#4]@3 ~ [g#2,c4]@11 ~ [a#2,d4]@3 ~ [g2,b3]@10 [e2,g#3]@8]/4", // F5 C A# D#5 G# A# G E
H: "[a2@15 ~]/2", I: "[a2,a3]/2", J: "[[g2,g3]@31 ~]/2", K: "[[f#2,f#3]@31 ~]/2", L: "[[f2,f3]@31 ~]/2",
M: "[e2,e3]/2", N: "[[d2,d3]@31 ~]/2", O: "[[c2,c3]@31 ~]/2", P: "[b1,b2]", Q: "[e2,e3]",
R: "f3@3 ~ e3@4 d3@4 c3@3 ~", S: "a#2@3 ~ a2@4 g2@3 ~ f2@3 ~", T: "d#2@3 ~ d2@3 ~ c2@3 ~ a#1@3 ~",
U: "g1@4 b1@3 ~ c2@3 ~ c3@3 ~", V: "d#2@3 ~ d2@4 c2@4 a#1@4", W: "g1@3 ~ b1@3 ~ c2@3 ~ c3@3 ~",
X: "g1@4 ~@4 b2@2 c3 ~ b2@2 c3 ~",
Y: "[[f2,c4]@9 ~ [c3,e4]@3 ~ [a#2,d4]@11 ~ [a#2,d#4]@3 ~ [g#2,c4]@11 ~ [a#2,d4]@3 ~ [g2,b3]@10 b2@2 c3 ~ b2@2 c3 ~]/4", // F5 C A# D#5 G# A# G
Z: "[f2,c4]/2", // F5
})).s("gm_trombone").gain(0.45).pan(0.8)
// other · guitar harmonics
const guitar_harmonics = note("<~@3 A@2 B ~@126>".pickRestart({
A: "[~@3 f#3@8 ~@5]/2", B: "~ d3@3",
})).s("gm_guitar_harmonics").gain(0.22).pan(0.9)
// chords · trombone
const trombone_2 = note("<~@63 A@4 B@4 C@2 D E F@2 D G H@2 I J K@2 L J L M N@2 ~@14 O@16 P@4 Q@4 R@2 ~>".pickRestart({
A: "[a4@9 ~ g4@2 ~@2 f4@11 ~ g4@3 ~ d#4@11 ~ f4@2 ~@2 d4@9 ~ b3@2 c4 ~ b3@2 c4 ~]/4",
B: "[a4@9 ~ g4@2 ~@2 f4@11 ~ g4@2 ~@2 d#4@11 ~ f4@2 ~@2 d4@9 ~ e4@8]/4", C: "[a3@15 ~]/2", D: "d4 c#4",
E: "b3@8 a3@7 ~", F: "[b3@3 ~ c#4@6 ~@2 e3@18 ~@2]/2", G: "b3 a3", H: "[b3@3 ~ c4@27 ~]/2",
I: "[d4,d5]@7 ~ [c#4,c#5]@7 ~", J: "[b3,b4]@7 ~ [a3,a4]@7 ~", K: "[[b3,b4]@3 ~ [c#4,c#5]@7 ~ [e3,e4]@19 ~]/2",
L: "[d4,d5]@7 ~ [c4,c5]@7 ~", M: "[b3,b4]@7 ~ [a3,a4]@6 ~@2", N: "[[a3,a4]@13 ~@3]/2",
O: "[[c4,a4]@9 ~ [e4,g4]@2 ~@2 [d4,f4]@11 ~ [d#4,g4]@3 ~ [c4,d#4]@11 ~ [d4,f4]@2 ~@2 [b3,d4]@10 [c4,e4]@8]/4", // F Em Dm D# Cm Dm Bm C
P: "[[c4,a4]@9 ~ [e4,g4]@3 ~ [d4,f4]@11 ~ [d#4,g4]@3 ~ [c4,d#4]@11 ~ [d4,f4]@3 ~ [b3,d4]@9 ~ b3@2 c4 ~ b3@2 c4 ~]/4", // F Em Dm D# Cm Dm Bm
Q: "[[c4,a4]@9 ~ [e4,g4]@2 ~@2 [d4,f4]@11 ~ [d#4,g4]@2 ~@2 [c4,d#4]@11 ~ [d4,f4]@2 ~@2 [b3,d4]@9 ~ b3@2 c4 ~ b3@2 c4 ~]/4", // F Em Dm D# Cm Dm Bm
R: "[f4,a4]/2", // F
})).s("gm_trombone").gain(0.36).pan(0.2)
// drums · kick
const kick = s("bd").struct(`<
~@3 A@4 B@20 A@3 C A@12 B@12 A@3 C A@7 C A@4 B@26 A@3 C A@7 C A@7 C A@7 C A@3 D E ~@2
>`.pickRestart({
A: "x ~@3 x!2 ~@2", B: "x!8", C: "x!2 ~@2 x!2 ~@2", D: "x ~@3 x!4", E: "x",
})).gain(0.44)
// drums · snare
const snare = s("sd").struct(`<
~@6 A B@2 C D B@2 E F B@2 E F B@2 E G H@2 I J H@3 K H@3 L H@3 M H@3 N H@2 C D H@2 I O H P Q J H R S T U@2 V L R@3 W
R@2 X Y U@5 Z U AA B@2 U@3 B U AA C D H P I J H P Q J R@2 H AB R@3 AC AD R H T R@3 AE R@3 T R@3 AE R@3 AF R@2 AG L ~@3
>`.pickRestart({
A: "~@3 x", B: "x!8", C: "x ~ x!14", D: "x!16", E: "x ~ x!6", F: "x ~ x ~@3 x ~@3 x ~ x!3 ~",
G: "x ~ x ~@3 x ~ x!3 ~@5", H: "~ x ~ x", I: "~@4 x ~@5 x!3 ~ x ~", J: "~@2 x ~@3 x ~ x!3 ~@5",
K: "~@4 x ~@4 x!2 ~@5", L: "~@4 x!12", M: "~@4 x ~@4 x!3 ~@4", N: "~@4 x!11 ~", O: "~@2 x ~@3 x ~ x!3 ~@3 x ~",
P: "~@4 x ~@5 x!6", Q: "~@2 x ~@3 x!2", R: "~@4 x ~@2 x ~@4 x ~@3", S: "x!2 ~ x", T: "~@4 x ~ x!2 ~ x!3 ~@4",
U: "x!4", V: "x ~@3 x ~@2 x!2 ~@3 x ~@3", W: "x ~ x ~ x ~ x!3 ~@7", X: "x ~@3 x ~@2 x ~@4 x ~@3", Y: "~@3 x!10 ~@3",
Z: "x!3 ~ x ~ x ~", AA: "x ~ x ~ x ~ x!2", AB: "~@4 x ~ x!2 ~@2 x ~@3 x!2", AC: "~@4 x ~@4 x!3 ~@2 x!2",
AD: "~@2 x ~ x!3 ~", AE: "~ x!15", AF: "~@4 x ~ x!2 ~@2 x!5 ~", AG: "~ x!3 ~@2 x!2 ~@2 x!5 ~",
})).gain(0.38)
// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
~@7 A ~ B ~ C D E ~ C D E ~ C D E ~@12 F ~@7 G ~@2 B ~@10 H@2 ~@4 G ~@3 I ~@3 J K@5 L K@2 ~@2 K@3 ~ K@2 B ~@9 H@4 ~@5
H@2 ~@19 M G ~@3
>`.pickRestart({
A: "~ x ~@6", B: "~ x ~@3 x ~@3 x ~ x ~@3 x", C: "~@5 x ~@2", D: "~@7 x", E: "~ x ~ x ~@4", F: "~@2 x!3 ~@11",
G: "~ x!4 ~@11", H: "~@7 x ~@8", I: "~@3 x ~@4", J: "~ x!3 ~@12", K: "~ x ~ x ~ x ~ x", L: "~@3 x ~ x ~ x",
M: "~ x ~@14",
})).gain(0.22)
// drums · low tom
const low_tom = s("lt").struct(`<
// … 65 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.