Strudelify

Panama

Van Halen

KeyE majorTempo142 bpm
0:00/0:00
// Panama — Van Halen
// 142 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 6 acoustic bass (copy of ch 5 electric bass pick); ch 7 electric bass finger (copy of ch 5 electric bass pick)
// note: Full arrangement: all 124 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(142/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 B C D E F G@2 H@2 I J K L M@2 N O P Q P Q P Q R S T@2 U V W@2 ~ X Y Z AA AB AC AD AE AF P Q P Q P Q P AG T@2 U V
  W@2 ~ X Y Z AA AB AC AD AE AF P Q P Q P AG AH AI AJ AK AL AM@2 AN AO AP AQ AR AS AT AS AU AV AW AX AY AZ BA BB@2 BC@2
  BD BE BF BG BH BI BJ BK BL@3 BM BN P Q P Q P Q P Q P Q P AG
>`.pickRestart({
  A: "~@2 [b4,e5,g#5]@3 ~@3 [b4,e5,a5]@3 ~ [b4,e5,a5] ~@3", B: "~@2 [b4,d#5,f#5] ~@5 [b4,e5,g#5] ~@5 [b4,d#5,f#5]@2",
  C: "~@6 [a4,d5,f#5] ~@5 [a4,d5,g5] ~@3", D: "~@4 [g4,b4]@5 ~@7",
  E: "~@2 [b4,e5,g#5]@3 ~@3 [b4,e5,a5]@3 ~@3 [b4,d#5,f#5]@2", F: "~@4 [b4,e5,g#5]@3 ~@3 [b4,e5,a5]@3 ~@3",
  G: "[~@2 [a4,d5,f#5]@3 ~@3 [a4,d5,g5]@3 ~@3 [a4,c#5,e5]@7 ~@11]/2", H: "[[c#4,g#4,c#5,e5]@19 ~@7 [f#4,b4,e5] ~@5]/2",
  I: "[f#4,b4,d#5] ~@9 [e4,a4,c#5]@6", J: "~@14 [c#4,g#4,c#5,e5]!2", K: "e5@5 ~@5 d#5 ~ c#5 ~ g#4 ~",
  L: "d#5@2 ~ e5@2 ~ d#5@3 ~ e5 ~ d#5 ~ b3 ~", M: "[~@2 [e4,a4,c#5]@3 ~@5 [e4,a4,c#5]@11 ~@11]/2",
  N: "~@2 e5 ~ d#5 ~@3 e5 ~@3 b4 ~@3", O: "d#6 ~@3 e6 ~@3 b5 ~@3 b5 ~ [e3,b3,e4]@2", P: "~@4 [e4,a4]@3 ~@5 e3 ~@3",
  Q: "~@2 [e4,a4,d5] ~ [e4,a4,c#5]@3 ~ [d4,g4] [e4,a4] ~@4 [e3,b3,e4]@2", R: "~@4 [e4,a4]@3 ~ [a4,d5]@3 ~@5",
  S: "~@4 e4 ~ e3 ~ [d4,g4] [e4,a4] [d4,g4]@3 ~@3", T: "[~@2 [b3,e4]@19 ~@5 [a4,e5] ~@3 [a4,c#5]@2]/2",
  U: "~@8 e3 ~ e3@3 ~@3", V: "e3@2 ~ e3@2 ~@3", W: "[~@2 [b3,e4]@19 ~@5 [b4,e5]@3 ~ [a4,c#5]@2]/2",
  X: "~@14 [c#4,f#4,b4]!2", Y: "b4@5 ~@5 e5 ~@3 f#4 ~", Z: "b4 ~@3 f#4 ~@3 a#4 ~@3 [b3,f#4]@3 ~",
  AA: "~@6 e5@4 b4 ~ c#5@3 ~", AB: "c#5@5 ~@11", AC: "~@2 d4 a#3 a3@5 ~@7", AD: "~@2 g3@4 ~@6 e3 ~ b3 ~",
  AE: "~@6 b5 ~ e5 ~@5 e6 ~", AF: "d#6 ~@5 b5 ~ b5 ~@5 [e3,b3,e4]@2",
  AG: "~@2 [e4,a4,d5] ~ [e4,a4,c#5]@3 ~ [d4,g4] [e4,a4] ~@6", // Dsus2 A G5 A5
  AH: "[e3,b3,e4] ~ [e3,b3,e4] ~@5 [a4,d5]@3 ~@3 [c4,g4]@2, ~@14 c5 ~", AI: "~@6 [a3,d4,g4]@3 ~@3 [a3,g4] ~ f#5@2",
  AJ: "~@2 f#5 ~@5 f#5 ~ f#5 ~@5", AK: "f#5 ~ e5 ~ e5@3 ~@3 f#5 e5 e5@4", AL: "~@4 f#5 a5 f#5 f5 ~@4 a5 f#5 f5 f#5",
  AM: "[~@4 d5 e5 f#5 e5 d#5@4 ~@2 f#5@5 ~@3 a5 ~ e5 ~@5 c#6 ~]/2", AN: "~@4 d5 ~ e5 ~@9",
  AO: "~@2 e5 ~ d#5 ~@5 d#5!2 ~@4", AP: "f4 ~ e4 ~@5 f#4 ~ g4 ~@5", AQ: "f#4@4 ~@2 e4 ~@9", AR: "~@6 f#4@3 ~@5 d4 ~",
  AS: "f#4 ~@3", AT: "~@2 [c4,g4] ~@3 f#4@3 ~@5 d4 ~", AU: "~@2 [e3,b4] ~@7 g4 ~ f#4 ~@3", AV: "~@3 a4@2 ~ b4 ~@7 a4 ~",
  AW: "a4@4 ~@6 g4 ~ f#4 ~@3", AX: "~@2 [e4,b4]@3 ~@3 [e4,b4]@3 ~@3 [a4,d5]@2", AY: "~@6 g4 f#4 ~@6 d4 ~",
  AZ: "e3@3 ~@5 g4 ~ c4 ~@5", BA: "~@2 g4 ~@3 f#4@3 ~@5 d4 ~", BB: "[f#4 ~@11 f#4 e4@7 ~@6 g4 ~ f#4 ~@3]/2",
  BC: "[e3@3 ~@5 g4@3 ~ c4 ~ c4@4 g4 ~@7 g#4 ~ f#4 ~@3]/2", BD: "e3 ~@5 e3 ~@5 e3 ~@3",
  BE: "~@2 e3 ~ [e4,b4] ~@5 g4 ~ f#4 ~@3", BF: "~@2 [c4,f#4]@4 ~@6 c#4 ~@3", BG: "[c#4,f#4] ~@11 g#4@3 ~",
  BH: "~@7 [f3,c4,f4,a4]", BI: "~@14 [f#3,d4] ~", BJ: "~@14 [g3,d4] ~", BK: "~@8 g3 ~ g3 ~@5",
  BL: "[~@4 g#3 ~ g#3 ~ g#3 ~ g#3 ~ g#3 ~ [a3,e4,a4]@5 ~@5 [a3,e4,a4] ~ [a3,e4,a4] ~@3 [a#3,e4,g#4]@7 ~@11]/3", // A5 A#m7b5
  BM: "~@4 [b3,f#4,b4] ~@3 [b3,f#4,b4] ~@3 [b3,f#4,b4] ~@3", BN: "~@7 [e3,b3,e4]",
})).s("gm_distortion_guitar").gain(0.41)

// chords · distortion guitar
const distortion_guitar_2 = note(`<
  ~ A B C@2 D E F G ~ H I J K@2 L M N O P Q P Q P Q R S T U V@2 T U W@2 X Y Z AA AB AC AD AE P Q P Q P Q P Q T U V@2 T U
  W@2 X Y Z AA AB AC AD AE P Q P Q P Q AF AG AH@2 AI AJ AK AL AM AN AO@2 AP AQ AR AS AT AU AV AW AX AY AZ AU BA AU BB@2
  BC BD BE BF ~ BG ~ BH BI@2 ~ P Q P Q P Q P Q P Q P Q
>`.pickRestart({
  A: "~@6 [b4,e5,g#5] ~@7 [b4,d#5,f#5]@2", B: "~@4 [b4,e5,g#5]@3 ~@3 [b4,e5,a5]@3 ~@3",
  C: "[~@2 [a4,d5,f#5]@3 ~@3 [a4,d5,g5]@3 ~@3 [a4,c#5,e5]@5 ~@11 e3@2]/2", D: "~@6 [e4,b4,e5] ~@5 [e4,b4,e5] ~@3",
  E: "~@2 [e4,b4] ~@5 [e4,b4] ~@5 [b4,d#5,f#5]@2", F: "~@6 [a4,d5,f#5] ~@5 [a4,d5,g5] ~@3",
  G: "~@2 g#5@4 ~@2 c#5@4 ~@2 [c#4,g#4,c#5,e5]!2", H: "~@6 [b4,d#5]@3 ~@3 [f#4,b4,d#5]@3 ~, ~@3 f#4@3 ~@2",
  I: "~@2 [e4,a4,c#5]@3 ~ [e4,a4,c#5]@3 ~@7", J: "~@2 b3@4 ~@2 c4@3 ~ a3 ~@3",
  K: "[[g#4,c#5]@21 ~ [f#4,b4]@3 ~ [f#4,b4]@3 ~ b3 ~, c#4@11 ~@21]/2", L: "[f#4,b4,d#5] ~@5 [e4,a4,c#5]@3 ~@7",
  M: "~@8 a3 ~ a3 ~ a3 ~ b3 ~", N: "~@6 b4 ~@3 d#5 ~@3 e6 ~", O: "~@2 b5 ~@3 d#6 ~@3 b5 ~@5",
  P: "~@2 [e3,b3,e4] ~@5 [a4,d5]@3 ~@3 [e4,a4]@2", Q: "~@4 e4 ~ e3 ~@3 [d4,g4]@3 ~@3",
  R: "~@2 [e3,b3,e4] ~@9 e3 ~ [e4,a4]@2", S: "~@2 [e4,a4,d5] ~ [e4,a4,d5]@3 ~@7 [d#4,a4] ~", T: "~ e3@4 ~@3",
  U: "e3@4 ~@2 e3@3 ~@7", V: "[~@2 [a4,d5]@19 ~@5 [a4,c#5]@3 ~ [a4,d5] ~]/2", W: "[~@2 [a4,d5]@17 ~@11 b4!2]/2",
  X: "[c#4,f#4,b4]@5 ~@7 b4 ~@3", Y: "~@2 a#4 ~@3 b4 ~@3 f#4 ~@5", Z: "[c#4,g#4]@11 ~@5", AA: "b4@5 ~@11",
  AB: "~@14 c4 ~", AC: "g#3 ~@7 f#3@3 ~@5", AD: "~@2 e6 ~ d#6 ~@5 d#5 ~ b4 ~@3", AE: "~@2 b5 ~ b5 ~@5 b5 ~ b5 ~@3",
  AF: "~@4 [e4,a4]@3 ~@5 e3 ~@3", AG: "~@2 [b3,d4,g4]@3 ~@5 [c4,g4] ~@5",
  AH: "[~@4 f#5 ~ f#5 ~@5 f#5@8 ~@2 d5 ~ e5 ~@7]/2", AI: "~@2 e5 ~@5 f#5 a5 f#5 b5 ~@4", AJ: "f5 f#5 f5 e5 ~@12",
  AK: "~@2 b5 ~ e5 ~@5 b5 ~ e5 ~@3", AL: "e5 ~ e5 ~@5 e5 d5 e5 d5@3 ~@2", AM: "~@6 b4 ~ f#4 ~@3 b4 ~ f#4 ~",
  AN: "~@4 d#4@3 ~@5 f#4 ~ d4 ~", AO: "[~@8 b3@12 ~@6 g4 ~ f#4 ~@3]/2", AP: "~@6 d4 ~ c4@8",
  AQ: "~@4 [c4,g4] ~@5 g4 ~ f#4 ~@3", AR: "~@6 d4 ~ e4@8", AS: "~@2 e4 ~@3 f#4@3 ~@5 d4 ~",
  AT: "f3@2 ~@6 e5@2 ~ b4@2 ~@3", AU: "~@6 f#4@3 ~@5 d4 ~", AV: "e3 ~@5 e3 ~@5 e3 ~@3",
  AW: "~@2 e3@3 ~@3 g4 ~ f#4@3 ~@3", AX: "~@2 [c4,f#4]@4 ~@2 g4@3 ~ c4 ~ f#4@2", AY: "~@10 g4 ~ f#4 ~@3",
  AZ: "~@2 e4@5 ~@9", BA: "~@2 c4@4 ~@2 g4 ~@3 g4 ~ f#4@2, ~ f#4@6 ~",
  BB: "[~@2 [e4,b4]@3 ~@3 [e4,b4]@3 ~@3 [e4,b4]@4 ~@4 f#4@3 ~@5 d4 ~]/2", BC: "e3@3 ~@5 g4@3 ~@3 [e4,b4] ~",
  BD: "~@2 [c4,g4]@5 ~@9", BE: "[e3,b3,e4] ~@15", BF: "~@2 [f3,c4,f4,a4] ~ [f3,c4,f4,a4] ~@11",
  BG: "~@4 g3 ~ g3 ~@5 g3 ~ [g#3,e4]@2", BH: "~@4 [a3,e4,a4] ~ [a3,e4,a4] ~@5 [a3,e4,a4] ~@3",
  BI: "[~@8 g#3 ~ e3 ~ e3 ~ [b3,f#4,b4]@5 ~@3 [b3,f#4,b4] ~@3 [b3,f#4,b4] ~@3 [b3,f#4,b4] ~]/2", // B5
})).s("gm_distortion_guitar").gain(0.41)

// bass · electric bass pick
const bass = note(`<
  ~@8 A B C D E B C D F ~ G@2 H I H I H I J K I@7 L M N O P Q ~ G@2 R I R I R I S I@8 L M N O P Q ~ G@2 R I R I R T@4
  U@2 V W X@2 Y@2 Z AA AB AC AD AE AB AF AG AH I AI AG AJ I AK AL AJ AM AN AO AP AQ AR AS AT G@2 R I R I AU@2 AV I AW I
  AX
>`.pickRestart({
  A: "~@2 e3!2 e3@12", B: "c#2@2 c#2!6", C: "c#2!8", D: "b1 a1@2 a1 a2 a1!3",
  E: "a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 a1@2 c#2!2", F: "a1!7 b1", G: "[~@7 e1@2 e1!7]/2", H: "e1!4 a1 g1@2 e1", I: "e1!8",
  J: "e1 g#1 a1 a#1 b1 d2 d#2 e2", K: "~ e1!7", L: "f#1@4 f#1@4 f#1 ~ f#2@2 f#2@2 f#2@2", M: "f#2!4 f#1 a#1 b1 c2",
  N: "c#2@2 c#2@2 c#2@2 c#2 g#1", O: "c#2 g#1 c#2!6", P: "~ d2 a#1 a1@4 c2", Q: "g#1 g1@3 f#1@2 e1 b1",
  R: "e1!5 g1@2 e1", S: "e1@2 g1@2 a1@2 b1@2 g1 a1 g1@4 e1@2",
  T: "[e1!5 a1 b1 c2@2 b1@2 a1@2 c2 a1 b1@2 b1!4 c2 c#2 e1@2 e1 e2 e1 g1 a1 a#1 b1]/4",
  U: "[b1!2 b2 b1!2 c2 c#2 e1@2 e1 g1 a1 b1 g1 a1 b1]/2", V: "b1!5 d2 e2 e1", W: "e1!2 e2 e1!2 d2 c#2 c2",
  X: "[c2!2 c3 c2!3 c#2 d2@2 d2 d2@2 d2 c2 g1 f#1]/2", Y: "[e1@14 d2 c#2]/2", Z: "c2@7 g1", AA: "c2@6 g1 f#1",
  AB: "e1@7 b1", AC: "e2@3 b1", AD: "f1@8 f2@3 f2@2 c2@3", AE: "f1@6 g1 f#1", AF: "e2", AG: "c2!8", AH: "c2!6 g1@2",
  AI: "e1!6 e2@2", AJ: "c2!6 g1 f#1", AK: "e1!6 e2 d2", AL: "c2!2 c3 c2!5", AM: "e1!7 f1", AN: "f1!7 f#1",
  AO: "f#1!7 g1", AP: "g1!7 g#1", AQ: "g#1!7 a1", AR: "a1!7 a#1", AS: "a#1!7 b1", AT: "b1!6 a1 b1",
  AU: "[e1!5 g1@2 e1@2 e1!7]/2", AV: "e1 g1 a1!2 b1 d2@2 e1", AW: "e1@2 e1@2 e1@2 e1@2 g1 a1 g1@4 e1@2",
  AX: "e1!4 b1 g1@2 ~",
})).s("gm_electric_bass_pick").gain(0.41)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B@10 C B D E F ~ G H C B D B D B D I B@6 J K L B M N O ~ P Q D B D B D B D I B@6 J B D B R N S ~ P H C B D B D T P
  U V W L X L Y Z B@7 D B@7 D B@12 G H C B D B D B AA W@3 K
>`.pickRestart({
  A: "~ x ~@2 x ~ x ~", B: "x!4", C: "x ~ x ~ x ~@2 x", D: "x ~ x ~ x!2 ~ x", E: "x ~@2 x ~ x ~ x", F: "x ~@4 x!2 ~",
  G: "~@7 x", H: "~ x!2 ~ x ~ x ~", I: "~ x ~ x!2 ~ x ~", J: "x ~ x!2 ~ x ~ x", K: "x ~@3 x!2 ~@2", L: "x ~@3 x!2 ~ x",
  M: "x!3 ~", N: "~ x!3 ~@3 x", O: "x!2 ~@2 x ~@2 x", P: "~ x ~ x ~ x ~ x", Q: "~ x ~@2 x ~@3 x ~@3 x ~@3",
  R: "x ~ x ~ x!2 ~@2", S: "x!2 ~@2 x ~ x!2", T: "x ~ x ~ x ~ x!2", U: "~ x!2 ~ x ~@3", V: "x ~@3 x ~@2 x", W: "x!2",
  X: "x ~@3 x ~ x!2", Y: "~ x ~@2 x!2 ~ x", Z: "~ x ~@2 x!2 ~@2", AA: "x ~ x!2 ~ x ~@2",
})).gain(0.56)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A B@2 C B@3 D E ~@2 B@8 F B@6 G B@3 D ~ H ~@2 B@8 F B@6 G B@4 ~ I ~ J B@15 D B@20 K@8 ~ B@7 L B K B K
>`.pickRestart({
  A: "~ x!7", B: "~ x ~ x", C: "~@2 x ~@4 x", D: "~ x ~@2", E: "~@2 x ~ x ~@2 x", F: "~@3 x", G: "~ x ~@2 x ~ x ~",
  H: "~@3 x ~@2 x ~", I: "~@3 x ~@4", J: "~ x ~ x ~ x ~@2", K: "~@2 x ~@3 x!2", L: "~ x ~@2 x ~@3",
})).gain(0.56)

// drums · low tom
const low_tom = s("lt").struct("<~@4 A B C ~ D ~@30 E ~@2 F ~@23 F ~@52 G ~@4>".pickRestart({
  A: "~@2 x ~@2 x ~ x", B: "~@5 x ~@2", C: "~@5 x ~ x", D: "~ x!7", E: "~@5 x!2 ~", F: "~ x ~ x ~ x ~@2", G: "~@14 x!2",
})).gain(0.56)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@27 A B C D E ~@19 B D F G ~ B E H ~@24 F ~ I J D E K A D@2 C ~ I L ~ F G M D@2 K H ~@19
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@5 x ~ x", C: "~ x ~ x ~@3 x", D: "~ x ~ x ~ x ~ x", E: "~@3 x ~ x ~ x", F: "~@3 x ~ x ~@2",
  G: "~@3 x ~@4", H: "x", I: "~@7 x", J: "~ x ~@6", K: "~ x ~ x ~ x ~@2", L: "~ x ~@3 x ~ x", M: "~@3 x ~@3 x",
})).gain(0.24)

// drums · mid tom
const mid_tom = s("mt").struct("<~@82 [~@7 x] ~@36 [~@12 x!2 ~@2] ~@4>").gain(0.56)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@9 A B C D E F ~ G ~@2 H I J K L M E C ~@6 N O L K P Q ~@4 R S J T E U L V W ~@6 X J T Y Z AA ~@3 J C E I AB T AC ~@2
  AD ~ AD@3 ~@3 AD ~@5 AD ~@12 AD@3 AE AF AG G AB ~ A AH AB AI AB C L AJ ~@4
>`.pickRestart({
  A: "~@4 x!4", B: "x ~ x!6", C: "x!7 ~", D: "x ~ x!5 ~", E: "~@2 x ~ x!3 ~", F: "x!8", G: "~@2 x!5 ~", H: "~@2 x!2",
  I: "x!4", J: "~ x!3", K: "x!5 ~ x ~", L: "~@2 x ~ x!4", M: "x!3 ~ x ~ x!2", N: "~@6 x!2", O: "x!2 ~@2 x!2 ~@2",
  P: "~@2 x!3 ~ x ~", Q: "x!3 ~ x ~@3", R: "~@4 x!3 ~", S: "x ~ x!3 ~ x ~", T: "x!3 ~ x ~ x ~", U: "x ~ x ~ x!4",
  V: "x!3 ~ x!2 ~@2", W: "~@3 x ~@4", X: "~ x ~@2 x!2 ~@2", Y: "~ x!2 ~@3 x!2", Z: "x ~ x!2 ~@2 x ~", AA: "x",
  AB: "~@2 x!6", AC: "~@2 x!4 ~@2", AD: "~@7 x", AE: "~@3 x", AF: "~ x!6 ~", AG: "~ x!4 ~ x ~", AH: "x!3 ~ x!3 ~",
  AI: "x!4 ~@2 x ~", AJ: "~ x ~@2 x ~@3",
})).gain(0.56)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct(`<
  ~@10 A ~ A B ~@2 A ~@2 C D E F G H B ~@8 I G F C G ~@4 J K E H B L G@2 ~@7 I E H M N ~@4 E ~ B D ~ H ~@34 O P Q@2 ~@2
  G ~ R ~@2 G S ~@4
>`.pickRestart({
  A: "~ x ~@6", B: "~@3 x ~@3 x", C: "~@5 x ~ x", D: "~ x ~ x ~ x ~@2", E: "~@3 x ~ x ~ x", F: "~@5 x ~@2",
  G: "~@3 x ~@4", H: "~@3 x ~ x ~@2", I: "~@2 x!2 ~@4", J: "~@7 x", K: "~ x ~@3 x ~@2", L: "~ x ~ x ~@4",
  M: "~@3 x!3 ~@2", N: "~ x ~@2 x!2 ~ x", O: "x", P: "x ~@4 x ~@2", Q: "x!2 ~@6", R: "~@4 x!2 ~@2",
  S: "x ~ x!2 ~ x ~@2",
})).gain(0.32)

// drums · high tom
const high_tom = s("ht").struct("<~@38 [~@10 x ~ x!4] x ~@2 [~ x ~ x ~ x ~@2] ~@39 [~@3 x] ~@41>").gain(0.56)

// drums · crash
const crash = s("cr").struct(`<
  ~@9 A ~ B@2 C ~ D C ~ B E B C B C ~ C B F ~@7 C B C ~ G H ~ B E B C B C ~ C B F ~@7 C B C ~ I J ~ B ~ B C B C B K L
  ~@2 C ~ C@2 B ~ C ~@22 B@4 ~ B E B C B C B C ~ M N O N
>`.pickRestart({
  A: "x!2 ~@2", B: "~@7 x", C: "x", D: "x ~@5 x ~@3 x ~@2 x ~@2", E: "~ x ~@2", F: "~ x ~@6", G: "~ x ~ x ~@3 x",
  H: "x!2 ~@2 x ~@2 x", I: "~ x!3 ~@3 x", J: "x!2 ~@2 x ~ x!2", K: "x ~@6 x", L: "~ x ~ x ~ x ~ x", M: "x!2 ~ x",
  N: "~@2 x ~@3 x!2", O: "~ x ~ x",
})).gain(0.56)

// drums · ride
const ride = s("rd").struct("<~@39 A B ~@33 C D E F G H I J K ~@37 L M N M>".pickRestart({
  A: "~@2 x ~@2 x!2 ~", B: "~@3 x ~@4", C: "~@7 x", D: "~@2 x ~ x ~ x ~ x ~ x ~ x ~ x!2", E: "x!7 ~",
  F: "~@4 x ~ x ~ x ~ x ~ x ~ x!2", G: "x!6 ~@2", H: "~@4 x ~ x!3 ~ x!3 ~@3", I: "~@2 x!4 ~@2", J: "~ x!6 ~",
  K: "~ x!5 ~@2", L: "~@4 x!2 ~ x", M: "x!2 ~ x!3 ~@2", N: "x!2 ~ x!3 ~ x",
})).gain(0.56)

stack(
  distortion_guitar, distortion_guitar_2, bass, kick, snare, low_tom, hihat, hihat_soft, mid_tom, open_hat,
  open_hat_soft, high_tom, crash, ride
)

More by Van Halen