Strudelify

I Do Not Want This

Nine Inch Nails

KeyE majorTempo120 bpm
0:00/0:00
// I Do Not Want This — Nine Inch Nails
// 120 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 8 overdriven guitar (copy of ch 2 overdriven guitar)
// note: Full arrangement: all 140 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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.

// chords · piano
const piano = note(`<
  A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 ~@8 A@2 C@2 A@2 B@2 ~@16 D@2 E@2 D@2 E@2 D@2 E@2 D@2 E@2 ~@8 F@6 G@3 ~@59
>`.pickRestart({
  A: "[~ b3 c4 ~ f#4@12, ~@3 b3@13]/2",
  B: "[~@3 a3@4 b3@4 ~@18 a3@15 ~@20, ~@11 a3@16 ~@37, ~@15 d#4@47 ~@2, ~@23 e4@40 ~]/2",
  C: "[~@7 b3@5 ~@17 a3@15 ~@20, ~@4 a3@5 ~@3 a3@16 ~@36, ~@16 d#4@47 ~, ~@3 e4@5]/2",
  D: "[~@3 b3@4 c4@4 ~@5 f#4@48, ~@3 b3@13]/2",
  E: "[~@3 a3@4 b3@4 ~@17 a3@15 ~@21, ~@11 a3@16 ~@37, ~@15 d#4@47 ~@2, ~@23 e4@40 ~]/2",
  F: "[~@3 b3@4 c4@4 ~@13 a4@43 a3@4 b3@4 ~@56 b3@4 c4@4 ~@13 a4@40, ~@12 b3@52 ~@11 a3@16 ~ a3@15 ~@5 f#4@23 ~@9 f#4@48, ~@16 f#4@48 ~@15 d#4@47 ~@14 b3@52, ~@87 e4@40 ~@65, ~@25 d5@8 ~@15]/6",
  G: "[~@3 a3@4 b3@4 ~@37 f#4@23 ~@25, ~@11 a3@16 ~ a3@15 ~@53, ~@15 d#4@47 ~@34, ~@23 e4@40 ~@33, ~@9 d5@8 ~@7]/3",
})).s("gm_piano").gain(0.33)

// chords · overdriven guitar
const overdriven_guitar = note("<~@32 A@8 ~@40 A@2 B A@3 B A ~@16 A@2 B A@3 B A ~@7 C@8 D@4 C@4 D@4 ~>".pickRestart({
  A: "~ [c2,a2] [g#1,e2]!2 [c2,a2] [g#1,e2]!2 [c2,a2]", // F C#m F C#m F
  B: "~@5 [c2,a2]@3 [g#1,e2]@4 ~ [g#1,e2]@3 [c2,a2]@4 [g#1,e2]@4 [g#1,e2]@4 [c2,a2]@4", C: "[~ c2@15]/2",
  D: "[~@5 c2@60 ~@3 c2@60]/4",
})).s("gm_overdriven_guitar").gain(0.64)

// chords · muted trumpet
const muted_trumpet = note("<~@88 A@8 B C@8 D@8 E@16 F@8 G@3>".pickRestart({
  A: "~ [f-1,b-1,e0]@6 ~", // E
  B: "~@4 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@5, ~@4 [g#1,d#2] ~@10 [g#1,a1,a#1,b1,c2,c#2,d2,e2]@15 ~@2", // A F# G#5
  C: "[~@5 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@7 [g#1,a1,a#1,b1,c2,c#2,d2,e2]@13 [f#2,g#2,a#2]@8 ~ [a#1,c2,c#2]@3 ~@7 d#2@2 ~@11 [f#2,g#2]@4, ~@5 [g#1,d#2] ~@9 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@9 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@9 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@9 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@9 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@9 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@30 [a1,b1,d2,e2]@3 ~@20 a#2@5, ~@16 d#2@2 ~@30 d#2@2 ~@30 d#2@2 ~@30 d#2@2 ~@30 d#2@2 ~@30 d#2@2 ~@29 d#2@2 ~@20 [g#1,d#2] ~@9 [g#1,a1,a#1,b1,c2,c#2,d2,e2]@15 ~@2]/8", // A C#m F# A C#m F# A C#m …
  D: "[~@5 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@4, ~@5 [g#1,d#2] ~@9 a1@15 ~@17 a1@15 ~@17 a1@15 ~@17 a1@15 ~@17 a1@15 ~@17 a1@15 ~@17 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@9 a1@15 ~@2, ~@16 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@10 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@10 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@10 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@10 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@10 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@10 d#2@2 ~@30 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~]/8", // A F# A F# A F# A F# …
  E: "[~@5 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@4, ~@5 [g#1,d#2] ~@9 a1@15 ~@17 a1@15 ~@17 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@9 a1@15 ~@17 a1@15 ~@17 a1@15 ~@17 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@9 a1@15 ~@2, ~@16 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@10 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@10 d#2@2 ~@30 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@10 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@10 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@10 d#2@2 ~@30 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~]/8", // A F# A F# A C#m F# A …
  F: "[~@5 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 d#2@2 ~@10 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@7 [g#1,a1,a#1,b1,c2,c#2,d2,e2]@13 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@7 [g#1,a1,a#1,b1,c2,c#2,d2,e2]@13 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@4, ~@5 [g#1,d#2] ~@9 a1@15 ~@17 a1@15 ~@17 d#2@2 ~@31 d#2@2 ~@30 d#2@2 ~@30 d#2@2 ~@29 d#2@2 ~@31 d#2@2 ~@14, ~@16 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@10 [g#1,a#1,b1,c2,c#2,d2,e2]@15 ~@6 [g#1,d#2] ~@31 [g#1,d#2] ~@9 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@9 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@9 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@31 [g#1,d#2] ~@9 [a1,a#1,b1,d2]@15 ~@2]/8", // A F# A F# A F# A C#m …
  G: "[~@5 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@9 [a1,a#1,b1,c2,c#2,d2,e2]@3 ~@8 [g#1,c2,c#2,e2]@12 [f#2,g#2,a#2]@10 ~@26, ~@5 [g#1,d#2] ~@9 [a1,a#1,b1,d2]@15 ~@7 [g#1,d#2] ~@9 [a1,a#1,b1,d2]@15 ~@34, ~@8 d#2 ~@15 d#2 ~@23]/3", // A C#m F# A C#m F# G#5 A#maj7 …
})).s("gm_muted_trumpet").gain(0.37)

// chords · pad warm · Bm A#m Dm D#m7 G Dm7 Em F# …
const pad_warm = note(`<
  ~@112
  [~@5 a-1@7 [b-1,d0]@8 [a#-1,c#0]@8 ~@4, ~ c0@2 ~@5]!4
  [~@5 [d-1,f-1,a-1]@7 ~ e-1@7 [d#-1,f#-1,a#-1,c#0]@8 ~@4, ~ c0@2 [g-1,b-1,d0]@2 ~@3]!2
  [~@5 [d-1,f-1,a-1,c0]@7 ~ [e-1,g-1,b-1]@7 ~ d#-1@8 ~@3, ~@3 d0@2 [f#-1,a#-1,c#0]@2 ~]
  [~@5 [d-1,f-1,a-1,c0]@7 ~ [e-1,g-1,b-1]@6 ~@2 d#-1@8 ~@3, ~@4 [e0,g0,b0,d1]@8 [d0,f0,a0,c1,e1]@7 d#1@8 ~@5, ~@5 [f#-1,a#-1,c#0,e0,g#0,b0]@2 ~]!2
  [~@5 [d-1,f-1,a-1,c0]@7 ~ [e-1,g-1,b-1,d0]@7 ~ [d#-1,f#-1]@8 ~@3, ~ [e0,g0,b0,d1]@2 [f0,a0,c1,e1]@2 [a#-1,c#0,e0,g#0,b0,d#1]@2 ~]!2
  ~@17
>`).s("gm_pad_warm").gain(0.54)

// other · brass section
const brass_section = note("<~@123 A@8 B@8 ~>".pickRestart({
  A: "[~@4 c5@12 b4@21 a4@11 a#4@8 a4@11 ~ c5@12 b4@21 a4@11 a#4@8 a4@11 ~ c5@12 b4@21 a4@11 a#4@8 a4@11 ~ c5@12 b4@21 a4@11 a#4@8 a4@8]/8",
  B: "[~@5 c5@11 b4@21 a4@11 a#4@8 a4@11 ~@2 c5@11 b4@21 a4@11 a#4@8 a4@11 ~ c5@12 b4@21 a4@11 a#4@8 a4@11 ~ c5@12 b4@21 a4@11 a#4@8 a4@8]/8",
})).s("gm_brass_section").gain(0.47)

// chords · lead 2 sawtooth
const lead_2_sawtooth = note("<~@16 A@8 ~@16 A@8 ~@16 A@8 ~@16 A@51 ~>".pickRestart({
  A: "~ [f-1,b-1,e0]@6 ~", // E
})).s("gm_lead_2_sawtooth").gain(0.54)

// drums · kick
const kick = s("bd").struct("<A@24 B@12 A@4 B@4 A@4 B@4 A@4 B@4 A@5 C@7 A@12 C@43 D@4 C@4 D@4 ~>".pickRestart({
  A: "~@7 x ~@3 x ~@8 x ~@3 x ~@7", B: "~@7 x ~@3 x ~@7 x ~@3 x ~@8", C: "~@2 x!2 ~ x!2 ~",
  D: "~@8 x ~@3 x ~@8 x ~@3 x ~@6",
})).gain(0.37)

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

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~@16
  [~@4 x ~ x!2 ~@2 x!2 ~@2 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@3]!2
  [~@2 x!13 ~]!2
  [~@4 x ~ x!2 ~@2 x!2 ~@2 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@3]
  [~@2 x!13 ~]
  [~@4 x ~ x!2 ~@2 x!2 ~@2 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@3]
  [~@2 x!13 ~]
  ~@116
>`).gain(0.37)

// drums · open hat
const open_hat = s("oh").struct("<~@64 [~@11 x ~@12 x ~@7] [~@3 x ~@2 x ~]!7 ~@68>").gain(0.37)

// drums · ride
const ride = s("rd").struct("<~@32 A B@7 ~@40 A B@7 ~@16 A B@7 ~@28>".pickRestart({
  A: "~ x!7", B: "x!8",
})).gain(0.37)

stack(
  piano, overdriven_guitar, muted_trumpet, pad_warm, brass_section, lead_2_sawtooth, kick, snare, pedal_hat, open_hat,
  ride
)

More by Nine Inch Nails