Strudelify
Right Now cover art

1991 · For Unlawful Carnal Knowledge

Right Now

Van Halen

KeyF majorTempo96 bpm
0:00/0:00
// Right Now — Van Halen
// 96 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 12 "Chiqui Abello" named as a mallet, played on tubular bells (its piano patch is not one)
// note: Full arrangement: all 119 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(96/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.

// bass · electric bass pick · "Pick Bass"
const bass = note("<~@5 A@8 B C D ~@2 E@2 ~@2 F G H I@2 G H J K ~@48 L@7 M N O P ~@17 L@7 M N O P Q>".pickRestart({
  A: "[~ bb1@32 d2@32 bb1@32 d2@31]/8", B: "~ bb1@15", C: "~ c2@13 c1!2", D: "d1 ~@3",
  E: "[~@7 f1@2 g1@2 bb1@2 c2@2 d1@9 ~@8]/2", F: "~@7 f1@2 g1@2 bb1@2 c2@2 d1", G: "d2@5 ~@3 d2 e2 f2 ~@5",
  H: "c2@4 ~@4 c2 d2 e2@4 ~@2", I: "[bb1@4 ~@4 bb1 c2 d2@5 d2@2 c2@6 f1@2 g1@2 bb1@2 c2@2 d2]/2",
  J: "bb1@4 ~@4 bb1 c2 d2@5 d2", K: "d2 c2@6 f1@2 g1@2 bb1@2 c2@2 d2", L: "[d2@33 bb1@32 d2@32 bb1@15]/7", M: "~ c2@15",
  N: "~ f1@7 g1@8", O: "~ bb1@7 c2@8", P: "~ a1 ~@2 a1 ~@2 a1 ~@2 a1@2 ~ a1 ~@2", Q: "a1@7 ~@9",
})).s("gm_electric_bass_pick").gain(0.61)

// chords · piano · "Piano Right Hand"
const piano = note(`<
  ~ A B@13 C D E@3 D E@3 D F@2 C D F@2 G H I@2 G H I@2 J K L M J K N O P@6 Q@2 G H I@2 G H I@2 J K L M J K N O P@6 R S@8
  B@5 T@8 U@5 V W S@8 B@4 X
>`.pickRestart({
  A: "~ d4 g4 d4 f4 a4 d4 g4 c5 d4 a4 d5 d4 a4 c5 g4", B: "a4 d4 g4 d4 f4 a4 d4 g4 c5 d4 a4 d5 d4 a4 c5 g4",
  C: "~@2 [d4,f4,a4]!2 ~ [d4,g4,a4] ~ [d4,g4,a4]@2 d4 [d4,f4,a4] ~ [d4,f4,a4]@2 e4@2", // Dm Dsus4 Dm
  D: "[d4,e4,g4] ~ [c4,e4,g4]!2 ~ [c4,f4,g4] ~ [c4,f4,g4]@2 c4 e4 [c4,e4,g4]@2 d4 ~ [c4,d4,g4]", // Em7 C Csus4 C Csus2
  E: "[~@2 [bb3,d4]!2 ~ [bb3,d4,e4] ~ [bb3,d4,e4]@3 [bb3,d4,f4]@2 f4 d4 bb3 [a3,d4,f4]@2 [g3,c4,e4]@2 ~@4 f3@2 g3@2 bb3@2 c4@2 d4@2 ~ [d4,f4,a4]!2 ~ [d4,g4,a4] ~ [d4,g4,a4]@2 d4 [d4,f4,a4] ~ [d4,f4,a4]@2 e4@2]/3", // Bb Em7b5 Bb Dm C Dm Dsus4 Dm
  F: "[~@2 [bb3,d4]!2 ~ [bb3,d4,e4] ~ [bb3,d4,e4]@3 [bb3,d4,f4]@2 f4 d4 bb3 [a3,d4,f4]@2 [g3,c4,e4]@2 ~@4 f3@2 g3@2 bb3@2 c4@2 d4]/2", // Bb Em7b5 Bb Dm C
  G: "~ d4 e4 f4 g4 a4 ~ [d4,f4,a4]@8 ~", H: "~ c4 d4 e4 f4 g4 ~ [c4,f4,g4]@4 e4@3 c4 ~",
  I: "[~ bb3 d4 e4 ~ f4 ~ [bb3,d4,f4]@3 bb3@2 f4 d4 bb3 [a3,e4,a4]@5 [a3,e4,a4]@4 [a3,e4,a4]@4 [a3,e4,a4]@3 ~]/2", // Bb A5
  J: "~@2 d4 e4@2 f4@2 ~@3 c4 d4@2 e4@2 ~", K: "~@2 c5 a4@2 f4@2 c5@3 b4@2 g4@2 a4 ~",
  L: "~ bb3 d4 e4@2 f4@2 e4@3 f4 e4@2 c4@3", M: "~@3 [a3,d4,f4] ~@2 [a3,d4,f4]@6 [a3,d4,e4]@3 ~",
  N: "~@2 d4 e4@2 f4@2 e4@3 d4 c4@2 [c4,f4]@3", O: "[d4,e4,a4]@4 [d4,e4,a4]@3 [db4,e4,a4]@9",
  P: "[~@2 f4 c4 a4 f4 c4 ~@2 a4 c4 f4 a4 f4 c4 [bb3,c4,f4]@2 [f3,bb3]@2 [f3,bb3]@2 [bb3,d4]@2 [bb3,d4]@3 e4 c4@5]/2", // Bbsus2 Bb5 Bb
  Q: "[[bb3,c4,f4]@6 f3@2 [g3,c4]@3 [a3,c4]@3 [f3,c4]@10 [f3,c4]@4 ~@4]/2", // Bbsus2 C5 Am F5
  R: "[bb3,c4,f4]@6 f3@2 [g3,c4]@3 [a3,c4]@3 [f3,c4]@2", // Bbsus2 C5 Am F5
  S: "[~@5 [g3,c4]@2 f3 g3@2 a3@2 f3@4 ~ d4 g4 d4 f4 a4 d4 g4 c5 d4 a4 d5 d4 a4 c5 g4 a4 d4 g4 d4 f4 a4 d4 g4 c5 d4 a4 d5 d4 a4 c5 g4 a4 d4 g4 d4 f4 a4 d4 g4 c5 d4 a4 d5 d4 a4 c5 g4 a4 d4 g4 d4 f4 a4 d4 g4 c5 d4 a4 d5 d4 a4 c5 g4 a4 d4 g4 d4 f4 a4 d4 g4 c5 d4 a4 d5 d4 a4 c5 g4 a4 d4 g4 d4 f4 a4 d4 g4 c5 d4 a4 d5 d4 a4 c5 g4 a4 d4 g4 d4 f4 a4 d4 g4 c5 d4 a4 d5 d4 a4 c5 g4, ~@2 c4 c4@29]/8", // C5
  T: "[~@2 d4 e4@2 f4@2 ~@4 d4@2 e4@2 ~@3 c5 a4@2 f4@2 c5@3 b4@2 g4@2 a4 ~@2 bb3 d4 e4@2 f4@2 e4@3 f4 e4@2 ~@6 [a3,d4,f4] ~@2 [a3,d4,f4]@6 [a3,d4,e4]@3 ~@3 d4 e4@2 f4@2 ~@4 d4@2 e4@2 ~@3 c5 a4@2 f4@2 c5@3 b4@2 g4@2 a4 ~@3 d4 e4@2 f4@2 e4@3 d4 c4@2 f4@3 [d4,e4,a4]@4 [d4,e4,a4]@3 [db4,e4,a4]@9, ~@10 c4@35 c4@29 c4@33 ~@2 c4@19]/8", // Dm Asus4 Dsus2 A
  U: "[~@2 f4 ~ a4 f4 c4@3 a4 ~ f4 a4 f4 c4 [bb3,f4]@2 [f3,bb3]@2 [f3,bb3]@2 [bb3,d4]@2 [bb3,d4]@3 e4 c4@7 f4 ~ a4 f4 c4@3 a4 ~ f4 a4 f4 c4 [bb3,f4]@2 [f3,bb3]@2 [f3,bb3]@2 [bb3,d4]@2 [bb3,d4]@3 e4 c4@7 f4 ~ a4 f4 c4@3 a4 ~ f4 a4 f4 c4 [bb3,c4,f4], ~@3 c4@3 ~@4 c4@4 ~ c4@12 ~@8 c4@3 ~@4 c4@4 ~ c4@12 ~@8 c4@3 ~@4 c4@4 ~@2]/5", // Bb5 Bb Bb5 Bb Bbsus2
  V: "[bb3,f4] [f3,bb3]@2 [f3,bb3]@2 [bb3,d4]@2 [bb3,d4]@3 e4 c4@5, c4@11 ~@5", // Bb5 Bb
  W: "[bb3,f4]@6 f3@2 [g3,c4]@3 [a3,c4]@3 [f3,c4]@2, c4 ~", X: "a2@7 ~@9",
})).s("gm_piano").gain(0.57).pan(0.4)

// bass · overdriven guitar · "Overdrive Guitar"
const bass_2 = note(`<
  ~@14 A B ~@2 C@2 ~@2 D E F G@2 E F H I J@3 K@4 L@4 M@4 N O@6 P@2 J@3 K@4 L@4 M@4 N O@6 P@2 ~@12 Q@3 M@4 N O@4 R S P@2
  ~@12
>`.pickRestart({
  A: "~@14 c2!2", B: "d2 ~@3", C: "[~@7 f2@2 g2@2 bb2@2 c3@2 d2@9 ~@8]/2", D: "~@7 f2@2 g2@2 bb2@2 c3@3",
  E: "d3@5 ~@3 d3 e3 f3 ~@5", F: "c3@4 ~@4 c3 d3 e3@4 ~@2",
  G: "[bb2@4 ~@4 bb2 c3 d3@5 d3@2 c3@6 f2@2 g2@2 bb2@2 c3@2 d3]/2", H: "bb2@4 ~@4 bb2 c3 d3@5 d3",
  I: "d3 c3@6 f2@2 g2@2 bb2@2 c3@2 d3", J: "[[d2,d3]@15 [c2,c3]@16 [bb1,bb2]@16 ~]/3",
  K: "[~ [g1,g2]@3 [a1,a2]@2 [g1,g2]@2 [a1,a2]@4 [c2,c3]@3 [d2,d3]@16 [c2,c3]@16 [bb1,bb2]@16 ~]/4", // G A G A C D C Bb
  L: "[~ [g1,g2]@3 [a1,a2]@2 [g1,g2]@2 [a1,a2]@4 [c2,c3]@3 [bb1,bb2]@8 [c2,c3]@8 [f1,f2]@8 [g1,g2]@8 [bb1,bb2]@8 [c2,c3]@9]/4", // G A G A C Bb C F …
  M: "[d2!11 e2 d2!3 [bb1,bb2]@8 [c2,c3]@8 [f1,f2]@8 [g1,g2]@8 [bb1,bb2]@8 [c2,c3]@9]/4", // Bb C F G Bb C
  N: "[g1,g2] [a1,a2]@2 [g1,g2] [a1,a2]@2 [g1,g2] [a1,a2]@2 [g1,g2] [a1,a2]@6", // G A G A G A G A
  O: "[[f1,f2]@6 ~ [a1,a2]@8 [bb1,bb2]@9 c2 c2@2 c2 d2@2 c2@2]/2", P: "[[bb1,bb2]@31 ~]/2",
  Q: "[[bb1,bb2]@7 [c2,c3]@8 [f1,f2]@8 [g1,g2]@8 [bb1,bb2]@8 [c2,c3]@9]/3", R: "[f1,f2]@6 ~ [a1,a2]@8 [bb1,bb2]",
  S: "[bb1,bb2]@8 c2 c2@2 c2 d2@2 c2@2", // Bb
})).s("gm_overdriven_guitar").gain(0.32).pan(0.6)

// other · piano · "Piano Left Hand"
const piano_2 = note(`<
  ~@5 A@8 B C D ~@15 E@3 F@4 G@4 H@4 I J@6 K@2 E@3 F@4 G@4 H@4 I J@6 K@2 L@7 M N O P ~ Q@3 H@4 I R@2 J@2 S T K@2 L@7 M N
  O P U
>`.pickRestart({
  A: "[~ [bb0,bb1]@32 [d1,d2]@32 [bb0,bb1]@32 [d1,d2]@31]/8", B: "~ [bb0,bb1]@15", C: "~ [c1,c2]@13 [c0,c1]!2",
  D: "[d0,d1] ~@3", E: "[[d2,d3]@15 [c2,c3]@16 [bb1,bb2]@16 ~]/3",
  F: "[~ [g1,g2]@3 [a1,a2]@2 [g1,g2]@2 [a1,a2]@4 [c2,c3]@3 [d2,d3]@16 [c2,c3]@16 [bb1,bb2]@16 ~]/4", // G A G A C D C Bb
  G: "[~ [g1,g2]@3 [a1,a2]@2 [g1,g2]@2 [a1,a2]@4 [c2,c3]@3 [bb1,bb2]@8 [c2,c3]@8 [f1,f2]@8 [g1,g2]@8 [bb1,bb2]@8 [c2,c3]@9]/4", // G A G A C Bb C F …
  H: "[d2 d3 d2 d3 d2 d3 d2 d3 d2 d3 d2 d3 d2 d3 d2 [bb1,bb2]@8 [c2,c3]@8 [f1,f2]@8 [g1,g2]@8 [bb1,bb2]@8 [c2,c3]@9]/4", // Bb C F G Bb C
  I: "[g1,g2] [a1,a2]@2 [g1,g2] [a1,a2]@2 [g1,g2] [a1,a2]@2 [g1,g2] [a1,a2]@6", // G A G A G A G A
  J: "[~ [f1,f2]@6 [a1,a2]@8 [bb1,bb2]@9 c2 c2@2 c2 d2@2 c2@2]/2", K: "[[bb1,bb2]@31 ~]/2",
  L: "[d3@33 bb2@32 d3@32 bb2@15]/7", M: "~ c3@15", N: "~ f2@7 g2@8", O: "~ bb2@7 c3@8",
  P: "~ a2 ~@2 a2 ~@2 a2 ~@2 a2@2 ~ a2 ~@2", Q: "[[bb1,bb2]@7 [c2,c3]@8 [f1,f2]@8 [g1,g2]@8 [bb1,bb2]@8 [c2,c3]@9]/3",
  R: "[~ f1@6 [a1,a2]@8 [bb1,bb2]@9 c2 c2@2 c2 d2@2 c2@2]/2", S: "~ [f1,f2]@6 [a1,a2]@8 [bb1,bb2]",
  T: "[bb1,bb2]@8 c2 c2@2 c2 d2@2 c2@2", U: "a2 a2@7 ~@8",
})).s("gm_piano").gain(0.57).pan(0.6)

// bass · electric bass finger · "Fingered Bass"
const bass_3 = note("<~@31 A@8 B@6 C@8 D E@7 F@8 C@8 G@8 ~@5 H I@6 J@7 K@3 ~@12>".pickRestart({
  A: "[d1@4 d2@3 e2 ~@2 g1 [bb1,d2] c3 d3 ~ c2@9 ~@2 c3 d3 c3 c3@2 ~@32 d1@5 d2@3 e2 ~@2 g1 d2 c3 d3 c3 c2@9 ~@2 c3 d3 c3 c3@2 bb1@10 bb1@3 ~@5 g1@3 a1@2 g1@2 a1@4 c2@3 bb1, ~@31 bb1@44 bb1@20 ~@13 bb1@19 ~]/8", // Bb
  B: "[~@2 bb1!4 ~ c2@3 c2!5 f1@3 f1!5 g1@3 g1@2 g1!3 bb1@3 bb1!4 ~ c2@3 c2!5 d2 d1@2 d2!4 gb2 a2 d3!2 e3!2 f3 f3@2 bb1@3 bb1!4 ~ c2@3 c2!5 f1@2 f2 f1!2 f1@2 f2 g1@3 g1@2 g1!3 bb1, ~@6 bb1@25 ~@7 bb1@25 ~@7 bb1@25 ~]/6",
  C: "[~@2 bb1!4 ~ c2 c2@2 c2!4 c2@2 g1 a1!2 g1 a1@2 g1 a1@2 a1!3 a1@2 d2 e2 f1@4 ~@3 a1@5 ~@12 c2!3 a1 c2 d2 c2@2 f1@4 ~@3 a1@5 ~@9 d3 ~ c2 g2 c3@2 g2 c3 d3 c3@2 f1!2 ~ f1 f2!3 a1@3 a1!2 a2!2 ~ bb1@3 bb1 ~ bb2 bb2@2 c2 c2@2 c2!2 c3 d3 c3@2, ~@6 bb1@41 bb1@32 bb1@32 ~@4 bb1@13]/8",
  D: "bb1",
  E: "[~@8 a1 ab1 g1 gb1 f1@3 d1 d1@4 d2@3 e2 ~@2 g1 d2 c3 d3 ~ c2@9 ~@2 c3 d3 c3 c3@2 ~@32 d1@5 d2@3 e2 ~@2 g1 d2 c3 d3 c3 c2@9 ~@2 c3 d3 c3 c3@2 bb1, ~@7 bb1@20 bb1@20 bb1@44 bb1@20 ~]/7",
  F: "[~@9 bb1@3 ~@5 g1@3 a1@2 g1@2 a1@4 c2@3 bb1@3 bb1!4 ~ c2@3 c2!5 f1@3 f1!5 g1@3 g1@2 g1!3 bb1@3 bb1!4 ~ c2@3 c2!5 d2 d1@2 d2!4 gb2 a2 d3!2 e3!2 f3 f3@2 bb1@3 bb1!4 ~ c2@3 c2!5 f1@2 f2 f1!2 f1@2 f2 g1@3 g1@2 g1!3 bb1, ~@12 bb1@19 ~@7 bb1@25 ~@7 bb1@25 ~@7 bb1@25 ~]/8",
  G: "bb1/8", H: "a2@2 a2 a2@3 g2 ab2 a2!2 g2 ab2 a2 g2 ab2 a2",
  I: "[bb1@2 bb1!4 ~ c2@3 c2!5 f1@3 f1!5 g1@3 g1@2 g1!3 bb1@3 bb1!4 ~ c2@3 c2!5 d2 d1@2 d2!4 gb2 a2 d3!2 e3!2 f3 f3@2 bb1@3 bb1!4 ~ c2@3 c2!5 f1@2 f2 f1!2 f1@2 f2 g1@3 g1@2 g1!3 bb1, ~@6 bb1@25 ~@7 bb1@25 ~@7 bb1@25 ~]/6",
  J: "[~@2 bb1!4 ~ c2 c2@2 c2!4 c2@2 g1 a1!2 g1 a1@2 g1 a1@2 a1!3 a1@2 d2 e2 f1@4 ~@3 a1@5 ~@12 c2!3 a1 c2 d2 c2@2 f1@4 ~@3 a1@5 ~@9 d3 ~ c2 g2 c3@2 g2 c3 d3 c3@2 f1!2 ~ f1 f2!3 a1@3 a1!2 a2!2 ~ bb1, ~@6 bb1@41 bb1@32 bb1@32 ~]/7",
  K: "[bb1@2 ~@2 bb2 bb2@2 c2 c2@2 c2!2 c3 d3 c3@2 ~@32, ~ bb1@21 ~@2]/3",
})).s("gm_electric_bass_finger").gain(0.64)

// bass · slap bass 2 · "Fingered Bass"
const bass_4 = note(`<
  ~@33
  [~@9 bb2 ~@2 bb2 ~@3]
  [~ g1@3 a1@2 g1@2 a1@4 ~@4]
  ~@22
  [~@9 bb2 ~@2 bb2 ~@3]
  [~ g1@3 a1@2 g1@2 a1@4 ~@4]
  ~@60
>`).s("gm_slap_bass_2").gain(0.64)

// chords · drawbar organ · "Organ"
const drawbar_organ = note(`<
  ~@39 A@3 B C D@2 E F@2 G@2 H@4 ~@8 A@3 B C D@2 E F@2 G@2 H@4 ~@12 A@3 B C D@2 E F@2 G@2 I J@3 ~@12
>`.pickRestart({
  A: "[f6@8 e6@7 ~ f6@7 c6@3 b5@2 g5@2 a5 bb5@9 c6@8, c6@23 ~@25]/3", B: "[a5,d6]", C: "f6 e6, c6@7 ~",
  D: "[[c6,f6]@7 c6@3 b5@2 g5@2 a5 bb5@9 c6@8]/2", E: "[e5,a5]@3 [e5,a5] ~@2 [e5,a5]@9 ~", F: "[f5,f6]/2",
  G: "[[f5,f6]@31 ~]/2", H: "[[f5,f6]@57 ~@7]/4", I: "[f5,f6]", J: "[[f5,f6]@41 ~@7]/3",
})).s("gm_drawbar_organ").gain(0.26).pan(0.3)

// other · guitar harmonics
const guitar_harmonics = note(`<
  ~@24
  [~@9 d3 e3@4 ~@2]
  ~@3
  [~@9 d3 e3@4 ~@2]
  ~@60
  [~ a2@2 ~ g2@2 ~ e3@2 ~ d3@2 ~ a3@2 ~]
  [a3@3 g2@3 a3@5 c5@5, ~@6 ab8 ~@9]
  ~@28
>`).s("gm_guitar_harmonics").gain(0.39)

// other · overdriven guitar · "Guitar Solo"
const overdriven_guitar = note("<~@89 A B C D E F G H I J@8 ~@13>".pickRestart({
  A: "~ a2@2 ~ a3@2 ~ a2@2 ~ a2@2 ~ a3@2 ~", B: "a3@3 a2@3 a3@5 c5@5, ~@6 c-1 ~@9",
  C: "c5@4 d5 a4 c5 d5@2 d5!2 a4 c5 g4@2 f4", D: "g4 g4@2 c4 a3 [ab3,c4] g3 f3 g3 [d3,f3] c3@2 c3@3 [c3,g3]",
  E: "c3 c4 g4@3 g4@2 g4 c5 g4@2 f4 g4@3 g4", F: "f4 [a4,d5]!2 g4 [a4,d5]!2 g4 [a4,d5]!2 g4 [a4,d5]!2 g4 [a4,d5]!2 a4",
  G: "a4 [c5,f5]!2 a4 [c5,f5]!2 a4 bb4@2 [d5,g5]!2 bb4 [d5,g5]!2 g4 [g4,bb4]", // F5 G5 Gm
  H: "g4 [c4,d4] g4 [d4,f4] c4 [f3,g3] d3 [c3,g3] f3 [d3,f3] g3 [a3,c4] d4 [f4,g4] g4 [a4,d5,f5]", // Csus2 Dm Fsus2 C5 Dm Am Fsus2 Dm
  I: "a5@3 a5@3 ~ g3 c5 d5 g4 [f4,g4] g4@2 ~ [d5,f5], ~@3 f5 ~@12", J: "[g5@4 f5 g5!2 g5@121]/8",
})).s("gm_overdriven_guitar").gain(0.25).pan(0.7)

// other · tubular bells · "Chiqui Abello"
const tubular_bells = note("<[~ b3 ~@2 c4 ~@3 db4 ~@3 d4 ~@3] ~@118>").s("gm_tubular_bells").gain(0.05)

// drums · kick
const kick = s("bd").struct(`<
  ~@14 A B ~@2 C B ~@2 C D@3 E D@3 E D@3 F D@3 F G@8 H@6 B ~ D@3 F D@3 F G@8 H@6 B ~@11 I ~ G@8 H@6 B ~@11 I J
>`.pickRestart({
  A: "~@14 x!2", B: "x", C: "~@7 x ~ x ~ x ~ x ~ x", D: "x ~@2 x ~@3 x!2 ~@2 x ~@3 x", E: "~ x ~ x ~@3 x!3 ~ x ~ x ~ x",
  F: "~ x ~@2 x ~ x!3 ~@2 x ~@3 x", G: "x ~ x ~@2 x!3 ~@2 x ~@2 x!3", H: "x ~ x ~@5 x ~ x ~@4 x",
  I: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2", J: "x!2 ~@14",
})).gain(0.56)

// drums · rim
const rim = s("rim").struct("<~@53 A ~@23 A ~@25 B ~ A ~@11 C ~>".pickRestart({
  A: "x", B: "~@9 x ~@6", C: "~@15 x",
})).gain(0.56)

// drums · snare
const snare = s("sd").struct(`<
  ~@23 A@11 B A@3 B A@8 C@6 ~@2 A@3 B A@3 B A@8 C@6 ~@13 D A@8 C@4 E C ~@12 F ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x!5 ~", C: "~ x ~@2 x ~@4 x ~@2 x ~@3", D: "~@2 x!4 ~@10", E: "~ x ~@2 x ~@7 x ~@3",
  F: "~@14 x!2",
})).gain(0.56)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@30 A ~@3 A ~@3 A ~@3 B ~@3 B ~@7 C ~@3 A ~@3 A ~@3 B ~@3 B ~@19 D ~@3 B ~@3 B ~@20
>`.pickRestart({
  A: "~@14 x!2", B: "~@13 x!3", C: "~@13 x!2 ~", D: "~@10 x!6",
})).gain(0.63)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@15 A@3 B C A@2 B A@2 D E A@2 D E A@2 D E A@2 D E F@8 ~@8 A@2 D E A@2 D E F@8 ~@8 A@12 F@8 ~@8 A@11 ~
>`.pickRestart({
  A: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2", B: "x!2 ~@2 x!2 ~@10", C: "~ x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2",
  D: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~ x", E: "~ x ~@2 x!2 ~@10", F: "x!8",
})).gain(0.56)

// drums · mid tom
const mid_tom = s("mt").struct("<~@30 A ~@11 B ~@3 B ~@7 C ~@11 B ~@3 B ~@19 D ~@3 B ~@3 B ~@20>".pickRestart({
  A: "~@11 x!3 ~@2", B: "~@7 x ~ x!4 ~@3", C: "~@11 x!4 ~", D: "~@6 x!4 ~@6",
})).gain(0.63)

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

// drums · high tom
const high_tom = s("ht").struct("<~@30 A ~@11 B ~@3 B ~@7 C ~@11 B ~@3 B ~@23 B ~@3 B ~@20>".pickRestart({
  A: "~@8 x!2 ~@6", B: "~ x", C: "~@7 x!4 ~@5",
})).gain(0.63)

// drums · crash
const crash = s("cr").struct(`<
  ~@19 A ~@3 A ~ B C A ~ B C A ~@3 A ~@2 D ~@14 A ~ A ~@3 A ~@2 D ~@14 E@2 A ~ C ~ C ~ C@2 F G H I ~@14 E@2 A ~ C ~ C ~
  C@2 F G H J
>`.pickRestart({
// … 18 more lines

More by Van Halen