Strudelify

pegasus fantasy

Seiji Yokoyama

KeyE♭ majorTempo120 bpm
0:00/0:00
// pegasus fantasy — Seiji Yokoyama
// 120 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5058265; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 54 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · viola
const viola = note(`<
  A@2 B@2 C@2 D@2 E F G H@2 I J I K L@2 M@2 N O P Q R S T@4 U@2 V W X@2 Y Z@3 AA M I AB J@2 F AC AD AE@2 AF@2
>`.pickRestart({
  A: "[c4 eb4 g4 f4@2 d4 bb3 ab3@2 c4 eb4 d4@2 bb3 g3@2]/2", B: "[c4 eb4 g4 f4@2 d4 bb3 ab3@9]/2",
  C: "c4!2 c5 c4!3 c5 c4", D: "[c4!2 c5 c4!3 c5 c4@2 ~@7]/2", E: "~@3 c4@2 d4 eb4 f4", F: "g4", G: "~@3 g4@2 f4!2 eb4",
  H: "[f4 eb4@2 d4@10 ~ d4!2]/2", I: "eb4!8", J: "f4!8", K: "d4!8", L: "c4!8", M: "g4!8", N: "ab4!8", O: "bb4!8",
  P: "c5!8", Q: "c4 c5 bb3 bb4 ab3 ab4 g3 g4", R: "~@3 ab4@2 g4!2 f4", S: "g4@3 f4@2 bb3!3",
  T: "[bb4@2 ab4@2 g4@2 f4 eb4@6 c4 d4 eb4@2 d4 c4 eb4@2 d4 eb4 f4@2 eb4 d4 f4@2 bb3!3]/4", U: "[b3@3 c4@3 d4@8 ~@2]/2",
  V: "~@3 g4@5", W: "eb4 c4!2 g3", X: "[ab3@3 c4@11 ~@2]/2", Y: "~@3 f4@5",
  Z: "[f4@2 f4@2 eb4@2 d4 eb4@6 eb4 f4 b3@7 ~@2]/3", AA: "~@4 g4!4", AB: "eb4!6 d4 eb4", AC: "c4@6 c4!2 c4@8",
  AD: "ab3@8 ab3@3 bb3@2 c4@3", AE: "[bb3@9 bb3@3 bb3@2 d4@2]/2", AF: "[c4@3 c4@3 c4@10]/2",
})).s("gm_viola").gain(0.4)

// other · viola
const viola_2 = note(`<
  A@3 B C@2 D@2 E B@2 F@2 G H I J K@2 L@2 M N F O ~@8 P F M@2 N@2 M Q R S T@2 U@2 V W X Y@2 Z@2
>`.pickRestart({
  A: "c4/3", B: "c4!8", C: "[c4 eb4 g4 f4@2 d4 bb3 ab3@2 c4 eb4 d4@2 bb3 g3 ~]/2", D: "[c4 eb4 g4 f4@2 d4 bb3 ab4@9]/2",
  E: "ab4!2 ab4@2 ~@4", F: "g4!8", G: "ab4!8", H: "bb4!8", I: "c5!8", J: "~@3 c4@2 d4 eb4 f4",
  K: "[g4@11 g4@2 f4!2 eb4]/2", L: "[f4 eb4 ~ d4@7 d4!6]/2", M: "eb4!8", N: "f4!8", O: "c4!2 bb3!2 ab3!2 g3!2",
  P: "~@3 g4!5", Q: "d4!5 ~@3", R: "~@3 g4@5", S: "eb4 c4!2 g3", T: "[ab3@3 c4@11 ~@2]/2", U: "~@3 f4@5", V: "f4",
  W: "c4", X: "g4", Y: "[d4@4 d4@3 d4@2 d4@3 d4@2 d4@2]/2", Z: "[eb4@3 eb4@3 eb4@10]/2",
})).s("gm_viola").gain(0.3)

// other · viola · soft notes
const viola_soft = note("<~@25 A B C D E F E G ~@21>".pickRestart({
  A: "ab3!8", B: "bb3!8", C: "c4!2 g4@2 bb3!2 g4@2", D: "ab3!2 eb4@2 g3!2 d4@2", E: "g4!8", F: "bb4!8", G: "g4!5 ~@3",
})).s("gm_viola").gain(0.2)

// other · viola
const viola_3 = note(`<
  A@3 B C@2 D@2 E F@2 G@2 H I J G F@2 G@2 H I J ~ K L M@4 N@2 O P Q R S T@3 U P Q R V W X Y Z AA@2 AB@2
>`.pickRestart({
  A: "c3/3", B: "c3!8", C: "[g3 eb3 g3 f3@2 d4 bb3 eb3@2 eb3 g3 g3@2 bb3 g3@2]/2",
  D: "[g3 eb3 g3 f3@2 d4 bb3 eb4@2 c4!7]/2", E: "c4!2 c4@2 ~@4", F: "c3!2 g3 c3!3 g3 c3", G: "g3!2 d4 g3!3 d4 g3",
  H: "ab3!2 eb4 ab3!3 eb4 ab3", I: "bb3!2 f4 bb3!3 f4 bb3", J: "c4!2 g4 c4!3 g4 c4", K: "~@3 c4@2 c4!3",
  L: "eb4@3 d4@2 bb3!3", M: "[eb4@2 eb4@2 d4@2 c4 c4@6 c4 d4 c4@2 d4 c4 c4@2 d4 eb4 d4@2 eb4 d4 d4@2 bb3!3]/4",
  N: "[d4@3 eb4@3 f4@8 eb4 f4]/2", O: "g4 g4@6 g4", P: "g4 f4 eb4 d4", Q: "c4@3 g4@5", R: "f4@6 d4 eb4",
  S: "f4 f4@6 bb3", T: "[bb4@2 ab4@2 g4@2 f4 g4@6 eb4 f4 g4@7 eb4 f4]/3", U: "g4 g4@6 f4", V: "f4 f4@5 d4 eb4",
  W: "f4 f4@7", X: "~ ab4 g4 f4", Y: "g4", Z: "eb4", AA: "[f4@4 f4@3 f4@2 f4@3 bb4@2 d5@2]/2",
  AB: "[c5@3 c5@3 c5@10]/2",
})).s("gm_viola").gain(0.4)

stack(viola, viola_2, viola_soft, viola_3)