Strudelify

Remember the Time

Michael Jackson

KeyB♭ majorTempo102 bpm
0:00/0:00
// Remember the Time — Michael Jackson
// 102 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 73 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(102/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 · synth bass 1 · "Bass"
const bass = note(`<
  A B C D E B C D F B C D E B C D G B C D E B C D H@4 I@4 G B C D E B C D G B C D E B C D H@4 I@4 J@7 K H@4 I@4 L
>`.pickRestart({
  A: "eb4@4 eb4@4 db4@4 c4@3 ~", B: "~@5 g3 c4 ~", C: "~@4 c3 eb3 f3 ~", D: "~@5 c3 f3 ~", E: "~@4 eb3@4 db3@4 c3@3 ~",
  F: "[f4,f5]@4 eb3@4 db3@4 c3@3 ~, ~@2 eb5 ~@5", G: "f4@4 eb4@4 db4@4 c3@3 ~",
  H: "[f4@4 eb4@4 db4@4 c3@6 c3@6 c3@2 g3@2 c4@6 c4@6 c3@2 eb3@2 f3@6 f3@6 c3@2 eb3@2 f3 ~ f3 ~]/4",
  I: "[g3 ~ g3 ~ ab3 ~ ab3 ~ db4@4 c3@6 c3@6 c3@2 g3@2 c4@6 c4@6 c3@2 eb3@2 f3@6 f3@8 c3@2 f3@2 ~@2]/4",
  J: "[f4@2 eb4@2 db4@2 c4@7 eb3 f3@5 ~@2 db3 c3@7 eb3 f3@5 ~@2 db3 c4@7 eb3 f3@7 ~ db4 ~]/7",
  K: "db4@2 ~@2 db4@2 ~@2 db4@2 ~@2 c3 ~@3", L: "f4@4 eb4@4 db4@2 f4!2 ~@4",
})).s("gm_synth_bass_1").gain(0.41)

// other · piano
const piano = note("<A@7 B@2 ~@7 C@8 D E F G@2 E F H ~@8 C@8 D E F G@2 E I ~ J@8 D E F G@2 E F H ~>".pickRestart({
  A: "[f5@4 eb5@4 db5@4 ~@2 bb4 ab4@2 bb4 ab4@2 bb4@2 bb4@2 bb4@6 bb4 ab4@2 bb4 ab4@2 bb4@2 bb4@2 bb4@6 eb4 c4@2 eb4 c4@2 eb4@2 eb4@2 eb4@6 eb4 c4@2 eb4 c4@2 eb4@2 eb4@2 eb4@6 bb4 ab4@2 bb4 ab4@2 bb4@2 bb4@2 bb4@6 bb4 ab4@2 bb4 ab4@2 bb4@2 bb4@2 bb4@6 eb4 c4]/7",
  B: "[~ eb4 c4@2 eb4@2 eb4@2 eb4@2 c4@2 f4@10 ~@10]/2",
  C: "[~@14 c5 bb4@2 ab4 bb4@2 ab4@2 bb4@8 c5 bb4@2 ab4 bb4@2 ab4@2 bb4@8 c5 bb4@2 ab4 bb4@2 ab4@2 bb4@8 c5 bb4@2 ab4 bb4@2 ab4@2 bb4@8 c5 bb4@2 ab4 bb4@2 ab4@2 bb4@8 c5 bb4@2 ab4 bb4@2 ab4@2 bb4@8 c5 bb4@2 ab4 bb4@2 ab4@2 bb4@7 ~@3]/8",
  D: "~@6 bb4!2", E: "ab4 bb4@5 f4 ab4", F: "bb4 c5 bb4 eb4 f4 ab4 bb4!2", G: "[ab4 bb4@10 eb4 f4 ab4 bb4!2]/2",
  H: "ab4@2 bb4@11 ~@3", I: "bb4 c5 bb4 ~@5",
  J: "[~@12 bb4@3 bb4@3 bb4@4 bb4@4 ab4@2 c5@3 c5@3 c5@4 c5@4 ab4@2 bb4@3 bb4@3 bb4@4 bb4@4 ab4@2 c5@3 c5@3 c5@4 c5@4 ab4@2 bb4@3 bb4@3 bb4@4 bb4@4 ab4@2 c5@3 c5@3 c5@4 c5@4 ab4@18 ~@4]/8",
})).s("gm_piano").gain(0.15)

// other · synth drum · "Synth-drum"
const synth_drum = note("<~@15 A B ~@6 A C ~@6 A D@3 ~@4 A B ~@6 A C ~@6 A C ~@6 A C ~@6 A C>".pickRestart({
  A: "~@13 c5 a4@2", B: "f4@3 g4 b4@2 c5@2 a4@2 f4@4 ~@2", C: "f4@3 g4 b4@2 c5@2 a4@2 f4@2 ~@4",
  D: "[f4@3 g4 b4@2 c5@2 a4@2 f4@32 ~@6]/3",
})).s("gm_synth_drum").gain(0.41)

// drums · ride bell
const ride_bell = s("rd").struct("<~@2 A ~ A ~ A ~@3 B ~ B ~ B ~@19 B ~ B ~ B ~@34>".pickRestart({
  A: "~@7 x ~ x ~@6", B: "~@5 x ~@2",
})).gain(0.41)

// drums · splash
const splash = s("cr").struct("<~@2 [~@3 x!3 ~@2] ~ [~@3 x!3 ~@2] ~ [~@3 x!3 ~@2] ~@66>").gain(0.31)

// drums · bongos
const bongos = s("bongo:18").struct("<~@72 [~@11 x ~@4]>").gain(0.81)

// drums · congas
const congas = s("conga:33").struct("<[~@3 x] [~ x ~ x]!71 [~ x ~@2]>").gain(1.31)

// drums · agogo bells
const agogo_bells = s("agogo:2").struct(`<
  [~@15 x]
  [~ x ~@9 x ~@3 x]!62
  [~ x ~@9 x ~@4]
  [~@15 x]
  [~ x ~@9 x ~@3 x]!7
  [~ x ~@14]
>`).gain(1.96)

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  [~@7 x]
  [~ x ~@3 x ~ x]!62
  [~ x ~@3 x ~@2]
  [~@7 x]
  [~ x ~@3 x ~ x]!7
  [~ x ~@3 x ~@2]
>`).gain(1.56)

// drums · shaker
const shaker = s("sh").struct("<~ [~@3 x ~@4]!63 ~ [~@3 x ~@4]!8>").gain(0.31)

stack(bass, piano, synth_drum, ride_bell, splash, bongos, congas, agogo_bells, cabasa, shaker)

More by Michael Jackson