Strudelify

You Spin Me Around

Dead Or Alive

KeyG minorTempo130 bpm
0:00/0:00
// You Spin Me Around — Dead Or Alive
// 130 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 93 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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.

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B C D@2 E C F G H C I J K C L M N O P Q R C S T H U V J W X Y J Z AA AB AC AD G AE AF AG AH AI@2 AJ C AK@2 AL C AM
  AN AO AP@2 AC AQ AC AR AS AQ AA AT AU AV C AW J AX C AY AZ BA BB BC BD AD BE BF@2 AQ BE BG BH AD BE BI BJ AQ BE BK ~
>`.pickRestart({
  A: "~ g1@3 g2@2 ~ g1@2 ~ g2@3 g1@3 g2@3 g1@3 g2@2", B: "~ g1@3 g2@3 g1@3 g2@2 ~ g1@2 ~ g2@2 ~ bb1@3 bb2@2",
  C: "~ c2@3 c3@3 c2@3 c3@3 c2@3 c3@3 c2@3 c3@2",
  D: "[~ c2@2 ~ c3@3 c2@2 ~ c3@3 c2@3 c3@2 ~ c2 d2@2 c2 bb1@2 g1@3 g2@3 g1@2 ~ g2@2 ~ g1@3 g2@3 g1@3 g2@2]/2",
  E: "~ g1@2 ~ g2@3 g1@2 ~ g2@2 ~ g1@2 ~ g2@2 ~ bb1@3 bb2@2",
  F: "~ c2@3 c3@3 c2@3 c3@2 ~ f2 d2@2 c2 bb1 ~ g1 f1 ~@2 bb1, ~@11 g1",
  G: "~ g1@2 ~ g2@3 g1@3 g2@2 ~ g1@3 g2@2 ~ g1@3 g2@2", H: "~ g1@3 g2@3 g1@3 g2@3 g1@3 g2@3 bb1@3 bb2@2",
  I: "~ c2@2 ~ c3@3 c2@3 c3@3 c2@3 c3@2 ~@2 d2@2 c2 bb1, ~@19 c2@2 ~@3",
  J: "~ g1@2 ~ g2@2 ~ g1@3 g2@3 g1@3 g2@3 g1@3 g2@2", K: "~ g1@3 g2@3 g1@3 g2@3 g1@3 g2@2 ~ bb1@3 bb2@2",
  L: "~ c2@3 c3@3 c2@3 c3@2 ~ c2@3 c3@3 c2 d2 ~ c2 bb1", M: "~ g1@2 ~ g2@2 ~ g1@2 ~ g2@2 ~ g1@2 ~ g2@3 g1@3 g2@2",
  N: "~ bb1@3 bb2@3 bb1@3 bb2@3 bb1@3 bb2@3 bb1@3 bb2@2", O: "~ c2@3 c3@3 c2@3 c3@3 c2@3 c3@3 c2 bb1 ~ g1 f1",
  P: "~ d2@2 ~ d3@3 d2@3 d3@2 ~ d2@3 d3@3 d2@3 d3@2", Q: "~ g1@3 g2@2 ~ g1@2 ~ g2@2 ~ g1@3 g2@3 g1@3 g2@2",
  R: "~ g1@3 g2@3 g1@3 g2@3 g1@2 ~ g2@3 bb1@3 bb2@2", S: "~ c2@2 ~ c3@3 c2@2 ~ c3@3 c2@3 c3@2 ~ c2 d2@2 c2 bb1",
  T: "~ g1@2 ~ g2@3 g1@3 g2@3 g1@3 g2@3 g1@3 g2@2", U: "~ c2@3 c3@3 c2@3 c3@3 c2@3 c3@3 c2@2 ~ c3@2",
  V: "~ c2@3 c3@3 c2@3 c3@3 c2@3 c3@3 ~ d2 ~ c2 bb1, ~@19 c2@2 ~@3",
  W: "~ bb1@3 bb2@3 bb1@3 bb2@3 bb1@2 ~ bb2@3 bb1@3 bb2@2",
  X: "~ c2@3 c3@3 c2@3 c3@3 c2@3 c3@2 ~ c2 bb1 ~@2 f1, ~@11 g1",
  Y: "~ d2@2 ~ d3@2 ~ d2@2 ~ d3@2 ~ d2@3 d3@3 d2@2 ~ d3 ~", Z: "~ bb1@3 bb2@3 bb1@3 bb2 ~@2 f1@3 f2@2 ~ f1@3 f2@2",
  AA: "~ g1@3 g2@3 g1@3 g2@3 g1@3 g2@2 ~ g1@3 g2@2", AB: "~ c2@3 c3@3 c2@3 c3@3 d2@3 d3@3 d2@3 d3@2",
  AC: "~ g1@3 g2@2 ~ g1@3 g2@2 ~ g1@3 g2@2 ~ g1@3 g2@2", AD: "~ bb1@3 bb2@3 bb1@3 bb2@2 ~ f1@3 f2@2 ~ f1@3 f2@2",
  AE: "~ c2@3 c3@3 c2@3 c3@2 ~ d2@3 d3@3 d2@3 d3@2", AF: "~ g1@3 g2@2 ~ g1@3 g2@2 ~ f1@3 f2@3 f1@3 f2@2",
  AG: "~ eb1@3 eb2@3 eb1@3 eb2@2 ~ d1@3 d2@2 ~ d1@3 d2@2", AH: "~ c1@3 c2@3 c1@3 c2@3 c1@3 c2@2 ~ c1@3 c2@2",
  AI: "[~ d1@3 d2@2 ~ d1@3 d2@2 ~ f2 d2 ~@2 bb1 ~ g1 f1@2 g1 bb1@2 g1@2 ~ g2@2 ~ g1@3 g2@2 ~ g1@2 ~ g2@3 g1@3 g2@2, ~@8 c2 ~@15]/2",
  AJ: "~ g1@3 g2@3 g1@3 g2@2 ~ g1@3 g2@3 bb1@3 bb2@2",
  AK: "[~ c2@3 c3@3 c2@3 c3@3 c2@3 c3@2 ~ c2 d2@2 c2 bb1@2 g1@2 ~ g2@2 ~ g1@3 g2@2 ~ g1@3 g2@3 g1@3 g2@2]/2",
  AL: "~ g1@3 g2@2 ~ g1@3 g2@2 ~ g1@3 g2@3 bb1@3 bb2@2",
  AM: "~ c2@3 c3@2 ~ c2@2 ~ c3@2 ~ f2 d2 ~ c2 bb1 ~ g1 f1 ~ g1 bb1",
  AN: "~ g1@2 ~ g2@2 ~ g1@2 ~ g2@2 ~ g1@3 g2@3 g1@3 g2@2", AO: "~ bb1@3 bb2@3 bb1@3 bb2@2 ~ bb1@2 ~ bb2@3 bb1@3 bb2@2",
  AP: "[~ c2@3 c3@3 c2@2 ~ c3@2 ~ c2@3 c3@2 ~@2 bb1 ~ g1 f1@2 d2@2 ~ d3@2 ~ d2@3 d3@2 ~ d2@2 ~ d3@2 ~ d2@3 d3@2, ~@19 c2@2 ~@27]/2",
  AQ: "~ bb1@3 bb2@3 bb1@3 bb2@2 ~ f1@3 f2@3 f1@3 f2@2",
  AR: "~ c2@3 c3@3 c2@3 c3@2 ~@2 d2@2 c2 bb1@2 g1 f1 ~@2 bb1, ~@13 f2@2 ~@7 g1@2",
  AS: "~ g1@2 ~ g2@2 ~ g1@3 g2@2 ~ g1@3 g2@3 g1@3 g2@2", AT: "~ c2@3 c3@3 c2@3 c3@3 d2@2 ~ d3@3 d2@3 d3@2",
  AU: "~ g1@2 ~ g2@3 g1@3 g2@2 ~ g1@3 g2@3 g1@3 g2@2", AV: "~ g1@3 g2@3 g1@3 g2@2 ~ g1@3 g2@2 ~ bb1@3 bb2@2",
  AW: "~ c2@3 c3@3 c2@3 c3@2 ~ c2 bb1@2 g1 f1 ~ bb1@2 ~ c2@2", AX: "~ g1@3 g2@3 g1@2 ~ g2@3 g1@2 ~ g2@2 ~ bb1@3 bb2@2",
  AY: "~ c2@3 c3@3 c2@3 c3@2 ~@2 d2 ~ c2 bb1 ~ g1 f1@2 g1 bb1, ~@13 f2@2 ~@9",
  AZ: "~ g1@2 ~ g2@2 ~ g1@3 g2@2 ~ g1@3 g2@2 ~ g1@3 g2@2", BA: "~ bb1@3 bb2@2 ~ bb1@3 bb2@2 ~ bb1@3 bb2@3 bb1@3 bb2@2",
  BB: "~ c2@3 c3@3 c2@3 c3@2 ~ c2@3 c3@3 ~ bb1 ~ g1 f1, ~@19 c2@2 ~@3",
  BC: "~ d2@3 d3@2 ~ d2@2 ~ d3@2 ~@2 d2 ~ c2 bb1 ~ g1 f1@2 g1 bb1, ~@13 f2@2 ~@9",
  BD: "~ g1@2 ~ g2@2 ~ g1@3 g2@3 g1@3 g2@2 ~ g1@3 g2@2", BE: "~ g1@3 g2@2 ~ g1@3 g2@2 ~ g1@3 g2@3 g1@3 g2@2",
  BF: "[~ c2@3 c3@3 c2@3 c3@2 ~ f2 d2@2 c2 bb1 ~@2 f1@2 g1 bb1@2 g1@2 ~ g2@2 ~ g1@3 g2@2 ~ g1@3 g2@2 ~ g1@3 g2@2, ~@19 g1@2 ~@27]/2",
  BG: "~ c2@3 c3@3 c2@3 c3@2 ~ f2 d2@2 c2 bb1 ~ g1 f1@2 g1 bb1", BH: "~ g1@2 ~ g2@3 g1@3 g2@3 g1@3 g2@2 ~ g1@3 g2@2",
  BI: "~ c2@3 c3@3 c2@3 c3@2 ~ f2 d2 ~ c2 bb1 ~ g1 f1 ~ g1 bb1",
  BJ: "~ g1@2 ~ g2@3 g1@2 ~ g2@2 ~ g1@2 ~ g2@2 ~ g1@3 g2@2",
  BK: "~ c2@3 c3@2 ~ c2@3 c3@2 ~@2 d2 ~ c2 bb1 ~ g1 f1@2 g1 bb1, ~@13 f2@2 ~@9",
})).s("gm_electric_bass_finger").gain(0.61)

// chords · vibraphone
const vibraphone = note(`<
  A@7 B ~@2 A@2 ~@2 A@6 ~@2 C A ~@2 C D A@2 E F G D G D A H I J ~@6 A@2 ~@2 A K@3 A K L M N O P@2 N Q R ~ A K ~@2 A K
  A@4 S T U V W T W X W S@2 O S Y Z AA AB
>`.pickRestart({
  A: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Gm7 Eb C7 G5 Dm7 Gm7 …
  B: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5] d4 g5 [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Gm7 Eb C7 G5 Dm7 Gm7 …
  C: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] [f4,c6] d5 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Gm7 Eb C7 G5 Dm7 F5 …
  D: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] [f4,d5] c6 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Gm7 Eb C7 G5 Dm7 Dm …
  E: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5]", // G5 Dm7 Gm7 Eb C7 G5 Dm7 Gm7 …
  F: "bb5 [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Gm7 Eb C7 G5 Dm7 D7 …
  G: "~ [d4,g5]!2 ~ [f4,d5,c6] [f4,c6] d5 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 F5 Gm7 Eb C7 G5 Dm7 …
  H: "~ [d4,g5]!2 ~ [f4,d5,c6] [f4,d5] c6 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] [f4,d5] c6 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Dm Gm7 Eb C7 G5 Dm7 …
  I: "~ [d4,g5]!2 ~ [f4,d5,c6] [f4,c6] d5 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 F5 Gm7 Eb C7 G5 Dm7 …
  J: "~ [d4,g5]!2 ~ [f4,d5,c6] [f4,d5] c6 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Dm Gm7 Eb C7 G5 Dm7 …
  K: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Gm7 Eb C7 G5 Dm7 D7 …
  L: "~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5] ~ [d4,g5] [f4,d5,c6] [f4,c6] d5 [g4,f5,bb5]!2 ~ [bb4,g5] c5", // G5 Dm7 D7 Gm7 Eb C7 G5 Dm7 …
  M: "[g5,bb5] [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // Gm G5 Dm7 D7 Gm7 Eb C7 G5 …
  N: "~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] [f4,c6] d5 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 D7 Gm7 Eb C7 G5 Dm7 …
  O: "~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] ~ [f4,d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 D7 Gm7 Eb C7 G5 Dm7 …
  P: "~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 D7 Gm7 Eb C7 G5 Dm7 …
  Q: "~ [d4,g5]!2 ~ [f4,d5,c6] [f4,d5] c6 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] c5", // G5 Dm7 Dm Gm7 Eb C7 G5 Dm7 …
  R: "[g5,bb5] ~@23", // Gm
  S: "~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 D7 Gm7 Eb C7 G5 Dm7 …
  T: "~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] c5", // G5 Dm7 D7 Gm7 Eb C7 G5 Dm7 …
  U: "[g5,bb5] [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] [f4,c6] d5 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // Gm G5 Dm7 D7 Gm7 Eb C7 G5 …
  V: "~ [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] ~ [f4,d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] c5", // G5 Dm7 D7 Gm7 Eb C7 G5 Dm7 …
  W: "[g5,bb5] [d4,g5]!2 ~ [f4,d5,c6] f4 [d5,c6] [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // Gm G5 Dm7 D7 Gm7 Eb C7 G5 …
  X: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6] [f4,d5] c6 [g4,f5,bb5]!2 ~ [bb4,g5] c5", // G5 Dm7 Gm7 Eb C7 G5 Dm7 Dm …
  Y: "~ [d4,g5]!2 ~ [f4,d5,c6] [f4,d5] c6 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] ~", // G5 Dm7 Dm Gm7 Eb C7 G5 Dm7 …
  Z: "[c5,g5,bb5] [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5] d4 g5 [f4,d5,c6] [f4,c6] d5 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // C7 G5 Dm7 Gm7 Eb C7 G5 Dm7 …
  AA: "~ [d4,g5]!2 ~ [f4,d5,c6] [f4,d5] c6 [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5]", // G5 Dm7 Dm Gm7 Eb C7 G5 Dm7 …
  AB: "~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5]!2 ~ [bb4,g5] [c5,g5,bb5] ~ [d4,g5]!2 ~ [f4,d5,c6]!2 ~ [g4,f5,bb5] [f5,bb5] ~ g5 ~", // G5 Dm7 Gm7 Eb C7 G5 Dm7 Gm7 …
})).s("gm_vibraphone").gain(0.32)

// bass · slap bass 1 · "SLAP BASS"
const bass_2 = note(`<
  A B C@2 A D E F A B G C H D F@2 I J K L A B G C H M N F I J K L O P O Q O P O Q R S T U A B V C A M N W I J K L O P O
  X O P O Q A@2 N Y H M E W I J K L O P O Q O P O Q O P O Q O P O Q ~
>`.pickRestart({
  A: "~ g2 ~@2 g3@2 ~@4 g2 ~@2 g2 g3 ~@2 g2 ~ g3@2 ~ g2 ~", B: "~ g2 ~@2 g3@2 ~@4 g2 ~@2 g2 g3 ~@2 g2 ~ g3 ~@2 g2 ~",
  C: "~ c3 ~@2 c4@2 ~@4 c3 ~@2 c3 c4 ~@2 c3 ~ c4@2 ~ c3 ~", D: "~ g2 ~@2 g3 ~@5 g2 ~@2 g2 g3 ~@2 g2 ~ g3@2 ~ bb2 ~",
  E: "~ c3@2 ~ c4 ~@5 c3 ~@2 c3 c4 ~@2 c3 ~ c4 ~@2 c3 ~", F: "~ c3 ~@2 c4 ~@5 c3 ~@2 c3 c4 ~@2 c3 ~ c4 ~@2 c3 ~",
  G: "~ c3 ~@2 c4@2 ~@4 c3 ~@2 c3 c4 ~@2 c3 ~ c4 ~@2 c3 ~", H: "~ g2 ~@2 g3 ~@5 g2 ~@2 g2 g3 ~@2 g2 ~ g3@2 ~ g2 ~",
  I: "~ g2 ~@2 g3 ~@2 g3 ~@2 g2 ~@2 g3!2 ~@2 g3 ~@2 g3 ~ g3 ~",
  J: "~ bb2 ~@2 bb3 ~@2 bb3 ~@2 bb2 ~@2 bb3 ~@2 bb2 bb3 ~@2 bb3 ~ bb3 ~",
  K: "~ c3 ~@2 c4 ~@2 c4 ~@2 c3 ~@2 c4!2 ~@2 c4 ~@2 c4 ~ c4 ~",
  L: "~ d3 ~@2 d4 ~@2 d4 ~@2 d3 ~@2 d4 ~@2 d3 d4 ~@2 d4 ~ d4 ~",
  M: "~ g2 ~@2 g3 ~@5 g2 ~@2 g2 g3 ~@2 g2 ~ g3 ~@2 bb2 ~", N: "~ c3@2 ~ c4 ~@5 c3 ~@2 c3 c4 ~@2 c3 ~ c4@2 ~ c3 ~",
  O: "~ g2 ~@2 g3 ~@5 g2 ~@2 g2 g3 ~@2 g2 ~ g3 ~@4", P: "~ bb2 ~@2 bb3 ~@5 bb2 ~@2 f2 f3 ~@2 f2 ~ f3 ~@4",
  Q: "~ c3 ~@2 c4 ~@5 c3 ~@2 d3 d4 ~@2 d3 ~ d4 ~@4", R: "~ g2@2 ~ g3 ~@2 g3 ~@2 g2 ~@2 f2 f3 ~@2 f3 ~@2 f2 ~ f3 ~",
  S: "~ eb2@2 ~ eb3 ~@2 eb3 ~@2 eb2 ~@2 d2 d3 ~@2 d3 ~@2 d2 ~ d3 ~",
  T: "~ c2@2 ~ c3 ~@2 c3 ~@2 c3 ~@2 c4!2 ~@2 c3 ~@2 c3 ~ c3 ~",
  U: "~ d3 ~@2 d3 ~@2 d3 ~@2 d3 ~@2 d4!2 ~@2 d4 ~ d3@2 ~ d4@2", V: "~ c3@2 ~ c4 ~@5 c3 ~@2 c3 c4@2 ~ c3 ~ c4@2 ~ c3 ~",
  W: "~ c3 ~@2 c4 ~@5 c3 ~@2 c3 c4 ~@3 c3 c4 ~@2 c3 ~", X: "~ c3 ~@2 c4 ~@5 c3 ~@2 d3 d4 ~@3 d3 d4 ~@4",
  Y: "~ c3 ~@2 c4@2 ~@4 c3 ~@2 c3 c4 ~@3 c3 c4@2 ~ c3 ~",
})).s("gm_slap_bass_1").gain(0.8)

// chords · lead 7 fifths · "5thSAWWAVE"
const lead_7_fifths = note(`<
  A B C D A E F G H B I D A E F J K L I M K E C J A B C N K O P Q R S T U T S V U W X Y Z AA E C J A E C J K E P Q AB AC
  AD U T S V U ~ O I AE AF O C AG AH AI F AJ R AK AL U T AM AN U T AO T U T AK AP U ~
>`.pickRestart({
  A: "~ [bb4,d5,g5] ~@2 [d5,g5]@2 ~@18, ~@4 bb4 ~@19", B: "~@19 [d5,g5] ~@4, ~@19 bb5@2 ~@3",
  C: "~ [e5,g5,c6] ~@2 [e5,g5,c6] ~@19", D: "~@10 [bb5,d6]@2 ~@4 [f5,c6] ~@5 [d5,g5,bb5] ~, ~@10 g5 ~@5 a5@2 ~@6",
  E: "~@19 [d5,g5,bb5] ~@4", F: "~ [e5,g5,c6] ~@2 [e5,g5,c6]@2 ~@18",
  G: "~ d3 a3 ~ g3 d3 ~ a4 g4 ~ [a4,g5,bb5,d6] d4 ~ [e4,g4] ~ [gb4,a4] [d5,f5,c6] [e5,g5] ~ [gb5,a5] d6 ~ [d5,g5,bb5,e6,g6] [gb6,a6], ~@8 a5 ~@3", // Gm Em Gbm Dm7 Em Gbm Em7b5 Gbm
  H: "~ [bb4,d5,g5,g6,bb6] ~@2 [bb4,d5,g5] ~@19", I: "~ [e5,g5,c6] ~@2 [g5,c6]@2 ~@18, ~@4 e5 ~@19",
  J: "~@10 [g5,bb5,d6] ~@5 [f5,c6] ~@5 [d5,g5,bb5] ~, ~@8 a5 ~@3", K: "~ [bb4,d5,g5] ~@2 [bb4,d5,g5] ~@19",
  L: "~@19 [d5,bb5] ~@4, ~@19 g5@2 ~@3", M: "~@10 [g5,d6] ~@5 [f5,a5,c6]@2 ~@4 [d5,g5,bb5] ~, ~@5 bb5 ~@6",
  N: "~@10 [g5,bb5] ~@5 [f5,c6] ~@5 [d5,g5,bb5] ~, ~@5 d6 ~@2 a5 ~@3", O: "~@19 [g5,bb5]@2 ~@3, ~@19 d5 ~@4",
  P: "~ [e5,g5,c6] ~@2 [e5,g5] ~@19, ~@2 c6 ~@9", // C Em
  Q: "~ d3 a3 ~ g3 d3 ~ a4 g4 ~ [a4,g5,d6] d4 ~ [e4,g4] [gb4,a4] ~ [f5,a5,c6]@2 [e5,g5] [gb5,a5] d6 ~ [d5,g5,bb5,e6,g6] [gb6,a6], ~@10 bb5@2 ~@4 d5 ~@7", // Dsus4 Em Gbm F Em Gbm Em7b5 Gbm
  R: "~ [bb5,d6,f6,g6,bb6] [bb5,d6,f6] ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // Gm7 Bb
  S: "~ [bb5,d6,f6]!2 ~ [bb5,d6,f6]!2 ~@7 [a5,c6,f6]!2 ~ [a5,c6,f6] ~@5 [a5,c6,f6]!2", // Bb F
  T: "~ [bb5,d6,f6]!2 ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // Bb
  U: "~ [c6,e6,g6]!2 ~ [c6,e6,g6]!2 ~@7 [d6,gb6,a6]!2 ~ [d6,gb6,a6] ~@5 [d6,gb6,a6]!2", // C D
  V: "~ [bb5,c6,d6,f6] [bb5,d6,f6] ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // Bb
  W: "~ [g5,bb5,d6] ~@2 [g5,bb5,d6] ~@11 [f5,a5,c6] ~@5 [f5,a5,c6] ~", // Gm F
  X: "~ [g5,bb5]@2 ~ [eb5,g5,bb5] ~@11 [d5,gb5,a5]@2 ~@4 [d5,gb5,a5] ~, ~ eb5 ~@22", // Gm Eb D
  Y: "~ [c5,e5,g5] ~@2 [c5,e5,g5] ~@11 [c5,e5,g5] ~@5 [c5,e5,g5] ~", // C
  Z: "~ [d3,d5,gb5,a5] a3 ~ g3 d3 ~ a4 g4 ~ a4 d4 ~ [e4,g4,d5,gb5,a5] [gb4,a4,d5,gb5,a5] ~ d5 e5 g5 [d5,gb5,a5] [d5,gb5,a5,d6] ~ [d5,gb5,a5,e6,g6] [gb5,a5], ~@2 [d5,gb5,a5] ~@9", // D Gbm D
  AA: "[d5,gb6,a6] [bb4,d5,g5,g6,bb6] ~@2 [bb4,d5,g5] ~@19", // D Gm
  AB: "~ [bb5,d6,f6,g6,bb6] [bb5,d6,f6] ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6] ~", // Gm7 Bb
  AC: "[bb5,d6,f6]!3 ~ [bb5,d6,f6]!2 ~@7 [a5,c6,f6]!2 ~ [a5,c6,f6] ~@5 [a5,c6,f6]!2", // Bb F
  AD: "~ [bb5,d6,f6]!2 ~ [bb5,d6,f6] [bb5,d6] f6 ~@6 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // Bb
  AE: "~ d3 a3 ~ g3 d3 ~ a4 g4 ~ [a4,g5] d4 ~ [e4,g4] [gb4,a4] ~ [a5,c6]@2 [e5,g5] [gb5,a5] d6 ~ [d5,g5,bb5,e6,g6] [gb6,a6], ~@10 [bb5,d6]@2 ~@4 [d5,f5] ~@7", // A7 Em Gbm Am Em Gbm Em7b5 Gbm …
  AF: "~ [bb4,d5,g5,g6,bb6] ~@2 [bb4,d5] ~@19, ~@2 g5 ~@9", // Gm Bb
  AG: "~ d3 a3 ~ g3 d3 ~ a4 g4 ~ a4 d4 ~ [e4,g4] [gb4,a4] ~ [d5,f5,a5] [e5,g5] ~ [gb5,a5] d6 ~ [d5,g5,e6,g6] [gb6,a6], ~@5 [g5,bb5,d6] ~@2 c6 ~@2 bb5", // Em Gbm Dm Em Gbm Em7 Gbm Gm
  AH: "~ [bb4,g6,bb6] ~@2 [bb4,d5,g5] ~@19, ~ [d5,g5]@2 ~@21", AI: "~@19 [d5,g5,bb5]@2 ~@3",
  AJ: "~ d3 a3 ~ g3 d3 ~ a4 g4 ~ [a4,g5] d4 ~ [e4,g4] [gb4,a4] ~ [d5,f5,a5] [e5,g5] ~ [gb5,a5] d6 ~ [d5,bb5,e6,g6] [gb6,a6], ~@5 [bb5,d6] ~@2 c6 ~@2 g5", // A7 Em Gbm Dm Em Gbm Em7b5 Gbm …
  AK: "~ [bb5,d6,f6]!2 ~ [bb5,d6,f6]!2 ~@7 [a5,c6,f6]!2 ~ [a5,c6,f6] ~@5 [a5,c6,f6] ~", // Bb F
  AL: "[a5,c6,f6] [bb5,d6,f6]!2 ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // F Bb
  AM: "~ [bb5,d6,f6]!2 ~ [bb5,d6,f6]!2 ~@7 [a5,c6,f6]!2 ~ [a5,c6,f6] ~@5 [a5,c6,f6] f6", // Bb F
  AN: "[a5,c6] [bb5,c6,d6,f6] [bb5,d6,f6] ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // Am Bb
  AO: "~ [bb5,d6,f6]!2 ~ [bb5,d6,f6] [bb5,d6] f6 ~@6 [a5,c6,f6]!2 ~ [a5,c6,f6] ~@5 [a5,c6,f6]!2", // Bb F
  AP: "[a5,c6,f6] [bb5,c6,d6,f6] [bb5,d6,f6] ~ [bb5,d6,f6]!2 ~@7 [bb5,d6,f6]!2 ~ [bb5,d6,f6] ~@5 [bb5,d6,f6]!2", // F Bb
})).s("gm_lead_7_fifths").gain(0.56)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A C A@3 D A@7 E A@3 D A@7 C A B A B A B A C A B A C A@3 D A@7 C A B A@3 B A F A@7 C A@3 G H B A@3 B A F A
  B A@3 B A F ~
>`.pickRestart({
  A: "~ x ~@11 x ~@10", B: "~ x ~@11 x ~@5 x!2 ~ x!2", C: "~ x ~@11 x!2 ~ x!2 ~@6", D: "~ x ~@11 x ~@5 x ~@4",
  E: "~ x ~@11 x!2 ~@9", F: "~ x ~@11 x!2 ~ x!2 ~ x ~@2 x ~", G: "~ x ~@11 x!2 ~ x!2 ~ x!2 ~ x ~", H: "x!2 ~@11 x ~@10",
})).gain(0.47)

// drums · snare
const snare = s("sd").struct(`<
  A@7 B A@11 B A@11 B A@7 B A@3 B A@7 B A@3 C D A@2 E A@11 B A@7 E A@7 E A@4 F
>`.pickRestart({
  A: "~@7 x ~@11 x ~@4", B: "~@7 x ~@11 x!2 ~ x!2", C: "~@7 x ~@11 x!2 ~ x ~", D: "x ~@6 x ~@11 x ~@4",
  E: "~@7 x ~@9 x ~ x!2 ~ x!2", F: "~@11 x",
})).gain(0.47)

// drums · clap
const clap = s("cp").struct("<A@2 B A@2 B A@49 C A@10 B A@12 C A@7 D A@5>".pickRestart({
  A: "~ x ~@2 x ~@5 x ~@2 x!2 ~@2 x ~ x ~@4", B: "~ x ~@2 x ~@5 x ~@2 x!2 ~@3 x!2 ~@4",
  C: "~ x ~@2 x ~@5 x ~@2 x ~ x ~ x ~ x ~@4", D: "~ x ~@2 x ~@5 x ~@2 x ~ x ~@2 x!2 ~@4",
})).gain(0.47)

// drums · low tom
const low_tom = s("lt").struct("<~@92 [~@11 x]>").gain(0.78)

// drums · hihat
const hihat = s("hh").struct("<A@2 B C A@19 D E A@30 D E A@18 D E A@10 D E A@3 F>".pickRestart({
  A: "~@4 x!2 ~@4 x!2 ~@4 x!2 ~@4 x!2", B: "~@4 x!2 ~@4 x!2 ~@4 x ~ x ~@3 x!2", C: "~@4 x!2 ~@4 x ~ x ~@3 x!2 ~@4 x!2",
  D: "~@4 x!2 ~@4 x!2 ~@4 x!2 ~@4 x ~", E: "x ~@3 x!2 ~@4 x!2 ~@4 x!2 ~@4 x!2", F: "~@4 x!2 ~@4 x!2 ~@4 x!2 ~@6",
})).gain(0.47)

// drums · cowbell
const cowbell = s("cb").struct("<A@2 B C D@3 E A@15 F G A@30 H G F G A@16 F G A@2 I A@7 F G A@4>".pickRestart({
  A: "~ x ~@2 x ~@5 x!2 ~@2 x ~ x!2 ~ x!2 ~ x!2", B: "~ x ~@2 x ~@5 x!2 ~@2 x ~ x ~ x!3 ~ x!2",
  C: "~ x ~@2 x ~@5 x ~ x ~ x ~ x!2 ~ x!2 ~ x!2", D: "~@4 x!2 ~@2 x ~ x!2 ~ x!2 ~ x!2 ~ x ~@2 x ~",
  E: "~@4 x!2 ~@2 x ~ x!2 ~ x!2 ~ x!2 ~@6", F: "~ x ~@2 x ~@5 x!2 ~@2 x ~ x!2 ~ x!2 ~ x ~",
  G: "x!2 ~@2 x ~@5 x!2 ~@2 x ~ x!2 ~ x!2 ~ x!2", H: "~ x ~@2 x ~@5 x ~ x ~@2 x!3 ~ x!2 ~ x ~",
  I: "~ x ~@2 x ~@5 x!2 ~@3 x!3 ~ x!2 ~ x!2",
})).gain(0.54)

stack(bass, vibraphone, bass_2, lead_7_fifths, kick, snare, clap, low_tom, hihat, cowbell)

More by Dead Or Alive