Strudelify
Pleasure Dome cover art

1991 · For Unlawful Carnal Knowledge

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, A@4 for four bars: 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 J M@3 N O P@2 Q R S@2 T O P@2 U V W X Y Z Y AA AB AC AD AE AB AC AD AE AB AC AD AE AB AC
  AD AF AG@2 AH@2 AI AJ AK AL@3 AH@2 AI AJ AM@2 AN AO AP AQ AR AS AT AU AV@2 AW@2 AV@2 AX@2 Y Z Y AA AB AC AD AE AB AC
  AD AF AG@2 AH@2 AI AJ AK AL@3 AH@2 AI AJ AM@2 AN AO AP AQ AR AY AT AU AV@2 AW@2 AV@2 AZ@2 BA BB BC BD BA BB BA BE BF
  BG BH BI BJ BK BL@2 BM BN BO BP@2 BQ BR BS BT BU BV BW BT BU BX@2 BT BU BY BZ BT CA CB CC AG@2 AH@2 AI AJ AK CD BA BB
  BC BD BA CE@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", // E5 F#
  M: "[e4@2 e4@2 g#4@2 e5@3 ~ g#4@2 [c#4,f#4,a#4,b4,e5]@33 ~@3]/3", N: "[d4,g4,b4,e5]@11 ~@3 [c4,f4,a4,b4,e5]!2",
  O: "[c4,f4,a4,b4,e5]@11 ~@3 [b3,e4,g#4,b4]!2", // Fmaj7 E
  P: "[[b3,e4,g#4,b4,e5]@5 ~ [a3,d4,f#4,a4,d5]@20 ~@4 [d4,g4,b4,e5]!2]/2", // E D Em7
  Q: "[d4,g4,b4,e5]@11 ~@3 [e4,a4,b4,c#5,e5]!2", R: "[e4,a4,b4,c#5,e5]@11 ~@3 [c#4,f#4,a#4,b4]!2",
  S: "[[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
  T: "[d4,g4,b4,e5]@11 ~@3 [c4,f4,a4,b4]!2", U: "[d4,g4,b4,e5]@11 ~@3 [e4,a4,c#5]!2", V: "[e4,a4,b4,c#5,f#5]@13 ~@3",
  W: "[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
  X: "[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
  Y: "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", Z: "c#4@2 c#4 c#4@2 c#4@2 c#4 c#4@2 b3@2 b3@3 ~",
  AA: "c#4@2 b3@2 c#4@2 b3@2 b3@3 ~@3 [b4,e5,g#5]!2", AB: "[b4,e5,g#5]@11 ~@3 [a4,d5,e5,f#5]!2",
  AC: "[a4,d5,e5,f#5]@13 ~@3", // D
  AD: "[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
  AE: "[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
  AF: "[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#
  AG: "[[f#4,a4,b4,e5]@26 ~@3 [e4,g#4] [e4,g#4]@2]/2", // F#m7 E
  AH: "[[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
  AI: "[g#3,d#4,f#4,b4]@13 ~@3", AJ: "~@6 [d4,a4,d5]!2 [d4,a4,d5]@6 ~@2", AK: "~@8 f#4@2 f#4 f#4@2 f#4@2 f#4",
  AL: "[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
  AM: "[[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
  AN: "[a4,d5,f#5]@10 [a4,c#5,e5,a5]@3 ~ [a4,c#5,e5,a5]@2", // D A
  AO: "[g#4,b4,e5,g#5]@5 ~ f#4 [g#4,a4] [b4,g#5]@2 ~ a5@2 g#5@2 ~", // E Amaj7 E
  AP: "[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
  AQ: "[g#4,b4,e5,g#5]@5 ~ f#4 [g#4,a4] [b4,b5]@2 ~ g#5@2 e5@2 ~", // E Amaj7 B
  AR: "[a4,d5,f#5]@6 ~@2 [a4,c#5,e5,a5]@5 ~ [g#4,b4,e5]!2", AS: "[g#4,b4,e5]@2 g#5@2 e5@2 b4@2 a5@2 ~ g#5@2 e5@2 ~",
  AT: "d5@2 ~ a5@2 [d5,b5] ~ [e5,c#6] c#6@2 ~ a5@2 e5@2 ~", // G C#m
  AU: "[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
  AV: "[[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
  AW: "[[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
  AX: "[[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
  AY: "[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
  AZ: "[[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
  BA: "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
  BB: "~ 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
  BC: "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
  BD: "~ 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
  BE: "~@2 [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 ~", // B A B C C# E
  BF: "~@3 g#5 f#5 g#5@2 f#5 g#5@5 a5 ~ g#5", BG: "c#6 b5 ~ g5 g#5 g5 ~ f#5 e5 f#5 ~ g#5 e5@3 ~",
  BH: "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
  BI: "e5 g#5 c#5 [e5,g#5] c#6 e5@6 ~@3 f#5@2", BJ: "g5 e5@2 c#5 e5@2 ~ d5 e5@2 c#5@2 f#5@2 e5@2",
  BK: "f#5@2 e5@2 f#5@9 e5@2 ~",
  BL: "[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
  BM: "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
  BN: "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
  BO: "a6 f#6@2 ~ a6@3 ~ a6 f#6@6 [c#6,e6]", // C#m
  BP: "[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
  BQ: "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
  BR: "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", BS: "b6@2 c#7@2 d#7@2 e7@2 f#7@5 ~ e7@2",
  BT: "[c#5,e5]@13 ~@3", BU: "[b4,d#5]@13 ~ [c5,d#5] [b4,d5]", BV: "[a4,c#5]@10 c#5@3 c#5@2 ~",
  BW: "c#5@2 ~ c#5@2 ~ c#5@2 ~ c#5 c#5@5 ~",
  BX: "[[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
  BY: "[a4,c#5]@6 c#5@2 b4@2 e5 c#5 e5 c#5 e5 c#5", BZ: "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",
  CA: "[b4,d#5]@6 ~@2 [b4,d#5]@5 ~ [c5,d#5] [b4,d5]", // B Cm Bm
  CB: "[a4,c#5]@3 [a4,c#5]@2 ~ f#4 e4 [a4,c#5]@2 ~ f#4 e4@2 [a4,c#5]@2", // A
  CC: "~@2 f#4 e4 [a4,c#5]@2 ~ [a4,c#5] f#4 [g#4,c#5] ~@6", CD: "f#3 e3 f#3 e3 a3 f#3 b3 f#3 a3 b3 c4 c#4 e4 f4 f#4 ~",
  CE: "[~ 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