Strudelify
Dazed And Confused cover art

Led Zeppelin

Dazed And Confused

Led Zeppelin

KeyE minorTempo78 bpm
0:00/0:00
// Dazed And Confused — Led Zeppelin
// 78 bpm, 12/8, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (12/8 at bar 1, 6/8 at bar 47, 4/4 at bar 48, 12/8 at bar 72) are rendered on a constant 12/8 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 5 "OVERDRIVE" overdriven guitar (copy of ch 6 "OVERDRIVE" overdriven guitar)
// note: Full arrangement: all 90 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): OVERDRIVE.
setcpm(78/6)

// 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 · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@49 A ~ B ~@15 C ~ D ~@4 E ~@6 F G ~@2 H ~ I J@2>".pickRestart({
  A: "~@11 d5@9 ~@12", B: "~@14 f#4@5 ~@13", C: "~@15 d5@10 ~@7", D: "~@13 [d4,a4]@2 ~@17", E: "~@12 f#5@3 ~",
  F: "~@30 e3 ~", G: "e3 ~@31", H: "~@10 c4 ~@21", I: "~@24 a3 ~@7", J: "[~ b3@10 ~@5]/2",
})).s("gm_overdriven_guitar").gain(0.17).pan(0.3)

// other · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note("<~@84 [~@16 d3@3 ~@13] [~@7 d3@3 ~@22] [~@11 d3 ~@17 d3 ~@2] ~@3>")
  .s("gm_overdriven_guitar").gain(0.1).pan(0.3)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A B C D E F G D G D H I H D E J K@2 L D G D M F N D K@2 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
  AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ@2 BA BB BC@2 BD BE BF@6 BG BH BI BJ BK BL BM BN BO@2
>`.pickRestart({
  A: "~@5 e1@3 g2@8 f#2@8 f2@8", B: "e2@3 ~@2 e1@2 ~ d2@8 c#2@8 c2@8", C: "b1@4 ~ e1@3 g2@8 f#2@7 ~ f2@8",
  D: "e2@4 ~ e1@3 d2@8 c#2@8 c2@8", E: "b1@4 ~ e1@2 ~ g2@8 f#2@8 f2@8", F: "e2@4 ~ e1@2 ~ d2@8 c#2@8 c2@8",
  G: "b1@4 ~ e1@3 g2@8 f#2@8 f2@8", H: "b1@5 e1@3 g2@8 f#2@8 f2@8", I: "e2@5 e1@3 d2@8 c#2@8 c2@8",
  J: "e2@4 ~ e1@3 d2@8 c#2@8 c2@7 ~",
  K: "[b1@2 ~ b1@2 b1@3 ~ f#2 ~ a2 b2 e2 ~@2 b1@2 ~ b1@2 b1@3 ~ f#2@2 a2 b2 e2@2 ~ b1@2 ~ b1@2 b1@3 ~ f#2 ~ a2 b2 e2@2 ~ b1@2 ~ b1@2 b1@3 ~ f#2 ~ a2 ~ e2 ~ f#2, ~@8 e2@2 ~@5 f#2@2 ~@7 e2@2 ~@5 f#2@2 ~@7 e2@2 ~@5 f#2@2 ~@7 e2@2 ~@2 b2@2 ~@2]/2",
  L: "e1@4 ~ e1@3 g2@8 f#2@8 f2@8, f1 ~@31", M: "b1@3 ~@2 e1@3 g2@8 f#2@8 f2@8", N: "b1@5 e1@2 ~ g2@8 f#2@8 f2@8",
  O: "e2!2 ~ e2 ~ d2 ~@10 g2 ~@3 g2 e2@2 ~@9, ~@2 e2 ~@13", P: "a2 ~@4 e2@2 ~@9 g2 ~@3 g2 e2 ~@10, ~@2 a2 ~@13",
  Q: "e2 ~@3 e2 d2@2 ~@9 g2 ~@3 g2 e2@2 ~@9", R: "a2 ~@4 e2@2 ~@9 b2 ~@3 b2 e2 ~@10, ~@2 a2 ~@13",
  S: "a2 ~@3 a2 e2@2 ~@9 g2 ~@3 g2 e2@2 ~@9", T: "d2 ~@4 d2 ~ e2 ~@8 g2!2 ~@2 g2 e2@2 ~@9",
  U: "a2 b2 ~ b2 ~ e2@2 ~@9 a2 ~@2 a2 ~ e2@2 ~@9, ~@2 b2 ~@7 a2 ~@5",
  V: "d2!2 ~ d2!3 ~ e2 ~@8 g2!2 ~ g2!2 d2 ~ e2@2 ~@7", W: "a2!2 ~ a2!2 d2@2 e2 ~@8 a#2 b2 ~ b2!2 e2@2 ~@9",
  X: "a2 ~@3 a2 e2@2 ~@9 g2 ~@3 g2 e2 ~@10", Y: "g2 ~@3 g2 e2@2 ~@9 a2 ~@3 a2 e2@2 ~@9",
  Z: "a#2 b2 ~ b2!2 e2@2 ~@9 a2 ~@2 a2 ~ e2@2 ~@9, ~@10 a2 ~@5",
  AA: "~ b2 ~ b2 ~ e2@2 ~@9 d3 a2 ~ e2 a2 e2@2 ~@9, a#2 ~ b2 ~@13",
  AB: "e3 b2 ~ e2 b2 e2@2 ~@9 d3 a2 ~ e2 ~ e2@2 ~@9, ~@10 a2 ~@5", AC: "e2 b2 ~ e3 b2 e3@2 ~@9 e2 d3 ~ a2 d3 a2@2 ~@9",
  AD: "~ b2@2 e3 ~ e3@2 ~@9 d3 a2 ~ e2 a2 e2@2 ~@9, e2 ~ b2 ~@13", AE: "f2 ~@3 f2 f2@2 ~@9 f2 ~@3 f2 f2@2 ~@9",
  AF: "f2 ~@3 f2 f2@2 ~@9 f2 ~@3 f2 f2@2 ~ f2!2 ~ f2!3 ~@2", AG: "e2@16 ~@10 a1 ~ b1 d2 e2 g2",
  AH: "~ a2 g2 e2 ~ a1 b1 d2 e2 ~ g2 a2 g2@2 ~ a1 b1 ~ d2 e2 g2 a2 ~ g2 e2 a1 ~ b1 d2 e2 g2 ~",
  AI: "a2 g2@2 ~ a1 b1 d2 e2 ~ g2 a2 g2 ~ e2 a1 b1 ~ d2 e2 g2 a2 ~ g2@2 a1 ~ b1 d2 e2 g2 ~ a2",
  AJ: "[g2 e2 ~ a1 b1 d2 e2 ~ g2 a2 g2@2 ~ a1 b1 d2 ~ e2 g2 a2 ~ g2 e2 a1 ~ b1 d2 e2 g2 ~ a2 g2@2 ~ a1 b1 d2 e2 ~ g2 a2 g2 ~ e2 a1 ~ d2 ~ e2 g2 a2 ~ g2@2 a1 ~ b1 d2 e2 g2 ~ a2 g2 e2, ~@45 b1@2 ~@17]/2",
  AK: "~ a1 b1 d2 e2 ~ g2 a2 g2@2 ~ a1 b1 ~ d2 e2 g2 a2 ~ g2 e2 a1 ~ b1 d2 e2 g2 ~ a2 g2@2 ~",
  AL: "a1 b1 d2 e2 ~ g2 a2 g2 ~ e2 a1 b1 d2 ~ e2 g2 a2 ~ g2@2 a1 ~ b1 d2 e2 g2 ~ a2 g2 e2 ~ a1",
  AM: "b1 d2 e2 ~ g2 a2 g2@2 ~ a1 b1 ~ d2 e2 g2 a2 ~ g2 e2 a1 ~ b1 d2 e2 g2 ~ a2 g2@2 ~ a1 b1",
  AN: "d2 e2 ~ g2 a2 g2 ~ e2 a1 b1 ~ d2 e2 g2 a2 ~ g2@2 a1 ~ b1 d2 e2 g2 ~ a2 g2 e2 ~ a1 b1 d2",
  AO: "e2 ~ g2 a2 g2@2 ~ a1 b1 ~ d2 e2 ~ a2 ~ g2 e2 a1 ~ b1 d2 e2 g2 ~ a2 g2@2 ~ a1 b1 d2 e2, ~@6 g2 ~@9",
  AP: "~@2 a2 g2 ~ e2 a1 b1 ~ d2 e2 g2 a2 ~ g2@2 a1 ~ b1 d2 e2 g2 ~ a2 g2 e2 ~ a1 b1 d2 e2 ~, ~ g2@2 ~@29",
  AQ: "g2 a2 g2@2 ~ a1 b1 ~ d2 e2 g2 a2 ~ g2 e2 a1 ~@2 d2 e2 g2 ~ a2 g2@2 ~@2 b1 d2 e2 ~ g2, ~@17 b1@2 ~@7 a1@2 ~@4",
  AR: "a2 g2 ~ e2 a1 b1 ~ d2 e2 g2 a2 ~ g2@2 a1 ~ b1 d2 e2 g2 ~ a2 g2 e2 ~ a1 b1 d2 e2 ~ g2 a2",
  AS: "g2@2 ~ a1 b1 ~ d2 e2 g2 a2 ~ g2 e2 a1 ~ b1 d2 e2 g2 ~ a2 g2 ~@2 a1 b1 d2 e2 ~ g2 a2 g2",
  AT: "~ e2 a1 b1 ~ d2 e2 g2 a2 ~ g2 ~ a1 ~ b1 d2 e2 g2 ~ a2 g2 e2 ~ a1 ~ d2 ~ e2 g2 a2 g2@2, ~@12 b1 ~@3",
  AU: "~ a1 b1 ~ d2 e2 g2 a2 ~ g2 e2 a1 ~ b1 d2 e2 g2 ~ a2 g2@2 ~ a1 ~ d2 e2 ~ g2 a2 g2 ~ e2, ~@23 b1@2 ~@7",
  AV: "a1 b1 ~ d2 e2 g2 a2 ~ g2@2 a1 ~@2 d2 e2 g2 ~ a2 g2 e2 ~ a1 b1 d2 e2 ~ g2 a2 g2@2 ~ a1, ~@6 b1 ~@9",
  AW: "b1 ~ d2 e2 g2 a2 ~ g2 e2 a1 ~ b1 d2 e2 g2 ~ a2 g2@2 ~@2 b1 d2 ~ e2 g2 a2 g2@2 e2 a1 b1, ~@10 a1 ~@5",
  AX: "~@2 e2 g2 a2 ~ g2@2 a1 ~ b1 d2 e2 g2 ~ a2 g2 e2 ~ a1 b1 d2 ~ e2 g2 a2 g2@2 ~ a1 b1 ~, ~ d2@2 ~@29",
  AY: "d2 e2 g2 a2 ~ g2 e2 a1 ~ b1 d2 e2 g2 ~ a2 g2@2 ~ a1 b1 d2 ~ e2 g2 a2 g2 ~ e2 a1 b1@2 d2",
  AZ: "[e2 g2 a2 ~ g2@2 a1@2 b1 d2 e2 ~ g2 a2 g2 e2 ~ a1 b1 d2 ~ e2 g2 a2 g2 ~ e2@2 e2@8 ~ e2@9 g2@12 e2@5 e2]/2",
  BA: "~ e2!2 d2@3 a2@2 ~ a2 ~@2 a2 ~ a2 e2@4 ~ e2 ~ e2 ~ g2@3 g2!2 ~ g2 ~",
  BB: "~ g2 ~ e2@7 ~@2 d2@3 a1@9 e2@8, ~@3 g2 ~@7 e2@2 ~@19",
  BC: "[~ g2@12 b1@2 b1@2 ~ b1@3 ~ f#2 a2 b2 ~ e2 ~ b1@2 ~ b1@2 b1@3 ~ f#2 ~ a2 b2 e2 f#2 ~ b1@2 b1@2 ~ b1@2 e2@2 f#2 a2 b2 e2 ~@2 b1@2 ~ b1 ~, ~@21 e2@2 ~@4 f#2@2 ~@7 e2@2 ~@20 f#2@2 ~@4]/2",
  BD: "b1@3 e2 f#2 a2 ~@2 e2 f#2 ~ e1@4 ~ e1@2 g2@8 f#2@6, ~@7 b2@2 ~@2 f1 ~@20", BE: "~ f2@8 e2@4 ~ e1@3 d2@8 c#2@7",
  BF: "[c2@8 b1@4 ~ e1@3 g2@8 f#2@7 f2@8 e2@4 ~ e1@3 d2@7 c#2@7 ~ c2@8 b1@3 ~@2 e1@2 g2@8 f#2@8 f2@7 e2@4 ~@2 e1@2 d2@7 ~ c#2@8 c2@7 b1@4 ~@2 e1@2 g2@8 f#2@7 f2@8 e2@4 ~ e1@3 d2@7 c#2@7 ~ c2@7]/6",
  BG: "~ b1@2 b1@2 ~ b1@3 ~ f#2 a2 b2 ~ e2 ~ b1@2 ~ b1@2 b1@3 ~ f#2 ~ a2 b2 e2 f#2 ~, ~@9 e2@2 ~@4 f#2@2 ~@7 e2@2 ~@6",
  BH: "b1@2 b1@2 ~ b1@2 e2@2 f#2 a2 b2 ~ e2 ~ b1@2 ~ b1 ~ b1@3 e2 f#2 a2 ~@2 e2 f#2 ~ e2, ~@14 f#2@2 ~@11 b2@2 ~@3",
  BI: "e2!3 ~ d2 ~@10 a2 ~ a2!2 g2@2 ~@8 b2 ~ b2", BJ: "~ b2 a2 ~@14 d3 b2 ~@13",
  BK: "e3 b2@2 ~@9 c2@2 d2@3 e3@2 e3 ~ d3@2 ~@4 e2!2 ~ e2!2",
  BL: "d2@2 ~@3 e3 ~ d3 ~@2 d2 ~ e2 ~@3 e3 d3@2 ~@6 d2!2 e2@2 ~ e3!2",
  BM: "d3@2 ~@5 a2 ~ d2 ~ e2!4 ~ d2@8 ~@3 d2@2 ~ d2@2",
  BN: "d2@2 ~ d2@2 ~ d2 ~ d2 ~@2 d2!3 ~@2 d2!3 ~ d2 d2@2 ~ d2!4 ~ d2 ~ d2", BO: "[d2 ~ d2!2 e2@40 ~@20]/2",
})).s("gm_fretless_bass").gain(0.57).pan(0.6)

// bass · fretless bass · "FRETLESS" · soft notes
const bass_soft = note("<~@28 A B C D B E F ~@2 B G F ~@4 H@2 ~@22 I J ~@12 K L ~ M N O ~@2>".pickRestart({
  A: "~@17 g2 ~ g2 ~@12", B: "~ a2 ~ a2 ~@13 g2 ~ g2 ~@12", C: "~ e2 ~ e2 ~@13 g2 ~ g2 ~@12",
  D: "~ a2 ~ a2 ~@13 b2 ~ b2 ~@12", E: "~ d2 ~ d2!2 ~@14 g2 ~@12", F: "~@17 a2 ~@14", G: "~ g2 ~ g2 ~@13 a2 ~ a2 ~@12",
  H: "~ f2 ~ f2 ~@13 f2 ~ f2 ~@12", I: "~@11 a2 ~@17 g2 ~@2", J: "g2 ~@31", K: "~@14 a2 ~@17",
  L: "b2 ~@12 d3!3 ~@12 e3 ~ e3!2", M: "~@14 e3 ~@17", N: "~@5 a2 ~@19 d2!2 ~@5", O: "~@9 d2 ~@22",
})).s("gm_fretless_bass").gain(0.29).pan(0.6)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note(`<
  ~@8 A B C D E ~@3 F G A B C D H B C D I G J K L M@6 N O@4 P Q@3 R@2 S T U@3 V W X Y Z@2 AA@2 AB AC@2 AD@2 AE@4 AF AG
  AH AI AJ@3 ~@3 AK AL@2 AM AN AO AP AQ AR@2
>`.pickRestart({
  A: "~@8 g5@8 f#5@7 ~ f5@6 ~@2", B: "e5@5 ~@3 d5@8 c#5@6 ~@2 c5@6 ~@2", C: "b4@3 ~ g5@4 f#5@3 ~ f5@3 ~",
  D: "e5@3 ~ d5@4 c#5@3 ~ c5@3 ~", E: "b4@3 ~@13", F: "~@8 e4@3 a4@2 e4@3 ~@8 e4@3 a4@2 e4@3",
  G: "~@8 e4@3 a4@2 e4@2 ~@9 e4@3 a4@2 e4@3", H: "b4@6 ~@2 g5@8 f#5@7 ~ f5@6 ~@2",
  I: "b4@6 ~@2 e4@3 a4@2 e4@3 ~@8 e4@3 a4@2 e4@3", J: "[b2,e3] ~@2 e3 [b2,e3] [a2,d3]@3 ~@8 g2!2 ~@2 g2 e2@2 ~@9",
  K: "g2@4 f#2@3 ~@9 g2@4 f#2@3 ~@9", L: "b2@4 c3@3 ~@10 d3@6 ~@9",
  M: "[b2@4 ~@27 e3@2 d3 e3 d3@3 ~@25 e3@2 d3 e3 d3@3 ~@25 b2@16 ~@16 d3@4 ~@2 c#3@2 ~ c#3@33 ~@23, ~@131 b2@4 ~@57]/6",
  N: "f#3@31 ~", O: "[f#3@63 ~]/4", P: "e3@24 d#3@3 d3@2 c#3@3",
  Q: "[c3@4 b2@4 a#2@4 a2@4 g#2@4 g2@4 f#2@4 f2@33 f2@35]/3", R: "[e2@47 ~@17]/2",
  S: "~@4 a3@2 d4@3 g4@2 g4 ~ e4 a3@2 d4@3 g4@2 ~ g4@2 a3@2 ~ d4@2 g4@2 ~",
  T: "g4 e4 ~ a3@2 d4@2 ~ g4@2 ~@2 d5@10 c#5@10",
  U: "[b4@10 ~ a4@10 g4@5 f#4@5 e4@10 g4@5 ~ f#4@5 d4@10 c#4@18 ~@4 a4 ~ b4 [b4,d5] a4!2 b4 [b4,d5] a4 ~ b4 d5, ~@93 a4@2 ~]/3", // Bm
  V: "b4 a4 a4@2 b4 [b4,d5] e5@2 b4 [e5,g5] b4 [e5,g5] b4 [e5,g5] b4 [e5,g5] [b4,g5] e5 b4@2 b4!2 g5@2 [e5,g5] ~ d5 e5 [b4,d5] a4@2 e4", // Bm Em Bm
  W: "g4@3 a4 g4 a4 d5 a4 b4 [g4,a4] a4 g4 e4 d5!2 e5 ~ d5@6 ~@3 e5@2 ~ e5@3, ~@17 b4 ~@14", // Gsus2
  X: "[b4,e5] e5 d5!3 c#5!2 c#5@2 c#5 ~ b4!2 ~ a4 b4 a4 g4@2 g4@2 a4@2 ~ g4 a4 g4 ~@2 g4 ~ a4, ~@14 a4 ~", // E5
  Y: "~ g4 ~ g4 a4@7 ~ g4 ~ g4 a4@7 ~ g4@2 a4 g4@2 ~ a#4@2 g4",
  Z: "[a4@2 g4 ~ a4@3 a4@2 g4 g4@2 ~ b4 ~ [e5,g5] b4 [e5,g5] b4 [e5,g5] b4 g5 e5 b4 e5 g5 ~ b4 g5@3 a5@2 g5@2 a5 g5@2 ~ g5@5 g5 ~ g5@2 e5 d5 e5 d5 [a4,b4] g4 e4 g4 a4 g4 a4 b4 d5 a4 ~ a4]/2", // Em Asus2
  AA: "[[g4,a4] g4 e4 d5@2 b4@2 ~ a4@2 [e4,g4] ~ g4 a4 g4@5 ~@3 e5 g5@4 ~@2 f#5 ~@2 e5 ~ f#5 ~ d5@3 ~@2 e5 ~ b5@2 ~ b5 a5 g5 e5 ~ d5 e5 g5 e5 ~ d5 e5 g5 ~ e5 d5 e5 ~, ~@31 g5@2 ~@31]/2", // Gsus2 Em
  AB: "g5 e5 d5 ~ e5 g5 e5 d5 ~ e5 g5@2 ~ a5@2 g5 a5@2 ~ g5 a#5@2 g5 a#5 g5 a#5 g5 a#5 g5@2 ~@2",
  AC: "[b5@2 g5@2 e5 e5@2 e5@2 g5 b5@2 ~ g5@2 e5 ~ e5@2 b5 ~ d6@2 b5@2 e5 e5@2 e5@2 b5 d6@2 ~@2 e5 e5@2 ~ e5@2 a5@3 a5 ~ e5 e5@2 e5 ~ e5 g5@2 e5 ~ d5@3 d5 ~ d5@3, ~@17 b5 ~@14]/2",
  AD: "[d5 ~ g4 g4@3 ~ g4@3 ~ g4 ~ e4@4 ~ g4@3 ~ e4@5 ~@2 d5@5 b4@4 ~ b4 a4 g4 a4@2 b4 a4 g4 a4@2 ~ [a4,b4] g4 a4@2 ~ [a4,b4] g4 a4@2 ~ a4@3 ~]/2", // Asus2
  AE: "[a4@4 b4 [g4,a4] a4@2 ~ a4 g4 e4 d4 b3 a3 [e3,g3] ~ [e3,b3]@8 ~ [d3,a3]@2 [a2,e3]@8 [e2,b2]@10 [g3,d4]@10 ~ [e3,b3]@10 [d3,a3]@2 ~ [a2,e3]@9 [e2,b2]@8 ~ [g3,d4]@10 [e3,b3]@10 [d3,a3]@2 ~ [a2,e3]@9 [e3,b3]@8]/4", // Gsus2 Em E5 D5 A5 E5 G5 E5 …
  AF: "~ [g3,d4]@12 ~@7 e4@3 a4@2 ~ e4@3 ~@3", AG: "~@4 e4@2 a4@2 ~ e4@3 ~@7 e4@3 a4@2 e4@2 ~@6",
  AH: "~@3 e4@2 a4@2 ~ e4@2 ~@8 g5@8 f#5@6", AI: "~ f5@6 ~@2 e5@5 ~@3 d5@8 c#5@6 ~",
  AJ: "[c5@6 ~@2 b4@5 ~@3 g5@7 f#5@6 ~@2 f5@6 ~@2 e5@6 ~@2 d5@7 c#5@6 ~@2 c5@6 ~@2 b4@6 ~@20]/3",
  AK: "~@9 e4@2 a4@2 ~ e4@3 ~@7 e4@2 ~ a4@2 e4@3",
  AL: "[~@7 e4@3 a4@2 ~ e4@2 ~@8 e4@2 a4@2 ~ e4@2 ~ [b2,e3]@2 [b2,e3]!2 ~ [a2,d3]@2 ~@8 [a2,a3] a2 ~ a2 [a2,a3] [g2,g3]@2 ~@8 [b2,b3] ~ [b2,b3]]/2", // E5 D5 A G B
  AM: "[b2,b3]!2 [a2,a3]@2 ~@9 [d3,d4]!3 ~ [d3,d4] [b2,b3]@2 ~@8 [e3,e4] e3 e4 [e3,e4]", // B A D B E
  AN: "[e3,e4] [d3,d4]@2 ~ d3 ~@4 d4 c#4 c4 d3 ~@2 d3@2 d4 [c4,c#4] d3 ~@4 d4 c#4 c4 ~@5, ~@8 d3@3 ~@12 d3@3 ~@6", // E D C#maj7
  AO: "d4 c#4 c4 d3 ~@2 d3@2 d4 [c4,c#4] d3 ~@5 [c#4,d4] c4 d3 ~@4 d4 c#4 c4 d3!3 ~@2 d4, ~@15 d3", // C#maj7 Dmaj7
  AP: "[c4,c#4] d3 ~ d3!2 ~ d4 ~ c#4 d3!2 ~@2 d3 d3@2 ~ [d3,d4] d3!2 ~ d3 [d3,d4]@2 ~ [d3,d4] d3!2 [d3,d4] ~ [d3,d4]@2, ~@5 d3@3 ~@24", // C#maj7 D
  AQ: "[d3,d4] ~ [d3,d4] d3 [d3,d4] ~ d4 ~ [d3,a3,d4] a3 ~ a3 [d3,a3,d4] [d3,a3,d4]@2 ~ [d3,a3,d4]!3 ~ [d3,a3,d4] [d3,a3,d4]@2 [d3,a3] d4 [d3,a3,d4]!3 ~ [d3,a3]@2 [d3,a3,d4], ~@5 d3@2 ~@21 d4@2 ~@2", // D D5
  AR: "[[d3,a3,d4] ~ [d3,a3,d4]!2 [e3,e4]@45 ~@15, ~@4 d3 ~@59]/2", // D5 E
})).s("gm_overdriven_guitar").gain(0.26).pan(0.7)

// other · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft_2 = note("<~@28 A ~@2 B ~@50 C ~ D@2 E F ~@2>".pickRestart({
  A: "~ [b2,e3] ~ b2 ~@15 g2 ~@12", B: "~ c3 ~@6", C: "b2 ~@14 a3 ~ a3 ~@14",
  D: "[~@5 d3!2 ~@6 d3!2 ~@6 d3!2 ~@4 d3!2 ~ d3 d3@3 ~@2 d3!2 ~@6 d3!2 d3@3 ~@2 d3 ~ d3 d3@3 ~@7]/2",
  E: "~@12 d3 ~@5 d4 ~ d4!2 ~@4 d4!2 ~@4", F: "~@3 d4 ~@5 [d3,d4] ~ [d3,d4] ~@20",
})).s("gm_overdriven_guitar").gain(0.15).pan(0.7)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_3 = note(`<
  ~@8 A B C D E F G H I J K L C D C L C M N J ~@42 O@2 P Q R@4 S T U V ~@8
>`.pickRestart({
  A: "e2@3 ~@2 e2@3 g3@8 f#3@7 ~ f3@5 e3@2 ~", B: "e3@5 e2@2 ~ d3@8 c#3@6 ~@2 c3@5 b2 ~@2",
  C: "b2@5 e2@3 g3@8 f#3@7 ~ f3@5 ~@3", D: "e3@5 e2@3 d3@8 c#3@6 ~@2 c3@5 ~@3", E: "b2@5 ~@3 g3@8 f#3@7 ~@9",
  F: "e3@4 ~ e2@3 d3@8 c#3@6 ~@2 c3@5 ~@3", G: "b2@5 e2@3 g3@8 f#3@6 ~@2 f3@8", H: "e3@5 e2@3 d3@8 c#3@6 ~@2 c3@5 b2@3",
  I: "[b2,f#3]@2 ~ [b2,f#3]@2 [b2,f#3]@3 e3@2 ~ a3@2 e3@3 [b2,f#3]@3 [b2,f#3]@2 [b2,f#3]@3 e3@2 ~ a3@2 e3@3", // B5
  J: "[b2,f#3]@3 [b2,f#3]@2 [b2,f#3]@3 e3@3 a3@2 e3@3 [b2,f#3]@3 [b2,f#3]@2 [b2,f#3]@3 e3@2 ~ a3@2 e3@2 ~", // B5
  K: "e2@3 ~@2 e2@3 g3@8 f#3@7 ~ f3@5 ~@3", L: "e3@5 e2@2 ~ d3@8 c#3@6 ~@2 c3@5 ~@3",
  M: "e3@5 e2@3 d3@8 c#3@6 ~@2 c3@5 b2 ~@2",
  N: "[b2,f#3]@3 [b2,f#3]@2 [b2,f#3]@3 e3@2 ~ a3@2 e3@3 [b2,f#3]@3 [b2,f#3]@2 [b2,f#3]@3 e3@2 ~ a3@2 e3@3", // B5
  O: "[~@13 [b2,f#3]@2 [b2,f#3]@2 ~@3 e3@2 ~ a3@2 ~ e3@2 [b2,f#3]@2 ~ [b2,f#3]@2 [b2,f#3]@3 e3@2 a3@2 ~ e3@3 [b2,f#3]@2 [b2,f#3] ~@2 [b2,f#3]@2 e3@2 ~ a3@2 e3@2 ~ [b2,f#3]@2 ~ [b2,f#3]@2, ~@9 [b2,f#3]@2 ~@21]/2", // B5
  P: "[b2,f#3]@3 e3@2 a3@2 ~ e3@2 e2@3 ~@3 e2@2 g3@8 f#3@6", Q: "~@2 f3@5 ~@2 e3@5 e2@2 ~ d3@8 c#3@6 ~",
  R: "[c3@5 b2 ~@2 b2@5 e2@3 g3@7 f#3@6 ~@2 f3@5 ~@3 e3@5 e2@3 d3@7 c#3@6 ~@2 c3@5 ~@3 b2@5 e2@2 g3@8 f#3@6 ~@2 f3@5 ~@3 e3@5 e2@2 d3@8 c#3@6 ~@2 c3@4]/4",
  S: "~@3 b2@5 e2@3 g3@7 ~ f#3@6 ~ f3@5 ~", T: "~@2 e3@5 e2@3 d3@7 c#3@6 ~@2 c3@5 ~@2",
  U: "~ [b2,f#3]@2 ~ f#3@2 [b2,f#3]@3 e3@2 a3@2 ~ e3@2 [b2,f#3]@2 ~ [b2,f#3]@2 ~ b2@2 e3@2 ~ a3@2 e3@3, ~@3 b2@2 ~@16 f#3@3 ~@8", // B5
  V: "[b2,f#3]@2 [b2,f#3] ~@2 [b2,f#3]@2 e3@2 ~ a3@2 ~ e3@2 [b2,f#3]@2 ~ [b2,f#3]@2 [b2,f#3]@3 e3@2 a3@2 ~ e3@2 ~@2", // B5
})).s("gm_overdriven_guitar").gain(0.32).pan(0.9)

// other · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft_3 = note("<~@10 A B C B ~@4 D E A E A B A ~@48 F ~ G H I J K ~@10>".pickRestart({
  A: "~@29 e3@2 ~", B: "~@29 b2@2 ~", C: "~@3 f3", D: "~@29 e3 ~@2", E: "~@29 b2 ~@2", F: "~@7 e3 ~@24",
  G: "~@2 e3 ~@13", H: "~@3 b2@2 ~@27", I: "~ e3 ~@14", J: "~ b2@2 ~@29", K: "e3 ~@29 b2@2",
})).s("gm_overdriven_guitar").gain(0.2).pan(0.9)

// other · guitar harmonics · "GTHARMONIC"
const guitar_harmonics = note("<~ A@2 B@3 C@2 ~@82>".pickRestart({
  A: "~@5 b3@3 e4@24", B: "[~@5 g3@30 ~@10 b3@3 e4@11 ~@2 b3@2 e4@5 ~ b3@3 g3@24]/3",
  C: "[~@4 [g3,b3]@8 [g4,b4]@19 ~]/2", // G
})).s("gm_guitar_harmonics").gain(0.22).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B@2 C B@3 D E D@2 F G H I J@2 K L@2 M@4 N J@2 O ~@6 P ~@10 Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL
  AM O ~ AN AO AP AQ AR AS AT AU AV AW AX ~@6 AY ~
>`.pickRestart({
  A: "~@5 x ~@2 x ~@7 x ~@7 x ~@7", B: "x ~@4 x ~@2 x ~@7 x ~@7 x ~@7", C: "x ~@4 x ~@2 x ~@7 x ~@7 x ~@4 x ~@2",
  D: "~@8 x ~@4 x ~@7 x ~@2 x ~@4 x ~@2", E: "~@8 x ~@4 x ~@6 x!2 ~@2 x ~@7", F: "x ~@7 x ~@4 x ~@7 x ~@2 x ~@7",
  G: "~@5 x ~@2 x ~@4 x ~@6 x!2 ~@2 x ~@4 x ~@2", H: "~@5 x ~@2 x ~@4 x ~@7 x ~@2 x ~@4 x ~@2",
  I: "~@5 x ~@2 x ~@4 x ~@7 x ~@2 x ~@7", J: "x ~@2 x ~ x ~@10 x ~@2 x ~ x ~@10", K: "x ~@4 x ~@7 x ~@18",
  L: "x ~@4 x ~@7 x ~@2 x ~@15", M: "x ~@4 x ~@7 x ~@2 x ~@4 x ~@7 x ~@2", N: "x ~@4 x ~@7 x ~@2 x ~@4 x ~@10", O: "x",
  P: "~@24 x!2 ~ x!3 ~@2", Q: "~@25 x!2 ~ x ~ x!2", R: "~ x ~@3 x!2 ~ x ~ x!2 ~@3 x!2 ~@2 x!3 ~@3 x ~ x ~ x!2 ~",
  S: "x ~@3 x!2 ~ x ~ x!2 ~@3 x!2 ~@2 x!3 ~@3 x ~ x ~ x!2 ~ x",
  T: "~@3 x!2 ~ x ~ x!2 ~@3 x!2 ~@2 x!3 ~@3 x ~ x ~ x!2 ~ x ~",
  U: "~@2 x!2 ~ x ~ x!2 ~@3 x!2 ~@2 x!3 ~@3 x ~ x ~ x!2 ~ x ~@2",
  V: "~ x!2 ~@2 x!3 ~@3 x!2 ~@2 x!3 ~@3 x ~ x ~ x!2 ~ x ~@3",
  W: "x!2 ~ x ~ x!2 ~@3 x!2 ~@2 x!3 ~@3 x ~ x ~ x!2 ~ x ~@3 x",
  X: "x ~ x ~ x!2 ~@3 x!2 ~@2 x!3 ~@3 x ~ x ~ x!2 ~ x ~@3 x!2",
  Y: "~ x ~ x!2 ~@3 x!2 ~@2 x!3 ~@3 x ~ x ~ x!2 ~ x ~@3 x!2 ~",
  Z: "x ~ x!2 ~@3 x!2 ~@2 x!3 ~@3 x ~ x ~ x!2 ~ x ~@3 x!2 ~ x",
  AA: "~ x!2 ~@3 x ~@4 x!2 ~@3 x ~@4 x ~ x ~ x ~@2 x ~ x ~",
  AB: "x!2 ~@2 x ~ x ~@2 x!3 ~@2 x!2 ~@4 x ~ x ~ x ~ x!2 ~ x ~ x",
  AC: "~@3 x!3 ~@2 x!3 ~@2 x!2 ~ x ~ x!2 ~ x ~ x ~ x!2 ~@2 x!3",
  AD: "~@2 x!3 ~@2 x!3 ~@2 x!2 ~ x ~ x!2 ~ x ~ x ~ x!2 ~@2 x!3 ~",
  AE: "~ x!3 ~@2 x!3 ~@2 x!2 ~ x ~ x!2 ~ x ~ x ~ x!2 ~@2 x!3 ~@2",
  AF: "x!3 ~@2 x!3 ~@3 x ~@3 x!2 ~@3 x ~ x!2 ~@2 x!2 ~@3 x",
  AG: "x!2 ~@2 x!2 ~@3 x!2 ~ x ~ x!2 ~@3 x ~ x ~@3 x!2 ~@3 x!2",
  AH: "~@3 x!2 ~@3 x!2 ~@3 x ~ x ~@2 x ~ x!2 ~@2 x!2 ~@3 x!3",
  AI: "~@2 x!2 ~@3 x!2 ~ x ~ x!2 ~@3 x ~ x ~@3 x!4 ~ x!2 ~@2",
  AJ: "~ x!3 ~ x!3 ~ x ~ x ~ x ~@2 x ~ x!2 ~@2 x!3 ~@2 x!3 ~@2",
  AK: "x!2 ~@3 x!2 ~@3 x ~ x ~@2 x ~ x!2 ~@2 x!3 ~@2 x ~ x ~@3",
  AL: "x!2 ~@2 x!2 ~@5 x!2 ~ x ~@2 x ~@3 x!2 ~@3 x ~@4 x", AM: "x ~@2 x ~@2 x ~@3 x!2 ~@3 x ~@4 x!2 ~@3 x ~ x ~@2 x ~",
  AN: "~@12 x ~ x ~@2 x ~@9 x ~@2 x ~", AO: "x ~@9 x ~@5 x ~@6 x ~@8", AP: "~@9 x ~@4 x ~@7 x ~@2 x ~@6",
  AQ: "~@8 x ~@4 x ~@7 x ~ x ~@8", AR: "~@7 x ~@4 x ~@7 x ~ x ~@5 x ~@3", AS: "~@3 x ~@2 x ~@4 x ~@7 x ~ x ~@4 x ~@5",
  AT: "~@2 x ~ x ~@5 x ~@6 x ~@2 x ~@4 x ~@6", AU: "~ x ~ x ~@5 x ~@6 x ~@2 x ~@4 x ~@7",
  AV: "x ~ x ~@4 x ~@7 x ~@2 x ~@4 x ~@8", AW: "~ x ~@2 x ~ x ~@9 x ~@2 x ~ x ~@10",
// … 144 more lines

More by Led Zeppelin