0:00/0:00
// The Crunge — Led Zeppelin
// 110 bpm, 9/8, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (9/8 at bar 1, 4/4 at bar 9, 9/8 at bar 12, 4/4 at bar 13, ...) are rendered on a constant 9/8 grid of one bar per cycle
// note: Full arrangement: all 81 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/4.5)
// 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 · electric guitar clean · "Guitar 1"
const electric_guitar_clean = note(`<
~@5 A@4 B C D E F@2 G H I J K@8 L M N O P Q@2 R@2 S T@2 U@6 V W X@2 Y Z AA AB@2 AC@2 AD AE@4 AF@18 AG ~
>`.pickRestart({
A: "[~@4 [g5,b5,e6]!2 ~ [g5,b5,e6] [a5,c#6,f#6] [g5,b5,e6] ~@3 [g5,b5,e6] ~@5 [g5,b5,e6]!2 ~@2 [g5,b5,e6]@3 ~@2 [g5,b5,e6]!2 ~ [g5,b5,e6] [a5,c#6,f#6] [g5,b5,e6] ~@3 [g5,b5,e6] ~@5 [g5,b5,e6]!2 ~@2 [g5,b5,e6]@3 ~@2 [g5,b5,e6]!2 ~ [g5,b5,e6] [a5,c#6,f#6] [g5,b5,e6] ~@3 [g5,b5,e6] ~@5 [g5,b5,e6]!2 ~@2 [g5,b5,e6]@3 ~@2 [g5,b5,e6]!2 ~ [g5,b5,e6] [a5,c#6,f#6] [g5,b5,e6] ~@3 [g5,b5,e6] ~@3 [g5,b5,e6] ~ [g5,b5,e6] ~@3 [g5,b5,e6]]/4", // Em F#m Em F#m Em F#m Em F#m …
B: "[g5,b5,e6] ~@4 [c5,e5,a5]@4 [c5,e5,a5] ~ [c5,e5,a5] ~@5 [b4,d#5,g#5] ~@2 [c5,e5,a5] ~@3", // Em Am G#m Am
C: "~@4 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@2 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 ~ [c#5,f#5,a#5]@7 ~", // G#m A G#m A F#
D: "[c#5,e5,a5]@4 [c#5,e5,a5]!2 ~@6 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 ~@5 [b4,d#5,g#5]", // A G#m A G#m
E: "~ [c#5,e5,a5]@3 [b4,d#5,g#5] ~@6 [a#4,d5,g5]@4 ~ [a#4,d#5,g5]@5 [c5,e5,a5]@3", // A G#m Gm D# Am
F: "[~ [c5,e5,a5] ~ [c5,e5,a5] ~@5 [b4,d#5,g#5] ~@2 [c5,e5,a5]@3 ~@5 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@2 [b4,d#5,g#5]@3 [c#5,e5,a5]!2 ~@2 [c#5,f#5,a#5]@7 ~ [c#5,e5,a5]@4 [c#5,e5,a5] [c#5,e5,a5]@3]/2", // Am G#m Am G#m A G#m A F# …
G: "~@4 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 ~@5 [b4,d#5,g#5] ~ [c#5,e5,a5]@3 [b4,d#5,g#5]@3 ~", // G#m A G#m A G#m
H: "~@3 [a#4,d#5,g5]@5 [b4,d#5,g#5]@5 [c5,e5,a5]@4 [c5,e5,a5] ~ [c5,e5,a5] ~@4", // D# G#m Am
I: "~ [b4,d#5,g#5] ~@2 [c5,e5,a5] ~@7 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@2 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 ~", // G#m Am G#m A G#m A
J: "[c#5,f#5,a#5]@7 ~ [c5,e5,a5]@4 [c5,e5,a5]!2 ~@5 [b4,d#5,g#5] ~ [c5,e5,a5]@3", // F# Am G#m Am
K: "[~@7 [b4,d#5,g#5] ~ [c#5,e5,a5]@3 [b4,d#5,g#5] ~@2 [c#5,e5,a5]!2 [g5,b5,e6] ~ [g5,b5,e6]!2 [a5,c#6,f#6] ~ [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6] ~ [g#5,b5,e6]!2 [a5,c#6,f#6] ~ [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6] ~ [g#5,b5,e6]!2 [a5,c#6,f#6] ~ [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6] ~ [g#5,b5,e6]!2 [a5,c#6,f#6] ~ [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6] ~ [g#5,b5,e6]!2 [a5,c#6,f#6] ~ [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6] ~ [g#5,b5,e6]!2 [a5,c#6,f#6] ~ [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6] ~ [g#5,b5,e6]!2 [a5,c#6,f#6] ~ [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6] ~ [g#5,b5,e6]!2 [a5,c#6,f#6] ~ [g#5,b5,e6]]/8", // G#m A G#m A Em F#m E F#m …
L: "~@3 [g#5,b5,e6]!2 ~@2 [g#5,b5,e6]!2 ~@3 [g#5,b5,e6]@3 ~ [g#5,b5,e6] ~@2 [c5,e5,a5]@4 [c5,e5,a5]", // E Am
M: "[c5,e5,a5] ~@6 [b4,d#5,g#5] ~ [c5,e5,a5] ~@7 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 [b4,d#5,g#5]", // Am G#m Am G#m A G#m
N: "~ [c#5,e5,a5]@3 ~ [c#5,f#5,a#5]@7 ~ [c#5,e5,a5]@4 [c#5,e5,a5] ~ [c#5,e5,a5] ~@4", // A F# A
O: "~ [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 ~@5 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@2 [b4,d#5,g#5] ~@6", // G#m A G#m A G#m
P: "[a#4,d5,g5]@4 ~ [a#4,d#5,g5]@5 ~ [c5,e5,a5]@4 [c5,e5,a5]!2 ~@6 [b4,d#5,g#5]", // Gm D# Am G#m
Q: "[~ [c5,e5,a5]@3 ~@5 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 [b4,d#5,g#5]@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~ [c#5,f#5,a#5]@7 ~ [c#5,e5,a5]@4 [c#5,e5,a5] ~ [c#5,e5,a5]@3 ~@3 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 ~]/2", // Am G#m A G#m A F# A G#m …
R: "[~@3 [c5,e5,a5] [b4,d#5,g#5] ~@2 [c5,e5,a5]@2 [b4,d#5,g#5]@3 ~@4 [a#4,d#5,g5]@5 [b4,d#5,g#5]@5 ~ [c5,e5,a5]@4 [c5,e5,a5]!2 ~@6 [b4,d#5,g#5] ~ [c5,e5,a5] ~@6]/2", // Am G#m Am G#m D# G#m Am G#m …
S: "~ [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 [b4,d#5,g#5] ~ [c#5,e5,a5]@3 ~ [c#5,f#5,a#5]@7 ~ [c5,e5,a5]@3", // G#m A G#m A F# Am
T: "[~ [c5,e5,a5] ~ [c5,e5,a5] ~@4 [b4,d#5,g#5] ~@2 [c5,e5,a5]@3 ~@6 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@2 [b4,d#5,g#5] ~@2 [c#5,e5,a5]!2 ~ [g5,b5,e6]!3 ~ [a5,c#6,f#6] [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6]@3]/2", // Am G#m Am G#m A G#m A Em …
U: "~ [g#5,b5,e6]@3 ~@3 [g#5,b5,e6]!3 ~ [a5,c#6,f#6] [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6]@3", // E F#m E
V: "~ [g#5,b5,e6]@3 ~@3 [g#5,b5,e6]!3 ~ [a5,c#6,f#6] [g#5,b5,e6]@3 ~ [g#5,b5,e6]!2 ~@2 [g#5,b5,e6]!2 ~@2", // E F#m E
W: "~ [g#5,b5,e6]@3 ~ [g#5,b5,e6] ~@2 [c5,e5,a5]@4 [c5,e5,a5]!2 ~@6 [b4,d#5,g#5] ~@2 [c5,e5,a5]", // E Am G#m Am
X: "[~@7 [b4,d#5,g#5] ~ [c#5,e5,a5]@3 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 ~ [c#5,f#5,a#5]@7 ~ [c#5,e5,a5]@4 [c#5,e5,a5]!2 ~@6 [b4,d#5,g#5] ~ [c#5,e5,a5]@3 ~@4]/2", // G#m A G#m A F# A G#m A
Y: "~ [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 [b4,d#5,g#5] ~@5 [a#4,d5,g5]@4 ~@2 [a#4,d#5,g5]@5", // G#m A G#m Gm D#
Z: "[c5,e5,a5]@4 [c5,e5,a5]!2 ~@6 [b4,d#5,g#5] ~@2 [c5,e5,a5]@3 ~@5 [b4,d#5,g#5]", // Am G#m Am G#m
AA: "~ [c#5,e5,a5]@3 [b4,d#5,g#5]@3 [c#5,e5,a5]!2 ~@2 [c#5,f#5,a#5]@7 ~ [c#5,e5,a5]@4 [c#5,e5,a5]", // A G#m A F# A
AB: "[[c#5,e5,a5]@3 ~@4 [b4,d#5,g#5] ~ [c#5,e5,a5]@3 ~@4 [c5,e5,a5] [b4,d#5,g#5] ~@2 [c5,e5,a5]@3 [b4,d#5,g#5]@3 ~@3 [a#4,d#5,g5]@5 ~ [b4,d#5,g#5]@5 [c5,e5,a5]@4 [c5,e5,a5]!2 ~@2]/2", // A G#m A Am G#m Am G#m D# …
AC: "[~@4 [b4,d#5,g#5] ~@2 [c5,e5,a5] ~@7 [b4,d#5,g#5] ~ [c#5,e5,a5]@3 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 ~ [c#5,f#5,a#5]@7 ~ [c5,e5,a5]@4 [c5,e5,a5]!2 ~@4 [b4,d#5,g#5] ~@2]/2", // G#m Am G#m A G#m A F# Am …
AD: "[c5,e5,a5]@3 ~@6 [b4,d#5,g#5] ~@2 [c#5,e5,a5]@3 [b4,d#5,g#5] ~ [c#5,e5,a5] ~ [c#5,e5,a5] [g5,b5,e6]!2 ~ [g5,b5,e6]", // Am G#m A G#m A Em
AE: "[a5,c#6,f#6] [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@3 [g#5,b5,e6]@3 ~ [g#5,b5,e6]@3 ~@2 [g#5,b5,e6]!2 ~ [g#5,b5,e6]", // F#m E
AF: "[a5,c#6,f#6] [g5,b5,e6] ~@3 [g5,b5,e6] ~ [g5,b5,e6] ~@3 b5@2 [b5,e6] ~ b5@2 [b5,e6]@3 [g5,b5,e6]!2 ~ [g5,b5,e6]", // F#m Em E5 Em
AG: "[a5,c#6,f#6] [g5,b5,e6] ~@3 [a5,c#6,f#6] ~ [g5,b5,e6] ~@16", // F#m Em F#m Em
})).s("gm_electric_guitar_clean").gain(0.32)
// other · accordion · "Keyboard 1"
const accordion = note("<~@23 A@5 ~@14 B@5 ~@18 C@14 D ~>".pickRestart({
A: "[~@21 a4 ~ b4@4 a4 e4 ~@2 e4@2 d4@3 e4@3 f#4@2 a4 ~@3 a4 ~ b4@4 a4 e4 ~@2 e4@2 d4@3 e4@3 f#4@2 a4 ~@3 a4 ~ b4@4 a4 e4 ~@2 e4@2 d4@3 e4@3 f#4@2 a4 ~@3 a4 ~ b4@4 a4 e4 ~@2 e4@2 d4@3 e4@3 f#4@2 a4 ~@6]/5",
B: "[~@11 a4 b4@4 a4 e4 ~@2 e4@3 d4@2 e4@3 f#4@3 e4 ~@3 a4 b4@4 a4 e4 ~@2 e4@3 d4@2 e4@3 f#4@3 a4 ~@3 a4 b4@4 a4 e4 ~@2 e4@3 d4@2 e4@3 f#4@3 a4 ~@3 a4 b4@4 a4 e4 ~@2 e4@3 d4@2 e4@3 f#4@3 a4 ~@16]/5",
C: "e4 f#4@4 d4 ~ b3@2 b3@3 d4@3 e4@2 d4@3 e4 ~@3", D: "e4 f#4@4 d4 ~ b3@2 b3@3 d4@3 e4@2 e4 ~@6",
})).s("gm_accordion").gain(0.56)
// other · accordion · "Keyboard 2"
const accordion_2 = note("<~@23 A@5 ~@3 B@2 ~ C@2 D ~@5 E@5 ~@2 F G H ~ I J ~@6 K@18 L ~>".pickRestart({
A: "[~@21 e4 ~ f#4@4 e4 c#4 ~@2 c#4@2 b3@3 c#4@3 d4@2 e4 ~@3 e4 ~ f#4@4 e4 c#4 ~@2 c#4@2 b3@3 c#4@3 d4@2 e4 ~@3 e4 ~ f#4@4 e4 c#4 ~@2 c#4@2 b3@3 c#4@3 d4@2 e4 ~@3 e4 ~ f#4@4 e4 c#4 ~@2 c#4@2 b3@3 c#4@3 d4@2 e4 ~@6]/5",
B: "[f4 f#4@4 g#4 ~ a4@4 c#5 d5@8 ~ b4 ~ a4@2 a4@3 b4@3 f4 e4 d4 ~@2 d4 ~@2 b3 ~ b3 ~@6]/2",
C: "[~@16 f4 f#4@4 g#4 ~ a4@4 c#5 d5@8 ~ b4 ~ a4@2 a4@3 b4@3 f4]/2", D: "e4 d4 ~@2 d4 ~@2 b3 ~@2 f4 f#4 ~@12",
E: "[~@11 e4 f#4@4 e4 c#4 ~@2 c#4@3 b3@2 c#4@3 d4@3 c#4 ~@3 e4 f#4@4 e4 c#4 ~@2 c#4@3 b3@2 c#4@3 d4@3 e4 ~@3 e4 f#4@4 e4 c#4 ~@2 c#4@3 b3@2 c#4@3 d4@3 e4 ~@3 e4 f#4@4 e4 c#4 ~@2 c#4@3 b3@2 c#4@3 d4@3 e4 ~@16]/5",
F: "~@13 f4 ~ f#4@4 g#4 a4@4", G: "c#5 d5@8 ~@2 b4 a4@3 a4@2 b4@3 f4 e4 ~ d4", H: "~ d4 ~@2 b3 ~@2 d4 ~@16",
I: "~@5 f4 ~ f#4@4 g#4 a4@4 c#5 d5@7", J: "~@3 b4 a4@3 a4@2 b4@3 f4 e4 ~ d4 ~ d4 ~@2 b3 ~@2 b3",
K: "c#4 d4@4 b3 ~ g3@2 g3@3 b3@3 c#4@2 b3@3 c#4 ~@3", L: "c#4 d4@4 b3 ~ g3@2 g3@3 b3@3 c#4@2 c#4 ~@6",
})).s("gm_accordion").gain(0.56)
// other · accordion · "Keyboard 3"
const accordion_3 = note("<~@23 A@5 ~@3 B@2 ~ C@2 D ~@5 E@5 ~@2 F G H ~ I J ~@6 K@18 L ~>".pickRestart({
A: "[~@21 c#4 ~ d4@4 c#4 a3 ~@2 a3@2 g3@3 a3@3 b3@2 c#4 ~@3 c#4 ~ d4@4 c#4 a3 ~@2 a3@2 g3@3 a3@3 b3@2 c#4 ~@3 c#4 ~ d4@4 c#4 a3 ~@2 a3@2 g3@3 a3@3 b3@2 c#4 ~@3 c#4 ~ d4@4 c#4 a3 ~@2 a3@2 g3@3 a3@3 b3@2 c#4 ~@6]/5",
B: "[f3 f#3@4 g#3 ~ a3@4 c#4 d4@8 ~ b3 ~ a3@2 a3@3 b3@3 f3 e3 d3 ~@2 d3 ~@2 b2 ~ b2 ~@6]/2",
C: "[~@16 f3 f#3@4 g#3 ~ a3@4 c#4 d4@8 ~ b3 ~ a3@2 a3@3 b3@3 f3]/2", D: "e3 d3 ~@2 d3 ~@2 b2 ~@2 f3 f#3 ~@12",
E: "[~@11 c#4 d4@4 c#4 a3 ~@2 a3@3 g3@2 a3@3 b3@3 a3 ~@3 c#4 d4@4 c#4 a3 ~@2 a3@3 g3@2 a3@3 b3@3 a3 ~@3 c#4 d4@4 c#4 a3 ~@2 a3@3 g3@2 a3@3 b3@3 a3 ~@3 c#4 d4@4 c#4 a3 ~@2 a3@3 g3@2 a3@3 b3@3 a3 ~@16]/5",
F: "~@13 f3 ~ f#3@4 g#3 a3@4", G: "c#4 d4@8 ~@2 b3 a3@3 a3@2 b3@3 f3 e3 ~ d3", H: "~ d3 ~@2 b2 ~@2 d3 ~@16",
I: "~@5 f3 ~ f#3@4 g#3 a3@4 c#4 d4@7", J: "~@3 b3 a3@3 a3@2 b3@3 f3 e3 ~ d3 ~ d3 ~@2 b2 ~@2 b2",
K: "a4 b4@4 g4 ~ e4@2 e4@3 g4@3 a4@2 g4@3 a4 ~@3", L: "a4 b4@4 g4 ~ e4@2 e4@3 g4@3 a4@2 a4 ~@6",
})).s("gm_accordion").gain(0.56)
// bass · electric bass finger · "Bass"
const bass = note(`<
~@3 A@5 B C D E@2 F@2 G H I J K L@7 M N@2 O P@3 Q@2 R S@2 T@6 U@2 V@2 W X@2 Y@2 G Z@2 AA@7 AB AA AB AA AB AA@2 AB@2
AA@2 AB@2 AA AB AC ~
>`.pickRestart({
A: "~@4 c2 b1 ~ a#1 a1!2 ~@3 a2 ~@5 g2 ~ a2 ~ a2", B: "~@4 c2 b1 ~ a#1 a1!2 ~@3 a2 ~@5 g2@3 ~ a2",
C: "~@5 d2@4 ~@8 c2@3 d2 ~@3", D: "~@4 c2@3 d2@2 c2@3 ~@4 d#2@7 ~",
E: "[d2@4 ~@8 c2@3 d2 ~@7 c2@2 d2@3 c2@3 ~@4 c2@5 c#2@5 d2@3]/2",
F: "[~@9 c2@3 d2 ~@7 c2@3 d2@2 c2@3 ~@4 d#2@7 ~ d2@4 ~@4]/2", G: "~@4 c2@3 d2 ~@7 c2@2 d2@3 c2@3 d2",
H: "~@3 c2@5 c#2@5 d2@4 ~@7", I: "~ c2@3 d2 ~@7 c2@3 d2@2 c2@3 d2 ~@3", J: "d#2@7 ~ d2@4 ~@8 c2@3 d2",
K: "~@7 c2@2 d2@3 c2@3 d2 ~ c2 ~ b1 a#1 a1 ~ a1", L: "~@3 a2 ~@4 g2 ~@2 a2!2 ~@4 c2 ~ b1 a#1 a1 ~ a1",
M: "~@3 a2!2 ~@3 g2 ~@2 a2!3 ~@5 d2@4 ~", N: "[~@7 c2@2 d2 ~@7 c2@3 d2@3 c2@3 ~@3 d#2@7 ~ d2@4 ~@7]/2",
O: "~ c2@3 d2 ~@7 c2@3 d2@2 c2@3 ~@4",
P: "[c2@5 c#2@5 ~ d2@4 ~@8 c2@2 d2 ~@7 c2@3 d2@3 c2@3 ~@3 d#2@7 ~ d2@4 ~@8 c2@3 d2 ~@3]/3",
Q: "[~@3 d2 c2@3 d2@2 c2@3 d2 ~@3 c2@5 c#2@5 ~ d2@4 ~@8 c2@2 d2 ~@6]/2", R: "~ c2@3 d2@3 c2@2 d2 ~@3 d#2@7 ~ d2@3",
S: "[~@9 c2@3 d2 ~@7 c2@3 d2@2 c2@3 d2 ~@2 c2 b1 a#1 ~ a1!2 ~@3 a2 ~@4 g2 ~@2]/2",
T: "a2!2 ~@5 c2 b1 a#1 ~ a1!2 ~@3 a2 ~@4 g2 ~@2",
U: "[a2!2 ~@5 c2 b1 a#1 ~ a1!2 ~@3 a2!2 ~@3 g2 ~ g2@2 a2@3 ~@4 d2@4 ~@8 c2@3 d2]/2",
V: "[~@7 c2@2 d2@3 c2@3 ~@4 d#2@7 ~ d2@4 ~@8 c2@2 d2 ~@6]/2", W: "~ c2@3 d2@3 c2@3 ~@3 c2@5 ~ c#2@5",
X: "[d2@4 ~@8 c2@3 d2 ~@7 c2@2 d2@3 c2@3 ~@4 d#2@7 ~ d2@4 ~]/2",
Y: "[~@7 c2@2 d2 ~@6 d2 c2@3 d2@3 c2@2 d2 ~@3 c2@5 ~ c#2@5 d2@4 ~@4]/2",
Z: "[~@3 d#2@7 ~ d2@4 ~@8 c2@2 d2 ~@7 c2@3 d2@3 c2@2 d2 ~@2 c2 b1 ~ a#1]/2",
AA: "a1!2 ~@3 a2 ~@5 g2 ~ a2 ~ a2 ~@4 c2 b1 ~ a#1", AB: "a1!2 ~@3 a2 ~@5 g2 ~ a2 ~ a2 ~@4 f#1 g1 ~ g#1",
AC: "a1!2 ~@3 a2 ~ a2 ~@3 g2 ~@3 a2@3 ~@6",
})).s("gm_electric_bass_finger").gain(0.56)
// drums · snare
const snare = s("sd").struct(`<
~ A@7 B C D E F G H I J E K L M@7 N O J E P G Q D I R G S T@7 G L I R E F O U I P G V@22 W ~
>`.pickRestart({
A: "x ~@6 x ~@5 x ~@3 x ~@6", B: "x ~@6 x ~@3 x ~@12", C: "x ~@2 x ~@7 x ~@9 x ~@2", D: "~ x ~",
E: "~@5 x ~@10 x ~@7", F: "~ x ~@6", G: "~@3 x ~@9 x ~@10", H: "x ~@6 x", I: "~@8 x ~@10 x ~@4", J: "~@19 x ~@4",
K: "~@13 x ~@10", L: "x ~@10 x ~@12", M: "~@3 x ~@3 x ~@12 x ~@3", N: "~@3 x ~@9 x ~ x!2 ~@7",
O: "x ~@10 x ~@9 x ~@2", P: "~@2 x", Q: "~@11 x ~@9 x ~@2", R: "~@5 x ~@18", S: "x ~@3 x!2",
T: "~@9 x ~@6 x ~@3 x ~@3", U: "~@7 x", V: "~@5 x ~@3 x ~@13 x", W: "~@5 x ~@3 x ~@14",
})).gain(0.56)
// drums · hihat
const hihat = s("hh").struct(`<
A B@8 C D E F G H I J K L M N@6 O P Q R S T U V W I X Y Z AA@6 AB Y AC AD AE E AF V AG AH AI AJ AK@22 AL ~
>`.pickRestart({
A: "~@19 x ~@4", B: "~@4 x!2 ~@2 x!2 ~@9 x ~@4", C: "~@5 x ~@3 x ~@6 x!2 ~@2 x ~@3",
D: "~@3 x!2 ~@2 x ~ x ~@2 x ~@3 x ~@7", E: "x ~@3 x ~@6 x!2 ~@2 x ~@5 x ~ x",
F: "~ x ~@2 x ~@2 x ~@3 x ~@4 x ~@4 x ~@2", G: "~ x ~@6 x!2 ~@2 x ~@6 x!2 ~@2 x",
H: "~ x ~@2 x ~@3 x ~@7 x ~@3 x ~@3", I: "~@3 x ~@3 x ~@5 x ~@3 x ~@6", J: "~@3 x ~@4 x ~@4 x ~@3 x ~@6",
K: "x ~@3 x ~@6 x!2 ~@2 x ~ x ~@2 x ~@3", L: "x ~@7 x ~@3 x ~@6 x ~@3 x",
M: "~@5 x ~ x ~ x ~@2 x ~@2 x ~ x ~ x!3 ~@2", N: "~@8 x ~@4 x ~@3 x ~ x ~ x ~@2", O: "~@8 x ~@4 x ~@3 x ~ x ~ x ~ x",
P: "~@8 x ~@10 x ~@3 x", Q: "~@5 x ~ x ~ x ~@6 x!2 ~@2 x ~@2 x", R: "~ x ~@3 x ~@7 x ~@3 x ~@6",
S: "x!2 ~@2 x ~@6 x!2 ~@2 x ~ x ~@2 x ~@3", T: "x ~@4 x ~@5 x ~@3 x ~@5 x ~ x",
U: "~ x ~@6 x!2 ~@2 x ~@2 x ~ x ~@3 x ~@2", V: "~@5 x ~@3 x ~@6 x ~@3 x ~@3", W: "~@3 x ~@3 x ~@8 x ~@4 x ~@2",
X: "x!2 ~@2 x ~@2 x ~ x ~@3 x ~@7 x ~@2", Y: "~ x ~@6 x ~@3 x ~@6 x!2 ~@2 x", Z: "~ x ~@2 x ~@2 x!3 ~ x ~@9 x ~@2",
AA: "~@3 x ~@3 x!2 ~@2 x ~@9 x ~@2", AB: "~@3 x ~@3 x!2 ~@2 x!2 ~@8 x ~ x", AC: "~@5 x ~ x ~ x ~@2 x ~@2 x ~@3 x ~@4",
AD: "~@3 x ~@3 x ~@5 x ~ x ~ x ~@6", AE: "x!2 ~@2 x ~@2 x ~ x ~@3 x ~@5 x ~@4",
AF: "~ x ~@2 x ~@2 x ~@3 x ~@7 x ~@3 x", AG: "~@5 x ~@5 x ~@4 x ~@3 x ~@3",
AH: "~@3 x ~@3 x ~@5 x ~ x ~ x ~@2 x ~@2 x", AI: "~@3 x ~@7 x ~@3 x ~@5 x ~@2",
AJ: "~ x ~@6 x!2 ~@2 x ~@2 x ~ x ~@2 x!2 ~ x", AK: "x ~@10 x ~@4 x ~@3 x!2 ~@2", AL: "x ~@10 x ~@12",
})).gain(0.56)
// drums · mid tom
const mid_tom = s("mt").struct("<~@19 A B@6 ~@12 C D@6 ~@11 E F@23 ~>".pickRestart({
A: "~@17 x ~@3 x ~@2", B: "~@7 x", C: "~@7 x ~@3 x ~@12", D: "~@11 x ~@12", E: "~@5 x", F: "x",
})).gain(0.56)
// drums · ride
const ride = s("rd").struct("<A B@7 C D C@9 E F@6 G H C@10 I J@6 C@11 K L@22 M ~>".pickRestart({
A: "~@7 x", B: "x ~@2 x ~ x ~@5 x ~ x ~@2 x ~@4 x ~@2", C: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2",
D: "~@5 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2", E: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@7",
F: "x ~@2 x ~ x ~@5 x ~ x ~@2 x ~@2 x ~@4", G: "x ~@2 x ~ x ~@5 x ~ x ~@2 x ~@2 x ~ x ~@2",
H: "x ~@2 x ~ x ~@2 x ~@2 x ~@7 x ~ x ~@2", I: "x ~@2 x ~ x ~@7 x ~@2 x ~@2 x ~@4",
J: "x ~@2 x ~ x ~@2 x ~@4 x ~@2 x ~@2 x ~@4", K: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@4",
L: "~@3 x ~ x ~@2 x ~@4 x ~@2 x ~@2 x ~ x ~@2", M: "~@3 x ~ x ~@2 x ~@4 x ~@10",
})).gain(0.56)
stack(electric_guitar_clean, accordion, accordion_2, accordion_3, bass, snare, hihat, mid_tom, ride)
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.