Strudelify

Jamie's Cryin'

Van Halen

KeyA majorTempo126 bpm
0:00/0:00
// Jamie's Cryin' — Van Halen
// 126 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 9 electric bass finger (copy of ch 8 acoustic bass)
// note: Full arrangement: all 120 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · "_Rob"
const distortion_guitar = note(`<
  ~@2 A@2 B@2 C D E F G@2 H@2 G@2 I@2 J@2 K@2 L M N@2 L M G@2 H@2 G@2 O@2 P Q R S T U V W N@2 L M G@2 X@2 Y Z AA AB AC
  AD ~ AE AF AG AF AG AH@2 AI@2 P AJ R S T U V W AK@4 AL@2 I@2 AM@2 I@2 AM@2 I@2 AN@2 I@2 AN@2 I@2 AO@2 I@2 AO@2 I@2 AP
  AQ I@2 AR@2 ~@6
>`.pickRestart({
  A: "[d6@9 ~@3 e6@2 ~@2]/2", B: "[~@2 b5@17 ~@13]/2", C: "~@2 c#6 ~", D: "b5@5 ~@7 b5 ~@3", E: "a5 ~@15",
  F: "e5@3 ~@13", G: "[e3 ~@11 [d5,f#5]@7 ~@5 e5@3 ~ [a4,d5,e5]@3 ~]/2", H: "[e3 ~@11 [a4,d5]@7 ~@9 e5 ~ [a4,d5] ~]/2",
  I: "[e3 ~@5 e3 ~ e3 ~@3 [b3,d4,b4,d5]@9 ~@11]/2", J: "[f#3 ~ a3 ~ c#4 ~@7 [a3,e4]@7 ~@9 [a3,e4] ~ b3 ~]/2",
  K: "[e3 ~@5 e3 ~ e3 ~ [b3,d4,d5,e5,f#5]@11 ~@11]/2", L: "e3 ~@5 e3 ~ f#4 ~@7", M: "~@4 e4 ~@3 b3 ~ a#3 ~@5",
  N: "[e3 ~@5 e3 ~ e3 ~@3 b4@3 ~ b4@5 ~@3 b3 ~ a#3 ~@5, ~@12 [d4,d5,e5]@9 ~@11]/2", // Dsus2
  O: "[e3 ~@5 e3 ~@5 [d5,f#5]@9 ~@3 e5@3 ~ [a4,d5,e5]@3 ~]/2", P: "[a4,b4,c#5]@4 ~@2 b4@3 ~@3 b4 ~ d5 ~",
  Q: "b4@4 ~@2 [a4,b4,c#5]@3 ~@3 c#5 ~ c#5 ~", R: "~@6 [b4,d5]@3 ~@5 d5 ~", S: "[g4,b4]@4 ~@6 e5 ~@3 e5 ~",
  T: "[a4,c#5,e5]@4 ~@6 e5 ~ b4 ~@3", U: "[g4,b4,d5]@4 ~@8 b4 ~@3", V: "[a4,c#5,e5]@4 ~@6 f#5 ~@3 e5 ~",
  W: "[g4,b4,d5]@4 ~@2 e5@4 ~@2 e4@3 ~", X: "[e3 ~@11 [a4,d5]@7 ~@5 b3 ~ a#3 ~ a3 ~ g3 ~]/2", Y: "~@12 d#5 ~ e5 ~",
  Z: "~@4 [d5,f#5] ~ [d5,e5] ~@5 [d5,e5] ~ [a4,d5] ~", AA: "~@4 d#5 ~ e5@3 ~@7", AB: "f#3 ~ c#4 ~@7 [b4,e5] ~@5",
  AC: "~@2 g#4 ~ c#5 ~@5 d#5 ~ c#5 ~@3", AD: "~ [a4,d5,f#5]@2 ~", AE: "~@4 a5 g#5 ~ e5 b4@3 ~@5",
  AF: "e3@3 ~@5 f#4 ~@7", AG: "~@4 g3 ~ g#3 ~@5 g3 ~ g#3 ~", AH: "[~@4 [e5,g#5] ~@7 [d5,f#5]@6 ~@6 d4 ~ d#4 ~@5]/2",
  AI: "[~@2 b3 ~ [e5,g#5] ~@7 [d5,f#5]@11 ~@9]/2", AJ: "b4@4 ~@2 [a4,b4,c#5]@3 ~@3 b4 ~ c#5 ~",
  AK: "[~@6 e3 ~ e3 ~@3 d4@9 ~@3 b3 ~ a#3 ~ a3 ~ g3 ~]/2",
  AL: "[~@4 c#4 ~ b3 ~@5 [a3,e4]@7 ~@9 [a3,e4] ~ [b3,f#4] ~]/2", AM: "[e3 ~@3 [e5,g#5] ~@7 [d5,f#5]@9 ~@11]/2",
  AN: "[e3 ~@3 [e5,g#5] ~@7 [d5,f#5]@7 ~@5 b3 ~ a#3 ~@5]/2", // E D
  AO: "[e3 ~@5 e3 ~ e3 ~@3 [b3,d4,b4,d5]@7 ~ f#4 ~@3 d4@3 ~ e4@3 ~]/2", AP: "e3 ~@7 [f#5,a5] ~@7",
  AQ: "~@8 b3 ~ a#3 ~ a3 ~ g3 ~", AR: "[e3 ~@5 e3 ~ e3 ~@3 [b3,d4,b4,d5]@11 ~@9]/2",
})).s("gm_distortion_guitar").gain(0.41)

// chords · distortion guitar
const distortion_guitar_2 = note(`<
  ~@3 A B ~ C D E F G H G I G H G J K L G J M@2 N@2 M@2 G H G I G H G H O P Q R S T U V N@2 M@2 G H G ~ W X Y Z AA AB
  AC@2 AD@4 AE AF AG J O P Q R S T U V AH@4 AI L AJ@2 AK J AJ@2 AK J AJ@2 AK AL AJ@2 AK AL AJ@2 AM@2 AJ@2 AM@2 AJ@2 AN@2
  AJ@4 ~@6
>`.pickRestart({
  A: "~@3 c#6 [a5,c6] ~@11", B: "c#6 ~@15", C: "d6@5 ~@10 c#6", D: "~@8 a5@3 ~@5", E: "~ g#5@4 ~@3", F: "~@4 d5@3 ~@9",
  G: "~@4 [d5,f#5,b5] ~@11", H: "~@8 [a4,d5,e5]@3 ~ e5@3 ~", I: "~@8 [a4,d5,e5]@3 ~@5", J: "~@8 b3 ~ a#3 ~ a3 ~ g3 ~",
  K: "~@6 b3 ~ d4 ~ f#4 ~@5", L: "~@8 [a3,e4] ~ [a3,e4] ~@5", M: "[~@4 [d5,f#5,b5] ~@7 d4@7 ~@9 a3 ~ g3 ~]/2",
  N: "[~@4 [d5,f#5,b5] ~@7 [b3,d4]@9 ~@7 a3 ~ g3 ~]/2", O: "~@6 [b4,d5]@3 ~ e5 ~@5", P: "[g4,b4]@4 ~@6 e5 ~@5",
  Q: "[a4,b4,c#5]@4 ~@2 b4@3 ~ e5 ~ b4 ~@3", R: "b4@4 ~@2 [a4,b4,c#5]@3 ~@3 c#5 ~@3", S: "~@6 [b4,d5,f#5]@3 ~@5 d5 ~",
  T: "~@6 [a4,c#5,e5]@3 ~ e5 ~@3 c#5 ~", U: "~@6 [b4,d5,f#5]@3 ~@3 d5 ~@3", V: "~@3 [a4,c#5,e5]@2 ~@3",
  W: "[c#4,g#4,c#5,e5] ~", X: "f#5@3 ~@5 [d5,f#5] ~ [d5,f#5] ~@5", Y: "c#4 ~ g#4 ~@7 d#5 ~ c#5@3 ~",
  Z: "~@4 f#4 ~ [c#5,f#5] ~@7 [c#5,f#5] ~", AA: "~@6 e5@3 ~@5 g#4 ~", AB: "d4@3 ~@13", AC: "[e3@19 ~@9 f#4@3 ~]/2",
  AD: "[~@4 e4 ~ e3 ~@5 d4@7 ~@5 [b4,e5] ~ [b4,e5] ~@5]/2", AE: "e3@3 ~@5 [f#5,a5] ~@7",
  AF: "~@3 [d5,f#5] [a5,c#6] ~@7 e4 ~ g4 ~", AG: "e4 ~@7 [f#5,a5] ~@7",
  AH: "[e3 ~@3 [d5,f#5,b5] ~@7 [b3,d4,b4,d5]@9 ~@11]/2", AI: "f#3 ~ a3 ~@5 d4 ~ f#4 ~@5",
  AJ: "[~@4 [d5,f#5,b5] ~@7 d4@9 ~@3 b3 ~ a#3 ~ a3 ~ g3 ~]/2", AK: "~@8 [f#5,a5] ~@7", AL: "~@4 b4@3 ~@5 a3 ~ g3 ~",
  AM: "[~@4 [d5,f#5,b5] ~@7 d4@9 ~@11]/2", AN: "[~@4 [e5,g#5] ~@7 [d5,f#5]@7 ~@13]/2",
})).s("gm_distortion_guitar").gain(0.41)

// chords · overdriven guitar · "_by"
const overdriven_guitar = note(`<
  ~@3 A ~ A B@2 C@2 ~@73 D E ~ F G H I ~ J K@2 ~ L M@2 ~ N E ~ O P Q@2 ~ N E ~ O P Q@2 ~@6
>`.pickRestart({
  A: "~@6 b3@3 ~ a#3 ~ a3 ~ g3 ~", B: "[~@4 [d5,f#5,b5] ~@7 [b3,d4,d5,e5,f#5]@9 ~@11]/2",
  C: "[e3 ~@3 [d5,f#5,b5] ~@7 [b3,d4,b4,d5,e5]@9 ~@11]/2", D: "~@3 c#6 [a5,c6] ~@11", E: "c#6 ~@15", F: "c#6@11 ~@5",
  G: "~@8 a5@3 ~@5", H: "~ g#5@4 ~@3", I: "~@4 d5@3 ~@9", J: "~@8 c#6@3 ~ e6 ~@3", K: "[~ d6@5 ~@2]/2",
  L: "[f#5,a5]@5 ~@7 [g#5,b5] ~@3", M: "[~ [e5,g#5]@5 ~@2]/2", N: "~@5 [g#5,c#6] ~@10", O: "d6@5 ~@11",
  P: "b5@5 ~@7 b5 ~@3", Q: "[~@4 g#5@17 ~@11]/2",
})).s("gm_overdriven_guitar").gain(0.41)

// bass · electric bass finger · "_Alex"
const bass = note(`<
  ~@2 A B A B A C A B A D A C A D A C E@2 A B A F A F A F A D A C A D A F G H G I G H G I A F A B A J A D K L M N K L O
  P A Q A Q A F A F G H G I G H G I A B A F E@2 A B A F A F A F A D A C A D A C A D A C A D A C A D A C A D A C ~@6
>`.pickRestart({
  A: "e2 ~@5 e2 ~ e2 ~@5 e2 ~", B: "e2 ~@5 b2@3 ~ a#2 ~ a2 ~ g2 ~", C: "e2 ~@7 b2 ~ a#2 ~ a2 ~ g2 ~",
  D: "e2 ~@5 e2 ~ b2@3 ~ a2@3 ~", E: "[f#2@4 ~@2 b2@4 ~@2 a2@7 ~@5 a2 ~ a2 ~ a2 ~ b2 ~]/2",
  F: "e2 ~@5 e2 ~ b2 ~ a#2 ~ a2 ~ g2 ~", G: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~",
  H: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a3 ~ a2 ~ a3 ~", I: "a2 ~ a2 ~ a2 ~ a2 ~ a3 ~ f#3 ~ e3 ~ c#3 ~",
  J: "e2 ~@5 e2 ~ b2@3 ~ e2@3 ~", K: "c#2@4 ~@2 c#3@3 ~ b2 ~ c#3@3 ~", L: "d2@4 ~@2 d3@4 ~@2 f#3@3 ~",
  M: "c#2@4 ~@2 c#3@3 ~ e2 ~ f#2@3 ~", N: "f#2@4 ~@2 f#3@4 ~@2 f#3@3 ~", O: "e2@4 ~@2 e2 ~ e2@4 ~@2 e2 ~",
  P: "e2@4 ~@2 e2 ~ e2@5 ~@3", Q: "e2 ~@5 e2 ~ e3@5 ~@3",
})).s("gm_electric_bass_finger").gain(0.41)

// bass · acoustic bass
const bass_2 = note(`<
  ~@2 A B A B A C A B A D A C A D A C E@2 A B A F A F A F A D A C A D A F G H G I G H G I A F A B A J A D K L M N K L O
  P A Q A Q A F A F G H G I G H G I A B A F E@2 A B A F A F A F A D A C A D A C A D A C A D A C A D A C A D A C ~@6
>`.pickRestart({
  A: "e1 ~@5 e1 ~ e1 ~@5 e1 ~", B: "e1 ~@5 b1@3 ~ a#1 ~ a1 ~ g1 ~", C: "e1 ~@7 b1 ~ a#1 ~ a1 ~ g1 ~",
  D: "e1 ~@5 e1 ~ b1@3 ~ a1@3 ~", E: "[f#1@4 ~@2 b1@4 ~@2 a1@7 ~@5 a1 ~ a1 ~ a1 ~ b1 ~]/2",
  F: "e1 ~@5 e1 ~ b1 ~ a#1 ~ a1 ~ g1 ~", G: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  H: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a2 ~ a1 ~ a2 ~", I: "a1 ~ a1 ~ a1 ~ a1 ~ a2 ~ f#2 ~ e2 ~ c#2 ~",
  J: "e1 ~@5 e1 ~ b1@3 ~ e1@3 ~", K: "c#1@4 ~@2 c#2@3 ~ b1 ~ c#2@3 ~", L: "d1@4 ~@2 d2@4 ~@2 f#2@3 ~",
  M: "c#1@4 ~@2 c#2@3 ~ e1 ~ f#1@3 ~", N: "f#1@4 ~@2 f#2@4 ~@2 f#2@3 ~", O: "e1@4 ~@2 e1 ~ e1@4 ~@2 e1 ~",
  P: "e1@4 ~@2 e1 ~ e1@5 ~@3", Q: "e1 ~@5 e1 ~ e2@5 ~@3",
})).s("gm_acoustic_bass").gain(0.41)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~ A ~@49 B@2 ~ B ~ B C ~@9 B ~@52>".pickRestart({
  A: "~@5 x!3", B: "~@7 x", C: "~@4 x!4",
})).gain(0.51)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@4 A B A ~ C B ~@3 B@2 D B@2 ~@2 A B@2 ~ E ~ C ~@2 F B ~ B@2 ~ B G H I ~ J K L M E B ~@2 B@3 N ~@16 O P Q ~ R S T M U
  A B ~@41
>`.pickRestart({
  A: "~ x ~@3 x ~@2", B: "~ x ~@6", C: "~@5 x ~@2", D: "~ x ~@5 x", E: "~@3 x ~@4", F: "~ x ~@3 x ~ x",
  G: "~@9 x ~@3 x!3", H: "~@7 x ~ x ~@3 x ~@2", I: "~ x ~@3 x ~ x ~ x ~@4 x!2", J: "~@9 x ~@5 x",
  K: "~ x ~@3 x ~ x ~ x ~@6", L: "~@9 x ~@3 x ~ x", M: "~ x ~@14", N: "~ x ~ x ~@4", O: "~@5 x ~@7 x ~ x",
  P: "~ x ~@3 x ~@7 x ~@2", Q: "~@7 x ~ x ~@6", R: "~@7 x ~@2 x ~@2 x!3", S: "~ x!2 ~@2 x!3 ~ x!2 ~@2 x!3",
  T: "~ x ~@3 x ~ x ~ x ~@3 x ~ x", U: "~@3 x ~ x ~@2",
})).gain(0.31)

// drums · mid tom
const mid_tom = s("mt").struct("<~ A ~@49 B@2 ~ B ~ B ~@10 B ~@7 C ~@44>".pickRestart({
  A: "~@3 x!2 ~@3", B: "~@3 x", C: "~@5 x ~ x",
})).gain(0.51)

// drums · open hat
const open_hat = s("oh").struct("<~@5 A ~@13 B ~@16 C D ~@2 E F E ~@25 E ~ D@3 ~@2 G ~@5 B ~@38>".pickRestart({
  A: "~@2 x!2 ~ x!3", B: "x ~ x ~ x!4", C: "~ x ~@6", D: "~@3 x ~@7 x ~@4", E: "~@2 x!2 ~@12", F: "~@11 x ~@4",
  G: "~@3 x ~@12",
})).gain(0.51)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@36 A ~ B ~ C D A D ~@24 A B ~@3 B@2 ~@45>".pickRestart({
  A: "~@11 x ~@4", B: "~@3 x ~@7 x ~@4", C: "~ x ~@9 x ~@4", D: "~@3 x ~@12",
})).gain(0.31)

// drums · high tom
const high_tom = s("ht").struct("<A B ~@49 C@2 D C ~ C ~@10 E ~@52>".pickRestart({
  A: "~@14 x!2", B: "x!3 ~@5", C: "~@5 x ~@2", D: "~@5 x!2 ~", E: "~@7 x!2 ~ x ~@5",
})).gain(0.51)

// drums · crash
const crash = s("cr").struct(`<
  ~@2 A ~@3 A ~@3 A ~@7 B ~ A ~@7 A ~@7 A ~@2 C A ~ A ~ A ~@7 A ~ A ~ A@3 ~ A ~ A D A ~ A ~ A ~@3 A ~@3 A ~@3 B ~ A ~@3
  A ~@2 D A ~ A ~ A ~ A ~ E F@2 G E F@2 G F@6 E H A ~@5
>`.pickRestart({
  A: "x", B: "x ~@2 x ~@2 x ~", C: "~ x!2 ~", D: "~@7 x", E: "x!2 ~ x", F: "~ x ~ x", G: "~ x!3", H: "~ x ~@2",
})).gain(0.51)

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

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@56 A ~@6 B ~@19 C D@2 E ~ F D F ~ G D ~ H ~@5 D ~@4 F ~@13>".pickRestart({
  A: "~@3 x", B: "~ x ~@2", C: "~ x ~@5 x", D: "~ x ~@6", E: "~@5 x ~ x", F: "~@5 x ~@2", G: "~@3 x ~ x ~@2",
  H: "~@3 x ~@4",
})).gain(0.26)

// drums · cowbell
const cowbell = s("cb").struct("<~@98 [x!4]!16 x ~@5>").gain(0.41)

stack(
  distortion_guitar, distortion_guitar_2, overdriven_guitar, bass, bass_2, kick, snare, low_tom, hihat, hihat_soft,
// … 2 more lines

More by Van Halen