Strudelify
Sludge Factory cover art

1995 · Alice In Chains

Sludge Factory

Alice in Chains

KeyC♯ minorTempo120 bpm
0:00/0:00
// Sludge Factory — Alice in Chains
// 120 bpm, 4/4, key C# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 124 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 28.
setcpm(120/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
const distortion_guitar = note(`<
  ~ A@3 B@3 C@3 D@5 E@6 F@5 G@3 H@5 I@6 J@5 K L@3 M@3 N O@2 P Q@3 R@5 S@3 T@3 U@5 V@6 W@3 X@6 Y Z AA@2 AB@2 AC@2 AD@6
  AE@3 AF@2 AG@2 AH@5 AI@3 AJ@5
>`.pickRestart({
  A: "[~@7 [d2,a2]@3 ~@3 [e2,b2]@4 ~@6 [c#2,g#2]@66 ~@7]/3", // D5 E5 C#5
  B: "[[d2,a2]@3 ~@3 [e2,b2]@4 ~@8 g#2@69 ~@3 [d2,a2]@4 ~@2, ~@17 c#2@68 ~@11]/3", // D5 E5 D5
  C: "[[e2,b2]@5 ~@7 [c#2,g#2]@68 ~@4 a2@4 ~@2 [e2,b2]@5 ~, ~@83 d2@4 ~@9]/3", // E5 C#5 E5
  D: "[~@5 [c#2,g#2]@67 ~@4 [d2,a2]@3 ~@3 [e2,b2]@4 ~@6 [c#2,g#2]@68]/5", // C#5 D5 E5 C#5
  E: "[~@4 [d2,a2]@3 ~@2 [e2,b2]@5 ~@5 [c#2,g#2]@66 ~@4 a2@3 ~@2 [e2,b2]@4 ~@6 [c#2,g#2]@71 ~@2 [d2,a2]@3 ~@3 [e2,b2]@5 ~@4, ~@88 d2@3 ~@101]/6", // D5 E5 C#5 E5 C#5 D5 E5
  F: "[~@2 [c#2,g#2]@64 ~@4 [d2,a2]@4 ~@2 [e2,b2]@4 ~@6 [c#2,g#2]@69 ~@3 [d2,a2]@2]/5", // C#5 D5 E5 C#5 D5
  G: "[~@3 [e2,b2]@7 ~@3 [c#2,g#2]@67 ~@4 [d2,a2]@4 ~ [e2,b2]@7]/3", // E5 C#5 D5 E5
  H: "[~@10 g#2@62 ~@4 a2@4 ~ [e2,b2]@5 ~@5 g#2@69, ~@4 c#2@67 ~@4 d2@4 ~@11 c#2@69 ~]/5", // E5
  I: "[~@4 [d2,a2]@4 ~@3 b2@5 ~@6 [c#2,g#2]@70 ~@3 d2@3 ~@2 [e2,b2]@5 ~@5 [c#2,g#2]@69 ~@3 a2@3 ~ [e2,b2]@4 ~@2, ~@10 e2@4 ~@80 a2@3 ~@84 d2@3 ~@8]/6", // D5 C#5 E5 C#5 E5
  J: "[~@4 [c#2,g#2]@67 ~@3 [d2,a2]@3 ~@3 b2@4 ~@5 [c#2,g#2]@67 ~@4, ~@79 e2@5 ~@76]/5", // C#5 D5 C#5
  K: "~ [d2,a2]@3 ~@3 [e2,b2]@5 ~@4 [g#2,d#3]@7 ~@2 [g#2,d#3]@6 ~", // D5 E5 G#5
  L: "[~ [g#2,d#3]@4 ~@2 d#3 ~ [g#2,d#3]@2 ~@2 [g#2,d#3]@4 ~@2 c#3@2 ~@3 [f#2,c#3]@3 ~@2 [e2,b2]@43 ~@4 [g#2,d#3]@4 ~ [g#2,d#3]@2 ~ [g#2,d#3]@2 ~ [g#2,d#3]@5 ~@2 [g#2,d#3]@2, ~@6 g#2@2 ~@10 g2@3 ~@75]/3", // G#5 F#5 E5 G#5
  M: "[~ [g#2,d#3] ~@2 d#3@4 ~ [g2,d3]@3 ~@2 [f#2,c#3]@2 ~@4 e2@7 e2@2 ~ e2@4 ~@2 e2@5 ~ b2 ~ b2@3 ~@3 b2@2 ~ b2@3 ~ [e2,b2]@4 ~@2 [e2,b2]@3 ~@3 [g#2,d#3]@10 ~ [g#2,d#3]@4 ~ [g#2,d#3]@2 ~ d#3@2 ~ d#3@3 ~@2, ~@3 g#2@4 ~@13 b2@15 b2@5 ~ e2@15 ~@31 g#2@2 ~ g#2@3 ~@3]/3", // G#5 G5 F#5 E5 G#5
  N: "~ [g2,d3]@2 ~@2 [f#2,c#3]@3 ~@3 b2@7 b2 ~@2 b2 ~@4 b2@5 ~, ~@10 e2@7 ~ e2@13 ~", // G5 F#5
  O: "[[e2,b2]@2 ~ e2@4 ~ [e2,b2]@6 ~@2 [e2,b2]@10 ~@2 [g#2,d#3]@9 ~@2 [g#2,d#3]@4 ~ [g#2,d#3]@2 [g#2,d#3]@2 ~@2 d#3@3 ~@2 [g2,d3]@3 ~@2 [f#2,c#3]@4, ~@2 b2@4 ~@43 g#2@3 ~@12]/2", // E5 G#5 G5 F#5
  P: "~@2 [e2,b2]@6 ~ [e2,b2]@5 ~@3 [e2,b2]@2 ~ [e2,b2]@5 ~@2 [d2,a2]@3 ~@2", // E5 D5
  Q: "[~ [e2,b2]@4 ~@6 [c#2,g#2]@68 ~@3 [d2,a2]@5 ~ [e2,b2]@4 ~@4]/3", // E5 C#5 D5 E5
  R: "[~@2 g#2@67 ~@5 [d2,a2]@3 ~@6 [e2,b2]@2 ~@4 [c#2,g#2]@69 ~@2, ~ c#2@67 ~@92]/5", // D5 E5 C#5
  S: "[~@3 [d2,a2]@5 ~ b2@4 ~@5 [c#2,g#2]@69 ~@5 [d2,a2]@2 ~@2, ~@2 e2 ~@21]/3", // D5 C#5 D5
  T: "[~ [e2,b2]@3 ~@8 [c#2,g#2]@69 ~@4 [d2,a2]@3 ~@3 [e2,b2]@5]/3", // E5 C#5 D5 E5
  U: "[~@5 [c#2,g#2]@69 ~@3 [d2,a2]@3 ~@2 [e2,b2]@4 ~@5 [c#2,g#2]@68 ~]/5", // C#5 D5 E5 C#5
  V: "[~@3 [d2,a2]@3 ~@2 [e2,b2]@5 ~@6 [c#2,g#2]@68 ~@2 [d2,a2]@3 ~@3 [e2,b2]@4 ~@8 [c#2,g#2]@76 ~@3 [d2,a2]@3 ~@2 [e2,b2]]/6", // D5 E5 C#5 D5 E5 C#5 D5 E5
  W: "[~@10 [c#2,g#2]@68 ~@3 [d2,a2]@3 ~@2 [e2,b2]@5 ~@5]/3", // C#5 D5 E5
  X: "[~@2 g#2@65 ~@3 [d2,a2]@3 ~@2 [e2,b2]@4 ~@6 [c#2,g#2]@65 ~@4 [d2,a2]@3 ~@2 [e2,b2]@4 ~@5 [g#2,d#3]@6 ~@2 [g#2,d#3]@2 ~ d#3@3 ~@2 [g#2,d#3]@4 ~@2 [g#2,d#3]@2, c#2@66 ~@112 g#2@3 ~@11]/6", // D5 E5 C#5 D5 E5 G#5
  Y: "~ g#2 ~ [g#2,d#3]@4 ~@2 [g2,d3]@3 ~@2 [f#2,c#3]@3 ~@3 b2@12, d#3@2 ~@17 e2@13, ~@10 c3 ~@5", // G#5 G5 F#5
  Z: "~@3 b2@26 ~@3, ~ e2@13 ~@2",
  AA: "[~@3 [g#2,d#3]@8 ~@4 d#3@4 ~ [g#2,d#3]@2 ~ d#3@2 [g#2,d#3]@3 ~@3 [g2,d3]@3 ~@3 f#2@2 ~@3 [e2,b2]@7 ~ e2 ~ e2@4 ~@2 [e2,b2]@5 ~, ~@14 g#2@4 ~@4 g#2@2 ~@12 c#3@2 ~@12 b2@7 ~@7]/2", // G#5 G5 E5
  AB: "[[e2,b2]@7 ~ [e2,b2]@8 [e2,b2]@6 ~@2 e2@3 ~@3 [g#2,d#3]@10 ~ [g#2,d#3]@5 ~ [g#2,d#3]@2 [g#2,d#3]@3 ~ d#3@3 ~@3 [g2,d3]@3 ~@2, ~@23 b2@4 ~@25 g#2@4 ~@8]/2", // E5 G#5 G5
  AC: "[~ [f#2,c#3]@2 ~@3 b2@15 [e2,b2]@5 ~ e2@2 ~ e2@11 ~ e2@5 ~ e2@4 ~@3 [g#2,d#3]@9, ~@5 e2@15 ~@6 b2@15 ~ b2@10 ~@12]/2", // F#5 E5 G#5
  AD: "[~@2 [g#2,d#3]@4 ~ [g#2,d#3]@2 ~ d#3@2 [g#2,d#3]@3 ~@3 [g2,d3]@3 ~@2 [f#2,c#3]@3 ~@3 [e2,b2]@16 ~@4 b2@10 ~@3 b2@3 ~@4 [e2,b2]@3 ~@4 [g#2,d#3]@8 ~@4 [g#2,d#3]@3 ~ [g#2,d#3]@2 ~ d#3@2 ~ [g#2,d#3]@3 ~@3 [g2,d3]@3 ~@2 [f#2,c#3]@2 ~@4 [e2,b2]@46 ~@4 [g#2,d#3]@5 ~ [g#2,d#3]@5 ~ [g#2,d#3]@4 ~ [g#2,d#3]@2 ~ [g#2,d#3]@2 ~ [g#2,d#3]@4, ~@9 g#2@2 ~@37 e2@11 ~@2 e2@5 ~@28 g#2@3 ~@95]/6", // G#5 G5 F#5 E5 G#5 G5 F#5 E5 …
  AE: "[~@2 [g2,d3]@2 ~@4 f#2@2 ~@3 e2@43 ~@4 [g#2,d#3]@11 ~ d#3@4 ~ d#3 ~ [g#2,d#3]@2 [g#2,d#3]@3 ~@3 [g2,d3]@3 ~@2 [f#2,c#3]@2 ~@2, ~@7 c#3@2 ~@3 b2@44 ~@15 g#2@4 ~ g#2@2 ~@18]/3", // G5 G#5 G5 F#5
  AF: "[~ [e2,b2]@45 ~@3 [g#2,d#3]@9 ~@2 [g#2,d#3]@3 ~]/2", // E5 G#5
  AG: "[~ [g#2,d#3] ~ [g#2,d#3]@2 ~ [g#2,d#3]@3 ~@3 g2@3 ~@2 [f#2,c#3]@2 ~@4 b2@6 ~ b2@2 ~ b2@3 ~@3 b2@2 b2@2 ~ b2@2 ~@3 [d2,a2]@3 ~@3 [e2,b2]@4 ~@5, ~@22 e2@6 ~@2 e2@7 ~ e2@2 ~ e2@5 ~@18]/2", // G#5 F#5 D5 E5
  AH: "[~@3 [c#2,g#2]@62 ~@4 [d2,a2]@3 ~@2 [e2,b2]@5 ~@4 [c#2,g#2]@69 ~@3 a2@2 ~@3, ~@77 d2 ~@2]/5", // C#5 D5 E5 C#5
  AI: "[[e2,b2]@3 ~@6 [c#2,g#2]@70 ~@4 [d2,a2]@3 ~@3 b2@3 ~@4, ~@88 e2@3 ~@5]/3", // E5 C#5 D5
  AJ: "[~@3 g#2@67 ~@5 [d2,a2]@3 ~@3 [e2,b2]@4 ~@8 [c#2,g#2]@51 ~@16, ~@2 c#2@67 ~@91]/5", // D5 E5 C#5
})).s("gm_distortion_guitar").gain(0.51)

// bass · electric bass finger
const bass = note(`<
  ~ A@3 B@3 C@3 D@8 E@3 F@8 G@5 H@6 I@5 J K@3 L@4 M@2 N O@3 P@5 Q@3 R@3 S@5 T@6 U@3 V@5 W X@6 Y@5 Z@3 AA@2 AB AC@2 AD@2
  AE@5 AF@3 AG@5
>`.pickRestart({
  A: "[~@8 d2@5 e2@5 ~@5 [c#2,g#2]@67 ~@6]/3", B: "[~ d2@5 ~ e2@5 ~@5 [c#2,g#2]@69 ~@4 d2@6]/3",
  C: "[~ e2@4 ~@6 [c#2,g#2]@70 ~@3 d2@5 ~ e2@4 ~@2]/3", // C#5
  D: "[~@5 [c#2,g#2]@65 ~@6 d2 ~@4 e2 ~@10 [c#2,g#2]@69 ~@4 d2@4 ~ e2@3 ~@7 [c#2,g#2]@66 ~@3 d2@3 ~@2 e2@2]/8", // C#5
  E: "[~@8 [c#2,g#2]@72 ~@2 d2@4 ~ e2@2 ~@7]/3", // C#5
  F: "[~@3 [c#2,g#2]@63 ~@4 d2@5 e2@3 ~@8 [c#2,g#2]@67 ~@5 d2@4 ~ e2@2 ~@7 [c#2,g#2]@69 ~@2 d2@5 ~ e2@6 ~]/8", // C#5
  G: "[~@3 [c#2,g#2]@69 ~@3 d2@5 ~ e2@4 ~@6 [c#2,g#2]@69]/5", // C#5
  H: "[~@5 d2@5 e2@4 ~@8 [c#2,g#2]@69 ~@4 d2@5 e2@4 ~@7 [c#2,g#2]@65 ~@4 d2@5 e2@5 ~@2]/6", // C#5
  I: "[~@5 [c#2,g#2]@67 ~@3 d2@5 e2@3 ~@7 [c#2,g#2]@69 ~]/5", J: "~ d2@6 e2@6 ~@4 d#2@5 ~@2 d#2@2 ~ d#2@4 ~",
  K: "[~ d#2@4 ~@2 d#2 ~ d#2@2 ~ d#2@4 ~ d2@4 ~@3 c#2@4 ~ b1@46 ~ d#2@5 ~ d#2@2 d#2@2 ~ d#2@3 ~@3 d#2@2 ~]/3",
  L: "[d#2 ~@2 d#2@5 ~ d2@4 ~@2 c#2@3 ~ b1@47 ~ d#2@7 ~@2 d#2@2 d#2@5 ~@2 d#2@2 d#2@2 ~ d#2@4 ~ d2@3 ~@3 c#2@4 ~@2 a1@12 ~@4 b1 ~@4]/4",
  M: "[~ a1 ~ b1@4 ~@2 b1@6 ~ b1@4 ~@2 b1@4 ~@2 d#2@10 ~ d#2@4 ~ d#2@2 ~ d#2 ~ d#2@4 ~@2 d2@2 ~@3 c#2@4]/2",
  N: "~ b1@21 ~@6 d2@4", O: "[~ e2@5 ~@7 g#2@67 ~@3 d2@5 e2@5 ~@3, ~@12 c#2@67 ~@17]/3",
  P: "[~@2 [c#2,g#2]@68 ~@3 d2@7 e2@5 ~@4 [c#2,g#2]@71]/5", // C#5
  Q: "[~@3 d2@5 e2@5 ~@6 c#2@69 ~@3 d2@4 ~, ~@6 g#2@23 ~@3]/3", R: "[~ e2@5 ~@6 [c#2,g#2]@70 ~@3 d2@5 ~ e2@4 ~]/3",
  S: "[~@6 [c#2,g#2]@66 ~@3 d2@4 ~@2 e2@4 ~@7 [c#2,g#2]@68]/5", // C#5
  T: "[~@3 d2@5 e2@5 ~@6 [c#2,g#2]@65 ~@4 d2@4 ~@3 e2@3 ~@9 [c#2,g#2]@76 ~@3 d2@4 ~ e2]/6", // C#5
  U: "[~@11 [c#2,g#2]@69 ~@2 d2@4 e2@5 ~@5]/3", V: "[[c#2,g#2]@67 ~@3 d2@4 ~ e2@3 ~@8 [c#2,g#2]@64 ~@4 d2@6]/5",
  W: "e2@5 ~@5 d#2@3 ~@2 d#2 ~@2 d#2@4 ~@2 d#2@5 ~ d#2@2",
  X: "[~ d#2 ~ d#2@5 ~ d2@4 ~ c#2@4 ~ b1@46 d#2@8 ~@5 d#2@4 ~ d#2@2 ~ d#2@2 ~@2 d#2@4 ~ d2@3 ~@2 c#2@3 ~@2 b1@50 ~@2 d2@5 ~@6 e2@5 ~@3 [f2,g2] ~@2 f2 ~ a2@4 ~ e2@4 ~@2]/6", // Fsus2
  Y: "[d2@5 ~@2 e2@9 ~@4 e2@5 ~@2 e2 ~ e2@6 ~@2 e2@2 e2@5 ~ e2@3 ~@2 e2@3 ~ a2@5 ~ g2@2 ~ g2@2 ~@3 g#2@3 ~ g#2 ~@2 g#2@2 ~ g#2@2 ~@2 g2@2 ~@3 f2@2 ~@3 e2@45 ~@2 g#2@9 ~@2 g#2@5 ~@2 g#2@2 ~]/5",
  Z: "[g#2 ~ g#2@3 ~@2 g2@4 ~@2 f#2@4 ~ e2@50 ~ g#2@6 ~@5 g#2@5 ~@2 g#2@2 ~ g#2@2 g#2@3 ~]/3",
  AA: "[~ g2@3 ~@3 f#2@4 ~ e2@43 ~@9]/2", AB: "~@5 g#1@7 ~ g#1@2 ~ g#1@2 ~ g#1@3 ~ [f1,g1]@2 ~@3 f1@2 ~@2",
  AC: "[~ e1@46 ~@13 g#1@3 ~]/2", AD: "[~ g#1 ~ g#1@2 ~ g#1@4 ~ g1@3 ~@3 f#1@4 ~ e1@18 ~@10 d2@4 ~ e2@4 ~@5]/2",
  AE: "[~@2 g#2@63 ~@3 d2@5 ~ e2@5 ~@4 [c#2,g#2]@64 ~@7 d2@5 ~, ~ c#2@64 ~@95]/5", // C#5
  AF: "[e2@4 ~@6 c#2@69 ~@4 d2@5 e2@4 ~@4, ~@9 g#2@70 ~@17]/3",
  AG: "[~@2 [c#2,g#2]@64 ~@8 d2@3 ~@4 e2@2 ~@11 c#2@56 ~@10, ~@93 g#2@57 ~@10]/5", // C#5
})).s("gm_electric_bass_finger").gain(0.51)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@45 A B@3 C@3 D@2 E F ~@21 G H I@3 J@2 K@2 L@3 M@6 N O@5 P@3 Q@2 R S@2 T@2 ~@13
>`.pickRestart({
  A: "~@17 g#3@5 ~@2 g#3@2 ~ g#3@4 ~",
  B: "[~ b3@4 ~@2 g#4@4 ~ d#4@5 ~ d4@4 ~ c#4@5 ~ b3@45 ~@3 g#3@3 ~@2 g#3 ~ g#3@3 ~ b3@3 ~@2 g#4@3]/3",
  C: "[~@3 d#4@4 ~ d4@4 ~@2 c#4@4 ~ b3@47 ~@2 g#3@4 ~@2 g#3@2 g#3@3 ~ b3@3 ~@3 g#4@3 ~@2 d#4@4 ~]/3",
  D: "[~ d4@3 ~@2 c#4@4 ~ b3@47 ~ g#3@3 ~@2]/2", E: "~ g#3 ~@2 g#3@3 ~ b3@2 ~@3 g#4@3 ~@2 d#4@4 ~ d4@3 ~@2 c#4@4",
  F: "~ b3@26 ~@5", G: "~@15 c#4", H: "~ c#4@2 ~ e4@3 c#4@2 ~ e4@12 ~ c#4@2 ~ c#4@2 ~ e4@3",
  I: "[c#4@2 ~ e4@10 ~ c#4 ~ c#4@2 ~ e4@3 c#4@2 e4@12 ~ c#4@2 c#4@2 ~ e4@2 ~ c#4@2 ~ c#4@2 ~@2 f4@2 e4@3 c#4@2 ~ b3@2 ~ c#4@2 ~ c#4@2 ~ c#4@13 ~@4 c#4@3 b3@2 c#4@3 ~@2]/3",
  J: "[~ c#4@2 ~@3 b3 ~@2 a3@2 ~ a3@2 ~@3 g3@4 ~ g3 ~@4 f3@2 ~@2 e3@2 ~@5 d3@2 ~ e3@2 g3@16 ~@5]/2",
  K: "[b3@6 ~ c4@2 c4@5 ~@3 d4@4 ~@5 d4@2 ~ c#4@2 b3@4 ~@2 c#4@4 ~ e4@4 ~@2 e4@2 c#4@2 ~ c#4@5 ~ e4@2 c#4@3]/2",
  L: "[e4@2 ~ f4@5 f4@5 ~@3 g4@4 ~ g4 ~ f#4@2 ~ e4@4 ~ f#4@3 e4@2 ~ c#4@4 ~ e4@3 ~@2 e4@2 ~ c#4@2 ~ b3@6 ~@2 b3 ~ b3@4 ~ c#4@19 ~@9]/3",
  M: "[~@16 b3 ~ b3@2 ~@4 d4 ~@5 g#4@4 ~ d#4@5 d4@3 ~@3 c#4@4 ~ b3@48 ~ g#3@4 ~ g#3 ~ g#3@3 ~@2 b3@3 ~@2 g#4@4 ~ d#4@4 ~ d4@4 ~ c#4@4 ~ b3@50 ~@2 g#3@3]/6",
  N: "~@3 g#3@2 ~ g#3@2 ~@2 b3@7 ~@3 g#4@3 ~@6 d#4 ~@2",
  O: "[~@6 b3@47 ~ g#3@4 ~@2 g#3@2 ~ g#3@2 ~ b3@2 ~@4 g#4@4 ~ d#4@4 ~ d4@3 ~@2 c#4@3 ~@2 b3@46 ~ g#3@4 ~@2 g#3@2 ~ g#3@2 ~ b3@2 ~@3 g#4@4]/5",
  P: "[~@2 d#4@4 ~ d4@3 ~@3 c#4@2 ~@3 b3@47 ~@4 g#3@4 ~@2 g#3 ~@2 g#3@2 ~ b3@2 ~@3 g#4@2 ~@3 d#4@5]/3",
  Q: "[~ d4@4 ~ c#4@4 ~@2 b3@48 g#3@4]/2", R: "~@3 g#3 ~@2 g#3@2 ~ b3@2 ~@3 g#4@2 ~@2 d#4@3 ~@2 d4@3 ~@2 c#4@3 ~",
  S: "[~ b3@47 ~ g#3@4 ~@2 g#3@2 ~ g#3@2 ~@2 b3@2, ~@61 g#3@2 ~]/2",
  T: "[~@3 g#4@3 ~ d#4@3 ~@2 d4@3 ~@2 c#4@4 ~ b3@28 ~@14]/2",
})).s("gm_overdriven_guitar").gain(0.51)

// drums · kick
const kick = s("bd").struct(`<
  ~ 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 AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU
  AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT M BU BV BW BX BY BZ CA CB CC CD CE CF CG CH
  CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV CW CX CY CZ DA DB DC DD DE DF CH DG DH DI DJ DK DL DM DN DO ~@2
>`.pickRestart({
  A: "~@9 x ~@6", B: "x ~@2 x ~@9 x ~@6 x ~@5 x ~@5", C: "~@4 x ~@5 x ~@4 x ~@11 x ~@4", D: "~@12 x ~@12 x ~@2 x ~@3",
  E: "~@4 x ~@2 x ~@2 x ~@4 x", F: "~@4 x ~@5 x ~@10 x ~@10", G: "~@6 x ~@12 x ~@2 x ~@9",
  H: "~ x ~@2 x ~@2 x ~@4 x ~@2 x", I: "~@3 x ~@11 x ~@5 x ~@5 x ~@4", J: "x ~@13 x ~@2 x ~@10 x ~@3",
  K: "~ x ~@5 x ~@9 x ~@4 x ~@4 x ~@4", L: "~@3 x ~@12", M: "~@4 x ~@2 x ~@10 x ~@4 x ~@5 x ~@2",
  N: "~@8 x ~@5 x ~@5 x ~@10 x", O: "~@15 x ~@12 x ~@2 x", P: "~@10 x ~@4 x ~@4 x ~@4 x ~@5 x",
  Q: "~@4 x ~@4 x ~@4 x ~@5 x ~@11", R: "~@4 x ~@13 x ~@3 x ~@4 x ~@4", S: "~ x ~@4 x ~@5 x ~@4 x ~@5 x ~@4 x ~@3",
  T: "~ x ~ x ~@2 x ~@7 x ~", U: "~@9 x ~@2 x ~@4 x ~@5 x ~@5 x ~@2", V: "~@2 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4 x ~@3",
  W: "~@2 x ~@15 x ~@12 x", X: "~@2 x ~@10 x ~@5 x ~@4 x ~@7", Y: "~@3 x ~@4 x ~@4 x ~@11 x ~@6",
  Z: "~@9 x ~@11 x ~@2 x ~@7", AA: "~@3 x ~@5 x ~@5 x ~@9 x ~@4 x ~", AB: "~@3 x ~@10 x ~@15 x ~",
  AC: "~@11 x ~@3 x ~@10 x ~@4 x", AD: "~@5 x ~@10 x ~@4 x ~@5 x ~@4", AE: "~@3 x ~@7 x ~@4",
  AF: "~@5 x ~@2 x ~@10 x ~@5 x ~@4 x ~", AG: "~@10 x ~@4 x ~@4 x ~@11", AH: "x ~@20 x ~@10",
  AI: "x ~ x ~@10 x ~@5 x ~@4 x ~@7", AJ: "~@3 x ~@5 x ~@4 x ~@9 x ~@7", AK: "~@9 x ~@13 x ~@2 x ~@5",
  AL: "~@5 x ~@4 x ~@4 x ~@9 x ~@5 x", AM: "~@5 x ~@9 x ~@15 x", AN: "~@11 x ~@2 x ~@10 x ~@5 x",
  AO: "~@4 x ~@10 x ~@5 x ~@5 x ~@4", AP: "~@4 x ~@6 x ~@10 x ~@9", AQ: "~@3 x ~@2 x ~@9 x ~@5 x ~@4 x ~@4",
  AR: "~@6 x ~@5 x ~@4 x ~@10 x ~@3", AS: "~@14 x ~@11 x ~@2 x ~@2", AT: "~@7 x ~@4 x ~@5 x ~@9 x ~@3",
  AU: "~@2 x ~@5 x ~@9 x ~@5 x ~@4 x ~@2", AV: "~@7 x ~@8 x ~@2 x ~@9 x ~@2", AW: "~@3 x ~@5 x ~@9 x ~@7 x ~@2 x ~",
  AX: "~@4 x ~@2 x ~@2 x ~@3 x ~", AY: "~@6 x ~@2 x ~@9 x ~@5 x ~@5 x", AZ: "~@9 x ~@7 x ~@3 x ~@9 x",
  BA: "~@5 x ~@5 x ~@7 x ~@9 x ~@2", BB: "~@12 x ~@4 x ~@4 x ~@9", BC: "x ~@7 x ~@14 x ~@3 x ~@4",
  BD: "~ x ~@8 x ~@9 x ~@2 x ~@8", BE: "~@2 x ~@5 x ~@3 x ~@10 x ~@5 x ~@2", BF: "~@2 x ~@10 x ~@15 x ~@2",
  BG: "~@10 x ~@2 x ~@10 x ~@5 x ~", BH: "~@4 x ~@9 x ~@5 x ~@4 x ~@6", BI: "~@4 x ~@16 x ~@10",
  BJ: "~@2 x ~@2 x ~@11 x ~@5 x ~@5 x ~@2", BK: "~@7 x ~@5 x ~@4 x ~@10 x ~@2", BL: "~@2 x ~@4 x ~@5 x ~@13 x ~@2 x ~",
  BM: "~@9 x ~@4 x ~@5 x ~@10 x", BN: "~@5 x ~@4 x ~@11 x ~@9", BO: "~@21 x ~ x ~@8",
  BP: "~@3 x ~@5 x ~@5 x ~@10 x ~@4 x", BQ: "~@5 x ~@10 x ~@15", BR: "~ x ~@12 x ~@2 x ~@11 x ~@2",
  BS: "~@2 x ~@4 x ~@9 x ~@5 x ~@5 x ~@2", BT: "~@8 x ~@3 x ~@4 x ~@5 x ~@8", BU: "~@7 x ~@5 x ~@5 x ~@10 x ~",
  BV: "~@14 x ~@13 x ~@2 x", BW: "~@11 x ~@4 x ~@5 x ~@9", BX: "~ x ~@3 x ~@4 x ~@16 x ~@4",
  BY: "~@11 x ~@13 x ~@2 x ~@3", BZ: "~@7 x ~@5 x ~@4 x ~@11 x ~", CA: "~@4 x ~@4 x ~@10 x ~@11",
  CB: "~@5 x ~@11 x ~@3 x ~@10", CC: "x ~@4 x ~@5 x ~@10 x ~@4 x ~@4", CD: "x ~@10 x ~@15 x ~@4",
  CE: "~@8 x ~@2 x ~@9 x ~@4 x ~@5", CF: "x ~@10 x ~@5 x ~@3 x ~@10", CG: "x ~@14 x ~@11 x ~@3 x",
  CH: "~@10 x ~@4 x ~@4 x ~@10 x", CI: "~@5 x ~@5 x ~@9 x ~@10", CJ: "~@4 x ~@2 x ~@9 x ~@2 x ~@11",
  CK: "x ~@6 x ~@5 x ~ x", CL: "~@8 x ~@4 x ~@2 x ~@3 x ~@9 x ~", CM: "~@7 x ~@2 x ~@9 x ~@4 x ~@5 x",
  CN: "~@10 x ~@7 x ~@2 x ~@10", CO: "~ x ~@4 x ~@2 x ~@3 x ~@11 x ~@6", CP: "~@3 x ~@2 x ~@8 x ~@2 x ~@2 x ~@5 x ~@4",
  CQ: "~@5 x ~@7 x ~@2 x ~@9 x ~@3 x ~", CR: "~@3 x ~@3 x ~@10 x ~@13", CS: "~@7 x ~@3 x ~@5 x ~@10 x ~@3",
  CT: "~@3 x ~@2 x ~@10 x ~@10 x ~@3", CU: "~@6 x ~@8 x ~@11 x ~@3 x", CV: "~@3 x ~@6 x ~@9 x ~@7 x ~@2 x",
  CW: "~@10 x ~@4 x ~@2 x ~@3 x ~@9", CX: "x ~@4 x!2 ~@4 x ~@2 x ~", CY: "~ x ~@10 x ~@7 x ~@2 x ~@8",
  CZ: "~@2 x ~@15 x ~@2 x ~@8 x ~", DA: "~ x ~@9 x ~@2 x ~@3 x ~@3 x ~@9", DB: "~ x ~@7 x ~@2 x ~@9 x ~@9",
  DC: "~@7 x ~@11 x ~@2 x ~@9", DD: "x ~@2 x ~@3 x ~@4 x ~@9 x ~@5 x ~@3", DE: "~ x ~@6",
  DF: "~@6 x ~@2 x ~@10 x ~@4 x ~@5 x", DG: "~@16 x ~@11 x ~@2 x", DH: "~@9 x ~@5 x ~@5 x ~@9 x",
  DI: "~@5 x ~@4 x ~@10 x ~@10", DJ: "~@4 x ~@5 x!2 ~@4", DK: "~ x ~@5 x ~@5 x ~@10 x ~@4 x ~@2",
  DL: "~@2 x ~@10 x ~@16 x ~", DM: "~@11 x ~@2 x ~@10 x ~@4 x ~", DN: "~@2 x ~@4 x ~@2 x ~@2 x ~@2",
  DO: "~@3 x ~@9 x ~@2",
})).gain(0.51)

// drums · snare
const snare = s("sd").struct(`<
  ~ A B C D E F G H I C J K J L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG W X AH AI Y AJ AK AL AM AN AO AD AP AQ
  AE AQ AR AS AT AU AV Q AW H AX AY AL AZ BA BB BC BD AA BE BF J BG BH E BI BJ BK BL BM BN BO AS BP AS BQ BR AR O BS BT
  L BU BV BW AJ BX J AO BY BZ CA BQ S T CB AT CC CD Q CE BU AR CF AR CG CH Q CI H AJ CJ ~@2
>`.pickRestart({
  A: "~@3 x ~@2 x ~@9", B: "~@8 x ~@22 x", C: "~@11 x ~@4", D: "~ x ~@4 x!2 ~@24", E: "~@2 x!2 ~@21 x ~@6",
  F: "~@15 x!2 ~@10 x ~@4", G: "~ x ~@26 x ~@3", H: "~@19 x ~@12", I: "~@9 x ~@11 x ~@4 x ~@5", J: "~@3 x ~@4",
  K: "~ x ~@9 x!2 ~@4 x ~@4 x ~ x ~@7", L: "~@3 x ~@21 x ~@6", M: "~@4 x ~@4 x!2 ~@21", N: "~@4 x!2 ~@19 x ~@6",
  O: "~@15 x ~@9 x ~@5 x", P: "~@27 x ~@4", Q: "~@9 x ~@6", R: "~@7 x ~@9 x ~@5 x ~@8", S: "~@17 x ~@14",
  T: "~@7 x ~@21 x ~@2", U: "~@7 x ~@5 x ~@18", V: "~@7 x ~@22 x ~", W: "~@19 x ~@10 x ~", X: "~@3 x ~@26 x ~",
  Y: "~@5 x ~@2", Z: "~@9 x ~@10 x ~@4 x ~@6", AA: "~@21 x ~@10", AB: "~@5 x ~@10", AC: "~ x ~@9 x ~@5 x ~@14",
  AD: "~@13 x ~@18", AE: "~@4 x ~@20 x ~@6", AF: "~@5 x ~@5 x ~@5 x ~ x ~@12", AG: "~@4 x ~@10 x", AH: "~@20 x!2 ~@10",
  AI: "~@5 x ~@4 x ~@2 x ~@2", AJ: "~@9 x ~@22", AK: "x!2", AL: "~@11 x ~@20", AM: "x!2 ~@20 x ~@9",
  AN: "~ x ~@4 x ~@2 x ~@2 x ~@19", AO: "~@2 x ~@20 x ~@8", AP: "~@3 x ~@20 x ~@7", AQ: "~@7 x ~@8",
  AR: "~@2 x ~@10 x ~@2", AS: "~ x", AT: "~@3 x ~@10 x ~", AU: "~@11 x ~@4 x ~@3 x ~@7 x ~@3", AV: "~@6 x ~@22 x ~@2",
  AW: "~@7 x!2 ~@9 x!2 ~@4 x ~@7", AX: "~@9 x ~@21 x", AY: "~@9 x ~@5 x ~@16", AZ: "~ x ~@10 x ~@3",
  BA: "~ x ~@2 x ~@11", BB: "~@3 x ~@21 x!2 ~@5", BC: "~@16 x ~@10 x ~@4", BD: "~ x ~@5 x ~ x ~@19 x!2 ~",
  BE: "~@10 x!2 ~@10 x ~@4 x ~@4", BF: "~@23 x ~@8", BG: "~ x ~@4 x ~@2 x ~@6", BH: "~@12 x!2 ~@18",
  BI: "~@3 x ~@5 x ~@22", BJ: "~@4 x!2 ~@21 x ~@4", BK: "~@13 x!2 ~@4 x ~@2 x ~@9", BL: "x ~@2 x ~@12",
  BM: "~ x ~@22 x ~@7", BN: "~@15 x ~@9 x!2 ~@4 x", BO: "~@13 x ~@2", BP: "~@3 x ~@4 x ~@2 x ~@4",
  BQ: "~@5 x ~@21 x ~@4", BR: "~@5 x ~@4 x ~@21", BS: "~@24 x!2 ~@4 x ~", BT: "~@3 x ~@4 x ~@10 x ~@12",
  BU: "~@14 x!2 ~@16", BV: "~@4 x!2 ~@20 x!2 ~@4", BW: "~@18 x!2 ~@12", BX: "x ~@10 x ~@4",
  BY: "~@11 x ~@9 x!2 ~ x ~@7", BZ: "~ x ~@21 x ~@8", CA: "~@15 x ~@16", CB: "~@4 x ~@2 x ~@8", CC: "~@17 x ~@10 x ~@3",
  CD: "~@2 x ~@24 x ~@4", CE: "x ~@8 x ~@5 x ~ x ~@2 x ~@4 x ~@6", CF: "~@2 x ~@2 x ~@10", CG: "~@16 x ~@9 x ~@4 x",
  CH: "~@2 x ~@2 x ~@22 x ~@3", CI: "~@4 x ~@4 x ~@2 x ~@3", CJ: "x ~@10 x ~@5 x ~@3 x ~ x ~@8",
})).gain(0.51)

// drums · hihat
const hihat = s("hh").struct("<[~@4 x ~@2 x] ~@123>").gain(0.51)

// drums · china
const china = s("cr").struct(`<
  ~ A ~@2 B ~@2 C ~@2 D ~ E ~@2 F ~@2 G ~@2 H ~ A ~@2 I ~@2 J ~ E ~@2 A ~@2 I ~@2 K ~ E ~@2 L ~@2 G ~ M ~@2 N ~@2 C ~@2
  O ~ P ~@2 L ~@2 C ~@2 Q ~ R ~@2 S ~@2 B ~@2 T ~@2 U ~ F ~@2 T ~@2 H ~ M ~@2 A ~@2 V ~@2 J ~ A ~@2 C ~ W ~@2 F ~@2 X
  ~@2 J ~ Y ~@2
>`.pickRestart({
  A: "~@23 x ~@8", B: "~@17 x ~@14", C: "~@3 x ~@4", D: "~@5 x ~@26", E: "~@27 x ~@4", F: "~@5 x ~@2", G: "~@9 x ~@22",
  H: "~ x ~@30", I: "~@7 x ~@8", J: "~@3 x ~@28", K: "~ x ~@6", L: "~@9 x ~@6", M: "~@15 x", N: "~@11 x ~@4",
  O: "~ x ~@14", P: "~@13 x ~@2", Q: "~@3 x ~@12", R: "~@7 x", S: "~@19 x ~@12", T: "~@5 x ~@10", U: "x",
  V: "~@7 x ~@24", W: "~@31 x", X: "~@11 x ~@20", Y: "~@29 x ~@2",
})).gain(0.51)

stack(distortion_guitar, bass, overdriven_guitar, kick, snare, hihat, china)

More by Alice in Chains