Strudelify

Virtue's Vengeance (Piano Cover By Gohacito Music)

Gohancito Music

KeyG♭ majorTempo120 bpm
0:00/0:00
// Virtue's Vengeance (Piano Cover By Gohacito Music) — Gohancito Music
// 120 bpm, 4/4, key Gb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 5 "Piano, GeneralUser_GS_SoftSynth_v144 (1)" piano (copy of ch 4 "Piano, The Megalovania Soundfont" piano)
// note: Transcription provider: pdmx. https://musescore.com/score/5951236; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 80 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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.

// other · piano · "Piano, GeneralUser_GS_SoftSynth_v144 (1)"
const piano = note(`<
  ~@4 A B C D E F G H E F G H E F G H E F G H E F G H E F G H E F G H E F G H E F G H E F G H E F G H E F G H E F G H E
  F G H E F G H E F G H ~@8
>`.pickRestart({
  A: "eb4@13 ~ f4@2", B: "db4@13 ~ f4@2", C: "c4@13 ~ eb4@2", D: "b3@7 db4@7 ~@2",
  E: "eb4 ~ eb4 ~ eb4!2 ~@2 eb4 ~ eb4!2 ~ eb4 f4@2", F: "db4 ~ db4 ~ db4!2 ~@2 db4 ~ db4!2 ~ db4 f4@2",
  G: "c4 ~ c4 ~ c4!2 ~@2 c4 ~ c4!2 ~ c4 eb4@2", H: "b3 ~ b3 ~ b3 ~ b3 db4 ~ db4!6 ~",
})).s("gm_piano").gain(0.25)

// other · piano · "Piano, The Megalovania Soundfont"
const piano_2 = note(`<
  ~@8 A B C D A B C D A B C D A B C D E F G H A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A
  B C D A B C D ~@8
>`.pickRestart({
  A: "eb2 ~ eb2 ~ eb2!2 ~@2 eb2 ~ eb2!2 ~ eb2 [f2,f4]@2, eb4@13 ~@3", // F
  B: "db2 ~ db2 ~ db2!2 ~@2 db2 ~ db2!2 ~ db2 [f2,f4]@2, db4@13 ~@3", // F
  C: "c2 ~ c2 ~ c2!2 ~@2 c2 ~ c2!2 ~ c2 [eb2,eb4]@2, c4@13 ~@3", D: "b1 ~ b1 ~ b1 ~ b1 db2 ~ db2!6 ~, b3@7 db4@7 ~@2",
  E: "eb4@2 eb4@2 eb4 eb4@3 eb4@2 eb4 eb4@2 eb4 f4@2", F: "db4@2 db4@2 db4 db4@3 db4@2 db4 db4@2 db4 f4@2",
  G: "c4@2 c4@2 c4 c4@3 c4@2 c4 c4@2 c4 eb4@2", H: "b3@2 b3@2 b3@2 b3 db4@2 db4!6 ~",
})).s("gm_piano").gain(0.25)

// other · piano · "Piano, The Megalovania Soundfont"
const piano_3 = note(`<
  ~@8 A B@2 C A B@2 C ~@4 A B@2 C D E F G H I J K D E F G H I J K ~@8 L M N O L M N O ~@8 L M N O L M N O ~@8
>`.pickRestart({
  A: "eb4!2 ~@4 eb4@2 gb4@2 ~ gb4@3 ab4@2, ~ bb4@2 ~@5, ~@2 ab4@2 ~ eb4 ~@2",
  B: "[db4!2 ~@4 eb4@2 ~@3 gb4@3 ~@2 c4!2 ~@4 eb4@2 gb4@2 ~ gb4@3 ab4@2, ~ bb4@2 ~ bb4@2 ~@3 bb4@2 ~@5, ~@2 ab4@2 ~ ab4 ~ f4@2 ~ ab4@2 ~ eb4 ~@2]/2",
  C: "b3!2 ~@4 b4@2 ~@3 gb4@3 f4@2, ~ gb4@2 ~@2 ab4 ~@2, ~ ab4 bb4 ~",
  D: "eb4 gb4 f4 gb4 eb4 ~@2 eb4@2 f4 gb4 db5 bb4@4", E: "f4 ab4 gb4 ab4 f4 ~@2 f4@2 gb4 ab4 eb5 db5@4",
  F: "gb4 bb4 ab4 bb4 gb4 ~@2 gb4@2 ab4 bb4 gb5 f5@4", G: "eb4@3 bb4@3 ab4@2 gb4 f4@2 db4@3 f4@2",
  H: "eb4@2 bb4@2 ab4@3 bb4", I: "eb4@3 f4@3 gb4@2 bb4@8", J: "gb4@2 bb4@2 ab4@3 bb4",
  K: "gb5@3 bb4@3 gb5@2 f5@3 ab4@3 f4@2", L: "eb4!2 bb4@2 ab4@2 eb4@2 gb4@2 eb4 gb4@2 ~ ab4@2",
  M: "db4!2 bb4@2 ab4@2 eb4@2 bb4@2 ab4 gb4@2 ~ f4@2", N: "c4!2 bb4@2 ab4@2 eb4@2 gb4@2 eb4 gb4@2 ~ ab4@2",
  O: "b3!2 gb4@2 ab4@2 b4@2 bb4@2 ab4 gb4@2 ~ f4 ~",
})).s("gm_piano").gain(0.25)

// other · piano · "Piano, GeneralUser_GS_SoftSynth_v144 (1)"
const piano_4 = note(`<
  ~@16 A B C D A B C E ~@8 F G H I J K L M N O P Q R S T Q N O P Q R S T Q U V U W U V X Y Z AA AB AC Z AA AD AE ~@8
>`.pickRestart({
  A: "gb5 ~ gb5 ab5 bb5 ~ gb5 ~ ab5 ~ ab5 bb5 gb5 ~ db5 ~", B: "gb5 ~ gb5 ab5 bb5 gb5 gb6 gb5 f6 ~ db6 ~ bb5 ~ gb5 ~",
  C: "bb5 ~ bb5 db6 eb6 ~ bb5 ~ ab5 ~ ab5 bb5 [ab5,bb5] gb5@3, ~@13 ab5 ~@2", // Absus2
  D: "eb5 f5 gb5 ab5 bb5 ab5 gb5 f5 eb5 f5 gb5 ab5 [eb5,gb5]@4", E: "gb5 ~ gb5 ab5 f5 ~ db5@2 eb5@4 f5@4",
  F: "eb4 gb4 f4 gb4 eb4 ~@2 eb4@2 f4 gb4 db5 bb4@4", G: "f4 ab4 gb4 ab4 f4 ~@2 f4@2 gb4 ab4 eb5 db5@4",
  H: "gb4 bb4 ab4 bb4 gb4 ~@2 gb4@2 ab4 bb4 gb5 f5@4", I: "eb4@3 bb4@3 ab4@2 gb4 f4@2 db4@3 f4@2",
  J: "eb4@2 bb4@2 ab4@3 bb4", K: "eb4@3 f4@3 gb4@2 bb4@8", L: "gb4@2 bb4@2 ab4@3 bb4",
  M: "gb5@3 bb4@3 gb5@2 f5@3 ab4@3 f4@2", N: "eb3 eb4", O: "gb3@13 ~ f3@2", P: "bb3 ab3", Q: "gb3@15 ~", R: "eb3 gb3",
  S: "bb3@11 ~ db4@4", T: "eb4 ab3", U: "gb4 f4", V: "ab4@15 ~", W: "a4@15 ~", X: "bb4 ab4", Y: "gb4@15 ~",
  Z: "eb4!2 bb4@2 ab4@2 eb4@2 gb4@2 eb4 gb4@2 ~ ab4@2, gb4 f4",
  AA: "db4!2 bb4@2 ~@2 eb4@2 bb4@2 ~ gb4@2 ~ f4@2, ab4@2 ab4@3 ab4@3",
  AB: "c4!2 bb4@2 ab4@2 eb4@2 gb4@2 eb4 gb4@2 ~ ab4@2, gb4 f4",
  AC: "b3!2 gb4@2 ab4@2 b4@2 bb4@2 ab4 gb4@2 ~ f4 ~, a4@15 ~",
  AD: "c4!2 ~@2 ab4@2 eb4@2 gb4@2 eb4 gb4@2 ~ ab4@2, bb4 bb4@3 ab4@3 ~",
  AE: "b3!2 ~@2 ab4@2 b4@2 bb4@2 ab4 ~@3 f4 ~, gb4@2 gb4@9 gb4@5",
})).s("gm_piano").gain(0.25)

// other · piano · "Piano, GeneralUser_GS_SoftSynth_v144 (1)"
const piano_5 = note("<~@8 A B@2 C A B@2 C ~@8 D E F@6 D E G@7 ~@15 H I H J H I K L M N M O M N P Q ~@8>".pickRestart({
  A: "eb4!2 ~@4 eb4@2 gb4@2 ~ gb4@3 ab4@2, ~ bb4@2 ~@5, ~@2 ab4@2 ~ eb4 ~@2",
  B: "[db4!2 ~@4 eb4@2 ~@3 gb4@3 ~@2 c4!2 ~@4 eb4@2 gb4@2 ~ gb4@3 ab4@2, ~ bb4@2 ~ bb4@2 ~@3 bb4@2 ~@5, ~@2 ab4@2 ~ ab4 ~ f4@2 ~ ab4@2 ~ eb4 ~@2]/2",
  C: "b3!2 ~@4 b4@2 ~@3 gb4@3 f4@2, ~ gb4@2 ~@2 ab4 ~@2, ~ ab4 bb4 ~",
  D: "~@4 eb3@3 eb3@2 ~@3 bb3@4, eb3@2 f3@2 ~@5 f3@2 db4@2 ~@3, ~ gb3@2 gb3@2 ~@5 gb3@2 ~@4",
  E: "~@4 f3@3 f3@2 ~@3 db4@4, f3@2 gb3@2 ~@5 gb3@2 eb4@2 ~@3, ~ ab3@2 ab3@2 ~@5 ab3@2 ~@4",
  F: "[~@4 gb3@3 gb3@2 ~@7 eb3@3 bb3@3 ab3@2 gb3 f3@2 db3@3 ~@2 eb3@4 bb3@4 ~@8 eb3@3 f3@3 gb3@2 ~@8 gb3@4 bb3@4 ~@8 gb4@3 bb3@3 gb4@2 f4@3 ab3@3 f3@2, gb3@2 ab3@2 ~@5 ab3@2 gb4@2 ~@33 bb3@5 ~@5 bb3@11 ~@11 bb3@5 ~@13, ~ bb3@2 bb3@2 ~@5 bb3@2 f4@7 ~@11 f3@6 ~@4 ab3@8 ~@24 ab3@8 ~@16]/6",
  G: "[~@4 gb3@3 gb3@2 ~@7 eb3@3 bb3@3 ab3@2 gb3 f3@2 db3@3 ~@2 eb3@4 bb3@4 ~@8 eb3@3 f3@3 gb3@2 ~@8 gb3@4 bb3@4 ~@8 gb4@3 bb3@3 gb4@2 f4@3 ab3@3 f3@6 ~@12, gb3@2 ab3@2 ~@5 ab3@2 gb4@2 ~@33 bb3@5 ~@5 bb3@11 ~@11 bb3@5 ~@29, ~ bb3@2 bb3@2 ~@5 bb3@2 f4@7 ~@11 f3@6 ~@4 ab3@8 ~@24 ab3@8 ~@32]/7",
  H: "gb3 f3", I: "ab3@15 ~", J: "a3@15 ~", K: "bb3 ab3", L: "gb3@15 ~", M: "[gb3,gb4] [f3,f4]", N: "[ab3,ab4]@15 ~",
  O: "[a3,a4]@15 ~", P: "[bb3,bb4] [ab3,ab4]", Q: "[gb3,gb4]@15 ~",
})).s("gm_piano").gain(0.25)

stack(piano, piano_2, piano_3, piano_4, piano_5)

More by Gohancito Music