Strudelify
Estranged cover art

Use Your Illusion II

Estranged

Guns N' Roses

KeyC majorTempo89 bpm
0:00/0:00
// Estranged — Guns N' Roses
// 89 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 6/4 at bar 74, 4/4 at bar 76, 6/4 at bar 138, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 208 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: The whole transcription plays 15 ms behind the beat; the grid follows it, so its parts stay together.
setcpm(89/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, A@4 for four bars: edit a riff to change every repeat.

// chords · distortion guitar · "Gtr. I | Guns n' Roses"
const distortion_guitar = note(`<
  ~ A@8 B@2 C@2 B@2 D@2 E F G@2 H F B@2 I J K L M N O P Q P R ~@6 S T U V W V U X J K L M L Y@6 ~@6 Z@4 AA@2 F AB E AC
  AD AE AF AC B@2 AG@2 ~@68 AH@7 AI@7 ~@9 AJ@8 AK@3 ~@7 AL@7 AM@6 ~
>`.pickRestart({
  A: "[~@3 g4@7 c4@6]/4", B: "[[g3,d4,g4]@30 [g3,d4,g4]!2]/2", C: "[[c4,g4,c5]@30 [c4,g4,c5]!2]/2",
  D: "[[c4,g4,c5]@22 [c4,g4,c5]@2 [c4,g4,c5]@2 [c4,g4,c5]@2 [c4,g4,c5]@2 [c4,g4,c5]!2]/2", // C5
  E: "[a#3,f4,a#4]@7 [a#3,f4,a#4]", F: "[c4,g4,c5]@14 [c4,g4,c5]!2",
  G: "[[g3,d4,g4]@26 [g3,d4,g4]!2 [g3,d4,g4]@2 [g3,d4,g4]@2]/2", H: "[a#3,f4,a#4]", I: "[d#4,a#4,d#5]", J: "[f4,c5,f5]",
  K: "g3@8 d4@6 d#4 d4", L: "c4@8 d#4!2 ~ d#4 ~ d#4 f4@2", M: "g4@8 d4@6 d#4 d4", N: "c4@8 d#4!2 ~ d#4 ~ d#4 f3@2",
  O: "g3", P: "d#4@3 d#4 f4@3 f4", Q: "g4@7 g4", R: "g4", S: "~@14 [g3,d4,g4]!2", T: "[f3,c4,f4]@7 [f3,c4,f4]",
  U: "[g3,d4,g4]@14 [g3,d4,g4]!2", V: "[f3,c4,f4]", W: "[g3,d4,g4]@14 [g3,d4,g4] ~", X: "[d#4,a#4,d#5]@7 [d4,a4,d5]",
  Y: "[g4@5 g6@19]/6", Z: "[~@12 g4@28 c4@22 [g3,d4]!2]/4", AA: "[[g3,d4,g4]@12 [g3,d4,g4]!4]/2",
  AB: "[c4,g4,c5]@4 [c4,g4,c5]@4 [c4,g4,c5]@2 [c4,g4,c5]@2 [c4,g4,c5]@2 [c4,g4,c5]!2", AC: "[c4,g4,c5]",
  AD: "[g3,d4,g4]@6 [g3,d4,g4]!2 [g3,d4,g4]@6 [g3,d4,g4]!2", // G5
  AE: "[g3,d4,g4]@4 [g3,d4,g4]!6 [g3,d4,g4]@2 [g3,d4,g4]@2 [g3,d4,g4]@2", // G5
  AF: "[a#3,f4,a#4]@9 [a#3,f4,a#4] [a#3,f4,a#4]@2 [a#3,f4,a#4]@2 [a#3,f4,a#4] ~", AG: "[c4,g4,c5]/2",
  AH: "[~@14 [a3,e4,a4]@8 [g3,d4,g4]@8 [f3,c4,f4]@10 [f3,c4,f4]!3 [g3,d4,g4]@3 [a3,e4,a4]@8 [g3,d4,g4]@8 [f3,c4,f4]@10 [f3,c4,f4]!3 [g3,d4,g4]@3 [a3,e4,a4]@8 [g3,d4,g4]@8 [f3,c4,f4]@10 [f3,c4,f4]!3 [g3,d4,g4]@3 [a3,e4,a4]@2]/7", // A5 G5 F5 G5 A5 G5 F5 G5 …
  AI: "[~@6 [g3,d4,g4]@8 [f3,c4,f4]@10 [f3,c4,f4]!3 e3@3 [d4,a4,d5]@10 [d4,a4,d5]!3 [c4,g4,c5]@3 [a#3,f4,a#4]@12 [a#3,f4,a#4] a3@3 [g3,d4,g4]@16 [c4,g4,c5]@32 ~@2]/7", // G5 F5 D5 C5 A#5 G5 C5
  AJ: "[~@6 [f3,c4,f4]!6 [f3,c4,f4]@2 [c4,g4,c5]@6 [c4,g4,c5] [c4,g4,c5]@2 [c4,g4,c5] [c4,g4,c5]@4 [c4,g4,c5]!2 [g3,d4,g4]@6 [g3,d4,g4] [g3,d4,g4]@2 [g3,d4,g4] [g3,d4,g4]@4 [g3,d4,g4]!2 [f3,c4,f4]@6 [f3,c4,f4] [f3,c4,f4]@2 [f3,c4,f4] [f3,c4,f4]@4 [f3,c4,f4]!2 [c4,g4,c5]@6 [c4,g4,c5]!2 [g3,d4,g4]@6 [g3,d4,g4]!2 [c4,g4,c5]@6 [c4,g4,c5] [c4,g4,c5]@2 [c4,g4,c5] [c4,g4,c5]@4 [c4,g4,c5]@2 [g3,d4,g4]@6 [g3,d4,g4] [g3,d4,g4]@2 [g3,d4,g4] [g3,d4,g4]@4 [g3,d4,g4]@2 [f3,c4,f4]@6 [f3,c4,f4] [f3,c4,f4]@2 [f3,c4,f4] [f3,c4,f4]@4 [f3,c4,f4]@2 [f3,c4,f4]@2]/8", // F5 C5 G5 F5 C5 G5 C5 G5 …
  AK: "[[f3,c4,f4]!7 [c4,g4,c5]@16 ~]/3", // F5 C5
  AL: "[~@6 [c4,g4,c5]@4 [b3,g4]@4 [a3,e4,a4]@8 [g3,d4,g4]@8 [f3,c4,f4]@10 [f3,c4,f4]!3 [g3,d4,g4]@3 [a3,e4,a4]@8 [g3,d4,g4]@8 [f3,c4,f4]@10 [f3,c4,f4]!3 [g3,d4,g4]@3 [a3,e4,a4]@8 [g3,d4,g4]@8 [f3,c4,f4]@10 [f3,c4,f4]!3 [g3,d4,g4]@3 [a3,e4,a4]@2]/7", // C5 Em A5 G5 F5 G5 A5 G5 …
  AM: "[~@6 [g3,d4,g4]@8 [f3,c4,f4]@12 [f3,c4,f4] e3@3 [d4,a4,d5]@16 [c4,g4,c5]@6 a3@4 g3@2 e3@4 [f3,c4,f4]@32 ~@2]/6", // G5 F5 D5 C5 F5
})).s("gm_distortion_guitar").gain(0.26)

// other · distortion guitar · "Gtr. II"
const distortion_guitar_2 = note(`<
  ~@8 A B C D E F G H I J@3 K L@4 M@2 N O P O P E Q R S@5 T U V W X ~@5 Y N O P O P E Q R Z@5 AA@2 AB@3 ~ AC AD G H AE
  AF@4 AG@4 AH@2 ~@50 AI AJ AK AL AM@2 AN AO AP AQ@3 ~@22 AR@5 AS@2 AT@6 AU AV AW@3 ~@21
>`.pickRestart({
  A: "~@8 a#5@5 ~ g5@2, ~@8 g5 ~@7", B: "g5@2 a#5@2 f6@3 ~ d6@8, ~@4 d6 ~@11", C: "g5 a#5 f6@3 d6 c6@2",
  D: "c6@10 c6@3 f6 c6@2", E: "c6", F: "g5@2 a#5@2 d6 f6@3 d6@8", G: "g5@2 a#5@2 f6 g6 f6@4 d6@2 c6 d6@3",
  H: "c6@10 c6 d6@2 f6 c6 d6", I: "c6@8 c6 d6 c6 a#5 c6 a#5 g5@2",
  J: "[a#5@8 c6 d6@3 f6@2 d6 c6@9 c6@4 b5 c6 b5@4 c6@2 b5@2 c6@2 b5@2 c6@2 b5@2 c6@2]/3",
  K: "b5@2 c6@2 [b5,b6]@4 c6 b5 ~@2 c6 d6 c6 b5", L: "[a#5@8 c6 d6@3 f6@2 d6 c6@9 c6@4 c6@2 a5 a#5@31 a5@2]/4",
  M: "a#5/2", N: "g4 d5 g5 d6@5", O: "c5@2 g5@2 c6@2 d6@8 c6 b5", P: "c6 b5 g5@2 d5@2 d6@10", Q: "d6 c6 d6@12 c6@2",
  R: "a#5@13 a5 a#5 a5", S: "[g5@19 d7@53 g6@6 a6@2]/5", T: "a#6", U: "c6@8 a#5@2 a5@4 a#5 a5", V: "g5@3 g5",
  W: "g5 f5@3", X: "g5 f6@3", Y: "~@3 g6", Z: "[f5@2 c6@16 g6 a6]/5", AA: "[a#6@7 c7@4 a#6 a6 a#6@2 a6]/2",
  AB: "[g6@3 ~]/3", AC: "~@5 a#5@2 g5", AD: "g5@2 a#5@2 d6 f6 d6@10", AE: "c6@8 [c6,d6]@2 ~ f6 [c6,d6] c6 a#5 g5",
  AF: "[a#5@8 c6 d6@3 f6@2 c6@10 c6@4 b5 c6 b5@8 [a5,a6] b5@17 a5@2 c6 b5 ~@2 b5@2, ~@39 b6@9 ~@16]/4", // A
  AG: "[a#5@8 c6 d6@3 f6@2 c6@10 c6 d6@3 f6@2 g6@26 ~@6 f6 e6]/4", AH: "c6/2", AI: "c5@10 g4 a4 c5 d5 c5 a4",
  AJ: "c5 d5@3 c5@2 c5@4 g4 a4 c5 d5 c5 a4, e5@3 ~@5", AK: "g5@2 d5 e5@3 d5@4 c5 [c5,d5] b4 c5 b4 a4",
  AL: "g4 a4 f4 g4 d4 f4@3 g4 f4 g4 a4 c5 d5 f5@2",
  AM: "[f5 g5 a#5 g5 a#5 g5 a5 c6!3 [a#5,c6] ~ c6 [a#5,c6] c6 c6@10 ~ g5 a5 c6 d6 c6 a5, ~@15 a#5 ~@16]/2", // A#sus2
  AN: "d6@4 c6@2 c6@4 g5 a5 c6 d6 c6 a5", AO: "d6 e6@3 g6@2 c6@4 c6@2 d6@2 g6 f6",
  AP: "~ f6 e6 ~ f6 e6 [e6,f6] d6 e6 d6 e6!2 d6 c6 ~ a5", AQ: "[d6 e6@10 d6 e6 [f6,g6] f6 g6@13 f6@2 e6@16 ~@2]/3",
  AR: "[~@2 d6@3 c6 ~ d6@4 c6@2 d6@4 c6@6 a5@2 g5@3 a5@2 g5@3 a5@2 g5@4 ~]/5", AS: "[~@6 d6@8 c6@16 d6 [d6,d#6]]/2",
  AT: "[c6 a5 d6 [d6,d#6] a5 d6 d#6 d6 c6 a5 c6 d6 c6 a5 f6 g6@2 a#6 g6@6 g6 a#6 g6 f6 d#6 c6 f6 g6@2 a#6 g6@6 g6 a#6 g6 f6 d#6 c6 d6 e6@2 d6 c6@6 a#5@2 g5@2 f5 d#5 c5@4 f5 g5@3 g4@4 a#4 c5 d#5@6 f5 g5 a#5 f5 d#5@4 f5 f#5 f5 d#5 f5 g5, ~@86 g5 ~@9]/6", // D#maj7
  AU: "a#5 c6!2 g5 a#5 c6 d6 d#6 [c6,d6] d6 d#6 f6 g6 f6 a#6 f6", // Csus2
  AV: "g6 a#6 [f6,g6] g6 f6 g6!2 f6 d#6 c6 d#6@2 c6 a#5 c6!2", // Fsus2
  AW: "[a#5 g5 a#5 g5 f5 d#5 f5 d#5 c5 a#4 f5 [f5,g5] d#5 f5 g5@32 ~@2]/3", // Fsus2
})).s("gm_distortion_guitar").gain(0.26)

// chords · distortion guitar · "Gtr. III"
const distortion_guitar_3 = note(`<
  ~@97 A B C D E D F D G C H I J K L ~ F ~@3 F M N C O N C O B P B C O B C O B P B Q R S T J C O T U V@8 W ~@14 X@2 Y Z
  AA AB AC ~@9 AD@2 AE@7 AF@2 ~@9 AG@4
>`.pickRestart({
  A: "[f3,c4,f4,a4,c5,f5]@10 f3 c4 f4 a4@3", B: "[c4,e4,g4,c5,e5]@10 c4 e4 g4 c5@3",
  C: "[g3,b3,d4,g4,d5]@10 g3 b3 d4 g4@3", D: "[a#3,f4,a#4,d5]", E: "[c4,e4,g4,c5]", F: "[c4,e4,g4,c5,e5]",
  G: "[f3,c4,f4,a4,c5]@10 f3 c4 f4 a4@3", H: "[a#3,f4,a#4,d5]@10 a#3 f4 a#4 d5@3",
  I: "[f3,c4,f4,a4,c5]@10 c4 f4 a4 c5 g4@2", J: "[c4,e4,g4,c5]@10 c4 e4 g4 c5@3",
  K: "[g3,b3,d4,g4,d5]@10 g3 b3 d4 g4@2 g4", L: "[f3,c4,f4,a4,c5]", M: "[c4,e4,g4,d5]@3 c5@2 g4@3",
  N: "[c4,e4,g4,c5,e5]@10 c4 e4 g4@4", O: "[f3,c4,f4,a4,c5]@10 c4 f4 a4 c5@3", P: "[g3,b3,d4,g4,d5] [f3,c4,f4,a4,c5]",
  Q: "[a3,e4,a4,c5,e5]@10 a3 e4 a4 c5@3", R: "[g3,b3,d4,g4,d5,g5]", S: "[f3,c4,f4,a4,c5]@2 c5 a4 f4 c5 a4@2",
  T: "f3@2 f3@2 f4@2 f3 f3@2 f3 f3@2 f4@2 f3@2", U: "[c4,e4,g4,b4,e5]@7 ~",
  V: "[~@14 [c4,e4,g4,c5,e5]@10 c4 e4 g4 c5@3 [g3,b3,d4,g4,d5]@10 g3 b3 d4 g4@3 [f3,c4,f4,a4,c5]@10 c4 f4 a4 c5@3 [c4,e4,g4,c5,e5]@10 c4 e4 g4@4 [g3,b3,d4,g4,d5]@10 g3 b3 d4 g4@3 [f3,c4,f4,a4,c5]@10 c4 f4 a4 c5@3 [c4,e4,g4,c5,e5]@10 c4 e4 g4 c5@3 [g3,b3,d4,g4,d5]@2]/8", // C G F C G F C G
  W: "~@3 [f3,c4,f4,a4,c5]@4 ~", X: "[~@7 [c4,e4,g4,c5,e5]@8 ~]/2", Y: "~@2 d5 ~@2 d5 ~ d5", Z: "e5 ~ e5 ~@2 e5!3",
  AA: "f5 ~ d5 ~@2 d5 ~ d5", AB: "e5 ~ e5 ~@2 e5 ~ g5", AC: "~@2 f5 ~@2 f5 ~ f5", AD: "[~@7 [c4,e4,g4,c5,e5]@9]/2",
  AE: "[~@6 e5@2 c5@2 g4@2 e4@2 [c4,e4,g4,c5,e5]@10 c4 e4 g4 c5@3 [g3,b3,d4,g4,d5]@10 g3 b3 d4 g4@3 [f3,c4,f4,a4,c5]@10 c4 f4 a4 c5@3 [c4,e4,g4,c5,e5]@10 c4 e4 g4@4 [g3,b3,d4,g4,d5]@10 g3 b3 d4 g4@3 [f3,c4,f4,a4,c5]@10 c4 f4 a4 c5@3 [c4,e4,g4,c5,e5]@2]/7", // C G F C G F C
  AF: "[~@2 a3@2 g3 e3@2 [c4,e4,g4,c5,e5]@4 ~@5]/2", AG: "[~@7 [f3,c4,f4,a4,c5,f5]@16 [c4,e4,g4,c5,e5]@8 ~]/4",
})).s("gm_distortion_guitar").gain(0.26)

// chords · distortion guitar · "Gtr. III" · soft notes
const distortion_guitar_soft = note("<~@89 A B C D C E F ~@16 G ~@3 G ~@91>".pickRestart({
  A: "c4@2 g4@2 c5@10 c4 d4", B: "d#4@2 f4 g4 a#4@2 d#5@6 d#5 d5 c5 a#4", C: "d5@2 g4@2 c5@10 c4 d4",
  D: "d#4@2 f4 g4 a#4@2 d#5@4 d#5 d5 d#5 d5 c5 a#4", E: "d#4 f4 g4 a#4 d#5 d5 c5 a#4", F: "d5 ~@3",
  G: "f3@2 f3@2 f4@2 f3 f3@2 f3 f3@2 f4@2 f3@2",
})).s("gm_distortion_guitar").gain(0.15)

// other · distortion guitar · "Gtr. IV"
const distortion_guitar_4 = note("<~@187 A@7 ~@14>".pickRestart({
  A: "[~@8 c5 e5 g5 c6@3 [g4,d5,g5,b5]@10 g4 d5 g5 b5@3 [f4,c5,f5,a5]@10 f4 c5 f5 a5@3 [c5,e5,g5]@12 d6 e6@3 d6@10 c5 g5 c6 d6@3 a5@12 c6 d6@3 c6@4 ~@14]/7", // G F C
})).s("gm_distortion_guitar").gain(0.26)

// other · distortion guitar · "Gtr. IV" · soft notes
const distortion_guitar_soft_2 = note("<~@89 [~@8 a#5 c6 a#5@6] [~@8 c6 d6 c6@6] ~@2 [g5 a5 g5@2 e5@4 ~@8] ~@114>")
  .s("gm_distortion_guitar").gain(0.15)

// other · piano
const piano = note(`<
  ~@85
  [c6 d6 d6@2 d6@4 ~@8]
  [d6 e6 d6 c6 a5@4 ~@8]
  [a5 b5 a5 g5 e5 ~@2 d5 g5 e5 ~ d5 g5 e5 ~ d5]
  [g5 e5 d5 b4 a4 ~@11]
  ~@119
>`).s("gm_piano").gain(0.05)

stack(
  distortion_guitar, distortion_guitar_2, distortion_guitar_3, distortion_guitar_soft, distortion_guitar_4,
  distortion_guitar_soft_2, piano
)

More by Guns N' Roses