Strudelify
Since I've Been Loving You cover art

1970 · Led Zeppelin III

Since I've Been Loving You

Led Zeppelin

KeyC minorTempo55 bpm
0:00/0:00
// Since I've Been Loving You — Led Zeppelin
// 55 bpm, 12/8, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 74 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(55/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.

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y@7 Z AA@4 AB@2 AC AD@2 AE@3 AF AG@2 AH@2 AI AJ AK AL@4 AM@3 AN@3 AO
  AP@2 AQ AR@3 AS AT@4
>`.pickRestart({
  A: "~@25 g3 ~ c4@2 bb3@2 g3", B: "~ c4@21 ~@3 eb5 ~ d5 c5 d5 ~ eb5",
  C: "d5 c5 ~@2 d5 c5 ~ ab4 ab4@5 g4 ~ f4@2 ~@4 d4 ~ eb4 f4 d4 ~ eb4 c4 bb3 ~ g3, ~@3 ab4@2 ~@27",
  D: "f3 eb3 c3 c4@10 ~@12 d4 ~ c4 d4 eb4@2 f4, ~@12 eb4 ~@3", E: "g4@17 g4 ~ g4@10 eb4 ~ f4",
  F: "g4 f4 eb4 f4 [f4,g4] eb4 f4!2 c4 c4@11 ~@2 f4 g4 f4 eb4 f4 g4 [eb4,f4] f4 g4 c4", // Fsus2 Ebsus2
  G: "c4@7 ~@6 bb4@2 ~ g4@6 g4!2 c5 bb4 g4 [f4,gb4] eb4 c4 f4 c4", // Gbmaj7
  H: "eb4 d4 c4 bb3 bb3@6 ~ eb4 [c4,d4] bb3!2 bb3@5 ~ eb4 d4 c4 eb4 f4 ~ g4@2 g4 bb4 c5", // Csus2
  I: "c5@4 ~@2 bb4 ~ eb5 f5 f5@2 ~ [eb5,f5] f5@3 ~@15, ~@7 c5@12 ~@13", // Ebsus2
  J: "bb4 [f4,g4] [g4,bb4] [f4,g4] g4 g4@4 g4 ~ bb4 d5 f5!2 ~ f5@9 ~@2 ab4@2 bb4 ~@2", // Fsus2 Gm Fsus2
  K: "c5@5 eb5@2 ~ c5@4 eb5 c5@2 ~ g5@5 g5@2 ~ f5@5 g5@2 ~", L: "eb5 c5@6 ~@25",
  M: "gb4@2 c5 ~ gb4 d5@2 ~ c5@5 gb4@2 ~ f4@2 c5 ~ f4 d5@2 ~ c5@4 ~ f4@3", N: "eb4@6 ~@20 eb5@2 ~ eb5@2 ~",
  O: "ab4@7 ~@14 eb5 ~@2 g5@4 ~ g5@2 ~", P: "g5@10 ~@17 g5 [eb5,f5] f5 ~ g5",
  Q: "eb5@2 [c5,d5] c5@4 ~@12 bb5@2 c6 ~ bb5 g5 f5 eb5 ~ c5 f5@2 c5", // Csus2
  R: "c5@6 ~@18 [c4,ab4]@2 ab4 [d4,bb4]@2 [eb4,c5]@2 ~", // Fm Gm Cm
  S: "[eb4,c5]@2 ~ d4@2 c4@3 ~ ab4@3 ~ bb4@2 ab4 bb4 ab4@3 ~ bb4@2 ab4 bb4 ab4@3 ~ bb4 ~@2, ~@2 bb4@3 ab4 ~@2 bb4@2 ~@22", // Cm
  T: "c5@6 ~@20 d5 ~ d5 c5@2 bb4, ~@27 eb5@2 ~@3",
  U: "c5 d5 ~ eb5 f5@2 eb5 ~ c5@2 ~ g5 bb5 f5@2 eb5 f5 eb5 ~ c5 bb4 c5!2 d5 eb5 d5 ~ c5!2 bb4@3",
  V: "[g4,d5]@4 ~ [g4,d5]@19 ~@3 [d4,g4]@2 [d4,g4]@3", // G5
  W: "[ab3,ab4]@4 ~ [ab3,ab4]@2 ~ [ab3,ab4]@4 ~ [g3,g4]@2 ~ [f3,f4]@5 [f3,f4]@2 ~ [f3,f4]@4 ~ [g3,g4]@2 ~", // Ab G F G
  X: "[eb4,c5]@7 ~ [d4,b4]@7 ~ [eb4,c5]@7 ~ [bb3,g4]@6 ~@2", // Cm G Cm Eb
  Y: "[gb4@2 c5 ~ gb4 c5@2 c5@5 ~ gb4@2 f4@2 c5 ~ f4 c5@2 ~ c5@4 f4@2 ~@4 c5 eb5 ~@6 d5 c5@3 d5@3 eb5 c5@3 eb5 c5@3 d5 c5 ~@2 eb5 c5 ~@3 ab4 f4 ~ c5 ~@3 c5 ab4 f4 ~ ab4 ~@3 g5 c5 ab4 ~ g5 ~ ab4 ~ f5 c5 ab4 ~ c5 ~@4 eb5 c5@2 g4@2 d5 ~ c5 g4@3 d5 c5@3 eb5 c5@3 eb5 ~@3 d5 ~@3 d5 ~@3 eb5 ~ g4@2 eb5 ~@3 d5 ~ g4@2 d5 ~@3 eb5 ~@3 eb5 c5!2 ~@2 c5 [eb4,c5] ~ d4!2 [c4,ab4]@8 ~@2 f4 ab4 c5 ~ ab4 ~@3 f4 ab4 c5 ~ ab4 ~@3 f4 ab4 c5 ~ ab4 f4 ~@2 f4@4 ~@8 g4 ab4 ab4@8 ~@6 f4 ~ c5 ~, ~@30 c4@32 f3@7 ~ f3@7 ~ f3@15 ~ c4@24 ~@34 [eb4,c5]@2 ~@12 c4@7 ~ c4@7 ~ c4@7 ~ c4@8 ~@26, ~@32 g4@4 c5@4 ~@24 c5@3 ~@10 c5@3 ~@5 c5@3 ~@5 f5@3 ~@21 c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~@8 bb4@3 ~@65, ~@38 g4@20 g4@4 ~@7 ab4@3 ~@24 g4@3 ~@19 g4@4 g4@4 g4@4 ~@4 g4@4 ~@4 g4@4 g4@4 ~@23 f4@3 ~@5 f4@3 ~@40]/7", // Cm Fm Cm
  Z: "~ c5 c5@4 ~@4 [eb4,g4,c5] ~ [eb4,g4,c5]!2 eb4 ~ [eb4,g4,c5]!3 ~ [eb4,g4,c5]!3 ~ [eb4,g4,c5]!3 ~ [eb4,g4,c5]!2 [eb4,c5] ~", // Cm
  AA: "[[d4,b4] [eb4,c5] [d4,b4] ~ [eb4,c5] [d4,b4] [eb4,c5] ~ [d4,b4] [eb4,c5] [d4,b4] ~ [eb4,c5] [d4,b4] [eb4,c5] ~ [d4,b4] [eb4,c5] [d4,b4] ~ [eb4,c5] [d4,b4] [eb4,c5] ~ [d4,b4] [eb4,c5] [d4,b4] ~ [eb4,c5] [d4,b4] [g4,d5]@4 ~@2 [g4,d5]@19 ~@2 [d4,g4]@2 ~ [d4,g4]@2 [ab3,ab4]@4 ~@2 [ab3,ab4]@2 [ab3,ab4]@4 ~ [g3,g4]@2 ~ [f3,f4]@5 ~ [f3,f4]@2 [f3,f4]@4 ~@2 [g3,g4]@2 [eb4,c5]@7 ~ [d4,b4]@7 ~ [eb4,c5]@7 ~ [bb3,g4]@6 ~@2 gb4@2]/4", // G Cm G Cm G Cm G Cm …
  AB: "[c5 ~@2 [gb4,c5]@2 ~ c5@5 ~ gb4@2 f4@2 c5 ~ f4 c5@2 ~ c5@5 f4@2 ~@4 c5 ~ eb5 c5@3 ~@3 d5 c5@3 d5@3 eb5 c5@3 eb5 c5@3 d5 c5 ~@2 eb5 ~ c5, ~@31 c4@33, ~@32 g4@6 ~ g4@21 g4@4]/2", // Gbdim
  AC: "~ c5@2 ab4 f4 c5 ~@3 c5 ~ ab4 f4 ~ ab4 ~@3 g5 c5 ~ ab4 g5 c5@2 ab4 f5 c5 ~ ab4 c5 ~, f3@7 ab4@3 ~@5 c5@3 ~@14, ~@8 f3@7 ~ f3@15 ~",
  AD: "[~@2 g4@2 eb5 c5@2 g4@2 d5 ~ c5 g4@3 d5 c5@3 eb5 c5@3 eb5 ~@3 d5 ~@4 d5 ~@3 eb5 c5@2 ~ eb5 c5@2 ~ d5 c5@2 ~ d5 ~@3 eb5 ~@3 eb5 ~ c5!2 ~@2 c5 [eb4,c5], f5@3 ~@22 c5@3 ~ c5@3 ~ c5@3 ~@14 c5@3 ~ c5@3 ~@7, ~ c4@25 g4@4 g4@4 g4@4 ~ g4@3 ~ g4@4 g4@3 ~ g4@4 g4@4 ~@2 [eb4,c5]@2 ~]/2", // Cm
  AE: "[~ d4!2 ~ [c4,ab4]@8 ~ f4 ~ ab4 c5 ab4 ~@3 f4 ~ ab4 c5 ~ ab4 ~@3 f4 ab4 c5 ~ ab4 f4 ~ [c4,ab4]@8 ~ f4 ~ ab4 c5 ab4 ~@4 f4 ab4 c5 ~ ab4 f4@2 ~ f4 ab4 ~ c5 ab4 f4 ~ [c4,eb4,g4,c5]@5 ~ c4@2 [c4,eb4,g4,c5]@4 [eb4,g4,c5] ~ [eb4,g4,c5]!2 eb4 ~ [eb4,g4,c5]!2 ~ [eb4,g4,c5]!3 ~ [eb4,g4,c5], ~ bb4@3 ~@8 c4@7 f4@2 ~@6 f4@3 ~@22 f4@3 ~@20 [eb4,g4,c5]@2 ~@19, ~@20 c4@7 ~ c4@7 ~@10 c4@7 ~ c4@7 ~@2 c4@7 ~@15 c4@3 ~@9]/3", // Fm Cm
  AF: "[eb4,g4,c5] ~ [eb4,g4,c5]!3 ~ [eb4,g4,c5] [eb4,c5] [d4,b4] ~ [eb4,c5] [d4,b4] ~ [eb4,c5] [d4,b4] [eb4,c5] ~ [d4,b4] [eb4,c5] ~ [d4,b4] [eb4,c5] [d4,b4] ~ [eb4,c5] [d4,b4] [eb4,c5] ~ [d4,b4] [eb4,c5] ~ [d4,b4]", // Cm G Cm G Cm G Cm G …
  AG: "[[eb4,c5] [d4,b4] ~ [eb4,c5] [d4,b4] [eb4,c5] ~ [d4,b4] [g4,d5]@5 ~ [g4,d5]@20 ~@2 [d4,g4]@2 ~ [d4,g4]@3 [ab3,ab4]@4 ~ [ab3,ab4]@2 ~ [ab3,ab4]@4 ~ [g3,g4]@2 ~ [f3,f4]@5 ~]/2", // Cm G Cm G Cm G G5 Ab …
  AH: "[[f3,f4]@2 ~ f4@5 [g3,g4]@2 ~ [eb4,c5]@7 ~ [d4,b4]@7 ~ [eb4,c5]@7 ~@2 [bb3,g4]@6 ~@2 gb4@2 c5 ~ gb4 c5@2 ~ c5@5 gb4@2 f4@2 c5 ~ f4, ~ f3@2 ~@29]/2", // F G Cm G Cm Eb
  AI: "c5@2 ~ c5@5 f4@2 ~@22", AJ: "~@15 g4@2 [bb4,d5]@2 ~ d5@2 ~@2 bb4 c5 bb4 g4!2 ~ c4 bb3, ~@23 c5@2 ~@7",
  AK: "g3 g3@2 ~@6 [ab3,g4,c5,eb5] ~@22", // Abmaj7
  AL: "[~@7 [eb3,bb3]@4 ~ [eb3,bb3]@2 [eb3,bb3] [eb3,bb3]@3 ~ [eb3,bb3]@3 ~ [eb3,bb3]@3 ~ [eb3,bb3]@2 ~ bb3 [eb3,bb3]@3 ~ [eb3,bb3]@3 [d3,a3]@3 ~@2 [d3,a3]@2 [d3,a3] [d3,a3]@3 ~ [d3,a3]@2 ~ [d3,a3] [d3,a3]@3 ~ [d3,a3]@3 a3 a3@7 [eb4,c5]@7 ~ [d4,b4]@6 ~@2 [eb4,c5]@7 [bb3,g4]@6 ~@2 gb4@2 c5 ~ gb4 c5@2 ~ c5@5 gb4@2 f4@2 c5 ~ f4 c5@2 ~ c5@5, ~@61 d3@7 ~@60]/4", // Eb5 D5 Cm G Cm Eb
  AM: "[f4@2 ~@4 c5 eb5 c5@3 ~@2 d5 ~ c5@2 d5@3 eb5 c5@3 eb5 c5@2 d5 ~ c5 ~ eb5 ~ c5 ~@2 ab4 ~ f4 c5 ab4@2 ~ c5 ab4 f4 ~ ab4 ~@3 g5 c5 ab4 g5 ~@2 ab4 f5 ~ c5 ab4 c5 f5@2 ~@2 eb5 ~@2 g4@2 d5 ~ c5 g4@3 d5 c5@2 eb5 ~ c5@2 eb5 ~@3 d5 c5@2 ~ d5 c5@2, ~@3 c4@31 f3@6 ~@2 f3@6 ~ f3@14 ~@2 c4@23 g4@4 g4@4, ~@4 g4@5 ~@2 g4@19 g4@4 ~ c5@3 ~@10 c5@3 ~@5 c5@3 ~@7 g4@3 c5@3 ~@15 c5@3 ~@6]/3",
  AN: "[~ e5 c5@2 ~ e5 ~@3 d5 ~@2 d5 ~@3 e5 ~@3 e5 c5 ~ c5!3 ~ [e4,c5] d4!2 ~ ab4@7 ~ f4 ~ ab4 c5 ab4 ~@3 f4 ab4 ~ c5 ab4 f4@2 ~ f4 ab4 c5 ~ ab4 f4 ~@2 f4@4 ~@7 g4 ab4 ~ ab4@8 ~@5 f4 ~ c5 ~@2 c5, g4@4 g4@2 c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~@7 bb4@3 ~@14 f4@2 ~@49, ~@7 g4@4 g4@3 ~ g4@4 g4@4 ~ e4@3 ~@4 c4@6 ~ c4@6 ~@2 c4@6 ~@2 c4@6 ~ c4@8 ~@27]/3", // C
  AO: "c5@4 ~@4 [eb4,g4,c5]!3 ~ eb4 [eb4,g4,c5]!3 ~ [eb4,g4,c5]!3 ~ [eb4,g4,c5]!3 [eb4,c5] g4 [eb4,g4,c5] [eb4,c5] [d4,b4] ~ [eb4,c5] [d4,b4]", // Cm G Cm G
  AP: "[[eb4,c5] [d4,b4] ~ [eb4,c5] [d4,b4] [eb4,c5] ~ [d4,b4] [eb4,c5] [d4,b4] [eb4,c5] ~ [d4,b4] [eb4,c5] [d4,b4] ~ [eb4,c5] [d4,b4] [eb4,c5] ~ [d4,b4] [eb4,c5] [d4,b4] [eb4,c5] ~ [d4,b4] [g4,d5]@4 ~ [g4,d5]@19 ~@2 [d4,g4]@2 [d4,g4]@3 [ab3,ab4]@4 ~ [ab3,ab4]@2]/2", // Cm G Cm G Cm G Cm G …
  AQ: "~ [ab3,ab4]@4 ~ g3@2 [f3,f4]@4 ~@2 [f3,f4]@2 [f3,f4]@4 ~ [g3,g4]@2 ~ [eb4,c5]@7 ~, ~@5 g4@2 ~@25", // Ab F G Cm
  AR: "[[d4,b4]@6 ~ [eb4,c5]@7 ~ [bb3,g4]@6 ~@3 c5 ~@2 gb4 c5@2 c5@5 gb4@2 ~ f4@2 c5 ~ f4 c5@2 ~ c5@5 f4@2 ~@5 ab3@2 ~@8 ab2 ~@4 ab3@3 ~ ab3@6 ~ [ab3,ab4]@4 ~@2 [ab3,ab4]@2 [ab3,ab4]@4, ~@23 gb4@2 ~@28 ab2@13 ~@3 ab2@6 ~ ab2@8 ~@12, ~@54 eb3@6 eb3@23 ~@13, ~@61 ab3@11 ~@24]/3", // G Cm Eb Ab
  AS: "~ [g3,g4]@2 ~ [f3,f4]@4 ~ [f3,f4]@2 ~ [f3,f4]@4 ~ [g3,g4]@2 [eb4,c5]@7 ~ [d4,b4]@5", // G F G Cm G
  AT: "[~@3 [eb4,c5]@7 ~ bb3@6 ~ gb4@2 c5 ~ gb4 c5@2 ~ c5@5 gb4@3 f4@2 c5 ~@2 f4 c5@2 ~ c5@6 f4@3 ~ [c5,eb5]@22 ~ bb4 ~ g4 ~@4 eb5@2 ~@5 eb5@2 ~@4 eb5@2 ~@5 eb5@2 ~@4 eb5 ~@2 d5@16, ~@10 g4@6 ~@59 c5@23 ~@30]/4", // Cm
})).s("gm_overdriven_guitar").gain(0.37).pan(0.6)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~ A B C D E F G H I J K L M N O P Q R S T U V W X@8 Y@6 Z AA@2 AB@2 AC@2 AD@2 AE@2 AF AG AH AI@4 AJ@2 AK AL@4 AM@6
  AN@5
>`.pickRestart({
  A: "~@13 eb2@3 g2@8 c2@3 eb2@2 e2@3", B: "f2@12 ~ ab2@3 c3@8 ab2@3 bb2@2 b2@3", C: "c3@13 bb2@2 ~ g2@11 eb2@2 d2@2 ~",
  D: "c2 d2 eb2 e2", E: "f2@13 c2@3 f2@13 c2@3", F: "f2@13 c2@3 f2@11 ab2@2 bb2@3",
  G: "c3@10 bb2@5 ~ g2@5 g2@2 ~ g2@5 g2@2 ~", H: "c2@12 ~ c2@2 ~ c2@7 ~ c2@3 eb2@2 f2@3",
  I: "g2@7 ~ g2@5 g2 ~@2 g2@7 ~ g2@5 d2 ~ g2", J: "ab2@7 ~ ab2@5 g2@3 f2@8 f2@4 ~ f2@3",
  K: "eb2@8 d2@6 ~@2 c2@2 ~ c2@2 c2@3 eb2@8", L: "d2@5 d2 ~@2 d2@8 db2 ~ db2 ~ db2!2 ~@2 db2@2 ~ db2@2 db2@2 ~",
  M: "c2@7 ~ c2@4 ~ c2 ~@2 c2@8 c3@3 eb2 ~ eb2 ~ e2", N: "f2@24 ab2@3 bb2@2 b2@3", O: "c3@16 c2@8 eb2@3 f2@2 g2@3",
  P: "c3@21 bb2@3 c2@5 eb2@2 ~", Q: "f2@11 c3@2 c2@3 f2@8 c2@5 eb2@3", R: "f2@11 ab2@2 bb2@3 f2@13 ab2@3", S: "c3 g2",
  T: "c2@8 eb2@3 g2@2 bb2@3 c3@13 bb2@3", U: "g2@13 g2@2 ~ g2@7 ~ g2@2 ~ g2@2 g2@3",
  V: "ab2@13 g2@3 f2@4 ~ g2@2 ~ f2@4 ~ f2@3", W: "eb2@8 d2@8 c2@4 ~ d2@3 eb2@8",
  X: "[d2@5 d2 ~@2 d2@4 ~ d2@3 ~ db2@3 db2 ~@2 db2@4 ~ db2@2 c2@8 eb2@3 g2@2 ~ bb2@2 c3@8 c2@4 ~@2 c2@2 f2@8 ab2@3 bb2@3 c3@2 f2@11 g2@2 ~ bb2@2 c3@23 ~ g2@8 c2@29 ~ eb2@2 f2@13 ~ c2@2 f2@8 ab2@3 bb2@2 ~ c3@2 f2@15 ~ f2@9 ~@2 f2@3 ab2@2 c3@8 bb2@3 ab2@2 ~ g2@2 g2@5 ~ f2@2 eb2@6 d2@2 c2@2]/8",
  Y: "[~ c2@2 ~ c2@2 c2@2 ~ c2@2 ~ c2@2 c3 ~@2 bb2 b2 ~@2 bb2 c3 ~ b2 bb2 b2 ~@2 g2 g2@4 ~@2 g2@2 g2@2 ~ d2@3 f2@2 g2@13 ~ g2@2 ab2@13 ~ g2@2 f2@4 ~@2 g2@2 f2@5 ~ f2@2 eb2@8 d2@8 c2@8 eb2@7 ~ d2@5 ~ d2 ~ d2@4 ~@2 d2@3 ~ db2@3 ~ db2 ~ db2@4 ~@2 db2@3 c2@8 eb2@3 g2@2 bb2@2 ~ c3@8 ~ c2@4 ~ c2@2 ~, ~@8 b2 ~ c3 ~@3 c3 ~@81]/6",
  Z: "f2@8 ab2@3 bb2@3 c3@2 f2@11 ~ g2@2 bb2@2", AA: "[~ c3@24 ~ g2@8 c2@30]/2",
  AB: "[~ eb2@2 f2@14 c2@3 f2@8 ab2@3 bb2@2 ~ c3@2 ~ f2@16 f2@10 ~]/2",
  AC: "[f2@3 ab2@3 c3@8 bb2@3 ab2@3 g2@2 g2@5 ~ f2@3 eb2@5 d2@3 c2@2 ~ c2@2 ~ c2@2 c2@2 ~ c2@2 ~ c2@2 ~ c3 ~ bb2 ~ b2 c3@2 bb2, ~@57 b2@2 ~@5]/2",
  AD: "[c3 b2 ~ bb2 b2 c3@2 g2 g2@5 ~ g2@2 ~ g2@2 d2@3 f2@3 g2@13 ~ g2@2 ab2@14 g2@3 f2@4 ~@2]/2",
  AE: "[g2@2 f2@5 ~ f2@3 eb2@8 d2@8 c2@8 ~ eb2@8 d2@5 d2 ~@2 d2@4 ~ d2@3 ~ db2@3]/2",
  AF: "~ db2 ~ db2@4 ~ db2@3 c2@3 ~@18", AG: "~@9 gb2 f2@3 ~@19", AH: "~@8 c2@3 ~@21",
  AI: "[~@7 eb2@4 ~@2 eb2@2 eb2@2 ~ eb2@2 eb2@2 ~ eb2@2 eb2@2 ~ eb2 ~@2 eb2@2 eb2 ~@2 eb2@2 d2 ~ d2@3 d2 ~@2 d2@4 ~ d2 ~@2 d2@14 ~ eb2@8 d2@8 c2@7 eb2@7 ~ d2@5 d2 ~@2 d2@4 ~ d2@3 ~ db2@3 ~ db2 ~ db2@4 ~]/4",
  AJ: "[db2@3 c2@8 eb2@2 g2@2 ~ bb2@2 c3@8 c2@4 ~ c2@2 ~ f2@8 ab2@2 bb2@3 c3@2 f2@10 ~ g2@2 bb2@2]/2",
  AK: "~ c3@23 g2@8",
  AL: "[c2@28 e2@2 f2@13 c2@3 f2@8 ab2@2 bb2@2 ~ c3@2 f2@15 ~ f2@9 ~ f2@3 ab2@2 c3@8 bb2@2 ab2@2 ~ g2@2 ~ g2@5 f2@2 eb2@5 d2@3 c2@2 ~ c2@2]/4",
  AM: "[c2@2 ~ c2@2 c2@2 ~ c2@2 c3 ~@2 bb2 b2 ~@2 bb2 c3 ~ b2 bb2 b2 c3@2 g2 g2@4 ~ g2@2 ~ g2@2 d2@2 ~ f2@2 g2@12 ~ g2@2 ~ ab2@13 g2@2 f2@4 ~ g2@2 ~ f2@5 f2@3 eb2@7 d2@8 c2@8 eb2@7 ~ d2@5 d2 ~ d2@4 ~ d2@3 ~@2 db2@3 db2 ~@2 db2@4 ~ db2@2 ab2@5 ~ ab2@2 ab2@5 ab2@2 ~ ab2@4 ~ ab2@2 ~ ab2 ab2@2 ~ ab2 ab2@2 f2@4 ~@2 f2 ~ f2@4, ~@6 b2 ~ c3 ~@87]/6",
  AN: "[~ f2@2 ~ f2@4 ~ f2@2 f2@5 ~ f2@2 eb2@7 ~ d2@8 c2@7 eb2@7 ~ d2@4 d2!2 ~@2 d2@8 db2@4 ~ db2 db2@2 ~ db2@9 ~ c2@44 ~@31]/5",
})).s("gm_fretless_bass").gain(0.47)

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@5 A B C D E F G H I J K L M N@2 O P Q R S T@3 U@2 V W X@4 Y Z AA AB AC AD AE AF@2 AG@4 AH AI AJ AK@5 AL AM AN@2 AO
  AP AQ@3 AR@8
>`.pickRestart({
  A: "~@10 [ab4,c5,eb5]@2 ~ [bb4,d5,f5] ~@2 [f3,ab4,c5,eb5]@9 ~@7", // Ab Bb Fm7
  B: "~@10 [ab4,c5,eb5]@2 db5 [bb4,d5,f5]@2 ~ [f3,ab4,c5,eb5]@8 ~@8", // Ab Bb Fm7
  C: "~@11 [c4,c5,f5]@2 [bb4,eb5] ~@2 [c4,g4]@2 ~ [c4,f4]@10 [c4,eb4,bb4]@3, ~@13 c4@2 ~ c5@12 ~@4", // F5 Eb5 C5 F5 Cm7
  D: "c5@8 [d5,f5,g5,bb5]@3 ~@2 bb4 ~@2 [c4,bb4,d5,f5,g5,bb5]@2 ~ [c4,bb4,c5,f5,a5]@3 ~ [eb5,g5]@7 ~@2, [c3,c4]@15 ~@8 [c4,bb4]@5 ~@4", // Gm7 F Eb C C7
  E: "~@5 [g3,d4,bb4,d5,f5]@10 ~ [g3,d4,g4,bb4,d5]@7 ~ [g3,d4,bb4,d5,g5]@7 ~", // Gm7 Gm
  F: "[ab3,eb4,c5,eb5,ab5]@15 ~ [f3,d4,c5,f5,ab5]@16", // Ab Dm7b5
  G: "[eb3,eb4,c5,eb5,g5]@7 ~@2 f5 ~ eb5 [c5,d5] d5 eb5 d5 eb5@3 f5 [d5,eb5] [c5,c6]@3 g5@3 f5 eb5@4, ~@8 g5@14 ~@2 bb5@7 ~", // Cm Csus2 Ebmaj7 C
  H: "~@2 [d4,a4,gb5]@2 ~ [d4,a4,gb5]@11 ~@2 [db4,ab4,f5,g5] ~@2 [db4,ab4,f5,g5]@10 ~, ~ c6@15", // D Db
  I: "[c4,g4,eb5,g5,bb5]@3 ~@5 [c4,g4,c5,f5,a5]@6 ~@2 [c4,g4,c5,eb5,g5] ~ [c4,g4,c5,eb5,g5] ~@13", // Cm7 F Cm
  J: "~@8 [f3,bb4,d5]@7 ~ [f3,f4,bb4,d5] ~ [f3,f4,bb4,d5] ~@8 c5 [g4,bb4] c5 bb4 g4, ~@7 f4@8 ~@17", K: "c5 ~@7",
  L: "[c4,g4,bb4,c5,eb5] ~ [c4,g4,bb4,c5,eb5] ~@3 [c4,g4] ~@6 [c4,g4,bb4,d5,f5]@2 ~@12 [f5,g5,bb5]@2 ~@3, ~@5 [bb4,c5,eb5]@2 ~@25", // Cm7 C5 Gm7 Cm7
  M: "~@24 [ab4,c5,eb5]@2 ~@3 [eb4,ab4,c5,eb5]@2 ~, ~@6 [c4,f4] ~", // Ab F5
  N: "[[e3,f3] ~@2 d4@2 c4@2 ~ [c4,f4,ab4,c5,f5]@3 ~@8 [ab4,bb4]@2 ~@3 [gb5,g5,c6] ~ [gb5,c6] ~ [eb5,f5] c5 ~@2 c5@4 ~ [bb4,c5] eb5 ~ [c4,g4,c5]@2 [c4,g4,bb4,c5,eb5] ~@2 [c4,g4,c5]@2 ~@6 [c4,g4] ~@2 f5@5 ~@3, eb4@2 ~@24 g5@2 ~@3 bb4@2 ~@4 [c4,g4]@2 ~ [bb4,eb5] ~@4 [bb4,eb5] ~@18]/2", // Fmaj7 Fm Absus2 C Gbdim Ebsus2 Bbsus2 C5 …
  O: "eb5 c5@2 ~@2 bb4 ~@2 c5@3 ~@9 [gb5,g5] bb5 ~ [f5,gb5] f5@2 eb5 c5@2 bb4@3, ~@27 d5 ~@4", // Gmaj7 Gbmaj7
  P: "g4@6 ~@7 d4@2 f4!2 d4@4 ~@3 [d4,f4]@5 ~@3", Q: "ab3@13 g3@3 [f3,c5,f5,ab5]@16, [c4,eb4,ab4]@15 ~@17",
  R: "[eb3,eb4,c5,eb5,g5]@8 ~ f5 ~ [d5,eb5] c5 d5 eb5 d5 eb5@3 [eb5,f5] d5 [c5,c6]@3 g5@3 f5 eb5@4, ~@8 g5@14 ~@2 bb5@7 ~", // Cm Ebmaj7 Ebsus2 C
  S: "~@2 [gb4,c5]@3 [gb4,c5]@7 ~ [bb4,c5]!2 ~@2 [ab4,c5]@2 ab4 [ab4,c5]@9 [ab4,c5] ~ c5", // Gbdim Bbsus2 Ab
  T: "[eb5 f5 g5 c6 c6@18 [gb5,g5,bb5] ~ [g5,bb5]!2 eb5 c5!2 bb4 c5@5 ~ [f5,ab5] ~ [f5,ab5] ~ [f5,ab5] ~@3 [f5,ab5] ~ [f5,ab5] ~ [f5,ab5] ~@4 eb5@7 ~@2 c5@4 ~@2 [g5,bb5] ~ [g5,bb5]@4 ~@2 [g5,bb5] ~ [g5,bb5]@4 ~@2 [g4,bb4] ~ [c4,g4,bb4] ~ [c4,g4,bb4] ~@2 c4 [c4,g4,bb4] ~ [c4,g4,bb4,c5,eb5] c5, ~@62 c4 ~@33]/3", // Gb Gm Fm Gm C7 Cm7
  U: "[[c4,g4,bb4,c5,eb5] ~@5 c4 f4 [bb4,eb5] eb4 [g4,c5] f5 eb5@3 c5 bb4 c5@2 f5@2 ~ eb5@4 ~ c5 ~ bb4 c5@8 f4@5 [d5,f5] [c5,eb5] [d5,f5] [c5,eb5] ~ [c5,eb5] ~@3 [c5,eb5]@2 ~@2 [c5,eb5] ~@2 [d5,f5] ~ [d5,f5] [c5,eb5] ~, ~@43 eb4@3 ~@18]/2", // Cm7 Eb5 C5 Dm Cm Dm Cm Dm …
  V: "[c5,eb5] ~@5 f4@3 eb4@3 ~@2 f4@4 ~@2 f4 [eb5,f5] ~@2 [c5,eb5,f5] ~@3 [c5,eb5] eb5 eb5@2, ~@21 c5@2 ~@7 c5 ~", // Cm Ebsus2 F7 Cm
  W: "[c5,eb5] ~@13 [g5,c6]@15 ~ gb5 c6, ~@14 gb5 ~@15 g5@2", // Cm C5
  X: "[~ [g5,c6]@2 ~ [g5,c6]@2 [g5,c6]@2 ~ [gb5,c6] ~@2 [g5,c6]@2 [g5,c6]@2 ~ [gb5,c6] ~@2 [gb5,c6] ~ [gb5,g5,c6] ~@2 [gb5,g5,c6] ~ [gb5,g5] c6 ~ [g3,bb4,d5,g5]@31 ~@7 bb3@2 ab3@5 ~ g3@2 f3@5 ~ g3@2 f3@5 ~ g3@2 c6 b5 c6!2 b5 c6 b5 [g5,c6] c6 g5 ab5 g5 ab5 g5 f5 [d5,eb5] eb5 d5 c5@2 d5 eb5@2 [eb5,f5] f5 ~ g5@2 ~@6, ~ gb5 ~@2 gb5 ~ gb5 ~@2 g5@2 ~ gb5 ~ gb5 ~@2 g5@2 ~ g5@2 ~@40 [eb5,ab5]@15 ~ [f5,ab5,c6]@16 ~@34, ~@62 ab3@6 ~@26 eb3@9 d3@8 c3@8 ~@9, ~@63 c5@15 ~@40 eb3@7 ~@3]/4", // C5 Gbdim C5 Gbdim C Gmaj7 Gm C5 …
  Y: "[gb4,c5]@3 ~ [gb4,c5]@7 ~ [bb4,c5]!2 ~@2 [ab4,c5]@2 ~ ab4 [ab4,c5]@10 [ab4,c5] ~", // Gbdim Bbsus2 Ab
  Z: "c5 [eb5,f5] g5 c6 c6@19 ~ [gb5,g5,bb5] [g5,bb5]!2 eb5 c5!2 ~ bb4", // Ebsus2 Gb Gm
  AA: "c5@5 [f5,ab5] ~@2 ab5@2 [f5,ab5] ~@3 [f5,ab5] ~ [f5,ab5] ~ [f5,ab5] ~@5 eb5@7 ~, ~@8 f5 ~@23", // Fm
  AB: "~ c5@4 ~@2 [g5,bb5] ~ [g5,bb5]@4 ~@2 [g5,bb5] ~@2 [g5,bb5]@4 ~ [g4,bb4] ~@2 [c4,g4,bb4] ~ [c4,g4,bb4] ~@2 [c4,g4,bb4], ~ c4@2 ~@29", // Gm C7
  AC: "~@2 [c4,g4,bb4,c5,eb5] c5 [c4,g4,bb4,c5,eb5] ~@6 [c4,f4] bb4 [eb4,eb5] g4 [c5,f5] eb5@3 ~ c5 bb4 c5@2 f5@2 ~ eb5@4 ~", // Cm7 F5 Eb F5
  AD: "c5 ~ bb4 c5@9 f4@4 [d5,f5] [c5,eb5] ~ [d5,f5] [c5,eb5] ~ [c5,eb5] ~@3 [c5,eb5]@2 ~@2 [c5,eb5] ~, ~@17 eb4@2 ~@13", // Dm Cm Dm Cm
  AE: "~ [d5,f5] ~@2 [d5,f5] [c5,eb5] ~ [c5,eb5] ~@5 f4@3 eb4@3 ~@2 f4@4 ~@2 f4 ~ [eb5,f5] ~ [c5,eb5,f5], ~@29 c5@2 ~", // Dm Cm Ebsus2 F7
  AF: "[~@3 [c5,eb5] ~ eb5 eb5@2 [c5,eb5] ~@13 gb5 c6@15 ~ [g5,c6]@2 ~ [g5,c6]@2 ~ [g5,c6]@2 [g5,c6]@2 ~ [g5,c6]@2 ~ [g5,c6]@2 ~ [g5,c6]@2 gb5 c6 ~ [gb5,c6] ~@2, ~@6 c5 ~@15 g5@16 ~ gb5 ~@2 gb5 ~@2 gb5 ~ gb5 ~@2 gb5 ~@2 gb5 ~@2 gb5 ~ g5@2 ~ g5@2 ~]/2", // Cm C5 Gbdim
  AG: "[[gb5,c6] ~@2 [gb5,g5,c6] ~ [gb5,g5,c6] ~@2 [g3,bb4,d5,g5]@33 ~@6 bb3@3 ab3@5 g3@3 f3@5 ~ g3@2 f3@5 ~ g3@3 c6 b5 c6 [b5,c6] c6 b5 c6 g5 c6 g5 ab5 g5 ab5 g5 f5 [d5,eb5] eb5 d5 c5@2 d5 eb5@2 f5 eb5 f5 g5@2 ~@7 [gb4,c5]@3 [gb4,c5]@7 ~ [bb4,c5]!2 ~@2 [ab4,c5]@2 ~, g5@2 ~@39 ab3@6 ~@28 eb3@9 ~@16 eb3@7 ~@21, ~@42 [c5,eb5,ab5]@15 ~ [f5,ab5,c6]@16 ~@9 d3@8 ~ c3@8 ~@28]/4", // Gbdim C Gm Cmaj7 Ebmaj7 Gbdim Bbsus2 Ab …
  AH: "~ c5@9 [ab4,c5] [eb4,g4,bb4]@2 ~@19, ab4@9 ~@23", AI: "~@5 [f4,bb4] ~@10",
  AJ: "~@5 [bb3,c4,eb4] [f3,g3] gb3 [eb3,f3] c3@2 ~@21", // Cm7 Fsus2 Ebsus2
  AK: "[~@8 [bb4,g5]@30 ~@2 [f5,gb5] eb5 c5 eb5 ~@2 g5 bb5@4 gb5 f5 ~ eb5@5 f5@2 eb5@5 d5@3 c6 b5 c6!2 b5 [b5,c6] c6 g5 c6 g5 [g5,ab5] ab5 g5 f5 eb5 d5 [d5,eb5] c5@2 d5 eb5@2 f5 [eb5,f5] ~ g5@2 ~@6 [gb4,c5]@3 [gb4,c5]@7 ~ [bb4,c5] ~ [bb4,c5] ~ [ab4,c5]@2 ~ ab4 [ab4,c5]@9 [ab4,c5] ~ c5 eb5 [f5,g5] c6 c6@18 [gb5,g5,bb5] ~ [g5,bb5]!2 [c5,eb5] c5, ~@7 eb5@30 ~@8 f5@2 ~@30 d3@8 c3@7 eb3@7 ~@61]/5", // Eb Gbmaj7 Cmaj7 Abmaj7 Ebmaj7 Ebsus2 Gbdim Bbsus2 …
  AL: "~ bb4 c5@5 [f5,ab5] ~@2 [f5,ab5]!2 ~@3 [f5,ab5] ~ [f5,ab5] ~ [f5,ab5] ~@4 eb5@7 ~", // Fm
  AM: "~ c5@4 ~ [g5,bb5] ~ [g5,bb5]@4 ~@2 [g5,bb5] ~ [g5,bb5]@4 ~ [g4,bb4] ~@2 [c4,g4,bb4] ~ [c4,g4,bb4] ~ c4 [c4,g4,bb4] ~@2, ~ c4 ~@30", // Gm C7
  AN: "[[c4,g4,bb4,c5,e5]!2 ~@5 c4 f4 [bb4,e5] e4 [g4,c5] e5@3 ~ c5 c5@3 f5@2 ~ e5@4 c5 ~ bb4 c5@8 f4@4 [d5,f5] [c5,eb5] ~ [d5,f5] [c5,eb5] ~ [c5,eb5] ~@2 [c5,eb5]@2 ~@2 [c5,eb5] ~@2 [d5,f5] ~ [d5,f5] [c5,eb5] ~ [c5,eb5], ~@12 f5 ~@4 bb4 ~@25 eb4@2 ~@19]/2", // C7 Bbdim C5 Dm Cm Dm Cm Dm …
  AO: "~@5 f4@3 eb4@3 ~@2 f4@4 ~ f4 ~ [eb5,f5] ~ [c5,eb5,f5] ~@3 [c5,eb5] eb5 eb5@2 [c5,eb5] ~, ~@20 c5@2 ~@6 c5 ~@3", // Ebsus2 F7 Cm
  AP: "~@12 [g5,c6]@15 [gb5,c6] ~@2 [g5,c6]@2, ~@12 gb5 ~@14 g5@2 ~ gb5 ~", // C5 Gbdim C5
  AQ: "[[g5,c6]@2 ~ [g5,c6]@2 [gb5,c6] ~@2 [g5,c6]@2 gb5 c6 ~ [gb5,c6] ~@2 [gb5,c6] ~ [gb5,g5,c6] ~@2 [gb5,g5,c6] ~ [gb5,g5,c6] ~@2 [g3,bb4,d5,g5]@30 ~ ab3@5 bb3@3 ab3@5 g3@2 f3@5 g3@3 f3@5 g3@3 c6 [b5,c6] c6 b5 c6 b5 c6 [g5,c6], gb5 ~@2 gb5 ~ g5@2 ~ gb5 ~ g5@2 ~ g5@2 ~ g5@2 ~@39 [c5,eb5,ab5]@14 ~ [f5,ab5,c6]@15 ~ eb3@8]/3", // C5 Gbdim C5 Gbdim C Gm Cmaj7 C5 …
  AR: "[g5 ab5 g5 ab5 g5 [eb5,f5] d5 eb5 d5 c5@2 eb5@2 f5 eb5 f5 g5@2 ~@6 [gb4,c5]@3 ~ [gb4,c5]@7 [bb4,c5] ~ [bb4,c5] ~@2 [ab4,c5]@2 ab4 [ab4,c5]@9 ~ [ab4,c5] [c5,eb5,ab5]@14 ~ f4@8 eb4@7 [f3,eb4,f5,ab5,c6]@30 ~ [eb4,eb5,g5,c6]@8 [d4,d5,g5,b5]@8 [c4,eb5,g5,c6]@7 [eb4,eb5,g5,bb5]@8 ~@2 [d4,a4,gb5,c6]@3 [d4,a4,gb5]@11 [db4,ab4,c5,f5]@18 ~ eb5@32 ab4@3 ~ bb4 [bb4,d5] d5 f5@5 ~ db5 d5@2 f5 db5 d5@2 ~ a4@6 ~ a4 bb4 a4!2 ~ a4@10, d3@7 c3@8 eb3@7 ~@32 ab3@30 ~@96 bb4@32 ~@22 bb4 ~@21, ~@11 d5 ~@41 eb4@16 [d5,f5,bb5]@14 ~@68 c6@29 ~ c4@75, ~@181 g4@59 g4@3 g4@2 g4@10 ~]/8", // Ebsus2 Gbdim Bbsus2 Ab Fm7 Cm G Cm …
})).s("gm_rock_organ").gain(0.48).pan(0.4)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note("<~@36 A B@2 C@2 D@2 E@2 F@2 G H@2 ~@24>".pickRestart({
  A: "~@23 g4!2 [bb4,c5] [g4,bb4] [f4,g4] [eb4,f4]!2 [c4,eb4] [bb3,c4]", // Bbsus2 Gm Fsus2 Ebsus2 Cm Bbsus2
  B: "[[bb3,c4] [g3,bb3] [f3,g3]!2 [eb3,f3] [c3,eb3] [bb2,c3,eb3] [b2,c3]@2 ~ [g3,bb3] [c4,eb4]@2 c4@2 c4 f4 c4 c4@4 [eb4,f4] g4@3 g4@2 ~ f4 eb4 f4@4 ~@2 ab4 ~ eb5 d5 c5 ~ [c5,d5] ab4 ab4@2 ~ g4 f4 [c4,eb4] bb3 ab3 f3 bb3 [f3,ab3] [f3,ab3]@2 ~@2 f3 [g3,ab3] g3 f3, ~@18 eb4 ~@17 g4@2 ~@26]/2", // Bbsus2 Gm Fsus2 Ebsus2 Cm Cm7 Cmaj7 Gm …
  C: "[eb3 c3 c3@2 ~@2 g4 [bb4,c5] g4!2 f4 eb4 c4 c4@2 eb4@9 ~@2 c5@3 eb5@2 f5@2 eb5 g5@2 ~ g5@2 ~ g5 [eb5,f5] f5 ~ g5 eb5@2 ~ f5@2 eb5 g5@2 ~ g5@4 f5 g5 f5 eb5 f5 g5]/2", // Bbsus2 Ebsus2
  D: "[~ eb5@2 ~@3 g5@3 bb4 f4 g4 ab4 [g4,bb4] ab4 f4 f4@3 ab4 bb4 c5@2 eb5 c5@5 ~@2 c5@3 eb5 ~ c5 eb5 g5 eb5@2 c5 eb5 ~ g5 ~ c5 eb5 ~ g5 eb5@2 c5 g5@3 g5@2 ~ g5 ~ f5 ~ f5, ~@5 ab5@2 ~@38 eb5@2 ~@15 g5@2]/2", // Gm
  E: "[g5@2 eb5 g5@2 ~ eb5 c5@5 ~@3 g4!2 [g4,bb4,c5] [g4,bb4] [f4,g4] [eb4,f4]!2 [c4,eb4] [bb3,c4]!2 [g3,bb3] [f3,g3]!2 [eb3,f3] [c3,eb3] [bb2,c3] [b2,c3]@2 ~ [g3,bb3,eb4] c4 ~ c4@2 c4 f4 [c4,eb4] c4@4 [eb4,f4] g4@2 ~ g4@2 ~ f4 eb4 g4@5 ~@4]/2", // C7 Gm Fsus2 Ebsus2 Cm Bbsus2 Gm Fsus2 …
  F: "[g4@2 eb4 [c4,eb4]@2 g4!2 bb4!2 ~ d5 f5 g5@5 ~ f5 d5 f5 ~@2 f5 ~ d5 [d5,e5] bb4 ~ bb4@5 ~@2 ab4@3 bb4@2 ~ c5@5 eb5@2 ~ c5@4 eb5 c5@2 ~ g5@2 ~ g5@2 ~, ~@11 g5 ~@20]/2", // Cm Dsus2
  G: "g5@2 f5@5 ~ g5@2 eb5 c5@4 ~@5 g4 ~ g4 c5 bb4 g4 [f4,g4] eb4 ~ c4 c4@2", // Fsus2
  H: "[~@6 c5@2 eb5 f5@2 eb5 g5@2 g5@6 ~@2 g5 f5 eb5 ~ gb5 g5@2 ~ g5@5 ~@3 [f5,g5] eb5@2 ~@2 c5@2 ~@19, ~@25 f5@2 ~@37]/2", // Fsus2
})).s("gm_overdriven_guitar").gain(0.54)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C D E C F G H C I J K C@2 L C@2 K M B C N O P@3 Q R P S T U P 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 BA BB BC BD ~@2
>`.pickRestart({
  A: "~@13 x ~@2 x ~@4 x ~@7 x ~@2", B: "x ~@4 x ~@7 x ~@2 x ~@4 x ~ x ~@5 x ~@2",
  C: "x ~@4 x ~@7 x ~@2 x ~@4 x ~@7 x ~@2", D: "x ~@4 x ~@7 x ~@2 x ~@4 x ~ x ~@5 x ~ x",
  E: "x ~@6 x ~@5 x ~@2 x ~@4 x ~ x ~@5 x ~@2", F: "x ~@4 x ~@7 x ~@2 x ~@4 x ~@6 x ~@3",
  G: "x ~@4 x ~@7 x ~@2 x ~@12 x ~@2", H: "x ~@4 x ~@7 x ~@2 x ~@4 x ~ x ~ x ~@6", I: "x ~@4 x ~@7 x ~@2 x ~@4 x ~@10",
  J: "~@2 x ~ x!2 ~@2 x ~@6 x ~@2 x ~ x!2 ~@2 x ~@6 x", K: "x ~@4 x ~ x ~@5 x ~@2 x ~@4 x ~ x ~@5 x ~@2",
  L: "x ~@3 x ~@2 x ~@5 x ~@2 x ~@4 x ~@7 x ~@2", M: "x ~@4 x ~ x ~@5 x ~@2 x ~@4 x ~ x ~@4 x!2 ~@2",
  N: "x ~@4 x ~@7 x ~@2 x ~@4 x ~@9 x", O: "~@2 x ~ x!2 ~@2 x ~@5 x ~@2 x ~ x!2 ~@2 x ~@6 x ~",
  P: "~@2 x ~@3 x!2 ~@2 x ~@3 x!2", Q: "~@4 x ~@7 x ~ x ~@5 x ~@5 x ~@4 x", R: "~@2 x ~@3 x!2 ~@2 x ~@4 x",
  S: "~@4 x ~@7 x ~ x ~@5 x ~@5 x ~@2 x!2 ~", T: "x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!3 ~ x!2 ~@8 x ~",
  U: "~@4 x ~@7 x ~ x ~@5 x!2 ~@4 x ~ x ~ x ~", V: "~@2 x ~@3 x!2 ~@2 x ~@5",
  W: "x ~@2 x!2 ~ x ~@6 x ~@2 x ~@2 x!2 ~ x ~@8 x", X: "~@4 x ~@7 x ~@2 x ~@5 x ~@7 x ~@2",
  Y: "x ~@4 x ~@8 x ~ x ~@5 x ~@7 x ~", Z: "~ x ~@5 x ~@7 x ~@2 x ~@4 x ~@7 x",
  AA: "~@2 x ~@5 x ~@7 x ~@2 x ~@5 x ~@5 x", AB: "~@4 x ~@4 x ~@7 x ~@2 x ~@5 x ~@5",
  AC: "~@5 x ~@4 x ~@7 x ~@2 x ~@5 x ~@4", AD: "~@3 x ~@2 x ~@4 x ~@8 x ~ x ~@5 x ~@3",
  AE: "~@3 x ~@2 x!3 ~ x!2 ~ x!3 ~ x!2 ~ x!3 ~ x!3 ~ x!2 ~ x", AF: "~@8 x ~@5 x ~@7 x ~@2 x ~@4 x ~",
  AG: "x ~@4 x ~ x ~@2 x ~@4 x ~@7 x ~@2 x ~@5", AH: "x ~@7 x ~@2 x ~@4 x ~@8 x ~ x ~@4",
  AI: "~ x ~@12 x ~ x!2 ~@2 x ~@6 x ~ x ~@2", AJ: "x!2 ~ x ~@28", AK: "~@2 x ~@2 x ~ x ~@5 x ~@6 x ~@2 x ~@8",
  AL: "~@6 x ~@4 x ~@7 x ~@2 x ~@4 x ~@2 x ~", AM: "~@5 x ~@4 x ~@7 x ~@2 x ~@4 x ~@5",
  AN: "~@6 x ~ x!2 ~@2 x ~@6 x ~ x ~@2 x!2 ~ x ~@4", AO: "~@3 x ~@4 x ~@7 x ~ x ~@5 x ~@6 x",
  AP: "~@2 x ~@4 x ~@7 x ~ x ~@4 x ~@7 x ~", AQ: "~ x ~@4 x ~@7 x ~ x ~@4 x ~@7 x ~@2",
  AR: "x ~@4 x ~@6 x ~@2 x ~@4 x ~@6 x ~@3 x", AS: "~@4 x ~@6 x ~@2 x ~@4 x ~@9 x ~@2",
  AT: "~@2 x ~@7 x ~@2 x ~@4 x ~@7 x ~ x ~@3", AU: "~ x ~@7 x ~@2 x ~@4 x ~@5 x ~@2 x!3 ~ x!2",
  AV: "x ~ x!4 ~ x!4 ~ x!3 ~ x!2 ~@8 x ~@4 x", AW: "~@7 x ~ x ~@5 x!2 ~@4 x!2 ~@2 x ~@4 x ~",
  AX: "~@6 x ~ x ~@5 x ~@6 x ~@2 x ~@4 x ~@2", AY: "~@5 x ~ x ~@4 x ~@11 x ~@2 x!2 ~ x ~",
  AZ: "~@5 x ~@2 x ~ x!2 ~@2 x ~@7 x ~@4 x ~@4", BA: "~@2 x ~@2 x ~@4 x ~@11 x ~@2 x!2 ~ x ~@3",
  BB: "~@3 x ~@2 x ~ x!2 ~@2 x ~@19", BC: "~@17 x ~@2 x ~ x!2 ~@2 x ~@5", BD: "~ x ~@2 x ~@3 x ~ x!2 ~@7 x ~ x ~@10",
})).gain(0.57)

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

More by Led Zeppelin