Strudelify
Wanna Be Starting Something cover art

2006

Wanna Be Starting Something

Michael Jackson

KeyD majorTempo120 bpm
0:00/0:00
// Wanna Be Starting Something — Jackson Michael
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 9 "POLYSYNTH" pad poly (copy of ch 3 "E.PIANO 2" epiano2)
// note: Full arrangement: all 180 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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, A@4 for four bars: edit a riff to change every repeat.

// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  A B@8 C@8 D@8 E@3 F@8 G@12 H@12 I@8 J@8 K@8 L@8 M@13 N@6 O P Q@12 R@8 S@5 T@15 U V@2 W ~@15 X@2 Y@3 Z@2 AA
>`.pickRestart({
  A: "~@16 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2 ~@3", B: "b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2",
  C: "[b1@2 ~@2 d2@5 e2@2 ~@4 d2 ~ d2@2 ~@4 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1, ~@11 d2 ~@116]/8",
  D: "[~@3 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1]/8",
  E: "[~@3 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~ d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2]/3",
  F: "~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2",
  G: "~ d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~",
  H: "d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2",
  I: "[d2@5 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 ~ e2@2 ~ e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2]/8",
  J: "[~@5 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@5 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@2]/8",
  K: "[~@4 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@5 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@3]/8",
  L: "[~@3 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@3]/8",
  M: "~@2 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@4",
  N: "~ e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@5",
  O: "~ e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@7",
  P: "~@7 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@5",
  Q: "e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6",
  R: "[e2@2 ~@4 d2 ~ d2@2 ~@3 e2@2 ~@3 e2@2 ~@2 b1@2 ~@2 d2@5 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2, ~@6 d2 ~@121]/8",
  S: "[~@5 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@3 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2]/5",
  T: "~@4 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2",
  U: "~@3 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@3 e2@2 ~ b1@2 ~@2 d2@6 e2@2 ~",
  V: "~@3 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~", W: "~@3 d2 ~ d2@2 ~@25",
  X: "~@2 d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@2",
  Y: "~ d2 ~ d2@2 ~@2 d2@2 e2@2 ~@3 e2@2 ~ b1@2 ~@2 d2@6 e2@2 ~@3",
  Z: "~ d2 ~ d2@2 ~@2 d2@2 e2@2 ~@2 e2@2 ~@2 b1@2 ~@2 d2@6 e2@2 ~@3", AA: "~ d2 ~ d2@2 ~@27",
})).s("gm_synth_bass_2").gain(0.72).pan(0.1)

// chords · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  ~@4 A@8 ~@4 B@7 C@2 ~@3 D@4 ~@4 E@7 F@2 ~@3 G@4 ~@4 H@3 I@4 J@4 K@4 L@2 ~@7 M@4 ~@4 N@3 O@4 P@4 Q@4 R@2 ~@7 S@5 ~@3
  T@4 ~@4 U@2 V W X@3 Y@3 V W Z AA@2 AB@2 AC AD AE Z AA@2 AB@2 AC AF@2 ~@16 AG@4 AH@2 AI ~
>`.pickRestart({
  A: "[~@10 [a3,d4,f#4]@15 ~ [b3,e4,g#4]@14 ~@2 [a3,d4,f#4]@15 ~ [b3,e4,g#4]@14 ~@2 [a3,d4,f#4]@15 ~ [b3,e4,g#4]@14 ~@2 [a3,d4,f#4]@15 ~ [b3,e4,g#4]@6]/8", // D E D E D E D E
  B: "[~@19 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@25 ~@7 [a3,d4,f#4]@17 ~@7 [d4,f#4,a4]@8 [b3,e4,g#4]@23 ~@9 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@29 ~@3 [a3,d4,f#4]@13]/7", // D E D E D E D
  C: "[~@11 [d4,f#4,a4]@8 [b3,e4,g#4]@27 ~@18]/2", // D E
  D: "[~@18 [a3,d4,f#4]@29 ~@3 [b3,e4,g#4]@28 ~@4 [a3,d4,f#4]@29 ~@17]/4", // D E D
  E: "[~@18 [a3,d4,f#4]@26 ~@6 [e4,g#4]@25 ~@7 [a3,d4,f#4]@17 ~@7 [d4,a4]@7 ~ e4@22 ~@9 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@29 ~@3 [a3,d4,f#4]@15, ~@49 b3@25 ~@31 f#4@8 [b3,g#4]@23 ~@88]/7", // D E D D5 D E D E
  F: "[~@9 [d4,f#4,a4]@8 [b3,e4,g#4]@27 ~@20]/2", // D E
  G: "[~@17 [a3,d4,f#4]@29 ~@3 [b3,e4,g#4]@29 ~@2 [a3,d4]@31 ~@17, ~@20 f#4@7 ~@5]/4", // D E D5
  H: "[~@16 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@25 ~@7 [a3,d4,f#4]@16]/3", // D E D
  I: "[~@8 [d4,f#4,a4]@8 [b3,e4,g#4]@23 ~@8 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@29 ~@3 [a3,d4,f#4]@17]/4", // D E D E D
  J: "[~@7 [d4,f#4,a4]@8 ~ e4@26 ~@5 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@25 ~@7 [a3,d4,f#4]@17, ~@15 [b3,g#4]@27 ~@86]/4", // D E D E
  K: "[~@7 [d4,f#4,a4]@8 [b3,e4,g#4]@22 ~@10 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@29 ~@3 [a3,d4,f#4]@17]/4", // D E D E D
  L: "[~@7 [d4,f#4,a4]@8 [b3,e4,g#4]@27 ~@22]/2", // D E
  M: "[~@14 [a3,d4,f#4]@29 ~@3 [b3,e4,g#4]@28 ~@4 [a3,d4,f#4]@29 ~@21]/4", // D E D
  N: "[~@13 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@25 ~@7 [a3,d4,f#4]@17 ~@2]/3", // D E D
  O: "[~@5 [d4,f#4,a4]@8 [b3,e4,g#4]@23 ~@9 [a3,d4,f#4]@26 ~@5 [b3,e4,g#4]@29 ~@3 [a3,d4,f#4]@17 ~@3]/4", // D E D E D
  P: "[~@4 [d4,f#4,a4]@8 [b3,e4,g#4]@27 ~@5 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@25 ~@7 [a3,d4,f#4]@17 ~@3]/4", // D E D E D
  Q: "[~@4 [d4,f#4,a4]@8 [b3,e4,g#4]@23 ~@9 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@29 ~@3 [a3,d4,f#4]@17 ~@3]/4", // D E D E D
  R: "[~@4 [d4,f#4,a4]@8 [b3,e4,g#4]@27 ~@25]/2", // D E
  S: "[~@11 [a3,d4,f#4]@29 ~@3 [b3,e4,g#4]@28 ~@4 [a3,d4,f#4]@29 ~@3 [b3,e4,g#4]@28 ~@25]/5", // D E D E
  T: "[~@10 [a3,d4,f#4]@29 ~@3 [b3,e4,g#4]@28 ~@4 [a3,d4,f#4]@29 ~@25]/4", // D E D
  U: "[~@9 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@23]/2", V: "~@9 [a3,d4,f#4]@17 ~@6", W: "~ [d4,f#4,a4]@8 [b3,e4,g#4]@23",
  X: "[~@9 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@29 ~@3 [a3,d4,f#4]@17 ~@6]/3", // D E D
  Y: "[~ [d4,f#4,a4]@8 [b3,e4,g#4]@27 ~@5 [a3,d4,f#4]@26 ~@6 [b3,e4,g#4]@23]/3", Z: "~ [a3,d4,f#4]@3",
  AA: "[~@8 [b3,e4,g#4]@29 ~@3 [a3,d4,f#4]@17 ~@7]/2", AB: "[[d4,f#4,a4]@8 [b3,e4,g#4]@27 ~@5 [a3,d4,f#4]@24]/2",
  AC: "~ [b3,e4,g#4]@3", AD: "~@8 [a3,d4,f#4]@17 ~@7", AE: "[d4,f#4,a4]@8 [b3,e4,g#4]@23 ~",
  AF: "[~@7 [a3,d4,f#4]@17 ~@7 [d4,f#4,a4]@8 ~ e4@22 ~@2, ~@39 [b3,g#4]@23 ~@2]/2", // D E
  AG: "[~@6 [a3,d4,f#4]@29 ~@3 [b3,e4,g#4]@26]/2", AH: "[~@6 [a3,d4,f#4]@29 ~@2 [b3,e4,g#4]@27]/2",
  AI: "~@5 [a3,d4,f#4]@27", // D
})).s("gm_epiano2").gain(0.56).pan(0.9)

// other · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@4 A B A B A C D C ~@4 D C D C D C D C ~@12 E F E F E F E F ~@8 G H I H I H I J G J K J K J K J L J K J M N O ~@13 P
  Q P R P R P R S R S R T R S R U@8 V W V W ~@12 X Y X Y X Y X Y X Y X Z AA Z AA Z AA Z AA Z AA Z AA Z AA Z AB AC ~@16
  AD AE AF AE AF AG AF AH
>`.pickRestart({
  A: "~@16 d3 ~ d3 ~@3 d3 ~ e3@2 ~@6", B: "~@16 d3 ~ d3 ~@3 d3 ~ d3 ~@7", C: "~@15 d3 ~ d3 ~@3 d3 ~ d3 ~@8",
  D: "~@15 d3 ~ d3 ~@3 d3 ~ e3@2 ~@7", E: "~@13 d3 ~ d3 ~@3 d3 ~ e3@2 ~@9", F: "~@13 d3 ~ d3 ~@3 d3 ~ d3 ~@10",
  G: "~@12 d3 ~ d3 ~ d3 ~ d3@2 e3 ~@11", H: "~@12 d3 ~ d3 ~@3 d3 ~ e3@2 ~@10", I: "~@12 d3 ~ d3 ~ d3 ~ d3 ~ e3 ~@11",
  J: "~@11 d3 ~ d3@2 ~@2 d3 ~ e3@2 ~@11", K: "~@11 d3 ~ d3 ~ d3 ~ d3 ~ e3 ~@12",
  L: "~@11 d3 ~ d3 ~ d3 ~ d3@2 e3@2 ~@11", M: "~@10 d3 ~ d3 ~@2 d3!2 ~ d3 ~@13",
  N: "~@8 b2 ~ d3 ~ d3 ~@3 d3 ~ d3@2 ~@3 d3@2 ~@7", O: "~@8 b2 ~ d3 ~ d3 ~@19", P: "~@9 d3 ~ d3 ~ d3 ~ d3@2 e3 ~@14",
  Q: "~@9 d3 ~ d3 ~@3 d3 ~ e3 ~@14", R: "~@8 d3 ~ d3 ~@3 d3 ~ e3@2 ~@14", S: "~@8 d3 ~ d3 ~ d3 ~ d3 ~ e3 ~@15",
  T: "~@8 d3 ~ d3 ~ d3 ~ d3@2 e3@2 ~@14",
  U: "[~@8 d3 ~ d3 ~@3 g#4@2 ~ d#5@3 ~ e4@2 f#4@2 g4@2 g#4@2 e5@2 d#5@2 d5@2 ~@4 g4@2 g#4@2 ~@2 g#4@2 e5@2 d#5@2 d5@2 e4@2 f#4@2 g4@2 g#4@2 e5@2 d#5@2 d5@2 ~@4 g4@2 g#4@2 ~@2 g#4@2 e5@2 d#5@2 d5@2 e4@2 f#4@2 g4@2 g#4@2 e5@2 d#5@2 d5@2 ~@4 g4@2 g#4@2 ~@2 g#4@2 e5@2 d#5@2 d5@2 e4@2 f#4@2 g4@2 g#4@2 e5@2 d#5@2 d5@2 ~@4 g4@2 g#4@2 ~@2 [g#4,b4]@2 [e5,g#5]@2 [d#5,g5]@2 [d5,f#5]@2 e4@2 f#4@2 g4@2 [g#4,b4]@2 [e5,g#5]@2 [d#5,g5]@2 f#5@3 ~@3 g4@2 g#4 ~@3 [g#4,b4]@2 [e5,g#5]@2 [d#5,g5]@2 f#5@2 e4@2 f#4@2 g4@2 [g#4,b4]@2 [e5,g#5]@2 [d#5,g5]@2 f#5@3 ~@3 g4@2 g#4 ~@3 [g#4,b4]@2 [e5,g#5]@2 [d#5,g5]@2 f#5@2 e4@2 f#4@2 g4@2 [g#4,b4]@2 [e5,g#5]@2 [d#5,g5]@2 [d5,f#5]@2 ~@4 g4@2 g#4@2 ~@2 [g#4,b4]@2 [e5,g#5]@2 [d#5,g5]@2 [d5,f#5]@2 e4@2 f#4@2 g4@3 ~@4, ~@8 g4@3 ~@245, ~@9 g#4@2 ~@5 e5@2 ~@2 d5@2 ~@139 d5 ~@17 d5 ~@13 d5 ~@17 d5 ~@44]/8", // G#m E D# D G#m E D# G#m …
  V: "~@7 d3 ~ d3 ~@3 d3 ~ e3@2 ~@15", W: "~@7 d3 ~ d3@2 ~@2 d3 ~ d3 ~@16", X: "~@5 d3 ~ d3 ~@3 d3 ~ e3@2 ~@17",
  Y: "~@5 d3 ~ d3 ~@3 d3 ~ d3 ~@18", Z: "~@4 d3 ~ d3 ~@3 d3 ~ d3 ~@19", AA: "~@4 d3 ~ d3 ~@3 d3 ~ e3@2 ~@18",
  AB: "~@4 d3!2 ~@3 d3 ~ e3@2 ~@19", AC: "~@3 d3 ~ d3 ~@3 d3 ~ d3 ~@20", AD: "~@2 d3 ~ d3 ~@3 d3 ~ e3 ~@21",
  AE: "~@2 d3 ~ d3 ~@3 d3 ~ d3 ~@21", AF: "~ d3 ~ d3 ~@3 d3 ~ e3@2 ~@21", AG: "~ d3 ~ d3@2 ~@2 d3 ~ d3 ~@22",
  AH: "~ d3 ~ d3 ~@28",
})).s("gm_electric_guitar_clean").gain(0.48).pan(0.3)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@5 A@4 B C@3 ~@3 D@8 E ~@3 F G@2 H ~@4 I@8 J ~@3 K L@2 M ~@4 N O@3 P Q@10 R S ~@7 T U@3 ~@4 V@3 W@13 X@8 Y Z@3 AA ~@3
  AB AC@2 AA ~@4 AD@8 AE@2 AF@6 AG@9 AH AI@2 ~@16 AJ AK@6 ~
>`.pickRestart({
  A: "g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3@2 ~@20", B: "g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3@2 ~@19 g#3",
  C: "[~ e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3@2 f#3@2 ~@2 g#3@2 ~@21]/3",
  D: "[~@31 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3]/8",
  E: "~ e3@2 f#3@2 f#3@2 ~@2 g#3@2 ~@21", F: "~@15 g#3", G: "e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2",
  H: "e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@23",
  I: "[~@31 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3, ~@15 g#3 ~@112]/8",
  J: "~ f#3@2 f#3@2 ~@2 g#3@2 ~@23", K: "~@15 e3, ~@29 g#3@2 ~", L: "~ f#3 ~ f#3 ~@2 g#3 ~@21 g#3@2 e3@2",
  M: "f#3 ~ f#3@2 ~@2 g#3 ~@25", N: "~@14 g#3 e3", O: "f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2",
  P: "f#3 ~ f#3@2 ~ g#3@2 ~@20 g#3@2 e3@2 f#3", Q: "~ f#3@2 ~@2 g#3@2 ~@20 g#3@2 e3@2 f#3",
  R: "~ f#3@2 ~ g#3 ~@23 e3@2 f#3@2, ~@27 g#3@2 ~@3", S: "~ f#3@2 ~ g#3@2 ~@26", T: "~@26 g#3@2 e3@2 f#3 ~",
  U: "[f#3@2 ~@2 g#3 ~@22 e3@2 ~ f#3 f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@28, ~@13 g#3 ~@34]/3",
  V: "[~@25 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~ g#3@2 ~@20 g#3@2 e3@2 f#3 ~ f#3@2]/3",
  W: "~@2 g#3@2 ~@20 g#3@2 e3@2 f#3 ~ f#3@2",
  X: "[~ g#3@2 ~@5 g3@2 g#3@2 ~@2 g#3@2 ~ d#4@3 ~ e3@2 f#3@2 g3@2 g#3@2 e4@2 d#4@2 d4@2 ~@4 g3@2 g#3@2 ~@2 g#3@2 e4@2 d#4@2 d4@2 e3@2 f#3@2 g3@2 g#3@2 e4@2 d#4@2 d4@2 ~@4 g3@2 g#3@2 ~@2 g#3@2 e4@2 d#4@2 d4@2 e3@2 f#3@2 g3@2 g#3@2 e4@2 d#4@2 d4@2 ~@4 g3@2 g#3@2 ~@2 g#3@2 e4@2 d#4@2 d4@2 e3@2 f#3@2 g3@2 g#3@2 e4@2 d#4@2 d4@2 ~@4 g3@2 g#3@2 ~@2 g#3@2 e4@2 d#4@2 d4@2 e3@2 f#3@2 g3@2 g#3@2 e4@2 d#4@2 d4@2 ~@4 g3@2 g#3@2 ~@2 g#3@2 e4@2 d#4@2 d4@2 e3@2 f#3@2 g3@2 g#3@2 e4@2 d#4@2 d4@2 ~@4 g3@2 g#3@2 ~@2 g#3@2 e4@2 d#4@2 d4@2 e3@2 f#3@2 g3@2 g#3@2 e4@2 d#4@2 d4@2 ~@4 g3@2 g#3@2 ~@2 g#3@2 e4@2 d#4@2 d4@2 e3@2 f#3@2 g3@3 ~@4, ~@8 e4 ~ d4 ~@117]/8",
  Y: "~@23 g#3@2 e3@2 f#3 ~ f#3 ~@2", Z: "~ g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~", AA: "g#3 ~@15",
  AB: "~@22 g#3@2 e3@2 f#3 ~ f#3@2 ~@2", AC: "g#3 ~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2",
  AD: "[~@21 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3@2 ~@20 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3@2 ~@20 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3@2 ~@20 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3@2 ~@20 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3@2 ~@20 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3@2 ~@20 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3@2 ~@20 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3]/8",
  AE: "~@21 [g#3,b3]@2 [e3,g#3]@2 [f#3,a3] ~ [f#3,a3] ~@3 [g#3,b3]", // G#m E F#m G#m
  AF: "~@20 [g#3,b3]@2 [e3,g#3]@2 [f#3,a3] ~ [f#3,a3]@2 ~@2 [g#3,b3]@2", AG: "~@20 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~",
  AH: "~@21 e3@2 ~ f#3!2 ~@3 g#3 ~@2, ~@10 g#3 ~@5", AI: "~@19 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@2",
  AJ: "~@18 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3@2 ~@2", AK: "~@17 g#3@2 e3@2 f#3 ~ f#3@2 ~@2 g#3 ~@4",
})).s("gm_electric_guitar_muted").gain(0.56).pan(0.8)

// other · synth bass 1 · "SYN BASS 1"
const synth_bass_1 = note(`<
  ~@7 A B ~@10 C D ~@2 C D ~@14 E@2 ~@2 E@2 ~@14 F G ~@2 F H ~@2 I@2 J@2 ~@20 K L ~@2 M@2 ~@2 N O N P ~@10 Q R ~@33 S T
  S T S U V W ~@8 X Y Z AA Y@2 Z AA AB ~@2 AC AD AE ~@2
>`.pickRestart({
  A: "~@30 [b3,b4] ~", B: "[c#4,c#5] ~ [d4,d5]@4 [d4,d5] ~ [c#4,c#5] ~ [b3,b4] ~ [d4,d5]@2 ~@18",
  C: "~@29 [b3,b4] ~ [c#4,c#5]", D: "~ [d4,d5]@4 [d4,d5] ~ [c#4,c#5] ~ [b3,b4] ~ [d4,d5]@2 ~@19",
  E: "[~@27 [b3,b4] ~ [c#4,c#5] ~ [d4,d5]@4 [d4,d5] ~ [c#4,c#5] ~ [b3,b4] ~ [d4,d5]@2 ~@21]/2", // B C# D C# B D
  F: "~@25 [b3,b4] ~ [c#4,c#5] ~ [d4,d5]@3", G: "~@2 [d4,d5] [c#4,c#5] ~ [b3,b4] ~@2 [d4,d5]@2 ~@22",
  H: "~ [d4,d5] ~ [c#4,c#5] ~ [b3,b4] ~ [d4,d5]@2 ~@23", // D C# B D
  I: "[~@27 [b3,b4] ~ [c#4,c#5] ~ [d4,d5]@4 [e4,e5]@2 ~@2 [b3,b4]@16 ~@9]/2", // B C# D E B
  J: "[~@27 [b3,b4] ~ [c#4,c#5] ~ [d4,d5]@3 ~ c#4@2 ~@2 [b3,b4]@20 ~@5, ~@17 c#5 ~@14]/2", // B C# D B
  K: "~@22 b4 b3 c#5 c#4 [d4,d5]@4 ~ [d4,d5]", L: "[c#4,c#5] ~@2 [b3,b4] ~ [d4,d5]@2 ~@25",
  M: "[~@22 [b3,b4] ~ [c#4,c#5] ~ [d4,d5]@4 d4 ~ [c#4,c#5] ~ [b3,b4] ~ [d4,d5]@2 ~@26, ~@15 d5@2 ~@15]/2", // B C# D C# B D
  N: "~@24 [b3,b4] ~ [c#4,c#5] ~ [d4,d5]@4", O: "[e4,e5] ~ [b3,b4]@8 ~@6", P: "[c#4,c#5] ~ [b3,b4]@10 ~@4",
  Q: "~@21 [b3,b4] ~ [c#4,c#5] ~ [d4,d5]@4 [d4,d5] ~ [c#4,c#5]", R: "~ [b3,b4] ~ [d4,d5]@2 ~@27",
  S: "~@2 [b3,b4] ~ [c#4,c#5] ~ [d4,d5]@5 ~ e5@2 ~@2 [b3,b4]@2 ~@2 [c#4,c#5] ~@3 [d4,d5]@3 ~ [e4,e5]@2 [b3,b4]@2, ~@12 e4 ~@19", // B C# D B C# D E B
  T: "~@2 [b3,b4] ~ [c#4,c#5] ~ [d4,d5]@5 ~ [e4,e5] ~@3 [b3,b4] ~@3 [c#4,c#5] ~ [d4,d5]@2 ~@2 [e4,e5]@2 ~@2 [b3,b4]@2", // B C# D E B C# D E …
  U: "~ [b3,b4] ~ c#5@2 [d4,d5]@6 ~ [e4,e5] ~@3 b4@2 ~ [c#4,c#5] ~ [d4,d5]@2 ~@2 [e4,e5]@2 ~@2 [b3,b4]@2 ~, ~@3 c#4 ~@12 b3 ~@15", // B D E C# D E B
  V: "~ [b3,b4] ~ c#5@2 [d4,d5]@5 ~ [e4,e5]@2 ~@2 [b3,b4]@2 ~@2 [c#4,c#5]@2 ~@2 [d4,d5]@3 ~ [e4,e5]@2 [b3,b4]@2 ~, ~@3 c#4 ~@28", // B D E B C# D E B
  W: "~ [b3,b4] ~ [c#4,c#5]@2 [d4,d5]@5 ~ [e4,e5] ~@3 [b3,b4] ~@3 [c#4,c#5] ~ [d4,d5] ~@3 [e4,e5] ~@3 [b3,b4] ~@2", // B C# D E B C# D E …
  X: "~@30 [d4,d5] ~", Y: "[e4,e5] ~@29 [d4,d5] ~", Z: "[b3,b4]@2 ~@28 [d4,d5] ~",
  AA: "[e4,e5] ~@17 [b3,b4] ~ [c#4,c#5] ~ d5@2 [e4,e5] ~ [f#4,f#5] ~ [a4,a5] ~ [g#4,g#5] ~, ~@22 d4 ~@9", // E B C# E F# A G#
  AB: "[e4,e5] ~@31", AC: "~@31 [b3,b4]",
  AD: "~ [c#4,c#5] ~ [d4,d5]@5 ~ [e4,e5] ~@3 [b3,b4]@2 ~@2 [c#4,c#5]@2 ~@2 [d4,d5]@3 ~ [e4,e5]@2 [b3,b4]@2 ~@2 [b3,b4]", // C# D E B C# D E B
  AE: "~ [c#4,c#5] ~ [d4,d5]@6 [e4,e5] ~@3 [b3,b4] ~@3 [c#4,c#5] ~ [d4,d5]@2 ~@2 [e4,e5]@2 ~@2 [b3,b4]@2 ~@3", // C# D E B C# D E B
})).s("gm_lead_8_bass_lead").gain(0.64).pan(0.3)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@64 A@8 ~@24 B@8 ~@8 C@5 ~@63>".pickRestart({
  A: "[~@15 [f#5,d6]@32 [g#5,e6]@32 [f#5,d6]@32 [g#5,e6]@32 [f#5,d6]@31 ~ e6@32 [f#5,d6]@31 [g#5,e6]@18, ~@174 g#5@33 ~@49]/8", // D C#m D C#m D C#m
  B: "[~@3 [f#5,d6]@8 [g#5,e6]@8 [f#5,d6]@8 [g#5,e6]@8 [f#5,d6]@8 [g#5,e6]@8 [f#5,d6]@8 [g#5,e6]@5]/8", // D C#m D C#m D C#m D C#m
  C: "[~@11 [f#5,d6]@32 [g#5,e6]@32 [f#5,d6]@32 [g#5,e6]@32 ~@21]/5", // D C#m D C#m
})).s("gm_string_ensemble_2").gain(0.4).pan(0.7)

// chords · marimba
const marimba = note("<~@144 A B C B D E F G C E F H ~@16 I J I J I K ~@2>".pickRestart({
  A: "~@20 [e5,g#5] ~@3 d5@2 f#5 ~@3 [d5,f#5] ~, ~@24 f#5 ~@7", // E D
  B: "~@20 [d5,f#5] ~@3 [e5,g#5] ~ [e5,g#5] ~@3 [e5,g#5] ~", // D E
  C: "~@20 [e5,g#5] ~@3 [d5,f#5] ~ d5@2 ~@2 d5@2, ~@26 f#5 ~@3 f#5 ~", // E D
  D: "~@19 [e5,g#5] ~@3 [d5,f#5] ~@2 [d5,f#5] ~@3 f#5 ~, ~@29 d5@2 ~", // E D
  E: "~@20 [d5,f#5] ~@2 g#5 e5!2 g#5 ~@2 [e5,g#5] ~@2", F: "~@19 [e5,g#5] ~@4 [d5,f#5] f#5 d5 ~@2 [d5,f#5] ~@2",
  G: "~@20 [d5,f#5] ~@3 [e5,g#5] ~ [e5,g#5] ~@2 [e5,g#5] ~@2", // D E
  H: "~@19 [d5,f#5] ~@3 [e5,g#5] ~ [e5,g#5] ~@3 [e5,g#5] ~@2", // D E
  I: "~@18 [e5,g#5] ~@3 [d5,f#5] ~ [d5,f#5] ~@2 [d5,f#5] ~@4", // E D
  J: "~@17 d5 f#5 ~@3 [e5,g#5] ~ [e5,g#5] ~@2 [e5,g#5] ~@4", // E
  K: "~@17 [d5,f#5] ~@3 [e5,g#5] ~ [e5,g#5] ~@3 [e5,g#5] ~@4", // D E
})).s("gm_marimba").gain(0.64).pan(0.2)

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

// drums · rim
// … 154 more lines

More by Michael Jackson