Strudelify

Pleasure Dome

Van Halen

KeyE majorTempo140 bpm
0:00/0:00
// Pleasure Dome — Van Halen
// 140 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 191 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · vibraphone
const vibraphone = note("<A B@2 C@3 D E F E G H I ~@10 J ~@120 K ~@46>".pickRestart({
  A: "~@11 e4@5", B: "[~@2 [b5,e6]@5 ~ [b4,c#5,f#5,a#5]@10 ~@2 e4@2 ~ b4@2 e5@2 e6@2 ~ b5@2]/2",
  C: "[~ [b4,c#5,f#5,a#5]@10 ~@3 e4@5 ~ [b5,e6]@5 ~ [b4,c#5,f#5,a#5]@10 ~@3 e4@2 b4@2 e5@2 e6@2 ~]/3", // F# E5 F#
  D: "b5@2 ~ [b4,c#5,f#5,a#5]@10 ~@3", E: "~@6 e6@3 ~@3 b5@3 ~", F: "~@10 f#5@5 ~", G: "~@8 e6@2 ~ b5@2 ~@3",
  H: "~@8 e6@3 ~ a5@3 ~", I: "~@6 b6@3 ~ f#6@5 ~", J: "[a4,a5]@14 [g#5,a5] [c#5,d#5,e5,f#5]",
  K: "[c#6,d6] [a5,b5] ~@14", // Dmaj7 Asus2
})).s("gm_vibraphone").gain(0.35)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@7 A B C D E F G H I J K@2 L M N@3 O P Q@2 R S T@2 U P Q@2 V W X Y Z AA Z AB AC AD AE AF AC AD AE AF AC AD AE AF AC
  AD AE AG AH@2 AI@2 AJ AK AL AM@3 AI@2 AJ AK AN@2 AO AP AQ AR AS AT AU AV AW@2 AX@2 AW@2 AY@2 Z AA Z AB AC AD AE AF AC
  AD AE AG AH@2 AI@2 AJ AK AL AM@3 AI@2 AJ AK AN@2 AO AP AQ AR AS AZ AU AV AW@2 AX@2 AW@2 BA@2 BB BC BD BE BB BC BF@2 BG
  BH BI BJ BK BL BM@2 BN BO BP BQ@2 BR BS BT BU BV BW BX BU BV BY@2 BU BV BZ CA BU CB CC CD AH@2 AI@2 AJ AK AL CE BB BC
  BD BE BB CF@2
>`.pickRestart({
  A: "a3@2 a4@2 c#5@5 ~ a4@6", B: "[b4,d#5]@2 a3@2 b4@2 e5@7 ~@3", C: "a3@2 a4@2 c#5@2 e5@3 ~ a4@6",
  D: "[b4,d#5] a3 b4 e5@3 ~ a4", E: "a4@2 a3@2 a4@2 c#5@4 a4@5 ~", F: "[b4,d#5] a3@2 ~ [b4,d#5]@4 ~@8",
  G: "a3@2 a4@2 c#5@2 e5@3 a3 b4@3 ~ c#5@2", H: "d#5 ~ b4 ~ d#5 ~ f#5 ~ e5 ~ c5 ~ g5 ~ e5 ~",
  I: "g#5@2 e4@2 g#4@2 b4@2 e5@2 ~ b4@2 [c#4,f#4,a#4]@3", J: "~ b4 a#4 f#4 a#4 b4 a#4 f#4",
  K: "[e4@2 e4@2 f#4@2 e5@3 ~ b4@2 [c#4,f#4,a#4,b4,e5]@9 ~ [f#4,b4]!2 [f#4,b4]@2 ~ [f#4,a#4,b4]@2 [c#4,f#4]@2 ~]/2", // F#7 B5 Bmaj7 F#5
  L: "[b3,e4]@2 b3@2 e4@2 g#4@2 e5@2 ~ b4@2 [c#4,f#4,a#4]@3", M: "~@2 b4 ~ a#4 ~ f#4 ~ a#4 ~ b4 ~ a#4 ~ f#4 ~",
  N: "[e4@2 e4@2 g#4@2 e5@3 ~ g#4@2 [c#4,f#4,a#4,b4,e5]@33 ~@3]/3", O: "[d4,g4,b4,e5]@11 ~@3 [c4,f4,a4,b4,e5]!2",
  P: "[c4,f4,a4,b4,e5]@11 ~@3 [b3,e4,g#4,b4]!2", // Fmaj7 E
  Q: "[[b3,e4,g#4,b4,e5]@5 ~ [a3,d4,f#4,a4,d5]@20 ~@4 [d4,g4,b4,e5]!2]/2", // E D Em7
  R: "[d4,g4,b4,e5]@11 ~@3 [e4,a4,b4,c#5,e5]!2", S: "[e4,a4,b4,c#5,e5]@11 ~@3 [c#4,f#4,a#4,b4]!2",
  T: "[[c#4,f#4,a#4,b4]@2 ~ [f#4,b4,e5]@2 [f#4,b4,e5]@2 ~ [c#4,f#4,a#4,b4,e5]@19 ~@3 [d#4,g#4,b4,e5]!2]/2", // F# Esus2 F#7 Emaj7
  U: "[d4,g4,b4,e5]@11 ~@3 [c4,f4,a4,b4]!2", V: "[d4,g4,b4,e5]@11 ~@3 [e4,a4,c#5]!2", W: "[e4,a4,b4,c#5,f#5]@13 ~@3",
  X: "[f#4,b4,e5]@2 [f#4,b4,e5] [f#4,b4,e5]@2 [f#4,b4,e5]@2 [f#4,b4,e5] [f#4,b4,d#5,e5]@2 [f#4,b4,d#5,e5] [f#4,b4,d#5,e5]@2 [f#4,b4,e5]@2 [f#4,b4,e5]", // Esus2 B Esus2
  Y: "[f#4,b4,e5]@2 [f#4,b4,e5] [f#4,b4,e5]@3 [f#4,b4,e5]@2 [f#4,b4,d#5,e5]@2 ~@6", // Esus2 B
  Z: "c#4@2 c#4 c#4@2 c#4@2 c#4 c#4@2 c#4 c#4@2 c#4@2 c#4", AA: "c#4@2 c#4 c#4@2 c#4@2 c#4 c#4@2 b3@2 b3@3 ~",
  AB: "c#4@2 b3@2 c#4@2 b3@2 b3@3 ~@3 [b4,e5,g#5]!2", AC: "[b4,e5,g#5]@11 ~@3 [a4,d5,e5,f#5]!2",
  AD: "[a4,d5,e5,f#5]@13 ~@3", // D
  AE: "[c#4,g#4,c#5]@2 ~ [c#4,g#4,c#5,f5]@2 ~ [c#4,f#4,b4,d#5]@2 [c#4,g#4,c#5,f5]@2 c#4 c#4@2 [c#4,f#4,b4] [c#4,f#4,b4]@2", // C#5 C# B C# F#sus4
  AF: "[c#4,g#4,c#5,f5]@2 ~ [c#4,g#4,c#5,f5]@2 ~ [f#4,b4]@2 [b4,e5,g#5]@3 ~ [b4,e5,g#5]@2 [b4,e5,g#5]!2", // C# B5 E
  AG: "[c#4,g#4,c#5,f5]@2 ~ [c#4,g#4,c#5,f5]@2 ~ [b3,f#4,b4,d#5]@2 [c#4,g#4,c#5,f5]@3 ~@5", // C# B C#
  AH: "[[f#4,a4,b4,e5]@26 ~@3 [e4,g#4] [e4,g#4]@2]/2", // F#m7 E
  AI: "[[e4,g#4]@2 [e4,a4]@2 [e4,a4]@2 [e4,g#4,b4]@2 [e4,g#4,b4]@13 [e4,g#4,b4]!3 [e4,g#4]@2 [e4,a4]@2 [e4,b4]@2 ~@2]/2", // E A5 E A5 E5
  AJ: "[g#3,d#4,f#4,b4]@13 ~@3", AK: "~@6 [d4,a4,d5]!2 [d4,a4,d5]@6 ~@2", AL: "~@8 f#4@2 f#4 f#4@2 f#4@2 f#4",
  AM: "[f#3 e3 f#3 e3 a3 f#3 b3 f#3 a3 b3 c4 c#4 e4 f4 f#4 [f#4,a4,b4,e5]@27 ~@3 [e4,g#4]@2 [e4,g#4]]/3", // F#m7 E
  AN: "[[f#4,a4,b4,e5]@19 ~@3 g#4 [a4,b4] [c#5,a5]@2 ~ g#5@2 e5@2 ~]/2", // F#m7 Asus2 F#m
  AO: "[a4,d5,f#5]@10 [a4,c#5,e5,a5]@3 ~ [a4,c#5,e5,a5]@2", // D A
  AP: "[g#4,b4,e5,g#5]@5 ~ f#4 [g#4,a4] [b4,g#5]@2 ~ a5@2 g#5@2 ~", // E Amaj7 E
  AQ: "[a4,d5,f#5]@2 ~ g5@2 f#5@2 ~ [a4,c#5,e5]@5 ~ [g#4,b4,e5,g#5]!2", // D A E
  AR: "[g#4,b4,e5,g#5]@5 ~ f#4 [g#4,a4] [b4,b5]@2 ~ g#5@2 e5@2 ~", // E Amaj7 B
  AS: "[a4,d5,f#5]@6 ~@2 [a4,c#5,e5,a5]@5 ~ [g#4,b4,e5]!2", AT: "[g#4,b4,e5]@2 g#5@2 e5@2 b4@2 a5@2 ~ g#5@2 e5@2 ~",
  AU: "d5@2 ~ a5@2 [d5,b5] ~ [e5,c#6] c#6@2 ~ a5@2 e5@2 ~", // G C#m
  AV: "[f#5,b5,e6]@2 [a5,b5,e6] [a5,b5,e6]@2 [f#5,b5,e6]@2 [f#5,b5,e6] [f#5,b5,e6]@2 ~@4 [f#5,c#6]!2", // Esus2 Asus2 Esus2 F#5
  AW: "[[f#5,c#6]@2 ~@2 [e5,b5]!2 [e5,b5]@15 [b4,f#5]@2 [b4,f#5] ~ [b4,f#5]@2 [a4,e5]@2 [a4,e5]@2 [a4,e5]]/2", // F#5 E5 B5 A5
  AX: "[[a4,e5]@2 ~@2 [f#4,c#5]@2 [f#4,c#5]@2 ~@2 [e4,g#4,b4,e5]!2 [e4,g#4,b4,e5]@17 ~@3]/2", // A5 F#5 E
  AY: "[[a4,e5]@2 [f#4,c#5]@2 [f#4,c#5]!2 [f#4,c#5]@2 [e4,b4]@2 [e4,g#4,b4,e5]!2 [e4,g#4,b4,e5]@13 a3!2 b3!2 c4!3]/2", // A5 F#5 E5 E
  AZ: "[g#4,b4,e5]@5 ~ [f#4,b4] [g#4,a4,c#5,d5] [b4,e5,g#5] ~@2 a5@2 g#5@2 ~", // E B5 Dmaj7 E
  BA: "[[a4,e5]@2 [f#4,c#5]@2 [f#4,c#5]!2 [f#4,c#5]@2 [e4,b4]@2 [e4,g#4,b4,e5]!2 [e4,g#4,b4,e5]@15 ~ a3 [b3,c#4] [a3,b3] [f#3,g#3]]/2", // A5 F#5 E5 E Bsus2 Asus2 F#sus2
  BB: "f#3@2 [a3,e4,a4,c#5]@3 f#3 f#3@2 [f#4,b4,d#5]@2 ~ f#3 f#3@2 [a3,e4,a4,c#5]@2", // A B A
  BC: "~ f#3 f#3@2 [f#4,b4,d#5]@2 ~ [e4,a4,c#5] [f#4,b4,d#5]@2 [f#4,b4,d#5] [g4,c5,e5] [e4,a4,c#5]@2 ~ f#3", // B A B C A
  BD: "f#3@2 [a3,e4,a4,c#5]@3 f#3 f#3@2 [f#4,b4,d#5]@2 ~ [g4,c5,e5] [f#3,f#4,b4,d#5]@2 [a3,e4,a4,c#5]@2", // A B C B A
  BE: "~ a4 b4 [g#4,a4] b4 [g#4,a4] g#4 [e4,f#4] g#4 [e4,f#4] d4 [b3,c#4] d4 c#4@2 c#4", // Amaj7 Esus2 Bsus2
  BF: "[f#3@2 [a3,e4,a4,c#5]@3 f#3 f#3@2 [f#4,b4,d#5]@2 ~ f#3 f#3@2 [a3,e4,a4,c#5]@4 [f#4,b4,d#5]@2 [e4,a4,c#5]@2 [f#4,b4,d#5]@2 [g4,c5,e5]@2 [g#4,c#5,f5]@2 [b4,e5,g#5]@3 ~]/2", // A B A B A B C C# …
  BG: "~@3 g#5 f#5 g#5@2 f#5 g#5@5 a5 ~ g#5", BH: "c#6 b5 ~ g5 g#5 g5 ~ f#5 e5 f#5 ~ g#5 e5@3 ~",
  BI: "e5@2 ~ [a4,b4,c#5] [d5,g#5] f#5 ~ b5 f#5 c#5 e5 g#5 c#5 e5 [f#5,g5] c#5", // A Ddim Gmaj7
  BJ: "e5 g#5 c#5 [e5,g#5] c#6 e5@6 ~@3 f#5@2", BK: "g5 e5@2 c#5 e5@2 ~ d5 e5@2 c#5@2 f#5@2 e5@2",
  BL: "f#5@2 e5@2 f#5@9 e5@2 ~",
  BM: "[f#5 g#5 ~ e5 e5@3 ~@3 [b4,c#5] [d5,e5] c#5 g#4 b4 g#4@2 g4 ~ f#4 e4 f#4 ~ e4@3 f#4 [g#4,a4] e4@3 ~]/2", // Bsus2 Dsus2 Amaj7
  BN: "a#4 [b4,c#5] d#5 [e5,f#5] g#5 [a5,b5] g#5 [a5,b5] [f#5,g#5] [g#5,a5] b5 g#5!2 [a5,b5] c6 [c#6,d#6]", // Bsus2 Esus2 Asus2 F#sus2 Amaj7 Asus2 C#sus2
  BO: "f#6 [f#6,g#6] b6 [c#6,d#6] [e6,f#6] [g#6,a6] g#6 a6 g#6 [e6,f#6] f#6 e6 f#6@2 ~ e6", // F#sus2 C#sus2 Esus2 Amaj7 Esus2
  BP: "a6 f#6@2 ~ a6@3 ~ a6 f#6@6 [c#6,e6]", // C#m
  BQ: "[f#6@2 c#6 [b5,c#6] c#6@2 b5 [g#5,a5] b4 a4 ~ b4 c#5 b4 ~ c#5@5 b4@2 a4 b4 ~ [a4,d#5]@2 b4 a4 f#4@2 ~]/2", // Bsus2 Amaj7 Adim
  BR: "f#4@2 [f#4,g#4] [a4,b4] f#6 a6@2 a6 c#7@2 ~ a6!2 f#6 e6 a6", // F#sus2 Asus2
  BS: "a6 g#6!2 f#6@2 [e6,f#6] [c#6,d6] a5 c#6 f#6 ~ g#6!2 a6!2 a#6", BT: "b6@2 c#7@2 d#7@2 e7@2 f#7@5 ~ e7@2",
  BU: "[c#5,e5]@13 ~@3", BV: "[b4,d#5]@13 ~ [c5,d#5] [b4,d5]", BW: "[a4,c#5]@10 c#5@3 c#5@2 ~",
  BX: "c#5@2 ~ c#5@2 ~ c#5@2 ~ c#5 c#5@5 ~",
  BY: "[[a4,c#5]@3 [a4,c#5]@2 ~ f#4 e4 [a4,c#5]@2 ~ f#4 e4@2 [a4,c#5]@4 f#4 e4 [a4,c#5]@2 ~ [a4,c#5] f#4 e4 [a4,c#5]@3 ~ f#4@2]/2", // A
  BZ: "[a4,c#5]@6 c#5@2 b4@2 e5 c#5 e5 c#5 e5 c#5", CA: "e5 c#5 g#5 c#5 f#5 c#5 g#5 c#5 a5 c#5 f#5 c#5 g#5 b4 c#5 b4",
  CB: "[b4,d#5]@6 ~@2 [b4,d#5]@5 ~ [c5,d#5] [b4,d5]", // B Cm Bm
  CC: "[a4,c#5]@3 [a4,c#5]@2 ~ f#4 e4 [a4,c#5]@2 ~ f#4 e4@2 [a4,c#5]@2", // A
  CD: "~@2 f#4 e4 [a4,c#5]@2 ~ [a4,c#5] f#4 [g#4,c#5] ~@6", CE: "f#3 e3 f#3 e3 a3 f#3 b3 f#3 a3 b3 c4 c#4 e4 f4 f#4 ~",
  CF: "[~ f#3 f#3@2 [f#4,b4,d#5]@2 ~ [e4,a4,c#5] [f#4,b4,d#5]@2 [f#4,b4,d#5] [g4,c5,e5] [e4,a4,c#5]@2 ~ f#3@3 [a3,e4,a4,c#5]@3 f#3 f#3@2 [f#4,b4,d#5]@2 ~ f#3 f#3@2 [f#3,e4,a4,c#5]@2]/2", // B A B C A B F#m7
})).s("gm_overdriven_guitar").gain(0.47)

// bass · electric bass finger
const bass = note(`<
  ~@40 A B A B C@15 D E@4 F G H@2 E@4 F G I J K L K L K L K M E@2 H@2 E@3 N A B A B C@7 D E@4 F G H@2 E@4 F G O J K L K
  L K L K M E@2 H@2 E@3 N ~@2 P Q R ~ R S A@4 T U A@2 U@3 V W X U Y U@2 Z@2 U@3 J U@3 J U@4 E@4 AA G H@2 E@6 AB
>`.pickRestart({
  A: "c#3@2 c#3 c#3@2 c#3@2 c#3 c#3@2 c#3 c#3@2 c#3@2 c#3", B: "c#3@2 c#3 c#3@2 c#3@2 c#3 c#3@2 b2@2 b2@3 ~",
  C: "c#3!16", D: "c#3@2 ~ c#3@2 ~ b2@2 c#3@3 ~@5", E: "f#2@2 f#2 ~@3 f#2!2 f#2@2 f#2 ~@3 f#2!2",
  F: "g#2@2 g#2 ~@3 g#2!2 g#2@2 g#2 ~@3 g#2!2", G: "g#2@2 g#2 ~@3 g#2!2 a2@2 a2 ~@3 a2!2",
  H: "[f#2@2 f#2 ~@3 f#2!2 f#2@2 f#2 ~@3 f#2 f#2@2 e2 f#2 e2 a2 e2 b2 e2 a2 b2 c3 c#3 e3 f3 f#3!2]/2",
  I: "f#2@2 f#2 ~@3 e2@2 f#2@2 f#2 ~@3 e2@2", J: "~ e2 f#2 e2 a2 e2 b2 e2 a2 b2 c3 c#3 e3 f3 f#3!2",
  K: "d3@2 d3 d3@2 d3!3 a2@2 a2 a2@2 a2!3", L: "e3@2 e3 e3@2 e3!3 e3@2 e3 e3@2 e3!3",
  M: "b2@2 b2 b2@2 b2@2 b2 b2@2 ~@6", N: "f#2@2 f#2 ~@3 f#2!2 f#2@2 a2 b2!2 c3!3",
  O: "f#2@2 f#2 ~@3 e2@2 f#2@2 f#2 ~@3 f#2@2", P: "a2 [f#2,g#2] e2 ~@13", Q: "~@8 f#3@2 f#3@2 e3 f#3 g#3 e3",
  R: "[e2,f#2] [c#2,d2] ~@14", S: "~@4 c#3 e3 f#3!10", T: "e2@2 e2 e2@2 e2@2 e2 e2@2 e2 e2@2 e2@2 e2",
  U: "f#2@2 f#2 f#2@2 f#2@2 f#2 f#2@2 f#2 f#2@2 f#2@2 f#2", V: "f#2@2 f#2 f#2@2 f#2@2 f#3 f#3@2 f#2 f#2@2 f#3@2 f#3",
  W: "a2@2 a2 a2@2 a2@2 a2 a2@2 a2 a2@2 a2@2 a2", X: "b2@2 b2 b2@2 b2@2 b2 b2@2 b2 b2@2 b2@2 b2",
  Y: "f#2@2 f#2 f#2@2 f#2@2 f#3 f#3@2 f#3 f#3@2 f#3@2 f#3",
  Z: "[f#2@2 f#2 f#2@2 f#2@2 f#2 f#2@2 f#2 f#2@2 f#2@2 f#2@2 e2 f#2 e2 a2 e2 b2 e2 a2 b2 c3 c#3 e3 f3 f#3!2]/2",
  AA: "g#2@2 g#2@3 ~ g#2!2 g#2@2 g#2@3 ~ g#2!2", AB: "f#2@2 f#2 ~@3 f#2!2 f#2@2 f#2 ~@3 f#2 ~",
})).s("gm_electric_bass_finger").gain(0.08)

// drums · crash
const crash = s("cr").struct(`<
  ~@83 A ~@7 B ~@20 C ~@5 C ~ C@2 ~@2 C@2 ~ A C ~@6 B C ~ C ~@5 C ~@3 C@2 ~@2 C ~@7 C@2 ~@2 C@2 ~@10 C ~@7 C D C ~ C D E
>`.pickRestart({
  A: "x ~ x ~@2 x ~ x ~@8", B: "~@5 x ~@2", C: "x", D: "~@15 x", E: "x ~@6 x",
})).gain(0.25)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@24 A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A B A B D E F@7 G F@7 H F@3 I F@2 I ~ F@3 J F@3 K A B
  A B A B A B A B D E F@7 G F@7 H F@3 I F@2 I ~ F@3 J F@3 K L ~ L ~@5 M@31 N F@7 G F@6 O
>`.pickRestart({
  A: "x ~@6 x!2 ~@5 x!2", B: "~@2 x ~@4 x!2 ~@3 x!2 ~@2", C: "x ~ x!3 ~ x ~ x ~@7", D: "x ~ x!4 ~ x!2 ~ x ~ x!4",
  E: "x ~@2 x ~@2 x ~ x ~@7", F: "x ~ x ~ x ~ x!3 ~ x ~ x!3 ~", G: "x ~ x ~ x ~ x!10", H: "x!2 ~ x!2 ~@2 x!2 ~ x ~ x!4",
  I: "x ~ x ~ x ~ x!3 ~ x ~@5", J: "~@2 x ~ x ~@2 x ~@5 x!3", K: "~@7 x ~@8", L: "x", M: "x ~ x!4 ~ x!2 ~ x!4 ~ x",
  N: "x ~ x!4 ~ x!2 ~ x!3 ~@3", O: "x ~ x ~ x ~ x!3 ~ x!4 ~@2",
})).gain(0.25)

// drums · cowbell
const cowbell = s("cb").struct("<~@91 A ~@43 A B C B C ~@51>".pickRestart({
  A: "~ x ~@2", B: "~ x!3", C: "x!4",
})).gain(0.25)

// drums · bongos
const bongos = s("bongo:18").struct("<~@136 [~ x!3] [x!4] [~ x!3] [x!4] ~@51>").gain(0.66)

// drums · congas
const congas = s("conga:13").struct(`<
  ~@60 A@7 B A@7 ~ A@3 C A@2 C ~ A@3 C A@3 D ~@12 A@7 B A@7 ~ A@3 C A@2 C ~ A@3 C A@3 D ~@40 A@7 B A@6 C
>`.pickRestart({
  A: "~@4 x ~@8 x ~@2", B: "~@4 x ~@3 x!4 ~@4", C: "~ x ~@2", D: "~ x ~@14",
})).gain(0.81)

// drums · mt
const mt = s("mt").struct(`<
  ~@24 A B A B A B A B A B A B A B A ~ A B A B A B A B A B A B A B A B A B ~@21 C ~@2 C D ~@3 E ~@3 F A B A B A B A B A
  B ~@21 C ~@2 C D ~@3 E ~@3 F ~@4 G H I J ~@31 K ~@15
>`.pickRestart({
  A: "~@2 x!2 ~ x ~@4 x ~ x!2 ~@2", B: "x ~@2 x ~ x ~@4 x ~@3 x!2", C: "~@12 x!4", D: "x ~ x!2 ~ x ~ x!2 ~@7",
  E: "x ~@2 x ~@2 x ~ x ~ x ~ x!4", F: "~ x ~@2 x ~@2 x ~@2 x ~ x!4", G: "~ x ~@2 x ~@2 x", H: "~@2 x ~@2 x ~@2",
  I: "x ~@5 x ~@5 x ~ x!2", J: "x ~ x!14", K: "~@13 x!3",
})).gain(0.25)

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  ~@24 A@15 ~ A@19 ~ B@15 ~ B@3 C B@2 C ~ B@3 D B@3 E A@11 ~ B@15 ~ B@3 C B@2 C ~ B@3 D B@3 E ~@4 F@2 G ~ F@31 H B@14 I
>`.pickRestart({
  A: "x!16", B: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", C: "x ~ x!3 ~ x!3 ~ x!5 ~", D: "x ~ x ~ x ~ x!3 ~ x!3 ~@3",
  E: "x ~ x!2 ~ x!2 ~ x!2 ~ x ~@4", F: "x!8", G: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2",
  H: "x ~ x ~ x ~ x ~ x ~ x ~ x ~@2 x", I: "x ~ x!3 ~ x!3 ~ x ~ x!2 ~@2",
})).gain(1.28)

stack(vibraphone, overdriven_guitar, bass, crash, high_tom, cowbell, bongos, congas, mt, cabasa)

More by Van Halen