Strudelify

Intolerance

Tool

KeyD minorTempo194 bpm
0:00/0:00
// Intolerance — Tool
// 194 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 225 bars on a 16-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 30, guitar program 31.
setcpm(194/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@2 B@2 C@5 D@2 E@2 F@2 G@2 H@2 G@2 H@2 G@2 H@2 G@2 H@2 I J I K I J I K L M L M L M N O P@2 Q@2 P@2 Q@2 P@2 Q@2 P@2
  Q@2 G@2 H@2 G@2 H@2 R@8 L M L M L M L M L M L M L M N O P@2 Q@2 P@2 Q@2 P@2 Q@2 P@2 Q@2 S T S T S T S U@2 V@2 W X W Y
  Z@2 AA@2 AB@2 AC@8 AD@5 AE@5 ~@4 AF@8 AG AH AI@2 AJ@2 AK@2 AJ@2 AK@2 AJ@2 AK@2 AJ@2 AL AM AN AM AN AM AN AO AN AO AN
  AO AN AO AN AO AN AO AN AO AN AO AN AO AP@2 AQ@2 AR@2 AQ@2 AS AT AU AT AU AT AU AT AV@5
>`.pickRestart({
  A: "[~@4 [d2,a2,d3]@3 [f2,c3,f3]@3 [g2,d3,g3]@3 [ab2,eb3,ab3] [g2,d3,g3] [f2,c3,f3]]/2", // D5 F5 G5 Ab5 G5 F5
  B: "[[g2,d3,g3] [d2,a2,d3]@3 [c3,g3,c4]@3 [f2,c3,f3]@3 [g2,d3,g3]@3 [ab2,eb3,ab3] [g2,d3,g3] [f2,c3,f3]]/2", // G5 D5 C5 F5 G5 Ab5 G5 F5
  C: "[[g2,d3,g3] [d2,a2,d3]@3 [f2,c3,f3]@3 [g2,d3,g3]@3 [ab2,eb3,ab3] [g2,d3,g3] [f2,c3,f3] [g2,d3,g3] [d2,a2,d3]@3 [c3,g3,c4]@3 [f2,c3,f3]@3 [g2,d3,g3]@3 [ab2,eb3,ab3] [g2,d3,g3] [f2,c3,f3] [g2,d3,g3] [d2,a2,d3]@3 [f2,c3,f3]@3 [g2,d3,g3]@3 [ab2,eb3,ab3]]/5", // G5 D5 F5 G5 Ab5 G5 F5 G5 …
  D: "[[g2,d3,g3] [f2,c3,f3] [g2,d3,g3] [d2,a2,d3]@3 [c3,g3,c4]@3 [f2,c3,f3]@3 [g2,d3,g3]@3 [ab2,eb3,ab3]]/2", // G5 F5 G5 D5 C5 F5 G5 Ab5
  E: "[[g2,d3,g3] [f2,c3,f3] [g2,d3,g3] [d2,a2,d3]@3 [f2,c3,f3]@3 [g2,d3,g3]@3 [ab2,eb3,ab3] [g2,d3,g3] [f2,c3,f3] [g2,d3,g3]]/2", // G5 F5 G5 D5 F5 G5 Ab5 G5 …
  F: "[[d2,a2,d3]@3 [c3,g3,c4]@3 [f2,c3,f3]@3 [g2,d3,g3]@3 [ab2,eb3,ab3] [g2,d3,g3] [f2,c3,f3] [g2,d3,g3]]/2", // D5 C5 F5 G5 Ab5 G5 F5 G5
  G: "[[d2,a2,d3]@3 [f2,c3,f3]@3 [d2,a2,d3]@3 [f2,c3,f3]@3 [d2,a2,d3]@2 [eb2,bb2,eb3]@2]/2", // D5 F5 D5 F5 D5 Eb5
  H: "[[d2,a2,d3]@3 [f2,c3,f3]@3 [d2,a2,d3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@2 c3@2]/2", // D5 F5 D5 Eb5
  I: "[d2,a2]@5 ~ [f2,c3]@5 ~ [d2,a2]@4", J: "~@2 [f2,c3]@5 ~ [d2,a2]@4 [eb2,bb2]@4",
  K: "~@2 [eb2,bb2]@5 ~ [eb2,bb2]@4 c3@4", L: "[d2,a2]@4 ~@2 [d2,a2] ~ [d2,a2] ~@3 [d2,a2]@4",
  M: "~@2 [d2,a2] ~ [d2,a2] ~@3 [d2,a2] ~ [d2,a2] ~ [d2,a2] ~ [d2,a2] ~", // D5
  N: "[d2,a2,d3]@2 ~ [d2,a2,d3]@2 ~ [d2,a2,d3]@2", O: "~ [d2,a2,d3]@2 ~ [d2,a2,d3]@2 [d2,a2,d3]@2",
  P: "[[c3,g3,c4]@3 [d2,a2,d3]@3 [d2,a2,d3]@3 [d2,a2,d3]@3 [d2,a2,d3]!4]/2", // C5 D5
  Q: "[[c3,g3,c4]@3 [d2,a2,d3]@3 [d2,a2,d3]@3 [d2,a2,d3]@3 [eb2,bb2,eb3] [f2,c3,f3]@3]/2", R: "[~ d4, d3]/8",
  S: "c3 g2 c3 g2 c3 g2 f2 d2", T: "[d2,a2] [d2,a2,d3]",
  U: "[[d2,a2,d3]@3 [f2,c3,f3]@3 [g2,d3,g3]@3 [ab2,eb3,ab3] [g2,d3,g3] [f2,c3,f3] [g2,d3,g3] [d2,a2,d3]@3]/2", // D5 F5 G5 Ab5 G5 F5 G5 D5
  V: "[[c3,g3,c4]@3 [f2,c3,f3]@3 [g2,d3,g3]@3 [ab2,eb3,ab3] [g2,d3,g3] [f2,c3,f3] [g2,d3,g3] [d2,a2,d3]@3]/2", // C5 F5 G5 Ab5 G5 F5 G5 D5
  W: "[f2,c3,f3]@3 [g2,d3,g3]@3 [ab2,eb3,ab3] [g2,d3,g3]", X: "[f2,c3,f3] [g2,d3,g3] [d2,a2,d3]@3 [c3,g3,c4]@3",
  Y: "[f2,c3,f3] [g2,d3,g3] [d2,a2,d3]@3 [f2,c3,f3]@3", // F5 G5 D5 F5
  Z: "[[g2,d3,g3]@3 [ab2,eb3,ab3] [g2,d3,g3] [f2,c3,f3] [g2,d3,g3] [d2,a2,d3]@3 [c3,g3,c4]@3 [f2,c3,f3]@3]/2", // G5 Ab5 G5 F5 G5 D5 C5 F5
  AA: "[[g2,d3,g3]@3 [ab2,eb3,ab3] [g2,d3,g3] [f2,c3,f3] [g2,d3,g3] [d2,a2,d3]@3 [f2,c3,f3]@3 [g2,d3,g3]@3]/2", // G5 Ab5 G5 F5 G5 D5 F5 G5
  AB: "[[ab2,eb3,ab3] [g2,d3,g3] [f2,c3,f3] [g2,d3,g3] [d2,a2,d3]@3 [c3,g3,c4]@3 [f2,c3,f3]@3 [g2,d3,g3]@3]/2", // Ab5 G5 F5 G5 D5 C5 F5 G5
  AC: "[[ab2,eb3,ab3] [g2,d3,g3] [f2,c3,f3] [g2,d3,g3] [d2,a2,d3]@32 d5@28]/8", AD: "[~ d5@9]/5", AE: "[d4@9 ~]/5",
  AF: "[d4@9 d5@7]/8", AG: "~@8 [d2,a2,d3] ~ [d2,a2,d3] ~@3 [d2,a2,d3] ~",
  AH: "[d2,a2,d3] ~ [d2,a2,d3] ~@3 [d2,a2,d3] ~ [d2,a2,d3] ~ [d2,a2,d3] ~@3 [d2,a2,d3] ~", // D5
  AI: "[[d2,a2,d3]@4 [c3,g3,c4]@3 [d2,a2,d3]@3 [d2,a2,d3]@3 [d2,a2,d3]@3]/2", // D5 C5 D5
  AJ: "[[d2,a2,d3]!4 [c3,g3,c4]@3 [d2,a2,d3]@3 [d2,a2,d3]@3 [d2,a2,d3]@3]/2", // D5 C5 D5
  AK: "[[eb2,bb2,eb3] [f2,c3,f3]@3 [c3,g3,c4]@3 [d2,a2,d3]@3 [d2,a2,d3]@3 [d2,a2,d3]@3]/2", // Eb5 F5 C5 D5
  AL: "[eb2,bb2,eb3] [f2,c3,f3]@3 c3 g2 c3 g2", AM: "c3 g2 f2 d2 [d2,a2]@4", AN: "[d2,a2,d3]@4 c3 g2 c3 g2",
  AO: "c3 g2 f2 d2 [d2,a2,d3]@4", AP: "[[d2,a2,d3]@4 c3@3 g3@3 c3@3 d3@3]/2",
  AQ: "[eb3 d3 c3 d3 c3@3 c4@3 c3@3 d3@3]/2", AR: "[eb3 d3 c3 d3 c3@3 g3@3 c3@3 d3@3]/2",
  AS: "eb3 d3 c3 d3 [d2,a2,d3] [d2,a2,d3]@2 [c3,g3,c4]", // D5 C5
  AT: "[c3,g3,c4]@2 [c3,g3,c4] [c3,g3,c4]@2 [d3,a3,d4] [d3,a3,d4]@2", // C5 D5
  AU: "[eb3,bb3,eb4] [d3,a3,d4] [d2,a2,d3] [c3,g3,c4] [d2,a2,d3] [d2,a2,d3]@2 [c3,g3,c4]", // Eb5 D5 C5 D5 C5
  AV: "[[eb3,bb3,eb4] [d3,a3,d4] [d2,a2,d3] [c3,g3,c4] [d3,a3,d4]@32 ~@4]/5", // Eb5 D5 C5 D5
})).s("gm_distortion_guitar").gain(0.71)

// bass · electric bass pick
const bass = note(`<
  A@2 B@2 C@5 D@2 E@2 F@2 G@2 H@2 G@2 H@2 G@2 H@2 G@2 H@2 I J I K I J I K I J I K I J L M N@2 O@2 N@2 O@2 N@2 O@2 N@2
  O@2 G@2 H@2 G@2 H@2 G@2 H@2 G@2 H@2 I J I K I J I K I J I K I J L M N@2 O@2 N@2 O@2 N@2 O@2 N@2 O@2 ~@7 P@2 Q@2 R S R
  T U@2 V@2 W@2 X@8 Y@8 Z@2 AA@12 AB AC AD@2 AE@2 AF@2 AE@2 AF@2 AE@2 AF@2 AE@2 AG ~@7 AH AI AJ AI AJ AI AJ AI AJ AI AJ
  AI AJ AI AJ AI AK@2 AL@6 AM@8 AN@5
>`.pickRestart({
  A: "[~@4 d1@3 f1@3 g1@3 ab1 g1 f1]/2", B: "[g1 d1@3 c2@3 f1@3 g1@3 ab1 g1 f1]/2",
  C: "[g1 d1@3 f1@3 g1@3 ab1 g1 f1 g1 d1@3 c2@3 f1@3 g1@3 ab1 g1 f1 g1 d1@3 f1@3 g1@3 ab1]/5",
  D: "[g1 f1 g1 d1@3 c2@3 f1@3 g1@3 ab1]/2", E: "[g1 f1 g1 d1@3 f1@3 g1@3 ab1 g1 f1 g1]/2",
  F: "[d1@3 c2@3 f1@3 g1@3 ab1 g1 f1 g1]/2", G: "[d1@3 f1@3 d1@3 f1@3 d1@2 eb1@2]/2",
  H: "[d1@3 f1@3 d1@3 eb1@3 eb1@2 c2@2]/2", I: "d2@2 ~ f2@2 ~ d2@2", J: "~ f2@2 ~ d2@2 eb2@2",
  K: "~ eb2@2 ~ eb2@2 c2@2", L: "d2@2 ~ d2@2 ~ d2@2", M: "~ d2@2 ~ d2@2 d2@2",
  N: "[c3@3 [d1,d2,a2]@3 [d1,d2,a2]@3 [d1,d2,a2]@3 [d1,d2,a2]@4]/2", // D5
  O: "[c3@3 [d1,d2,a2]@3 [d1,d2,a2]@3 [d1,d2,a2]@3 [d1,d2,a2] [f2,c3]@3]/2", P: "[d1@3 f1@3 g1@3 ab1 g1 f1 g1 d1@3]/2",
  Q: "[c2@3 f1@3 g1@3 ab1 g1 f1 g1 d1@3]/2", R: "f1@3 g1@3 ab1 g1", S: "f1 g1 d1@3 c2@3", T: "f1 g1 d1@3 f1@3",
  U: "[g1@3 ab1 g1 f1 g1 d1@3 c2@3 f1@3]/2", V: "[g1@3 ab1 g1 f1 g1 d1@3 f1@3 g1@3]/2",
  W: "[ab1 g1 f1 g1 d1@3 c2@3 f1@3 g1@3]/2", X: "[ab1 g1 f1 g1 [d1,d2]@16 [d1,d2]@16 [d1,d2]@16 [d1,d2]@12]/8",
  Y: "[~ [d1,d2]@4 [d1,d2]@4 [d1,d2]@4 [d1,d2]@3]/8", Z: "[~@4 [d2,a2]@3 d3@3 [d2,a2]@3 d3@3]/2",
  AA: "[[d2,a2]!4 [d2,a2]@3 d3@3 [d2,a2]@3 d3@3]/2", // D5
  AB: "[d2,a2]@2 [d2,a2]@2 [d2,a2]@2 [d2,a2]@2 [d1,a1,d2] ~ [d1,a1,d2] ~@3 [d1,a1,d2] ~", // D5
  AC: "[d1,a1,d2] ~ [d1,a1,d2] ~@3 [d1,a1,d2] ~ [d1,a1,d2] ~ [d1,a1,d2] ~@3 [d1,a1,d2] ~", // D5
  AD: "[d1@4 c3@3 [d1,d2,a2]@3 [d1,d2,a2]@3 [d1,d2,a2]@3]/2", // D5
  AE: "[[d1,d2,a2]@4 c3@3 [d1,d2,a2]@3 [d1,d2,a2]@3 [d1,d2,a2]@3]/2", // D5
  AF: "[[d1,d2,a2] [f2,c3]@3 c3@3 [d1,d2,a2]@3 [d1,d2,a2]@3 [d1,d2,a2]@3]/2", AG: "[d1,d2,a2] [f2,c3]@3 ~@4",
  AH: "~@4 c2 g1 c2 g1", AI: "c2 g1 f1 d1 d1@4", AJ: "d1@4 c2 g1 c2 g1", AK: "[d1@4 c2@3 c2@3 c2@3 d2@3]/2",
  AL: "[eb2 d2 c2 d2 c2@3 c2@3 c2@3 d2@3]/2", AM: "[eb2 d2 c2 d2 d1@3 g2@3 c2@3 d2@3]/2",
  AN: "[eb2 d2 c2 d2 [d1,d2,d3]@32 ~@4]/5", // D
})).s("gm_electric_bass_pick").gain(0.71)

// other · distortion guitar
const distortion_guitar_2 = note("<~@95 A@8 B@8 ~@114>".pickRestart({
  A: "[~@6 g4@3 ~@3 g4@4]/2", B: "[a4,d5]/2",
})).s("gm_distortion_guitar").gain(0.8)

// other · guitar harmonics
const guitar_harmonics = note("<~@24 A ~ B ~ A ~@97 C D C ~ E@2 F ~@92>".pickRestart({
  A: "~ eb3@3 ~@2 f2@2", B: "~ c3", C: "~@5 a2 c3 ~", D: "~@2 d3@3 ~@3", E: "[~@2 a2 c3 ~@3 d3@3 ~@6]/2",
  F: "~@2 a2 c3 ~@4",
})).s("gm_guitar_harmonics").gain(0.8)

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

// drums · snare
const snare = s("sd").struct(`<
  A ~ B C B ~ D E D F A F ~ G H C I C I C I C I C I C I C I C G J ~ J ~ J ~ J ~ J ~ J ~ J ~ K@2 B@3 L B@3 L B@3 L B@2 M
  B C I C I C I C I C I C I C I C N J ~ J ~ J ~ J ~ J ~ J ~ J ~@2 O B@3 L B@3 L B@3 L B@2 M@2 ~@6 B G ~ K D K C F C ~ E
  G E A F K P ~ P ~ P ~ P ~ P ~ P ~ P ~ P ~ P ~ P ~ P ~ P ~ P ~ P ~ P B O K@3 Q K@3 Q K@3 Q K@3 R@2 ~@6 B K@17 Q S Q S Q
  S Q T U O U O U V U R ~@4
>`.pickRestart({
  A: "~@7 x", B: "~ x", C: "~@5 x ~@2", D: "~ x ~@6", E: "~ x ~@2", F: "~@3 x", G: "~@3 x ~@4", H: "~ x!2 ~",
  I: "~@3 x ~@2 x ~", J: "~@4 x ~@2 x", K: "x", L: "~ x ~@2 x ~@3", M: "~@4 x!2 ~@2", N: "~@2 x!2 ~@4", O: "x!2",
  P: "x ~@2 x ~@4", Q: "x ~@4 x ~@2", R: "x!2 ~@6", S: "x ~ x!2 ~@4", T: "x ~ x!3 ~@3", U: "~@2 x ~@2 x ~@2",
  V: "x ~@3 x ~@2 x",
})).gain(0.8)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~ A B C B D E F E G H G H I J ~@17 C K C K C K C K C K C K C L@2 ~@14 M N ~@15 O K C K C K C K C K C K C K C J P ~@15
  Q ~@6 M R S T K T U V U W X Y X Z L J B J B J B J B J B J B J B J B J B J B J B J B J B J B J B Z ~@16 X ~@9 AA ~ AA ~
  AA ~ AA ~ AA ~ AA ~ AA ~ AA ~@10 AB ~ AB ~ AB ~ AC ~@4
>`.pickRestart({
  A: "~ x!2 ~@2 x!3", B: "x ~@5 x!2", C: "~@2 x!6", D: "~@2 x!4 ~@2", E: "~@3 x!2 ~@2 x", F: "x!6 ~@2", G: "x!3 ~@5",
  H: "x!2 ~@2 x!4", I: "~@5 x!3", J: "x!8", K: "x!5 ~@3", L: "~ x!7", M: "~@6 x!2", N: "x!4 ~ x!2 ~", O: "~@4 x!4",
  P: "~ x!3 ~ x!3", Q: "x!2 ~@6", R: "~@5 x!2 ~", S: "~ x!4 ~@3", T: "~@2 x!2 ~@2 x!2", U: "x!2 ~@5 x", V: "x ~@2 x!5",
  W: "x ~@2 x!4 ~", X: "~@4 x!2 ~@2", Y: "x!7 ~", Z: "x!4 ~@4", AA: "~ x!3 ~@4", AB: "~@2 x!2 ~@4", AC: "~@3 x!2 ~@3",
})).gain(0.8)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C ~ C ~ D ~ D E F E F G ~ H B D B D B D B D B D B D B D B ~@16 G I G I G I G I G I G I G I G J H B D B D B D B D B
  D B D B D K ~@16 G I G I G I G I G I G I G I G D ~@7 G L M L M N K N K O ~ O A B ~@32 A I P I P I P I P I P I P I P I
  K ~@7 A D Q D Q D Q D Q D Q D Q D Q D G@2 I G I G I G B I B I B I B ~@6
>`.pickRestart({
  A: "~@3 x", B: "x!2 ~@2", C: "~@3 x ~ x ~ x", D: "x!3 ~", E: "~@5 x ~ x", F: "~ x ~@6", G: "~ x!3", H: "~ x!2 ~",
  I: "x!4", J: "x!2", K: "x", L: "~@7 x", M: "~ x ~ x ~@4", N: "~@2 x!2", O: "~ x ~ x ~ x ~@2", P: "x!2 ~ x",
  Q: "~ x ~ x",
})).gain(0.8)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@31 A B A B A B A B A B A B A B ~@34 A B A B A B A B A B A B A B ~@24 C ~@15 D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~
  D ~ D ~ D ~ D ~ D ~@58 E ~@4
>`.pickRestart({
  A: "~@7 x", B: "x!2 ~@6", C: "~@5 x ~@2", D: "~@3 x!3 ~@2", E: "~ x!2 ~@5",
})).gain(0.8)

// drums · open hat
const open_hat = s("oh").struct(`<
  A ~ B ~ B C ~ C ~ D ~ D ~ E ~ C F C F C F C F C F C F C F C F ~@31 G C F C F C F C F C F C F C F C ~@41 H ~ H ~ G ~ G
  I ~ I ~ A ~@59 E ~ E ~ E ~ E ~ E ~ E ~ E ~ E@2 ~ E ~ E ~ E ~@13
>`.pickRestart({
  A: "~ x", B: "~ x ~@6", C: "~@3 x", D: "~@3 x ~@4", E: "x", F: "~@2 x!2", G: "~ x ~@2", H: "~@5 x ~@2", I: "~@7 x",
})).gain(0.8)

// drums · crash
const crash = s("cr").struct(`<
  ~@15 A B ~ B ~ B ~ B ~ B ~ B ~ B ~@18 A ~ A C A ~ A C A ~ A C A ~ A ~ A B ~ B ~ B ~ B ~ B ~ B ~ B ~@18 A ~ A C A ~ A C
  A ~ A C A ~ A ~ A ~@6 A ~@13 D ~@31 D ~ D ~ E ~ D ~ E ~ D ~ E ~ D ~ D ~@7 D ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~@2 A ~ A ~ A
  ~ A C A C A C A C F D ~@4
>`.pickRestart({
  A: "x", B: "~@3 x", C: "~@5 x ~@2", D: "~ x", E: "~ x ~@2 x ~@3", F: "x ~@2 x ~@2 x ~",
})).gain(0.8)

stack(
  distortion_guitar, bass, distortion_guitar_2, guitar_harmonics, kick, snare, low_tom, hihat, mid_tom, open_hat, crash
)

More by Tool