0:00/0:00
// Hot Dog — Led Zeppelin
// 118 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 94 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(118/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.
// other · lead 4 chiff
const lead_4_chiff = note("<~@36 A B C@2 D E F ~@25 A B C@2 D E F ~@19>".pickRestart({
A: "~@2 a4@4 a4@2 a4@2 a4 a4@3 a4@2", B: "b4@2 b4@2 b4@2 g4 g4@3 ~@5 a4",
C: "[a4@2 a4@2 a4@2 a4 a4@3 a4@2 a4@2 a4 g4@3 ~@13 g4]/2", D: "c5 c5@3 c5@2 c5!2 g4@2 g4@2 a#4@2 a#4@2",
E: "b4@2 b4@2 b4@2 a4 g4@3 ~@4 g#4@2", F: "a4@2 a4 a4@3 a4@2 a4@2 a4 a4@4 ~",
})).s("gm_lead_4_chiff").gain(0.41)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@4 A B C D E F G H ~@64 I J K L M N O P O P Q R ~@6>".pickRestart({
A: "d5@2 d5!2 d5@2 [d5,e5]@2 [d5,f5]@2 [d5,f5]@2 [d5,e5]@2 d5@2", // Dsus2 Dm Dsus2
B: "[c5,e5]@2 [c5,e5]!6 [c5,g5]@2 [c5,g5]@2 [b4,a5]@2 [c5,g5]@2", // C C5 B7 C5
C: "d5@2 d5!2 d5@2 [d5,e5]@2 [d5,f5]@2 d5@2 d5@2 d5@2", // Dsus2 Dm
D: "[d5,f#5]@2 [f#4,a4]!7 [d4,a4] [d4,a4]@2 [d4,a#4]@2 [d4,b4]@2", // D F#m D5 Gm G
E: "d5@2 d5!2 d5@2 [d5,e5]@2 [d5,f5]@2 [d5,f5]@2 e5@2 d5@2", // Dsus2 Dm
F: "[c5,e5]@2 [c5,e5]!2 [c5,e5]@2 e5@2 [c5,g5]@2 [c5,g5]@2 [c5,a5]@2 [c5,g5]@2", // C C5 F C5
G: "d5@2 [d4,d5]!2 [d4,d5]@2 d5@2 [d5,f#5]@2 [c5,e5]@2 [f#4,d5]@2 f#4@2", // D C D
H: "g4@2 [g3,d4,b4,g5]!4 [g3,d4,b4,g5]@2 [g3,d4,b4,g5]@8", // G
I: "[g3,d4,b4,g5]@2 [g3,d4,b4,g5]@2 [g3,d4,b4,g5]@2 [g3,d4,b4,g5]@2 [g3,d4,b4,f5]@2 [g3,d4,b4,f5]@2 [g3,d4,b4,f5]!2 [g3,d4,b4,f5]@2", // G G7
J: "[g3,e4,c5,e5]@2 [g3,e4,c5,e5]@2 [g3,e4,c5,e5]!2 [g3,e4,c5,e5]@2 [c5,g5]@2 [c5,g5]@2 [c5,f#5]@2 [c5,e5]@2", // C C5 Cdim C
K: "[d4,d5]@2 [d4,d5]@2 [d4,d5] [d4,b4] [d4,b4]@2 [d4,b4,f5]@2 [d4,b4]!4 [d4,b4]@2", // D G Bdim G
L: "[a3,d4,c5]@2 [a3,d4,c5]!2 [a3,d4,c5]@2 [a3,d4,c5]@2 [a3,d4,c5]@2 [a3,d4,c5]!4 [a3,d4,c5]@2", // D7
M: "d5@2 d5!4 [d5,e5]@2 [d5,f5]@2 [d5,f5]@2 [c5,e5]@2 d5@2", // Dsus2 Dm C
N: "c5@2 [c5,e5]!4 [c5,e5]@2 [c5,g5]@2 [c5,g5]@2 [c5,f#5]@2 [c5,e5]@2", // C C5 Cdim C
O: "[d4,b4]@2 [d4,b4]!2 [d4,b4]@2 [d4,b4]@2 d5@2 c5@2 b4@2 a4@2", // G
P: "[g3,d4,b4,g5]@2 [g3,d4,b4,g5]!4 [g3,d4,b4,g5]@2 [g3,d4,b4,g5]@2 [g3,d4,b4,g5]@2 [g3,d4,b4,g5]@2 [g3,d4,b4,g5]@2", // G
Q: "[d4,d5,g5]@2 [d4,d5,g5]!2 [d4,d5,g5]@2 [d4,b4,g5]@2 [d4,c5,f#5]@2 [d4,c5,f#5]@2 [d4,a4,f#5]!2 [d4,c5,f#5]@2", // G5 G D7 D D7
R: "g3@2 [g3,d4,b4,g5]!4 [g3,d4,b4,g5]@2 [g3,d4,b4,g5]@4 [g3,d4,b4,g5]@4", // G
})).s("gm_acoustic_guitar_steel").gain(0.51)
// other · distortion guitar
const distortion_guitar = note("<~@52 A B C D E F G H I J K L M N O P@2 ~@25>".pickRestart({
A: "g3 f#3 g3 [g3,a3] b3@2 b3 d4!2 c#4 d4 e4 d4@4", B: "c4 b3 c4 d4 e4 d4 e4 f#4 g4 f#4 g4 a4 g4@4",
C: "g4@2 g4 f#4 g4 a4 b4@2 g4 f#4 g4 a4 b4@2 b3@2",
D: "[a4,d5] b4@2 [a4,b4] a4@2 g4@2 [a4,b4,d5]@2 [a4,d5]@4 a4 ~, ~@3 d5@3 ~@10", // D5 Asus2 Bm7 D5
E: "a2 ~ e4 b3@2 a4 [a4,d5,g5] [d5,g5] a5 ~ [b3,e4]@2 d5 g5 g4@2, ~@2 [d5,g5]@4 ~@3 g5@3 ~@4", // Dsus4 G5 E5 G5
F: "[e4,g4,d5]!2 [e4,g4,d5]@2 ~@2 c4 ~ [f4,f#4,a#4] ~@2 c5@2 g4 c4@2, ~@4 [e4,c5]@2 ~ [c4,c5]@2 ~@7, ~@5 a#4@2 ~@9", // Em7 F#maj7 C
G: "g3 ~ [g3,d4,a4]@2 ~ d4!2 e4 d4 ~@2 [d4,e4]@2 [d4,e4,a4]!2 ~, ~@4 [g3,g4]@2 ~@3 e4@2 ~@5, ~@10 a4@3 ~@3", // Gsus2 Dsus2 G
H: "g4 f#4 g4 a4 b4 a4 g4 f#4 g4@5 g4 a4@2", I: "e3 g3 d4 e4@2 g4 [e4,d5,e5,g5]@2 [d5,g5]@4 e4 a5 [e4,g5]@2",
J: "[g2,c3]@2 [c4,e4,d5]@3 c5@3 b4 ~@2 d#4 e4 c5 [c4,e4]@2", K: "g2 ~ a4@2 ~ g4@3 [b3,f4] ~@2 a#3 b3 g4 d4 g4",
L: "~ g4@2 [c4,c#4,d4]@2 d4 a#3 [b3,e4] ~@3 f#3 ~ e4 g3@2, c#4@3 ~@5 [b3,e4]@2 [b3,e4]@3 ~@3, ~@9 g3@2 ~@5", // E5
M: "g3 f#3 g3 a3 b3 a3 g3 f#3 g3 f#3 g3 a3 b3 a3 g3@2", N: "c4 b3 c4 d4 e4 d4 e4 f#4 g4 f#4 g4 a4 g4@2 g4@2",
O: "~@2 c5 d5@2 a5 g5@2 [c5,d5] c5 a#4@2 c5@2 g4@2", // Csus2
P: "[[a4,b4,d5]@2 [b4,d5]@3 a4!2 g4 [a4,b4,d5]@2 [b4,d5]@4 a4 b4 a4@4 ~@12, ~@2 a4 ~@2 b4@3 ~@2 a4 ~@3 d5@6 ~@12]/2", // Bm7 Bm Bm7 Bm
})).s("gm_distortion_guitar").gain(0.51)
// chords · distortion guitar
const distortion_guitar_2 = note(`<
A B C D@2 E F G F E H F@2 E F G F E H F@2 E F G F E H F@2 E F G F E F@2 ~@8 F E F G F E H F@2 E F G F E H F@2 E F G F
E H F ~@8 F E F G F E H F H F H F I J K L@2 ~
>`.pickRestart({
A: "g3 f#3 g3 b3 a3 g3 [d3,e3]@2 c3 b2 c3 a3 g3@4", B: "g3 f#3 g3 b3 a3 g3 e3 a2 d3@2 d3@4 d3@2",
C: "g3 f#3 g3 b3 a3 g3 [d3,e3]@2 c3 b2 c3 [d3,a3] g3@4", // Dsus2 D5
D: "[g3 f#3 g3 b3 a3 d3 e3 d3 g3@10 [g2,d3,g3,d4,g4]!2 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]!2 [g2,d3,g3,d4,g4]@4 ~@4]/2", // G5
E: "~@2 [c3,e3,g3,c4,e4]!2 [c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]!2 [c3,e3,g3,c4,e4]@4 ~@4", // C
F: "~@2 [g2,d3,g3,d4,g4]!2 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]!2 [g2,d3,g3,d4,g4]@4 ~@4", // G5
G: "~@2 [d3,a3,c4,f#4]!2 [d3,a3,c4,f#4]@2 [d3,a3,c4,f#4]!2 [d3,a3,c4,f#4]@4 ~@4", // D7
H: "~@2 [g2,d3,g3,d4,g4]!2 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]!2 [d3,a3,c4,f#4]@4 ~@4", // G5 D7
I: "g3 f#3 g3 b3 a3 g3 e3@2 c3 b2 c3 a3 g3@2 ~@2", J: "g3 f#3 g3 b3 a3 [d3,g3] e3 a2 d3@7 [a2,d3]",
K: "g3 f#3 g3 b3 a3 g3 e3 d3 c3 b2 c3 a3 g3@2 ~@2", L: "[g3 f#3 g3 b3 a3 g3 e3 d3 g3@2 [d3,a3]@2 [d3,g3,d4]@20]/2",
})).s("gm_distortion_guitar").gain(0.41)
// chords · distortion guitar
const distortion_guitar_3 = note(`<
~@3 A B C B D B C E F G H G I B C E J K L M I B C N O B C P I B C N Q R S R T C U V W B C X D B C X Y B C P I B C E Z
B C P I B C E Z R S R T C AA V W B C P I B C E AB E AC E AD ~ AE ~ AF@2 ~
>`.pickRestart({
A: "~@5 e2 f2 f#2", B: "g2@2 [d3,g3]!2 [d3,g3]@2 [d3,g3]!2 g2@2 a2@2 a#2@2 b2@2",
C: "c3@2 [e3,g3]!2 [e3,g3]@2 [e3,g3]!2 c3@2 e2@2 f2@2 f#2@2", D: "d3@2 b2@2 c3@2 c#3@2 d3@2 e2 ~ f2 ~ f#2 ~",
E: "g2 b2 c3 c#3 d3 e2 f2 f#2",
F: "g2@2 [d3,g3,b3,g4]!2 [d3,g3,b3,g4]@2 [d3,g3,b3,g4]!2 [d3,g3,b3,g4]@2 e2@2 f2@2 f#2@2", // G
G: "g2@2 [d3,g3]!2 g2@2 [d3,g3]!2 g2@2 a2@2 a#2@2 b2@2", H: "c3@2 [e3,g3]!2 c3@2 [e3,g3]!2 c3@2 e2@2 f2@2 f#2@2",
I: "d3 b2 c3 c#3 d3 e2 f2 f#2",
J: "g2@2 [d3,g3,d4,g4]!2 [d3,g3,d4,g4]@2 [d3,g3,d4,g4]!2 [d3,g3,d4,g4]@2 e2@2 f2@2 f#2@2", // G5
K: "g2@2 [d3,g3]!2 d3@2 [d3,g3]!2 d3@2 a2@2 a#2@2 b2@2", L: "c3@2 [e3,g3]!2 g2@2 [e3,g3]!2 c3@2 e2@2 f2@2 f#2@2",
M: "g2@2 [d3,g3]!2 g2@2 [d3,g3]!2 [g2,d3]@2 b2@2 c3@2 c#3@2", N: "g2@2 b2@2 c3@2 c#3@2 d3@2 e2 ~ f2 ~ f#2 ~",
O: "g2 ~ [d3,g3]!2 d3@2 [d3,g3]!2 [d3,g3]@2 e2 ~ f2 ~ f#2 ~", // G5
P: "g2@2 [d3,g3]!2 [d3,g3]@2 [d3,g3]!2 [d3,g3]@2 b2@2 c3@2 c#3@2", // G5
Q: "g2@2 [d3,g3,d4]!2 [d3,g3,d4]@2 [d3,g3,d4]!2 [d3,g3,d4]@2 [d3,g3,d4]!2 [d3,g3,d4]@2 c#3@2", // G5
R: "~@2 [a3,f#4]@2 [d4,e4]@2 d4@2 a3 f#4 a3@2 [d4,e4] d4 a3@2, d3", // D Dsus2
S: "g2@2 [g3,b3,g4]@2 [g3,b3,g4]@2 [g3,c4] [g3,b3] [g3,b3]@2 g4@3 g3 g3@2", // G C5 G
T: "b2@2 g4@2 [b2,g4]@2 g4 ~ b2@2 ~@2 a#2@2 b2@2, ~@7 g4@3 g4@6", // Em
U: "g2@2 [d3,g3]!2 d3@2 [d3,g3]!2 d3@2 [d3,g3]!2 g2 ~ g#2 ~", // G5
V: "a2 ~ [e3,a3,c#4]!2 e3@2 [e3,a3,c#4]!2 a2@2 b2@2 c3@2 c#3@2", W: "d3@4 ~@6 e2 ~ f2 ~ f#2 ~",
X: "g2 e2 f2 f#2 g2 b2 c3 c#3", Y: "g2@2 [g3,d4] [g3,d4]@3 [g3,d4]!2 [g3,d4]@2 e2@2 f2@2 f#2@2",
Z: "g2@2 ~ [g3,b3] e3 [e3,g3,c4]@2 [d3,g3,b3]@3 e2@2 f2@2 f#2@2", // G C G
AA: "g2@2 [d3,g3]!2 d3@2 [d3,g3]!2 d3@2 [d3,g3]!2 g2 ~@3", // G5
AB: "g2@2 [d3,g3,d4]!6 [d3,g3,d4]@2 [d3,g3,d4] ~@3 [d3,g3,d4] ~", // G5
AC: "g2@2 [g3,d4] ~ b2 d3 e3@2 g3@2 e2@2 f2@2 f#2@2, ~@3 [g3,d4]@5 d4@8", AD: "g2@2 [d3,g3,d4]!6 [d3,g3,d4]@8",
AE: "~@5 [d3,a3,d4,f#4]@3", AF: "[~@5 [d3,a3,d4,f#4] [g2,d3,g3,d4,g4]@10]/2",
})).s("gm_distortion_guitar").gain(0.41)
// chords · piano
const piano = note(`<
~@4 A B C@2 D E F@2 G H I J K@2 L@2 M N O P O Q R S T U O V T W X Y Z T AA AB W AB AC AD AE AF AG AH AI W AJ AK AL AM
AN AA AO AP AQ AR T W AB AS T AT AU AV Z T AA AB W AB AC AD AL AM AN AA AO AP AQ AW AX AY AZ BA BB BC BD BE BF@2
>`.pickRestart({
A: "[a4,a#4] b4 g5 [a4,a#4] b4 g5 [a4,a#4] b4 g5 [a4,a#4] b4 a#4 a4 g4 a4 e4", // A#maj7
B: "[g4,e5] a4 g4 e4 g4 a4 g4 e4 g4 [a#4,e5]@2 [a#4,e5]@2 d5 [g4,d5]@2", // C A#dim G5
C: "[[b4,d5]@2 [c5,d5] [b4,d5]@2 [g4,d5]@2 [b4,e5]@2 [b4,e5]@2 [g4,e5]@2 [b4,e5]@2 [f#4,a4,e5]@2 [f#4,a4,e5]@2 [f#4,d5]@2 [f#4,a4,c5,e5]@2 [f#4,a4,c5,e5]@2 [f#4,d5]@2 f#4 [a#4,d5]@2 f#4@2, ~@15 d5 ~ d5 ~@14]/2", // Bm Csus2 Bm G5 E5 C E5 F#m7 …
D: "d5 e5 d5@2 a4 b4!3 a4 b4!3 a4 g4@3, g5 d5!2 ~",
E: "g4 a4 g4 e4@2 [g4,c5]@3 [e4,c5]@2 [a#4,e5]@2 d5 e5 d5@2, c5@5 ~@5 a4 ~ c5@4", // C5 C A#dim
F: "[a#5 b5 d6 b5@2 d5 [a#5,c#6]@2 [a5,c6]@3 [c6,e6]@2 a#5@2 b5@2 [b5,e6]@2 a5@2 g5 a5 e5 g5@2 g5@2 d5 e5 d5!2, ~@3 a#5 ~@24 g5@2 g5@2]/2", // A#m Am C E5
G: "a5 b5!3 a5 b5!3 a5 b5!3 a5@2 [g5,d6]!2, d6 ~ d6 ~ d6 ~@3", // G5
H: "g5 a5 g5 e5 g5 a5 g5 e5 ~ [e5,b5]@2 [e5,a5]@2 g5 e5 b5, c6@2 c6@2 c6@2 c6@2 ~ a#5 ~@6", // E5 A5
I: "a#5 b5 [e5,e6] [e5,e6]@2 d5 d5@2 ~ e5@3 ~@2 b5@2, d5@2 ~@3 b5@2 ~ d6@3 ~ e6@3 ~, ~@13 d5@3", // E
J: "[c5,f#5,b5]@4 f#5@2 c5 [c5,f#5,c6]@2 [c5,f#5,a#5]@2 [c5,f#5,a#5]@2 c5 [f#5,a5]@2, ~@4 f5 ~@11", // B Cdim Cm7b5 F#m
K: "[d5 e5@2 [d5,g5]@3 [d5,g5]@2 e5 d5@2 [a4,a#4,e5]@2 [a4,a#4,e5]@2 [a4,a#4,e5]@2 g4 a4 e4 g4 a4 g4 e4 g4 a4 g4 g4@3 [d4,e4]@2, c5@3 ~@29]/2", // G5 A Dsus2
L: "[a4 b4@2 [d4,d5]@2 d4 [a#4,c#5]@2 [a4,c5]@3 [c5,e5]@2 [a4,a#4,e5]@2 g4@2 a4 g4 e4 d4 c4 b3 a3 g#3@2 g3@2 g3@2 g3@2]/2", // D A#m Am C A
M: "g3@4 ~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4]!2", // G
N: "~@2 [g3,a#3,c4,e4]!2 ~@2 [g3,a#3,c4,e4]!2 ~@2 [g3,a#3]!2 ~@2 [g3,a#3]@2", // C7 Gm
O: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4]@2", // G
P: "~@2 [a3,c4,d4,f#4]!2 ~@2 [a3,c4,d4,f#4]!2 ~@2 [a3,c4,d4,f#4]!2 ~@2 [a3,c4,d4,f#4]@2", // D7
Q: "~@2 [e3,g3,a#3,c4]@2 ~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]@2", // C7
R: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]@2 ~@2 [a3,c4,d4,f#4]!2 ~@2 [a3,c4,d4,f#4]@2", // G D7
S: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 f4 e4@2 [g3,b3,d4]@2 e4 [g3,b3,d4]@2, ~@8 [g3,b3]@3 ~@5", // G
T: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2", // G
U: "~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]@2 ~@2 [e3,g3,a#3,c4]@2", // C7
V: "~@2 [a3,c4,d4,f#4]!2 ~@2 [a3,c4,d4,f#4]!2 ~@2 [a3,c4,d4,f#4]!2 ~@2 [a3,c4,d4,f#4]!2", // D7
W: "~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]!2", // C7
X: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~@2 [a3,c4,d4,f#4]!2 ~@2 [a3,c4,d4,f#4]!2", // G D7
Y: "~@2 [g3,b3,d4] e4 ~ [g3,b3,d4]@3 [g3,b3,d4]@2 ~@6", // G
Z: "~ [a3,c4,d4,f#4] ~ [a3,c4,d4,f#4] ~ [a3,c4,d4,f#4] ~ [a3,c4,d4,f#4]", // D7
AA: "~@2 [a3,c4,d4,f#4]!2 ~@2 [a3,c4,d4,f#4]!2 ~@2 [a3,c4,d4,f#4]@2 ~@2 [a3,c4,d4,f#4]@2", // D7
AB: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~ [g3,b3,d4]@2 [g3,b3,d4]", // G
AC: "~@2 [a3,c#4,e4]!2 ~@2 [a3,c#4,e4]!2 ~@2 [a3,c#4,e4]!2 ~@2 [a3,c#4,e4]@2", AD: "[a3,c4,d4,f#4] ~@7",
AE: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]@2", // G
AF: "~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]!2 ~@2 [a#3,c4]@2", // C7 A#sus2
AG: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]", // G
AH: "~@2 [a3,c4,d4,f#4]!2 ~ [a3,c4,d4,f#4]@2 [a3,c4,d4,f#4] ~@2 [a3,c4,d4,f#4]!2 ~ [a3,c4,d4,f#4]@2 [a3,c4,d4,f#4]", // D7
AI: "~@2 [g3,b3,d4] e4 ~ [g3,b3,d4]@2 e4 [g3,b3,d4]@2 [g3,b3,d4]@2 ~@4", // G
AJ: "[g3,b3,d4]!2 ~@2 [g3,b3,d4]@2 ~@4 [a3,c4,d4,f#4]!2 ~ [a3,c4,d4,f#4]@2 [a3,c4,d4,f#4]", // G D7
AK: "~@2 [g3,b3,d4] e4 ~ [g3,b3,d4]@2 e4 ~@5 [g3,b3,d4]@2 [g3,b3,d4]", // G
AL: "~@2 [g3,b3,d4] e4 ~ [g3,b3,d4]@3 [g3,b3,e4]@2 [g3,b3,e4]@2 ~@4", // G Em
AM: "~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]@2 ~@2 [e3,g3,a#3,c4]!2", // C7
AN: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]@2 ~@2 [g3,b3,d4]!2", // G
AO: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4] e4 ~@2 [g3,b3,d4]!2 ~ [g3,b3,d4] ~@2", // G
AP: "~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]!2 ~ [e3,g3,a#3,c4]@2 [e3,g3,a#3,c4]", // C7
AQ: "[g3,b3,d4]!2 ~ [g3,b3,d4]@2 [g3,b3,d4] ~@4 [a3,c4,d4,f#4]!2 ~ [a3,c4,d4,f#4]@2 [a3,c4,d4,f#4]", // G D7
AR: "~@2 [g3,b3,d4] e4 ~ [g3,b3,d4]@3 [g3,b3,d4]@2 [d4,a#4]@2 [d4,a4]@2 [d4,g4]!2", // G Gm D5 G5
AS: "~@2 [a3,c4,d4,f#4]!2 ~@2 [a3,c4,d4,f#4]@2 ~@2 [a3,c4,d4,f#4]!2 ~@2 [a3,c4,d4,f#4]@2", // D7
AT: "~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]!2 ~@2 [e3,g3,a#3,c4]!2 ~@2 [a#3,c4]!2", // C7 A#sus2
AU: "~@2 [g3,b3,d4]!2 ~ [g3,b3,d4]@3 [a3,c4,d4,f#4]@2 [a3,c4,d4,f#4]!2 ~ [a3,c4,d4,f#4]@2 [a3,c4,d4,f#4]", // G D7
AV: "~@2 [g3,b3,d4] e4 ~ [g3,b3,d4]@3 [g3,b3,d4]@2 [g3,b3,d4]@6", // G
AW: "~@2 d4 e4 ~ d4 e4@2 e4@2 d4 e4@5, ~@2 [b3,g4]@2 ~ [b3,g4]@3 d4 ~ [b3,g4]@6", // Em
AX: "~@2 [g3,b3,d4]!2 ~ [g3,b3,d4]@2 [g3,b3,d4] ~@2 [a3,c4,d4,f#4]!2 ~ [a3,c4,d4,f#4]@2 [a3,c4,d4,f#4]", // G D7
AY: "~@2 d4 e4 ~ d4 e4 e4@3 d4 e4@5, ~@2 [b3,g4]@2 ~ [b3,g4]@5 [b3,g4]@6", // Em
AZ: "~@2 [g3,b3,d4]!2 ~@2 [g3,b3,d4]@2 [a3,c4,d4,f#4]@2 [a3,c4,d4,f#4]!2 ~ [a3,c4,d4,f#4]@2 [a3,c4,d4,f#4]", // G D7
BA: "g4@2 [b3,e4,g4]!2 ~ [b3,d4,g4]@2 d4 ~@2 d4@2 e4@4, ~@7 [b3,g4]@9", BB: "g3 c4", BC: "d4@3 ~@2 [a3,c4,f#4,a4]@3",
BD: "g3 [c4,e4]", BE: "g3 ~@4 [a3,d4,f#4]!2 ~", BF: "[a3 a#3 [b3,g4]@16 ~@14]/2",
})).s("gm_piano").gain(0.41)
// bass · piano
const bass = note(`<
~@3 A B C D E F G H I J K L M N O P Q N R D S N R P T N R D U N R P D V W X Y R Z AA AB N AC AD S N R P AE N R D U N R
P AF N R D S N AC AG AH V W X Y R Z AA AB N R D U N R P T AI AJ AK AL AM AN AO AP@2 ~
>`.pickRestart({
A: "~@5 [e1,e2] [f1,f2] [f#1,f#2]", B: "[g1,g2]@2 [g1,g2] [d1,d2] [g1,g2] [a1,a2] [a#1,a#2] [b1,b2]",
C: "[c2,c3]@2 [g1,g2]@2 [c2,e3]@3 [c2,e3]", D: "[g1,g2]@2 [d1,d2]@2 [g1,g2] [b1,b2] [c2,c3] [c#2,c#3]",
E: "[d2,d3]!5 d3 d2 d3", F: "[g1,g2]@2 [d1,d2]@2 [g1,g2]@2 [g1,g2]!2",
G: "[c2,c3]@3 [c2,c3]@2 [c2,c3]@3 [c2,c3]@4 [c2,c3]@4", H: "[g1,g2] [b1,b2] [c2,c3] [c#2,c#3] [d2,d3]@2 ~ [d2,d3]",
I: "[g1,g2]!8", J: "[g1,g2]@2 [g1,g2]@2 [g1,g2]!4", K: "[c2,c3]!4", L: "[g1,g2]@2 [g1,g2]@2 [g1,g2]@3 [c#2,c#3]",
M: "[d2,d3]@2 [d2,d3]!3 [d2,d3]@2 [d2,d3]", N: "[g1,g2]@2 [d1,d2]@2 [g1,g2] [a1,a2] [a#1,a#2] [b1,b2]",
O: "[c2,c3]@2 [c2,c3]@2 [c2,c3] c3 c2 c3", P: "[g1,g2] [b1,b2] [c2,c3] [c#2,c#3] [d2,d3] [e1,e2] [f1,f2] [f#1,f#2]",
Q: "[g1,g2]@2 [g1,g2]@2 [g1,g2]@2 [g1,g2]!2", R: "[c2,c3]@2 [g1,g2]@2 [c2,c3] [e1,e2] [f1,f2] [f#1,f#2]",
S: "[d2,d3] [b1,b2] [c2,c3] [c#2,c#3] [d2,d3] [e1,e2] [f1,f2] [f#1,f#2]", T: "[g1,g2] [d1,d2] [g1,g2] [d1,d2]",
U: "[d1,d2] [b1,b2] [c2,c3] [c#2,c#3] [d2,d3] [e1,e2] [f1,f2] [f#1,f#2]", V: "[d2,d3] [a1,a2] [d2,d3] [a1,a2]",
W: "[g1,g2]@4 [d1,d2]@4 [g1,g2] b1@3 c2!2 c#2@2", X: "[d1,d2] [a1,a2] [d2,d3] [a1,a2]",
Y: "[g1,g2]@2 [d1,d2]!2 [e1,e2]!2 [f#1,f#2]!2 [g1,g2]!4 [a1,a2]@2 [b1,b2]@2", // G D E F# G A B
Z: "[g1,g2]@2 [d1,d2]@2 [g1,g2]@2 [g1,g2] [g#1,g#2]", AA: "[a1,a2]@2 [e1,e2]@2 [a1,a2] [b1,b2] [c2,c3] [c#2,c#3]",
AB: "[d2,d3] ~@7", AC: "[c2,c3]@2 [g1,g2]@2 [c2,c3] [e2,e3] [f2,f3] [f#2,f#3]",
AD: "[g2,g3]@2 [d2,d3]@2 [g2,g3] [b1,b2] [c2,c3] [c#2,c#3]", AE: "[g1,g2] [d1,d2] [g1,g2]!2",
AF: "[g1,g2]@2 [d2,d3]@2 [g1,g2] [e1,e2] [f1,f2] [f#1,f#2]", // G D G E F F#
AG: "[g2,g3] [b1,b2] [c2,c3] [c#2,c#3] [d2,d3] [e1,e2] [f1,f2] [f#1,f#2]", // G B C C# D E F F#
AH: "[g1,g2]@2 [d1,d2]@2 [g1,g2] [b1,b2] [c2,c3]!2", // G D G B C
AI: "[g1,g2] [d2,d3] [c2,c3] [c#2,c#3] [d2,d3] [e1,e2] [f1,f2] [f#1,f#2]", // G D C C# D E F F#
AJ: "[g1,g2]@2 [d2,d3] [e2,e3] [g2,g3] [e2,e3] [d2,d3]@2", // G D E G E D
AK: "[g1,g2] [b1,b2] [c2,c3] [c#2,c#3] [d2,d3] [e2,e3] [f2,f3] [f#2,f#3]", AL: "[g1,g3] ~ [d2,d3]@2 [g2,g3]@4",
AM: "[g1,g2] [c2,c3]", AN: "[g1,g2]@3 ~@2 [d2,d3]@3", AO: "g1 c2", AP: "[g1 ~@4 d1 g1@10]/2",
})).s("gm_piano").gain(0.41)
// bass · acoustic bass
const bass_2 = note(`<
~@3 A B C D E F G H I B J K E F L H M B C D E F G H M B N O E F N H P Q R S T U V W X B N O E F Y Z AA B N O E F L H M
B U D E F AB AC AD Q R S T U V W X B N O E F L H AE AF AG H AH ~ AI ~ AJ@2 ~
>`.pickRestart({
A: "~@5 e1 f1 f#1", B: "g1@2 ~ g1 d2@3 d2 g2@2 a1@2 a#1@2 b1@2", C: "c2@2 ~ c2 g2@3 g2 c3@2 e2@2 f2@2 f#2@2",
D: "g2@2 ~ d2 d2@3 g2 g2@2 b1@2 c2@2 c#2@2", E: "d2 b1 c2 c#2 d2 e1 f1 f#1",
F: "g1@2 ~ d2 d2@2 ~ d2 g2@2 a1@2 a#1@2 b1@2", G: "c2@3 e2 g2@3 g2 c3@2 e2@2 f2@2 f#2@2",
H: "g2 b1 c2 c#2 d2 e1 f1 f#1", I: "g1@2 ~ a1 b1@2 d2@2 g2@2 e1@2 f1@2 f#1@2",
J: "c2@3 c2 g2@3 g2 c3@2 e2@2 f2@2 f#2@2", K: "g2@3 d2 d2@3 g2 g2@2 b1@2 c2@2 c#2@2",
L: "c2@2 ~ c2 g1@2 ~ g1 c2@2 e2@2 f2@2 f#2@2", M: "g1@2 ~ d2 d2@2 ~ g2 g2@2 e1@2 f1@2 f#1@2",
// … 61 more lines
More by Led Zeppelin
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.