Strudelify

Obsession

Animotion

KeyG majorTempo115 bpm
0:00/0:00
// Obsession — Animotion
// 115 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 5 "Pad 3 (polysynth)" pad poly (copy of ch 4 "Synth Brass 1" synth brass 1)
// note: Full arrangement: all 114 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(115/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 · distortion guitar
const distortion_guitar = note(`<
  ~@36 A B C D@2 E F G ~@3 H@2 ~@3 I ~@7 J@7 K@2 ~@11 L ~@11 M N O P Q R S T U V@3 W@4 X@5 Y
>`.pickRestart({
  A: "~@7 [c3,g3]@6 [d3,a3]@6 [c3,g3]@4 [d3,a3]@4 ~@5", B: "~@8 [c3,g3]@5 [d3,a3]@6 ~ [c3,g3]@4 [d3,a3]@4 ~@4",
  C: "~@8 [f3,c4]@5 [g3,d4]@6 ~ [f3,c4]@4 [g3,d4]@4 ~@4", // F5 G5 F5 G5
  D: "[~@8 [f3,c4]@6 [g3,d4]@6 [f3,c4]@4 [g3,d4]@15 ~ [c3,g3]@6 [d3,a3]@6 ~ [c3,g3]@4 [d3,a3]@4 ~@3]/2", // F5 G5 F5 G5 C5 D5 C5 D5
  E: "~@9 [c3,g3]@5 [d3,a3]@6 ~ [c3,g3]@4 [d3,a3]@4 ~@3", F: "~@9 [f3,c4]@5 [g3,d4]@6 ~ [f3,c4]@4 [g3,d4]@4 ~@3",
  G: "~@9 [f3,c4]@6 [g3,d4]@6 [f3,c4]@4 [g3,d4]@7", H: "[~@31 [c4,f4]@3 ~@3 [b3,e4]@3 ~@3 [a3,d4]@10 ~@11]/2",
  I: "[c4,f4]@3 ~@3 [b3,e4]@3 ~@23", // F5 E5
  J: "[~@14 [c3,g3]@5 [d3,a3]@6 ~ [c3,g3]@4 [d3,a3]@4 ~@12 [c3,g3]@5 [d3,a3]@6 ~ [c3,g3]@4 [d3,a3]@4 ~@12 [f3,c4]@5 [g3,d4]@6 ~ [f3,c4]@4 [g3,d4]@4 ~@12 [f3,c4]@5 [g3,d4]@6 ~ [f3,c4]@4 [g3,d4]@10 ~@6 [c3,g3]@5 [d3,a3]@6 ~ [c3,g3]@4 [d3,a3]@4 ~@12 [c3,g3]@5 [d3,a3]@6 ~ [c3,g3]@4 [d3,a3]@4 ~@12 [f3,c4]@5 [g3,d4]@6 ~ [f3,c4]@4 [g3,d4]@2]/7", // C5 D5 C5 D5 C5 D5 C5 D5 …
  K: "[~@14 [f3,c4]@5 [g3,d4]@6 ~ [f3,c4]@4 [g3,d4]@8 ~@26]/2", L: "~@5 [c4,f4]@3 ~@3 [b3,e4]@3 ~@3 [a3,d4]@10 ~@5",
  M: "~@21 [c3,g3]@5 [d3,a3]@6", N: "~ [c3,g3]@4 [d3,a3]@4 ~@12 [c3,g3]@5 [d3,a3]@6",
  O: "~ [c3,g3]@4 [d3,a3]@4 ~@12 [f3,c4]@6 [g3,d4]@5", P: "~ [f3,c4]@4 [g3,d4]@4 ~@13 [f3,c4]@5 [g3,d4]@5",
  Q: "~@2 [f3,c4]@4 [g3,d4]@10 ~@6 [c3,g3]@5 [d3,a3]@5", R: "~ [c3,g3]@2 [d3,a3]@2 ~@6 [c3,g3]@3 [d3,a3]@2",
  S: "~ [c3,g3]@2 [d3,a3]@2 ~@6 [f3,c4]@3 [g3,d4]@2", T: "~@3 [f3,c4]@4 [g3,d4]@4 ~@12 [f3,c4]@5 [g3,d4]@4",
  U: "~@3 [f3,c4]@4 [g3,d4]@8 ~@8 [c3,g3]@5 [d3,a3]@4", // F5 G5 C5 D5
  V: "[~@3 [c3,g3]@4 [d3,a3]@4 ~@12 [c3,g3]@6 [d3,a3]@6 [c3,g3]@4 [d3,a3]@4 ~@13 [f3,c4]@5 [g3,d4]@6 ~ [f3,c4]@4 [g3,d4]@4 ~@12 [f3,c4]@5 [g3,d4]@3]/3", // C5 D5 C5 D5 C5 D5 F5 G5 …
  W: "[~@4 [f3,c4]@4 [g3,d4]@15 ~ [c3,g3]@6 [d3,a3]@6 [c3,g3]@4 [d3,a3]@4 ~@12 [c3,g3]@6 [d3,a3]@6 ~ [c3,g3]@4 [d3,a3]@4 ~@12 [f3,c4]@5 [g3,d4]@6 ~ [f3,c4]@4 [g3,d4]@4 ~@12 [f3,c4]@5 [g3,d4]@2]/4", // F5 G5 C5 D5 C5 D5 C5 D5 …
  X: "[~@5 [f3,c4]@4 [g3,d4]@8 ~@8 [c3,g3]@6 [d3,a3]@6 [c3,g3]@4 [d3,a3]@4 ~@13 [c3,g3]@5 [d3,a3]@6 ~ [c3,g3]@4 [d3,a3]@4 ~@12 [f3,c4]@5 [g3,d4]@6 ~ [f3,c4]@4 [g3,d4]@4 ~@12 [f3,c4]@5 [g3,d4]@6 ~ [f3,c4]@4 [g3,d4]@4 ~@12 [c3,g3]@6]/5", // F5 G5 C5 D5 C5 D5 C5 D5 …
  Y: "[d3,a3]@6 [c3,g3]@5 [d3,a3]@4 ~@17", // D5 C5 D5
})).s("gm_distortion_guitar").gain(0.32)

// bass · synth bass 2 · "Synth Bass2"
const bass = note(`<
  ~@4 A@2 B C A@2 B D E@4 F G H I J@3 K L M N@4 O P Q R@4 S T U V@4 W X Y Z AA@4 AB AC AD@5 AE AF AG AH AE AF AG AH AE
  AF AG AI@4 AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS
  BT BU BV ~
>`.pickRestart({
  A: "d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2",
  B: "g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2",
  C: "g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~",
  D: "g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 ~ a2@2 a2 ~ a2",
  E: "[~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~@2 g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~]/4",
  F: "a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2",
  G: "d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2",
  H: "d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2",
  I: "~ g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2",
  J: "[~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~@2 f2@2 g2@2 f2@2 g2@2 a2@2 g2@2]/3",
  K: "f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2",
  L: "a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2",
  M: "c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2",
  N: "[c2@2 d2@2 g1@2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 ~ c2@2 d2@2 e2@2]/4",
  O: "d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2",
  P: "g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2",
  Q: "a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2",
  R: "[d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 ~]/4",
  S: "e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2",
  T: "e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2",
  U: "a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~",
  V: "[a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~@2 d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2]/4",
  W: "~ a1@2 a2@2 ~ a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2",
  X: "d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2",
  Y: "d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2",
  Z: "g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~@2 g2 ~ g1@2 g2@2 g2",
  AA: "[~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 ~ g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2]/4",
  AB: "g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2",
  AC: "c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2",
  AD: "[c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 ~ g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2]/5",
  AE: "g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2",
  AF: "g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2",
  AG: "d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2",
  AH: "d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2",
  AI: "[d2@2 c2@2 ~ d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~@2 d2 ~ d2 ~ d2 ~ d2 ~]/4",
  AJ: "c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~",
  AK: "f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~",
  AL: "g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  AM: "c2@2 d2@2 c2@2 d2@2 e2@2 ~ d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2",
  AN: "~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2",
  AO: "~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2",
  AP: "~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~@2 d2 ~",
  AQ: "d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  AR: "d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~",
  AS: "g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~",
  AT: "g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~@2 a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2",
  AU: "~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2",
  AV: "~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2",
  AW: "~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2",
  AX: "~ g2 ~@2 g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  AY: "d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  AZ: "d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~",
  BA: "g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2",
  BB: "~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2",
  BC: "~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~ d2",
  BD: "~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~ g2",
  BE: "~ g2 ~ g2 ~ f2@2 g2@2 ~ f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2 ~",
  BF: "g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2 ~",
  BG: "d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2 ~",
  BH: "d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~@2 g2 ~ g2",
  BI: "~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~ g2",
  BJ: "~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~ d2",
  BK: "~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~ d2",
  BL: "~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 ~ e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2 ~",
  BM: "g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2 ~",
  BN: "g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2 ~",
  BO: "d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 d1@2 d2 ~ d2 ~ d2 ~",
  BP: "d2 ~@2 d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~ g2",
  BQ: "~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~ g2",
  BR: "~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~ d1@2 d2 ~ d2 ~ d2",
  BS: "~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 ~ c2@2 d2@2 d1@2 d2 ~ d2 ~",
  BT: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ c2@2 d2@2 c2@2 d2@2 e2@2 d2@2 c2@2 d2@2 g1@2 g2 ~ g2 ~",
  BU: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ f2@2 g2@2 f2@2 g2@2 a2@2 g2@2 f2@2 g2@2 g1@2 g2 ~ g2 ~",
  BV: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g1@2 g2@2 g2 ~ g2 ~ a1@2 a2@2 a2 ~ a2 ~@7",
})).s("gm_synth_bass_2").gain(0.4)

// bass · slap bass 1
const bass_2 = note(`<
  ~@36 A@3 B C@3 D E ~@3 F@2 ~@10 G@3 H I@3 J@7 K L M ~@15 N@4 O P Q R S T U V W X Y@4 Z AA AB ~
>`.pickRestart({
  A: "[~@7 c1@2 d1@4 d2@2 ~@2 d2@2 d1@4 d2@15 ~@2 c1@2 d1@4 d2@2 ~@2 d2@2 d1@4 d2@15 ~ f1@2 g1@4 g2@2 ~@2 g2@2 g1@4 g2@3 ~@5]/3",
  B: "~@8 f1@2 g1@4 g2@2 ~@2 g2@2 g1@4 g2@3 ~@5",
  C: "[~@8 c1@2 d1@4 d2@2 ~@3 d2@2 d1@4 d2@15 ~ c1@2 d1@4 d2@2 ~@2 d2@2 d1@4 d2@15 ~ f1@2 g1@4 g2@2 ~@2 g2@2 g1@4 g2@3 ~@4]/3",
  D: "~@9 f1@2 g1@4 g2@2 ~@2 g2@2 g1@2 ~@2 g1@4 g2@2 ~", E: "~ a1@5 a2@2 ~@24",
  F: "[~@31 c2@2 ~@2 c2@2 ~@2 c2@4 ~@21]/2",
  G: "[~@14 c1@2 d1@4 d2@2 ~@2 d2@2 d1@4 d2@15 ~ c1@2 d1@4 d2@2 ~@2 d2@2 d1@4 d2@15 ~ f1@2 g1@4 g2 ~@3 g2@2 g1@4 g2@2]/3",
  H: "~@14 f1@2 g1@4 g2 ~@3 g2@2 g1@4 g2@2",
  I: "[~@14 c1@2 d1@4 d2@2 ~@2 d2@2 d1@4 d2@15 ~ c1@2 d1@4 d2@2 ~@2 d2@2 d1@4 d2@15 ~ f1@2 g1@4 g2@2 ~@2 g2@2 g1@4 g2@2]/3",
  J: "[~@14 f1@2 g1@4 g2@3 ~ g2@2 g1@2 ~@2 g1@4 g2@2 ~@2 a1@4 a2@3 ~ c1@2 d1@4 d2 ~@3 d2@2 d1@4 d2@15 ~ c1@2 d1@4 d2@2 ~@2 d2@2 d1@4 d2@15 ~@2 f1@2 g1@4 g2@2 ~@2 g2@2 g1@4 g2@3 ~@13 f1@2 g1@4 g2@2 ~@2 g2@2 g1@3 ~ g1@4 g2@2 ~@2 a1@4 a2@2 ~@2 c1@2 d1@4 d2 ~@3 d2@2 d1@4 d2@15 ~ c1@2 d1@4 d2 ~@4 d2@2 d1@4]/7",
  K: "d2@15 ~ f1@2 g1@4 g2@2 ~@2 g2@2 g1@4", L: "g2@3 ~@13 f1@2 g1@4 g2@2 ~@2 g2@2 g1@2 ~@2",
  M: "g1@2 g2 ~ a1@2 a2 ~@9",
  N: "[~@21 c1@2 d1@4 d2@2 ~@2 d2@2 d1@4 d2@15 ~ c1@2 d1@4 d2@2 ~@2 d2@2 d1@4 d2@15 ~ f1@2 g1@4 g2@2 ~@2 g2@2 g1@4 g2@3 ~@14 f1@2 g1@4 g2@2 ~@2]/4",
  O: "g2 g1@2 g2 ~@7 c1 d1@2 d2 ~", P: "d2@2 d1@4 d2@15 ~ c1@2 d1@4 d2@2 ~@2", Q: "d2@2 d1@4 d2@15 ~ f1@2 g1@5 g2@2 ~",
  R: "~ g2@2 g1@4 g2@3 ~@13 f1@2 g1@4 g2@2 ~", S: "~ g2@2 g1@2 ~@2 g1@4 g2@2 ~@2 a1@4 a2@2 ~@2 c1@2 d1@4 d2@2 ~",
  T: "~ d2@2 d1@4 d2@15 ~ c1@2 d1@4 d2@2 ~", U: "~ d2@2 d1@4 d2@15 ~@2 f1@2 g1@4 g2@2",
  V: "~@2 g2@2 g1@4 g2@3 ~@13 f1@2 g1@4 g2@2", W: "~ g2 g1 ~ g1@2 g2 ~ a1@2 a2 ~ c1 d1@2 d2",
  X: "~@2 d2@2 d1@4 d2@15 ~ c1@2 d1@4 d2@2",
  Y: "[~@3 d2@2 d1@4 d2@15 ~ f1@2 g1@4 g2@2 ~@2 g2@2 g1@4 g2@3 ~@13 f1@2 g1@4 g2@2 ~@2 g2@2 g1@2 ~@2 g1@4 g2@2 ~@2 a1@4 a2@2 ~@2 c1@2 d1@4 d2@2 ~@2 d2@2 d1@4 d2@15 ~@2 c1@2 d1@4]/4",
  Z: "d2@2 ~@2 d2@2 ~@3 d2@15 ~@2 f1@2 g1@4, ~@3 d1@3 ~@10", AA: "g2@2 ~@2 g2@2 g1@4 g2@3 ~@13 f1@2 g1@4",
  AB: "g2 ~ g2 g1 ~ g1@2 g2 ~ a1@2 a2 ~@4",
})).s("gm_slap_bass_1").gain(0.8)

// chords · synth brass 1
const synth_brass_1 = note("<~@4 A B C D A E C F G ~@55 H I J@3 K L M N ~@23 O P Q R S T U V W X@4 ~>".pickRestart({
  A: "[a4,d5,a5,d6]@5 ~@15 [a4,c5,a5,c6]@3 ~@3 [a4,c5,a5,c6]@3 ~@3", // D5 Am
  B: "[a4,c5,a5,c6]@3 ~@2 [a4,d5,a5,d6]@4 ~@15 [a4,d5,a5,d6]@4 ~@4", // Am D5
  C: "[a4,c5,a5,c6]@4 ~ [g4,b4,g5,b5]@3 ~@3 [g4,b4,g5,b5]@3 ~@2 [g4,b4,g5,b5]@14 ~@2", // Am G
  D: "[g4,b4,g5,b5]@4 ~ [f4,a4,f5,a5]@3 ~@3 [f4,a4,f5,a5]@3 ~@2 [f4,a4,f5,a5]@4 ~@4 [a4,c5,a5,c6]@3 ~@5", // G F Am
  E: "[a4,c5,a5,c6]@3 ~@2 [a4,d5,a5,d6]@3 ~@16 [a4,d5,a5,d6]@3 ~@5", // Am D5
  F: "[g4,b4,g5,b5]@4 ~@2 [f4,a4,f5,a5]@3 ~@2 [f4,a4,f5,a5]@3 ~@2 [f4,a4,f5,a5]@4 ~@4 [a4,c5,a5,c6]@3 ~@5", // G F Am
  G: "~ [a4,d5,a5,d6]@4 ~@27", H: "~@6 [a4,c5,a5,c6]@4 ~@4 [a4,d5,a5,d6]@5 ~@13",
  I: "~@2 [a4,c5,a5,c6]@3 ~@3 [a4,c5,a5,c6]@3 ~@3 [a4,c5,a5,c6]@3 ~@2 [a4,d5,a5,d6]@4 ~@9", // Am D5
  J: "[~@7 [a4,d5,a5,d6]@4 ~@4 [a4,c5,a5,c6]@4 ~ [g4,b4,g5,b5]@3 ~@2 [g4,b4,g5,b5]@3 ~@3 [g4,b4,g5,b5]@14 ~@2 [g4,b4,g5,b5]@4 ~ [f4,a4,f5,a5]@3 ~@3 [f4,a4,f5,a5]@3 ~@2 [f4,a4,f5,a5]@4 ~@4 [a4,c5,a5,c6]@3 ~@5 [a4,d5,a5,d6]@5 ~@12]/3", // D5 Am G F Am D5
  K: "~@3 [a4,c5,a5,c6]@3 ~@3 [a4,c5,a5,c6]@3 ~@3 [a4,c5,a5,c6]@3 ~@2 [a4,d5,a5,d6]@3 ~@9", // Am D5
  L: "~@8 [a4,d5,a5,d6]@3 ~@5 [a4,c5,a5,c6]@4 ~ [g4,b4,g5,b5]@3 ~@2 [g4,b4,g5,b5]@3 ~@3", // D5 Am G
  M: "[g4,b4,g5,b5]@14 ~@2 [g4,b4,g5,b5]@4 ~ [f4,a4,f5,a5]@3 ~@3 [f4,a4,f5,a5]@3 ~@2", // G F
  N: "[f4,a4,f5,a5]@4 ~@4 [a4,c5,a5,c6]@3 ~@5 [a4,d5,a5,d6]@4 ~@12", O: "~@15 [a4,c5,a5,c6]@4 ~@4 [a4,d5,a5,d6]@5 ~@4",
  P: "~@11 [a4,c5,a5,c6]@3 ~@3 [a4,c5,a5,c6]@3 ~@3 [a4,c5,a5,c6]@3 ~@2 [a4,d5,a5,d6]@4", // Am D5
  Q: "~@16 [a4,d5,a5,d6]@4 ~@4 [a4,c5,a5,c6]@4 ~ [g4,b4,g5,b5]@3", // D5 Am G
  R: "~@2 [g4,b4,g5,b5]@3 ~@3 [g4,b4,g5,b5]@14 ~@2 [g4,b4,g5,b5]@4 ~ [f4,a4,f5,a5]@3", // G F
  S: "~@3 [f4,a4,f5,a5]@3 ~@2 [f4,a4,f5,a5]@4 ~@4 [a4,c5,a5,c6]@3 ~@5 [a4,d5,a5,d6]@5 ~@3", // F Am D5
  T: "~@12 [a4,c5,a5,c6]@3 ~@3 [a4,c5,a5,c6]@3 ~@3 [a4,c5,a5,c6]@3 ~@2 [a4,d5,a5,d6]@3", // Am D5
  U: "~@17 [a4,d5,a5,d6]@3 ~@5 [a4,c5,a5,c6]@4 ~ [g4,b4,g5,b5]@2", // D5 Am G
  V: "~@3 [g4,b4,g5,b5]@3 ~@3 [g4,b4,g5,b5]@14 ~@2 [g4,b4,g5,b5]@4 ~ [f4,a4,f5,a5]@2", // G F
  W: "~@4 [f4,a4,f5,a5]@3 ~@2 [f4,a4,f5,a5]@4 ~@4 [a4,c5,a5,c6]@4 ~@4 [a4,d5,a5,d6]@5 ~@2", // F Am D5
  X: "[~@13 [a4,c5,a5,c6]@3 ~@3 [a4,c5,a5,c6]@3 ~@4 [a4,c5,a5,c6]@3 ~ [a4,d5,a5,d6]@4 ~@16 [a4,d5,a5,d6]@4 ~@4 [a4,c5,a5,c6]@4 ~ [g4,b4,g5,b5]@3 ~@3 [g4,b4,g5,b5]@3 ~@2 [g4,b4,g5,b5]@14 ~@2 [g4,b4,g5,b5]@4 ~ [f4,a4,f5,a5]@3 ~@3 [f4,a4,f5,a5]@3 ~@2 [f4,a4,f5,a5]@4 ~@4 [a4,c5,a5,c6]@3 ~@5 [a4,d5,a5,d6]@5 ~]/4", // Am D5 Am G F Am D5
})).s("gm_synth_brass_1").gain(0.24)

// other · pad metallic · "Pad 6 (metallic)"
const pad_metallic = note("<~@20 A@8 ~@16 B@3 C@6 ~@23 D E F G H I J@3 ~@29>".pickRestart({
  A: "[~@7 f#5@7 d5@5 c5@20 f#5@7 d5@5 c5@20 f5@7 c5@5 ~ b4@20 f5@6 c5@5 ~ b4@20 f#5@7 d5@5 c5@20 f#5@7 d5@5 c5@20 ~ f5@6 c5@5 ~ b4@20 f5@7 c5@5 b4@11]/8",
  B: "[~@14 f#5@6 d5@5 ~ c5@20 f#5@7 d5@5 c5@20 f5@7 c5@5 b4@6]/3",
  C: "[~@14 f5@7 c5@5 ~ b4@20 f#5@6 d5@5 ~ c5@20 f#5@7 d5@5 c5@20 f5@7 c5@5 b4@20 ~ f5@6 c5@5 ~ b4@20 ~@16]/6",
  D: "~@20 f#5@7 d5@5", E: "c5@20 ~ f#5@6 d5@5", F: "~ c5@20 f5@7 c5@4", G: "~ b4@20 f5@7 c5@4",
  H: "~ b4@19 ~ f#5@7 d5@4", I: "~ c5@10 f#5@3 d5@2", J: "[~@2 c5@19 ~ f5@7 c5@5 b4@20 f5@7 c5@5 b4@18 ~@12]/3",
})).s("gm_pad_metallic").gain(0.32)

// other · distortion guitar
const distortion_guitar_2 = note("<~@44 A@2 ~@6 B@3 C@6 ~@22 D E F G@2 H I@2 J K ~@21>".pickRestart({
  A: "[~@26 f#4@15 ~@23]/2", B: "[~@16 a3@5 ~ d4@4 ~@2 f#4@15 ~@5 a3@4 ~@2 d4@3 ~@3 f#4@15 ~@5 g3@3 ~@3 c4@5 ~ f4@4]/3",
  C: "[~@17 g3@4 ~@2 c4@3 ~@3 f4@15 ~@5 a3@4 ~@2 d4@3 ~@3 f#4@15 ~@5 a3@4 ~@2 d4@3 ~@3 f#4@15 ~@6 g3@4 ~@2 c4@3 ~@3 f4@15 ~@5 g3@3 ~@3 c4@3 ~@3 f4@17 ~@17]/6",
  D: "~@8 d4@3 ~@13 d4@3 ~@5", E: "~@8 d4@3 ~@14 d4@3 ~@4", F: "~@9 d4@2 c4@2 a3@2 ~@10 d4@3 ~@4",
  G: "~@9 d4@2 c4@2 a3@3 ~@9 d4@2 ~@5", H: "~@6 d4@2 ~@2 d4@2 c4@2 a3@3 ~@9 d4@2 ~@4",
  I: "~@10 d4@2 c4@2 a3@3 ~@9 d4@2 ~@4", J: "~@10 d4@2 c4@2 a3@3 ~@6 [c4,f4]@4 ~@2 [b3,e4]@3",
  K: "~@2 [c4,f4]@4 ~@3 [b3,e4]@5 ~@18", // F5 E5
})).s("gm_distortion_guitar").gain(0.55)

// other · guitar harmonics
const guitar_harmonics = note(`<
  ~@83
  [~@12 d3 ~ d3 ~@13 d3 ~ d3 ~]
  [~@12 d3 ~ d3 ~@14 d3 ~ d3]
  [~ d3 ~@27 d3 ~ d3]!3
  [~@30 d3 ~]
  [d3 ~ d3 ~@27 d3 ~]!2
  [d3 ~ d3 ~@29]
  ~@22
>`).s("gm_guitar_harmonics").gain(0.15)

// drums · kick
// … 104 more lines