Strudelify

Pacific 202

808 State

KeyD majorTempo127 bpm
0:00/0:00
// Pacific 202 — 808 State
// 126.7 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 14, 4/4 at bar 15) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 173 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126.7/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.

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@80 A@8 ~@47 B@8 ~@30>".pickRestart({
  A: "[~@3 d6@29]/8", B: "d6/8",
})).s("gm_string_ensemble_2").gain(0)

// bass · synth bass 1 · "SYN BASS 1"
const bass = note(`<
  ~@12 A@2 B C D E F G H I J K L M@2 N O@2 P Q R S T U V W X Y Z AA AB AC AD@2 AE AF AG AH AI AJ AK AL AM AN AO AP@2 AQ
  AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL@3 BM BN BO BP BQ@2 BR BS@2 BT ~@4 BU BV BW BX BY BZ CA
  CB CC CD CE CF CG CH CI CJ CK CL CM CN@2 CO CP CQ CR CS CT CU CV CW CX CY CZ DA DB@2 DC DD DE DF DG DH DI DJ DK DL DM
  DN CI CJ BU BV BW BX BY BZ CA CB ~@18
>`.pickRestart({
  A: "[~@12 d2!2 f2 d2@2 g2 c3 d3 ~@2 g#2 ~ g2 f2@2 d2 ~ d2 g2 d2]/2", B: "a2 c3 ~ d3 ~ d2 g2 d2 a2 c3 ~ d3 ~ g2 f2 d2",
  C: "c2 d2 g2 a2 ~@2 c3 ~ c2 d2@2 f2 d2 g2 d2 ~", D: "c3 d3 g#2 g2 f2 d2 c2 ~ d2 g2@2 a2 d2 d3!2 f2",
  E: "~ g2 ~ c3 ~@2 d3 ~ g#2 g2@2 f2 ~ d2!2 ~", F: "f2 g2 d2 c2 ~ f2 d2 ~ f2 d2 ~ c3 d3 g#2 g2 f2",
  G: "~ d2 c2 g2 ~@2 a2 ~@2 d2@2 d2!2 ~ g2 ~", H: "~ c3 d3 g#2 g2 f2 d2 ~ d2 d2@2 g#2 ~ d2!3",
  I: "f2 d2 g2 d2@3 c3 ~@2 g#2 d2 g2 d2!2 c2@2", J: "d2 g2 a2 d2 ~ d2 e2@3 g2@2 d2 c3 d3 g#2 g2",
  K: "f2 d2 c2 c2@3 c2@2 a1 c2@2 c2 ~ d2 d2@2", L: "~ f2 c3 d3 g#2 g2 f2@2 d2 c2@2 c2 ~ d2 d2@2",
  M: "[d2 f2 d2 g2@3 d2 ~ c3 d3 ~ g#2 d2 g2 ~ d2@3 f2 g2 ~ d2 d2@2 c2 d2 ~ g2!2 c3 d3 g#2]/2",
  N: "g2 f2 d2 c2@3 d2 ~ g2 a2 ~ c2 ~ d2@3",
  O: "[f2 g2 ~ c3 d3 g#2 g2 f2 d2!2 ~ c2 d2 a2 c2 d2@2 d2 f2 g2 ~@2 g#2 ~ c3 d3@2 g#2 g2 f2 d2!2]/2",
  P: "c2 d2 g#2 a2 ~ d2!2 ~ d2 d2@2 g2 a2 c3 d3 g#2", Q: "g2 f2 d2 c2 ~@2 d2 ~ g2 a2@2 c2 ~ d2!2 ~",
  R: "~ f2 d2 a2 c3 d3 g#2 ~ g2 f2@2 d2@3 g2 a2", S: "~ d2!2 d2@2 ~ d2 ~ g2 d2@2 c3 d3 a2!2 ~",
  T: "a2 g2 d2 f2 ~ g2 a2@2 c2 d2@2 f2 ~ d2!2 c3", U: "d3 g#2 g2 d2@2 ~ d2 ~ c2 d2@2 g2 a2@2 d2 ~",
  V: "d2 f2 d2 g2 a2 c3 d3 ~ g#2 g2@2 f2 ~ c3 d3 g2", W: "a2 c3 d3 d2@3 g2 ~@2 a2 d2 g2 c3 d3 g#2@2",
  X: "g2 f2 d2 c2 ~ g2 a2@3 d2@2 d2 c2 d2 f2 d2", Y: "c3 d3 g#2 g2@3 f2@2 c2 f2@2 d2 ~ a2 d2@2",
  Z: "~ d2 f2 d2 a2 d2 c3@2 d3 g#2 g2 f2 ~ d2 c2@2", AA: "d2 a2 c3 d2@3 d2 ~ f2 d2@2 g#2 a2 c3 d3@2",
  AB: "g#2 g2 f2 d2 c2 d2 d2@2 d2 f2@2 g2 d2 f2 d2 g2", AC: "a2 c3 d3 d2@3 g#2 ~ g2 f2@2 c2 d2 g2 a2@2",
  AD: "[~ c2 d2 f2 g2 a2 d2@2 c2 d2@2 g#2 g2 f2 d2 c2@2 d2 f2 d2 ~@2 d2 ~ c2 d2@2 f2 ~ g2 c3 d2]/2",
  AE: "d3 g#2 g2 f2@2 d2 c2 d2 g2 a2@2 c2 d2!2 f2 d2", AF: "g2 d2 c3 d3 ~@2 g#2 ~ g2 f2@2 d2@2 d2 g2 ~",
  AG: "a2 c3 c2 d2 f2 d2 g2 ~ a2 c3@2 d3 g#2 g2 f2 d2", AH: "c2 d2 g2 a2 ~@2 d2 ~ c2 d2@2 f2 ~ g2 d2 ~",
  AI: "c3 d3 g#2 g2 f2 d2 c2 ~ d2 g2 ~ a2 d2 ~ d2 f2", AJ: "~ d2 ~ c3@3 d3 ~ g#2 g2 ~ f2 d2 ~ d2 ~",
  AK: "f2 g2 c3 d3 ~ d2!2 ~ f2 d2@2 c3 ~ g#2 g2 f2", AL: "d2!2 c2 g2@3 a2 ~@2 d2!2 g2 d2 f2 g2@2",
  AM: "a2 c3 d3 g#2 g2 f2 d2@2 c2 d2 ~ g2 a2 c2 d2 ~", AN: "f2 d2 f2 d2@3 c3@2 d3 g#2 g2 f2 ~ a2 c3@2",
  AO: "d3 g2 a2 ~@2 d2 f2@2 d2 g2@2 f2 c3 d3 g#2 g2",
  AP: "[~ d2 c2 d2 ~@2 g2 ~ a2!2 ~ d2!2 g2 ~ d2@3 c3 d3 ~ g#2 g2@2 d2!2 ~ d2 g2 a2 d2 ~]/2",
  AQ: "d2 f2 d2 g2@3 d2 ~ c3 d3 ~ g#4 g4 d2!2 ~", AR: "~ d2 g4 a4 d2!2 ~@2 f4 d4 ~ c2 d2 c3 d3 g#2",
  AS: "g2 f2 d2 c2 ~@2 c2 ~ g2 a2@2 d2 ~ d2 f2 d2", AT: "f2 g2 ~ c3 ~ g#2 g2 d2 f2 d2 ~ d2 ~ g2 a2 d2",
  AU: "c2 d2 f2 d2 ~@2 g2 ~ c3 d2@2 g2 g#3 g3 f3 ~", AV: "d2 c3 d3 g2 a2 c3 d3 ~ d2 f2@2 c2 d2 a2 c3 d3",
  AW: "a2 g2 f2 d2 ~@2 d2 ~ d2 g2@2 a2 ~ d2!2 ~", AX: "f2 d2 g2 d2 c3 d3 g#2 ~ g2 f2 ~ d2 c2 d2 ~ a2",
  AY: "~ d2 c2 f2 ~@2 d2 ~@2 d2@2 c3 d3 g#2 g2 ~", AZ: "~ d2 c2 d2 g2 a2 c3 ~ d3 f3@2 d2 ~ a2 d2 c3",
  BA: "d3 g#2 g2 f2 ~@2 d2 ~ c2 d2@2 g2 c2 d2 d2@2", BB: "~ d2 c2 g2 ~ c3 d3@2 g#2 g2@2 f2 ~ d2!2 g2",
  BC: "a2 ~ c2 d2@3 f2@2 ~ g2@2 ~ c3 d3 g#2@2", BD: "g2 f2 d2!2 ~ g2 a2@2 c2 d2@2 c2 d2 f2 d2 g2",
  BE: "d2 g#2 d2 a2 d2 g#2 d2 g2 d2 f2 c2 d2@2 f2 d2 g2", BF: "d2 g#2 d2 a2 d2 g#2 d2 g2@2 d2 f2 c2 d2@2 f2 d2",
  BG: "g2 d2 g#2 d2 a2 d2 g#2 d2 g2 d2 f2 c2 d2@2 f2 d2", BH: "g2 d2 g#2 d2 a2 d2 g#2@2 d2 f2 c2 d2 c2 d2@2 f2",
  BI: "d2 g2 d2 g#2 d2 a2 d2 g#2 d2 g2 d2 f2 c2 d2@2 f2", BJ: "d2 g2 d2 g#2 d2 a2 d2 g#2@2 d2 f2 d2 c2 d2@3",
  BK: "f2 d2 g2 d2 g#2 d2 a2 d2 g#2 d2 g2 d2 f2 c2 d2@2",
  BL: "[f2 d2 g2 d2 g#2 d2 a2 d2 ~ g#2 d2 f2 d2 f2 c2 d2@2 f2 d2 g2 d2 g#2 d2 a2 d2 g#2 d2 g2 d2 f2 c2 d2@2 f2 d2 g2 d2 g#2 d2 a2 d2@2 g#2 d2 g2 d2 f2 c2]/3",
  BM: "d2@2 f2 d2 g2 d2 g#2 d2@2 a2 d2 g#2 d2 g2 d2 f2", BN: "c2 d2@2 f2 d2 g2 d2 g#2 d2@2 a2 d2 g#2 d2 g2 d2",
  BO: "f2 c2 d2@2 f2 d2 g2 d2 g#2 d2 a2 d2 g#2 d2 g2 d2", BP: "f2 c2 d2@2 f2 d2 g2 d2@2 g#2 d2 a2 d2 g#2 d2 g2",
  BQ: "d2 f2 c2 d2@2 f2 d2 g2 d2 g#2 d2 a2 d2 g#2 d2 g2", BR: "d2 f2 c2 d2@3 f2 d2 g2 d2 g#2 d2 a2 d2 g#2 d2",
  BS: "g2 d2 f2 c2 d2@2 f2 d2 g2 d2 g#2 d2 a2 d2 g#2 d2", BT: "g2 d2 f2 c2 ~@12",
  BU: "d2!2 f2 d2@2 g2 c3 d3 ~@2 g#2 ~ g2 f2@2 d2", BV: "~ d2 g2 d2 a2 c3 ~ d3 ~ d2 g2 d2 a2 c3 ~ d3",
  BW: "~ g2 f2 d2 c2 d2 g2 a2 ~@2 c3 ~ c2 d2@2 f2", BX: "d2 g2 d2 ~ c3 d3 g#2 g2 f2 d2 c2 ~ d2 g2@2 a2",
  BY: "d2 d3!2 f2 ~ g2 ~ c3 ~@2 d3 ~ g#2 g2@2 f2", BZ: "~ d2!2 ~ f2 g2 d2 c2 ~ f2 d2 ~ f2 d2 ~ c3",
  CA: "d3 g#2 g2 f2 ~ d2 c2 g2 ~@2 a2 ~@2 d2@2 d2", CB: "d2 ~ g2 ~@2 c3 d3 g#2 g2 f2 d2 ~ d2 d2@2 g#2",
  CC: "~ d2!3 f2 d2 g2 d2@3 c3 ~@2 g#2 d2 g2", CD: "d2!2 c2@2 d2 g2 a2 d2 ~ d2 e2@3 g2@2 d2",
  CE: "c3 d3 g#2 g2 f2 d2 c2 c2@3 c2@2 a1 c2@2 c2", CF: "~ d2 d2@2 ~ f2 c3 d3 g#2 g2 f2@2 d2 c2@2 c2",
  CG: "~ d2 d2@2 d2 f2 d2 g2@3 d2 ~ c3 d3 ~ g#2", CH: "d2 g2 ~ d2@3 f2 g2 ~ d2 d2@2 c2 d2 ~ g2",
  CI: "g2 c3 d3 g#2 g2 f2 d2 c2@3 d2 ~ g2 a2 ~ c2", CJ: "~ d2@3 f2 g2 ~ c3 d3 g#2 g2 f2 d2!2 ~ c2",
  CK: "d2 a2 c2 d2@2 d2 f2 g2 ~@2 g#2 ~ c3 d3@2 g#2", CL: "g2 f2 d2!2 c2 d2 g#2 a2 ~ d2!2 ~ d2 d2@2 g2",
  CM: "a2 c3 d3 g#2 g2 f2 d2 c2 ~@2 d2 ~ g2 a2@2 c2",
  CN: "[~ d2!2 ~@2 f2 d2 a2 c3 d3 g#2 ~ g2 f2@2 d2@3 g2 a2 ~ d2!2 d2@2 ~ d2 ~ g2 d2@2 c3]/2",
  CO: "d3 a2!2 ~ a2 g2 d2 f2 ~ g2 a2@2 c2 d2@2 f2", CP: "~ d2!2 c3 d3 g#2 g2 d2@2 ~ d2 ~ c2 d2@2 g2",
  CQ: "a2@2 d2 ~ d2 f2 d2 g2 a2 c3 d3 ~ g#2 g2@2 f2", CR: "~ c3 d3 g2 a2 c3 d3 d2@3 g2 ~@2 a2 d2 g2",
  CS: "c3 d3 g#2@2 g2 f2 d2 c2 ~ g2 a2@3 d2@2 d2", CT: "c2 d2 f2 d2 c3 d3 g#2 g2@3 f2@2 c2 f2@2 d2",
  CU: "~ a2 d2@2 ~ d2 f2 d2 a2 d2 c3@2 d3 g#2 g2 f2", CV: "~ d2 c2@2 d2 a2 c3 d2@3 d2 ~ f2 d2@2 g#2",
  CW: "a2 c3 d3@2 g#2 g2 f2 d2 c2 d2 d2@2 d2 f2@2 g2", CX: "d2 f2 d2 g2 a2 c3 d3 d2@3 g#2 ~ g2 f2@2 c2",
  CY: "d2 g2 a2@3 c2 d2 f2 g2 a2 d2@2 c2 d2@2 g#2", CZ: "g2 f2 d2 c2@2 d2 f2 d2 ~@2 d2 ~ c2 d2@2 f2",
  DA: "~ g2 c3 d2 d3 g#2 g2 f2@2 d2 c2 d2 g2 a2@2 c2",
  DB: "[d2!2 f2 d2 g2 d2 c3 d3 ~@2 g#2 ~ g2 f2@2 d2@2 d2 g2 ~ a2 c3 c2 d2 f2 d2 g2 ~ a2 c3@2 d3]/2",
  DC: "g#2 g2 f2 d2 c2 d2 g2 a2 ~@2 d2 ~ c2 d2@2 f2", DD: "~ g2 d2 ~ c3 d3 g#2 g2 f2 d2 c2 ~ d2 g2 ~ a2",
  DE: "d2 ~ d2 f2 ~ d2 ~ c3@3 d3 ~ g#2 g2 ~ f2", DF: "d2 ~ d2 ~ f2 g2 c3 d3 ~ d2!2 ~ f2 d2@2 c3",
  DG: "d2 c3 d3 g#2 g2 f2 d2 c2 ~@2 c2 ~ g2 a2@2 d2", DH: "~ d2 f2 d2 f2 g2 ~ c3 ~ g#2 g2 d2 f2 d2 ~ d2",
  DI: "~ g2 a2 d2 c2 d2 f2 d2 ~@2 g2 ~ c3 d2@2 g2", DJ: "g#2 g2 f2 ~ d2 c3 d3 g2 a2 c3 d3 ~ d2 f2@2 c2",
  DK: "d2 a2 c3 d3 a2 g2 f2 d2 ~@2 d2 ~ d2 g2@2 a2", DL: "~ d2!2 ~ f2 d2 g2 d2 c3 d3 g#2 ~ g2 f2 ~ d2",
  DM: "c2 d2 ~ a2 ~ d2 c2 f2 ~@2 d2 ~@2 d2@2 c3", DN: "d3 g#2 g2 ~@2 d2 c2 d2 g2 a2 c3 ~ d3 f3@2 d2",
})).s("gm_synth_bass_1").gain(0.52)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A B C D A B C D A B C D E@56 F@5 ~@24 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D ~@18 A B C D A B
  C D A B C D A B C D A B C D A B C G@3
>`.pickRestart({
  A: "[f3,a3,c4,e4]", B: "[g3,b3,d4,f#4]", C: "[c3,e3,g3,b3]", D: "[d3,f#3,a3,c#4]",
  E: "[~@3 [f3,a3,c4,e4]@4 [g3,b3,d4,f#4]@4 [c3,e3,g3,b3]@4 [d3,f#3,a3,c#4]@4 [f3,a3,c4,e4]@4 [g3,b3,d4,f#4]@4 [c3,e3,g3,b3]@4 [d3,f#3,a3,c#4]]/8", // Fmaj7 Gmaj7 Cmaj7 Dmaj7 Fmaj7 Gmaj7 Cmaj7 Dmaj7
  F: "[~@3 [f3,a3,c4,e4]@4 [g3,b3,d4,f#4]@4 [c3,e3,g3,b3]@4 [d3,f#3,a3,c#4]@4 ~]/5", G: "[[d3,a3,c#4]@5 ~@43, f#3]/3",
})).s("gm_string_ensemble_1").gain(0.18)

// other · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note("<~@12 A ~@39 B C D C E ~@39 F ~@76>".pickRestart({
  A: "~@11 a5 ~@4, e8@4 e7 d7 b6 a6 e6 d6 b5@2 ~@4, ~ d8@11 ~@4, ~ b7@5 ~@2, ~@3 a7@9 ~@4", B: "~@12 b4 ~ b4 d5",
  C: "~ d5 e5 ~ e5 f#5 ~ f#5 e5 ~ e5 ~ d5 ~ d5 e5", D: "~ e5 d5 ~ d5 e5 ~ e5 b4 ~ b4 ~ b4 ~ b4 d5",
  E: "~ e5 d5 ~ d5 e5 ~ e5 b4 ~ b4 ~@5", F: "~@15 a5, ~@4 e8@4 e7 d7 b6 a6 e6 d6 b5@2, ~@5 d8@11, ~@3 b7@5, ~@7 a7@9",
})).s("gm_electric_guitar_clean").gain(0.4)

// other · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note(`<
  ~@32
  [~@12 d6 a6 d6 g6]
  [c6 d6!2 a6 f6 ~ g6 c6 d6!2 a6 f6 g6 c6 d6 ~]
  [d6 a6 ~ f6 g6 ~ c6 d6 ~ d6 a6 f6 g6 c6 d6!2]
  [a6 f6 g6 c6 d6 ~ d6 a6 f6 g6 c6 d6!2 a6 f6 ~]
  [g6 c6 ~ d6 ~ d6 a6 f6!2 g6 c6 d6 ~@4]
  ~@136
>`).s("gm_lead_2_sawtooth").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@12 A B@55 C D@3 E B@19 F ~@4 G@32 H@34 I ~@9>".pickRestart({
  A: "~@3 x", B: "x ~@3 x ~@3 x!2 ~@2 x ~@3", C: "x ~@3 x ~@3 x!2 ~@2 x!4", D: "x!16", E: "x!13 ~@3", F: "x",
  G: "x ~@3 x ~@3 x ~@3 x!2 ~@2", H: "x ~@2 x!2 ~@2 x!2 ~@2 x!3 ~ x", I: "x!5 ~@11",
})).gain(0.5)

// drums · clap
const clap = s("cp").struct("<~@13 A@2 B@54 A@4 B@19 C ~@4 D@16 E@2 D@14 E@2 D@32 ~@10>".pickRestart({
  A: "~@3 x!4 ~ x ~ x!2 ~@4", B: "x!2", C: "x", D: "~ x ~ x", E: "~@7 x!4 ~ x ~ x!2",
})).gain(0.45)

// drums · low tom
const low_tom = s("lt").struct("<~@129 [~ x ~ x]!34 [x!5 ~@11] ~@9>").gain(0.5)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@12 A B@2 C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D
  C D C D C D C D C D C D C D C D C D C D C D C E F@3 G H D H D H D H D H D H D H D H D H D H D H D H D H D H D I J I J
  H D H D H D H D H D H D H D H D H D H D H D H D H D H D H D H D H D ~@10
>`.pickRestart({
  A: "~@12 x!4", B: "x!2 ~ x!7 ~ x!5", C: "x!2 ~ x!13", D: "x!16", E: "x!9 ~ x!3 ~ x!2", F: "x ~ x ~ x!5 ~ x!3 ~ x!2",
  G: "x!2 ~@6", H: "x!6 ~ x!9", I: "x!6 ~ x ~ x!7", J: "x!8 ~ x!7",
})).gain(0.4)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@12 A B@3 C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B C B
  C B C B C B C B C B C B C B C B C B C B C B D E@3 F G H G H G H G H G H G H I H G J I J I J G H G J G H G J G H G H G
  H G H G H G H G H G H G H G H G H G H G H G H G H G H G H G H G H ~@10
>`.pickRestart({
  A: "~@7 x", B: "~@2 x ~@2 x ~ x ~@2 x ~@3 x ~", C: "x ~ x ~@2 x ~ x ~@2 x ~@3 x ~", D: "x!2 ~@2 x ~ x ~",
  E: "~ x ~@6 x ~@3 x ~@3", F: "~ x ~@14", G: "~@2 x ~@3 x ~@2 x ~ x ~@2 x ~", H: "~@2 x ~ x ~ x ~@2 x ~ x ~@2 x ~",
  I: "~@2 x ~@3 x ~@2 x ~ x ~@4", J: "~@2 x ~ x ~ x ~@2 x ~ x ~@4",
})).gain(0.35)

// drums · bongos
const bongos = s("bongo:4").struct("<~@74 A B@17 C D E D F G@24 ~@8 G@34 ~@10>".pickRestart({
  A: "~@7 x", B: "~@3 x ~@3 x", C: "~ x", D: "x!2", E: "x ~@4 x!2 ~ x ~@7", F: "x", G: "~ x ~@3 x ~@2",
})).gain(1.17)

// drums · bongos
const bongos_2 = s("bongo:18").struct("<~@92 [~@3 x ~ x ~@2] [~ x ~ x ~ x ~@2]!3 [~ x ~@6] ~@76>").gain(1.17)

// drums · congas
const congas = s("conga:13").struct("<~@74 A B@17 C ~@4 D@24 ~@8 D@34 ~@10>".pickRestart({
  A: "~@3 x", B: "x ~ x!2", C: "x", D: "x!2 ~ x",
})).gain(1.43)

// drums · congas
const congas_2 = s("conga:18").struct("<~@92 [~ x] [x!2]!3 x ~@76>").gain(1.43)

// drums · congas
const congas_3 = s("conga:33").struct("<~@75 A@17 B C@3 ~ D@24 ~@8 D@34 ~@10>".pickRestart({
  A: "~ x ~@3 x ~@2", B: "~ x!2 ~@3 x ~", C: "~ x ~ x", D: "~@3 x ~@3 x",
})).gain(1.43)

// drums · agogo bells
const agogo_bells = s("agogo:2").struct("<~@24 A B@43 C ~@9 A B@13 D ~@36 E@34 ~@10>".pickRestart({
  A: "~@3 x", B: "~@2 x!2 ~@6 x ~ x ~@3", C: "~@2 x!2 ~@6 x ~@5", D: "~@2 x!2 ~@12", E: "x ~@5 x!2 ~@6 x ~",
})).gain(2.85)

// drums · agogo bells
const agogo_bells_2 = s("agogo:4").struct("<~@24 A B@43 C ~@9 A B@13 D ~@36 E@34 ~@10>".pickRestart({
  A: "~@7 x", B: "x ~@4 x ~@2 x ~@5 x ~", C: "x ~@4 x ~@2 x ~@7", D: "x", E: "~@2 x ~ x ~@4 x ~@2 x ~@3",
})).gain(2.85)

// drums · woodblocks
const woodblocks = s("woodblock:5").struct("<~@25 A@44 ~@10 A@13 B C@3 D ~@32 E@34 ~@10>".pickRestart({
  A: "~@4 x ~@2 x ~@2 x ~@5", B: "~@2 x ~@4 x", C: "~ x ~@2 x ~@9 x ~", D: "~ x ~@14", E: "~@8 x ~@2 x ~@2 x ~",
})).gain(0.57)

// drums · woodblocks
const woodblocks_2 = s("woodblock:4").struct("<~@24 A B@43 C ~@9 D E@13 F G@3 ~@33 H@34 ~@10>".pickRestart({
  A: "~@14 x!2", B: "x!4 ~@10 x!2", C: "x!4 ~@12", D: "~@7 x", E: "x!2 ~@5 x", F: "x!2 ~ x!3 ~@2", G: "~@3 x!3 ~@2",
  H: "~@2 x!6 ~@8",
})).gain(0.57)

// drums · woodblocks · soft notes
const woodblocks_soft = s("woodblock:4").struct(`<
  ~@78
  [~@15 x]
// … 11 more lines