Strudelify
A Warm Place cover art

1994 · The Downward Spiral

A Warm Place

Nine Inch Nails

KeyG minorTempo140 bpm
0:00/0:00
// A Warm Place — Nine Inch Nails
// 140 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 112 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Overdriven Guitar.
setcpm(140/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 · rock organ
const rock_organ = note(`<
  A@8 ~@11 B@2 C@2 D@2 E@2 B@2 C@2 D@2 E@2 B@2 C@2 D@2 E@2 B@2 C@2 D@2 E@2 B@2 C@2 D@2 E@2 F@2 G@2 F@2 G@2 C@2 D@2 H@2
  I@2 C@2 D@2 H@2 I@2 ~@29
>`.pickRestart({
  A: "d5/8", B: "d4/2", C: "c4/2", D: "bb3/2", E: "f3/2", F: "g5/2", G: "d5/2", H: "ab3/2", I: "eb3/2",
})).s("gm_rock_organ").gain(0.37)

// other · pan flute
const pan_flute = note(`<
  A@8 ~@11 B@2 C@2 D@2 E@2 B@2 C@2 D@2 E@2 B@2 C@2 D@2 E@2 B@2 C@2 D@2 E@2 B@2 C@2 D@2 E@2 ~@8 C@2 D@2 F@2 G@2 C@2 D@2
  F@2 G@2 C@2 D@2 F@2 G@2 C@2 D@2 F@2 G@2 C@2 D@2 F@2 H@6 ~
>`.pickRestart({
  A: "d4/8", B: "d3/2", C: "c3/2", D: "bb2/2", E: "f2/2", F: "ab2/2", G: "eb2/2", H: "eb2/6",
})).s("gm_pan_flute").gain(0.36)

// bass · acoustic bass
const bass = note(`<
  ~@19 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 E@2 F@2 E@2 F@2 B@2 C@2 E@2 F@2
  B@2 C@2 E@2 F@2 B@2 C@2 E@2 F@2 B@2 C@2 E@2 F@2 B@2 C@2 E@2 F@2 ~@5
>`.pickRestart({
  A: "d2 ~ d2 ~ d2 ~ d2 ~", B: "c2 ~ c2 ~ c2 ~ c2 ~", C: "bb1 ~ bb1 ~ bb1 ~ bb1 ~", D: "f1 ~ f1 ~ f1 ~ f1 ~",
  E: "ab1 ~ ab1 ~ ab1 ~ ab1 ~", F: "eb1 ~ eb1 ~ eb1 ~ eb1 ~",
})).s("gm_acoustic_bass").gain(0.48)

// other · acoustic guitar nylon · "Acoustic Guitar (nylon)"
const acoustic_guitar_nylon = note(`<
  ~@10 A B C D B C E B F G ~@15 H@4 I@4 H@4 I@4 H@4 I@4 ~@32 J@4 K@4 L@4 M@4 ~@5
>`.pickRestart({
  A: "~@21 d3 f3@2", B: "d3!4", C: "d3@3 d3!2 f3 d3@3 d3@3", D: "d3@3 d3@3 d3@3 d3!2 f3",
  E: "d3@3 d3@3 d3@3 d3 ~ f3, ~@21 d3@2 ~", F: "d3@5 ~ d3@2 d3@2 f3@2 d3@6 d3@6", G: "~ d3!2 ~",
  H: "[d4@12 ~@6 e4@12 ~@5 f4@12 g4@14 ~@5 a4@12 ~@6 bb4@12]/4", I: "[c5@30 d5@6 a4@6 c5@53 ~]/4",
  J: "[c4@12 ~@6 d4@12 ~@5 eb4@12 f4@14 ~@5 g4@12 ~@6 ab4@12]/4", K: "[bb4@30 c5@6 g4@6 bb4@53 ~]/4",
  L: "[c4@12 ~@6 d4@12 ~@5 eb4@12 f4@14 ~@5 g4@12 ~@6 bb3@12]/4", M: "[bb3@30 ab3@6 g3@6 eb4@53 ~]/4",
})).s("gm_acoustic_guitar_nylon").gain(0.25)

// chords · accordion · "Harmonica"
const accordion = note("<~@59 A@2 B@2 A@2 B@2 ~@45>".pickRestart({
  A: "[ab3,ab4]/2", B: "[eb4,g4,bb4]/2",
})).s("gm_accordion").gain(0.04)

// other · church organ
const church_organ = note("<~@83 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@7>".pickRestart({
  A: "[g1,c3]/2", B: "[bb1,bb2]/2", C: "[ab1,ab2]/2", D: "[eb1,eb2]/2", E: "[eb1,eb2]/7",
})).s("gm_church_organ").gain(0.12)

// bass · lead 2 sawtooth · "Lead 2 (sawtooth)"
const bass_2 = note("<~@83 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@7>".pickRestart({
  A: "c2/2", B: "bb1/2", C: "ab1/2", D: "eb1/2", E: "eb1/7",
})).s("gm_lead_2_sawtooth").gain(0.17)

stack(rock_organ, pan_flute, bass, acoustic_guitar_nylon, accordion, church_organ, bass_2)

More by Nine Inch Nails