Strudelify
KeyD majorTempo75 bpm
0:00/0:00
// Shine — Collective Soul
// 75 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (1/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 90 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(75/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 · electric guitar clean · "Guitar 1"
const electric_guitar_clean = note(`<
  A B C D A B C D A B C D E F E F G H G H G H G H A B C D A B C D A B C D E F E F G H G H G H G H I J@3 K L M N O P Q R
  O P Q R O P Q S T U T V W X W X W X W Y@5 Z@6
>`.pickRestart({
  A: "e4 f#4 d3!2 [d4,f#4]@2 d3 [d4,e4] d3 [a3,d4]!2 [d3,a3] [a3,d4] d3 [d3,a3] d3, d4 ~@7", // D Dsus2 D5
  B: "e4 f#4 d3!2 [d4,f#4] d3 [f#4,a4]!2 d3!2 [a3,d4] d3 [d4,e4] d3 [d4,f#4] d3, d4 ~@7", // D F#m D5 Dsus2 D
  C: "[g3,c4,e4]@2 [d3,a3]!2 [g3,c4,e4]@2 [d3,a3] [g3,c4,e4] [d3,a3] [g3,c4,e4] [d3,a3]!2 [g3,c4,e4] [d3,a3] [g3,c4,e4] [d3,a3]", // C D5 C D5 C D5 C D5 …
  D: "[g3,d4,g4]@2 [d3,a3]!2 [g3,d4,g4]@2 [d3,a3] [g3,d4,g4] [d3,a3] [g3,d4,g4] [d3,a3]!2 [g3,d4,g4] [d3,a3] [g3,d4,g4] [d3,a3]", // G5 D5 G5 D5 G5 D5 G5 D5 …
  E: "[d2,a2]@2 d2!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2] [a2,d3] ~@3", // D5 F5 D5 F5 D5 F5 D5
  F: "[d2,a2]@2 d2!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2] [a2,d3] ~ [g#2,d#3] ~", // D5 F5 D5 F5 D5 F5 D5 G#5
  G: "[c3,e3,g3,d4,g4]@4 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4] [g2,d3,g3,d4,g4]@4 ~ [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]!2", // C G5
  H: "[d2,a2,d3,a3,d4,f#4]@12 [d2,a2,d3,a3,d4,f#4]@8 ~ [d2,a2,d3,a3,d4,f#4]@6 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@6 [d2,a2,d3,a3,d4,f#4]@6 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3", // D
  I: "[d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@5 ~", // D
  J: "[[d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [c3,e3,g3,d4,g4]@5 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@5 ~ [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@6 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [d2,a2,d3,a3,d4,f#4]@5 ~ [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@4]/3", // D C G5 D
  K: "~ [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@5 ~ [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@6 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@2", // D
  L: "~ [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [c3,e3,g3,d4,g4]@5 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@5 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@5 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2", // D C
  M: "~ [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@5 ~ [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@5 ~ [g2,d3,g3,d4,g4]@2", // C G5
  N: "[g2,d3,g3,d4,g4] e4 f#4 d3!2 [d4,f#4]@2 d3 [d4,e4] d3 [a3,d4]!2 [d3,a3] [a3,d4] d3 [d3,a3], ~ d4@2 ~@13", // G5 D Dsus2 D5
  O: "d3 e4 f#4 d3!2 [d4,f#4] d3 [f#4,a4]!2 d3!2 [a3,d4] d3 [d4,e4] d3 [d4,f#4], ~ d4@2 ~@13", // D F#m D5 Dsus2 D
  P: "d3 [g3,c4,e4]@2 [d3,a3]!2 [g3,c4,e4]@2 [d3,a3] [g3,c4,e4] [d3,a3] [g3,c4,e4] [d3,a3]!2 [g3,c4,e4] [d3,a3] [g3,c4,e4]", // C D5 C D5 C D5 C D5 …
  Q: "[d3,a3] [g3,d4,g4]@2 [d3,a3]!2 [g3,d4,g4]@2 [d3,a3] [g3,d4,g4] [d3,a3] [g3,d4,g4] [d3,a3]!2 [g3,d4,g4] [d3,a3] [g3,d4,g4]", // D5 G5 D5 G5 D5 G5 D5 G5 …
  R: "[d3,a3] e4 f#4 d3!2 [d4,f#4]@2 d3 [d4,e4] d3 [a3,d4]!2 [d3,a3] [a3,d4] d3 [d3,a3], ~ d4@2 ~@13", // D5 D Dsus2 D5
  S: "[d3,a3] [d2,a2]@2 d2!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2] [a2,d3] ~@2", // D5 F5 D5 F5 D5 F5 D5
  T: "~ [d2,a2]@2 d2!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2] [a2,d3] ~ [g#2,d#3]", // D5 F5 D5 F5 D5 F5 D5 G#5
  U: "~ [d2,a2]@2 d2!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2] [a2,d3] ~@2", // D5 F5 D5 F5 D5 F5 D5
  V: "~ [c3,e3,g3,d4,g4]@4 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4] [g2,d3,g3,d4,g4]@4 ~ [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]", // C G5
  W: "[g2,d3,g3,d4,g4]@3 [d2,a2,d3,a3,d4,f#4]@12 [d2,a2,d3,a3,d4,f#4]@8 ~ [d2,a2,d3,a3,d4,f#4]@6 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@6 [d2,a2,d3,a3,d4,f#4]@6 [d2,a2,d3,a3,d4,f#4]@3", // G5 D
  X: "[d2,a2,d3,a3,d4,f#4] [c3,e3,g3,d4,g4]@4 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4] [g2,d3,g3,d4,g4]@4 ~ [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]", // D C G5
  Y: "[[d2,a2,d3,a3,d4,f#4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@5 ~ [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@2]/5", // D C G5 D C G5 D C …
  Z: "[~ [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [d2,a2]@6 d2@3 d2@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [a2,d3]@3 ~@9 [d2,a2]@6 d2@3 d2@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [a2,d3]@3 ~@3 [g#2,d#3]@3 ~@3 [d2,a2]@6 d2@3 d2@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [a2,d3]@3 ~@9 [d2,a2]@6 d2@3 d2@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [a2,d3]@3 ~@3 [g#2,d#3]@3 ~@37]/6", // D C G5 D5 F5 D5 F5 D5 …
})).s("gm_electric_guitar_clean").gain(0.4)

// chords · acoustic guitar steel · "Guitar 2"
const acoustic_guitar_steel = note(`<
  ~@4 A B C D A B C D E F E F G H G H G H G H A B C D A B C D A B C D E F E F G H G H G H G H I J@3 K L M N ~@11 O P O P
  Q R S R S R S R T@5 U@6
>`.pickRestart({
  A: "e4 f#4 d3!2 [d4,f#4]@2 d3 [d4,e4] d3 [a3,d4]!2 [d3,a3] [a3,d4] d3 [d3,a3] d3, d4 ~@7", // D Dsus2 D5
  B: "e4 f#4 d3!2 [d4,f#4] d3 [f#4,a4]!2 d3!2 [a3,d4] d3 [d4,e4] d3 [d4,f#4] d3, d4 ~@7", // D F#m D5 Dsus2 D
  C: "[g3,c4,e4]@2 [d3,a3]!2 [g3,c4,e4]@2 [d3,a3] [g3,c4,e4] [d3,a3] [g3,c4,e4] [d3,a3]!2 [g3,c4,e4] [d3,a3] [g3,c4,e4] [d3,a3]", // C D5 C D5 C D5 C D5 …
  D: "[g3,d4,g4]@2 [d3,a3]!2 [g3,d4,g4]@2 [d3,a3] [g3,d4,g4] [d3,a3] [g3,d4,g4] [d3,a3]!2 [g3,d4,g4] [d3,a3] [g3,d4,g4] [d3,a3]", // G5 D5 G5 D5 G5 D5 G5 D5 …
  E: "[d2,a2]@2 d2!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2] [a2,d3] ~@3", // D5 F5 D5 F5 D5 F5 D5
  F: "[d2,a2]@2 d2!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2] [a2,d3] ~ [g#2,d#3] ~", // D5 F5 D5 F5 D5 F5 D5 G#5
  G: "[c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4] [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4] [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]!2", // C G5
  H: "[d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]!2 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4] [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4] [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]!2", // D
  I: "[d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@5 ~", // D
  J: "[[d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [c3,e3,g3,d4,g4]@5 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@5 ~ [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@6 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [d2,a2,d3,a3,d4,f#4]@5 ~ [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@4]/3", // D C G5 D
  K: "~ [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@5 ~ [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@6 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@2", // D
  L: "~ [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [c3,e3,g3,d4,g4]@5 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@5 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@5 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2", // D C
  M: "~ [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@5 ~ [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@5 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@5 ~ [g2,d3,g3,d4,g4]@2", // C G5
  N: "[g2,d3,g3,d4,g4] ~@15", O: "~ [d2,a2]@2 d2!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2] [a2,d3] ~@2",
  P: "~ [d2,a2]@2 d2!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2]!2 [f2,c3] [d2,a2] [a2,d3] ~ [g#2,d#3]", // D5 F5 D5 F5 D5 F5 D5 G#5
  Q: "~ [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4] [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4] [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]", // C G5
  R: "[g2,d3,g3,d4,g4] [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]!2 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4] [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4] [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]", // G5 D
  S: "[d2,a2,d3,a3,d4,f#4] [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4] [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4] [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]", // D C G5
  T: "[[d2,a2,d3,a3,d4,f#4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@5 ~ [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@2]/5", // D C G5 D C G5 D C …
  U: "[~ [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@5 [d2,a2,d3,a3,d4,f#4]@3 [d2,a2,d3,a3,d4,f#4]@2 [d2,a2,d3,a3,d4,f#4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@2 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [g2,d3,g3,d4,g4]@3 [d2,a2]@6 d2@3 d2@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [a2,d3]@3 ~@9 [d2,a2]@6 d2@3 d2@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [a2,d3]@3 ~@3 [g#2,d#3]@3 ~@3 [d2,a2]@6 d2@3 d2@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [a2,d3]@3 ~@9 [d2,a2]@6 d2@3 d2@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [d2,a2]@3 [f2,c3]@3 [d2,a2]@3 [a2,d3]@3 ~@3 [g#2,d#3]@3 ~@37]/6", // D C G5 D5 F5 D5 F5 D5 …
})).s("gm_acoustic_guitar_steel").gain(0.4)

// bass · electric bass pick · "Bass Guitar"
const bass = note(`<
  A@2 B C A@2 B C A@2 B C D E D E F G F G F G F G A@2 B C A@2 B C A@2 B C D E D E F G F G F G F G H I@4 J K L ~@3 M@2 N
  O M@2 N O P Q P Q R S T S T S T S U V@4 W@6
>`.pickRestart({
  A: "d1@16 ~@5 d2@6 ~@3 d2@12 ~@6", B: "c2@16 ~@5 c2@6 ~@3 c2@12 ~@6", C: "g2@16 ~@5 g2@6 ~@3 g2@12 ~@6",
  D: "d1@2 d1!2 f1 d1!2 f1 d1!2 f1 d1 g1 ~@3", E: "d1@2 d1!2 f1 d1!2 f1 d1!2 f1 d1 g1 ~ g#1 ~",
  F: "c2@4 c2@2 a1 g1@2 g2 g1@2 g2@2 d2 ~", G: "d1@4 d1@2 ~ d1@2 d1 d1@2 d1@2 d1!2",
  H: "d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3",
  I: "[d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 c2@2 c2@3 c2@3 c2@2 c2@3 c2@3 c2@2 c2@3 c2@3 c2@2 c2@3 c2@2 c2@3 c2@3 c2@2 c2@3 g1@2 ~ g1@2 g1@2 ~ g1@2 ~ g1@2 g1@2 ~ g1@2 ~ g1@2 g1@2 ~ g1@2 ~ g1@2 g1@2 ~ g1@2 g1@2 ~ g1@2 ~ g1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@2]/4",
  J: "~ d1@3 d1@2 d1@3 d1@2 d1@3 c2@3 c2@2 c2@3 c2@3 c2@2 c2@3 c2@3 c2@2 c2@3 c2@3 c2@2 c2@3 c2@2",
  K: "~ c2@2 c2@3 c2@2 g1@2 ~ g1@2 ~ g1@2 g1@2 ~ g1@2 ~ g1@2 g1@2 ~ g1@2 ~ g1@2 g1@2 ~ g1@2 ~ g1@2 g1@2 ~ g1@2 ~ g1@2",
  L: "g1 ~@23", M: "~@3 d1@16 ~@5 d2@6 ~@3 d2@12 ~@3", N: "~@3 c2@16 ~@5 c2@6 ~@3 c2@12 ~@3",
  O: "~@3 g2@16 ~@5 g2@6 ~@3 g2@12 ~@3", P: "~ d1@2 d1!2 f1 d1!2 f1 d1!2 f1 d1 g1 ~@2",
  Q: "~ d1@2 d1!2 f1 d1!2 f1 d1!2 f1 d1 g1 ~ g#1", R: "~ c2@4 c2@2 a1 g1@2 g2 g1@2 g2@2 d2",
  S: "~ d1@4 d1@2 ~ d1@2 d1 d1@2 d1@2 d1", T: "d1 c2@4 c2@2 a1 g1@2 g2 g1@2 g2@2 d2",
  U: "d1@3 c2@2 c2@3 c2@3 c2@2 c2@3 c2@3 c2@2 a1@3 g1@3 g1@2 g1@3 g1@3 g1@2 g1@3 g1@3 d1@2 d1@3",
  V: "[d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 c2@2 c2@3 c2@2 c2@3 c2@3 c2@2 c2@3 a1@3 g1@2 g1@3 g1@3 g1@2 g1@3 g1@3 g1@2 d1@3 d1@3 d1@2 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@3 d1@2 c2@3 c2@3 c2@2 c2@3 c2@2 c2@3 c2@3 a1@2 g1@3 g1@3 g1@2 g1@3 g1@3 g1@2 g1@3 d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 d1@2 d1@3 d1@3 d1@2 d1@2]/4",
  W: "[~ d1@3 d1@2 d1@3 d1@3 d1@2 d1@3 c2@3 c2@2 c2@3 c2@3 c2@2 c2@3 c2@3 a1@3 g1@2 g1@3 g1@3 g1@3 g1@3 g1@3 g1@3 g1@3 d1@6 d1@3 d1@3 f1@3 d1@3 d1@3 f1@3 d1@3 d1@3 f1@3 d1@3 g1@3 ~@9 d1@6 d1@3 d1@3 f1@3 d1@3 d1@3 f1@3 d1@3 d1@3 f1@3 d1@3 g1@3 ~@3 g#1@3 ~@3 d1@6 d1@3 d1@3 f1@3 d1@3 d1@3 f1@3 d1@3 d1@3 f1@3 d1@3 g1@3 ~@9 d1@6 d1@3 d1@3 f1@3 d1@3 d1@3 f1@3 d1@3 d1@3 f1@3 d1@3 g1@3 ~@3 g#1@3 ~@37]/6",
})).s("gm_electric_bass_pick").gain(0.64)

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

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

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@3 A ~@7 A ~ A ~ A ~ B ~ B ~ B ~ B ~@3 A ~@7 A ~ A ~ A ~ B ~ B ~ B ~ B ~ C ~ D ~ E ~ F ~@10 B ~ B ~ B ~@2 F ~ F ~ F ~
  F G ~ H ~ I E ~ J ~@2
>`.pickRestart({
  A: "~@7 x", B: "~@15 x", C: "~@17 x ~@6", D: "~@23 x ~@24", E: "~@11 x ~@36", F: "x", G: "~@37 x ~@10",
  H: "~@13 x ~@10", I: "~@7 x ~@16", J: "~ x ~@4",
})).gain(0.33)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@3 A ~@7 B ~ A ~ A ~ C ~ C ~ C ~ C ~@3 A ~@7 B ~ A ~ A ~ C ~ C ~ C ~ C ~ D ~ E ~ F G ~@11 A ~ C ~ C ~ H ~ H ~ H ~ H ~
  I ~ J ~ K L ~ M ~ N
>`.pickRestart({
  A: "~@13 x ~@2", B: "~@3 x", C: "~@7 x", D: "~@31 x ~@16", E: "~@5 x ~@6", F: "~@3 x ~@12", G: "~@23 x", H: "~@15 x",
  I: "~@17 x ~@6", J: "~@23 x ~@24", K: "~ x ~@2", L: "~ x ~@4", M: "~@5 x ~@42", N: "~ x ~@22",
})).gain(0.33)

// drums · open hat
const open_hat = s("oh").struct("<A@48 B C D E F G H ~@4 I@20 J K L M N O P@4 Q>".pickRestart({
  A: "x!4", B: "x ~@10 x ~@9 x ~@10 x ~@9 x ~@5", C: "~@5 x ~@10 x ~@9 x ~@10 x ~@9 x",
  D: "~@10 x ~@9 x ~@10 x ~@10 x ~@5", E: "~@4 x ~@10 x ~@9 x ~@10 x ~@10 x", F: "~@9 x ~@10 x ~@9 x ~@10 x ~@6",
  G: "~@4 x ~@9 x ~@10 x ~@9 x ~@10 x ~", H: "~@8 x ~@10 x ~@10 x ~@9 x ~@7", I: "~ x ~@3 x ~@3 x ~@3 x ~@2",
  J: "~@3 x ~@9 x ~@10 x ~@10 x ~@9 x ~@2", K: "~@8 x ~@9 x ~@10 x ~@10 x ~@7",
  L: "~@2 x ~@10 x ~@9 x ~@10 x ~@9 x ~@3", M: "~@7 x ~@10 x ~@9 x ~@10 x ~@8", N: "~ x ~@10 x ~@10 x ~@9 x ~@10 x ~@3",
  O: "~@6 x ~@10 x ~@10 x ~@10 x ~@8", P: "~ x ~@5 x ~@5 x ~@5 x ~@4", Q: "~ x ~@2 x ~@19",
})).gain(0.33)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@3 A ~@9 A ~ A ~ B ~ B ~ B ~ B ~@3 A ~@9 A ~ A ~ B ~ B ~ B ~ B ~ C ~ D ~ E F ~@13 B ~ B ~ G ~ G ~ G ~ G ~ H ~ I ~ J K
  ~ L ~@2
>`.pickRestart({
  A: "~@3 x", B: "~@13 x ~@2", C: "~@29 x ~@18", D: "~@17 x ~@30", E: "~ x ~@6", F: "~@43 x ~@4", G: "~@7 x",
  H: "~@2 x", I: "~@5 x ~@6", J: "~@3 x ~@12", K: "~@5 x ~@42", L: "~ x ~@22",
})).gain(0.33)

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

stack(electric_guitar_clean, acoustic_guitar_steel, bass, kick, snare, low_tom, mid_tom, open_hat, high_tom, crash)

More by Collective Soul