Strudelify
Beat It cover art

1983 · Michael Jackson's This Is It

Beat It

Michael Jackson

KeyE♭ minorTempo138 bpm
0:00/0:00
// Beat It — Michael Jackson
// 138 bpm, 4/4, key Eb minor. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 136 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(138/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 · fretless bass · "Bass"
const bass = note(`<
  ~@13 A@5 B@4 C D C D E D C D C D C D E D C F@3 G@8 H@2 C D C D E D C D C D C D E D C F@3 G@8 I@4 H@2 J K J K J K J K J
  K J K J K J K C D C D E D C D C D C D E D C F@3 G@8 I@8 L@4
>`.pickRestart({
  A: "[~@7 e1@2 g1 b1 g2 e2@2 ~ gb2@2 e2 d2 ~ d2 ~@2 e1@2 g1 b1 g2 e2@2 ~ gb2@2 e2 d2 ~@4 e1]/5",
  B: "[~ g1 b1 g2 e2@2 ~ gb2@2 e2 db2 ~ d2 ~@2 e1@2 g1 b1 g2 e2@2 ~ gb2@2 e2 d2 ~@5]/4", C: "~ e2!2 ~ e2 ~@2 d2",
  D: "d2 ~ d2 ~@5", E: "~ c2!2 ~ c2 ~@2 d2", F: "[d2 ~ d2 ~@4 e1@2 g1 b1 g2 e2@2 ~ gb2@2 e2 d2 ~ d2 ~@2 e1]/3",
  G: "[~@2 g1@2 b1@2 g2@2 e2@3 ~@3 gb2@4 e2@2 d2@2 ~@8 e1@4 g1@2 b1@2 g2@2 e2@3 ~@3 gb2@4 e2@2 d2@2 ~@2 d2@2 ~@4 e1@4 g1@2 b1@2 g2@2 e2@3 ~@3 gb2@4 e2@2 d2@2 ~@8 e1@4 g1@2 b1@2 g2@2 e2@4 ~@2 gb2@4 e2@2 d2@2 ~@2 d2@2 ~@4 e1@2, ~@56 g2 ~@71]/8",
  H: "[~@2 g1@2 b1@2 g2@2 e2@3 ~@3 gb2@4 e2@2 d2@2 ~@10]/2",
  I: "[~@2 g1@2 b1@2 g2@2 e2@3 ~@3 gb2@4 e2@2 d2@2 ~@8 e1@4 g1@2 b1@2 g2@2 e2@4 ~@2 gb2@4 e2@2 d2@2 ~@2 d2@2 ~@4 e1@2]/4",
  J: "~ e1!2 ~ e1 ~@2 e1", K: "e1 ~ e1 ~@5", L: "[~@2 g1@2 b1@2 g2@2 e2@3 ~@3 gb2@4 e2@2 d2@2 ~@4 d1@3 ~ e1@34]/4",
})).s("gm_fretless_bass").gain(0.54)

// chords · pad poly · "Keyboard"
const pad_poly = note(`<
  ~@22 A B A B C B A B D B A B C B A B A B A B A B A B A B A B A B A B C B A B D B A B C B A B A B A B A B A B A B A B A
  B A B ~@16 A B A B C B A B D B A B C B A B A B A B A B A B A B A B A B A B A B A B E ~
>`.pickRestart({
  A: "[b3,e4,g4]", B: "[a3,d4,gb4]", C: "[g3,c4,e4]", D: "[b3,e4,g4], gb4 ~@15", E: "[b3,e4,g4]@3 ~@13",
})).s("gm_pad_poly").gain(0.18)

// chords · distortion guitar · "Guitar 1"
const distortion_guitar = note(`<
  ~@13 A@5 B C D E F G F G H G I G F G F G H G I J@8 K@5 F G F G H G I G F G F G H G I J@8 L@8 M ~@8 N O D P N O D P F G
  F G H G I G F G F G H G I J@8 L@8 Q@7
>`.pickRestart({
  A: "[~@14 e3@4 g3@2 b3@2 g4@2 e4@3 ~@3 f4@4 e4@2 d4@2 ~@2 d4@2 ~@4 e3@4 g3@2 b3@2 g4@2 e4@4 ~@2 f4@4 e4@2 d4@2 ~@8 [b2,e3]!2]/5", // E5
  B: "[b2,e3]!4 [b3,e4,g4]@2 [b2,e3]!2 [b3,e4,g4]@2 [b3,e4]@3 [a3,bb3,d4,eb4] [b2,e3]!2", // E5 Em E5 Em E5 Ebmaj7 E5
  C: "[a3,d4,gb4]@2 [b2,e3]!2 [a3,d4,gb4]@2 [a3,d4]@7 [ab3,db4] [gb3,g3,c4] ~", // D E5 D D5 Db5 C
  D: "~@2 [b2,e3]!2 [b3,e4,g4]@2 [b2,e3]!2 [b3,e4,g4]@2 [b3,e4]@3 [a3,bb3,eb4,gb4] d4 [b2,e3]", // E5 Em E5 Em E5 Ebm E5
  E: "[a3,d4,gb4]@2 [b2,e3]!2 [a3,d4,gb4]@2 a3@7 ~@3, ~@6 d4@5 ~@5", F: "~ [e2,b2,e3]!2 ~ [e2,b2,e3] ~@2 [d2,a2,d3]",
  G: "[d2,a2,d3] ~ [d2,a2,d3] ~@5", H: "~ [g2,c3]!2 ~ [c2,g2,c3] ~@2 [d2,a2,d3], ~ c2@2 ~@5",
  I: "~ [b2,e3]!2 ~ [e2,b2,e3] ~@2 [d2,a2,d3], ~ e2@2 ~@5", // E5 D5
  J: "[[d2,a2,d3]@2 ~@2 [d2,a2,d3]@2 ~@8 e3@4 g3@2 b3@2 g4@2 e4@3 ~@3 f4@4 e4@2 d4@2 ~@2 d4@2 ~@4 e3@4 g3@2 b3@2 g4@2 e4@4 ~@2 f4@4 e4@2 d4@2 ~@8 e3@4 g3@2 b3@2 g4@2 e4@3 ~@3 f4@4 e4@2 d4@2 ~@2 d4@2 ~@4 e3@4 g3@2 b3@2 g4@2 e4@4 ~@2 f4@2]/8", // D5
  K: "[~@2 e4@2 d4@2 ~@8 e3@4 g3@2 b3@2 g4@2 e4@3 ~@3 f4@4 e4@2 d4@2 ~@2 d4@2 ~@4 e3@4 g3@2 b3@2 g4@2 e4@4 ~@2 f4@4 e4@2 d4@2 ~@10]/5",
  L: "[~@2 e4@2 d4@2 ~@8 e3@4 g3@2 b3@2 g4@2 e4@3 ~@3 f4@4 e4@2 d4@2 ~@2 d4@2 ~@4 e3@4 g3@2 b3@2 g4@2 e4@4 ~@2 f4@4 e4@2 d4@2 ~@8 e3@4 g3@2 b3@2 g4@2 e4@3 ~@3 f4@4 e4@2 d4@2 ~@2 d4@2 ~@4 e3@4 g3@2 b3@2 g4@2 e4@4 ~@2 f4@2]/8",
  M: "~ e4 d4 ~@5", N: "~@2 [b2,e3]!2 [b3,e4,g4]@2 [b2,e3]!2 [b3,e4,g4]@2 [b3,e4]@3 [a3,bb3,d4,eb4] [b2,e3]!2",
  O: "[a3,d4,gb4]@2 [b2,e3] [b2,e3,a3] [d4,gb4]@2 [a3,d4]@7 [g3,ab3,c4,db4] gb3 ~", // D E5 Esus4 D D5 Dbmaj7
  P: "[a3,d4,gb4]@2 [b2,e3] [b2,e3,a3] [d4,gb4]@2 a3@7 ~@3, ~@6 d4@5 ~@5", // D E5 Esus4 D
  Q: "[~@2 e4@2 d4@2 ~@8 e3@4 g3@2 b3@2 g4@2 e4@3 ~@3 f4@4 e4@2 d4@2 ~@2 d4@2 ~@4 e3@4 g3@2 b3@2 g4@2 e4@4 ~@2 f4@4 e4@2 d4@2 ~@4 d3@3 ~ e3@32 ~@2]/7",
})).s("gm_distortion_guitar").gain(0.16).pan(0.8)

// other · overdriven guitar · "Guitar 2"
const overdriven_guitar = note("<~@97 A@4 B@2 C@3 D@3 E F G@2 H I@2 ~@20>".pickRestart({
  A: "[~@12 b2@16 d3@10 a5@6 d6@8 [d5,e5] gb5 [gb5,g5] e5 [d5,e5] gb5 g5 [e5,gb5] [d5,e5] gb5 [gb5,g5] e5]/4", // Dsus2 Gmaj7 Dsus2 Esus2 Dsus2 Gmaj7
  B: "[[a4,d5] e5 [e5,gb5] d5 [a4,d5] e5 gb5 [d5,e5] b3@11 ~ [e5,gb5] g5 [g5,b5] gb5 [e5,gb5] g5 b5 [gb5,g5] [e5,gb5] g5 [g5,b5] gb5]/2", // D5 Esus2 D5 Dsus2 Esus2 G Esus2 Gmaj7 …
  C: "[[d5,e5] gb5 [gb5,g5] e5 [d5,e5] gb5 a5@5 ~ d6@8 ~@2 a4@5 g4 gb2@8 f6@4 d4@7 ~, ~@6 g5 ~@4 g5@2 ~@35]/3", // Dsus2 Gmaj7 Dsus2
  D: "[~@6 d4@4 a3 ~ d4@2 a3 g3@3 d4@3 ~ [g3,a3]@2 a5@10 d5@2 e5@2 d5 ~ e5 ~ g5@5 g4, ~@11 g3@2 ~@35]/3", // Gsus2
  E: "a4@3 g4 a4@10 c5 e5",
  F: "~ e5 [e5,g5] c5 [g4,c5] e5 g5 [c5,e5] [g4,c5] e5 [e5,g5] c5 [g4,c5] e5 a5 [d5,gb5], [c5,g5] ~@7", // Em C5 C C5 Em C5 D C5
  G: "[[d5,a5] a5 [d5,a5] d5@5 g2@2 e2@2 ~@7 gb5!4 g5!7 [g5,a5] a5, ~@12 e3@2 eb5@7 ~@11, ~@13 eb4@7 ~@12, ~@13 eb3@2 ~@17]/2", // D5 Gsus2
  H: "a5!2 [a5,bb5] b5!6 c6 db6 d6!2 eb6!2 [eb6,e6]", // Bbmaj7 Emaj7
  I: "[e6!8 e6@4 ~ eb6@2 b5 ~@3 ab3@3 f3@4 ~@6, ~@12 b3@7 ~@13, ~@12 e4@3 ~@17]/2",
})).s("gm_overdriven_guitar").gain(0.36).pan(0.4)

// other · overdriven guitar · "Guitar 3"
const overdriven_guitar_2 = note("<~@13 A@8 B ~@15 A@8 C@5 ~@15 A@8 D@8 E ~@31 A@8 F@8 G@7>".pickRestart({
  A: "[~@14 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@4 e3@2 d3@2 ~@2 d3@3 ~@3 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@4 e3@2 d3@3 ~@7 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@4 e3@2 d3@3 ~ d3@3 ~@3 e2@4 g2@2 b2@2 g3@2 e3@4 ~@2 gb3@2, ~@30 e3 ~@31 e3 ~@31 e3 ~@23 e3 ~@7 e3 ~]/8", // Em
  B: "~ e3 d3 ~@5",
  C: "[~@2 e3@2 d3@2 ~@8 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@4 e3@2 d3@2 ~@2 d3@3 ~@3 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@4 e3@2 d3@3 ~@9, ~@30 e3 ~@31 e3 ~@17]/5", // Em
  D: "[~@2 e3@2 d3@2 ~@8 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@4 e3@2 d3@2 ~@2 d3@3 ~@3 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@4 e3@2 d3@3 ~@7 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@4 e3@2 d3@2 ~@2 d3@3 ~@3 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@2, ~@30 e3 ~@31 e3 ~@31 e3 ~@31 e3 ~]/8", // Em
  E: "~@2 e3@2 d3@3 ~@9",
  F: "[~@2 e3@2 d3@2 ~@8 e2@4 g2@2 b2@2 g3@2 e3@4 ~@2 gb3@4 e3@2 d3@2 ~@2 d3@3 ~@3 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@4 e3@2 d3@3 ~@7 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@4 e3@2 d3@2 ~@2 d3@3 ~@3 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@2, ~@22 e3 ~@7 e3 ~@31 e3 ~@31 e3 ~@31 e3 ~]/8", // Em
  G: "[~@2 e3@2 d3@3 ~@7 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@4 e3@2 d3@2 ~@2 d3@3 ~@3 e2@4 g2@2 b2@2 [e3,g3]@2 e3@4 ~@2 gb3@4 e3@2 d3@3 ~@7 e2@32 ~@2, ~@30 e3 ~@31 e3 ~@49]/7", // Em
})).s("gm_overdriven_guitar").gain(0.19).pan(0.3)

// other · electric guitar muted · "Guitar 4"
const electric_guitar_muted = note(`<
  ~@22 A B A B C B A B D E D E D E D F ~@12 D E D E D E D F D E D E D E D F ~@16 G H G H G H G H G H G H G H G H ~@38
>`.pickRestart({
  A: "~@2 e2 ~ e2@2 ~@2 e2@2 ~@4 d2 ~", B: "d2 ~ d2 ~@5", C: "~@2 c2@2 c2@2 ~@2 c2@2 ~@4 d2 ~",
  D: "~@2 e3 ~ d3 ~ e3 ~ d3 ~ e3 ~ d3 ~ e3 ~", E: "~@2 e3 ~ d3 ~ e3 ~ g3 ~ e3 ~ d3 ~ e3 ~", F: "~@2 e3 ~ d3 ~ e3 ~@9",
  G: "~@2 [e2,b2,e3] ~ [e2,b2,e3] ~@3 [e2,b2,e3] ~@5 [e2,b2,e3] ~", H: "[e2,b2,e3] ~@3 [e2,b2,e3] ~@11",
})).s("gm_electric_guitar_muted").gain(0.22)

// bass · pad poly · "Synth 1"
const bass_2 = note("<A@2 B@2 A@2 C ~@75 D E@2 F G H G F@2 I D G J H K F L ~@37>".pickRestart({
  A: "ab3", B: "f3", C: "eb3", D: "e2@2 e2!2 e2@2 e2!2 e2@2 e2!2 e2@2 e2!2",
  E: "[e2@2 e2!2 e2@2 e2!6 e2@2 e2 e2@3 e2 e2@3 e2!2 e2@2 e2!2 e2@2 e2!2]/2", F: "e2@2 e2!2 e2@2 e2!6 e2@2 e2!2",
  G: "e2@2 e2!2 e2@2 e2!2 e2@2 e2!6", H: "e2!4 e2@2 e2!2 e2@2 e2!2 e2@2 e2!2", I: "e2@2 e2!14",
  J: "e2!4 e2@2 e2!2 e2@2 e2!2 e2@2 e2@2", K: "e2@2 e2!2 e2@2 e2!10", L: "e2@3 ~@13",
})).s("gm_pad_poly").gain(0.35).pan(1)

// drums · kick
const kick = s("bd").struct(`<
  ~@6 A B A B A B A C A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A C A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A C A B A B A B A B
  A B A B A B A B A B A C D ~
>`.pickRestart({
  A: "x!2", B: "x ~@4 x ~@2", C: "x ~@4 x ~ x", D: "x",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@6 [~ x ~ x]!7 [~@2 x ~@2 x!2 ~] [~ x ~ x]!119 [~@2 x ~@2 x!2 ~] ~@2>").gain(0.36)

// drums · clap
const clap = s("cp").struct("<~@6 [~@3 x]!128 ~@2>").gain(0.36)

// drums · low tom
const low_tom = s("lt").struct("<~@6 [~@3 x]!89 [~@5 x ~ x!3 ~ x!3 ~ x] [x ~@2 x] [~@3 x]!37 ~@2>").gain(0.41)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@6 A@7 B C D E D F G H D I@2 J K H L F E M N A B A E A@2 C D E D F G H D I@2 J K H L F E A N A B M E A@2 E A@2 E C D
  E D F G H D I H D E D F G H D I H D E D F G H D I H D E D F G H D I H D E D O G H D I H D E P F G H D I H D E D F G H
  D I H D E D F ~@2
>`.pickRestart({
  A: "x!8", B: "x!7 ~", C: "~ x!2 ~ x ~ x ~", D: "x!4", E: "x ~ x ~ x ~ x!2", F: "x ~ x ~ x!4", G: "x!3 ~ x ~ x!2",
  H: "x!3 ~ x ~ x ~", I: "x ~ x ~ x!3 ~", J: "x ~ x!3 ~ x ~", K: "x!5 ~ x ~", L: "x ~ x!5 ~", M: "~ x!7",
  N: "x!5 ~ x!2", O: "~@2 x ~ x!4", P: "~ x!3",
})).gain(0.27)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@14 A B C B D E A B F@2 G H A I D C ~ J ~ K ~ C ~@2 A B C B D E A B F@2 G H A I D C ~ J ~ K ~ C ~@2 C ~@2 C A B C B D
  E A B F A B C B D E A B F A B C B D E A B F A B C B D E A B F A B C B D E A B F A B C B D E A B F A B C B D E A B F A
  B C B D ~@2
>`.pickRestart({
  A: "~@3 x ~ x ~ x", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x ~ x ~@2", D: "~ x ~ x ~@4", E: "~@3 x ~ x ~@2",
  F: "~ x ~ x ~@3 x", G: "~ x ~@3 x ~ x", H: "~@5 x ~ x", I: "~ x ~@5 x", J: "~@5 x ~@2", K: "~@7 x",
})).gain(0.14)

// drums · crash
const crash = s("cr").struct("<~@14 A ~@15 A ~@7 A ~@19 A ~@7 A ~@39 A ~@7 A ~@18 B ~@2>".pickRestart({
  A: "x", B: "~@7 x",
})).gain(0.32)

// drums · ride
const ride = s("rd").struct(`<
  ~@13 A B C@15 B C@7 B C@26 D B C@8 B C@8 B C@8 B C@8 B C@8 B C D C@6 B C@8 B C@4 E ~
>`.pickRestart({
  A: "~@7 x", B: "~ x!3", C: "x!4", D: "x ~ x ~ x ~ x!2", E: "x",
})).gain(0.27)

// drums · tambourine
const tambourine = s("tb").struct("<~@6 [~@3 x]!32 [x ~@2 x] [~@3 x]!95 ~@2>").gain(0.36)

// drums · shaker
const shaker = s("sh").struct("<~@12 A B ~@70 C D E F E F ~@4 E F E F ~@38>".pickRestart({
  A: "~ x!2 ~ x ~@2 x", B: "x!2 ~@2", C: "~ x ~ x ~ x ~ x", D: "~ x ~ x ~@4", E: "~ x!2 ~@2 x!3", F: "x ~@2 x!2 ~@3",
})).gain(0.27)

stack(
  bass, pad_poly, distortion_guitar, overdriven_guitar, overdriven_guitar_2, electric_guitar_muted, bass_2, kick, snare,
  clap, low_tom, hihat, hihat_soft, crash, ride, tambourine, shaker
)

More by Michael Jackson