0:00/0:00
// (Oh) Pretty Woman — Van Halen
// 127 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(127/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 · distortion guitar
const distortion_guitar = note(`<
~@2 A@2 B C@3 D E F G H I J K@3 L M@2 N O P Q R S T U V@2 W X Y X Z ~@15 AA AB@6 X@3 AC G F G H I AD AE AF@2 AG AF AH
AI AJ AK AH AL ~ AM B AN@2 AO AP AQ AO AQ AO@3 AR
>`.pickRestart({
A: "[[e1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2 [d2,d3]@16 [e1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2]/2", B: "[d2,d3]",
C: "[e1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2 [d2,d3]@2 [f#2,f#3]@2 [e2,e3]@2 [d2,d3] ~", // E G# B D F# E D
D: "[e1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2 [d2,d3]@2 [f#2,f#3]@2 [e2,e3]@3 ~", // E G# B D F# E
E: "[a2,c#3]@5 ~ [a2,c#3] ~ [a2,c#3] ~ [a2,c#3]!2 [a2,c#3]@3 ~, e2 ~@15", // A
F: "[f#2,a2]@5 ~ [f#2,a2] ~ [f#2,a2] ~ [f#2,a2]!2 [f#2,a2]@3 ~", // F#m
G: "[a2,c#3]@5 ~ [a2,c#3] ~ [a2,c#3] ~ [a2,c#3]!2 [a2,c#3]@3 ~", // A
H: "[f#2,a2]@5 ~ [f#2,a2] ~ [f#2,a2] ~ [f#2,a2]!2 [f#2,a2]@2 ~@2", // F#m
I: "[a2,d3]@5 ~ [a2,d3] ~ [a2,d3] ~ [a2,d3]!2 [a2,d3]@3 ~", J: "[a2,d3]@5 ~ [a2,d3] ~ [b2,e3]@5 ~ [b2,e3]@2",
K: "~@2 [b2,e3] ~@3 [b2,e3] ~ [b2,e3]@5 ~ [b2,e3]@2", // E5
L: "~@2 [b2,e3] ~@3 [b2,e3]@2 [e1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2", // E5 E G# B
M: "[d2,d3]@2 [f#2,f#3]@2 [e2,e3]@2 [d2,d3]@2 [e1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2", // D F# E D E G# B
N: "[d2,d3]@2 [f#2,f#3]@2 [e2,e3]@2 [d2,d3]@2 [e1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [a1,b1,b2]@2", // D F# E D E G# Asus2
O: "[d2,d3]@2 [f#2,f#3]@2 [e2,e3]@3 ~ [a2,c#3]@4 ~@2 [a2,c#3] ~", // D F# E A
P: "[a2,c#3] ~ [a2,c#3]!2 [a2,c#3]@3 ~ [f#2,a2]@5 ~ [f#2,a2] ~", // A F#m
Q: "[f#2,a2] ~ [f#2,a2]!2 [f#2,a2]@2 ~@2 [a2,c#3]@5 ~ [a2,c#3] ~", // F#m A
R: "[a2,c#3] ~ [a2,c#3]!2 [a2,c#3]@2 ~@2 [f#2,a2]@5 ~ [f#2,a2] ~", // A F#m
S: "[f#2,a2] ~ [f#2,a2]!2 [f#2,a2]@2 ~@2 [a2,d3]@5 ~ [a2,d3] ~", // F#m D5
T: "[a2,d3] ~ [a2,d3]!2 [a2,d3]@3 ~ [a2,d3]@5 ~ [a2,d3] ~", U: "[b2,e3]@5 ~ [b2,e3]@3 ~ [b2,e3] ~@3 [b2,e3] ~",
V: "[b2,e3]@5 ~ [b2,e3]@3 ~ [b2,e3] ~@3 [b2,e3]!2", W: "[b2,e3]@5 ~ [b2,e3]@3 ~ [b2,e3] ~@3 [b2,e3]@2",
X: "[e1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2 [d2,d3]@2 [f#2,f#3]@2 [e2,e3]@2 [d2,d3]@2", // E G# B D F# E D
Y: "[e1,e2,f2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2 [d2,d3]@2 [f#2,f#3]@2 [e2,e3]@2 [d2,d3]@2", // Fmaj7 E G# B D F# E D
Z: "[e1,e2] ~ e1@3 ~@11, ~@2 e2 ~@13", AA: "~@15 [a2,c#3]",
AB: "[[a2,c#3,f#3]@5 ~ [a2,c#3,f#3] ~ [a2,c#3,f#3]@3 ~ [a2,c#3,f#3]@2 ~@2 f3@5 ~ [a2,d3,f3] ~ [a2,d3,f3]@3 ~ [a2,d3,f3]@2 ~@2 [b2,e3]@6 [g#2,b2,e3] ~ [g#2,b2,e3]@3 ~ [g#2,b2,e3]@2 ~@2 [c#3,e3]@5 ~ [a2,c#3,e3] ~ [a2,c#3,e3]@3 ~ [a2,c#3,e3]@2 ~@2 [c#3,f#3]@6 [a2,c#3,f#3] ~ [a2,c#3,f#3]@3 ~ [a2,c#3,f#3]@2 ~@2 [d3,f3]@6 [a2,d3,f3] ~ [a2,d3,f3]@3 ~ [a2,d3,f3]@3 ~, ~@15 [a2,d3]@6 ~@10 g#2@6 ~@10 a2@6 ~@10 a2@6 ~@10 a2@6 ~@11, ~@32 [c3,d#3] ~@63]/6", // F#m Dm E5 E C#m A F#5 F#m …
AC: "[e1,e2] ~ [e1,f1,e2]@2 [g#1,g#2]@2 [a1,b1,b2]@2 [d2,d3]@2 [f#2,f#3]@2 [e2,e3]@3 ~", // E Fmaj7 G# Asus2 D F# E
AD: "[a2,d3]@5 ~ [a2,d3] ~ [b2,e3]@3 [g#2,b2,e3]!2 ~ [g#2,b2,e3] ~, ~@7 g#2@3 ~@6", // D5 E5 E
AE: "[g#2,b2,e3]@2 ~ [g#2,b2,e3] [g#2,b2,e3]@3 ~ [b2,e3]@3 [g#2,b2,e3]!2 ~ [g#2,b2,e3] ~, ~@7 g#2@3 ~@6", // E E5 E
AF: "[g#2,b2,e3]@3 [g#2,b2,e3] [g#2,b2,e3]@2 ~@2 [b2,e3]@3 [g#2,b2,e3]!2 ~ [g#2,b2,e3] ~, ~@7 g#2@3 ~@6", // E E5 E
AG: "[g#2,b2,e3]@3 [g#2,b2,e3] [g#2,b2,e3]@2 ~@2 [b2,e3]@3 [g#2,b2,e3]!2 ~ [g#2,b2,e3] ~, a#2 ~@6 g#2@3 ~@6", // E E5 E
AH: "[g#2,b2,e3]@2 ~ [g#2,b2,e3] [g#2,b2,e3]@2 ~@2 [b2,e3]@3 [g#2,b2,e3]!2 ~ [g#2,b2,e3] ~, ~@7 g#2@3 ~@6", // E E5 E
AI: "[g#2,b2,e3]@3 [g#2,b2,e3] [g#2,b2,e3]@3 ~ [g#2,b2,e3]@3 [g#2,b2,e3]!2 ~ [g#2,b2,e3] ~", // E
AJ: "[g#2,b2,e3]@2 ~ [g#2,b2,e3] [g#2,b2,e3]@2 ~@2 e3@3 [g#2,b2,e3]!2 ~ [g#2,b2,e3] ~, ~@7 [g#2,b2]@3 ~@6", // E G#m
AK: "[g#2,b2,e3]@2 ~ [g#2,b2,e3] [g#2,b2,e3]@3 ~ [g#2,b2,e3]@3 [g#2,b2,e3]!2 ~ [g#2,b2,e3] ~", // E
AL: "[g#2,b2,e3]@2 ~ [g#2,b2,e3] [g#2,b2,e3]@3 ~ [g#2,b2,e3] ~@7", // E
AM: "~@8 [e1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2", // E G# B
AN: "[[e1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2 [d2,d3]@16 [e1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [a1,b1,b2]@2]/2", // E G# B D E G# Asus2
AO: "[d2,d3]@2 [f#2,f#3]@2 [e2,e3]@2 [d2,d3] ~ [e1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2", // D F# E D E G# B
AP: "[d2,d3]@2 [f#2,f#3]@2 [e2,e3]@2 [d2,d3] ~ [e1,f1,e2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2", // D F# E D Fmaj7 E G# B
AQ: "[d2,d3]@2 [f#2,f#3]@2 [e2,e3]@2 [d2,d3] ~ [e1,e2,f2] ~ [e1,e2]@2 [g#1,g#2]@2 [b1,b2]@2", // D F# E D Fmaj7 E G# B
AR: "[d2,d3]@2 [f#2,f#3]@2 [e2,e3]@2 [d2,d3]@2 [a1,a2] ~ [a1,a2]@2 ~@4", // D F# E D A
})).s("gm_distortion_guitar").gain(0.46)
// bass · electric bass pick
const bass = note(`<
~@5 A@3 B C D E F G H I J@2 K L M@2 N O P Q R S T U T@2 A@3 V W X Y Z AA AB AC AD W X Y Z AE AB Y E AF AG AH AI AF AJ
A@4 C D E F G AK J@3 AL@2 AM J AL J@2 AN ~@4 AO L@8 AP
>`.pickRestart({
A: "e2 ~ e2@2 g#2@2 b2@2 d3 ~ f#3 ~ e3 ~ d3 ~", B: "e2 ~ e2@2 g#2@2 b2@2 d3 ~ f#3 ~ e3@3 ~",
C: "a2@5 ~ a2 ~ c#3@4 e3@4", D: "f#3@5 ~ f#3 ~ c#3@2 ~ c#3 f#3 ~ c#3 ~", E: "a2@5 ~ a2 ~ c#3@3 ~ e3 ~ f3 ~",
F: "f#3@5 ~ f#3@2 c#3@2 ~ c#3 f#3 ~ e3 ~", G: "d3@5 ~ d3@2 a2@5 ~ a2@2", H: "d3@5 ~ d3@2 e3@5 ~ e3@2",
I: "b2@3 ~ b2@3 ~ e3@5 ~ e3 ~", J: "b2@3 ~ b2@3 ~ e3@5 ~ e3@2", K: "b2@3 ~ b2@3 ~ e2 ~ e2@2 g#2@2 b2@2",
L: "d3 ~ f#3 ~ e3 ~ d3 ~ e2 ~ e2@2 g#2@2 b2@2", M: "d3 ~ f#3 ~ e3 ~ d3 ~ [e2,f2] ~ e2@2 g#2@2 b2@2",
N: "d3 ~ f#3 ~ e3 ~ c#3 ~ a2@4 ~@2 a2 ~", O: "c#3@4 e3@4 f#3@5 ~ f#3 ~", P: "c#3@2 ~ c#3 f#3 ~ c#3 ~ a2@5 ~ a2 ~",
Q: "c#3@3 ~ e3 ~ f3 ~ f#3@5 ~ f#3@2", R: "c#3@2 ~ c#3 f#3 ~ e3 ~ d3@5 ~ d3@2", S: "a2@5 ~ a2@2 d3@5 ~ d3@2",
T: "e3@5 ~ e3@2 b2@3 ~ b2@3 ~", U: "e3@5 ~ e3 ~ b2@3 ~ b2@3 ~", V: "e2 ~ e2 ~ e2@3 ~ e2@3 ~ e2@2 ~@2",
W: "d3@5 ~ e3 ~ f3@4 a3@3 ~", X: "g3@6 f3 ~ e3@4 d3@3 ~", Y: "c3@5 ~ c3 ~ e3@4 c3 ~ b2 ~",
Z: "a2@5 ~ b2 ~ c3@3 ~ e3@4", AA: "d3@6 e3 ~ f3@4 a3@4", AB: "g3@6 f3 ~ e3@4 d3@4",
AC: "c3@3 ~ c3 ~ e3@3 ~ e3@2 g3@3 ~", AD: "c3@3 ~ c3 ~ e3@2 ~@2 e3 ~ e3@2 d#3@2", AE: "d3@6 e3 ~ f3@3 ~ a3@4",
AF: "f#3@5 ~ f#3 ~ c#3@3 ~ f#3 ~ e3 ~", AG: "d3@5 ~ d3@2 f3@3 ~ f3@4", AH: "e3@6 d3 ~ c#3@3 ~ b2@4",
AI: "a2@5 ~ a2 ~ c#3@4 e3 ~ f3 ~", AJ: "d3@5 ~ d3 ~ d3@3 ~ f3@3 ~", AK: "d3@5 ~ d3@2 e3@4 ~@2 e3@2",
AL: "b2@3 ~ b2@3 ~ e3@4 ~@2 e3@2", AM: "b2@2 ~@2 b2@3 ~ e3@4 ~@2 e3@2", AN: "b2@3 ~ b2@3 ~ e3@2 ~@6",
AO: "~@8 e2 ~ e2@2 g#2@2 b2@2", AP: "d3 ~ f#3 ~ e3 ~ d3 ~ a2 ~ a2 ~@5",
})).s("gm_electric_bass_pick").gain(0.8).pan(0.1)
// chords · overdriven guitar
const overdriven_guitar = note(`<
~@2 A@2 B C@3 D E F G H I J K@3 L M@2 N O P Q R S T U V@2 W X Y X Z ~@15 AA AB@6 X@3 AC G F G H I AD AE AF@2 AG AF AH
AI AJ AK AH AL ~ AM B AN@2 AO AP AQ AO AQ AO@3 AR
>`.pickRestart({
A: "[[e2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2 [d3,d4]@16 [e2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2]/2", B: "[d3,d4]",
C: "[e2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2 [d3,d4]@2 [f#3,f#4]@2 [e3,e4]@2 [d3,d4] ~", // E G# B D F# E D
D: "[e2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2 [d3,d4]@2 [f#3,f#4]@2 [e3,e4]@3 ~", // E G# B D F# E
E: "[a3,c#4]@5 ~ [a3,c#4] ~ [a3,c#4] ~ [a3,c#4]!2 [a3,c#4]@3 ~, e3 ~@15", // A
F: "[f#3,a3]@5 ~ [f#3,a3] ~ [f#3,a3] ~ [f#3,a3]!2 [f#3,a3]@3 ~", // F#m
G: "[a3,c#4]@5 ~ [a3,c#4] ~ [a3,c#4] ~ [a3,c#4]!2 [a3,c#4]@3 ~", // A
H: "[f#3,a3]@5 ~ [f#3,a3] ~ [f#3,a3] ~ [f#3,a3]!2 [f#3,a3]@2 ~@2", // F#m
I: "[a3,d4]@5 ~ [a3,d4] ~ [a3,d4] ~ [a3,d4]!2 [a3,d4]@3 ~", J: "[a3,d4]@5 ~ [a3,d4] ~ [b3,e4]@5 ~ [b3,e4]@2",
K: "~@2 [b3,e4] ~@3 [b3,e4] ~ [b3,e4]@5 ~ [b3,e4]@2", // E5
L: "~@2 [b3,e4] ~@3 [b3,e4]@2 [e2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2", // E5 E G# B
M: "[d3,d4]@2 [f#3,f#4]@2 [e3,e4]@2 [d3,d4]@2 [e2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2", // D F# E D E G# B
N: "[d3,d4]@2 [f#3,f#4]@2 [e3,e4]@2 [d3,d4]@2 [e2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [a2,b2,b3]@2", // D F# E D E G# Asus2
O: "[d3,d4]@2 [f#3,f#4]@2 [e3,e4]@3 ~ [a3,c#4]@4 ~@2 [a3,c#4] ~", // D F# E A
P: "[a3,c#4] ~ [a3,c#4]!2 [a3,c#4]@3 ~ [f#3,a3]@5 ~ [f#3,a3] ~", // A F#m
Q: "[f#3,a3] ~ [f#3,a3]!2 [f#3,a3]@2 ~@2 [a3,c#4]@5 ~ [a3,c#4] ~", // F#m A
R: "[a3,c#4] ~ [a3,c#4]!2 [a3,c#4]@2 ~@2 [f#3,a3]@5 ~ [f#3,a3] ~", // A F#m
S: "[f#3,a3] ~ [f#3,a3]!2 [f#3,a3]@2 ~@2 [a3,d4]@5 ~ [a3,d4] ~", // F#m D5
T: "[a3,d4] ~ [a3,d4]!2 [a3,d4]@3 ~ [a3,d4]@5 ~ [a3,d4] ~", U: "[b3,e4]@5 ~ [b3,e4]@3 ~ [b3,e4] ~@3 [b3,e4] ~",
V: "[b3,e4]@5 ~ [b3,e4]@3 ~ [b3,e4] ~@3 [b3,e4]!2", W: "[b3,e4]@5 ~ [b3,e4]@3 ~ [b3,e4] ~@3 [b3,e4]@2",
X: "[e2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2 [d3,d4]@2 [f#3,f#4]@2 [e3,e4]@2 [d3,d4]@2", // E G# B D F# E D
Y: "[e2,e3,f3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2 [d3,d4]@2 [f#3,f#4]@2 [e3,e4]@2 [d3,d4]@2", // Fmaj7 E G# B D F# E D
Z: "[e2,e3] ~ e3@3 ~@11, ~@2 e2 ~@13", AA: "~@15 [a3,c#4]",
AB: "[[a3,c#4,f#4]@5 ~ [a3,c#4,f#4] ~ [a3,c#4,f#4]@3 ~ [a3,c#4,f#4]@2 ~@2 f4@5 ~ [a3,d4,f4] ~ [a3,d4,f4]@3 ~ [a3,d4,f4]@2 ~@2 [b3,e4]@6 [g#3,b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4]@2 ~@2 [c#4,e4]@5 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@2 ~@2 [c#4,f#4]@6 [a3,c#4,f#4] ~ [a3,c#4,f#4]@3 ~ [a3,c#4,f#4]@2 ~@2 [d4,f4]@6 [a3,d4,f4] ~ [a3,d4,f4]@3 ~ [a3,d4,f4]@3 ~, ~@15 [a3,d4]@6 ~@10 g#3@6 ~@10 a3@6 ~@10 a3@6 ~@10 a3@6 ~@11, ~@32 [c4,d#4] ~@63]/6", // F#m Dm E5 E C#m A F#5 F#m …
AC: "[e2,e3] ~ [e2,f2,e3]@2 [g#2,g#3]@2 [a2,b2,b3]@2 [d3,d4]@2 [f#3,f#4]@2 [e3,e4]@3 ~", // E Fmaj7 G# Asus2 D F# E
AD: "[a3,d4]@5 ~ [a3,d4] ~ [b3,e4]@3 [g#3,b3,e4]!2 ~ [g#3,b3,e4] ~, ~@7 g#3@3 ~@6", // D5 E5 E
AE: "[g#3,b3,e4]@2 ~ [g#3,b3,e4] [g#3,b3,e4]@3 ~ [b3,e4]@3 [g#3,b3,e4]!2 ~ [g#3,b3,e4] ~, ~@7 g#3@3 ~@6", // E E5 E
AF: "[g#3,b3,e4]@3 [g#3,b3,e4] [g#3,b3,e4]@2 ~@2 [b3,e4]@3 [g#3,b3,e4]!2 ~ [g#3,b3,e4] ~, ~@7 g#3@3 ~@6", // E E5 E
AG: "[g#3,b3,e4]@3 [g#3,b3,e4] [g#3,b3,e4]@2 ~@2 [b3,e4]@3 [g#3,b3,e4]!2 ~ [g#3,b3,e4] ~, a#3 ~@6 g#3@3 ~@6", // E E5 E
AH: "[g#3,b3,e4]@2 ~ [g#3,b3,e4] [g#3,b3,e4]@2 ~@2 [b3,e4]@3 [g#3,b3,e4]!2 ~ [g#3,b3,e4] ~, ~@7 g#3@3 ~@6", // E E5 E
AI: "[g#3,b3,e4]@3 [g#3,b3,e4] [g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 [g#3,b3,e4]!2 ~ [g#3,b3,e4] ~", // E
AJ: "[g#3,b3,e4]@2 ~ [g#3,b3,e4] [g#3,b3,e4]@2 ~@2 e4@3 [g#3,b3,e4]!2 ~ [g#3,b3,e4] ~, ~@7 [g#3,b3]@3 ~@6", // E G#m
AK: "[g#3,b3,e4]@2 ~ [g#3,b3,e4] [g#3,b3,e4]@3 ~ [g#3,b3,e4]@3 [g#3,b3,e4]!2 ~ [g#3,b3,e4] ~", // E
AL: "[g#3,b3,e4]@2 ~ [g#3,b3,e4] [g#3,b3,e4]@3 ~ [g#3,b3,e4] ~@7", // E
AM: "~@8 [e2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2", // E G# B
AN: "[[e2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2 [d3,d4]@16 [e2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [a2,b2,b3]@2]/2", // E G# B D E G# Asus2
AO: "[d3,d4]@2 [f#3,f#4]@2 [e3,e4]@2 [d3,d4] ~ [e2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2", // D F# E D E G# B
AP: "[d3,d4]@2 [f#3,f#4]@2 [e3,e4]@2 [d3,d4] ~ [e2,f2,e3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2", // D F# E D Fmaj7 E G# B
AQ: "[d3,d4]@2 [f#3,f#4]@2 [e3,e4]@2 [d3,d4] ~ [e2,e3,f3] ~ [e2,e3]@2 [g#2,g#3]@2 [b2,b3]@2", // D F# E D Fmaj7 E G# B
AR: "[d3,d4]@2 [f#3,f#4]@2 [e3,e4]@2 [d3,d4]@2 [a2,a3] ~ [a2,a3]@2 ~@4", // D F# E D A
})).s("gm_overdriven_guitar").gain(0.46).pan(0.9)
// chords · synth brass 1
const synth_brass_1 = note(`<
~@9 A B C B D E F@3 G ~@3 H I J I K L M@4 ~@4 N O P Q R S T U R V U W X V P C B Y Z C B Y ~@4 A B C B D E F@6 AA F@3 G
~@13 AB
>`.pickRestart({
A: "~@4 [a4,c#5,e5,f5] ~@5 [a4,c#5,e5] ~@5", B: "~@4 [a4,c#5,f#5] ~@5 [a4,c#5,f#5] ~@5",
C: "~@4 [a4,c#5,e5] ~@5 [a4,c#5,e5] ~@5", D: "~@4 [a4,d5,f#5] ~@5 [a4,d5,f#5] ~@5",
E: "~@4 [a4,d5,f#5] ~@7 [b4,e5,g#5] ~@3", F: "~@2 [b4,e5,g#5] ~@9 [b4,e5,g#5] ~@3", G: "~@2 [b4,e5,g#5] ~@13",
H: "~@12 [a4,c#5,e5] ~@3", I: "~@2 [a4,c#5,e5] ~@9 [a4,c#5,f#5] ~@3", J: "~@2 [a4,c#5,f#5] ~@9 [a4,c#5,e5] ~@3",
K: "~@2 [a4,c#5,f#5] ~@9 [a4,d5,f#5] ~@3", L: "~@2 [a4,d5,f#5] ~@9 [a4,d5,f#5] ~@3",
M: "~@4 [b4,e5,g#5] ~@5 [b4,e5,g#5] ~@5", N: "~@3 f4 a4@2 d5@2 a4@2 g4 ~ g4@2 f4 ~",
O: "~@3 g4 b4@2 d5@2 b4@2 a4 ~ a4@2 g4 ~", P: "~@2 g4 a4 c5 ~ g5@2 f5@2 e5@2 d5@2 c5@2",
Q: "~@2 e4 g4 a4 ~ e5@2 d5@2 c5@2 b4@2 a4 ~", R: "~@2 a4 c5 d5 ~ a5@2 g5@2 f5@2 e5@2 d5 ~",
S: "~@4 a4@2 d5@2 c5@2 b4@2 a4@2 g4 ~", T: "~@2 g4 a4 c5@2 g5@2 f5@2 e5@2 d5@2 c5 ~",
U: "~@2 g4 a4 c5 ~ g5@2 f5@2 e5@2 d5@2 c5 ~", V: "~@3 g4 a4@2 d5@2 c5@2 b4@2 a4@2 g4 ~",
W: "~@2 e4 g4 a4@2 e5@2 d5@2 c5@2 b4@2 a4 ~", X: "~@2 a4 c5 d5@2 a5@2 g5@2 f5@2 e5@2 d5@2",
Y: "~@4 [a4,d5,f5] ~@5 [a4,d5,f5] ~@5", Z: "~@4 [g#4,b4,e5] ~@5 [g#4,b4]@2 ~@4, ~@10 e5 ~@5",
AA: "~@2 [b4,e5] ~@9 [b4,e5,g#5] ~@3, ~ g#5@2 ~@13", AB: "~@8 [e5,a5] ~ [e5,a5] ~@5",
})).s("gm_synth_brass_1").gain(0.8).pan(0.1)
// other · synth brass 1
const synth_brass_1_2 = note(`<
~@8 A@2 B C D E ~@8 F@6 ~@8 G H I J@2 K L ~ G M N O P Q R S T U V W T X V Y Z@2 AA AB@2 AC E ~@23 AD@3
>`.pickRestart({
A: "[~@11 e4 ~ e4@2 d4@3 c#4@9 ~ e4 ~ e4@2]/2", B: "d4@2 c#4@4 e4@5 ~ d4@2 e4@2", C: "d4@2 c#4@9 ~ e4 ~ e4@2",
D: "d4@2 c#4@3 e4@5 ~@2 e4 e4@3", E: "d4 ~ d4@14",
F: "[~@4 e4 ~ e4@2 d4@2 c#4@9 ~ e4 ~ e4@2 d4@2 c#4@4 e4@4 ~@2 d4@2 e4@2 d4@2 c#4@9 ~ e4 e4@2 ~ d4@2 c#4@4 e4@5 ~ e4 ~ e4@2 d4 ~ d4@14 ~@8]/6",
G: "~@4 a4 ~ a4 ~ a4@4 g4@3 ~", H: "g4@2 f4@3 ~ f4@10", I: "~@4 g4!2 ~@2 g4@4 f4@3 ~",
J: "[f4@2 e4@2 ~@2 e4@12 ~@2 f4 ~ f4 ~ f4@4 e4@3 ~]/2", K: "e4@2 d4@3 ~ c4@6 ~ d4@2 ~", L: "e4",
M: "g4@2 f4@3 ~ g4@9 ~", N: "~@4 g4 ~ g4 ~ g4@4 f4@3 ~", O: "f4 e4 ~ e4@5", P: "~@4 f4 ~ f4 ~ f4@4 e4@3 ~",
Q: "e4@2 d4@3 ~ c4@6 ~ d4@3", R: "e4@11 ~ e4@3 ~", S: "e4@11 ~ d4@2 c#4@2", T: "b3@3 c#4@5",
U: "~@4 d4@3 ~ d4@5 ~ d4@2", V: "e4@15 ~", W: "~ e4 d4 c#4", X: "~@4 d4@3 ~ d4@4 ~@2 d4@2", Y: "e4@7 ~",
Z: "[g#4@23 ~@5 e4 ~ e4@2]/2", AA: "d4@2 c#4@8 ~@2 e4@3 ~",
AB: "[d4 ~ c#4@3 ~ e4@5 ~ d4 ~@2 d4@2 ~ c#4@9 ~ e4@4, ~@7 e4 ~@8]/2", AC: "d4 ~ c#4@3 ~ e4@5 ~ e4 e4@2 ~",
AD: "[~@8 c#4@15 b3@11 ~@2 e4 ~ e4@2 d4@2 c#4@2 ~@4]/3",
})).s("gm_synth_brass_1").gain(0.8).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
A@8 B A B A B A@3 C A C A C@3 A@10 B A B A@25 B A B A B A@2 C A@3 C A@2 C A@16 D
>`.pickRestart({
A: "x!4", B: "x ~ x ~ x ~ x!2", C: "x ~ x!3 ~ x ~", D: "x ~ x ~ x!2 ~@2",
})).gain(0.8)
// drums · snare
const snare = s("sd").struct(`<
~ A@7 B A B A B A@3 C A C A C@3 A@10 B A B D E F E F@3 G F E F E F@6 E F E F A@3 B A B A B A B A@4 C A@2 C A@16 H
>`.pickRestart({
A: "x!4", B: "x ~ x ~ x ~ x!2", C: "x ~ x!3 ~ x ~", D: "x ~ x!2 ~@2 x ~", E: "~@2 x!2 ~@4", F: "~@2 x!2 ~@2 x ~",
G: "x", H: "x ~ x ~ x!2 ~@2",
})).gain(0.8)
// drums · low tom
const low_tom = s("lt").struct("<~@37 A ~ A ~@3 B ~ A ~ A ~@6 A ~ A ~@36>".pickRestart({
A: "~@10 x!3 ~ x ~", B: "~@2 x!3 ~ x!3 ~@2 x!2 ~ x ~",
})).gain(0.8)
// drums · hihat
const hihat = s("hh").struct("<~ [x!8]!8 ~@69 [~@4 x!4] [x!8]!13 [x!6 ~@2]>").gain(0.8)
// drums · open hat
const open_hat = s("oh").struct("<~@43 x ~@49>").gain(0.8)
// drums · crash
const crash = s("cr").struct("<~@44 x ~@12 x ~@35>").gain(0.8)
// drums · ride
const ride = s("rd").struct("<~@9 A@28 B A B A@3 ~ C B A B A@6 B A B C A@20 D ~@14>".pickRestart({
A: "x!8", B: "x!5 ~@3", C: "~@2 x!6", D: "x!4 ~@4",
})).gain(0.8)
stack(
distortion_guitar, bass, overdriven_guitar, synth_brass_1, synth_brass_1_2, kick, snare, low_tom, hihat, open_hat,
crash, ride
)
More by Van Halen
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.