Strudelify
KeyF minorTempo89 bpm
0:00/0:00
// Ava Adore — The Smashing Pumpkins
// 89.2 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 96 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 29, guitar program 27.
setcpm(89.2/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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
const bass = note("<~@8 A@10 B A B C D@8 E@8 F@8 G@8 H@8 I@8 J@8 K@8 L@8 M@2>".pickRestart({
  A: "f1@2 f1@2 ~@3 f1 f1@2 f1@3 ab1@2 ab1", B: "eb1@3 eb1!5 bb1@3 bb1!5",
  C: "ab1@2 ab1@2 ab1@3 ab1 ab1@3 ab1 ab1@2 ab1!2",
  D: "[c2@6 c2@5 c2@9 c2@3 c2@9 c2@3 c2@6 c2@3 c2@3 db2@6 db2@6 db2@9 db2@3 bb1@9 bb1@3 bb1@6 bb1@3 bb1@3 ab1@6 ab1@6 ab1@9 ab1@3 ab1@9 ab1@3 ab1@6 ab1@3 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1]/8",
  E: "[~@5 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 eb1@9 eb1@3 eb1@3 eb1@3 eb1@3 eb1@3 bb1@9 bb1@3 bb1@3 bb1@3 bb1@3 bb1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 eb1@9 eb1@3 eb1@3 eb1@3 eb1@3 eb1@3 bb1@9 bb1@3 bb1@3 bb1@3 bb1@3 bb1@3 ab1]/8",
  F: "[~@5 ab1@6 ab1@9 ab1@3 ab1@9 ab1@3 ab1@6 ab1@3 ab1@3 c2@6 c2@6 c2@9 c2@3 c2@9 c2@3 c2@6 c2@3 c2@3 db2@6 db2@6 db2@9 db2@3 c2@9 c2@3 bb1@6 bb1@3 bb1@3 ab1@6 ab1@6 ab1@9 ab1@3 ab1@9 ab1@3 ab1@6 ab1@3 ab1@3 ab1@6 ab1@6 ab1@9 ab1@3 ab1@9 ab1@3 ab1@6 ab1@3 ab1@3 c2@6 c2@6 c2@9 c2@3 c2@9 c2@3 c2@6 c2@3 c2@3 db2@6 db2@6 db2@9 db2@3 c2@9 c2@3 bb1@6 bb1@3 bb1@3 ab1@6 ab1@6 ab1@9 ab1@3 ab1@9 ab1@3 ab1@6 ab1@3 ab1@3 bb1]/8",
  G: "[~@5 bb1@6 bb1@9 bb1@3 bb1@9 bb1@3 bb1@6 bb1@3 bb1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1]/8",
  H: "[~@5 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 eb1@9 eb1@3 eb1@3 eb1@3 eb1@3 eb1@3 bb1@9 bb1@3 bb1@3 bb1@3 bb1@3 bb1@3 ab1@6 ab1@6 ab1@9 ab1@3 ab1@9 ab1@3 ab1@6 ab1@3 ab1@3 c2@6 c2@6 c2@9 c2@3 c2@9 c2@3 c2@6 c2@3 c2@3 db2@6 db2@6 db2@9 db2@3 c2@9 c2@3 bb1@6 bb1@3 bb1@3 ab1@6 ab1@6 ab1@9 ab1@3 ab1@9 ab1@3 ab1@6 ab1@3 ab1@3 ab1]/8",
  I: "[~@5 ab1@6 ab1@9 ab1@3 ab1@9 ab1@3 ab1@6 ab1@3 ab1@3 c2@6 c2@6 c2@9 c2@3 c2@9 c2@3 c2@6 c2@3 c2@3 db2@6 db2@6 db2@9 db2@3 c2@9 c2@3 bb1@6 bb1@3 bb1@3 ab1@6 ab1@6 ab1@9 ab1@3 ab1@9 ab1@3 ab1@6 ab1@3 ab1@3 ab1@6 ab1@6 ab1@9 ab1@3 ab1@9 ab1@3 ab1@6 ab1@3 ab1@3 c2@6 c2@6 c2@9 c2@3 c2@9 c2@3 c2@6 c2@3 c2@3 db2@6 db2@6 db2@9 db2@3 c2@8 c2@3 bb1@6 bb1@3 bb1@3 ab1@6 ab1@6 ab1@9 ab1@3 ab1@9 ab1@3 ab1@6 ab1@3 ab1@3 bb1@2]/8",
  J: "[~@4 bb1@6 bb1@9 bb1@3 bb1@9 bb1@3 bb1@6 bb1@3 bb1@3 ab1@6 ab1@6 ab1@9 ab1@3 ab1@9 ab1@3 ab1@6 ab1@3 ab1@3 bb1@6 bb1@6 bb1@9 bb1@3 bb1@9 bb1@3 bb1@6 bb1@3 bb1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@2]/8",
  K: "[~@4 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 eb1@9 eb1@3 eb1@3 eb1@3 eb1@3 eb1@3 bb1@9 bb1@3 bb1@3 bb1@3 bb1@3 bb1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 eb1@9 eb1@3 eb1@3 eb1@3 eb1@3 eb1@3 bb1@9 bb1@3 bb1@3 bb1@3 bb1@3 bb1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 eb1@9 eb1@3 eb1@3 eb1@3 eb1@3 eb1@3 bb1@9 bb1@3 bb1@3 bb1@3 bb1@3 bb1@3 f1@2]/8",
  L: "[~@4 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 eb1@9 eb1@3 eb1@3 eb1@3 eb1@3 eb1@3 bb1@9 bb1@3 bb1@3 bb1@3 bb1@3 bb1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 eb1@9 eb1@3 eb1@3 eb1@3 eb1@3 eb1@3 bb1@9 bb1@3 bb1@3 bb1@3 bb1@3 bb1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 eb1@9 eb1@3 eb1@3 eb1@3 eb1@3 eb1@3 bb1@9 bb1@3 bb1@3 bb1@3 bb1@3 bb1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@2]/8",
  M: "[~@4 f1@6 ~@9 f1@3 f1@6 f1@9 ab1@6 ab1@3 f1@6 f1@42 ~@2]/2",
})).s("gm_electric_bass_pick").gain(0.8)

// chords · overdriven guitar
const overdriven_guitar = note("<~@4 A@4 B@4 ~@6 C A C D E@8 F@8 G@8 H@3 ~@5 I@4 J@8 K@6 L@8 M@8 N@8>".pickRestart({
  A: "[f2,c3]@6 [f2,c3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3]@3 [f2,c3]@6 [f2,c3]@9 [ab2,eb3]@6 [ab2,eb3]@3", // F5 Ab5
  B: "[f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3", // F5 Ab5
  C: "[eb2,bb2]@3 [eb2,bb2]!5 [bb2,f3]@3 [bb2,f3]!5", // Eb5 Bb5
  D: "[ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@3 [ab2,eb3] [ab2,eb3]@3 [ab2,eb3] [ab2,eb3]@2 [ab2,eb3]!2", // Ab5
  E: "[[c3,g3]@6 [c3,g3]@5 [c3,g3]@9 [c3,g3]@3 [c3,g3]@9 [c3,g3]@3 [c3,g3]@6 [c3,g3]@3 [c3,g3]@3 [db3,ab3]@6 [db3,ab3]@6 [db3,ab3]@9 [db3,ab3]@3 [bb2,f3]@9 [bb2,f3]@3 [bb2,f3]@6 [bb2,f3]@3 [bb2,f3]@3 [ab2,eb3]@6 [ab2,eb3]@6 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@6 [ab2,eb3]@3 [ab2,eb3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3]@6 [f2,c3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3]@3 [f2,c3]@6 [f2,c3]@9 [ab2,eb3]@6 [ab2,eb3]@3 [f2,c3]]/8", // C5 Db5 Bb5 Ab5 F5 Ab5 F5 Ab5 …
  F: "[~@5 [f2,c3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3]@3 [f2,c3]@6 [f2,c3]@9 [ab2,eb3]@6 [ab2,eb3]@3 [f2,c3]@6 [f2,c3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3]@3 [f2,c3]@6 [f2,c3]@9 [ab2,eb3]@6 [ab2,eb3]@3 [f2,c3]@6 [f2,c3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3]@3 [f2,c3]@6 [f2,c3]@9 [ab2,eb3]@6 [ab2,eb3]@3 [f2,c3]@6 [f2,c3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3]@3 [f2,c3]@6 [f2,c3]@9 [ab2,eb3]@6 [ab2,eb3]@3 [f2,c3]@6 [f2,c3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3]@3 [f2,c3]@6 [f2,c3]@9 [ab2,eb3]@6 [ab2,eb3]@3 [eb2,bb2]@9 [eb2,bb2]@3 [eb2,bb2]@3 [eb2,bb2]@3 [eb2,bb2]@3 [eb2,bb2]@3 [bb2,f3]@9 [bb2,f3]@3 [bb2,f3]@3 [bb2,f3]@3 [bb2,f3]@3 [bb2,f3]@3 [f2,c3]@6 [f2,c3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3]@3 [f2,c3]@6 [f2,c3]@9 [ab2,eb3]@6 [ab2,eb3]@3 [eb2,bb2]@9 [eb2,bb2]@3 [eb2,bb2]@3 [eb2,bb2]@3 [eb2,bb2]@3 [eb2,bb2]@3 [bb2,f3]@9 [bb2,f3]@3 [bb2,f3]@3 [bb2,f3]@3 [bb2,f3]@3 [bb2,f3]@3 [ab2,eb3]]/8", // F5 Ab5 F5 Ab5 F5 Ab5 F5 Ab5 …
  G: "[~@5 [ab2,eb3]@6 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@6 [ab2,eb3]@3 [ab2,eb3]@3 [c3,g3]@6 [c3,g3]@6 [c3,g3]@9 [c3,g3]@3 [c3,g3]@9 [c3,g3]@3 [c3,g3]@6 [c3,g3]@3 [c3,g3]@3 [db3,ab3]@6 [db3,ab3]@6 [db3,ab3]@9 [db3,ab3]@3 [bb2,f3]@9 [bb2,f3]@3 [bb2,f3]@6 [bb2,f3]@3 [bb2,f3]@3 [ab2,eb3]@6 [ab2,eb3]@6 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@6 [ab2,eb3]@3 [ab2,eb3]@3 [ab2,eb3]@6 [ab2,eb3]@6 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@6 [ab2,eb3]@3 [ab2,eb3]@3 [c3,g3]@6 [c3,g3]@6 [c3,g3]@9 [c3,g3]@3 [c3,g3]@9 [c3,g3]@3 [c3,g3]@6 [c3,g3]@3 [c3,g3]@3 [db3,ab3]@6 [db3,ab3]@6 [db3,ab3]@9 [db3,ab3]@3 [bb2,f3]@9 [bb2,f3]@3 [bb2,f3]@6 [bb2,f3]@3 [bb2,f3]@3 [ab2,eb3]@6 [ab2,eb3]@6 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@6 [ab2,eb3]@3 [ab2,eb3]@3 [bb2,f3]]/8", // Ab5 C5 Db5 Bb5 Ab5 C5 Db5 Bb5 …
  H: "[~@5 [bb2,f3]@6 [bb2,f3]@9 [bb2,f3]@3 [bb2,f3]@9 [bb2,f3]@3 [bb2,f3]@6 [bb2,f3]@3 [bb2,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3]@6 [f2,c3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3]@3 [f2,c3]@6 [f2,c3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@3]/3", // Bb5 F5
  I: "[~@47 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3,f3] ~@2 [f2,c3,f3] ~@2 [f2,c3,f3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3,f3] ~@2 [f2,c3,f3] ~@2 [f2,c3,f3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [eb2,bb2,eb3]@9 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [bb2,f3,bb3]@9 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 ab3]/4", // F5 Ab5 F5 Ab5 Eb5 Bb5
  J: "[~@2 ab3@3 bb3@3 bb3@3 c4@3 c4@3 db4@3 db4@3 eb4@3 eb4@3 f4@3 f4@3 gb4@3 gb4@3 ab4@3 ab4@3 eb5@12 db5@3 c5@3 db5@3 c5@9 db5@3 c5@6 bb4@9 c5@12 bb4@3 c5@3 bb4@3 ab4@9 bb4@3 c5@6 bb4@3 ab4@4 ~@2 bb4@48 [ab2,eb3]@6 [ab2,eb3]@6 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@6 [ab2,eb3]@3 [ab2,eb3]@3 [c3,g3]@6 [c3,g3]@6 [c3,g3]@9 [c3,g3]@3 [c3,g3]@9 [c3,g3]@3 [c3,g3]@6 [c3,g3]@3 [c3,g3]@3 [db3,ab3]@6 [db3,ab3]@6 [db3,ab3]@9 [db3,ab3]@3 [bb2,f3]@9 [bb2,f3]@3 [bb2,f3]@6 [bb2,f3]@3 [bb2,f3]@3 [ab2,eb3]@6 [ab2,eb3]@6 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@6 [ab2,eb3]@3 [ab2,eb3]@3 [ab2,eb3]]/8", // Ab5 C5 Db5 Bb5 Ab5
  K: "[~@5 [ab2,eb3]@6 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@6 [ab2,eb3]@3 [ab2,eb3]@3 [c3,g3]@6 [c3,g3]@6 [c3,g3]@9 [c3,g3]@3 [c3,g3]@9 [c3,g3]@3 [c3,g3]@6 [c3,g3]@3 [c3,g3]@3 [db3,ab3]@6 [db3,ab3]@6 [db3,ab3]@9 [db3,ab3]@3 [bb2,f3]@8 [bb2,f3]@3 [bb2,f3]@6 [bb2,f3]@3 [bb2,f3]@3 [ab2,eb3]@6 [ab2,eb3]@6 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@6 [ab2,eb3]@3 [ab2,eb3]@3 [bb2,f3]@6 [bb2,f3]@6 [bb2,f3]@9 [bb2,f3]@3 [bb2,f3]@9 [bb2,f3]@3 [bb2,f3]@6 [bb2,f3]@3 [bb2,f3]@3 [ab2,eb3]@6 [ab2,eb3]@6 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@9 [ab2,eb3]@3 [ab2,eb3]@6 [ab2,eb3]@3 [ab2,eb3]@3 [bb2,f3]@2]/6", // Ab5 C5 Db5 Bb5 Ab5 Bb5 Ab5 Bb5
  L: "[~@4 [bb2,f3]@6 [bb2,f3]@9 [bb2,f3]@3 [bb2,f3]@9 [bb2,f3]@3 [bb2,f3]@6 [bb2,f3]@3 [bb2,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [eb2,bb2,eb3]@9 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [bb2,f3,bb3]@9 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [f2,c3,f3]@2]/8", // Bb5 F5 Ab5 F5 Ab5 F5 Ab5 F5 …
  M: "[~@4 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [eb2,bb2,eb3]@9 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [bb2,f3,bb3]@9 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [eb2,bb2,eb3]@9 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [bb2,f3,bb3]@9 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [eb2,bb2,eb3]@9 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [bb2,f3,bb3]@9 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [f2,c3,f3]@2]/8", // F5 Ab5 F5 Ab5 Eb5 Bb5 F5 Ab5 …
  N: "[~@4 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [eb2,bb2,eb3]@9 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [bb2,f3,bb3]@9 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [eb2,bb2,eb3]@9 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [eb2,bb2,eb3]@3 [bb2,f3,bb3]@9 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [bb2,f3,bb3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@6 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@6 [f2,c3,f3]@9 [ab2,eb3,ab3]@6 [ab2,eb3,ab3]@3 [f2,c3,f3]@6 [f2,c3,f3]@42 ~@2]/8", // F5 Ab5 Eb5 Bb5 F5 Ab5 Eb5 Bb5 …
})).s("gm_overdriven_guitar").gain(0.57)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@8 A ~ A ~ A ~ A ~ A ~ A ~@6 B C B C D ~ D ~ D ~ D ~@10 E ~@10 F ~@12 G ~@2 H I H I@2 ~ J ~@2 J ~@2 J ~ J ~ J ~ J H I
  H ~
>`.pickRestart({
  A: "~ x ~@6", B: "~ x ~@4", C: "~@5 x ~@2 x ~@39", D: "~@5 x ~@42",
  E: "~@2 x ~@2 x ~@2 x ~@5 x ~@11 x ~@11 x ~@5 x ~@3", F: "~ x ~@2 x ~@2 x ~@5 x ~@5 x ~@4",
  G: "~ x ~@2 x ~@2 x ~@5 x ~@11 x ~@11 x ~@5 x ~@4", H: "~@7 x ~@40", I: "~@4 x ~@2 x ~@40", J: "~ x ~@10",
})).gain(0.3)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@8 A B A B A B A B A C A B D ~@3 E ~ F ~ F G H G H G F G H I ~@8 J ~@10 K ~@12 L M N ~ O ~ O@2 N P M N P M N P N P N
  P N P ~ O ~@2
>`.pickRestart({
  A: "~@9 x ~@4 x!2", B: "~@9 x ~@4 x ~", C: "~@7 x", D: "~@9 x ~@6", E: "~@26 x ~@11 x ~@2 x ~@6", F: "~@41 x ~@6",
  G: "~@26 x ~@14 x ~@2 x ~@3", H: "~@26 x ~@14 x ~@6", I: "~@13 x ~@10", J: "~@5 x ~@35 x ~@6",
  K: "~@17 x ~@11 x ~@11 x ~@6", L: "~ x ~@8 x ~", M: "~@25 x ~@14 x ~@7", N: "~@25 x ~@22", O: "~@5 x",
  P: "~@25 x ~@14 x ~@2 x ~@4",
})).gain(0.3)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@8 A@12 B C D E@2 F@4 G@8 H E@9 I J@6 K ~@2 E@11 L M@2 N O P@5 O N@2 O N@2 O N O N O N O N P@3 ~
>`.pickRestart({
  A: "~ x ~@3 x ~ x", B: "~ x ~@3 x ~@2", C: "~ x ~ x ~ x ~ x", D: "~@6 x ~@10 x ~@11 x ~@11 x ~@6",
  E: "~@5 x ~@11 x ~@11 x ~@11 x ~@6", F: "~@41 x ~@6", G: "~@5 x ~@23 x ~@11 x ~@6", H: "~@5 x ~@23 x ~@18",
  I: "~@47 x", J: "~@2 x ~@5 x ~@2 x ~@5 x ~@5 x ~@2 x ~@5 x ~@5 x ~@5 x ~@2 x",
  K: "~@2 x ~@5 x ~@2 x ~@5 x ~@5 x ~@24", L: "~@5 x ~@11 x ~@11 x ~@10 x ~@7", M: "~ x ~@2 x ~@2 x ~@2 x ~",
  N: "~ x ~@5 x ~@2 x ~", O: "~ x ~@5 x ~@4", P: "~@5 x",
})).gain(0.36)

// drums · low tom
const low_tom = s("lt").struct("<~@24 [~@29 x ~@18] ~@71>").gain(0.36)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@17 A ~@3 B C D E ~@9 F ~@2 G H D H D H D H D I ~@9 G J H D H D H D H D H D K L M ~@25
>`.pickRestart({
  A: "~@4 x!4", B: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~", C: "x ~@10 x ~@5 x ~@2 x ~@2 x ~@5 x ~@5 x ~@5 x ~@5 x",
  D: "~@5 x ~@5 x ~@5 x ~@2 x ~@2 x ~@5 x ~@5 x ~@5 x ~@5 x", E: "~@11 x ~@5 x ~@2 x ~@2 x ~@5 x ~@5 x ~@5 x ~@6",
  F: "~@23 x ~@5 x ~@5 x ~@5 x ~@6", G: "~@47 x", H: "~@11 x ~@5 x ~@2 x ~@2 x ~@5 x ~@5 x ~@5 x ~@5 x",
  I: "~@11 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6", J: "~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x",
  K: "~@11 x ~@5 x ~@2 x ~@2 x ~@5 x ~@4 x ~@5 x ~@5 x ~", L: "~@4 x ~@5 x ~@5 x ~@2 x ~@2 x ~@5 x ~@5 x ~@5 x ~@5 x ~",
  M: "~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@3",
})).gain(0.48)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct(`<
  ~@22 A ~ B ~@13 B ~ B ~ B ~ B ~ B ~@11 B ~ B ~ B ~ B ~ B ~ B ~ C ~@25
>`.pickRestart({
  A: "~ x ~@6", B: "~@5 x ~@42", C: "~ x ~@10",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@21 A B@2 C ~@13 B@3 C B@3 C ~@12 B@3 C B@3 C B@2 D E ~@24 F ~>".pickRestart({
  A: "~ x ~ x", B: "~@11 x ~@23 x ~@12", C: "~@11 x ~@36", D: "~@11 x ~@22 x ~@13", E: "~@5 x ~@18", F: "~@23 x",
})).gain(0.48)

// drums · ride
const ride = s("rd").struct(`<
  A@7 B C D C D C D C D C D C D@3 E F G F G F G@2 F G F G F G F@2 G F G F G F G F G H I@8 J F G F G F G F G F G F K L M
  L@3 M L M@2 L M L@2 M L@2 M L M L M L M L M N ~
>`.pickRestart({
  A: "x", B: "x ~@3 x ~@3 x!8", C: "x ~@3 x ~@2 x!2 ~ x ~ x ~@3", D: "x ~ x ~ x ~@2 x!2 ~ x ~ x ~@3",
  E: "x ~@10 x ~@8 x ~@2 x ~@5 x ~@5 x ~@11 x", F: "~@5 x ~@5 x ~@8 x ~@2 x ~@5 x ~@5 x ~@11 x",
  G: "~@11 x ~@8 x ~@2 x ~@5 x ~@5 x ~@11 x", H: "~@5 x ~@2 x ~@2 x ~@8 x ~@2 x ~@2 x ~@2 x ~@5 x ~@2 x ~@8 x",
  I: "~@47 x", J: "~@11 x ~@11 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  K: "~@11 x ~@8 x ~@2 x ~@5 x ~@4 x ~@11 x ~", L: "~@4 x ~@5 x ~@8 x ~@2 x ~@5 x ~@5 x ~@11 x ~",
  M: "~@10 x ~@8 x ~@2 x ~@5 x ~@5 x ~@11 x ~", N: "~@4 x ~@5 x ~@8 x ~@2 x ~@5 x ~@5 x ~@13",
})).gain(0.48)

// drums · ride · soft notes
const ride_soft = s("rd").struct(`<
  ~@8 A B A B A B A B A B A B@3 C D E D E D E@2 D E D E D E D@2 E D E D E D E D E ~@10 D E D E D E D E D E D F G H G@3 H
  G H@2 G H G@2 H G@2 H G H G H G H G H G ~
>`.pickRestart({
  A: "~@2 x!2 ~@5 x ~@3 x ~@2", B: "~@3 x ~@5 x ~@3 x ~@2", C: "~@6 x ~@2 x ~@16 x ~@11 x ~@9",
  D: "~@4 x ~@8 x ~@5 x ~@4", E: "~@5 x ~@2 x ~@17 x ~@11 x ~@9", F: "~@5 x ~@2 x ~@17 x ~@10 x ~@10",
  G: "~@7 x ~@17 x ~@11 x ~@10", H: "~@4 x ~@2 x ~@17 x ~@11 x ~@10",
})).gain(0.24)

// drums · bongos
const bongos = s("bongo:4").struct("<[~@4 x ~@5 x ~@2 x ~@2]!7 ~@47 [~@29 x ~@8 x ~@9] [~@11 x ~@17 x ~@8 x ~@9] ~@40>")
  .gain(1.58)

// drums · bongos · soft notes
const bongos_soft = s("bongo:4").struct("<~@48 [~@11 x ~@17 x ~@8 x ~@9]!6 [~@11 x ~@36] ~@41>").gain(0.95)

// drums · bongos
const bongos_2 = s("bongo:18").struct(`<
  [~@5 x!2 ~@4 x!2 ~@3]!7
  ~@47
  [~@32 x ~@2 x ~@12]
  [~@14 x ~@2 x ~@14 x ~@2 x ~@12]
  ~@40
>`).gain(1.58)

// … 8 more lines

More by The Smashing Pumpkins