Strudelify

Runaway

The Corrs

KeyF majorTempo101 bpm
0:00/0:00
// Runaway — The Corrs
// 101 bpm, 8/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 54 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(101/8)

// 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.

// other · violin
const violin = note("<A B C ~@3 D E F G ~@4 B C ~@4 H I G J@4 A K A K ~@4 L@7 M@6 ~@6>".pickRestart({
  A: "a4@2 c5@2 c5 a4 bb4 a4 g4 f4@5 f4 e4 f4@2 f4 e4 f4 e4 f4 g4",
  B: "a4@2 c5@2 c5 a4 bb4 a4 g4 f4@7 d5@2 c5@4 bb4 a4, ~@16 c5 ~@7", C: "f4@7 ~@17", D: "a3 bb3",
  E: "f4@12 e4@9 [e4,f4] d4 c4", F: "a3@9 [a3,bb3] g3 a3 bb3@12", G: "f4@6 e4@3 f4@2 g4", H: "~@12 e4@9 [e4,f4] d4 c4",
  I: "a3@9 [a4,bb4] g4 a4 bb4@12", J: "a3 bb3@3", K: "a4@2 c5@2 c5 a4 bb4 a4 g4 f4@7 [c5,d5] ~ c5@4 bb4 a4",
  L: "[~@12 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@5 f4 e4 f4@2 f4 e4 f4 e4 f4 g4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@7 d5@2 c5@4 bb4 a4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@5 f4 e4 f4@2 f4 e4 f4 e4 f4 g4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@7 d5@2 c5@4 bb4 a4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@5 f4 e4 f4@2 f4 e4 f4 e4 f4 g4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@7 d5@2 c5@4 bb4 a4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@3, ~@52 c5 ~@47 c5 ~@47 c5 ~@19]/7",
  M: "[~@2 f4 e4 f4@2 f4 e4 f4 e4 f4 g4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@7 d5@2 c5@4 bb4 a4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@5 f4 e4 f4@2 f4 e4 f4 e4 f4 g4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@7 [c5,d5] ~ c5@4 bb4 a4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@5 f4 e4 f4@2 f4 e4 f4 e4 f4 g4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@7 [c5,d5] ~ c5@4 bb4 a4 ~@12, ~@28 c5 ~@115]/6", // Csus2
})).s("gm_violin").gain(0.15).pan(0.4)

// other · violin · soft notes
const violin_soft = note("<~@31 A ~@15 B C@6>".pickRestart({
  A: "a4@2 ~", B: "~ a4",
  C: "[~@12 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@7 [c5,d5] ~ c5@4 bb4 a4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@5 f4 e4 f4@2 f4 e4 f4 e4 f4 g4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@7 [c5,d5] ~ c5@4 bb4 a4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@5 f4 e4 f4@2 f4 e4 f4 e4 f4 g4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@7 [c5,d5] ~ c5@4 bb4 a4 a4@2 c5@2 c5 a4 bb4 a4 g4 f4@3]/6", // Csus2
})).s("gm_violin").gain(0.1).pan(0.4)

// other · piano
const piano = note("<A B C D C@2 E F G H C@3 I B ~@39>".pickRestart({
  A: "f2@11 f2", B: "f2", C: "f2 g2 bb2@2", D: "f2@3 g2@3 bb2@5 c3", E: "d3 bb2", F: "g2 c3", G: "d3@3 bb2@2 a2",
  H: "g2@2 c3 bb2", I: "a2 d2 g2@2 bb2@2 c2@2",
})).s("gm_piano").gain(0.35).pan(0.6)

// other · piano · "Completed 05/08/96"
const piano_2 = note("<A@2 B C@3 D E F G H@4 A I@5 E I ~ J@4 K@2 ~@6 L M@11 ~@7>".pickRestart({
  A: "a4!2 g4!2 a4!2 g4!2", B: "~@2 c4 f4 a3 c4 c4@2 c4 f4 a3 c4 c4@2 c4 f4 a3 c4 f4 a3 c4 f4 a3 c4",
  C: "~ a3 c4 f4 a3 c4 c4@2 c4 f4 a3 c4 c4@2 c4 f4 a3 c4 f4 a3 c4 f4 a3 c4",
  D: "~@5 d4 a4@2 d4 ~@4 bb3 d4 f4 bb3 d4 f4 bb3 d4 f4 bb3 d4",
  E: "~@2 bb3 g4@2 ~ a4@2 ~ f4@2 ~@3 a3 g4@2 ~ f4@2 ~ c4@3", F: "~@2 d4 f4@2 ~ a4@2 ~ f4@2 ~@3 bb3 d4 f4 bb3 d4 f4 ~@4",
  G: "~@2 bb3 g4@2 ~ a4@2 ~ f4@2 ~ e4@2 g3 c4 e4 g4 d4@6",
  H: "c4!2 f4 a4 c4 f4 ~ d4 f4 bb4 d4 f4 ~ d4 f4 bb4 d4 f4 ~ d4 f4 bb4 d4 a4",
  I: "~ a3 c4 f4 a3 c4 ~ bb3 c4 f4 bb3 c4 ~ bb3 c4 f4 bb3 c4 ~ bb3 c4 f4 bb3 c4",
  J: "c4!2 f4 a4 c4 f4 d4!2 f4 bb4 d4 f4 d4!2 f4 bb4 d4 f4 d4!2 f4 bb4 d4 a4", K: "a3 g3",
  L: "~@12 c4!2 f4 a4 c4 f4 d4!2 f4 bb4 d4 f4",
  M: "d4!2 f4 bb4 d4 f4 d4!2 f4 bb4 d4 a4 c4!2 f4 a4 c4 f4 d4!2 f4 bb4 d4 f4",
})).s("gm_piano").gain(0.15).pan(0.7)

// other · piano
const piano_3 = note("<~@11 A ~ B C ~@2 D E F G H I J K L@2 M N O@2 ~@2 P I Q@2 R@4 S@4 T@2 U@6 V>".pickRestart({
  A: "~@17 c5@2 ~@5", B: "~@2 a4@3 ~ bb4@2 a4@2 bb4 bb4@5 ~@2 g4@6", C: "a4@3 ~", D: "c4@2 a4@2 g4 f4 g4 f4@6 ~@11",
  E: "~@7 g4 f4 c4 ~@2", F: "d4 c4 d4@15 ~@7", G: "d4 c4 d4@6 f4@2 e4@4 d4 c4@4 ~@5", H: "d4 c4 d4@17 ~@5",
  I: "d4 c4 d4@8 e4@2 e4@4 ~@8", J: "a4@5 f4 g4 f4@2 d4@2 c4@4 ~@2 c4 c4@2 f4 e4@3",
  K: "c4@6 c4@2 f4 e4@3 c4@5 c4 d4 c4 bb3 a3@3",
  L: "[a3@2 a4@3 f4 g4 f4@2 d4@2 c4@4 ~@3 f4 e4@2 d4@2 c4@2 ~ a4@4 bb4@2 a4@2 bb4 bb4@6 ~ g4@6]/2", M: "a4@5 ~@3",
  N: "~@3 g4", O: "[a4@13 ~@11]/2", P: "d4 c4 d4@16 ~@6",
  Q: "[~@12 a4@5 f4 g4 f4@2 d4@2 c4@4 ~@2 c4 c4@2 f4 e4@3 c4@6 c4@2 f4 e4@3]/2",
  R: "[c4@5 c4 d4 c4 bb3 a3@3 a3@2 a4@3 f4 g4 f4@2 d4@2 c4@4 ~@3 d5 c5@2 bb4@2 a4@3 c5@4 bb4@2 a4@2 bb4 bb4@5 ~@2 g4@6 a4@15 ~@3 c4@2 f4 e4@3 c4@6 c4@2 f4 e4@3]/4",
  S: "[c4@4 ~@2 d4 c4 bb3 a3@3 a3@2 a4@3 f4 g4 f4@2 d4@2 c4@4 ~@3 d5 c5@2 bb4@2 a4@2 ~ c5@4 bb4@2 a4@2 bb4 bb4@6 ~ g4@6 a4@15 ~@21]/4",
  T: "[~@2 g4@2 a4@9 ~@3]/2", U: "[~@2 g4@2 a4@5 ~@7]/2", V: "~ g4 a4@2",
})).s("gm_piano").gain(0.36).pan(0.7)

// chords · string ensemble 2
const string_ensemble_2 = note("<A@2 B C@3 D E F G H@4 I@7 J K I@4 L M N M O P Q R S@3 T@7 U@7 ~@2>".pickRestart({
  A: "[f4,a4,c5]", B: "~ [bb3,c4]@3", C: "a3 bb3@3, c4", D: "[d4,a4] [bb3,bb4]", E: "[bb3,d4] [c4,e4]",
  F: "[a3,d4] [f3,bb3]", G: "[f3,d4]@2 [g3,c4] [f3,bb3]", H: "c4 d4 d4@2, f4", I: "[c4,f4]", J: "a3 bb3, d4",
  K: "bb3 c4, g3", L: "a4 g4, f4", M: "[d4,a4] [c4,g4]", N: "a4 g4, c4", O: "[a3,d4]", P: "[g2,d4] [c3,c4]",
  Q: "[d3,d4]", R: "[g2,d4]@2 c4 bb3", S: "[~ c4@2 c4@2 c4]/3",
  T: "[~@2 a3 bb3@3 a3 bb3@3 a3 bb3@3 a3 bb3@3 a3 bb3@3 c4@4 c4@2, ~ c4@2 c4@2 c4@2 c4@2 c4@2 ~@3]/7",
  U: "[~@2 c4@7 e4 f4@7 e4 f4@7 e4 ~@2]/7",
})).s("gm_string_ensemble_2").gain(0.15)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@10 A@3 ~@30 B C D C E C@3 F@3>".pickRestart({
  A: "a4 bb4@3", B: "~@2 a3 b3", C: "bb3@2 a3 b3", D: "bb3 c4 a3 b3", E: "bb3 c4!2 b3",
  F: "[bb3@2 a3 b3 bb3@2 a3 b3 ~ e4 a3 b3, ~@2 f4@7 ~ f4@2, ~@4 bb3 ~]/3",
})).s("gm_string_ensemble_2").gain(0.1)

// other · acoustic guitar steel
const acoustic_guitar_steel = note("<~@2 A@4 B C D E F G@4 H@7 ~ I@4 J@3 K ~@4 L M@3 N ~@14>".pickRestart({
  A: "~@2 f4 c5@2 ~@3 f4 bb4@2 ~@3 f4 bb4@2 f4 bb4@2 f4 bb4@2 ~",
  B: "~@2 f4 c5@2 ~@3 f4 c5@2 ~@3 d4 f4@2 d4 f4@2 d4 f4@2 ~",
  C: "~@2 d4@2 ~ d4 ~@2 d4@2 ~@3 a3 c4 f4 a3 c4 f4 a3 c4 f4 ~@2",
  D: "~@2 a3 d4 f4 a3 d4 f4 a3 d4 f4 ~@4 d4 f4@2 d4 f4@2 ~@3",
  E: "~@2 bb3 d4 f4 bb3 f4 bb3 d4 f4 bb3 d4 e4@2 e4@2 e4@2 d4@6",
  F: "~@2 f4 a4 c4 f4 d4@2 f4 bb4 d4 f4 d4@2 f4 bb4 d4 f4 d4@2 f4 bb4 d4 f4",
  G: "c4@2 f4 a4 c4 f4 d4@2 f4 bb4 d4 f4 d4@2 f4 bb4 d4 f4 d4@2 f4 bb4 d4 f4",
  H: "~ a3 c4 f4 a3 c4 ~ bb3 c4 f4 bb3 c4 ~ bb3 c4 f4 bb3 c4 ~ bb3 c4 f4 bb3 c4",
  I: "c4!2 f4 a4 c4 f4 d4!2 f4 bb4 d4 f4 d4!2 f4 bb4 d4 f4 d4!2 f4 bb4 d4 a4", J: "a4!4 g4!4",
  K: "a4@3 a4@3 a4@3 a4@3 g4@4 ~@8", L: "~@12 c4!2 f4 a4 c4 f4 d4!2 f4 bb4 d4 f4",
  M: "d4!2 f4 bb4 d4 f4 d4!2 f4 bb4 d4 a4 c4!2 f4 a4 c4 f4 d4!2 f4 bb4 d4 f4",
  N: "d4!2 f4 bb4 d4 f4 d4!2 f4 bb4 d4 a4 ~@12",
})).s("gm_acoustic_guitar_steel").gain(0.2).pan(0.3)

// bass · electric bass finger
const bass = note(`<
  A B ~@13 C D C E F G H I J E@2 K L M N O ~@4 P Q R S T Q U V W X Y Z AA AB AC AD AE AF AG
>`.pickRestart({
  A: "f2@11 f2", B: "f2", C: "f2 g2 bb2@2", D: "f2@6 g2@4 bb2@2 bb2@8 c3 d3 f3 c3", E: "f2@6 g2@5 bb2 bb2@10 c3@2",
  F: "d3@11 c3 bb2@10 a2@2", G: "g2@12 c3@10 a2 c3", H: "d3@6 d3 a2 c3@3 a2 bb2@8 a2@4",
  I: "g2@6 d2@6 c3@3 ~ g2 bb2 bb2@2 bb2@2 bb2@2", J: "f2@3 g2@3 bb2@5 c3", K: "a2@3 d3@3 g2@5 bb2 bb2@12",
  L: "f2@12 g2@11 bb2", M: "bb2@12 c3@10 c3 d3", N: "f3 c2 f3@7 f2 f2@2 g2@10 a2@2", O: "a2 c3", P: "~@2 f2 g2",
  Q: "bb2@10 c3@2 f2@6 g2@5 bb2", R: "bb2@8 f2@2 d2 c2 f2@6 g2@5 bb2", S: "bb2@12 a2@3 d2@3 g2@5 bb2",
  T: "bb2@3 c3 a2 g2 c3 a2 g2 f2 d2 c2 f2@6 g2@5 bb2", U: "bb2 f2 bb2@8 c3@2 f2@6 g2@5 bb2",
  V: "bb2@12 a2@3 d3@3 g2@5 bb2", W: "bb2@6 c2@6 f2@6 g2@5 bb2", X: "bb2@6 c3@6 d3@6 g2@5 bb2",
  Y: "bb2@6 c3@6 f2 c2 f2 c2 f2@2 g2@5 bb2", Z: "bb2@6 c3@4 a2 c3 d3@4 bb2 a2 g2@5 bb2",
  AA: "bb2@6 c3@6 f2@6 g2@3 g2!2 bb2", AB: "bb2@3 f2 bb2 c3 c3@3 c3 g2 c3 d3@3 d3 bb2 a2 g2@3 g2@2 bb2",
  AC: "bb2@3 bb2@2 c3 c3@2 c3@2 a2 g2 f2@3 a2@2 f2 g2@3 bb2@2 f2",
  AD: "bb2@3 bb2 f2 bb2 c3@3 g2 bb2 c3 d3@3 a2@3 g2@3 g2 a2 g2",
  AE: "bb2@3 c2 d2 c2 a2 bb2 a2 g2 f2 c2 f2@3 f2 a2 f2 g2@6",
  AF: "bb2@3 bb2 f2 bb2 c3@2 g2!2 g2@2 d3@4 a2@2 g2@3 g2@2 g2", AG: "bb2@6 c3@6 f2@5 f2 g2@3 g2@2 ~",
})).s("gm_electric_bass_finger").gain(0.45)

// chords · orchestral harp · A7 D5 A7 D5 Eb D5 Eb D5 …
const orchestral_harp = note(`<
  ~@31
  [a4 [a3,g4] [d4,a4] f4 ~@2 a4 [a3,g4] [d4,a4] f4 ~@2 a4 [bb3,g4] [d4,a4] f4 ~@2 a4 [bb3,g4] [d4,a4] f4 ~@2, d3!4]
  [bb4 [d4,a4] [f4,bb4] g4 ~@2 bb4 [d4,a4] [f4,bb4] g4 ~@2 bb4 d4 f4 g4 a4 g4 bb4 ~ [g4,a4] [b4,c5] [d5,e5] [f5,g5], g3!4]
  [[d3,a5] d3!3]
  [g3@6 g3@6 g3@6 [g5,a5] [e5,f5] d5 [c4,d4] [e4,f4,e5,f5] [g4,a4,g5,a5], ~@10 c5 ~]
  ~@19
>`).s("gm_orchestral_harp").gain(0.3).pan(0.4)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@33
  [a3 g3 a3 f3 ~@2 a3 g3 a3 f3 ~@2 a3 g3 a3 f3 ~@2 a3 g3 a3 f3 g3 a3]
  [bb3 a3 bb3 g3 ~@2 bb3 a3 bb3 g3 ~@2 c4@2 c4@2 c4@2 bb3@2 bb3@2 bb3@2]
  ~@19
>`).s("gm_electric_guitar_jazz").gain(0.3).pan(0.6)

// other · overdriven guitar
const overdriven_guitar = note("<~@34 A B@2 C@2 ~@15>".pickRestart({
  A: "~@6 [c3,c4]!3 [bb2,bb3]!3", // C Bb
  B: "[[bb2,bb3] [a2,c3,c4] [bb2,bb3] [a2,a3] ~ [bb2,bb3] [f2,c3,c4] [bb2,bb3]@5 a2@6 bb2@18 a2@6 bb2@6]/2", // Bb Am Bb A Bb F5 Bb
  C: "[bb3!4 bb3@2 bb3 a3 bb3 a3 bb3 a3 a3@6 bb3@18 ~@12]/2",
})).s("gm_overdriven_guitar").gain(0.1)

// other · piano
const piano_4 = note("<~@13 A B ~@2 C D E F G H I J K@2 L M N@2 ~@2 O H ~ P Q@4 R S@3 T@2 U@6 ~>".pickRestart({
  A: "~@2 f4@3 ~ d4@2 c4@2 d4 d4@5 ~@2 c4 bb3 a3 bb3 a3@2", B: "c4@3 ~", C: "~@2 f4@2 d4 c4 d4 c4@6 ~@11",
  D: "~@8 g4@2 f4@2 c4@3 ~@9", E: "a3 g3 a3@10 bb3@12", F: "bb3 a3 bb3@6 d4@2 c4@4 a3 g3@4 ~@5", G: "a3 g3 a3@17 ~@5",
  H: "bb3 a3 bb3@8 c4@2 c4@4 ~@8", I: "c4@5 a3 bb3 bb3@2 bb3@2 bb3@4 ~@9",
  J: "~@6 bb3@2 bb3 bb3@3 bb3@5 c4 d4 c4 bb3 a3@3",
  K: "[~@18 f4 e4@2 d4@2 c4@2 ~ f4@4 d4@2 c4@2 d4 d4@6 ~ c4 bb3 a3 bb3 a3@2]/2", L: "c4@5 ~@3",
  M: "~@18 c4 bb3 a3 bb3 a3@2", N: "[c4@13 ~@11]/2", O: "a3 g3 a3@16 ~@6", P: "~@18 bb3@2 bb3 bb3@3",
  Q: "[bb3@5 ~@7 a4@2 c5@3 a4 bb4 a4@2 bb4@2 bb4@4 ~@3 f4 e4@2 d4@2 c4@3 f4@4 d4@2 c4@2 d4 d4@5 ~@2 c4 bb3 a3 bb3 a3@2 ~@6 g4 f4@2 d4@2 c4@4 ~@15 bb3@2 bb3 bb3@3, ~@60 c4@11 ~@25]/4",
  R: "bb3 ~@5", S: "[~@6 f4 e4@2 d4@2 c4@3 f4@4 d4@2 c4@2 d4 d4@6 ~@2 bb3 a3 bb3 a3@2 [a3,c4]@15 ~@21, ~@5 c4 ~@6]/3",
  T: "[~@2 c4@2 f4@9 ~@3]/2", U: "[~@6 c4 bb3 a3 bb3 a3@2 [a3,c4]@15 ~@21, ~ g3 ~@6]/2",
})).s("gm_piano").gain(0.25).pan(0.3)

// other · piano · soft notes · Am
const piano_soft = note("<~@25 [~@9 bb3@2 bb3@4 ~@9] ~@27 [~@6 c4 bb3 a3 bb3 a3@2 [a3,c4]@12, ~ g3 ~@2]>")
  .s("gm_piano").gain(0.1).pan(0.3)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@52 [~@18 x ~@4 x] [x ~@5 x ~@5 x ~@4 x!2 ~@5]>").gain(0.15)

// drums · rim
const rim = s("rim").struct("<~@14 [~@22 x!2] [~ x ~ x]!2 [~@3 x] [~ x ~ x]!4 [~ x ~@2] ~@31>").gain(0.3)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@34 [~@6 x!6] ~@17 [~@5 x ~ x] [~ x ~ x ~ x ~ x]>").gain(0.15)

// drums · low tom
const low_tom = s("lt").struct("<~@26 A B ~@11 C ~ D ~ E ~ F ~ F ~@6>".pickRestart({
  A: "~@11 x", B: "x", C: "~@5 x ~@2 x ~@15", D: "~@7 x ~ x ~ x!2 ~@11", E: "~@4 x ~@5 x!2 ~@12", F: "~@10 x!2 ~@12",
})).gain(0.3)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@26 A ~@7 B ~@4 C ~@3 D ~ E ~ D ~@6>".pickRestart({
// … 26 more lines

More by The Corrs