Strudelify
Blind cover art

1994 · Korn

Blind

Korn

KeyD majorTempo94 bpm
0:00/0:00
// Blind — Korn
// 94 bpm, 4/4, key D major. 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 (4/4 at bar 1, 2/4 at bar 45, 4/4 at bar 45, 2/4 at bar 58, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 7 "Bass 2-Fieldy" fretless bass (copy of ch 2 "Bass 1- Fieldy" acoustic bass); ch 5 "Guitar 4- Head" distortion guitar (copy of ch 4 "Guitar 3- Munky" distortion guitar)
// note: Full arrangement: all 103 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(94/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 · distortion guitar · "Guitar 1- Munky"
const distortion_guitar = note(`<
  ~@2 A@18 ~@15 B@3 C D E@2 ~@5 F@4 G@2 H@2 ~@21 I@3 J@2 ~@5 K L@3 M ~ N@2 O P Q R@3 S T ~
>`.pickRestart({
  A: "~@12 [g#3,d4]!4", B: "[~@4 c#4@8 ~@22 c#4@4 ~@19 d3@2 ~ d3@2 d3@17 ~@17, ~@13 d4@30 ~@4 d4@34 ~@15]/3",
  C: "~@8 c#4@6 ~@5 [d3,d4,a4]@8 ~ [d4,a4]@2 [d4,a4]@2", // D5
  D: "[d4,a4]@4 [d4,a4]@2 [d4,g4]@2 [d4,g4]@4 ~ [d4,g4]@2 [d4,f4]@2 [d4,f4]@4 ~@11", E: "[~@23 a2@30 ~@11]/2",
  F: "[~@29 c#4@8 ~@22 c#4@4 ~@19 d3@2 d3@2 d3@17 ~@25, ~@37 d4@30 ~@5 d4@34 ~@22]/4",
  G: "[~ c#4@6 ~@5 [d3,d4,a4]@8 [d4,a4]@2 ~ [d4,a4]@2 [d4,a4]@4 [d4,a4]@2 [d4,g4]@2 [d4,g4]@4 ~ [d4,g4]@2 [d4,f4]@2 [d4,f4]@4 ~@18]/2", // D5 G5 Dm
  H: "[~@8 a2@15 ~@9]/2", I: "[~@19 c#4@8 ~@21 c#4@4 ~@19 d3@2 d3@2 d3@17 ~@4, ~@27 d4@29 ~@4 d4@33 ~@3]/3",
  J: "[~@21 c#4@6 ~@4 [d3,d4,a4]@8 ~ [d4,a4]@2 [d4,a4]@2 [d4,a4]@4 [d4,a4]@2 [d4,g4]@2 [d4,g4]@4 [d4,g4]@2 [d4,f4]@2 [d4,f4]@4]/2", // D5 G5 Dm
  K: "~@13 [g#3,d4]!3", L: "[g#3,d4] ~@12 [g#3,d4]!3", M: "[g#3,d4] ~@15", N: "[~@31 e6@7 ~@20 e6@6]/2",
  O: "~@11 c5@3 ~ b4@7 e6@7 ~@3", P: "~@17 e6@7 ~@8", Q: "~@2 c5@3 b4@7 e6@7 ~@13",
  R: "[~@8 e6@7 ~@10 c5@3 b4@7 e6@7 ~@20 e6@7 ~@10 c5@3 ~ b4@7 e6@6]/3", S: "~@21 e6@7 ~@4",
  T: "~@6 c5@3 ~ b4@6 e6@7 ~@9",
})).s("gm_distortion_guitar").gain(0.16)

// chords · distortion guitar · "Guitar 1- Munky" · soft notes
const distortion_guitar_soft = note("<~@32 A@4 B ~ C D@3 ~@2 E@4 F@2 G@2 H@3 ~@18 I@4 J K L ~ M ~@21>".pickRestart({
  A: "[~@16 c#4@4 ~@12 c#4@2 c4@3 d4@15 ~@12, ~@3 d4@17 d4@17 ~@27]/4", B: "~@6 c4@6 ~@11 d3@2 ~@7", C: "~ d4@4 ~@11",
  D: "[~@21 d4@34 [c3,f3]@30 ~@11]/3", E: "[~@56 c#4@9 ~@23 c#4@4 ~ c4@6 d4@29, ~@31 d4@34 d4@34 ~@29]/4",
  F: "[~@31 c4@6 ~@11 d3@2 ~@14]/2", G: "[~@27 d4@8 ~@29]/2", H: "[~@7 d4@17 [c3,f3]@15 ~@9]/3",
  I: "[~@48 c#4@8 ~@23 c#4@4 c4@6 d4@29 ~@10, ~@23 d4@33 d4@33 ~@39]/4", J: "~@10 c4@3 ~@3", K: "~@5 d3@2 ~@25",
  L: "~@7 d4@4 ~@5", M: "~ d4@31",
})).s("gm_distortion_guitar").gain(0.1)

// bass · acoustic bass · "Bass 1- Fieldy"
const bass = note(`<
  ~@6 A@2 B ~@3 C@4 ~@4 D@3 E F@4 G@4 H@3 I J@2 K L@8 M@7 N O@4 P@3 Q@3 R@7 ~ S@8 T U V@3 W V@3 X ~@12
>`.pickRestart({
  A: "[a0@3 a1@3 d#1@4 c#1@22]/2", B: "a0@5 ~@27", C: "[~@7 d1@24 ~]/2", D: "a0 b0@2 a0 c1@2 a0 b0@2 a0 c1@2 d#1@4",
  E: "a0 b0@2 a0 c1@2 a0 b0@2 a0 c1@2 d#1!4",
  F: "[~@3 a0 b0@2 a0 c1@2 a0 b0@2 a0 c1@2 d#1@4 a0 b0@2 a0 c1@2 a0 b0@2 a0 c1@2 d#1@4 a0 b0@2 a0 c1@2 a0 b0@2 a0 c1@2 d#1@4 a0 b0@2 a0 c1@2 a0 b0@2 a0 c1@2 d#1]/4",
  G: "[d#1!3 a0!4 c1@2 a0 b0@2 a0 c1@2 d#1@4 a0 b0@2 a0 c1@2 a0 b0@2 a0 c1@2 d#1@4 a0 b0@2 a0 c1@2 a0 b0@2 a0 c1@2 d#1@4 a0 b0@2 a0 c1@2 a0 b0@2 a0 c1@2 d#1]/4",
  H: "[d#1@2 d#1@2 d#1@2 d1@15 d1@4 d1@2 d1@11 d1@2 d#1@15 d#1@4 d#1@2 ~ d#1@10 d#1@2 d1@15 d1@4 ~ d1@2]/3",
  I: "d1@10 d1@2 ~ d#1@15 d#1@4", J: "[d#1@2 d#1@11 d#1@2 d1@15 d1@4 d1@2 d1@11 d1@2 d#1@15]/2",
  K: "d#1@4 d#1@2 d#1@11 d#1@2 d1@13",
  L: "[~@2 d1@4 d1@2 d1@11 d1@2 d#1@15 d#1@2 d#1@13 d#1@3 ~ d1@8 d1@2 d#1@2 d1@2 d1@2 ~@3 d1@2 d1@2 d1@2 d#1@2 ~@4 d1@7 d1@2 d#1@2 d1@2 d1@2 ~@3 d1@2 d1@2 d1@2 d#1@2 d#1@3 ~ d1@7 d1@2 d#1@2 d1@2 d1@2 ~@3 d1@2 d1@2 d1@2 d#1@2 ~@4 d1@7 d1@2 d#1@2 d1@2 d1@2 ~@3 d1@2 d1@2 d1@2 d#1@2 ~@19 d1@15 d1@4 d1@2 d1@11 d1@2 d#1@15 d#1@4 d#1@2 d#1@10]/8",
  M: "[~ d#1@2 d1@15 d1@4 d1@2 ~ d1@10 d1@2 d#1@15 d#1@4 ~ d#1@2 d#1@10 d#1@2 ~ d1@14 d1@4 ~ d1@2 d1@11 d1@2 d#1@15 d#1@4 d#1@2 d#1@11 d#1@2 d1@15 d1@4 d1@2 d1@11 d1@2 d#1@15 d#1@2 d#1@13 d#1@3 d1@8 ~ d1@2 d#1@2 d1 d1@2 ~]/7",
  N: "~@3 d1@2 d1@2 d1@2 d#1@2 g#1@3 d1@8 d1@2 d#1@2 d1@2 d1@2 ~@2",
  O: "[~ d1@2 d1@2 d1@2 d#1@2 d#1@3 d1@8 d1@2 d#1@2 d1@2 d1@2 ~@3 d1@2 d1@2 d1@2 d#1@2 g#1@3 ~ d1@7 d1@2 d#1@2 d1@2 d1@2 ~@3 d1@2 d1@2 d1@2 d#1@2 g#1@19 a0@2 b0@3 a0@2 c1@4 a0@2 b0@4 ~ c1@4 d#1@2 d#1@2 d#1@2 d#1@2 a0@2 b0@3 a0@2 c1@3, ~@105 a0@2 ~@21]/4",
  P: "[~ a0@2 b0@4 a0@2 c1@3 d#1@2 d#1@2 d#1@2 d#1@2 a0@2 b0@3 a0@2 c1@4 a0@2 b0@4 a0@2 c1@3 d#1@2 d#1@2 d#1@2 d#1@2 a0@2 b0@4 ~ c1@4 a0@2 b0@4 a0@2 c1@3 d#1@2 d#1@2 d#1@2 d#1@2 a0@2 a0@2 a0@2 ~ c1@4 a0@2 b0@3, ~@28 a0 ~@14 a0 ~@4]/3",
  Q: "[~ a0@2 c1@4 d#1 d#1@2 d#1@2 d#1@2 a0@2 b0@4 a0@2 c1@3 a0@2 b0@4 a0@2 c1@4 d#1 d#1@2 d#1@2 d#1@2 a0@2 b0@4 a0@2 c1@3 a0@2 b0@4 a0@2 c1@4 d#1@2 d#1 d#1@2 d#1@2 a0@2 b0@4 a0@2 c1@3 a0@2 b0@4 a0@2 c1@3]/3",
  R: "[~ d#1@2 d#1@2 d#1 d#1@2 d1@202 ~@14]/7",
  S: "[~@23 d1@14 d1@4 d1@2 ~ d1@10 d1@2 d#1@15 d#1@4 d#1@2 d#1@10 ~@2 d1@15 d1@4 d1@2 d1@10 ~ d1@2 d#1@15 d#1@4 d#1@2 d#1@10 ~@2 d1@15 d1@4 d1@2 d1@10 ~ d1@2 d#1@14 d#1@4 ~ d#1@2 d#1@10 ~@2 d1@15 d1@4 d1@2 d1@10 ~ d1]/8",
  T: "~ d#1@8 d#1@8 d#1@8 ~ d#1@6", U: "~ a0 b0@2 a0 c1@2 a0 b0@2 a0 c1@2 d#1!3",
  V: "d#1 a0 b0@2 a0 c1@2 a0 b0@2 a0 c1@2 d#1!3", W: "d#1 a0!4 c1@2 a0 b0@2 a0 c1@2 d#1!3", X: "d#1 ~@15",
})).s("gm_acoustic_bass").gain(0.71)

// bass · acoustic bass · "Bass 2-Fieldy"
const bass_2 = note("<~@90 A B C@3 D@3 E@5>".pickRestart({
  A: "~@18 a2@5 d2@3 ~ d#2@5", B: "a#2@5 d#2@3 d2@5 a2@5 ~ d2@3 d#2@5 a#2@5",
  C: "[d#2@3 ~ d2@5 a2@5 d2@3 d#2@5 a#2@5 ~ d#2@3 d2@5 a2@5 d2@3 ~ d#2@5 a#2@5 d#2@3 d2@5 a2@5 ~ d2@3 d#2@5 a#2@5 d#2@3 ~ d2@5 a2@5]/3",
  D: "[d2@3 d#2@5 a#2@5 ~ d#2@3 d2@5 a2@5 d2@3 ~ d#2@5 a#2@5 d#2@3 d2@5 a2@5 ~ d2@3 d#2@5 a#2@5 d#2@3 ~ d2@5 a2@5 d2@3 d#2@5 a#2@5 ~]/3",
  E: "[d#2@3 d2@5 a2@5 d2@3 ~ d#2@5 a#2@5 d#2@3 d2@5 a2@5 ~ d2@3 d#2@5 a#2@5 d#2@3 ~ d2@5 a2@5 d2@3 d#2@5 ~ a#2@5 d#2@3 d2@5 a2@5 d2@3 ~ d#2@5 a#2@5 d#2@3 d2@5 ~ a2@5 d2@3 d#2@5 a#2@5 d#2@3 ~@21]/5",
})).s("gm_acoustic_bass").gain(0.8)

// other · distortion guitar · "Guitar 2-Head" · C#dim Ddim C#dim Ddim G#dim
const distortion_guitar_2 = note(`<
  ~@12
  [a1@2 [c#3,g3]@4 a1@2 [d3,g#3] ~@23]
  ~
  [a1@2 [c#3,g3]@4 a1@2 [d3,g#3] ~@23]
  ~
  [a1 b1@2 a1 c2@2 a1 b1@2 a1 c2@2 ~@4]!3
  [a1 b1@2 a1 c2@2 a1 b1@2 a1 c2@2 [g#3,d4]!4]
  ~@83
>`).s("gm_distortion_guitar").gain(0.4)

// chords · distortion guitar · "Guitar 3- Munky"
const distortion_guitar_3 = note(`<
  ~@20 A@4 B C@3 D C@3 E ~@7 F@5 ~@8 G H I@4 J@3 K@3 L ~@16 M N@3 O N@3 P ~@12
>`.pickRestart({
  A: "[a1,e2] [b1,f#2]@2 [a1,e2] [c2,g2]@2 [a1,e2] [b1,f#2]@2 [a1,e2] [c2,g2]@2 [d#2,a#2]!4", // A5 B5 A5 C5 A5 B5 A5 C5 …
  B: "~@3 [a1,e2] [b1,f#2]@2 [a1,e2] [c2,g2]@2 [a1,e2] [b1,f#2]@2 [a1,e2] [c2,g2]@2 [d#2,a#2]", // A5 B5 A5 C5 A5 B5 A5 C5 …
  C: "[d#2,a#2]!3 [a1,e2] [b1,f#2]@2 [a1,e2] [c2,g2]@2 [a1,e2] [b1,f#2]@2 [a1,e2] [c2,g2]@2 [d#2,a#2]", // D#5 A5 B5 A5 C5 A5 B5 A5 …
  D: "[d#2,a#2]!3 [a1,e2]!4 [c2,g2]@2 [a1,e2] [b1,f#2]@2 [a1,e2] [c2,g2]@2 [d#2,a#2]", E: "[d#2,a#2]!3 ~@13",
  F: "[~@23 [d2,a2]@4 ~@4 [d2,a2]@2 [d#2,a#2]@2 [d2,a2]@2 [d2,a2]@2 ~@3 [d2,a2]@2 [d2,a2]@2 [d2,a2]@2 [d#2,a#2]@2 [f#2,c#3]@3 ~@8 [d2,a2]@2 [d#2,a#2]@2 [d2,a2]@2 [d2,a2]@2 ~@3 [d2,a2]@2 [d2,a2]@2 [d2,a2]@2 [d#2,a#2]@2 [g#2,d#3]@3 ~@8 [d2,a2]@2 [d#2,a#2]@2 [d2,a2]@2 [d2,a2]@2 ~@3 [d2,a2]@2 [d2,a2]@2 [d2,a2]@2 [d#2,a#2]@2 [f#2,c#3]@3 ~@8 [d2,a2]@2 [d#2,a#2]@2 [d2,a2]@2 [d2,a2]@2 ~@3 [d2,a2]@2 [d2,a2]@2 [d2,a2]@2 [d#2,a#2]@2 [f#2,g#2]@19 ~]/5", // D5 D#5 D5 D#5 F#5 D5 D#5 D5 …
  G: "~@16 [d2,a2]@4 ~@4 [d2,a2]@2 [d#2,a#2]@2 [d2,a2] [d2,a2]@2 ~", // D5 D#5 D5
  H: "~@3 [d2,a2]@2 [d2,a2]@2 [d2,a2]@2 [d#2,a#2]@2 [f#2,c#3]@3 ~@8 [d2,a2]@2 [d#2,a#2]@2 [d2,a2]@2 [d2,a2]@2 ~@2", // D5 D#5 F#5 D5 D#5 D5
  I: "[~ [d2,a2]@2 [d2,a2]@2 [d2,a2]@2 [d#2,a#2]@2 [g#2,d#3]@3 ~@8 [d2,a2]@2 [d#2,a#2]@2 [d2,a2]@2 [d2,a2]@2 ~@3 [d2,a2]@2 [d2,a2]@2 [d2,a2]@2 [d#2,a#2]@2 [f#2,c#3]@3 ~@8 [d2,a2]@2 [d#2,a#2]@2 [d2,a2]@2 [d2,a2]@2 ~@3 [d2,a2]@2 [d2,a2]@2 [d2,a2]@2 [d#2,a#2]@2 [f#2,g#2]@19 [a1,e2]@2 [b1,f#2]@3 [a1,e2]@2 [c2,g2]@4 [a1,e2]@2 [b1,f#2]@4 ~ [c2,g2]@4 [d#2,a#2]@2 [d#2,a#2]@2 [d#2,a#2]@2 [d#2,a#2]@2 [a1,e2]@2 [b1,f#2]@3 [a1,e2]@2 [c2,g2]@3, ~@105 [a1,e2]@2 ~@21]/4", // D5 D#5 G#5 D5 D#5 D5 D#5 F#5 …
  J: "[~ [a1,e2]@2 [b1,f#2]@4 [a1,e2]@2 [c2,g2]@3 [d#2,a#2]@2 [d#2,a#2]@2 [d#2,a#2]@2 [d#2,a#2]@2 [a1,e2]@2 [b1,f#2]@3 [a1,e2]@2 [c2,g2]@4 [a1,e2]@2 [b1,f#2]@4 [a1,e2]@2 [c2,g2]@3 [d#2,a#2]@2 [d#2,a#2]@2 [d#2,a#2]@2 [d#2,a#2]@2 [a1,e2]@2 [b1,f#2]@4 ~ [c2,g2]@4 [a1,e2]@2 [b1,f#2]@4 [a1,e2]@2 [c2,g2]@3 [d#2,a#2]@2 [d#2,a#2]@2 [d#2,a#2]@2 [d#2,a#2]@2 [a1,e2]@2 [a1,e2]@2 [a1,e2]@2 ~ [c2,g2]@4 [a1,e2]@2 [b1,f#2]@3, ~@28 [a1,e2] ~@14 [a1,e2] ~@4]/3", // A5 B5 A5 C5 D#5 A5 B5 A5 …
  K: "[~ [a1,e2]@2 [c2,g2]@4 [d#2,a#2] [d#2,a#2]@2 [d#2,a#2]@2 [d#2,a#2]@2 [a1,e2]@2 [b1,f#2]@4 [a1,e2]@2 [c2,g2]@3 [a1,e2]@2 [b1,f#2]@4 [a1,e2]@2 [c2,g2]@4 [d#2,a#2] [d#2,a#2]@2 [d#2,a#2]@2 [d#2,a#2]@2 [a1,e2]@2 [b1,f#2]@4 [a1,e2]@2 [c2,g2]@3 [a1,e2]@2 [b1,f#2]@4 [a1,e2]@2 [c2,g2]@4 [d#2,a#2]@2 [d#2,a#2] [d#2,a#2]@2 [d#2,a#2]@2 [a1,e2]@2 [b1,f#2]@4 [a1,e2]@2 [c2,g2]@3 [a1,e2]@2 [b1,f#2]@4 [a1,e2]@2 [c2,g2]@3]/3", // A5 C5 D#5 A5 B5 A5 C5 A5 …
  L: "~ [d#2,a#2]@2 [d#2,a#2]@2 [d#2,a#2] [d#2,a#2]@2 ~@24", // D#5
  M: "~ [a1,e2] [b1,f#2]@2 [a1,e2] [c2,g2]@2 [a1,e2] [b1,f#2]@2 [a1,e2] [c2,g2]@2 [d#2,a#2]!3", // A5 B5 A5 C5 A5 B5 A5 C5 …
  N: "[d#2,a#2] [a1,e2] [b1,f#2]@2 [a1,e2] [c2,g2]@2 [a1,e2] [b1,f#2]@2 [a1,e2] [c2,g2]@2 [d#2,a#2]!3", // D#5 A5 B5 A5 C5 A5 B5 A5 …
  O: "[d#2,a#2] [a1,e2]!4 [c2,g2]@2 [a1,e2] [b1,f#2]@2 [a1,e2] [c2,g2]@2 [d#2,a#2]!3", P: "[d#2,a#2] ~@15",
})).s("gm_distortion_guitar").gain(0.4).pan(0)

// chords · distortion guitar · "Guitar 3- Munky" · soft notes
const distortion_guitar_soft_2 = note("<~@32 A@5 B@4 ~@3 C@2 D@8 ~@11 E F G@2 H@2 I@2 J@8 K L ~@20>".pickRestart({
  A: "[~@6 [d2,a2,d3]@34 [d#2,a2,d3]@34 [f2,a2]@34 ~ [d#2,a#2,d#3,a3,d4]@34 a2@17]/5", // D5 D F D#maj7
  B: "[~@17 [d#2,a#2,d#3,a3,d4]@34 a2@34 [d#2,a#2,d#3,a3,d4]@17 [a3,d4,e4]@17 ~@9]/4", C: "[~@31 [d2,a2,d3]@33]/2",
  D: "[~ [d#2,a2,d3]@34 [d2,a2]@34 [d#2,a#2,d#3,a3,d4]@34 ~ [d2,a2]@34 [d#2,a#2,d#3,a3,d4]@34 [d2,a2]@34 [d#2,a#2,d#3,a3,d4]@17 [a3,d4,e4]@17 ~@16]/8", // D D5 D#maj7 D5 D#maj7 D5 D#maj7 Asus4
  E: "~ [d2,a2,f3]@3", F: "~ [c3,g#3,d4,g4]@4 ~@11", G: "[~@3 [g#3,d4]@8 ~ [d2,a2,f3]@25 [c3,g#3,d4]@8 ~@19]/2",
  H: "[~@7 [g#3,d4,g4]@8 [d2,a2,f3,g3,d4]@25 ~ [g#3,d4,g4]@8 ~@15]/2", // G Dm G
  I: "[~@11 [g#3,d4,g4]@8 [d2,a2,f3,g3,d4]@25 [g#3,d4,g4]@8 ~@12]/2", // G Dm G
  J: "[~@14 [g#3,d4,g4]@8 ~ [d2,a2,d3,a3,d4]@33 [d#2,a#2,d#3,a3,d4]@33 [d2,a2,d3,a3,d4]@33 ~ [d#2,a#2,d#3,a3,d4]@33 [d2,a2,d3]@33 ~ [d#2,a#2,d#3,a3,d4]@33 [d2,a2,d3,a3,d4]@33]/8", // G D5 D#maj7 D5 D#maj7 D5 D#maj7 D5
  K: "~ [a2,c3]@4 ~@4 [a2,c3]@4 ~@4 [a2,c3]@4 [a2,c3]@4 ~ [d#2,a#2]@2 [d#2,a#2]@2 [d#2,a#2]@2", L: "[d#2,a#2] ~@15",
})).s("gm_distortion_guitar").gain(0.24).pan(0)

// drums · kick
const kick = s("bd").struct(`<
  ~@12 A ~ A ~@4 B C D E F G@3 H G@3 I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ ~@7 AR AS AT AU AV AW AX W AY AZ BA BB BC BB@3 BD ~@3 BE BF BG BH BI BJ BK BL BM BN
>`.pickRestart({
  A: "~@7 x ~@8", B: "~@22 x!2 ~@8", C: "x!2 ~ x ~@2 x!2 ~ x!2 ~@5", D: "x ~ x ~@3 x ~@5 x ~ x ~@3 x ~@3 x!2 ~@8",
  E: "x ~ x ~@3 x!2 ~@10 x ~ x ~@5 x ~ x ~@3", F: "x!2 ~ x ~@2 x!2 ~ x ~ x ~@4", G: "~@3 x!2 ~ x ~@2 x!2 ~ x!2 ~@2",
  H: "~@6 x ~ x ~@3 x!2 ~@6 x ~ x ~@5 x!2 ~@2", I: "~@4 x!2 ~@6 x!2 ~@6 x ~ x ~@5 x!2 ~@2",
  J: "~@6 x ~@14 x ~@3 x ~ x ~@4", K: "~@6 x ~ x ~@14 x ~@3 x ~@2 x ~", L: "~@8 x ~ x ~@14 x ~@4 x ~",
  M: "x ~@9 x ~@2 x ~@14 x ~@3", N: "x ~ x ~@10 x ~ x ~@14 x ~", O: "~@2 x ~ x ~@10 x ~ x ~@14",
  P: "x ~@3 x ~ x ~@10 x ~ x ~@12", Q: "~@2 x ~@3 x ~ x ~@10 x ~ x ~@6 x!2 ~@2", R: "~@4 x ~ x ~@6 x!2 ~@8 x ~@8",
  S: "~@5 x!2 ~@4 x ~@4", T: "~@4 x!2 ~@4 x ~@5", U: "~@3 x!2 ~@4 x ~@6", V: "~@4 x ~ x ~@5 x ~@18 x",
  W: "~@14 x ~@3 x ~ x ~@10 x", X: "~ x ~@14 x ~@3 x ~ x ~@9", Y: "~ x ~ x ~@14 x ~@3 x ~@2 x ~@6",
  Z: "~@3 x ~ x ~@14 x ~@4 x ~ x ~@4", AA: "~@5 x ~@2 x ~@13 x ~@4 x ~ x ~@2", AB: "~@8 x ~ x ~@14 x ~@3 x ~ x",
  AC: "~@10 x ~ x ~@14 x ~@3 x", AD: "~ x ~@10 x ~ x ~@5 x ~ x ~@6 x ~ x", AE: "~@6 x!2 ~@8 x ~@15",
  AF: "~@3 x ~ x ~@8 x ~@17", AG: "~ x ~ x ~@8 x ~@18 x", AH: "~ x ~@9 x ~@17 x ~ x", AI: "~@5 x ~@18 x ~ x ~@2 x ~@2",
  AJ: "~@3 x ~ x ~@3 x!2 ~@11 x ~ x ~@2 x ~@4", AK: "~ x ~ x ~@3 x ~@2 x!2 ~@8 x ~ x ~@2 x!2 ~@5",
  AL: "~@5 x ~ x ~@4 x ~ x ~@3 x ~ x ~@3 x ~@4 x ~ x", AM: "~@3 x ~@3 x ~@8 x ~ x ~@3 x!2 ~@3 x ~ x ~@2",
  AN: "~ x ~ x ~@10 x ~ x ~@3 x ~@4 x ~ x ~@3 x", AO: "~ x ~@10 x ~ x ~@3 x ~@4 x ~ x ~@3 x ~ x",
  AP: "~@10 x ~ x ~@3 x!2 ~@5 x ~ x ~@5 x", AQ: "x!2 ~@2", AR: "~@10 x ~@3 x ~@3 x ~@4 x ~@8",
  AS: "~@5 x ~@3 x ~@2 x ~@9 x ~ x ~@7", AT: "~@7 x ~@3 x ~ x ~@7 x ~@3 x ~@6", AU: "~@8 x ~@3 x ~ x ~@10 x ~ x ~@4",
  AV: "~@5 x ~ x!2 ~ x ~ x ~ x ~", AW: "~@11 x ~@3 x ~ x ~@10 x ~ x ~", AX: "~@12 x ~@4 x ~ x ~@3 x ~@3 x ~@3 x",
  AY: "x ~@6 x!2 ~@8 x ~@3 x ~@10", AZ: "~ x!2 ~ x ~@2 x!2 ~ x!2 ~@4", BA: "~ x!2 ~ x ~@2 x!2 ~@7",
  BB: "~@2 x ~ x ~@3 x!2 ~@4 x ~ x ~@3 x ~ x ~@9", BC: "~@2 x ~ x ~@3 x ~@7 x ~ x ~@5 x!2 ~@6",
  BD: "~@2 x ~ x ~@3 x!2 ~@6 x ~ x ~@5 x!2 ~@6", BE: "~@13 x ~@2", BF: "~@5 x ~@5 x ~@10 x ~@9",
  BG: "x ~@6 x ~@9 x ~@9 x ~@4", BH: "~@12 x ~@10 x ~@8", BI: "~@3 x ~@4 x ~@9 x ~@6 x ~@6",
  BJ: "~@3 x ~@9 x ~@6 x ~@9 x ~", BK: "~@9 x ~@5 x ~@10 x ~@5", BL: "~@4 x ~@11 x ~ x ~@2 x ~@9 x",
  BM: "~@16 x ~@10 x ~@4", BN: "~ x ~@30",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  ~@19 A B C B D E F G H I F G J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR
  ~@7 AA AB L M AD AS AT AU AV AW AX AY AZ AW BA AY BB BC ~@2 BD BE BF BG BH BI BJ BK BL BM
>`.pickRestart({
  A: "~@12 x!4", B: "~@4 x ~@7 x ~@2 x", C: "~@8 x ~@15 x ~ x!6", D: "~@4 x ~@7 x!4", E: "~@7 x ~@7 x",
  F: "~@2 x ~@4 x ~@7 x", G: "~ x ~@5 x ~@7 x", H: "~@2 x ~@4 x ~ x ~@2 x ~@2 x", I: "x ~ x ~@4 x ~@7 x",
  J: "~@3 x!2 ~@2 x ~ x ~@2 x ~@2 x", K: "x ~@14 x ~@16", L: "x ~@16 x ~@14", M: "~@2 x ~@16 x ~@12",
  N: "~@4 x ~@16 x ~@10", O: "~@6 x ~@16 x ~@8", P: "~@8 x ~@16 x ~@6", Q: "~@11 x ~@16 x ~@3", R: "~@13 x ~@16 x ~",
  S: "~@2 x ~@6 x ~@5 x ~@3 x ~ x ~@9 x", T: "~ x ~@3 x ~@2 x ~@5 x ~ x ~@12 x ~ x",
  U: "~@3 x ~@2 x ~@5 x ~ x ~@12 x ~ x ~@2", V: "~ x ~@3 x ~@4 x ~ x ~@12 x ~ x ~@3 x", W: "~@3 x ~@4 x ~ x ~@21",
  X: "~@7 x ~@16 x ~@7", Y: "~@10 x ~@16 x ~@4", Z: "~@12 x ~@16 x ~@2", AA: "~@14 x ~@16 x", AB: "~ x",
  AC: "~ x ~@16 x ~@13", AD: "~@3 x ~@16 x ~@11", AE: "~@6 x ~@16 x ~@2 x!2 ~@4",
  AF: "~ x ~@6 x ~@2 x!2 ~ x ~@9 x ~ x ~@2 x ~@2", AG: "~ x ~@5 x ~ x ~@12 x ~ x ~@3 x ~@2 x",
  AH: "~@5 x ~ x ~@12 x ~ x ~@3 x ~@2 x ~@2", AI: "~@3 x ~ x ~@12 x ~ x ~@3 x ~@2 x ~@4", AJ: "~ x ~ x ~@27 x",
  AK: "~@14 x ~@5 x ~@8 x ~@2", AL: "~@12 x ~ x!6 ~@7 x ~@4", AM: "~@10 x ~@5 x ~@8 x ~@6",
  AN: "~@8 x ~ x ~ x ~ x ~@8 x ~@8", AO: "~@7 x ~@4 x ~@9 x ~@9", AP: "~@5 x ~@2 x ~@11 x ~@11",
  AQ: "~@3 x ~@4 x ~@9 x ~@2 x ~@5 x ~@4", AR: "~ x ~ x ~ x!2 ~@25", AS: "~@5 x ~@15 x ~@10", AT: "~@6 x ~@15 x!2 ~@8",
  AU: "~ x ~ x", AV: "~ x ~@7 x ~@7 x ~@3 x ~@4 x ~ x ~ x ~", AW: "x ~@4 x ~@7 x ~@2", AX: "x ~@9 x ~@9 x!6 ~@6",
  AY: "~@5 x ~@7 x ~@2", AZ: "x ~@4 x ~ x ~@2 x ~@2 x!2 ~", BA: "x ~@4 x ~@7 x ~ x", BB: "x ~@4 x ~ x ~@2 x ~@2 x!3",
  BC: "x", BD: "~@19 x ~@11 x", BE: "~@15 x ~@11 x ~@4", BF: "~@5 x ~@5 x ~@4", BG: "~@5 x ~@11 x ~@14",
  BH: "~ x ~@11 x ~@2 x ~@11 x ~@3", BI: "~ x ~@6 x ~@15 x ~@7", BJ: "~@3 x ~@15 x ~@11 x", BK: "~@7 x ~@5 x ~@2",
  BL: "~@10 x ~@11 x ~@2 x ~@6", BM: "~@5 x ~@26",
})).gain(0.64)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@94 A B ~ C ~ D E F G>".pickRestart({
  A: "~@15 x", B: "~@2 x ~@2 x ~@13 x ~@6 x ~@5", C: "~@6 x!2 ~ x ~@10 x ~@2 x ~@8", D: "~@7 x ~@2 x ~@3 x ~@12 x ~@4",
  E: "~ x ~@14", F: "~@15 x!2 ~ x ~@9 x ~@3", G: "x",
})).gain(0.29)

// drums · low tom
const low_tom = s("lt").struct("<~@32 A ~@3 B ~@12 C ~@25 D ~ E ~ F ~ G ~ H I ~@18>".pickRestart({
  A: "~@2 x!4 ~@26", B: "~@23 x ~@8", C: "~ x", D: "~@21 x ~@10", E: "~@3 x", F: "~@27 x ~@4",
  G: "~ x ~@7 x ~@7 x ~@3 x ~@10", H: "~@30 x!2", I: "x!2 ~@30",
})).gain(0.57)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@32 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 Z ~@35 AA AB AC AD AE AF AG AH AI Z
>`.pickRestart({
  A: "~@15 x ~@3 x ~@3 x ~@3 x ~@4", B: "x ~@7 x ~@3 x ~@4 x ~@3 x ~@3 x ~@4 x ~",
  C: "~@2 x ~@7 x ~@4 x ~@3 x ~@3 x ~@3 x ~@4", D: "x ~@3 x ~@8 x ~@3 x ~@3 x ~@3 x ~@4 x ~",
  E: "~@2 x ~@3 x ~@12 x ~@8 x ~@3", F: "x ~@3 x ~@3 x ~@8 x ~@3 x ~@3 x ~@4 x ~",
  G: "~@2 x ~@3 x ~@4 x ~@7 x ~@3 x ~@4 x ~@3", H: "x ~@3 x ~@3 x ~@4 x ~@7 x ~@4 x ~@3 x ~",
  I: "~@6 x ~@4 x ~@3 x ~@7 x ~@3 x ~@3 x", J: "~@3 x ~@2 x ~@3 x ~@3 x ~@7 x ~@2 x ~@3 x ~@2",
  K: "~ x ~@3 x ~@2 x ~@3 x ~@7 x ~@2 x ~@3 x ~@3 x", L: "~@3 x ~@2 x ~@3 x ~@7 x ~@2 x ~@3 x ~@3 x ~@2",
  M: "~ x ~@2 x ~@3 x ~@23", N: "~@7 x ~@4 x ~@3 x ~@3 x ~@3 x ~@7", O: "~ x ~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@4 x ~@4",
  P: "~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~@4 x ~@3 x ~@2", Q: "~@5 x ~@4 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x",
  R: "~@12 x ~@7 x ~@4 x ~@3 x ~@2", S: "~ x ~@8 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x",
  T: "~@3 x ~@8 x ~@3 x ~@3 x ~@4 x ~@3 x ~@2", U: "~ x ~@4 x ~@7 x ~@3 x ~@4 x ~@7 x",
  V: "~@3 x ~@4 x ~@7 x ~@3 x ~@3 x ~@3 x ~@2 x", W: "~@3 x ~@3 x ~@6 x ~@3 x ~@3 x ~@3 x ~@2 x ~@2",
  X: "~ x ~@3 x ~@6 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x", Y: "~@3 x ~@7 x ~@2 x ~@3 x ~@3 x ~@3 x ~@2 x ~@2", Z: "~ x ~@30",
  AA: "~@13 x ~ x", AB: "~ x ~@3 x ~@2 x ~@2 x ~@3 x ~@6 x ~@2 x ~@2 x ~@3",
  AC: "x ~@2 x ~@6 x ~@6 x ~@2 x ~@3 x ~@6 x", AD: "~@2 x ~@9 x ~@3 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2",
  AE: "~ x ~@6 x ~@2 x ~@3 x ~@2 x ~@2 x ~@3 x ~@2 x ~@3", AF: "~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~@5 x ~",
// … 67 more lines

More by Korn