Strudelify

The Way I Am

Eminem

KeyA minorTempo87 bpm
0:00/0:00
// The Way I Am — Eminem
// 86.5 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 106 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 30.
setcpm(86.5/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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.

// other · tubular bells
const tubular_bells = note(`<
  A B@2 ~ C D@2 ~ E F@2 ~@5 A G ~@2 H G ~@2 A G ~@2 H G ~@2 A I J K L M J K N G ~@2 A G ~@2 H G ~@2 A G ~@2 H G ~@2 A I
  J K L M J K N G ~@2 A G ~@2 H G ~@2 A G ~@2 H G ~@2 A I J K L M J K N G ~@2 A G ~@4
>`.pickRestart({
  A: "~@12 e4 ~@3", B: "[a4@3 ~]/2", C: "~@3 e4", D: "a4/2", E: "~@6 c5 b4", F: "[a4@15 ~]/2", G: "a4@15 ~",
  H: "~@12 c5 ~ b4 ~", I: "~@8 b4 ~@7, a4@15 ~", J: "b4 ~@3 d5 ~ c5 ~ a4 ~@5 e4 ~", K: "c5 ~@7 a4 ~@7",
  L: "g#4 ~@3 e4 ~@3 a4 ~@7", M: "a4 ~@7 b4 ~@7", N: "g#4 ~@3 e4 ~@3 a4 ~@3 c5 ~ b4 ~",
})).s("gm_tubular_bells").gain(0.48)

// 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 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 ~
>`.pickRestart({
  A: "a1 b1", B: "b1@2 d2 c2 a1@3 e1", C: "c2 a1", D: "g#1 e1 a1@2",
})).s("gm_electric_guitar_jazz").gain(0.32)

// other · distortion guitar
const distortion_guitar = note("<~@32 [~@3 e2] ~@27 [~@3 e2] ~@27 [~@3 e2] ~@17>").s("gm_distortion_guitar").gain(0.36)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B
  A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B ~
>`.pickRestart({
  A: "~@7 x ~@7 x", B: "~@3 x ~@3 x ~@7 x",
})).gain(0.8)

// drums · clap
const clap = s("cp").struct(`<
  ~ A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B
  A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@3 x",
})).gain(0.8)

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B
  A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B ~
>`.pickRestart({
  A: "~ x!6 ~@2 x!6 ~", B: "~ x!2 ~@2 x!3 ~ x!2 ~@2 x!3",
})).gain(0.8)

stack(tubular_bells, bass, distortion_guitar, kick, clap, snare, hihat)

More by Eminem