0:00/0:00
// Kittens Got Claws — Whitesnake
// 151 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 131 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(151/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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(`<
~ A B C D E F G H I@2 J K L@2 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@2 AN AO@2 AP AQ AR
AS AT AU AV AW AX AY AZ BA BB AY BC BD BE BF@2 ~ BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV@2 BW BX BY BZ CA CB
CC CD CE AY CF CG CH CI BC BD ~ CJ CK CL@2 CJ CK CM CN CO CP CQ CR CO CS CT CU CO CP CQ CR CO CS CV@2 ~@6
>`.pickRestart({
A: "c4 ~@3 a3 ~@3 [a4,d5,f#5]@5 ~@3", B: "a3 ~@3 [a4,d5,f#5] ~ a3 ~@3 [f#4,c#5] ~@3 [c4,g4]@2", C: "~@2 e3 ~@13",
D: "g3 ~ [a3,e4,a4] ~@7 c6@4 ~@2", E: "c#4 ~ a3 ~@11 [a4,d5,f#5] ~", F: "a3 ~@5 a3 ~ [g4,d5] ~ [f#4,c#5] ~@5",
G: "~@2 [d4,a4,d5] ~ [d4,a4,d5] ~@7 c4 ~ [d4,a4,d5] ~", H: "~@2 c4 ~ [d4,a4,d5] ~@5 [d4,a4,d5] ~ c4 ~ c4 ~",
I: "[[a3,a4]@27 ~@5]/2", J: "~@4 a3 ~ [a4,d5,f#5]@5 ~@5", K: "a3 ~ [a4,e5,g5] ~ [a4,d5,f#5] ~@7 [d4,a4] ~ [c4,g4] ~",
L: "[~@8 [a3,e4]@11 ~@5 b4@5 ~@3]/2", M: "c4 ~ a3 ~@7 [a5,d6,f#6]@4 ~@2",
N: "a3 ~ [a4,e5,g5] ~@5 [g4,d5] ~@3 d4 ~ c4 ~", O: "[a3,e4,a4] ~", P: "[d5,g5]@5 ~@11",
Q: "c4 ~ a3 ~@3 [a4,d5,f#5]@4 ~@6", R: "b4 ~ [e5,g5] ~@5 [g4,d5] ~@3 d4 ~@3", S: "[e4,a4]@11 ~@5",
T: "~@3 [g5,d6]@2 ~@4 [g5,d6]@4 ~@3", U: "c4 ~ a3 ~@9 [f#5,a5,c6]@3 ~",
V: "~@2 [e5,f#5] ~@3 a3 ~ [a4,e5] ~ e4 d4 ~@4", W: "~@4 d4 ~ [a4,c5] ~@5 d4 ~ [g3,d4,g4] ~", X: "~@4 a4 ~ d5 ~@9",
Y: "~@2 [d4,a4,d5,f#5] ~ c4 ~@3 [d4,a4,d5,f#5] ~ c4 ~@3 [d4,a4,d5,f#5] ~", // D
Z: "~@2 [d4,a4,d5,f#5] ~@5 [d5,a5] ~@3 [d5,a5] ~@3", AA: "a4", AB: "~@4 g5 ~@3 e6 ~@7",
AC: "c#4 ~ a3 ~@3 [a4,d5,f#5]@4 ~@6", AD: "~@2 [e5,g5] ~@3 a3 ~@3 [f#4,c#5] ~@3 c4 ~", AE: "~@12 [a4,d5,f#5]@3 ~",
AF: "~@4 [a3,a4,d5,f#5]@3 ~@5 [a3,a4,d5,f#5]@3 ~", AG: "c4 ~ a3 ~@11 [d6,g6]@2",
AH: "~@4 [a4,d5,f#5] ~ a3 ~@5 a3 ~ g3 ~", AI: "[a3,e4,a4]@5 ~@3 [a3,e4,a4] ~@7",
AJ: "c4 ~ a3 ~@3 [d4,a4,d5,f#5]@4 ~@6", AK: "d4 ~ [d5,g5] ~@5 [g4,d5] ~ [f#4,c#5] ~@5", AL: "~@14 [g5,c6] ~",
AM: "[~@6 [a5,d6] ~@3 [e5,a5] ~@3 [e5,a5]@5 ~@11 [d5,g5,b5] ~]/2", AN: "b6 f#6 g5 c5 ~@4 a3 ~ g3 e3 ~@4",
AO: "[[d4,d5,f#5] ~ d4 ~@7 d4 ~ d4 ~ [g3,d4,g4,b4,d5]@5 ~@7 [d4,a4] ~ [d4,a4,d5,f#5]@3 ~]/2", // D G D5 D
AP: "~@6 g3 ~@3 d6@3 ~@3", AQ: "d6 ~ c#6 ~@9 g#4@3 ~", AR: "[b3,f#4,b4,d#5]@4 ~@2 d#4 ~@9",
AS: "~@2 [b4,g#5] ~@3 [a#4,g5] ~@3 f#5 ~@3 d5 ~", AT: "[a3,e4,a4]@3 ~@7 a4 ~@3 g4 ~", AU: "~@4 g3 ~ [d4,a4,d5] ~@9",
AV: "d4 ~ [d4,a4,d5,f#5] ~@3 c4 ~ [d4,a4,d5,f#5] ~@3 c4@3 ~", AW: "c5 ~ [a5,d6]@3 ~@3 [a5,d6]@3 ~@5",
AX: "[a3,e4,a4,c#5] ~ [a3,e4] ~@7 c4 ~ [d4,a4,d5,f#5]@4", // A A5 D
AY: "~@4 [d5,g5,b5,d6] ~@3 [d5,g5,b5,d6] ~@3 [d5,f#5,a5,d6]@3 ~", AZ: "~@2 [c#4,c#5] ~@3 [g3,d4,g4,d5,g5]@4 ~@6",
BA: "a3 ~ [c5,g5,c6] ~@3 [c5,g5,c6] ~@3 [d5,g5,b5] ~@5", BB: "[a3,e4,a4,c#5] ~ [a3,e4] ~@9 c4 ~ [d4,a4,d5,f#5]@2",
BC: "[c4,g4,d5,g5]@3 ~@9 [g3,d4,g4,d5,g5]@4", BD: "~@4 [a3,d4,a4,d5] ~@3 [a3,d4,a4,d5] ~@3 [g3,c4,g4,c5]@3 ~",
BE: "~@12 [a3,e4,a4] ~@3", BF: "[~@8 a3@3 ~ d5@15 ~@5]/2", BG: "~@5 e3@2 ~", BH: "~@4 a3 ~ [a4,d5,f#5]@3 ~@7",
BI: "e3 ~@3 [a4,d5,f#5] ~@3 [g4,d5] ~@3 [g3,g4,d5] ~@3", BJ: "[a3,a4,e5]@3 ~@11 [a4,d5,f#5]!2", BK: "~@14 g3 a3",
BL: "c4 ~@5 [a4,d5,f#5]@4 ~@6", BM: "~@2 [a4,e5,g5] ~@5 g5@5 ~@3",
BN: "[a3,e4,a4,c#5] ~@3 [a3,e4,a4,c#5] ~@3 [a3,e4,a4]@3 ~@3 [g#3,d#4,g#4] ~", BO: "~@14 a3 ~",
BP: "c4 ~@5 [a4,d5,f#5]@3 ~@7", BQ: "[a5,d6,f#6] ~ d5 ~@3 [e5,g5] ~@5 [e5,g5]@3 ~",
BR: "~@4 [a3,a4,d5,g5]@3 ~@5 [a3,a4,d5,g5]@3 ~", BS: "~@4 [g3,d4,g4,d5,g5]@3 ~@5 [g3,d4,g4,d5,g5] ~ g3 ~",
BT: "~@4 a3 ~ [a4,d5,f#5]@4 ~@2 a5 c#6 e6 c#6", BU: "a5 b5 g5 e5 g5 d5 c#5 d5 c#5 g4 a4 e4 a3 g3@2 ~",
BV: "[~@4 d4 ~ [d4,c5,e5] ~@3 d4 ~@3 [g3,d4,g4,b4,d5]@5 ~@3 d4 ~ [d4,a4,d5,f#5]@3 ~@5]/2", // C G D
BW: "g3 ~ [a3,e4,a4] ~@9 e4 ~ b4 ~", BX: "~@2 [c#5,a5] ~@3 [e5,c#6]@5 ~@5", BY: "~@4 b3 ~ d#4 ~@7 e3@2",
BZ: "~@4 [a5,f#6] ~@3 [b5,g#6]@5 ~@3", CA: "~@10 [a4,a5] ~@5", CB: "[g3,d4,a4,d5]@4 ~@6 b4 ~ [g3,d4,g4,d5]@4",
CC: "~@4 [d4,a4,d5] ~@3 [d4,a4,d5] ~@3 c4@3 ~", CD: "c5 ~ [a5,d6]@4 ~@4 [d6,f#6] ~@5",
CE: "[a3,e4,a4] ~@7 [g3,d4,a4,d5,f#5]@3 ~@3 [d4,a4,d5]@2", CF: "~@4 [a3,e4,a4] ~ [g3,d4,g4,d5,g5]@5 ~@5",
CG: "~@2 [c5,e5,g5,c6] ~@3 [c5,e5,g5,c6] ~@3 [b4,d5,g5,b5] ~@5", CH: "[a3,e4,a4] ~@11 [d4,a4,d5] ~@3",
CI: "~@2 [d5,g5,b5,d6] ~@3 [d5,g5,b5,d6] ~@3 [d5,f#5,a5,d6] ~@5", CJ: "[b3,f#4,b4]@3 ~@3 [g#5,b5,e6]@4 ~@6",
CK: "e5 ~ d#5 ~@5 c#4 ~ b3 ~@5", CL: "[[b3,f#4,b4]@3 ~@3 [b4,e5]@4 ~@4 [a3,e4,a4]@5 ~@3 d5 ~ e5 ~@7]/2",
CM: "[b3,f#4,b4]@3 ~@3 [b4,e5]@4 ~@6", CN: "~@4 [a3,e4,a4] ~@3 [a3,e4,a4] ~@3 [a3,e4,a4]@3 ~",
CO: "[b3,f#4,b4]@3 ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~@3 [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~", // B5
CP: "[b3,f#4,b4] ~ [e3,b3,e4,g#4,b4] ~@3 [e3,b3,e4,g#4,b4] ~ [e4,g#4,c#5]@3 ~ [e4,g#4,c#5]@3 ~", // B5 E C#m
CQ: "[e3,b3,e4,a4]@3 ~ a3 ~ [e3,b3,e4,g#4,b4] ~@3 a3 ~ [a3,e4,a4]@3 ~", // Esus4 E A5
CR: "a3 ~ [a3,e4,a4] ~@3 a3 ~ [a4,d5] ~ a3 ~ [a4,d5]@3 ~", // A5 D5
CS: "[b3,f#4,b4] ~ [e4,g#4,c#5] ~@3 [e4,g#4,c#5] ~ [e4,g#4,b4]@3 ~ [e4,g#4,b4]@3 ~", // B5 C#m E
CT: "[e3,b3,e4,g#4,b4]@3 ~ [e3,b3,e4,g#4,b4] ~ [e3,b3,e4,g#4,b4] ~@3 [e3,b3,e4,g#4,b4] ~ [a3,e4,a4,c#5] ~@3", // E A
CU: "a3 ~ [a4,d5] ~@3 a3 ~ [a4,d5] ~ b3 ~ a3 ~@3", // D5
CV: "[[e3,b3,e4,g#4,b4]@3 ~@3 [e3,b3,e4,g#4,b4] ~@3 [e3,b3,e4,g#4,b4] ~ [a3,e4,a4]@8 ~@12]/2", // E A5
})).s("gm_distortion_guitar").gain(0.36).pan(0.3)
// chords · distortion guitar
const distortion_guitar_2 = note(`<
~ A B C D E F G H I@2 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@2 AK AL AF AM AN AO AP AQ AR AS
AT AU AV AW AX AY AZ BA BB BC BD BA BE BF BG@2 BH ~@2 BI BJ BK BL BM BN BO BP BQ BR BS BT BU ~ BV BW BX BY BZ CA CB CC
CD CE CF BA CG CH CI CJ BE BF ~ CK CL CM CN CK CL CO@2 ~@22
>`.pickRestart({
A: "~@2 a3 ~@3 [a4,d5,f#5]!2 ~@8", B: "~@2 [a4,e5,g5] ~@5 [g4,d5] ~@3 [d4,a4] ~@3", C: "~@6 [a3,e4,a4]@5 ~@5",
D: "~@6 g3 ~ [a3,e4,a4] ~@7", E: "~@4 a3 ~ [a4,d5,f#5]@5 ~@5",
F: "~@2 [a4,e5,g5] ~ [a4,d5,f#5] ~@7 [d4,a4] ~ [c4,g4] ~", G: "~@6 c4 ~ [d4,a4,d5] ~ [d4,a4,d5] ~@5",
H: "[d4,a4,d5] ~@5 c4 ~ [d4,a4,d5] ~@7", I: "[e4@27 ~@5]/2", J: "c4 ~ a3 ~@11 [a4,d5,f#5] ~",
K: "~@6 a3 ~ [g4,d5] ~ [f#4,c#5] ~@5", L: "[a3,e4,a4]@5 ~@11", M: "~@4 [a3,e4] ~ c#5 ~@9",
N: "~@4 a3 ~ [a4,d5,f#5]@3 ~@7", O: "~@4 [a4,d5,f#5] ~ a3 ~@3 [f#4,c#5] ~@5", P: "~@12 [a3,e4,a4]@3 ~",
Q: "~@2 g3@5 ~@3 [f#5,a5,c#6]@4 ~@2", R: "~@4 a3 ~@7 d5 ~ d5 ~", S: "~@4 [d5,f#5] ~ a3 ~@3 [f#4,c#5] ~@3 c4 ~",
T: "a3@11 ~@5", U: "[g5,d6] ~@2 [g5,d6] ~@4", V: "~@4 a3 ~ [a4,d5,f#5]@4 ~@6", W: "~@4 [d5,f#5] ~@4 g4 ~@2 c4 ~ c4 ~",
X: "[d4,a4,d5] ~ d4 ~@5 d4 ~ d4 ~@5", Y: "d5 ~ b4 ~@5 [d4,a4,d5]@3 ~@5",
Z: "[d4,a4,d5,f#5] ~@5 [d4,a4,d5,f#5] ~@5 [d4,a4,d5,f#5] ~@3", // D
AA: "c4 ~@3 [d4,a4,d5,f#5] ~ [d5,a5] ~@3 [d5,a5] ~@3 [d5,a5] ~", AB: "[a3,e4]", AC: "~@2 d5 ~@3 b5 ~@3 b5@4 ~@2",
AD: "~@4 a3 ~@7 [d5,f#5]@3 ~", AE: "a4 ~@3 [d5,f#5] ~@3 [g4,d5] ~@3 d4 ~@3", AF: "[a3,e4,a4] ~",
AG: "[a3,a4,d5,f#5]@3 ~@5 [a3,a4,d5,f#5]@3 ~@5", AH: "~@4 e3 ~ [a4,d5,f#5]@5 ~@5",
AI: "~@2 [a4,e5,g5] ~@5 [d4,d5] ~ [c#4,c#5] ~@5", AJ: "[~@12 [e6,g6]@12 ~@4 [e6,g6]@3 ~]/2", AK: "~@4 a3 ~@7 d4@3 ~",
AL: "~@4 [d5,f#5] ~ a3 ~@5 d4 ~ c4 ~", AM: "[g5,c#6]@4 ~@4 [a5,d6] ~@3 [e5,a5] ~@3",
AN: "~@4 a3 ~ [d4,a4,d5,f#5]@5 ~@5", AO: "~@4 a4 g4 e4 d4 ~@4 e3@3 ~", AP: "~@4 d4 ~ [d4,c5,e5]@3 ~@7",
AQ: "~@4 a4 ~ d4 ~ [d4,a4,d5,f#5] ~@7", AR: "g3 ~ [a3,e4,a4] ~@5 a4 ~@5 c#6 ~", AS: "~@4 a5 ~ g5@4 ~@6",
AT: "~@10 d#4 c#4 b3 ~ e3@2", AU: "~@4 [b4,g#5] ~@3 a4 ~@3 g#4 ~@3", AV: "~@4 a3 ~ b4@3 ~@3 e4 ~@3",
AW: "[g3,d4,a4,d5]@3 ~@7 g3 ~ [g3,d4,g4,b4]@3 ~", AX: "~@4 [d4,a4,d5,f#5] ~@5 [d4,a4,d5,f#5] ~@5",
AY: "~@6 [c6,e6] ~@5 [a5,d6]@3 ~", AZ: "~ [a3,d4,a4,d5,f#5] ~@2",
BA: "~@2 [d5,g5,b5,d6] ~@3 [d5,g5,b5,d6] ~@3 [d5,f#5,a5,d6] ~@5", // G D
BB: "[d4,d5] ~@3 [a3,e4,a4] ~@7 [b3,d4,g4] ~ [g3,d4,g4,d5,g5] ~", // D A5 G G5
BC: "~@4 [c5,g5,c6] ~@3 [c5,g5,c6] ~@3 [d5,g5,b5]@3 ~", BD: "~@3 [a3,d4,a4,d5,f#5]@2 ~@3",
BE: "~@3 [c4,g4,d5,g5]@2 ~@3", BF: "~@2 [a3,d4,a4,d5] ~@3 [g3,c4,g4,c5] ~@3 [a3,d4,a4,d5] ~@5",
BG: "[~@14 [a3,e4,a4]@7 ~@7 e6@3 ~]/2", BH: "a6@5 ~@11", BI: "c4 ~ a3 ~@7 [a5,d6,f#6]@4 ~@2",
BJ: "~@2 [e5,g5] ~@3 a3 ~@3 [f#4,c#5] ~@3 [a3,b4,e5] ~", BK: "~@4 a3@5 ~@7", BL: "[a4,d5,f#5] ~",
BM: "~@2 a3 ~ a3 ~@7 [a5,d6,f#6] ~ [d6,f#6]@2", BN: "~@4 [a4,d5,f#5] ~@11",
BO: "~@2 [a3,e4,a4,c#5] ~@3 [a3,e4,a4] ~@5 [a3,e4,a4] ~@3", BP: "[g3,d4,g4] ~",
BQ: "~@2 a3 ~ a3 ~@5 [a4,d5,f#5]@4 ~@2", BR: "~@4 c#5 ~@3 [e5,g5]@3 ~@5",
BS: "[a3,a4,d5,g5]@3 ~@5 [a3,a4,d5,g5]@3 ~@5", BT: "[g3,d4,g4,d5,g5]@3 ~@5 [g3,d4,g4,d5,g5]@3 ~@5",
BU: "c4 ~ a3 ~@13", BV: "[d4,d5,f#5] ~ d4 ~@5 d4 ~@3 d4 ~@3", BW: "~@4 [g3,d4,g4,b4,d5] ~@7 [d4,a4,d5]@3 ~",
BX: "~@6 g3 ~ [a3,e4,a4]@3 ~@5", BY: "[b4,g5] ~@3 [d5,b5] ~@11", BZ: "[b3,f#4,b4,d#5] ~ b3 ~@7 d#4 c#4 b3 ~@3",
CA: "~@2 a5 ~@3 [a#5,f#6] ~@9", CB: "[a3,e4,a4]@4 ~@2 [b4,b5]@3 ~@3 e4 ~ g3 ~", CC: "~@6 [g3,d4,a4,d5]@3 ~@7",
CD: "~@2 [d4,a4,d5] ~@3 c4 ~@3 [d4,a4,d5] ~@5", CE: "~@8 [a5,d6] ~@3 [a5,d6]@3 ~",
CF: "~@2 a3 ~ a3 ~ [a3,d4,a4,d5,f#5] ~@5 [d4,a4] ~@3", CG: "[d4,d5] ~ [c#4,c#5] ~@11 [g4,d5,g5]@2",
CH: "~@4 [c5,e5,g5,c6] ~@3 [c5,e5,g5,c6] ~@3 [b4,d5,g5,b5]@3 ~", // C G
CI: "~@2 a3 ~ a3 ~ [a3,d4,a4,d5,f#5]@4 ~@4 [d4,a4,d5]@2", // D D5
CJ: "~@4 [d5,g5,b5,d6] ~@3 [d5,g5,b5,d6] ~@3 [d5,f#5,a5,d6]@3 ~", CK: "~@4 [b3,f#4,b4] ~@7 [f#5,b5,d#6]@3 ~",
CL: "~@4 b4 ~ d#4 ~@5 b4@3 ~", CM: "~@4 [b3,f#4,b4] ~@7 [b3,f#4,b4] ~@3",
CN: "~@2 [f#5,a#5,d#6] ~ [e5,a#5,c#6] ~@5 c#5 ~ b4@3 ~", // D#m A#dim
CO: "[~@4 [b3,f#4,b4] ~@7 [a3,e4,a4]@7 ~@3 [a3,e4,a4] ~@3 [a3,e4,a4] ~@5]/2", // B5 A5
})).s("gm_distortion_guitar").gain(0.36).pan(0.8)
// chords · overdriven guitar
const overdriven_guitar = note("<~ A B@3 C@2 D E ~@100 F@2 G@2 H I J K L M N O P Q R ~@7>".pickRestart({
A: "~ a5",
B: "[~@2 a5 ~ c6 ~ d6@3 ~ [b4,d5,f#5] d6@8 ~ g6 c5 g4 d5 g6 c5 g6!3 c5 g6 c5@2 ~ a4 ~ c#5 ~ d5 ~ d5 c#5 ~ d5 ~ c#5 d5@2]/3", // Bm
C: "[~@2 g4@4 ~@2 f#5 ~ c6@11 ~@3 c6 ~ d6 ~ c6 ~ d6@2]/2", D: "~@2 d6@5 ~@3 g6 ~ [g6,c7] ~ [g6,c7] ~",
E: "[g6,c7] ~ [g6,c7] ~ [g6,c7] ~ [g6,c7] ~ [g6,c7] ~ [g6,c7] ~ [g6,c7]@3 ~", // C5
F: "[c#7@3 ~ c#7 ~ d7 ~ c#7 ~ c#7 ~ d7 ~ c#7@5 ~ c#7 ~ b6 ~ c#7 ~ c#7@4 ~@2]/2",
G: "[c#7 ~ c#7 b6 c#7 ~ b6 ~ [e6,g#6] ~ [e6,g#6] ~ [e6,g#6] ~ [f#6,a6]@5 ~ [e6,g#6] ~ [d#6,f#6] ~ [d#6,f#6] ~ [d#6,f#6] ~ [c#6,e6] [e6,g#6] [c#6,e6] [e6,g#6]]/2", // E F#m E D#m C#m E C#m E
H: "a6 ~ a6 f#6 a6 f#6 g#6 ~ g#6 ~ g#6 f#6 e6 c#6 f#6 c#6", I: "e6 ~ e6 c#6 e6 c#6 d#6!3 ~ c#6 b5 a4 ~ e5 ~",
J: "d#5 b5 a5 f#5 e5 d#5 b4 a4 f#4 e4 c#4 b3 a3@3 ~", K: "e3 ~ e3@4 ~@2 e3 ~ e3 ~ e3 ~ e3 g#5",
L: "[g#6,a#6] ~ [g#6,b6] ~ [g#6,b6] ~ [g#6,b6] ~ [f#6,a6] ~ [f#6,a6] ~ [f#6,a6] ~ [f#6,g#6] ~", // G#sus2 G#m F#m F#sus2
M: "[e6,f#6] ~ [e6,g#6] ~ [e6,g#6] ~ [e6,f#6] ~ [e6,f#6] ~ [d#6,f#6] ~ [d#6,f#6] ~ [d#6,f#6] ~", // Esus2 E Esus2 D#m
N: "[c#6,e6] ~ [c#6,e6] ~ [c#6,e6] ~ [c#6,e6]!2 [c#6,d#6] ~ [b5,d#6] ~ [b5,d#6] ~ [f#5,a5]@2", // C#m C#sus2 B F#m
O: "~@2 [f#5,a5] ~ [f#5,a5] ~ [f#5,a5] ~ [f#5,a5]@3 ~ [b5,d#6,f#6]@3 ~", // F#m B
P: "[a5,d6] [f#5,b5] [e5,a5] [d5,f#5] [a5,d6] [f#5,b5] [e5,a5] [d5,f#5] [a5,d6] [f#5,b5] [e5,a5] [d5,f#5] [a5,d6] [f#5,b5] [e5,g#5] ~", // D5 B5 A5 D D5 B5 A5 D …
Q: "[e5,g#5] [d#5,f#5] [e5,g#5] ~ [d#5,f#5] ~ [e5,g#5] ~ [d#5,f#5] ~ [e5,g#5] [d#5,f#5] [f#5,b5] ~ [f#5,b5] ~", // E D#m E D#m E D#m E D#m …
R: "[e5,a5] ~ [d#5,f#5] ~ [b4,d#5] ~ [b5,d#6] ~ [b5,d#6]@4 ~@2 [b5,d#6] [a5,c#6]", // A5 D#m B A
})).s("gm_overdriven_guitar").gain(0.36)
// chords · overdriven guitar
const overdriven_guitar_2 = note("<~@47 A B ~@12 C D ~@35 E@2 ~@8 F ~@22>".pickRestart({
A: "~@8 [a3,e4] ~ c#5@3 ~ c#5 ~", B: "d5 ~ c#5 g4 a4 ~ g4@4 ~@2 e4@3 ~", C: "[g5,g6]@2 ~ [g5,g6]@2 ~ [g5,g6]@2",
D: "~@2 [a3,d4,a4,d5] ~ [a3,d4,a4,d5] ~ [g3,c4,g4,c5] ~ [a3,d4,a4,d5] ~ [a3,d4,a4,d5] ~ [g3,c4,g4,c5]@3 ~", // D5 C5 D5 C5
E: "[[g5,g6]@4 ~@2 [g5,g6]@4 ~@2 [g5,g6]@15 ~@5]/2", F: "~@2 [f#5,a#5,d#6] ~ [e5,a#5,c#6] ~ d5 ~ e5 ~ c#5 ~ b4@3 ~",
})).s("gm_overdriven_guitar").gain(0.41)
// bass · electric bass pick
const bass = note(`<
A B C B D E C F G E H E C E@3 I E@3 C E@3 I J K L M E H E C E@3 I E@3 C E C E I J N O P Q R S T U V E C E C E W X Y V
Z AA E H E C E@3 I E@3 C E C E I J N O P Q R S T U V E C E C E W X Y ~ AB ~ AB ~ AB ~ AB AC AD AE AF AG AD AH AF AI AD
AE AF AJ AD AH AF AK AL AM L AN AO AP
>`.pickRestart({
A: "~@12 f#3@3 ~", B: "a2@3 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~", C: "a2 ~ e3 ~ d3 ~ c#3 ~ d3 ~ c#3 ~ a2 ~ g2 ~",
D: "g2 ~ a2 ~ a2 ~ g2 ~ a2@3 ~ a2 ~ g2 ~", E: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~",
F: "~@2 d3 ~ d3 ~ c3 ~ d3 ~ d3 ~ c3 ~ d3 ~", G: "d3 ~ c3 ~ d3 ~ c3 ~ d3 ~ d3 ~ c3 ~ e2 ~",
H: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ g2 ~", I: "a2 ~ a2 ~ a2 ~ e2 ~ g2 ~ a2 ~ c3 ~ e2 ~",
J: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ g2 ~", K: "g2 ~ g2 ~ g2 ~ d3 ~ d3 ~ d3 ~ d3 ~ a2 ~",
L: "d3 ~ d3 ~ c3 ~ d3 ~ d3 ~ c3 ~ d3 ~ d3 ~", M: "c3 ~ d3 ~ d3 ~ c3 ~ d3 ~ d3 ~ c3 ~ e2 ~",
N: "g2@3 ~ g2 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~", O: "g2 ~ a2 ~ a2 ~ g2 ~ a2@3 ~ a2@3 ~",
P: "g2 ~ a2 ~ a2 ~ g2 ~ a2 ~ e2 ~ g2 ~ a2 ~", Q: "b2@3 ~ b2 ~ b2 ~ b2 ~ b2 ~ g2 ~ e2@2",
R: "~@2 e2 ~ f#2 ~ e2 ~ g2 ~ e2 ~ g#2 ~ e2 ~", S: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ e2 ~",
T: "g2@3 ~ e2 ~ g2@3 ~ e2 ~ g2@3 ~", U: "e2 ~ d3 ~ d3 ~ c3 ~ d3 ~ d3 ~ c3@3 ~", V: "~@12 a3@3 ~",
W: "a2 ~ e3 ~ d3 ~ c#3 ~ d3 ~ c#3 ~ a2 ~ e2 ~", X: "c3@3 ~@3 c3 ~ c3@3 ~ g2@4",
Y: "~@2 d3 ~ d3 ~ c3 ~ d3 ~ d3 ~ c3@3 ~", Z: "a2@3 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ e3 ~",
AA: "a3!2 ~ a3 g3!2 ~ g3 f#3!2 ~ f#3 e3!2 ~ e3", AB: "b2@3 ~ b2@8 ~@4", AC: "~@12 a2 ~ b2 ~",
AD: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~", AE: "b2 ~ e2 ~ a2 ~ b2 ~ d3 ~ b2 ~ a2 ~ b2 ~",
AF: "e2 ~ e2 ~ g#2 ~ g#2 ~ b2 ~ e2 ~ a2 ~ a2 ~", AG: "e2 ~ a#2 ~ a#2 ~ e2 ~ a#2 ~ a#2 ~ e2 ~ a#2 ~",
AH: "e2 ~ e3@3 ~ d3@3 ~ d3 ~ c#3 ~ b2 ~", AI: "e2 ~ d3 ~ c#3 ~ a2 ~ d3 ~ c#3 ~ e2 ~ a2 ~",
AJ: "e2 ~ a2 ~ a2 ~ e2 ~ a2 ~ a2 ~ e2 ~ a2 ~", AK: "a2 ~ c#3 ~ c#3 ~ c#3 ~ d3 ~ d3 ~ e3 ~ a2 ~",
AL: "c3@3 ~ a#2 ~ c3@3 ~ a#2 ~ c3@3 ~", AM: "~@2 g2 ~ g2@3 ~ g2@3 ~ g2@3 ~",
AN: "c3 ~ d3 ~ d3 ~ c3 ~ d3 ~ d3 ~ c3@3 ~", AO: "d3 ~ d3 ~ c3 ~ d3 ~ d3 ~ d#4 ~ d#4 ~ d#4 ~",
AP: "c4 ~ d#4 ~ d#4 ~ c4 ~ d#4 ~ d#4 ~ c4@3 ~",
})).s("gm_electric_bass_pick").gain(0.46)
// bass · acoustic bass
const bass_2 = note(`<
A B C B D E C F G E H E C E@3 I E@3 C E@3 I J K L M E H E C E@3 I E@3 C E C E I J N O P Q R S T U V E C E C E W X Y V
Z AA E H E C E@3 I E@3 C E C E I J N O P Q R S T U V E C E C E W X Y ~ AB ~ AB ~ AB ~ AB AC AD AE AF AG AD AH AF AI AD
AE AF AJ AD AH AF AK AL AM L AN AO AP
>`.pickRestart({
A: "~@12 f#2@3 ~", B: "a1@3 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", C: "a1 ~ e2 ~ d2 ~ c#2 ~ d2 ~ c#2 ~ a1 ~ g1 ~",
D: "g1 ~ a1 ~ a1 ~ g1 ~ a1@3 ~ a1 ~ g1 ~", E: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
F: "~@2 d2 ~ d2 ~ c2 ~ d2 ~ d2 ~ c2 ~ d2 ~", G: "d2 ~ c2 ~ d2 ~ c2 ~ d2 ~ d2 ~ c2 ~ e1 ~",
H: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ g1 ~", I: "a1 ~ a1 ~ a1 ~ e1 ~ g1 ~ a1 ~ c2 ~ e1 ~",
J: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ g1 ~", K: "g1 ~ g1 ~ g1 ~ d2 ~ d2 ~ d2 ~ d2 ~ a1 ~",
L: "d2 ~ d2 ~ c2 ~ d2 ~ d2 ~ c2 ~ d2 ~ d2 ~", M: "c2 ~ d2 ~ d2 ~ c2 ~ d2 ~ d2 ~ c2 ~ e1 ~",
N: "g1@3 ~ g1 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~", O: "g1 ~ a1 ~ a1 ~ g1 ~ a1@3 ~ a1@3 ~",
P: "g1 ~ a1 ~ a1 ~ g1 ~ a1 ~ e1 ~ g1 ~ a1 ~", Q: "b1@3 ~ b1 ~ b1 ~ b1 ~ b1 ~ g1 ~ e1@2",
R: "~@2 e1 ~ f#1 ~ e1 ~ g1 ~ e1 ~ g#1 ~ e1 ~", S: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ e1 ~",
T: "g1@3 ~ e1 ~ g1@3 ~ e1 ~ g1@3 ~", U: "e1 ~ d2 ~ d2 ~ c2 ~ d2 ~ d2 ~ c2@3 ~", V: "~@12 a2@3 ~",
W: "a1 ~ e2 ~ d2 ~ c#2 ~ d2 ~ c#2 ~ a1 ~ e1 ~", X: "c2@3 ~@3 c2 ~ c2@3 ~ g1@4",
Y: "~@2 d2 ~ d2 ~ c2 ~ d2 ~ d2 ~ c2@3 ~", Z: "a1@3 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ e2 ~",
AA: "a2!2 ~ a2 g2!2 ~ g2 f#2!2 ~ f#2 e2!2 ~ e2", AB: "b1@3 ~ b1@8 ~@4", AC: "~@12 a1 ~ b1 ~",
AD: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", AE: "b1 ~ e1 ~ a1 ~ b1 ~ d2 ~ b1 ~ a1 ~ b1 ~",
AF: "e1 ~ e1 ~ g#1 ~ g#1 ~ b1 ~ e1 ~ a1 ~ a1 ~", AG: "e1 ~ a#1 ~ a#1 ~ e1 ~ a#1 ~ a#1 ~ e1 ~ a#1 ~",
AH: "e1 ~ e2@3 ~ d2@3 ~ d2 ~ c#2 ~ b1 ~", AI: "e1 ~ d2 ~ c#2 ~ a1 ~ d2 ~ c#2 ~ e1 ~ a1 ~",
AJ: "e1 ~ a1 ~ a1 ~ e1 ~ a1 ~ a1 ~ e1 ~ a1 ~", AK: "a1 ~ c#2 ~ c#2 ~ c#2 ~ d2 ~ d2 ~ e2 ~ a1 ~",
AL: "c2@3 ~ a#1 ~ c2@3 ~ a#1 ~ c2@3 ~", AM: "~@2 g1 ~ g1@3 ~ g1@3 ~ g1@3 ~",
AN: "c2 ~ d2 ~ d2 ~ c2 ~ d2 ~ d2 ~ c2@3 ~", AO: "d2 ~ d2 ~ c2 ~ d2 ~ d2 ~ d#3 ~ d#3 ~ d#3 ~",
AP: "c3 ~ d#3 ~ d#3 ~ c3 ~ d#3 ~ d#3 ~ c3@3 ~",
})).s("gm_acoustic_bass").gain(0.46)
// drums · kick
const kick = s("bd").struct(`<
~ A@2 B C A@2 D A@3 B C A@2 B E A@2 B C A@4 B C F G B C B C B A B C B C B C B C B H B C B C B A B C G ~ B C B C B A I
G ~ B C A@2 B C A@2 B C A@2 B C A@2 B E B C F G B C B ~ G ~ B C B C B J ~ G ~ A@2 B C A@2 D A B A B C A B K E L B K J
// … 38 more lines
More by Whitesnake
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.