Strudelify

Reptile

Nine Inch Nails

KeyD minorTempo132 bpm
0:00/0:00
// Reptile — Nine Inch Nails
// 132 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 120 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(132/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.

// other · lead 5 charang · "Lohrey"
const lead_5_charang = note(`<
  A@48 B ~@3 B ~@3 B ~@3 B ~@11 A@16 B ~@3 B ~@3 B ~@3 B ~@3 B ~@3 B ~@3 B ~@3 B ~@3
>`.pickRestart({
  A: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~", B: "[c3,f3,a3]@7 ~ [d3,g3,b3]@8",
})).s("gm_lead_5_charang").gain(0.64)

// other · lead 2 sawtooth · "Wooley"
const lead_2_sawtooth = note(`<
  ~@48 A@3 B A@3 B A@3 B A@3 B ~@24 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: "d4!3 c4 d4!3 c4", B: "d4!3 c4 d4 a4 d5 ~",
})).s("gm_lead_2_sawtooth").gain(0.36)

// other · lead 5 charang · "Finck"
const lead_5_charang_2 = note(`<
  ~@20 A@4 ~@4 A@20 ~@2 B@2 ~@2 B@2 ~@2 B@2 ~@2 B@2 ~@8 A@16 ~@2 B@2 ~@2 B@2 ~@2 B@2 ~@2 B@2 ~@2 B@2 ~@2 B@2 ~@2 B@2 ~@2
  B@2
>`.pickRestart({
  A: "[[d2,d3]@2 [f3,f4] [bb2,bb3]@4 ~]/2", B: "[~@3 c4@3 gb3@2]/2",
})).s("gm_lead_5_charang").gain(0.4)

// other · french horn · "Wooley III"
const french_horn = note("<~@64 [c4!4]!4 [c4!4, c5] [c4!4, d5] [c4!4, e5] [c4!4, gb5] ~@48>")
  .s("gm_french_horn").gain(0.41)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@47 [~@6 x!2] ~@39 [~@6 x!2] ~@32>").gain(0.41)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@16 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ B@16 ~@24 B@32
>`.pickRestart({
  A: "x!16", B: "x!8",
})).gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<~@47 [~@4 x!2 ~@2] ~@39 [~@4 x!2 ~@2] ~@32>").gain(0.41)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@31 B ~@25 A ~ A ~ A ~ A ~ A ~ A ~ A ~ B ~@32
>`.pickRestart({
  A: "~@3 x", B: "~@4 x!4",
})).gain(0.41)

stack(lead_5_charang, lead_2_sawtooth, lead_5_charang_2, french_horn, kick, snare, low_tom, hihat, mid_tom, crash)

More by Nine Inch Nails