Strudelify

Round Here

Counting Crows

KeyG majorTempo94 bpm
0:00/0:00
// Round Here — Counting Crows
// 94 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 74, 4/4 at bar 75) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 5 "WAH GUITAR" named as a guitar, played on electric guitar clean (its slap bass 2 patch is not one)
// note: Full arrangement: all 130 bars on a 16-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 2, WAH GUITAR.
setcpm(94/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 · percussive organ · "HIGH ORGAN"
const percussive_organ = note(`<
  ~ A@8 ~@2 B C D E B C F G H I F G H I F J K L F J K L F M@2 N F O P Q F R S T U R K L V W@3 X Y Z AA AB Y AC AD@2 Y AC
  AE AF AG Y AG Y AG Y AG AH@8 AI@8 AJ@5 AK@4 AL@6 AM@8 AN@8 AO@5 AP@5
>`.pickRestart({
  A: "[c4,g4]/8", B: "[d4,a4]", C: "[e4,b4]", D: "[d4,g4,b4]", E: "[c4,g4]", F: "[d4,g4,b4,d5]", G: "[c4,g4,d5]",
  H: "[d4,a4,d5]", I: "[e4,b4,d5]", J: "[c4,g4,c5,e5]", K: "[d4,a4,d5,f#5]", L: "[e4,g4,b4,e5]", M: "[g4@3 a4, d5]/2",
  N: "[e4,b4,e5]", O: "[g4,c5,d5]", P: "[f#4,a4,d5]", Q: "[e4,a4,b4,e5]", R: "[c4,c5,e5,g5]", S: "[d4,d5,f#5,a5]",
  T: "[e4,e5,g5,b5]", U: "[d4,g4,d5,g5,b5]", V: "[g3,d4,g4,b4,d5]", W: "[d6@6 c6 b5@5]/3", X: "g5@2 c6 b5", Y: "d6",
  Z: "c6@2 b5 a5", AA: "b5@2 c6 d6", AB: "g5@2 b5 g5", AC: "a5", AD: "[b5@5 c6 b5 g5]/2", AE: "b5",
  AF: "[a5,c#6,e6]@3 [d5,a5,d6]@5", AG: "e6", AH: "[[g5,c6,e6]@3 [a5,d6]@9 d5@16 b4@8 b5@8 g5@8 f#5@8 e5@4]/8",
  AI: "[~@2 d5@4 ~@4 e4@8 ~@2 c5 b4 e4@4 f#4@4 b5@2, ~@3 d5@8 d5@4 ~, ~@9 g4@2 ~@5]/8",
  AJ: "[c6 d6 b5@2 c6 d6 ~@4 a5@4 b5@4 g5@2, ~ [d5,g5]@2 d6@7]/5", // G5
  AK: "[c6 d6 g5@4 a5@4 b5@2 c6 d6 b5@2, ~ d6@4 g5@3]/4",
  AL: "[c6 d6 g5@4 a5@4 e5@4 d5@4 g5@4 a5@2, ~ d6@4 [g5,b5]@4 d6@3]/6", // G
  AM: "[~ e6@2 d6@2 [g5,c6,e6]@2 [f#5,a5,d6]@2 [e5,g5,b5]@2 [g5,b5,d6]@2 [e5,g5,c6]@2 [f#5,a5], ~ [g5,b5]@4 ~@8 d6@3]/8", // C D Em G C F#m G
  AN: "[~ [e5,g5,b5,e6]@2 [g4,d5,g5,b5]@2 [c4,g4]@2 [d4,a4]@2 [e4,b4]@2 [d4,g4,b4,d5]@2 [c4,g4]@2 [d4,a4]]/8", // Em G C5 D5 E5 G C5 D5
  AO: "[~ [e4,b4]@2 [g4,b4]@2 [c4,g4]@2 [d4,a4]@3]/5", AP: "[~ [b4,e6]@8 ~]/5",
})).s("gm_percussive_organ").gain(0.24)

// chords · rock organ · "LOW ORGAN"
const rock_organ = note(`<
  ~@2 A@8 ~@4 B C D E B C D E B C D E B C D E B C D E ~@16 F G H I F J K L F J K L F G H M ~@7 N@2 ~@3 O@7 P@3 Q@8 R@16
  S@8 ~@10
>`.pickRestart({
  A: "c3/8", B: "c3", C: "d3", D: "e3", E: "g3", F: "[c5,e5,g5]", G: "[a4,d5,f#5]", H: "[g4,b4,e5]", I: "[b4,d5,g5]",
  J: "[d5,f#5,a5]", K: "[e5,g5,b5]", L: "[d5,g5,b5]", M: "~@3 d5@5, a4", N: "[[g4,c5,e5]@3 [d4,a4,d5]@9 ~@4]/2",
  O: "[~ [c4,g4]@2 [d4,f#4]@2 [b3,e4]@2 [d4,g4]@2 [c4,g4]@2 d4@2 e4, ~@11 a4@3]/7", // C5 D E5 G5 C5
  P: "[~ [d4,g4,b4]@2 [c4,g4]@2 [d4,f#4]]/3", // G C5 D
  Q: "[~ [b3,e4,g4]@2 [d4,g4,b4]@2 [g4,c5,e5]@2 [a4,d5,f#5]@2 [b4,e5,g5]@2 [d5,g5,b5]@2 [g4,c5,e5]@2 [a4,d5,f#5]]/8", // Em G C D Em G C D
  R: "[~ [b4,e5,g5]@2 [d5,g5,b5]@2 [g4,c5,e5]@2 [a4,d5,f#5]@2 [b4,e5,g5]@2 [d5,g5,b5]@2 [g4,c5,e5]@2 [a4,d5,f#5]]/8", // Em G C D Em G C D
  S: "[~ [b4,e5,g5]@2 [d5,g5,b5]@2 c3@2 d3@2 e3@2 g3@2 c3@2 d3]/8", // Em G
})).s("gm_rock_organ").gain(0.39)

// chords · rock organ · "LOW ORGAN" · soft notes
const rock_organ_soft = note("<~@74 A@5 ~@41 B@6 ~@4>".pickRestart({
  A: "[~ [c4,g4]@2 [d4,a4]@2 [e4,b4]@2 [d4,g4]@2 ~]/5", B: "[~ e3@2 g3@2 c3@2 d3@4 ~]/6",
})).s("gm_rock_organ").gain(0.24)

// chords · electric guitar clean · "GUITAR 1"
const electric_guitar_clean = note(`<
  ~@6 A@16 B@5 C@4 D@2 E A@8 F@8 G@8 H@7 I J K L K J K M N@8 O@8 P Q@8 R@8 S@7 T@8 U@4 ~@5
>`.pickRestart({
  A: "[~@63 g4, d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2, ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9, ~@2 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 ~]/8",
  B: "[~@55 a4@8 ~ [c3,g3,e4]@4 [c3,g3,c4]@3 [c3,g3,c4,e4]@5 [c3,g3,c4]@4, d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@5 ~@8, ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 ~@8 c4@4 ~@13, ~@2 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@6 ~@8]/5", // C C5 C C5
  C: "[[d3,a3] [a3,d4,f#4]@3 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]@5 [d3,a3,d4]@3 ~ [g3,b3,e4]@4 [b2,e3,g3,b3]@3 [e3,g3,b3,e4]@5 [b2,g3,b3]@2 [g3,b3] ~ [b3,d4,g4]@4 [g3,b3,d4]@3 [b3,d4,g4]@5 [g3,b3,d4]@3 ~ [c3,g3,e4]@4 [c3,g3,c4,e4]@3 [c3,g3,c4,e4]@5 [c3,g3,c4,e4]@4, ~@15 e3@4 ~@9 e3@3 [g3,b3]@2 ~@14 c4@4 ~@13]/4", // D5 D D5 Em G C G
  D: "[~ [a3,d4,f#4]@3 [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]@5 [d3,a3,d4,f#4]@3 ~ [g3,b3,e4]@4 [b2,e3,g3,b3]@3 [e3,g3,b3,e4]@5 [e3,g3,b3,e4]@3 [g3,b3], [d3,a3]@2 ~@13 e3@4 ~@13]/2", // D Em G D5
  E: "[g3,b3,d4,g4]@4 [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@9", // G
  F: "[~@124 d4@2 g4 c4, d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 ~@2, ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9, ~@2 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 ~]/8",
  G: "[[c3,g3,e4]@3 ~ [c3,g3,c4,e4]@2 [c3,g3] [c3,g3,c4,e4]@5 [c3,g3,c4]@3 ~ [a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [a3,d4] [d3,a3,d4,f#4]@5 [d3,a3,d4]@3 ~ [b2,e3,g3,b3,e4]@4 [b2,e3,g3,b3]@3 [e3,g3,b3,e4]@5 [b2,e3,g3,b3]@3 ~ [d3,g3,b3,d4,g4]@4 [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@5 [g3,b3,d4,g4]@3 ~ [c3,g3,e4]@3 ~ [c3,g3,c4,e4]@2 [c3,g3] [c3,g3,c4,e4]@5 [c3,g3,c4]@3 ~ [a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [a3,d4] [d3,a3,d4,f#4]@5 [d3,a3,d4]@3 ~ [b2,e3,g3,b3,e4]@4 [b2,e3,g3,b3]@3 [e3,g3,b3,e4]@5 [b2,e3,g3,b3]@3 ~ [d3,g3,b3,d4,g4]@4 [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@5 [g3,b3,d4,g4]@3 c4, ~@15 d3@4 ~@12 e2@4 ~@12 g2@4 ~@12 c4@4 ~@12 d3@4 ~@12 e2@4 ~@12 g2@4 ~@13]/8", // C C5 C C5 D D5 D D5 …
  H: "[[c3,g3,e4]@3 ~ [c3,g3,c4,e4]@2 [c3,g3] [c3,g3,c4,e4]@5 [c3,g3,c4]@3 ~ [a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [a3,d4] [d3,a3,d4,f#4]@5 [d3,a3,d4]@3 ~ [b2,e3,g3,b3,e4]@4 [b2,e3,g3,b3]@3 [e3,g3,b3,e4]@5 [b2,e3,g3,b3]@3 ~ [d3,g3,b3,d4,g4]@4 [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@5 [g3,b3,d4,g4]@3 ~ [c3,g3,e4]@3 ~ [c3,g3,c4,e4]@2 [c3,g3] [c3,g3,c4,e4]@5 [c3,g3,c4]@3 ~ [a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [a3,d4] [d3,a3,d4,f#4]@5 [d3,a3,d4]@3 ~ [b2,e3,g3,b3,e4]@4 [b2,e3,g3,b3]@3 [e3,g3,b3,e4]@5 [b2,e3,g3,b3]@2 [g2,d3,g3]!2, ~@15 d3@4 ~@12 e2@4 ~@12 g2@4 ~@12 c4@4 ~@12 d3@4 ~@12 e2@4 ~@13]/7", // C C5 C C5 D D5 D D5 …
  I: "[a2,e3,a3,c#4]@3 [d3,a3,d4,f#4]@3 g2@2", J: "[a2,e3,a3]@2 ~ [a2,e3,a3,c#4]@5",
  K: "[c3,g3,c4]@2 ~ [a2,d3,f#3]@3 [d3,a3,d4]@2", L: "[a2,e3,a3,c#4]@2 ~ [a2,e3,a3,c#4]@5",
  M: "[a2,e3,a3]@3 [a2,e3,a3]@2 [a2,d3,g3] [a2,e3,a3]@2", // A5 Dsus4 A5
  N: "[[c3,g3,c4]@4 ~@2 [d3,a3,d4,f#4]@18 ~@103 a4, ~@12 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4, ~@25 a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 ~, ~@14 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@2]/8", // C5 D
  O: "[~@127 a4, ~ g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@2, ~@2 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4, ~@9 a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 ~]/8",
  P: "~@15 a4, ~ g4@2 g4@3 g4@2, ~@2 d4@2 d4@3 d4, ~@9 a4@6 ~",
  Q: "[~@4 d4@2 g4 ~ [c3,g3,e4]@3 ~ [c3,g3,c4,e4]@2 [c3,g3] [c3,g3,c4,e4]@5 [c3,g3,c4]@3 ~ [a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [a3,d4] [d3,a3,d4,f#4]@5 [d3,a3,d4]@3 ~ [b2,e3,g3,b3,e4]@4 [b2,e3,g3,b3]@3 [e3,g3,b3,e4]@5 [b2,e3,g3,b3]@3 ~ [d3,g3,b3,d4,g4]@4 [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@5 [g3,b3,d4,g4]@3 ~ [c3,g3,e4]@3 ~ [c3,g3,c4,e4]@2 [c3,g3] [c3,g3,c4,e4]@5 [c3,g3,c4]@3 ~ [a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [a3,d4] [d3,a3,d4,f#4]@5 [d3,a3,d4]@3 ~ [b2,e3,g3,b3,e4]@4 [b2,e3,g3,b3]@3 [e3,g3,b3,e4]@5 [b2,e3,g3,b3]@3 ~ [d3,g3,b3,d4,g4]@4 [g3,b3,d4,g4]@3 [g3,b3,d4,g4], ~@2 g4@4 ~ c4@4 ~@12 d3@4 ~@12 e2@4 ~@12 g2@4 ~@12 c4@4 ~@12 d3@4 ~@12 e2@4 ~@12 g2@4 ~@5]/8", // C C5 C C5 D D5 D D5 …
  R: "[~@4 [g3,b3,d4,g4]@3 ~ [c3,g3,e4]@3 ~ [c3,g3,c4,e4]@2 [c3,g3] [c3,g3,c4,e4]@5 [c3,g3,c4]@3 ~ [a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [a3,d4] [d3,a3,d4,f#4]@5 [d3,a3,d4]@3 ~ [b2,e3,g3,b3,e4]@4 [b2,e3,g3,b3]@3 [e3,g3,b3,e4]@5 [b2,e3,g3,b3]@3 ~ [d3,g3,b3,d4,g4]@4 [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@5 [g3,b3,d4,g4]@3 ~ [c3,g3,e4]@3 ~ [c3,g3,c4,e4]@2 [c3,g3] [c3,g3,c4,e4]@5 [c3,g3,c4]@3 ~ [a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [a3,d4] [d3,a3,d4,f#4]@5 [d3,a3,d4]@3 ~ [b2,e3,g3,b3,e4]@4 [b2,e3,g3,b3]@3 [e3,g3,b3,e4]@5 [b2,e3,g3,b3]@3 ~ [d3,g3,b3,d4,g4]@4 [g3,b3,d4,g4]@4, ~@7 c4@4 ~@12 d3@4 ~@12 e2@4 ~@12 g2@4 ~@12 c4@4 ~@12 d3@4 ~@12 e2@4 ~@12 g2@4 ~@5]/8", // G C C5 C C5 D D5 D …
  S: "[[g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [c3,g3,c4,e4]@4 [c3,g3,c4,e4]@2 [c3,g3] [c3,g3,c4,e4]@5 [c3,g3,c4]@3 ~ [a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [a3,d4] [d3,a3,d4,f#4]@5 [d3,a3,d4]@3 ~ [b2,e3,g3,b3,e4]@4 [b2,e3,g3,b3]@3 [e3,g3,b3,e4]@5 [b2,e3,g3,b3]@3 ~ [d3,g3,b3,d4,g4]@4 [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@5 [g3,b3,d4,g4]@3 ~ [c3,g3,e4]@3 ~ [c3,g3,c4,e4]@2 [c3,g3] [c3,g3,c4,e4]@5 [c3,g3,c4]@3 ~ [a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [a3,d4] [d3,a3,d4,f#4]@5 [d3,a3,d4]@3 ~ [b2,e3,g3,b3,e4]@4 [b2,e3,g3,b3]@3 [e3,g3,b3,e4], ~@23 d3@4 ~@12 e2@4 ~@12 g2@4 ~@12 c4@4 ~@12 d3@4 ~@12 e2@4 ~@5]/7", // G C C5 C C5 D D5 D …
  T: "[~@4 [b2,e3,g3,b3]@3 ~ [d3,g3,b3,d4,g4]@4 [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@9 ~@103 a4, ~@7 g2@4 ~@13 d4@6 d4@6 d4@4 d4@6 d4@6 d4@4 d4@6 d4@6 d4@4 d4@6 d4@6 d4@4 d4@6 d4@6 d4@4 d4@6 d4@6 d4@4 d4@6 d4@2, ~@25 a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 ~, ~@14 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@2]/8", // Em G
  U: "[~@25 g4@5 ~@2, ~ g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 g4@2 g4@3 g4@3 ~@7, ~@2 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 d4@2 d4@3 d4@3 ~@6, ~@9 a4@6 a4@9 ~ a4@6 a4@9 ~ a4@6 a4@9 ~@8]/4",
})).s("gm_electric_guitar_clean").gain(0.45).pan(0.2)

// chords · electric guitar clean · "GUITAR 2"
const electric_guitar_clean_2 = note(`<
  ~@26 A@2 ~@2 A@2 ~@19 B@3 ~ B@3 ~ B@3 ~ C@2 ~ D E D F D E G ~@19 H@3 ~ H@3 ~ H@3 ~ I@4 H@3 ~ H@3 ~@15
>`.pickRestart({
  A: "[~ f#4, ~@15 d3@16 ~]/2", B: "[~@15 b2@16 d3@16 ~]/3", C: "[~@15 b2@16 ~]/2", D: "~@7 g3@2 a3 g3 ~ a3@3 ~",
  E: "~@7 g3@2 a3 g3 ~@5", F: "~@7 a3 c4!2 a3 ~ c4@3 ~", G: "~@7 g3@2 a3 ~@6", H: "[~@7 b2@16 d3@16 ~@9]/3",
  I: "[~@7 b2@16 d3@16 c4@16 ~@9]/4",
})).s("gm_electric_guitar_clean").gain(0.24).pan(0.7)

// bass · fretless bass · "BASS"
const bass = note(`<
  ~@26 A B C D A B C ~ E F G H I J K L M F N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AJ AM AN AO
  AP@8 AQ@3 AR AS AT AU@2 AV AW@2 AX AY AZ BA BB BC BD BE BF@2 BG BH BI BJ BK@7 BL@3 ~@14
>`.pickRestart({
  A: "c2", B: "d2", C: "e2", D: "g1", E: "c2@6 g1 g1@2 ~ c2@6", F: "d2@4 c2@3 b1 b1@8", G: "e1@7 e1 e1@2 b1@2 e2@4",
  H: "g2@3 d2 d2@3 g1 d2@8", I: "c2@6 g1 g1@2 ~ c2@4 a1!2", J: "d2@7 a#1@5 a1@4", K: "e1@7 e1 e1@2 e2@2 d2@4",
  L: "g1@6 g1 g2@3 g1!3 ~@3", M: "c2@6 c2 g1@2 ~ c2@6", N: "e1@7 b1 d2@4 b1@4", O: "g1@6 g1!2 d2@4 d2@4",
  P: "c2@6 g1 g1@2 ~ c2@4 a1 ~", Q: "d2@7 c2 c2@4 a1@4", R: "e1@13 ~ e1!2", S: "g1!2 g1@2 g1@3 g1!2 e1 g1@4 g1!2",
  T: "c2@6 c2!4 g1@2 c2@4", U: "d2@6 d2!2 c2@4 b1@4", V: "e1@6 b1 e2@2 e1!2 ~ e1@3 e1",
  W: "g1@5 ~ g1!2 e2 ~ d2@3 g1 g1@2", X: "c2@6 c2!3 ~ g1@6", Y: "d2@6 d2 c2 a1@3 a1 g1@4", Z: "e1@9 d2 d2@2 e2@4",
  AA: "g2 g1 ~@2 g2@3 ~ g2 ~ g1@4 a1 ~, ~@2 g1@5 g1@2 ~@7", AB: "c2@6 g1 c2 ~ g1 g1@2 c2@3 c2",
  AC: "d2@6 g1 c2 ~@2 b1@2 c2@4", AD: "e1@7 e2 ~@2 e1@6", AE: "g1 g1@5 d2 g2@3 g1@4 g1!2",
  AF: "c2@6 c2!2 ~ c2 g1@4 g1!2", AG: "d2 d2@5 a1!2 d2 ~ c2@3 g1 b1@2", AH: "e1@6 ~ e1!2 ~ e1@4 g1@2",
  AI: "a1@3 d2@3 g1@2", AJ: "a1@4 ~@2 a1@2 a1!2 g1@2 e1@4", AK: "a1@4 ~@2 a1@2 a1!2 g1@2 a1@2 ~@2",
  AL: "a1@4 ~@2 a1@2 a1!2 g1@2 e1@2 g1@2", AM: "a1@4 a1@3 a1!3 g1@2 e1@4", AN: "a1@4 ~@2 a1@2 a1!2 g1@2 a1@2 g1@2",
  AO: "a1@4 ~@2 a1!4 g1@2 e1@4", AP: "[c2@3 d2@9 c2@8 d2@8 e2@8 g1@8 c2@8 d2@8 e2@4]/8",
  AQ: "[~@8 g1@16 c2@6 g1 g1@2 ~ c2@6 d2@4 c2@3 b1]/3", AR: "b1@8 e1@7 e1", AS: "d2 ~ d2@2 e2@4 g2@4 d2@4",
  AT: "d2@4 g1@4 c2@6 g1 c2", AU: "[~@2 g1@6 d2@6 b1 a#1@2 ~ b1@6 e1@7 e1]/2", AV: "e2@2 e1@7 g1 g1@2 g1@3 e1",
  AW: "[g1@2 g1@6 c2@6 c2 c2@2 c2 g1@6 d2@6 g1!2]/2", AX: "c2 ~ b1@6 e1@6 e1!2", AY: "e2@4 d2@4 g2!2 g1@2 g2@3 g1",
  AZ: "d2@4 d2@4 c2@6 c2!2", BA: "~ c2 g1@2 c2@4 c2@6 d2!2", BB: "~ d2 a1@6 e1@6 b1 ~",
  BC: "d2@2 e2!2 e2@4 g2 g1 g1@2 g2@3 g1", BD: "g2!2 g1@2 a1 b1 g1@2 c2@6 c2!2", BE: "~ c2 g1@2 c2@4 d2@6 a1!2",
  BF: "[c2 ~ b1@6 e1@6 b1 e2@3 e1@6 g1 g1@2 g1 g1@2 g1!2]/2", BG: "g1!2 f#1@2 ~ f#1 g1@2 c2@6 c2 b1",
  BH: "c2!2 c2@2 c2@2 c2!2 d2@4 c2@2 c2!2", BI: "b1@4 b1 a1 b1@2 e1@2 e1@2 e2@3 e1",
  BJ: "d2@2 g2@3 e2 d2 b1 g1!2 g1@2 g2@2 g1@2",
  BK: "[g2@2 g1@2 a1@2 g1@2 c2@3 c2 b1@3 c2@3 c2@2 c2!2 c2@2 d2 d2@2 d2 c2@3 b1@3 a1@4 b1 a1 e1@2 e1@2 e2@3 d2@3 b1@3 e1 g1 a1 g1 g1@2 g1 g2@2 g1 g2@2 g2 g1@2 a1@2 g1@2 c2@3 b1 c2@2 b1 c2@2 c2 b1@2 c2 g1 c2 c#2 d2 d2@2 d2 c2@2 c2 b1@2 b1 a1@2 a1 e1 g1 a1 e1@2 e1@2 d2 e2@2 e1]/7",
  BL: "[~ e1 e1@4 e1!2 g1@2 g1@2 g2@2 g1 g2@3 g1@6 c2@16 ~@8]/3",
})).s("gm_fretless_bass").gain(0.66)

// other · melodic tom · "TOMS"
const melodic_tom = note("<~@33 A ~@7 B ~@23 C ~@6 D ~@17 E ~@7 E ~@7 E ~@7 E ~@15>".pickRestart({
  A: "~@14 f3 ~", B: "~@12 g4 ~@3", C: "~@11 f3 [b3,e4] ~ f3 ~", D: "~@14 e4 ~", E: "~@6 g4 ~@9",
})).s("gm_melodic_tom").gain(0.8)

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

// drums · low tom
const low_tom = s("lt").struct("<~@65 [~@11 x!2 ~ x ~] ~@64>").gain(0.32)

// drums · hihat
const hihat = s("hh").struct(`<
  A B ~@32 C D E F G F H I C J K F L M E N H O P Q R O H O H O S T E F O ~ U V W V X Y Z ~ AA AB Y AC AD AE K AF AG AH@2
  AI AJ AH AJ AK AL AM AN AO AJ AP AQ AO AR AS AJ AT AJ AU AV AW AX AY AN AZ AX BA BB BC BD ~@15
>`.pickRestart({
  A: "x!2", B: "x!4", C: "x ~@3 x ~@2 x!2 ~ x ~ x ~ x!2", D: "x ~@3 x ~ x!3 ~ x ~ x ~ x ~",
  E: "~@2 x ~ x ~ x!3 ~ x ~ x ~ x ~", F: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~", G: "~@2 x ~ x ~@3 x ~ x ~ x ~ x!2",
  H: "~@2 x ~ x ~ x!3 ~ x ~ x ~ x!2", I: "x ~ x ~ x ~ x!6 ~@4", J: "x ~@3 x ~ x!3 ~ x ~ x ~ x!2", K: "x ~ x ~ x ~ x!2",
  L: "~@3 x!2 ~@2 x!2 ~ x ~ x ~ x ~", M: "x ~@3 x ~ x!3 ~ x!3 ~ x ~", N: "x ~ x ~ x ~ x!2 ~@2 x ~ x ~@3",
  O: "x ~ x ~ x ~ x!2 ~@2 x ~ x ~ x ~", P: "x ~ x!3 ~ x!3 ~ x ~ x ~ x!2", Q: "x ~ x!3 ~ x!2 ~@2 x ~ x ~ x ~",
  R: "~@2 x!3 ~@2 x!2 ~ x ~ x ~ x!2", S: "~@2 x!3 ~ x!3 ~ x ~ x ~ x ~", T: "x ~ x!3 ~ x!2 ~@2 x!3 ~ x ~", U: "~ x!6 ~",
  V: "x ~ x!5 ~", W: "~ x!7", X: "x!3 ~ x!4", Y: "x!8", Z: "~ x!5 ~@2", AA: "~@2 x!2", AB: "x ~ x ~ x!4", AC: "x ~ x!6",
  AD: "x ~@3 x ~@3 x ~@3 x ~ x!2", AE: "x!3 ~ x ~ x ~", AF: "x!3 ~ x ~ x!2", AG: "x!4 ~@4 x ~ x ~ x ~ x!2",
  AH: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", AI: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x!2", AJ: "~@2 x ~ x ~ x ~@3 x ~ x ~ x!2",
  AK: "~@2 x ~ x ~ x ~ x ~ x ~@2 x ~ x", AL: "~ x ~@8 x ~ x ~ x!2", AM: "~@2 x!7 ~ x ~ x ~ x!2",
  AN: "x ~ x ~ x ~ x ~@3 x ~ x ~ x!2", AO: "x!16", AP: "x!3 ~ x ~ x!3 ~ x ~ x ~ x!2",
  AQ: "~@2 x ~ x ~ x!2 ~@2 x!3 ~ x!2", AR: "x ~ x ~ x ~@5 x ~ x ~ x!2", AS: "x!3 ~ x!5 ~ x ~ x ~ x!2",
  AT: "x ~ x ~ x ~ x ~ x!5 ~ x ~", AU: "~ x!3 ~ x!3", AV: "x!4 ~ x!3", AW: "~@2 x ~ x ~ x!2 ~@2 x!6",
  AX: "~@2 x ~ x ~@5 x ~ x ~ x!2", AY: "x!13 ~ x!2", AZ: "x!5 ~ x ~ x!8", BA: "~@2 x ~ x ~ x!7 ~ x!2",
  BB: "x!3 ~ x ~ x ~@3 x ~ x ~ x ~", BC: "x ~ x ~ x!5 ~@3 x ~ x!2", BD: "~@2 x!2 ~@12",
})).gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct("<~@33 A ~@7 B ~@23 B ~@6 A ~@17 C ~@7 C ~@7 C ~@7 C ~@15>".pickRestart({
  A: "~@7 x", B: "~@3 x", C: "~@3 x ~@4",
})).gain(0.32)

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

// drums · crash
const crash = s("cr").struct("<~@50 A ~@7 A ~@6 B A ~@6 B ~@8 C ~@7 D ~@3 D ~@3 D ~@7 D ~@3 D ~@3 D ~@15>".pickRestart({
  A: "x", B: "x ~@2 x ~@4", C: "~ x ~@2", D: "~ x",
})).gain(0.72)

stack(
  percussive_organ, rock_organ, rock_organ_soft, electric_guitar_clean, electric_guitar_clean_2, bass, melodic_tom,
  kick, low_tom, hihat, mid_tom, open_hat, crash
)

More by Counting Crows