Strudelify

Rocket Queen

Guns N' Roses

KeyE majorTempo112 bpm
0:00/0:00
// Rocket Queen — Guns N' Roses
// 112 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 30, 4/4 at bar 31, 3/4 at bar 52, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 162 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(112/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 pick · "Bass"
const bass = note(`<
  A B A C D E@3 F G@3 H E@3 I@4 J@3 K@4 L@2 M N O@2 P Q@8 R S@2 T U V@2 W@2 X Y Z@3 AA AB@9 AC AD AE AF AG AH AI@2 AJ AK
  AL AM AN AO AP AQ AR AS@2 AT AU AV@2 AW@2 AX@2 AY@2 AV@2 AW@2 AX@2 AZ@2 BA@2 BB@2 BC@2 BD@2 BA@2 BB@2 BC@2 BE BF BG@2
  BH@2 BI@2 BJ@2 BG@2 BH@2 BI@2 BK@2 BG@2 BH@2 BI@2 BK@2 BG@2 BH@2 BI@2 BK@2 ~@11
>`.pickRestart({
  A: "~@6 e2 ~@3 e2 f#2 e1 ~ f#1 ~", B: "~@12 e1 ~ f#1 ~", C: "~@12 f#1 ~ f#2 ~",
  D: "e2 ~ f#2 ~ f#1 ~ f#2 ~ e2 ~ d#2 e2 e1 ~ f#1 ~", E: "a#1@2 ~ e1@2 ~ f#1 ~ a1 a#1 a1 a#1 e1 ~ f#1 ~",
  F: "a#1@2 ~ e1@2 ~ f#1 ~ a1 a#1 a1 a#1 [e1,e2] ~ [f#1,f#2] ~", // E F#
  G: "[a1,a2]@2 ~ [e1,e2] ~ [e1,e2] [f#1,f#2] ~ [a1,a2] [a#1,a#2] [a1,a2] [a#1,a#2] [e1,e2] ~ [f#1,f#2] ~", // A E F# A A# A A# E …
  H: "[a1,a2] [a#1,a#2] [f#1,f#2] [e1,e2] ~@8 e1 ~ f#1 ~", // A A# F# E
  I: "[a#1@2 ~ e1@2 ~ f#1 ~ a1 a#1 a1 a#1 a1 ~ b1 ~ d#2@2 ~ a1 ~ a1 b1 ~ d2 d#2 d2 d#2 a1 ~ b1 ~ d#2@2 ~ a1 ~ a1 b1 ~ d2 d#2 d2 d#2 b1 ~ c#2 ~ f2@2 ~ b1 ~ b1 c#2 ~ e2 f2 e2 f2 [e2,e3,b3,e4]!4, ~@12 [b2,f#3,b3]@11 ~@5 [b2,f#3,b3]@11 ~@5 [c#3,g#3,c#4]@11 ~@9]/4", // E5 B5 C#5
  J: "[[e2,e3,b3,e4]!5 ~@3 [b1,b2,f#3,b3] [a1,a2,e3,a3]@2 ~ f#1@3 ~ f#1@3 ~ f#1 ~ f#1 ~ [f#1,f#2,c#3,f#3] [g#1,g#2,d#3,g#3]@2 ~ e1@3 ~ e2@3 ~ e2 ~ e2 ~ e2@3 ~ [a1,a2,e3,a3]@4, ~@12 [f#2,c#3,f#3]@8 ~@8 [b2,e3]@11 ~@9]/3", // E5 B5 A5 F#5 G#5 A5 F#5 E5
  K: "[~@4 [b1,b2,f#3,b3]@3 ~ [e1,e2,b2,e3]@3 ~ f#1@3 ~ f#1@3 ~ f#1 ~ f#1 ~ [b1,b2,f#3,b3] [a1,a2,e3,a3]@2 ~ f#1@3 ~ f#1@3 ~ f#1 ~ f#1 ~ [f#1,f#2,c#3,f#3] [g#1,g#2,d#3,g#3]@2 ~ e1@3 ~ e2@3 ~@5 e2@3 ~ [a1,a2,e3,a3]@4, ~@12 [f#2,c#3,f#3]@8 ~@8 [f#2,c#3,f#3]@8 ~@8 [b2,e3]@11 ~@9]/4", // B5 E5 B5 A5 F#5 G#5 A5 F#5 …
  L: "[a1@3 ~ [b1,b2,f#3,b3]@3 ~ [e1,e2,b2,e3]@3 ~ f#1@3 ~ f#1@3 ~ f#1 ~ f#1 ~ f#1@3 ~ [f#2,f#3] [e2,e3] [c#2,c#3] [c2,c3], ~@12 [f#2,c#3,f#3]@11 ~@9]/2", // B5 E5 F# E C# C F#5
  M: "[b1,b2] [a1,a2] [f#1,f#2] ~ [c2,c3] [b1,b2] [a1,a2] [e1,b1,e2]@6 ~@3", // B A F# C B A E5
  N: "[f1,c2,f2]@5 ~@3 [e1,e2] ~ [f#1,f#2] ~ [a1,a2]@2 ~ [e1,e2]", // F5 E F# A E
  O: "~ [e1,e2] [f#1,f#2] ~ [a1,a2] [a#1,a#2] [a1,a2] [a#1,a#2] [e1,e2] ~ [f#1,f#2] ~ [a1,a2]@2 ~ [e1,e2]", // E F# A A# A A# E F# …
  P: "~ [e1,e2] [f#1,f#2] ~ [a1,a2] [a#1,a#2] [a1,a2] [a#1,a#2] [e1,e2] ~ [f#1,f#2] ~ [a1,a2] [a#1,a#2] [f#1,f#2] [e1,e2]", // E F# A A# A A# E F# …
  Q: "[~@8 e1 ~ f#1 ~ a#1@2 ~ e1@2 ~ f#1 ~ a1 a#1 a1 a#1 e1 ~ f#1 ~ a#1@2 ~ e1@2 ~ f#1 ~ a1 a#1 a1 a#1 e1 ~ f#1 ~ a#1@2 ~ e1@2 ~ f#1 ~ a1 a#1 a1 a#1 e1 ~ f#1 ~ a#1@2 ~ e1@2 ~ f#1 ~ a1 a#1 a1 a#1 a1 ~ b1 ~ d#2@2 ~ a1 ~ a1 b1 ~ d2 d#2 d2 d#2 a1 ~ b1 ~ d#2@2 ~ a1 ~ a1 b1 ~ d2 d#2 d2 d#2 b1 ~ c#2 ~ f2@2 ~ b1 ~ b1 c#2 ~ e2 f2 e2 f2 [e2,e3,b3,e4]!8, ~@72 [b2,f#3,b3]@11 ~@5 [b2,f#3,b3]@11 ~@5 [c#3,g#3,c#4]@11 ~@13]/8", // E5 B5 C#5
  R: "[e2,e3,b3,e4] ~@3 [b1,b2,f#3,b3] [a1,a2,e3,a3]@2 ~ f#1@3 ~ f#1@3 ~, ~ [f#2,c#3,f#3]", // E5 B5 A5 F#5
  S: "[f#1 ~ f#1 ~ [f#1,f#2,c#3,f#3] [g#1,g#2,d#3,g#3]@2 ~ e1@3 ~ e2@3 ~ e2 ~ e2 ~ e2@3 ~ [a1,a2,e3,a3]@5 ~@3, ~@8 [b2,e3]@11 ~@13]/2", // F#5 G#5 A5 E5
  T: "[b1,b2,f#3,b3]@3 ~ [e1,e2,b2,e3]@3 ~ f#1@3 ~ f#1@3 ~, ~ [f#2,c#3,f#3]", // B5 E5 F#5
  U: "f#1 ~ f#1 ~ [b1,b2,f#3,b3] [a1,a2,e3,a3]@2 ~ f#1@3 ~ f#1@3 ~, ~ [f#2,c#3,f#3]", // B5 A5 F#5
  V: "[f#1 ~ f#1 ~ [f#1,f#2,c#3,f#3] [g#1,g#2,d#3,g#3]@2 ~ e1@3 ~ e2@3 ~@5 e2@3 ~ [a2,e3,a3]@4 a1@3 ~, ~@8 [b2,e3]@11 ~@5 a1@3 ~@5]/2", // F#5 G#5 A5 E5
  W: "[[b1,b2,f#3,b3]@3 ~ [e1,e2,b2,e3]@3 ~ f#1@3 ~ f#1@3 ~ f#1 ~ f#1 ~ f#1@3 ~ [f#2,f#3] [e2,e3] [c#2,c#3] [c2,c3] [b1,b2] [a1,a2] [f#1,f#2] ~, ~@8 [f#2,c#3,f#3]@11 ~@13]/2", // B5 E5 F# E C# C B A …
  X: "[c2,c3] [b1,b2] [a1,a2] [e1,b1,e2]@6 ~@3 [f1,c2,f2]@4", Y: "~@4 e2 ~ f#2 ~ a#2@2 ~ e2 ~ e2 f#2 ~",
  Z: "a2 a#2 a2 a#2 e2 ~ f#2 ~ a#2@2 ~ e2 ~ e2 f#2 ~",
  AA: "a2 a#2 a2 a#2 [e1,e2] ~ [f#1,f#2] ~ [a#1,a#2]@2 ~ [e1,e2] ~ [e1,e2] [f#1,f#2] ~", // E F# A# E F#
  AB: "[a1,a2] [a#1,a#2] [a1,a2] [a#1,a#2] [e1,e2] ~ [f#1,f#2] ~ [a#1,a#2]@2 ~ [e1,e2] ~ [e1,e2] [f#1,f#2] ~", // A A# A A# E F# A# E …
  AC: "[a1,a2] [a#1,a#2] [a1,a2] [a#1,a#2] [e1,e2] ~ [f#1,f#2] ~ [a1,a2] [a#1,a#2] [f#1,f#2] [e1,e2] ~@4", // A A# A A# E F# A A# …
  AD: "~@4 [g1,g2] ~ [a1,a2] ~ [c2,c3] [c#2,c#3] ~ [g1,g2] ~ [g1,g2] [a1,a2] ~", // G A C C# G A
  AE: "[c2,c3] [c#2,c#3] [c2,c3] [c#2,c#3] [g1,g2] ~ [a1,a2] ~ [c2,c3] [c#2,c#3] ~ [g1,g2] ~ [g1,g2] [a1,a2] ~", // C C# C C# G A C C# …
  AF: "[c2,c3] [c#2,c#3] [c2,c3] [c#2,c#3] [a1,a2] ~ [b1,b2] ~ [d2,d3] [d#2,d#3] ~ [a1,a2] ~ [a1,a2] [b1,b2] ~", // C C# C C# A B D D# …
  AG: "[d2,d3] [d#2,d#3] [d2,d3] [d#2,d#3] [g1,g2] ~ [a1,a2] ~ [c2,c3] [c#2,c#3] [a1,a2] [g1,g2] ~@4", // D D# D D# G A C C# …
  AH: "~@4 [b1,b2] ~ [c#2,c#3] ~ [e2,e3] [f2,f3] [c#2,c#3] [e1,e2] ~ [f1,f#2] [g1,g2] [g#1,g#2]", // B C# E F C# E F#maj7 G …
  AI: "[b1,b2] [c#2,c#3] [e2,e3] [f2,f3] [b1,b2] ~ [c#2,c#3] ~ [e2,e3] [f2,f3] [c#2,c#3] [e1,e2] ~ [f1,f#2] [g1,g2] [g#1,g#2]", // B C# E F B C# E F …
  AJ: "[b1,b2] [c#2,c#3] [e2,e3] [f2,f3] [b1,b2] ~ [c#2,c#3] ~ [e2,e3] [f2,f3] [c#2,c#3] [e1,e2] ~ [f1,f#2] [g1,g2]!2", // B C# E F B C# E F …
  AK: "[b1,b2] [a1,a2]@2 ~ f#1@3 ~ f#1@3 ~ f#1 ~ f#1 ~, ~ [f#2,c#3,f#3]@2 ~", // B A F#5
  AL: "[f#1,f#2,c#3,f#3] [g#1,g#2,d#3,g#3]@2 ~ e1@3 ~ e2@3 ~ e2 ~ e2 ~, ~@4 [b2,e3]@11 ~", // F#5 G#5 E5
  AM: "e2@3 ~ [a1,a2,e3,a3]@5 ~@3 [b1,b2,f#3,b3]@3 ~", // A5 B5
  AN: "[e1,e2,b2,e3]@3 ~ f#1@3 ~ f#1@3 ~ f#1 ~ f#1 ~, ~ [f#2,c#3,f#3]@2 ~", // E5 F#5
  AO: "[b1,b2,f#3,b3] [a1,a2,e3,a3]@2 ~ f#1@3 ~ f#1@3 ~ f#1 ~ f#1 ~, ~ [f#2,c#3,f#3]@2 ~", // B5 A5 F#5
  AP: "[f#1,f#2,c#3,f#3] [g#1,g#2,d#3,g#3]@2 ~ e1@3 ~ e2@3 ~@5, ~@4 [b2,e3]@11 ~", // F#5 G#5 E5
  AQ: "e2@3 ~ [a2,e3,a3]@4 a1@3 ~ [b1,b2,f#3,b3]@3 ~, ~@4 a1@3 ~@9", // A5 B5
  AR: "[e1,e2,b2,e3]@3 ~ f#1@3 ~ f#1@3 ~ f#1 ~ f#1 ~, ~@4 [f#2,c#3,f#3]@11 ~", // E5 F#5
  AS: "[f#1@3 ~ [f#2,f#3] [e2,e3] [c#2,c#3] [c2,c3] [b1,b2] [a1,a2] [f#1,f#2] ~ [c2,c3] [b1,b2] [a1,a2] [e1,b1,e2]@6 ~@3 [f1,c2,f2]@5 ~@3]/2", // F# E C# C B A F# C …
  AT: "[f#1,c#3,f#3] ~ [f#1,c#3,f#3] ~ [f#1,c#3,f#3] ~ [f#1,c#3,f#3] ~ [f#1,c#3,f#3] ~ [f#1,c#3,f#3] ~ [f#1,c#3,f#3] ~ [f#1,c#3,f#3] ~", // F#5
  AU: "[f#2,d3,f#3] ~ [f#2,d3,f#3] ~ [f#2,d3,f#3] ~ [f#2,d3,f#3] ~ [f#2,d3,f#3] ~ [f#2,d3,f#3] ~ [f#2,d3,f#3] ~ [f#2,d3,f#3] ~", // D
  AV: "[e1 ~ e1 ~ [e2,e3,b3,e4]@3 ~ a1 ~ [b1,b2,f#3,b3] ~ a1 ~ [c#3,g#3,c#4]@4 c#2 ~ [c#2,c#3,g#3,c#4]@3 ~ g1 g#1 b1 e2 ~ e2 g1 g#1, ~@14 c#2@3 ~@15]/2", // E5 B5 C#5
  AW: "[e1 ~ e1 ~ [e2,e3,b3,e4]@3 ~ a1 ~ [a1,a2,e3,a3] ~ a1 ~ b1@3 ~ b1 ~ c#2 ~ d#2 ~ d#2 ~ b1 ~ g1 ~ f#1 ~, ~@7 [b2,f#3,b3]@5 ~@4]/2", // E5 A5 B5
  AX: "[e1 ~ e1 ~ [e2,e3,b3,e4]@3 ~ a1 ~ [b1,b2,f#3,b3] ~ a1 ~ [c#2,c#3,g#3,c#4]@7 ~ e1 ~ g#1 ~ f#1 ~ e1 ~ e1 ~]/2", // E5 B5 C#5
  AY: "[[e2,e3,b3,e4]@3 ~ [e3,b3,e4]@2 e1 ~ g#1 ~ f#1 ~ e1 ~ [b2,f#3,b3]@4 b2 ~ [f#3,b3]@2 b2 ~ [f#3,b3]@2 b2 ~ [f#3,b3]@2 b2 ~, ~@4 e2 ~@9 b1@3 ~@3 b2 ~@3 b2 ~@3 b2 ~@3]/2", // E5 B5
  AZ: "[[e2,e3,b3,e4]@3 ~ [e3,b3,e4]@2 e1 ~ g#1 ~ f#1 ~ e1 ~ [b1,b2]@7 ~@3 b2 ~ b2@3 ~ b2 ~, ~@4 e2 ~@9 [f#3,b3]@13 ~@5]/2", // E5 B B5
  BA: "[e2@3 ~ e2@3 ~@3 b1 ~@3 c#2@7 ~@5 c#2 ~@3 d#2 ~]/2", BB: "[e2@3 ~ e2@3 ~@3 a1 ~@3 b1@7 ~@3 b1 ~ b1@3 ~ f#1 ~]/2",
  BC: "[e1@3 ~ e2@3 ~@3 b1 ~@3 c#2@7 ~@3 c#2 ~ c#2 ~@3 d#2 ~]/2",
  BD: "[e2@3 ~ e2@3 ~@3 f#2 ~@3 b1@7 ~@3 b1 ~ b1 ~ b2@3 ~]/2", BE: "e2@3 ~ e2@3 ~@3 f#2 ~@3 b1@2",
  BF: "~@2 b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~",
  BG: "[[e2,e3,b3,e4]@3 ~ [e2,e3,b3,e4]@3 ~@3 [b1,f#3,b3,f#4] ~@3 [g#3,c#4,g#4]@5 ~ [g#3,c#4,g#4]@3 ~ c#2 ~ [g#3,c#4,g#4]@2 g#1 ~ [f#1,g#3,c#4,g#4] ~, ~@14 c#2@6 ~@6 e1 ~@5]/2", // E5 B5 C#5 F#sus2
  BH: "[[e1,e3,b3,e4]@3 ~ [e2,e3,b3,e4]@3 ~ g#1 ~ [a1,e3,a3,e4] ~ a#1 ~ b1@3 ~ b1 ~ c#2 ~ d2 ~ d#2 ~ [f#3,b3,f#4]@2 g1 ~ [f#1,f#3,b3,f#4] ~, ~@14 [f#3,b3,f#4]@7 ~@5 b1 ~@5]/2", // E5 A5 B5
  BI: "[[e1,e3,b3,e4]@3 ~ [e2,e3,b3,e4]@3 ~@3 [b1,f#3,b3,f#4] ~@3 [g#3,c#4,g#4]@5 ~ [g#3,c#4,g#4]@3 ~ c#2 ~ [g#3,c#4,g#4]@3 ~ [d#2,g#3,c#4,g#4] ~, ~@14 c#2@6 ~@6 c#2 ~@5]/2", // E5 B5 C#5 C#sus2
  BJ: "[[e2,e3,b3,e4]@3 ~ [e2,e3,b3,e4]@3 ~ g#1 ~ [a1,e3,a3,e4] ~ a#1 ~ b1@3 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~, ~@14 [f#3,b3,f#4]@13 ~@5]/2", // E5 A5 B5
  BK: "[[e2,e3,b3,e4]@3 ~ [e2,e3,b3,e4]@3 ~ g#1 ~ [a1,e3,b3,e4] ~ a#1 ~ b1@3 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~, ~@14 [f#3,c#4,f#4]@13 ~@5]/2", // E5 Asus2 F#5
})).s("gm_electric_bass_pick").gain(0.26)

stack(bass)

More by Guns N' Roses