Strudelify
The Perfect Drug cover art

Lost Highway

The Perfect Drug

Nine Inch Nails

KeyF minorTempo150 bpm
0:00/0:00
// The Perfect Drug — Nine Inch Nails
// 150 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 3 acoustic guitar steel (copy of ch 2 acoustic guitar steel); ch 8 overdriven guitar (copy of ch 7 overdriven guitar)
// note: Full arrangement: all 194 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(150/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.

// bass · electric bass finger · "Perfect Drug"
const bass = note(`<
  A B C B C B D B C B C B C B D B C B C B C B D ~@7 E ~@8 F C G C B C B C B C B D B C B C B C B D ~@7 E H ~@47 I J@5 K
  J@2 L J I ~@19 M@2 N O M P Q R M@2 N O M P Q R M@2 N O M P Q R M@2 N O M P Q R M@2 N O M P Q R ~@8
>`.pickRestart({
  A: "~@2 bb1 b1!3 c2!2", B: "eb1!3 e1!3 f1!2", C: "bb1!3 b1!3 c2!2", D: "ab1!3 a1!3 bb1!2", E: "~@5 c1 eb1 e1",
  F: "eb1 ~ eb1@2 eb1@2 e1@2 e1@2 e1@2 f1@2 f1@2", G: "eb1 [db1,eb1] eb1 e1!3 f1!2", H: "f1 ~", I: "~@6 f1@5 ~ ab1@4",
  J: "~@3 f1@2 ~ ab1@2", K: "~@7 f1@4 ~ ab1@3 ~", L: "~@6 f1@4 ~@2 ab1@3 ~", M: "f1!8", N: "eb1!8",
  O: "d1@2 d1@2 d1@2 d1@2 d1@2 d1@2 d1@2 d1 ~", P: "f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1 ~",
  Q: "ab1@2 ab1@2 ab1@2 ab1@2 ab1@2 ab1@2 ab1@2 ab1 ~", R: "eb2@2 eb2@2 eb2@2 eb2@2 eb2@2 eb2@2 eb2@2 eb2 ~",
})).s("gm_electric_bass_finger").gain(0.25)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B C B C B D B C B C B C B D B C B C B C B D ~@16 B C B C B C B C B C B D B C B C B C B D ~@135
>`.pickRestart({
  A: "~@4 [f3,bb3] ~ [gb3,b3] ~ [gb3,b3] ~ [gb3,b3] ~ [g3,c4] ~ [g3,c4] ~", // Bb5 B5 C5
  B: "[bb2,eb3] ~ [bb2,eb3] ~ [bb2,eb3] ~ [b2,e3] ~ [b2,e3] ~ [b2,e3] ~ [c3,f3] ~ [c3,f3] ~", // Eb5 E5 F5
  C: "[f3,bb3] ~ [f3,bb3] ~ [f3,bb3] ~ [gb3,b3] ~ [gb3,b3] ~ [gb3,b3] ~ [g3,c4] ~ [g3,c4] ~", // Bb5 B5 C5
  D: "[eb3,ab3] ~ [eb3,ab3] ~ [eb3,ab3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [f3,bb3] ~ [f3,bb3] ~", // Ab5 A5 Bb5
})).s("gm_acoustic_guitar_steel").gain(0.14).pan(0.2)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@146 A@2 B C D@2 E F A@2 B C D@2 E F A@2 B C D@2 E F A@2 B C D@2 E F A@2 B C D@2 E F ~@8
>`.pickRestart({
  A: "[~ g3@7, f2@31 ~, ~ c3@15]/2", B: "~ g3@3, eb2, ~ c3@7", C: "~ ab3@3, d2, ~ bb2@7",
  D: "[~@2 f3@13 ~, f2@15 ~, ~ c3@14 ~]/2", E: "[ab2,eb3]", F: "~ bb3@3, eb2, ~ bb2@7",
})).s("gm_electric_guitar_clean").gain(0.11).pan(0.2)

// bass · synth bass 1
const bass_2 = note("<~@103 A@12 ~@13 B C D E F G H I J K J G J K J L ~@50>".pickRestart({
  A: "f0!3 ~@2 f3!4 f2!4 f1!3", B: "f1 ~ f1 ~ f2 ~@4 f2 f1!2 f2 ~ f2 ~", C: "f1 ~ f1 ~ f2 ~@2 f1 ~ f2 f1 ~ f2 ~ gb2 ~",
  D: "f1 ~ f2 ~ f2 ~@4 f2 f1 ~ f2 ~@2 f2", E: "f1 ~ f1 ~ f2 ~ f2 ~@2 f2 f1 ~ f2 ~ gb2 ~",
  F: "f1 ~ f1 ~ f2 ~@4 f2 f1 ~ f2 ~ f1 f2", G: "f1 ~ f1 ~ f2 ~ f1 f2 ~ f2 f1 ~ f2 ~ gb2 ~",
  H: "f1 ~ f1 ~ f2 ~@4 f2 f1 ~ f2 ~@2 f2", I: "f1 ~ f1 ~ f2 ~ f1 f2 f1 f2 f1!2 f2 ~ gb2 ~",
  J: "f1 ~ f1 ~ f2 ~@4 f2 f1 ~ f2 f1 ~ f2", K: "f1 ~ f1 ~ f2 ~ f1 ~@2 f2 f1 ~ f2 ~ gb2 ~",
  L: "f1 ~ f1 ~ f2 ~ f1 ~@2 f2 f1 ~ f2 ~ [f2,gb2] ~", // Gbmaj7
})).s("gm_synth_bass_1").gain(0.14).pan(0.7)

// other · harpsichord
const harpsichord = note("<~@162 A@2 B C@3 D E F@2 G H@3 I J@2 ~ D K@3 L M N@2 O P@3 I Q>".pickRestart({
  A: "[~@2 f4 c5 ~ bb4@9 ~@2]/2", B: "~@4 f4@2 c5@3 ~@2 bb4@2 ~ ab4@2",
  C: "[~@2 ab4 ~ ab4@2 ~@2 g4@4 ab4@2 f4@5 ~ f4@2 c5@3 ~ bb4@13 ~@7 c4@2]/3", D: "eb4 ~@3 eb4@2 ~@2 eb4@4 c4@2 eb4@2",
  E: "~@2 eb4@2 ~@2 c4@2 eb4@3 ~ c4@4", F: "[~@4 f4@2 c5@2 ~@2 bb4@21 ~]/2", G: "~@4 f4@2 c5@3 ~ bb4@2 ~@2 ab4@2",
  H: "[~@2 ab4 ~ ab4@2 ~@2 g4@4 ab4@2 f4@4 ~@2 f4@2 c5@3 ~ bb4@17 ~@3 c4@2]/3",
  I: "eb4 ~ eb4 ~ eb4@2 ~@2 eb4@4 c4@2 eb4@2", J: "[~@2 eb4@3 ~ c4@2 eb4@2 ~@2 c4@13 ~@7]/2",
  K: "[~@2 eb4@2 ~@2 c4@2 eb4@2 ~@2 c4@21 ~@15]/3", L: "~@2 eb4 ~ eb4@2 ~@2 eb4@4 c4@2 eb4@2",
  M: "~@2 eb4@2 ~@2 c4@2 eb4@4 c4@3 ~", N: "[~@4 f4@2 c5@3 ~ bb4@16 ~@6]/2", O: "~@4 f4@2 c5@3 ~@2 bb4@3 ab4@2",
  P: "[~@2 ab4 ~ ab4@2 ~@2 g4@4 ab4@2 f4@4 ~@2 f4@2 c5@3 ~ bb4@16 ~@6]/3", Q: "~ eb4 ~ c4 eb4 ~ c4 ~",
})).s("gm_harpsichord").gain(0.07).pan(0.7)

// other · harpsichord · soft notes
const harpsichord_soft = note("<~@168 A ~@10 B A ~@2 B C ~@6 B ~@2>".pickRestart({
  A: "~@2 eb4 ~@13", B: "~@7 c4", C: "eb4 ~@15",
})).s("gm_harpsichord").gain(0.04).pan(0.7)

// bass · electric bass pick
const bass_3 = note("<~@31 A B@2 C ~@32 A B@2 C A B@2 C A B@2 C A B@2 C A B@2 C A B@2 C ~@103>".pickRestart({
  A: "f1!8", B: "[f1!7 f1@2 ab1!7]/2", C: "~ eb2!7",
})).s("gm_electric_bass_pick").gain(0.19)

// chords · synth strings 1
const synth_strings_1 = note("<~@170 A@2 B C D@3 E F@3 C D@3 G H I J K H I L M>".pickRestart({
  A: "[ab5 g5, f3]/2", B: "c5 d5, eb3", C: "eb5 bb5, d3", D: "[ab5 g5 [ab3,f5], f3@11 ~@5]/3", E: "[eb4,eb5]",
  F: "[ab5@2 g5@2 c5 d5, f3@2 eb3]/3", G: "[eb3,eb5]", H: "c5", I: "bb4", J: "eb4 f4", K: "g4 bb4", L: "ab3",
  M: "g3@15 ~",
})).s("gm_synth_strings_1").gain(0.08)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@31 A B@3 ~@32 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 ~@24 C@2 D C@9 ~@9 E ~ F ~ F ~ G H ~@50
>`.pickRestart({
  A: "[f2,c3,f3]!8", // F5
  B: "[[f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]@4 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@4 [eb3,bb3,eb4]@2 [eb3,bb3,eb4]@2 [eb3,bb3,eb4]@2 [eb3,bb3,eb4]@2 [eb3,bb3,eb4]@2 [eb3,bb3,eb4]@2 [eb3,bb3,eb4] ~]/3", // F5 Ab5 Eb5
  C: "[bb3,eb4] [c4,f4] ~@6", D: "[bb3,eb4] ~ [c4,f4]@2 ~@12", E: "g3@11 ~@5", F: "g3@5 ~@3", G: "g3@9 ~@7",
  H: "[db5,d5]", // Dmaj7
})).s("gm_overdriven_guitar").gain(0.12).pan(1)

// chords · piano
const piano = note(`<
  ~@31 A B C D ~@32 A B C D A B C D A B C D A B C D A B C D A B C D ~@79 E F G H I F J K L M N O L F P M I F Q R E M S ~
>`.pickRestart({
  A: "[f5,c6,f6] ~ [f5,c6,f6] ~ [f5,c6,f6] ~ [f5,c6,f6] ~ [f5,c6,f6] ~ [f5,c6,f6] ~ [c6,f6] ~ [f5,c6,f6] ~", // F5
  B: "[c6,f6] ~ [f5,c6,f6] ~ [f5,c6,f6] ~ [f5,c6,f6] ~ [f5,c6,eb6] ~ [f5,c6,eb6] ~ [f5,c6,eb6] ~ [f5,c6,eb6] ~", // F5 F7
  C: "[ab5,c6,f6] ~ [ab5,c6,f6]@2 [ab5,c6,f6]@2 [ab5,c6]@2 [ab5,c6,eb6]@2 [ab5,c6,eb6]@2 [ab5,c6,eb6]@2 [ab5,c6,eb6]@2, ~@3 f6@5", // Fm Ab
  D: "[eb5,bb5,f6] ~ [eb5,bb5,f6]@2 [eb5,bb5,f6]@2 [eb5,bb5]@2 [eb5,bb5,eb6]@2 [eb5,bb5,eb6]@2 [eb5,bb5,eb6]@2 [eb5,bb5,eb6] ~, ~@6 f6@9 ~", // Ebsus2 Eb5
  E: "[ab4,ab6]", F: "[bb4,g6]", G: "c6 [bb4,d6]", H: "~ bb6", I: "ab4", J: "f6", K: "eb6", L: "ab6", M: "bb4",
  N: "c6 ~", O: "ab4 bb6", P: "[c5,f6]", Q: "[c5,c6] [bb4,d6]", R: "[ab4,eb6] ~", S: "c5",
})).s("gm_piano").gain(0.14).pan(0.7)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@31 A B ~@34 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@2 A B ~@83 C D E ~ F G H I J K H ~@2 L E ~@2 M ~ I N O
>`.pickRestart({
  A: "~@12 f5 ~@3", B: "f5 ~@15", C: "c5 ~", D: "[ab4,eb6] g4", E: "ab6", F: "c5", G: "bb4", H: "ab4", I: "g6",
  J: "c5 [bb4,d6]", K: "eb6 g4", L: "eb6", M: "~ [g4,bb6]", N: "f6", O: "[bb4,eb6]@3 ~",
})).s("gm_piano").gain(0.09).pan(0.7)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@23 A B C B D B C B ~@28 A B C B D B C B ~@48 E@4 F@3 G F@3 H ~@9 I ~ J ~ J ~ K L ~@50
>`.pickRestart({
  A: "[d2,gb2]@4 ~@2 [d2,gb2]@5 ~ [d2,gb2]@4", // D
  B: "~@2 [g2,b2] ~ [g2,b2] ~ [ab2,c3] ~ [ab2,c3] ~ [a2,db3] ~ [a2,db3] ~ [bb2,d3] ~", // G Ab A Bb
  C: "[d2,gb2]@5 ~ [d2,gb2]@5 ~ [d2,gb2]@4", D: "[d2,gb2]@5 ~ [d2,gb2]@4 ~@2 [d2,gb2]@4", E: "eb5 eb5@14 ~",
  F: "~ eb5@14 ~", G: "~ eb5@12 ~@3", H: "~ eb5@15", I: "g3@11 ~@5", J: "g3@5 ~@3", K: "g3@9 ~@7", L: "[db5,d5]",
})).s("gm_distortion_guitar").gain(0.08).pan(0.2)

// other · taiko drum
const taiko_drum = note("<~@51 [a6 ~ a6 ~ a6 ~ a6 ~]!8 ~@40 [c4!4 a3 ~ c4!4 a3 ~ c4!2 a3 ~]!3 [c4!4 a3 ~@11] ~@91>")
  .s("gm_taiko_drum").gain(0.16).pan(0.9)

// other · synth drum · "FOR PERSONAL"
const synth_drum = note("<~@51 A B C D E F G H ~@40 I@2 J K ~@16 L M L@4 N L ~@67>".pickRestart({
  A: "~@2 f3 c3 c4 ~@2 f4 ~ c4 [e5,f5] ~ f4 c5 f5 c6", B: "~@2 c4 ~ c4 ~@2 c5 ~ c4 f5 ~ f4 ~ f5 c6",
  C: "~@2 c4 c5 f3@2 ~ f5 ~ c4 c5 ~ f4 c5 f5 c6", D: "~@2 c5 f3 c5 ~ c4 f5 f4 c5 f5 c6 c4 f5 ~ f6",
  E: "f3@2 c5 c4 f5 ~@2 c5 ~ c4 f5 ~ f3 c5 f5 c6", F: "f3 ~ c5 ~ f5 ~ f4 c5 ~ c4 f5 ~ c4 c5 f5 [c6,d6]",
  G: "f3@2 c5 ~ f5 ~@2 c5 ~@2 f5 ~ c4 c5 f5 c6", H: "f3@2 c5 c4 f5 ~ f4 f5 c4 c5 f5 c6 c4 c5 f5 ~",
  I: "~ f4 ~ f4!2 ~@2 f4 ~ f4!2 ~@5", J: "~ f4 ~ f4!2 ~@2 f4 ~@2 f4 ~@5", K: "~ f4 ~ f4!2 ~@2 f4 a4!2 d4!2 f4!2 a4!2",
  L: "e3!4 a3 ~ e3!4 a3 ~ e3!2 a3 ~", M: "e3 ~ e3!2 a3 ~ e3 ~ e3 ~ a3 ~ e3 ~ e3 ~", N: "e3!4 a3 ~ e3!4 a3 ~ e3 ~ a3 ~",
})).s("gm_synth_drum").gain(0.29).pan(0)

// other · synth drum · "FOR PERSONAL" · soft notes
const synth_drum_soft = note("<~@51 A B ~ C D E F G ~@42 H ~@17 I J ~@73>".pickRestart({
  A: "~@6 f3 ~@9", B: "~@3 f3 ~@9 c5 ~@2", C: "~@14 [bb5,c6] ~", D: "~@6 f4 ~@9", E: "~@3 c4 ~@12",
  F: "~@3 c4 ~@2 f4 ~@2 c4 ~@6", G: "~@11 bb5 ~@3 c6", H: "~@9 f4 ~@6", I: "~@14 bb3 ~",
  J: "~ e3 ~@5 e3 ~ e3 ~@3 e3 ~@2",
})).s("gm_synth_drum").gain(0.19).pan(0)

// other · distortion guitar · "USE ONLY"
const distortion_guitar_2 = note(`<
  ~@23 A@4 B@2 C ~ D E F G H E F I ~@13 J K L K ~@3 C ~ B@4 A@2 D F@2 I D F@2 M N O P Q D P E G H E@2 G H E@2 R ~@103
>`.pickRestart({
  A: "[~@2 [ab4,c5]@7 ~@7]/2", B: "[~@4 [ab4,c5]@15 ~@13]/2", C: "~ [ab4,c5]@3", D: "~@4 f5@2 ~@2 f5@3 ~ f5 ~ f5@2",
  E: "~@2 f5@2 ~@2 f5@5 ~ f5 ~ f5@2", F: "~@2 f5@3 ~ f5@5 ~ f5 ~ f5@2", G: "~ f5 ~ f5@3 ~@2",
  H: "~@4 f5@3 ~ f5@3 ~ f5 ~ f5@2", I: "~@2 f5@3 ~ f5@7 ~@3", J: "~@5 f4 ~ f4 ab4 ~ ab4 ~ ab4 ~ ab4 ~",
  K: "ab4 ~ ab4 ~@13", L: "~@14 ab4 ~", M: "~@2 f5@3 ~ f5@8 ~@2", N: "~@4 f5@2 ~@2 f5@2 ~@2 f5 ~ f5@2",
  O: "~@2 f5@2 ~@2 f5@5 ~ f5 ~ f5 ~", P: "~@2 f5@2 ~@2 f5@5 ~@2 f5 f5@2", Q: "~@2 f5@2 ~@2 f5@7 ~@3",
  R: "~ f5 ~ f5@2 ~@3",
})).s("gm_distortion_guitar").gain(0.21).pan(0.7)

// other · overdriven guitar
const overdriven_guitar_2 = note("<~@91 A@2 B@4 C D B@4 ~@91>".pickRestart({
  A: "[f2@7 f3@5 f2@6 f3@6 f2@4 f3@2 gb3@2]/2", B: "[f2@3 f3@3 f2@3 f3@3 f2@2 f3 gb3]/2", C: "f2@3 f3@3 f2@2",
  D: "~ f3@3 f2@2 f3 gb3",
})).s("gm_overdriven_guitar").gain(0.11).pan(0)

// other · acoustic guitar nylon
const acoustic_guitar_nylon = note("<~@107 [~@5 f4!7 ~ eb4!3]!2 [~@5 f4!8 ~ eb4!2] [~@5 f4!7 ~ eb4!3]!5 ~@79>")
  .s("gm_acoustic_guitar_nylon").gain(0.24).pan(1)

// drums · kick
const kick = s("bd").struct(`<
  ~@7 A B@2 A@6 B A B A@3 C D E F G H I D H J K@3 L K@3 B@4 A B@2 A@6 B A B A@3 C D E F G H I D H ~@4 J K@3 J K@3 J K@3
  J K@3 J K@3 ~@4 M N@2 O P N O Q R@7 S R@3 T D F D@10 ~ U V W X Y Z AA AB AC AD AE AD AE AD AE AF ~@3 AG@47
>`.pickRestart({
  A: "x!2 ~@3 x ~@2", B: "x!2 ~@6", C: "x ~ x ~@3 x!2 ~ x ~@4 x ~", D: "x ~@2 x ~@2 x ~", E: "~ x ~ x ~ x ~@2",
  F: "x ~@2 x ~@4", G: "~@3 x!2 ~@2 x", H: "~ x", I: "~ x ~ x ~@2 x ~", J: "x ~ x ~@3 x ~@4 x ~@4",
  K: "x ~ x ~@3 x ~ x ~ x!2 ~@4", L: "x ~ x ~@5 x ~ x!2 ~@4", M: "x ~@6 x ~@2 x ~@2 x ~@2",
  N: "x ~@3 x ~ x ~@3 x ~@2 x ~@2", O: "x ~@2 x ~@2 x ~@3 x ~@2 x ~@2", P: "x ~@3 x ~@2 x ~@2 x ~@2 x ~@2",
  Q: "x ~@2 x ~@2 x ~@9", R: "x!2 ~@14", S: "x!2 ~@6 x ~@2 x ~@4", T: "x!2 ~@5 x ~@8", U: "x ~ x ~@8 x ~@4",
  V: "x ~ x ~@5 x!4 ~@4", W: "x!2 ~ x ~ x ~ x", X: "x ~ x ~@5 x!2 ~@3 x ~@2", Y: "x ~ x ~@7 x!2 ~@4",
  Z: "x ~ x ~ x ~@6 x ~ x!2 ~", AA: "x ~ x ~@7 x ~@2 x ~@2", AB: "x ~ x ~@4 x!9", AC: "x!2 ~ x ~ x ~@2",
  AD: "~@3 x ~ x ~@2", AE: "x ~ x ~@3 x ~@3 x ~@4 x", AF: "~@7 x ~@2 x ~@5", AG: "x",
})).gain(0.45)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@31 A ~@3 B ~@35 A ~@3 A ~@3 A ~@3 A ~@3 A ~@7 C ~@18 D ~ E ~@11 F G ~ H I J ~@2 K ~@57
>`.pickRestart({
  A: "~@4 x!2 ~@2", B: "~@3 x ~@4", C: "~ x ~@2", D: "~@11 x ~@4", E: "~@3 x", F: "~@5 x ~ x", G: "~@6 x ~@6 x!2 ~",
  H: "~@3 x ~@2 x ~", I: "~@7 x", J: "~@8 x!3 ~@5", K: "~@15 x",
})).gain(0.25)

// drums · snare
const snare = s("sd").struct(`<
  ~@23 A B A C D B A C E@7 F G H I J K@4 L@3 M L N L G L K L O A B A C D B A C ~@4 E@20 ~@12 P@3 ~ Q@3 R Q@3 S T@12 ~ U
  V W X Y Z Y AA@2 AB AA AC AA AC AA AD ~@2 A@3 B A@11 B A@7 B A@3 B A@3 B A@3 B A@3 B A@3 B A@4
>`.pickRestart({
  A: "~ x", B: "~@4 x ~@2 x", C: "~ x ~@3 x ~@2", D: "x!2 ~ x", E: "~@4 x ~@2 x ~ x ~@2 x!4",
  F: "~@4 x ~@2 x ~ x ~@2 x!2 ~@2", G: "~@4 x ~ x!10", H: "~@4 x ~ x!6 ~ x ~@2", I: "~@4 x ~ x!2 ~ x ~ x!5",
  J: "~@4 x ~ x!8 ~@2", K: "~@4 x ~ x!4 ~ x!5", L: "~@4 x ~ x!4 ~@2 x ~ x!2", M: "~@6 x!4 ~ x!5",
  N: "~@4 x ~ x!5 ~ x ~ x!2", O: "~@5 x ~@2 x ~ x!4 ~ x", P: "~ x ~@2", Q: "~@4 x ~@7 x ~@2 x",
  R: "~@4 x ~@4 x ~@2 x!4", S: "~@4 x ~@3 x!2 ~@2 x!4", T: "~@4 x ~@5 x ~@2 x ~@2", U: "~@4 x ~ x ~@2 x ~@2 x ~@2 x",
  V: "~@4 x ~@2 x ~@4 x ~@2 x", W: "~@4 x ~@2 x ~ x ~@2 x ~@2 x", X: "~@4 x ~@2 x ~@2 x ~@3 x ~",
  Y: "~@4 x ~@4 x ~@2 x ~@2 x", Z: "~@6 x ~@5 x ~@2 x", AA: "~ x ~ x", AB: "x!6 ~@6 x ~@2 x", AC: "x!5 ~@7 x ~@3",
  AD: "x!7 ~@5 x ~@3",
// … 51 more lines

More by Nine Inch Nails