0:00/0:00
// Foxy Lady — Jimi Hendrix
// 92 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 88 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/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 · rock organ · "ORGAN 3"
const rock_organ = note(`<
~ A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 C@2 D@2 E@2 F G H ~ A@2 B@2 A@2 B@2 A@2 I@2 D@2 E@2 F G H ~ J K L M J K
L M J K L M J K L N D@2 E@2 F G H ~@3 A@2 B@2 O P@2 Q R
>`.pickRestart({
A: "[[e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@6 [g#4,d5,g5] ~ [e3,e4]@2 ~@2 [e3,e4]@4 [g#4,d5,g5]@6 ~@2 [e3,e4]@2 ~@2 [e3,e4]@4 [g#4,g5]@8 [a3,a4]@4 [a#3,a#4]@4 [b3,b4]@4 [d4,d5]@4, ~@30 g#4@10 d5@7 ~@17]/2", // E G E G E G#maj7 A A# …
B: "[e3@3 ~ e3@4 [e4,g#4,d5,g5]@6 [g#4,d5,g5] ~ e3@2 ~@2 e3@4 [e4,g#4,d5,g5]@5 ~ [g#4,d5,g5] ~ e3@3 ~ e3@4 [e4,g#4,d5,g5]@6 [e4,g#4,d5] ~ [a3,a4]@3 ~ [a#3,a#4]@4 [b3,b4]@4 [d4,d5]@4, f3 ~@13 e4@2 ~@14 e4@4 ~@12 g5@2 ~@16]/2", // E7 G E7 G E7 A A# B …
C: "[e3@3 ~ e3@4 [e4,g#4,d5,g5]@6 [g#4,d5,g5] ~ e3@2 ~@2 e3@4 [e4,g#4,d5,g5]@5 ~ [g#4,d5,g5] ~ e3@3 ~ e3@4 [e4,g#4,d5,g5]@6 [e4,g#4,d5] ~ [a3,a4]@3 ~ [a#3,a#4]@4 ~ [c#6,f#6,g#6,a#6] a#5 d#5 a#4 g#4 d#4@2, f3 ~@13 e4@2 ~@14 e4@4 ~@12 g5@2 ~@8 [b3,b4]@4 [d4,d5]@4, ~@62 f#4 ~]/2", // E7 G E7 G E7 A A# F# …
D: "[[e3,c#4,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@6 [g#4,g5]@2 [e3,e4]@3 ~ [e3,e4]@4 [g#4,g5]@6 [g#4,g5]@2 d3@2 ~@2 d3@2 ~@2 d4@2 ~@2 d3@2 ~@2 [a2,c#5]@8 ~@4 a2 ~@3, [f#3,g#3,a3] ~@23 d5@24 e5@16, ~ a4, ~@32 f#5@15 ~@10 d5@7, ~@32 c3 ~@23 a3@5 ~@3]/2", // C#m E G G#maj7 E G#maj7 A F#m
E: "[e3@3 ~ e3@4 [g#4,d5,g5]@6 [g#4,d5,g5]@2 [e3,e4]@3 ~ [e3,e4]@4 ~@4 e4@2 ~@2 [d5,f#5]@16 c#5@16, e4@8 ~@16 [g#4,d5,g5]@7 e3@2 ~@31, ~ [e5,a5]]/2", // G E D G A5
F: "[e3,e4]@3 ~ [e3,e4]@4 [g#4,g5]@5 ~ [g#4,g5]@2 [e3,e4]@2 ~@2 [e3,e4]@4 [g#4,g5]@5 ~ [g#4,g5]@2, ~@4 d5@3 ~@5 d5@3 ~", // E G#maj7 E G#maj7
G: "d3@2 ~ d3@4 ~ d4@4 d3@2 ~@2 a2@3 ~ a2@4 a3@4 [e3,g4]@4, [a4,d5,f#5]@15 ~ e5@15 ~, ~@4 [a4,c#5]@3 ~", // Em D A
H: "[e3,e4,b4,e5] ~@7, a4 ~@31", // E5
I: "[e3@3 ~ e3@4 [e4,g#4,d5,g5]@6 [g#4,d5,g5] ~ e3@2 ~@2 e3@4 [e4,g#4,d5,g5]@5 ~ [g#4,d5,g5] ~ e3@3 ~ e3@4 [e4,g#4,d5,g5]@6 [e4,g#4,d5] ~ [d4,d5]@3 ~ [d4,d5]@4 ~ [c#6,f#6,g#6,a#6] a#5 d#5 [d#4,a#4,d#5] g#4 d#4@2, f3 ~@13 e4@2 ~@14 e4@4 ~@12 g5@2 ~@8 [d#4,d#5]@4 ~@2 f#4 ~]/2", // E7 G E7 G E7 D F# D#5 …
J: "[e2,e3,g#4,g5]@3 ~ [e2,e3,g#4,g5]@4 ~@8 [e2,e3,g#4,g5]@3 ~ [e2,e3]@4 ~@8, d5@7 ~@9 d5@8 ~@8, ~@10 [g#4,g5] ~@5", // E G#maj7
K: "[e2,e3,g#4,g5]@3 ~ [e2,e3,g#4,g5]@3 ~@9 [g2,g3,g4,d5,g5]@8 [a2,a4,c#5]@8, d5@7 ~@9 b4@6 ~@2 a3@5 ~@3", // E G5 A
L: "[e2,e3]@3 ~ [e2,e3]@4 ~@4 [g#4,d5,g5]@3 ~ [e2,d3,e3]@3 ~ [e2,e3]@4 ~@4 [d5,g5]@2 c5@2", // E G E7 E G5
M: "[e2,e3]@3 ~ [e2,e3]@3 ~ g#4@7 ~ [g2,g3]@8 [a2,a3,a4]@7 ~, ~@4 d3 ~@3 g5@23 ~, ~ d5@2 ~", // E G A
N: "[e2,e3]@3 ~ [e2,e3]@3 ~ g#4@7 ~ [g2,g3]@8 ~ [c#6,f#6,g#6,a#6] a#5 d#5 a#4 g#4 d#4@2, ~@4 d3 ~@3 g5@22 f#4 ~, ~@8 d5@16 [a2,a3,a4]@7 ~", // E G F# A
O: "[e2,e3]@3 ~ [e2,e3]@4 [g#4,d5,g5]@6 [g#4,d5,g5] ~ [e2,e3]@3 ~ [e2,e3]@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5]@2", // E G E G
P: "[[e2,e3]@3 ~ [e2,e3]@4 e5@32 d#5 e5@23, ~@8 [a4,a5]@55 ~, ~@2 a2@7 ~@7, ~@8 b4 ~@31 g5@24]/2", // E A
Q: "[a5,b5] [e5,f5,g5] [b4,c5,d5] [f4,g4,a4] [c4,d4,e4] [g3,a3,b3] [d3,e3,f3] [a2,b2,c3] ~ [d#2,e2] ~@2 [e2,e3]@4 [g#4,d5,g5]@6 [g#4,g5] ~ [e2,e3]@2 ~@2 [e2,e3]@2 ~@2, ~@8 e3@2 ~@2 [f2,f3] ~@9 d5@2 ~@8", // Asus2 Em Bm F C G Dm Am …
R: "[e2,e3,g#4,d5,g5]@5 [d#5,f#5] [d#4,f#4,g#4,a#4] [f#3,g#3] ~@24, f2 ~@15", // E7 D#m F#sus2
})).s("gm_rock_organ").gain(0.21)
// chords · rock organ · "ORGAN 3" · soft notes
const rock_organ_soft = note(`<
~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@2 B C D E F ~@4 A ~@3 A ~@3 A ~@2 B G D E F ~@4 H I ~ J H I ~ J H I ~ J H I ~ K G
D E F ~@6 A ~@7 L
>`.pickRestart({
A: "~@30 g5 ~", B: "~@25 d#6 g#5 f#5 c#5 ~@3", C: "a#3@2 ~@13 d5@2 ~@15, b3 ~@14 f#5 ~@16", D: "~ c#5 ~@23 b2 ~@6",
E: "~@8 [e5,f#5] ~@8 g#5 ~@13 e4", F: "d#5 ~@15", G: "[a#3,b3]@2 ~@13 d5@2 ~@15, ~@15 f#5 ~@16", H: "~@24 g5 ~@7",
I: "~@3 e5", J: "~@4 f#2 ~@11 g4@8 e5@7 ~", K: "~@4 f#2 ~@11 g4@8 ~ d#6 g#5 f#5 c#5 ~@3, ~@24 e5@7 ~",
L: "~@6 c#5 [a#3,c#4] [a#2,d#3] ~@23", // A#m D#5
})).s("gm_rock_organ").gain(0.12)
// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
~ A B C D A B C D A B C D A B C D A B C D A B C D E F E F G H I ~ A B C D A B C D A B C J E F E F G H I ~ K L K M K L
K M K L K M K L K M E F E F G H I ~@3 A B C D N O@2 P Q
>`.pickRestart({
A: "e1@3 ~ e1@4 e2@5 ~ e2 ~ e1@3 ~ e1@4 e2@6 e2@2", B: "e1@3 ~ e1@4 e2@5 ~ e2@2 a1@4 a#1@4 b1@4 d2@4, ~@16 b1 ~@15",
C: "e1@3 ~ e1@4 e2@6 e2@2 e1@3 ~ e1@4 e2@7 ~", D: "e1@3 ~ e1@4 e2@7 ~ a1@4 a#1@4 b1@4 d2@4",
E: "e1@3 ~ e1@4 e2@8 e1@3 ~ e1@4 e2@7 ~", F: "d2@2 ~@2 d2@4 a2@6 d2@2 a1@3 ~ a1@4 a2@4 a1@3 ~",
G: "e1@3 ~ e1@4 e2@7 ~ e1@3 ~ e1@4 e2@7 ~", H: "d2@2 ~@2 d2@4 a2@4 d2@3 ~ a1@2 ~@2 a1@3 ~ a1@4 g1@4", I: "e1@3 ~@13",
J: "e1@3 ~ e1@4 e2@7 ~ d2@4 d2@4 d#2@4 d#2@3 ~", K: "e1@3 ~ e1@4 ~@6 e1 ~ e1@3 ~ e1@4 ~@6 e1 ~",
L: "e1@3 ~ e1@4 ~@8 g1@8 a1@3 ~ b1 a1 g1 ~", M: "e1@3 ~ e1@4 ~@8 d2@2 b1@2 a1@2 g1@2 a1@4 g1@2 d1 ~",
N: "e1@3 ~ e1@4 e2@5 ~ e2@2 e1@3 ~ e1@3 ~ e2@5 ~ e2@2", O: "[e1@2 ~@2 e1@3 ~ a1@56, e2 ~@3 d1 ~@59]/2",
P: "b1@2 a1@2 g1@4 e1@2 ~@2 e1@4 ~@8 e1@3 ~ e1@4", Q: "e1 ~",
})).s("gm_electric_bass_finger").gain(0.6)
// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
~ A B C D A B C E F G H I@3 J K L M N@2 L M N@2 O P Q@2 R@2 S T U V W X L M N@2 L M Y@5 Z AA@2 S AB AC@2 AD AE AF AG
AH@2 AI@2 AJ AK AL AM AN@2 O P AO Z AA@2 S AP@3 A B C E AQ AR@3 AS
>`.pickRestart({
A: "e2@3 ~ e2@3 ~ [e3,g#3,d4,g4]@6 [e3,g#3,d4,g4] ~ e2@3 ~ e2@4 [e3,g#3,d4,g4]@5 ~ [e3,g#3,d4,g4] ~, ~@4 f2 ~@27", // E7
B: "e2@3 ~ e2@4 [e3,g#3,d4,g4]@6 [e3,g#3,d4] ~ [a2,a3]@4 [a#2,a#3]@4 [b2,b3]@4 [d3,d4]@4", // E7 A A# B D
C: "e2@3 ~ e2@3 ~ [e3,g#3,d4,g4]@6 e3@2 [e2,b3]@4 [e2,a3]@4 g3@4 e3@4, ~@24 f2 ~@7", // E7 E5 A5
D: "e2@2 ~@2 e2@4 [e3,g#3,d4,g4]@7 ~ a4@12 a4@2 g4@2, ~@16 e2 ~@15", // E7
E: "e2@2 ~@2 e2@4 [e3,g#3,d4,g4]@7 ~ [a3,d4,g4]@15 ~, ~@16 e2 ~@15", // E7 Dsus4
F: "[e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4]@2 [e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4]@2", // E G E G
G: "[e2,e3]@3 ~ [e2,e3]@3 ~ d4@5 ~ [e2,e3,g#3] ~ [a2,f#4]@3 [a#3,b3] [a#2,a3]@4 [b2,g#3]@4 [c#3,g3]@3 ~, ~@7 [g#3,g4]@5 ~@2 g4@5 ~@13, ~@7 d4 g2 ~@7, ~@16 [a#3,b3] ~@15", // E D Bmaj7 A#maj7 E C#dim G#maj7 Bmaj7
H: "[e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4]@2 [e2,e3]@2 ~@2 [e2,e3]@4 [g#3,d4,g4]@6 [d4,g4]@2", // E G E G G5
I: "[~@2 d4@2 [a3,b3] ~ b3@2 d4 b3 d4 ~@4 d4 ~@3 b3@2 ~ b3@2 d4 ~ d4 ~@2 d4@2 ~ d4@2 ~ d4 ~@2 d4@2 ~ d4 b3 ~ d4 b3 d4 b3@2 d4 ~ d4 ~@2 d4 ~ d4 ~@2 d4 ~@3 b3@2 d4@2 ~@3 [a3,b3,d#4] ~ [g#3,g4]@6 ~@2 a2@4 [a#2,a#3]@4 b3@4 [f3,g3]@3 ~, a#3@2 ~@10 b3@2 b3@2 ~ b3@2 ~@6 b3@2 ~ b3@2 ~ b3@2 ~ [b3,c4]@2 ~ b3@2 ~ b3@2 ~@8 b3@2 ~ b3@2 b3@2 ~ b3@2 ~ b3@2 ~@4 b3@2 ~@9 g4@4 ~@14, ~ b3@2 ~@2 d4@2 ~@6 d4@2 ~@3 d4@2 ~ d4@2 ~@39 d4@2 ~@4 d4@12 ~@8 b2@3 ~ f#3 ~@3]/3", // Asus2 B7 G#maj7 A# Fsus2 Cmaj7
J: "[e2,e3]@3 ~ [e2,e3]@4 [g#3,g4]@5 ~ [g#3,g4]@2 [e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4]@2, ~@4 d4@3 ~@9", // E G#maj7 E G
K: "[e2,e3]@3 ~ [e2,e3]@4 [g#3,d4]@7 ~ a4@6 g4@5 e4@5, ~@4 g4 ~@11", // E G#dim
L: "[e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@6 [g#3,d4,g4]@2 [e2,e3]@3 ~ [e2,e3]@3 ~ [g#3,d4,g4]@6 [g#3,d4,g4]@2", // E G E G
M: "[e2,e3]@3 ~ [e2,e3]@4 [g#3,g4]@6 d4@2 [a2,a3]@4 [a#2,a#3]@4 [b2,b3]@4 [d3,d4]@4, ~@8 d4@5 ~@3 f#4 ~@15", // E G#maj7 A A# B D
N: "[[e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4]@2 [a#2,a#3]@4 [a2,a3]@4 [g2,g3]@4 e2@7 ~ e2@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4]@2 ~ f#4 ~@2 [a#2,a#3]@4 [b2,b3]@4 [d3,e3,d4]@2 g#2 ~, ~@16 f#4 ~@3 b3 ~@7 e3@12 ~@8 [a2,a3]@4 ~@12]/2", // E G A# A G A# B Dsus2 …
O: "[e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@7 ~ [e2,e3]@2 ~@2 [e2,e3]@4 [g#3,d4,g4]@8", // E G E G
P: "[d2,d3]@3 ~ [d2,d3]@4 [a3,d4]@8 a3@8 a3@3 ~ e3@2 d3@2, ~@16 a2@5 ~@6 g3@2 ~@3", // D D5
Q: "[[e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4]@2 [e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 g#3 ~ a3@8 ~ a3@7 ~ a3@12 g3@2 e3@2]/2", // E G E G
R: "[e2@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 [g#3,d4,g4]@2 ~ [e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@4 ~ g4@2 ~ [d2,d3]@3 ~ [d2,d3]@4 [a3,d4]@5 [a3,d4]@2 ~ [a2,e3]@4 [a2,e3]@3 ~ [a2,e3]@4 [g2,d3]@4, e3 ~@27 a3@3 g3@2 ~@31]/2", // E G E G D D5 A5 G5
S: "[e2,b2]@3 ~@29", T: "f4@3 ~ f4@10 ~@2 a4@3 ~ a4@4 f4@7 ~",
U: "~ [e2,e3]@3 [e2,e3]@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4]@2 [e2,e3]@2 g#3 ~ [e2,e3]@4 [g#3,d4,g4]@6 [g#3,d4,g4]@2", // E G E G
V: "[e2,e3]@3 ~ [e2,e3]@4 [d4,g4]@4 ~@2 [d4,g4]@2 ~ f#4 ~@4 a3@3 ~ a3@2 ~ a3@2 ~, ~@4 g#3@3 ~ a3@3 ~@5", // E G5
W: "a3@5 g3@2 a3@2 g3@2 a3@2 ~ a3@2 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 [a3,b3]@2 ~ a3@2, ~@13 g3@2 ~@3 a3@2 ~ a3@2 ~ [a3,b3]@2 ~@3 g3@2 ~", // Asus2
X: "g3@2 a3@2 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~@17, ~@6 a3@2 ~ [a3,b3]@2 ~ a3@13 ~@7", // Asus2
Y: "[[e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4]@2 [a#2,a#3]@4 [a2,a3]@4 [g2,g3]@4 e2@7 ~ e2@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4]@2 [d3,a3]@4 d3@3 ~ [d#3,a#3]@4 a#3@3 ~ [e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@7 ~ [e2,e3]@2 ~@2 [e2,e3]@4 [g#3,d4,g4]@8 [d2,d3]@3 ~ [d2,d3]@4 [a3,d4]@8 a3@8 ~@4 e3@2 d3@2 [e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4] ~ [e2,e3]@2 ~@2 [e2,e3]@4 [g#3,d4]@6 [d4,g4]@2, ~@16 f#4 ~@11 e3@12 ~@12 a3@52 ~@16 a3@36 ~@4, ~@60 d#3 ~@51 a2@5 ~@6 g3@2 ~@27 g4@5 ~@3]/5", // E G A# A G D5 D#5 E …
Z: "[d3,d4]@13 ~ a3@2 c4@2 c#4@2 e4@2 a4@4 g4@6, a3@5 ~@17 g4 ~@9", // D
AA: "[[e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 [g#3,d4,g4]@2 ~ [e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@4 ~ g4@2 ~ [d2,d3]@3 ~ [d2,d3]@4 [a3,d4]@5 [a3,d4]@2 ~ [a2,e3]@4 [a2,e3]@3 ~ [a2,e3]@4 [g2,d3]@4, ~@28 a3@3 g3@2 ~@31]/2", // E G E G D D5 A5 G5
AB: "~@4 a4@4 g4@6 g4@2 a4@3 ~ a4@4 f4@4 e4@4",
AC: "[~@8 d5@12 b4@4 g4@11 ~ d5@7 b4@2 g4@2 ~ e4@2 [c4,d4]@2 b3@2 g3@7 ~@3, ~@54 a3 ~@9]/2", // Csus2
AD: "[d3,g3]@8 a3 a#3 b3 d4 e4 b3 f#4@2", AE: "d4@13 ~@4 d4@2 b3 a#3 a3 ~ g3 a3 g3@2 e3 d4@4, ~@8 e4 ~@7",
AF: "a4@15 ~@17", AG: "b4@3 g4@2 ~ e4@10 ~@8 a4@4 d5@2 a4@2",
AH: "[d5@13 ~ d5@2 ~@2 g5@2 ~@3 e5 d5@2 ~@8 d5@2 ~@5 [e5,g5]@2 [d5,e5]@2 ~ e5 ~ b4 ~ e5 [b4,d5] ~@2 d5@10, ~@13 e5@2 ~ e5@2 ~@2 e5@2 g5@2 ~@2 g5@2 d5@2 e5@2 g5@2 ~@3 d5@2 b4@2 ~@4 [b4,g5]@2 ~@17, ~@17 d5@2 ~@2 d5@2 ~@4 e5@2 g5@2 d5@2 e5@2 ~ [e5,g5]@2 g5@2 d5@2 ~@5 d5@2 g5@2 ~@2 [e5,g5]@2 ~@9]/2", // Em Dsus2 Bm Em
AI: "[d5@3 ~ d5 ~ d5 ~ d5@5 a#4 ~@3 a#4 ~ a#4 ~ d5@2 a#4 a4 g4 d5 ~ g4 e4 g4 a4@2 g4@2 ~ g4 ~ a#4 b4@2 d5 e5 d5 b4 ~ e5 b4 ~ a#4 a4 g4 a4 a#4 b4 d5@5 b4@4, ~@15 a4@2 ~ a4@2 b4@2 ~@5 a4@2 ~@8 a4@2 ~@6 d5@2 ~@17, ~@16 g4@2 ~@17 e4@2 ~@27]/2",
AJ: "g5@2 a4@3 f#5 ~ b4@2 g5@2 a4@2 ~ b4@2 g5@2 a4@2 f#5@2 g4@2 ~ a#4@2 f#5@2 b4@3, ~@13 f#5@2 ~@9 g5@2 ~@6",
AK: "~ [a#4,g5] g5 a#4 [a#4,g5] g5 a#4 [a#4,g5] ~ [b4,g#5]!2 ~ [b4,g#5]!2 ~ [b4,g#5] [b4,a5] c5 a5 c5 [c5,a5] a5 ~ a5 a#5 c#5 a#5 [c#5,a#5] c#5 a#5 c#5 a#5, ~@11 c5 ~@4", // D# E B7 F F#
AL: "b5 d5 [d5,b5] b5 d5 [c#5,a#5] a#5 c#5 [d5,a#5] b5 [d5,b5] d5 [c#5,a#5] a#5 c#5 a#5 b5 [d5,b5] d5 [d5,b5] [c#5,a#5] ~@2 d5 b5 d5 [d5,b5] ~ [e5,c6] c6 e5 c#6, ~@11 [c#5,a#5] ~@4", // G F# Gm G F# G F# G …
AM: "f5 [f5,c#6] ~ [f5,c#6] d6 f#5 d6 [f#5,d6] ~ [f#5,d6] f#5 d6 [f#5,d6] f#5 d6 [f#5,d6] f#5 d6 f#5!3 ~ f#5 c6 [a5,b5] [e5,f5,g5] [b4,c5,d5] [e4,f4,g4,a4] [a3,b3,c4,d4] [e3,f3,g3] [b2,c3,d3] ~, ~@9 d6@3 ~@4", // C# D Asus2 Em Bm Fmaj7 D7 Em …
AN: "[g4@3 a4@2 g4@2 a4@2 g4@2 ~ g4@2 a4@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 a4@2 ~ a4 g4@2 ~ g4@2 ~@2 a4@2 g4 a4 g4 a4 b4 a4 ~@18, ~@11 a4@2 ~@5 a4@2 ~ a4@2 ~ a4@2 ~@3 g4@2 ~@2 a4@2 ~ a4@2 ~@26, ~@37 g4@2 ~@25]/2",
AO: "[e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4] ~ [e2,e3]@2 ~@2 [e2,e3]@4 [g#3,d4]@6 [d4,g4]@2, ~@24 g4@5 ~@3", // E G E G#dim G5
AP: "[a4@95 ~]/3", AQ: "[e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@8 [e2,e3]@2 ~@2 [e2,e3]@4 [g#3,d4,g4]@8, ~@20 g#3 ~@11",
AR: "[[e2,e3]@3 ~ [e2,e3]@4 [a2,a3,e4,a4]@62 g2@2 [e2,e3]@3 ~ [e2,e3]@4 [g#3,d4,g4]@5 ~ [g#3,d4,g4]@2 [e2,e3]@3 ~ [e2,e3]@4, ~@4 f#2 ~@3 f#4 ~@63 f2 ~@23]/3", // E A5 E G E
AS: "[e2,e3,g#3,d4,g4]@5 ~@27", // E7
})).s("gm_distortion_guitar").gain(0.33).pan(0.4)
// other · guitar harmonics · "GTHARMONIC"
const guitar_harmonics = note("<~@57 [~ f#4] ~@30>").s("gm_guitar_harmonics").gain(0.6).pan(0.7)
// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
~ A B C D@3 C E F G H I@3 J K L M N@2 L M N@2 O P Q@2 R@2 S T U V W X L M N@2 L M Y@5 Z AA@2 S AB AC@2 AD AE AF AG
AH@2 AI@2 AJ AK AL AM AN@2 O P AO Z AA@2 S AP@3 A AQ C E AR AS@3 AT
>`.pickRestart({
A: "e3@3 ~ e3@3 ~ [e4,g#4,d5,g5]@6 [e4,g#4,d5,g5] ~ e3@3 ~ e3@4 [e4,g#4,d5,g5]@5 ~ [e4,g#4,d5,g5] ~, ~@4 f3 ~@27", // E7
B: "e3@3 ~@5 [e4,g#4,d5,g5]@6 [e4,g#4,d5] ~ [a3,a4]@4 [a#3,a#4]@4 [b3,b4]@4 [d4,d5]@4, ~@4 e3@9 ~@19", // E7 A A# B D
C: "e3@3 ~ e3@3 ~ [e4,g#4,d5,g5]@6 e4@2 [e3,b4]@4 [e3,a4]@4 g4@4 e4@4, ~@24 f3 ~@7", // E7 E5 A5
D: "[e3@2 ~@6 [g#4,d5,g5]@7 ~ a5@12 a5@2 g5@2 e3@3 ~ e3@3 ~ [e4,g#4,d5,g5]@6 [g#4,d5,g5] ~ e3@3 ~ e3@4 [e4,g#4,d5,g5]@6 [g#4,d5,g5] ~ e3@3 ~@5 [e4,g#4,d5,g5]@6 [e4,g#4,d5] ~ [a3,a4]@4 [a#3,a#4]@4 [b3,b4]@4 [d4,d5]@4, ~@4 e3@12 e3 ~@19 f3 ~@31 e3@9 ~@19, ~@4 e4@16 ~@3 e4@5 ~@3 e4@5 ~@12]/3", // G E7 G E7 G E7 A A# …
E: "e3@2 ~@6 [g#4,d5,g5]@7 ~ [a4,d5,g5]@15 ~, ~@4 e3@12 e3 ~@15, ~ e4@3", // G Dsus4
F: "[e3,e4]@4 e3@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5]@2 [e3,e4]@4 [e3,e4]@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5]@2, ~ e4@3 ~@4", // E G E G
G: "[e3,e4]@3 ~ [e3,e4]@3 ~ d5@5 ~ [e3,e4,g#4] ~ [a3,f#5]@3 [a#4,b4] [a#3,a4]@4 [b3,g#4]@4 [c#4,g4]@3 ~, ~@7 [g#4,g5]@5 ~@2 g5@5 ~@13, ~@7 d5 g3 ~@7, ~@16 [a#4,b4] ~@15", // E D Bmaj7 A#maj7 E C#dim G#maj7 Bmaj7
H: "[e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5]@2 [e3,e4]@2 ~@2 [e3,e4]@4 [g#4,d5,g5]@6 [d5,g5]@2", // E G E G G5
I: "[~@2 d5@2 [a4,b4] ~ b4@2 d5 b4 d5 ~@4 d5 ~@3 b4@2 ~ b4@2 d5 ~ d5 ~@2 d5@2 ~ d5@2 ~ d5 ~@2 d5@2 ~ d5 b4 ~ d5 b4 d5 b4@2 d5 ~ d5 ~@2 d5 ~ d5 ~@2 d5 ~@3 b4@2 d5@2 ~@3 [a4,b4,d#5] ~ [g#4,g5]@6 ~@2 a3@4 [a#3,a#4]@4 b4@4 [f4,g4]@3 ~, a#4@2 ~@10 b4@2 b4@2 ~ b4@2 ~@6 b4@2 ~ b4@2 ~ b4@2 ~ [b4,c5]@2 ~ b4@2 ~ b4@2 ~@8 b4@2 ~ b4@2 b4@2 ~ b4@2 ~ b4@2 ~@4 b4@2 ~@9 g5@4 ~@14, ~ b4@2 ~@2 d5@2 ~@6 d5@2 ~@3 d5@2 ~ d5@2 ~@39 d5@2 ~@4 d5@12 ~@8 b3@3 ~ f#4 ~@3]/3", // Asus2 B7 G#maj7 A# Fsus2 Cmaj7
J: "[e3,e4]@4 [e3,e4]@4 [g#4,g5]@5 ~ [g#4,g5]@2 e3@4 [e3,e4]@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5]@2, ~@4 d5@3 ~ e4 ~@7", // E G#maj7 E G
K: "[e3,e4]@4 [e3,e4]@4 [g#4,d5]@7 ~ a5@6 g5@5 e5@5, ~@4 g5 ~@11", // E G#dim
L: "[e3,e4]@4 [e3,e4]@4 [g#4,d5,g5]@6 [g#4,d5,g5]@2 [e3,e4]@3 ~ [e3,e4]@3 ~ [g#4,d5,g5]@6 [g#4,d5,g5]@2", // E G E G
M: "[e3,e4]@3 ~ [e3,e4]@4 [g#4,g5]@6 d5@2 [a3,a4]@4 [a#3,a#4]@4 [b3,b4]@4 [d4,d5]@4, ~@8 d5@5 ~@3 f#5 ~@15", // E G#maj7 A A# B D
N: "[[e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5]@2 [a#3,a#4]@4 [a3,a4]@4 [g3,g4]@4 [e3,e4]@8 e3@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5]@2 ~ f#5 ~@2 [a#3,a#4]@4 [b3,b4]@4 [d4,e4,d5]@2 g#3 ~, ~@16 f#5 ~@3 b4 ~@27 [a3,a4]@4 ~@12]/2", // E G A# A G E G A# …
O: "[e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@7 ~ [e3,e4]@2 ~@2 [e3,e4]@4 [g#4,d5,g5]@8", // E G E G
P: "[d3,d4]@3 ~ d3@4 a4@7 ~ a3@8 a4@3 ~ e4@2 d4@2, ~ d4@3 ~@4, ~@8 d5 ~@7 a4@4 ~@7 g4@2 ~@3", // D
Q: "[[e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5]@2 [e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@5 g#4 ~ a4@8 ~ a4@7 ~ a4@12 g4@2 e4@2]/2", // E G E G
R: "[e3@3 ~ [e3,e4]@4 [g#4,d5,g5]@5 [g#4,d5,g5]@2 ~ [e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@4 ~ g5@2 ~ [d3,d4]@3 ~ [d3,d4]@4 [a4,d5]@5 [a4,d5]@2 ~ [a3,e4]@4 [a3,e4]@3 ~ [a3,e4]@4 [g3,d4]@4, e4 ~@27 a4@3 g4@2 ~@31]/2", // E G E G D D5 A5 G5
S: "[e3,b3]@3 ~@29", T: "f5@3 ~ f5@10 ~@2 a5@3 ~ a5@4 f5@7 ~",
U: "~ [e3,e4]@3 [e3,e4]@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5]@2 [e3,e4]@2 g#4 ~ [e3,e4]@4 [g#4,d5,g5]@6 [g#4,d5,g5]@2", // E G E G
V: "[e3,e4]@3 ~ [e3,e4]@4 [d5,g5]@4 ~@2 [d5,g5]@2 ~ f#5 ~@4 a4@3 ~ a4@2 ~ a4@2 ~, ~@4 g#4@3 ~ a4@3 ~@5", // E G5
W: "a4@5 g4@2 a4@2 g4@2 a4@2 ~ a4@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 [a4,b4]@2 ~ a4@2, ~@13 g4@2 ~@3 a4@2 ~ a4@2 ~ [a4,b4]@2 ~@3 g4@2 ~", // Asus2
X: "g4@2 a4@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@17, ~@6 a4@2 ~ [a4,b4]@2 ~ a4@13 ~@7", // Asus2
Y: "[[e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5]@2 [a#3,a#4]@4 [a3,a4]@4 [g3,g4]@4 [e3,e4]@8 e3@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5]@2 [d4,a4]@4 d4@3 ~ [d#4,a#4]@4 a#4@3 ~ [e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@7 ~ [e3,e4]@2 ~@2 [e3,e4]@4 [g#4,d5,g5]@8 [d3,d4]@3 ~ d3@4 a4@8 [a3,a4]@8 ~@4 e4@2 d4@2 [e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5] ~ [e3,e4]@2 ~@2 [e3,e4]@4 [g#4,d5]@6 [d5,g5]@2, ~@16 f#5 ~@35 a4@52 d5 ~@15 a4@36 ~@4, ~@60 d#4 ~@39 d4@12 ~@11 g4@2 ~@27 g5@5 ~@3]/5", // E G A# A G E G D5 …
Z: "[d4,d5]@13 ~ a4@2 c5@2 c#5@2 e5@2 a5@4 g5@6, a4@5 ~@17 g5 ~@9", // D
AA: "[[e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@5 [g#4,d5,g5]@2 ~ [e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@4 ~ g5@2 ~ [d3,d4]@3 ~ [d3,d4]@4 [a4,d5]@5 [a4,d5]@2 ~ [a3,e4]@4 [a3,e4]@3 ~ [a3,e4]@4 [g3,d4]@4, ~@28 a4@3 g4@2 ~@31]/2", // E G E G D D5 A5 G5
AB: "~@4 a5@4 g5@6 g5@2 a5@3 ~ a5@4 f5@4 e5@4",
AC: "[~@8 d6@12 b5@4 g5@11 ~ d6@7 b5@2 g5@2 ~ e5@2 [c5,d5]@2 b4@2 g4@7 ~@3, ~@54 a4 ~@9]/2", // Csus2
AD: "[d4,g4]@8 a4 a#4 b4 d5 e5 b4 f#5@2", AE: "d5@13 ~@4 d5@2 b4 a#4 a4 ~ g4 a4 g4@2 e4 d5@4, ~@8 e5 ~@7",
AF: "a5@15 ~@17", AG: "b5@3 g5@2 ~ e5@10 ~@8 a5@4 d6@2 a5@2",
AH: "[d6@13 ~ d6@2 ~@2 g6@2 ~@3 e6 d6@2 ~@8 d6@2 ~@5 [e6,g6]@2 [d6,e6]@2 ~ e6 ~ b5 ~ e6 [b5,d6] ~@2 d6@10, ~@13 e6@2 ~ e6@2 ~@2 e6@2 g6@2 ~@2 g6@2 d6@2 e6@2 g6@2 ~@3 d6@2 b5@2 ~@4 [b5,g6]@2 ~@17, ~@17 d6@2 ~@2 d6@2 ~@4 e6@2 g6@2 d6@2 e6@2 ~ [e6,g6]@2 g6@2 d6@2 ~@5 d6@2 g6@2 ~@2 [e6,g6]@2 ~@9]/2", // Em Dsus2 Bm Em
AI: "[d6@3 ~ d6 ~ d6 ~ d6@5 a#5 ~@3 a#5 ~ a#5 ~ d6@2 a#5 a5 g5 d6 ~ g5 e5 g5 a5@2 g5@2 ~ g5 ~ a#5 b5@2 d6 e6 d6 b5 ~ e6 b5 ~ a#5 a5 g5 a5 a#5 b5 d6@5 b5@4, ~@15 a5@2 ~ a5@2 b5@2 ~@5 a5@2 ~@8 a5@2 ~@6 d6@2 ~@17, ~@16 g5@2 ~@17 e5@2 ~@27]/2",
AJ: "g6@2 a5@3 f#6 ~ b5@2 g6@2 a5@2 ~ b5@2 g6@2 a5@2 f#6@2 g5@2 ~ a#5@2 f#6@2 b5@3, ~@13 f#6@2 ~@9 g6@2 ~@6",
AK: "~ [a#5,g6] g6 a#5 [a#5,g6] g6 a#5 [a#5,g6] ~ [b5,g#6]!2 ~ [b5,g#6]!2 ~ [b5,g#6] [b5,a6] c6 a6 c6 [c6,a6] a6 ~ a6 a#6 c#6 a#6 [c#6,a#6] c#6 a#6 c#6 a#6, ~@11 c6 ~@4", // D# E B7 F F#
AL: "b6 d6 [d6,b6] b6 d6 [c#6,a#6] a#6 c#6 [d6,a#6] b6 [d6,b6] d6 [c#6,a#6] a#6 c#6 a#6 b6 [d6,b6] d6 [d6,b6] [c#6,a#6] ~@2 d6 b6 d6 [d6,b6] ~ [e6,c7] c7 e6 c#7, ~@11 [c#6,a#6] ~@4", // G F# Gm G F# G F# G …
AM: "f6 [f6,c#7] ~ [f6,c#7] d7 f#6 d7 [f#6,d7] ~ [f#6,d7] f#6 d7 [f#6,d7] f#6 d7 [f#6,d7] f#6 d7 f#6!3 ~ f#6 c7 [a6,b6] [e6,f6,g6] [b5,c6,d6] [e5,f5,g5,a5] [a4,b4,c5,d5] [e4,f4,g4] [b3,c4,d4] ~, ~@9 d7@3 ~@4", // C# D Asus2 Em Bm Fmaj7 D7 Em …
AN: "[g5@3 a5@2 g5@2 a5@2 g5@2 ~ g5@2 a5@2 g5@2 ~ g5@2 ~ g5@2 ~ g5@2 a5@2 ~ a5 g5@2 ~ g5@2 ~@2 a5@2 g5 a5 g5 a5 b5 a5 ~@18, ~@11 a5@2 ~@5 a5@2 ~ a5@2 ~ a5@2 ~@3 g5@2 ~@2 a5@2 ~ a5@2 ~@26, ~@37 g5@2 ~@25]/2",
AO: "[e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5] ~ [e3,e4]@2 ~@2 [e3,e4]@4 [g#4,d5]@6 [d5,g5]@2, ~@24 g5@5 ~@3", // E G E G#dim G5
AP: "[a5@95 ~]/3",
AQ: "e3@3 ~@5 [g#4,d5,g5]@6 [e4,g#4,d5] ~ [a3,a4]@4 [a#3,a#4]@4 [b3,b4]@4 [d4,d5]@4, ~@4 e3@9 ~@19, ~@2 e4 ~@5", // G E7 A A# B D
AR: "[e3,e4] e3 [g#4,d5,g5]@2 e4 [e3,e4] [g#4,d5,g5]@2, ~@4 e4@12 e3@2 ~@2 g#4 ~@11", // E G E G
AS: "[[e3,e4]@3 ~ [e3,e4]@4 [a3,a4,e5,a5]@62 g3@2 [e3,e4]@3 ~ [e3,e4]@4 [g#4,d5,g5]@5 ~ [g#4,d5,g5]@2 [e3,e4]@3 ~ [e3,e4]@4, ~@4 f#3 ~@3 f#5 ~@63 f3 ~@23]/3", // E A5 E G E
AT: "[e3,e4,g#4,d5,g5]@5 ~@27", // E7
})).s("gm_overdriven_guitar").gain(0.27).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
~ A B A@9 B A C A B A D A@3 D A@3 E F G E H I J A C A B A D A@3 D A@3 E F G E H I K L M N ~ L M L O L M N ~ L M L K A
E F G E H I ~@3 A P A@3 Q ~ R S
>`.pickRestart({
A: "x!2 ~@2 x!2 ~@2", B: "x!2 ~@6", C: "x ~ x ~@6 x ~@6", D: "x ~ x ~@5 x ~@2 x ~@2 x ~",
E: "x ~ x ~@2 x ~ x ~@2 x ~@2 x ~ x", F: "~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x", G: "~@3 x ~@3 x!3 ~ x ~@4",
H: "~@2 x ~@2 x ~ x ~@3 x ~@3 x", I: "x", J: "~@5 x ~@10", K: "~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x ~ x",
L: "x ~ x ~@5 x ~ x ~@4 x", M: "x ~ x ~@4 x ~ x ~ x ~ x ~@2", N: "x ~@3 x ~@9 x ~ x ~@3 x ~@10 x",
O: "~@5 x ~@5 x ~@5 x ~@5 x ~@8", P: "x ~@3 x ~@10 x ~@16", Q: "x!3 ~@5", R: "~@2 x!2 ~@2 x!2", S: "x!2 ~@2",
})).gain(0.54)
// drums · snare
const snare = s("sd").struct(`<
A B C B D B E B D B E B F B G B H B I B E B I B E B J K L J M N O B G B H B I B E B I B E B J K L J M ~ P Q R Q S Q R
Q T Q R Q S Q R Q P B J K L J M ~@3 A B U B D B ~ V W X
>`.pickRestart({
A: "~@31 x", B: "~@4 x ~@2 x ~@4 x ~@2 x", C: "~@8 x ~@5 x ~ x!2 ~ x!3 ~ x!2 ~@2 x!2 ~@3",
D: "~@4 x ~@2 x ~@4 x ~ x!2", E: "~@4 x ~@2 x ~@4 x ~ x ~", F: "~@4 x ~@2 x ~@4 x ~@3", G: "~@4 x ~@2 x!2 ~ x!3 ~@3",
H: "~@8 x ~@5 x ~ x!2 ~ x!3 ~ x!2 ~@7", I: "~@4 x ~@2 x ~ x!2 ~ x ~@2 x", J: "~ x!3", K: "x!4",
L: "x ~@3 x ~@3 x ~ x ~ x!4", M: "x ~@3 x ~@3 x ~@3 x!3 ~", N: "~@30 x!2",
O: "x ~@3 x ~@3 x ~@5 x!3 ~ x ~ x ~@3 x ~ x ~@3 x ~", P: "x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~", Q: "~@2 x ~@4 x",
R: "~ x ~@2 x ~@4 x ~@3 x!2 ~", S: "x!8 ~ x!4 ~@3 x!2 ~@4 x ~@7 x!2", T: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@3",
U: "~@8 x ~@7 x!2 ~ x!3 ~ x ~@8", V: "~@13 x!2 ~", W: "x ~ x!2 ~@4 x ~@2 x ~@4", X: "x",
})).gain(0.54)
// drums · low tom
const low_tom = s("lt").struct(`<
~@2 A ~@3 B ~ C ~ B ~ D ~ E ~ F ~@3 G ~@3 G ~@3 H ~ I ~@3 E ~ F ~@3 G ~@3 G ~@3 H ~ I ~ J ~ K ~ L ~ K ~ M ~ K ~ L ~ K
~ J ~@3 H ~ I ~@5 N ~ C ~@2 O ~ P
>`.pickRestart({
A: "~@31 x", B: "~@14 x!2", C: "~@5 x ~@2", D: "~@20 x!2 ~ x ~@4 x!2 ~ x", E: "~@13 x!2 ~", F: "~@29 x ~ x",
G: "~@7 x", H: "~ x ~@3 x ~@10", I: "~@9 x ~@6", J: "~@29 x ~@2", K: "~@8 x ~ x!3 ~@3", L: "~@18 x!4 ~@2 x!6 ~@2",
M: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x!2", N: "~@28 x!2 ~ x", O: "x ~@2 x", P: "~@7 x ~@24",
})).gain(0.48)
// drums · hihat
const hihat = s("hh").struct("<~@28 A ~ B C ~@16 A ~ B C ~@4 D ~@3 A ~@3 D ~@7 A ~ B C ~@12>".pickRestart({
// … 45 more lines
More by Jimi Hendrix
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.