Strudelify

Leviathan

Malmsteen Yngwie

KeyE♭ majorTempo160 bpm
0:00/0:00
// Leviathan — Malmsteen Yngwie
// 160 bpm, 4/4, key Eb 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, 7/8 at bar 21, 4/4 at bar 23, 5/4 at bar 64, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 73 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// other · piano · "Piano Track"
const piano = note("<A@2 B C@2 D E@3 F G@2 H I@2 J K@3 L M ~@52>".pickRestart({
  A: "[~@7 gb3@3 b3@2 db4@3 gb4@3 db4@2 b3@3 db4@2 b3@3 gb3@2 b3@2]/2", B: "~ db4@2 gb4@3 g3@2 b3@3 gb3@2 b3@3",
  C: "[b2@3 gb3@2 db4@3 gb4@2 db4@3 b3@2 db4@3 b3@2 b2@3 gb3@2 db4@3 b3@2 g3@2]/2",
  D: "~ b3@3 gb3@2 b3@3 gb3@2 b3@3 db4@2",
  E: "[gb4@3 db4@2 b3@3 db4@2 b3@3 gb3@2 b3@3 db4@3 gb4@2 g3@3 b3@2 gb3@3 b3@2 b2@3 gb3@2 db4@3 gb4@2 db4@3 b3@2]/3",
  F: "~ db4@2 b3@3 b2@2 gb3@3 db4@2 b3@3",
  G: "[g3@2 b3@3 gb3@2 b3@3 gb3@2 b3@3 db4@3 gb4@2 db4@3 b3@2 db4@3 b3@2 gb3@2]/2",
  H: "~ b3@2 db4@3 gb4@2 g3@3 b3@2 gb3@3",
  I: "[b3@3 b2@2 gb3@3 db4@2 gb4@3 db4@2 b3@3 db4@2 b3@3 b2@2 gb3@3 db4@2 b3@2]/2",
  J: "~ g3@3 b3@2 gb3@3 b3@2 gb3@3 b3@2",
  K: "[db4@3 gb4@2 db4@3 b3@2 db4@3 b3@2 gb3@3 b3@3 db4@2 gb4@3 g3@2 b3@3 gb3@2 b3@3 b2@2 gb3@3 db4@2 gb4@3 db4@2]/3",
  L: "~ b3@2 db4@3 b3@2 b2@3 gb3@2 db4@3", M: "b3@2 g3@3 b3@2 gb3@3 b3@3 ~@3",
})).s("gm_piano").gain(0.19)

// bass · electric bass finger · "Bass Track"
const bass = note("<A@3 B@5 C@2 D@5 E@8 ~@11 F G@2 H@2 I@2 G ~@21 J K L@2 ~@6>".pickRestart({
  A: "[~@7 b1@30 ~ g2@5 gb2@5]/3", B: "[b1@30 g2@5 ~ gb2@5 b1@30 g2@5 gb2@4]/5", C: "[~ b1@30 ~]/2",
  D: "[g2@5 gb2@5 b1@30 g2@5 gb2@5 ~ b1@29]/5", E: "[~ g2@5 gb2@5 b1@30 ~ g2@5 gb2@5 e2@40 gb2@36]/8", F: "~@15 gb2",
  G: "gb2", H: "g2", I: "e2", J: "g2 gb2 e2 d2", K: "db2 b1 a1 b1", L: "[db2 d2@4 ~@3]/2",
})).s("gm_electric_bass_finger").gain(0.48)

// other · string ensemble 2 · "Strings Track"
const string_ensemble_2 = note("<A@3 B@5 C@2 D@5 E@8 ~@50>".pickRestart({
  A: "[~@7 b2@30 ~ g3@5 gb3@5]/3", B: "[b2@30 g3@5 ~ gb3@5 b2@30 g3@5 gb3@4]/5", C: "[~ b2@30 ~]/2",
  D: "[g3@5 gb3@5 b2@30 g3@5 gb3@5 ~ b2@29]/5", E: "[~ g3@5 gb3@5 b2@30 ~ g3@5 gb3@5 e3@40 gb3@36]/8",
})).s("gm_string_ensemble_2").gain(0.22)

// other · guitar harmonics · "Solo Guitar" · Dsus2 Gmaj7 Dsus2 Bsus2 Dsus2
const guitar_harmonics = note("<~@21 [~@4 b4 db5 [d5,e5] [gb5,g5] gb5 [d5,e5] [b4,db5] a4 g4 gb4 [d4,e4] db4] ~@51>")
  .s("gm_guitar_harmonics").gain(0.14)

// drums · kick
const kick = s("bd").struct("<~@23 A B A B A C A C A C A C D@8 A C A C A C A C ~@22>".pickRestart({
  A: "x ~@2 x ~ x ~ x ~ x ~@2 x ~@2 x", B: "x ~@2 x ~ x ~ x ~@8", C: "x ~@2 x ~ x ~ x ~ x ~@2 x ~@3",
  D: "x!2 ~ x!3 ~ x!3 ~ x!3 ~ x",
})).gain(0.41)

// drums · snare
const snare = s("sd").struct("<~@23 [~ x] [~@8 x!8] [~ x]!26 ~@22>").gain(0.41)

// drums · crash
const crash = s("cr").struct("<~@23 x ~ x [~ x] ~@46>").gain(0.41)

// drums · ride
const ride = s("rd").struct(`<
  ~@23
  [~@3 x ~ x ~ x!3 ~@2 x ~@2 x]
  [x ~@2 x ~ x ~ x ~@8]
  [~@3 x ~ x ~ x!3 ~@2 x ~@2 x]
  [x ~@2 x ~ x ~ x ~@8]
  ~@46
>`).gain(0.41)

stack(piano, bass, string_ensemble_2, guitar_harmonics, kick, snare, crash, ride)

More by Malmsteen Yngwie