Strudelify

Under the Influence

Eminem

KeyB♭ majorTempo100 bpm
0:00/0:00
// Under the Influence — Eminem
// 100 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 134 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 guitar jazz
const bass = note(`<
  A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A E ~@2 C D A
  B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C F G B C D A B C F A B C D A B C D
  A B C D A B C D A B C D A B C D
>`.pickRestart({
  A: "eb1 bb0 eb1 f1 gb1 f1 eb1 bb0", B: "b0 ~@2 b0 bb0 ~@2 f1", C: "eb1 bb0 eb1 f1 gb1 f1 eb1 bb1",
  D: "b1 ~@2 b1 bb1 ~@2 f1", E: "b0 ~@2 b0 bb0 ~@3", F: "b1 ~@2 b1 bb1 ~@3", G: "~@2 eb1 f1 gb1 f1 eb1 bb0",
})).s("gm_electric_guitar_jazz").gain(0.32)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  A@2 B@4 A@2 ~@8 A@2 C@4 ~@14 A@2 B@4 A@2 ~@8 A@2 ~@2 B@4 A@2 ~@24 A@2 B@4 A@2 ~@16 A@2 B@4 A@4 B@4 A@6 D ~@3
>`.pickRestart({
  A: "[bb6@3 b6]/2", B: "[bb6@7 b6]/4", C: "[bb6@7 ~]/4", D: "bb6@3 ~",
})).s("gm_string_ensemble_1").gain(0.08)

// other · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@130 A B C@2>".pickRestart({
  A: "~@3 f7", B: "gb7 ab7", C: "[bb7@31 ~]/2",
})).s("gm_string_ensemble_1").gain(0.04)

// other · oboe
const oboe = note(`<
  ~@3 A B C B D ~@3 A B C B D ~@19 A B C B D B C B D ~@65 A B C B D B C B D B C B D B C B D ~@8
>`.pickRestart({
  A: "~@3 d4", B: "~@3 bb3", C: "~@6 eb4@2 bb3 ~@3 d4@4", D: "~@6 eb4 ~ bb3@2 ~@2 d4@4",
})).s("gm_oboe").gain(0.28)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A B C D A B A B A B A B A B A D A B A B A B A B E B A B A B A B A B A B A B C ~ C ~ A B A B A B ~@2 A B A
  B A B E D E D E D E D E D E 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 F
  A B A B A B A F A B A B G ~@3
>`.pickRestart({
  A: "x!2 ~@2 x!2 ~@2", B: "x ~@2 x!2 ~@3", C: "x", D: "~@3 x!2 ~@3", E: "~@4 x!2 ~@2", F: "x ~@2 x!2 ~ x!2",
  G: "x!2 ~@6",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct("<A@8 ~ A@35 ~@3 B A@6 ~@2 A@74 ~@4>".pickRestart({
  A: "~ x ~ x", B: "~@3 x",
})).gain(0.8)

// drums · hihat
const hihat = s("hh").struct(`<
  A@7 B ~ C A@5 B A@5 C A B A@6 C B A@11 B ~@2 D E A@3 B A@2 ~@2 A@5 B C@7 F C@3 A@4 B A@7 B A@7 B A@7 G C A@6 G A@20
  ~@4
>`.pickRestart({
  A: "x!8", B: "x!7 ~", C: "~@2 x!6", D: "x", E: "~@7 x", F: "~@2 x!5 ~", G: "x!6 ~@2",
})).gain(0.8)

stack(bass, string_ensemble_1, string_ensemble_1_soft, oboe, kick, snare, hihat)

More by Eminem