Strudelify

Mr. Brownstone

Guns N' Roses

KeyE minorTempo105 bpm
0:00/0:00
// Mr. Brownstone — Guns N' Roses
// 105 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: ch 2 "Bass" named as a bass, played on electric bass finger (its piano patch is not one)
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(105/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 · "Bass"
const bass = note(`<
  A B A C D E D F G H I J D E D F G H I J K L M N@2 O P Q R S R T R S R U K L M N@2 O P Q V W V W V W V X K L M Y Z AA E
  D F G H I J R S R T R S R U K L M N@2 O P Q AB E D F AC AD AE AF@5
>`.pickRestart({
  A: "e2 g2 g#2 b2 a2 e2 g2 g#2 [e2,b2]!2 g2 g#2 [a2,e3]@3 ~, e1@11 ~@5", // E5 A5
  B: "d4 c#4 b3 a3 g3 ~ e3 d3 b2 a2 g2 g#2 [e2,b2,e3]@3 ~, d2@3 ~", // E5
  C: "[d2,d3,a3,d4]@2 ~ [a1,a2,e3,a3]@2 ~ [b1,b2,f#3,b3]@3 ~ [g1,g2,g3]@4 ~@2", // D5 A5 B5 G
  D: "[e1,e2] [g1,g2] [g#1,g#2] [b1,b2] [a1,a2] [e1,e2] [g1,g2] [g#1,g#2] [e1,e2] ~ [g1,g2] [a#1,g#2] [a1,a2,e3]@3 ~", // E G G# B A E G G# …
  E: "[d2,d3,a3,d4]@2 ~ [c#2,c#3,g#3,c#4]@2 ~ [b1,b2,f#3,b3]@3 ~ [g1,g2] [g#1,g#2] [e1,e2] ~ [b2,e3] ~", // D5 C#5 B5 G G# E E5
  F: "[d2,d3,a3,d4]@2 ~ [c#2,c#3,g#3,c#4]@2 ~ [b1,b2,f#3,b3]@3 ~ [g1,g2] [g#1,g#2] [e1,e2]@3 ~", // D5 C#5 B5 G G# E
  G: "e1@2 e3 e1@2 d3 e3@2 ~ e3 [g1,f#3] e3 [a1,a3]@3 ~, e3 ~@2 d3 ~@2 e1 ~@9", // Gmaj7 A
  H: "a1@2 g3 a1@2 g3 a3@2 ~ e3 [g1,g3] ~ [e1,e3]@3 ~, a3 ~@2 g3 ~@2 a1 ~@9", // G E
  I: "[e1,e3]@2 e3 [e1,d3]@2 d3 [e1,e3]@3 e3 f#3 e3 [a1,a3]@4, ~@5 g1 ~@2", // E E7 E A
  J: "[a1,a3]@2 g3 [a1,g3]@2 g3 [a1,a3]@3 e3 [c2,g3]@2 [b1,e3]@4", // A A7 A C5 E5
  K: "[g1,d3,g3,d4]@3 [f1,c3,f3,c4]@3 g1@4 a#1 b1 g1@2 a#1 b1, ~@3 [d3,g3,d4]@5", // G5 F5 G5
  L: "[c2,c3,g3,c4]@3 [a#1,a#2,f3,a#3]@3 c2@4 d#2 e2 c2@2 a1@2, ~@3 [c3,g3,c4]@5", // C5 A#5 C5
  M: "[d2,d3]@3 [c2,c3]@3 d2@4 f2 f#2 d2@2 a1@2, ~@3 d3@5", // D C
  N: "[[d2,d3]@3 [f#1,f#2,f#3]@3 [g1,g2,g3]@4 [g#1,g#2,g#3]@2 [a1,a2,a3] [b1,b2,b3] [d2,d3,d4] [e3,e4] ~@2 [e2,e3]@2 [e2,e3]!2 ~@2 [e2,e3]@2 ~ [e2,e3]@2 [b1,b2] [d2,d3] [e2,e3], ~@15 e2@3 ~@14]/2", // D F# G G# A B D E …
  O: "[e1,e3]@2 [e2,e3]@2 [e2,e3]!2 ~@2 g3 g#3 g3 [e2,e3]@2 [b1,b2] [d2,d3] [e2,e3], ~@4 e2 ~@3", // E B D E
  P: "[e1,e3]@2 [e2,e3]@2 [e2,e3]!2 ~@2 f#3 g3@2 [e2,g3]@2 [b1,b2] [d2,d3] [e2,e3], ~@4 e2 ~@3", // E Em B D E
  Q: "[e2,e3]@4 [d2,d3]@4 [c#2,c#3]@2 [b1,b2]@2 [a1,a2] [b1,b2] [g1,g2] [e1,e2]", // E D C# B A B G E
  R: "[b1,b2,f#3,b3]@3 [a1,a2,e3,a3]@3 [b1,b2,f#3,b3]@4 d2 e2 b1@2 e1@2, ~@5 [b2,f#3,b3] [b2,f#3,b3]@2", // B5 A5 B5
  S: "[a1,a2,e3,a3]@3 [g1,g2,d3,g3]@3 [a1,a2,e3,a3]@4 [c2,c3] [c#2,c#3] a1@2 e1@2, ~@3 [a2,e3,a3]", // A5 G5 A5 C C# A5
  T: "[a1,a2,e3,a3]@3 [g1,g2,d3,g3]@3 [a1,a2,e3,a3]@4 [c2,c3] [c#2,c#3] a1@2 a1 a#1, ~@3 [a2,e3,a3]", // A5 G5 A5 C C# A5
  U: "[a1,a2,e3,a3]@3 [g1,g2,d3,g3]@3 [a1,a2]@4 ~@2 g2@4, ~@3 [e3,a3]@5, ~@5 a2@3", // A5 G5 A A5
  V: "[f#1,f#2]@3 [f#1,f#3]@3 [f#1,e3]@4 [b1,f#3,b3]@2 [f#1,c#3,f#3]@4", // F# F#7 B5 F#5
  W: "[e1,e2]@3 [e1,e3]@3 [e1,d3]@4 [a1,e3,a3]@2 [e1,b2,e3]@4", // E E7 A5 E5
  X: "e3!3 d3!3 b2@4 a2@6, [b3,e4]@3 [a3,d4]@3 [b3,e4]@10", Y: "[d2,d3]@3 [c#2,c#3]@3 [b1,b2]@4 [d2,d3]@2 [g2,g3]@4",
  Z: "~@3 e3",
  AA: "[c1,e2] [g1,g2] [g#1,g#2] [b1,b2] [a1,a2] [e1,e2] [g1,g2] [g#1,g#2] [e1,e2] ~ [g1,g2] [a#1,g#2] [a1,a2,e3]@3 ~", // C G G# B A E G G# …
  AB: "[e1,e2] [g1,g2] [g#1,g#2] [b1,b2] [a1,a2] [e1,e2] [g1,g2] [g#1,g#2] [e1,e2]@2 [g1,g2] [g#1,g#2] [a1,a2,e3]@4", // E G G# B A E G G# …
  AC: "e3 g3 g#3 b3 a3 e3 g3 g#3 e3 g3 g#3 b3 a3 e3 g3 g#3, [e1,e2] ~ [e1,e2] ~", // E
  AD: "e3 g3 g#3 b3 a3 e3 g3 g#3 e3@2 g3 g#3 [a1,a2,e3,a3]@4, [e1,e2]@2 ~@3 [g1,g2] ~@2", // A5 E G
  AE: "d4 c#4 b3 a3@2 g3 e3 d3 d4 c#4 b3 a3@2 g3 e3 d3, [a1,a2] ~ [a1,a2] ~", // A
  AF: "[[d3,d4] [c#3,c#4] [b2,b3] [a2,a3]@2 [g2,g3] [e2,e3] [d2,d3] [b1,b2] [a1,a2] [g1,g2] [g#1,g#2] [e1,e2,b2,e3]@67 ~]/5", // D C# B A G E D B …
})).s("gm_electric_bass_finger").gain(0.26)

// chords · piano
const piano = note("<~@22 A ~@15 A ~@15 A B ~@19 A ~@17>".pickRestart({
  A: "[a3,d4,f#4]@3 [g3,c4,e4]@3 [a3,d4,f#4]@10", // D C D
  B: "[d4,a4,d5]@3 [c#4,g#4,c#5]@3 [b3,f#4,b4]@4 [d4,a4,d5]@2 [g4,d5,g5]@4", // D5 C#5 B5 D5 G5
})).s("gm_piano").gain(0.26)

// chords · piano · soft notes
const piano_soft = note("<~@91 A@2>".pickRestart({
  A: "[~@3 b3@2 c#4@3 b3@2 d4@21 ~]/2",
})).s("gm_piano").gain(0.05)

stack(bass, piano, piano_soft)

More by Guns N' Roses