Strudelify
That's What I Get cover art

1989 · Pretty Hate Machine

That's What I Get

Nine Inch Nails

KeyG minorTempo110 bpm
0:00/0:00
// That's What I Get — Nine Inch Nails
// 110 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 3 "Extra Bass (Timpani)" named as a bass, played on electric bass finger (its timpani patch is not one)
// note: Full arrangement: all 124 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · harpsichord
const harpsichord = note(`<
  ~@8
  [f4 g4!2 ~ g4 ~ f4 ~ g4@2 ~ bb4 ~ g4 ~ f4]!3
  [f4 g4!2 ~ g4 ~ f4 ~ g4@2 ~ db5 ~ g4 ~ f4]
  [f4 g4!2 ~ g4 ~ f4 ~ g4@2 ~ bb4 ~ g4 ~ f4]!3
  [f4 g4!2 ~ g4 ~ f4 ~ g4@2 ~ db5 ~ g4 ~@2]
  ~@108
>`).s("gm_harpsichord").gain(0.41)

// bass · electric bass finger · "Extra Bass (Timpani)"
const bass = note(`<
  ~@32 A B C D A B C D E@2 ~@16 A B C D A B C D ~@25 A B C D A B C D A B C D A B C D F G H I F G H I F G H I F G H I ~
>`.pickRestart({
  A: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~", B: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~",
  C: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~", D: "bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~",
  E: "g4 ~ g4!2 ~ g4 ~ g5 ~ g5!2 ~ g5!4",
  F: "[g2,f4] g4 g2 g4 [g2,g4] ~ [g2,g4] ~ g2 ~ [g2,g4] g4 [g2,db5] a4 [g2,f4] g4", // G7 G Gdim G7
  G: "[f2,f4] g4 f2 g4 [f2,g4] ~ [f2,g4] ~ f2 ~ [f2,g4] g4 [f2,db5] a4 [f2,f4] g4", // F Fsus2 Db F
  H: "[c3,f4] g4 c3 g4 [c3,g4] ~ [c3,g4] ~ c3 ~ [c3,g4] g4 [c3,db5] a4 [c3,f4] g4", // F5 C5 Dbmaj7 F5
  I: "[bb2,f4] g4 bb2 g4 [bb2,g4] ~ [bb2,g4] ~ bb2 ~ [bb2,g4] g4 [bb2,db5] a4 [bb2,f4] g4", // Bb5 Eb Bbm Bb5
})).s("gm_electric_bass_finger").gain(0.51)

// bass · electric bass finger · "Lead Bass (fingered)"
const bass_2 = note(`<
  ~@16 A@17 B C D A B C D ~@2 A@17 B C D A B C D ~@8 A@16 ~ 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: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~", B: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~",
  C: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~", D: "bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~ bb2 ~",
})).s("gm_electric_bass_finger").gain(0.41)

// drums · kick
const kick = s("bd").struct("<~@32 [x ~@4 x ~@2]!8 ~@18 [x ~@4 x ~@2]!8 ~@25 [x ~@2 x ~@6 x ~@2 x ~@2]!32 ~>")
  .gain(0.41)

// drums · snare
const snare = s("sd").struct("<~@24 A ~ A ~ A ~ A ~@19 A ~ A ~ A ~ A ~@33 B C@24 D@5 E D@2 ~>".pickRestart({
  A: "~@7 x", B: "~@4 x ~@3 x ~ x ~ x ~ x!2", C: "~ x ~ x", D: "~@4 x ~@7 x ~@2 x", E: "x ~@3 x ~@7 x ~@2 x",
})).gain(0.41)

// drums · low tom
const low_tom = s("lt").struct("<~@40 [~@15 x]!2 ~@82>").gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<~@16 [x!2 ~@2 x ~@3]!16 ~@10 [x!2 ~@2 x ~@3]!16 ~@16 [x ~ x ~ x!2 ~@2]!16 ~@34>")
  .gain(0.41)

// drums · high tom
const high_tom = s("ht").struct("<~@8 [~@2 x!2] [x ~ x!2]!7 [~@3 x ~@2 x ~]!16 ~@10 [~@3 x ~@2 x ~]!16 ~@66>")
  .gain(0.41)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@24 A ~ A ~ A ~ A ~ B@8 C@2 ~@8 A ~ A ~ A ~ A ~ B@8 ~@8 D@16 E ~@24 C@8 ~
>`.pickRestart({
  A: "~@7 x", B: "x!8", C: "~@15 x", D: "~ x ~ x ~@3 x", E: "~ x ~@2",
})).gain(0.41)

// drums · tambourine
const tambourine = s("tb").struct("<~@32 [~@4 x ~@4 x ~@2 x ~@3]!8 ~@18 [~@4 x ~@4 x ~@2 x ~@3]!8 ~@58>").gain(0.41)

stack(harpsichord, bass, bass_2, kick, snare, low_tom, mid_tom, high_tom, ride_bell, tambourine)

More by Nine Inch Nails