Strudelify

Final Fantasy X - Suteki Da Ne (Isn't it Beautiful)

Nobuo Uematsu Arrannged by Arthur Morrison

KeyF majorTempo80 bpm
0:00/0:00
// Final Fantasy X - Suteki Da Ne (Isn't it Beautiful) — Nobuo Uematsu Arrannged by Arthur Morrison
// 80 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1912986; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/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 · violin
const violin = note(`<
  A B C D E F G H I J K L M N O P Q N R S T U V W T U X Y Z AA AB AC AD AE AF@2 AG@2 AH AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ BA BB BC BD AA BE AK BF BG BH BI BJ BK BL BM Z AA AB AC AD AE AF@2 AG@2 AH AI AJ AK BN BO BP BQ
  BR BS BT BU@3
>`.pickRestart({
  A: "a4 bb4!2 g4 a4 bb4 f4 c4", B: "d4 e4 f4@4 c4@2", C: "a4@4 e5@3 e5", D: "a4@6 g4 a4",
  E: "d4@4 a4@4 [g4,a4] g4@3 e4@2 c4@2", F: "a4@2 a4 bb4 a4@4", G: "d5@6 a4 d5 e5@6 g5@2", H: "f5@2 e5@2 d5@2 f5 g5",
  I: "g3 d4 f4 d4 f4 a3 bb3 f4", J: "c4", K: "~@2 f4@2 d4@2 f4@2 f4 e4 d4@2 a4@2 e4@2",
  L: "a3@2 a4@2 d5@2 d4@2 f4 e4 a4@2 d5@2 a4@2", M: "d4@2 e4 f4 e4@2 f4 g4", N: "g4 f4!3 e4@2 ~@2",
  O: "g4 a4 g4 f4 e4@2 ~@2", P: "c4 d4 c4 d4 c4@2 ~@2", Q: "c4@2 d4@2 e4@2 e4 f4 e4@4 f4@2 g4@2",
  R: "g4 a4 g4 f4 d4 e4 c4@2", S: "c4 d4 d4@2 ~@4", T: "f4 e4 a4 d4 e4 g3 c4 g3", U: "f4 a3 c4 a3 e4 f4 g4 g3",
  V: "f4 a3 c4 a3 e4 g3 c4 g3", W: "a4 d4 f4 a4 e4 c5 a4 e4", X: "f4 a3 f4 a3 g4 g3 e4 g3", Y: "d4 f5 e5 g5",
  Z: "d5@3 c5@3 bb4@3 a4@3 a4@2 g4@2", AA: "f4@8 e4@6 d4 e4", AB: "f4@8 bb4@6 g4 bb4", AC: "c5@5 d5@2 c5",
  AD: "a4@4 f4@2 g4 a4 d4@8", AE: "c4@5 g3 a3 c4 e4@8", AF: "[f4 e4 d4@4 a4@2 a4@10 f4@2 a4@2 c5@4 a4@2 c5@2 e5@2]/2",
  AG: "[f5 e5 d5@4 a5@2 a5@20 ~@4]/2", AH: "~@4 e4@3 e4", AI: "g4", AJ: "~@8 a4@6 g4 a4", AK: "d5", AL: "c5@5 a4 g4 a4",
  AM: "e4 ~", AN: "f4 a3 f4 a3 e4 a3 e4 a3", AO: "e4 a3 e4 a3 f4 a3 f4 a3", AP: "g4 bb3 g4 bb3 g4 c4 g4 c4",
  AQ: "a4 c4 a4 a3 db5 e4 d5 e5", AR: "f5 a4 d5 f5 e5 g4 c5 e5", AS: "e5@2 a4@2 e5@2 a4@2 f5@2 a4@2 f5@2 f4 g4",
  AT: "f4 bb3 f4 bb3 e4 a3 e4 a3", AU: "a4 d4 a4 d4 c5 e4 c5 e4", AV: "d5 d4 e5 e4 d5 e4 d5 g5",
  AW: "a5@2 d5@4 g5@2 e5@2 e4@2 e5 f5 e5@2", AX: "f4 a3 f4 a3 g4 a3 e4 a3", AY: "f4@4 a4 e4 f4@2 d5@2 f4@2 a4@2 d4@2",
  AZ: "f4 a3 a4 d4 g4 c4 e4 g3", BA: "f4 a3 a4 c4 g4 c4 c5 e4", BB: "f4 a3 a4 c4 e4 f4 a4 c4",
  BC: "f4 a3 e4 f4 e4!2 c5@2", BD: "a4 g4", BE: "f4@5 g4 a4 f5 e5@8", BF: "~@3 d5", BG: "c5@3 c5",
  BH: "a4@8 c5@3 d5@2 e5@3", BI: "f5@3 g5@2 a5@3 c6@6 a5 c6", BJ: "d6 c5", BK: "c5@4 f5@4 g5@6 a5 c6", BL: "d6 a6@7",
  BM: "d4 d5 c5 e5", BN: "c5@4 c5 a4 g4 a4", BO: "e4@2 ~ a4", BP: "f4 a3 f4 a3 f4 a3 f4 a3",
  BQ: "g4 bb3 g4 bb3 bb4 a4 g4 bb3", BR: "e4 a3 e4 a3 d4 g3 d4 g3", BS: "g4 c4 g4 c4 e4@4",
  BT: "a4 f5!2 g4 a4 e5 f4 c5", BU: "[d5@2 e4@2 f4@2 c5@2 bb4@2 d4@2 e4@2 a4@10 ~@4 f4 a4@11 ~@8]/3",
})).s("gm_violin").gain(0.25)

// other · viola
const viola = note(`<
  ~@2 A B C D E F G H I J K L M N K O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH@2 AI AJ AK AL AM AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO Y Z AA AB AC AD AE AF AG AH@2 AI AJ AK AL AM AN BP
  BQ BR BS BT BU@3
>`.pickRestart({
  A: "f4 a3 d4 c4 ~ g3 c4 g3", B: "d4 a3 d4 f4 e4 a3 c4 a3", C: "d4 a3 f4 a3 e4 g3 c4 g3",
  D: "f4 a3 c4 f4 d4 a3 db4 a3", E: "d4 f4 d4 a4 g4 c4 e4 c4", F: "f4 a3 e4 a3 d4 a3 d4 f4",
  G: "g3 d4 f4 d4 f4 a3 bb3 f4", H: "a3", I: "~@2 d4@2 d4@2 e4@2 f4 e4 d4@2 a4@2 e4@2",
  J: "a3@2 e4@2 f4@2 d4@2 f4 e4 d4@2 f4@2 d4@2", K: "f4 e4 a4 f4 e4 g3 c4 g3", L: "f4 a3 c4 a3 e4 f4 g4 g3",
  M: "f4 a3 c4 a3 e4 g3 c5 g3", N: "a4 d4 f4 d4 e4 c5 a4 e4", O: "f4 a3 c4 a3 e4 g3 c4 g3",
  P: "f4 a3 c4 a3 g4 g3 e4 g3", Q: "d4 c5 g4 c5 b4 d4 g4 d4", R: "d3 c3", S: "f3@4 g3@2 a3 bb3", T: "c4@2 c4 g4",
  U: "f4@4 f4 e4 d4 c4", V: "d4@8 c4@6 g3 bb3", W: "a3@6 g3 f3 e3@8", X: "a3 c4", Y: "d4 f4 a4 f4 g4 e4 c5 g4",
  Z: "f4@3 e4@3 d4@3 c4@3 a3@2 g3@2", AA: "c4 a3 f4 c4!2 g3 e4 g3", AB: "d4 a3 f4 a3 f4 d4 bb4 d4",
  AC: "c4 a3 f4 c4 g3 c4 g3 c4", AD: "d4 a3 f4 a3 d4 a3 f4 a3", AE: "c4 a3 a4 c4 e4 c4 g4 c4",
  AF: "d4 a3 f4 a3 f4 d4 a4 d4", AG: "c4 a3 a4 c4 c5 e4 a4 c4", AH: "[d5 c5 bb4@4 f5@2 f5@20 ~@4]/2",
  AI: "c4 e4 a4 e4 c4 e4 a4 e4", AJ: "c4 e4 g4 c4 e4 c4 g4 c4", AK: "a3 bb3 d4 bb3 a3 bb3 f4 bb3",
  AL: "d4 bb3 f4 bb3 d4 bb3 f4 bb3", AM: "e4 a3 c4 a3 e4 a3 c4 a3", AN: "c4 ~", AO: "d4 a3 d4 a3 c4 a3 c4 a3",
  AP: "c4 a3 c4 a3 d4 a3 d4 a3", AQ: "d4 bb3 d4 bb3 e4 c4 e4 c4", AR: "f4 c4 f4 a3 a4 e4 a4 db5",
  AS: "d5 f4 a4 d5 c5 e4 g4 c5", AT: "c5@2 a4@2 c5@2 a4@2 d5@2 a4@2 d5@2 d4 e4", AU: "d4 bb3 d4 bb3 c4 a3 c4 a3",
  AV: "f4 d4 f4 d4 a4 e4 a4 e4", AW: "f4 d4 c5 e4 bb4 e4 bb4 g5", AX: "f5 d5 a4@2 bb4 e4 bb4@2",
  AY: "d4 a3 d4 a3 e4 a3 c4 a3", AZ: "a3@2 d4@2 f4 e4 f4@2 f4@2 d4@2 f4@2 a3@2", BA: "d4 a3 f4 d4 e4 c4!2 g3",
  BB: "c4 a3 f4 c4 e4 c4 e4 c4", BC: "c4 a3 f4 c4!2 d4 e4 c4", BD: "d4 a3 c4 d4 e4 c5 a4 e4",
  BE: "f4 d4 f4 a3 e4 c4 e4 g3", BF: "c4 a3 c4 a3 c4 g3 c4 g3", BG: "c4 a3 a4 c4 g4 c4 e4 g3",
  BH: "c5 d4 g4 c5 b4 d4 g4 d4", BI: "f4 d4 a4 d4 e4 c4 d5 c5", BJ: "f4 a3 f4 a3 g4 g3 c5 c4",
  BK: "f4 a3 f4 a3 e4 c4 g4 e4", BL: "a4 d4 f4 d4 e4 g3 e4 c4", BM: "a4 f4 a4 f4 g4 c4 e4 g3",
  BN: "f4 a3 f4 a3 e4 g3 e4 c4", BO: "f4 a3 c4 a3 g4 c4!2 g3", BP: "d4 a3 d4 a3 d4 a3 d4 a3",
  BQ: "d4 bb3 d4 bb3 g4 f4 d4 bb3", BR: "c4 a3 c4 a3 bb3 g3 bb3 g3", BS: "e4 c4 e4 c4 c4@4",
  BT: "a4 bb4!2 g4 a4 bb4 f4 c4", BU: "[d5@2 e4@2 f4@2 c5@2 f4@2 d4@2 e4@12 ~@4 d4 f4@11 ~@8]/3",
})).s("gm_viola").gain(0.32)

// other · cello · "Violoncello"
const cello = note(`<
  A B C D C E F G H I J@2 C K L K C K L M C K L N C K L O P Q R Q S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM
  AN AO AP C K L N C K L M C K L N C K L AQ P Q R Q S T U V W X Y Z AA AB AC AD AR AS AT AU A AV@3
>`.pickRestart({
  A: "d4 c4 bb3 a3", B: "g3 d4@2 a2", C: "d3 c3", D: "bb2 a2", E: "f3 a2", F: "bb2 c3", G: "a2 d3", H: "g2", I: "a2",
  J: "d3", K: "f3 e3", L: "f3 c3", M: "g3!2", N: "d3 a2", O: "d2@6 d2@2 d2@2 g2 a2@2 d3@3",
  P: "f4 d4 a3 e4 c4 g3 d4 bb3 f3 c4 a3 e3 f3@2 e3@2", Q: "f3@6 f3@2 c3@6 bb2 c3", R: "d3@6 d3@2 bb3@6 f3 bb3",
  S: "bb2@3 bb2 bb2@2 bb2@2", T: "f2@6 f2@2 c3@6 a2 c3", U: "d3@3 d3 bb2@4", V: "f2@3 g2 a2@4",
  W: "bb2@3 bb2 bb2@2 bb2 f2", X: "bb2@3 ~", Y: "a2@6 a2@2 a2@6 d2 e2", Z: "a2@6 a2@2 a2@6 e2 f2",
  AA: "bb2@6 bb2@2 bb2@6 e2 f2", AB: "bb2@6 bb2@2 bb2@6 d2 e2", AC: "a2@3 a2 a2@2 d2 e2", AD: "a2@2 a2!2",
  AE: "bb2@3 bb2 c3@4", AF: "a2@3 a2 d3@4", AG: "g2@3 g2 c3@4", AH: "f2@2 f2 g2 a2@2 bb2 db3",
  AI: "bb2@6 bb2@2 c3@5 a2 c3@2", AJ: "a2@6 c3@2 d3@5 a2 d3@2", AK: "g2@5 g2@3 a2@4 a2@2 a2@2", AL: "bb2@4 c3@3 c3",
  AM: "d3@8 g2 d3 e3 f3 e3@4", AN: "d3@6 g2 a2 d2@4 a2@4", AO: "[d2,d3] d3", AP: "d3!2", AQ: "d2@6 d2@4 g2 a2@2 d3@3",
  AR: "bb2@3 bb2 bb2@4", AS: "g2@3 g2 g2@4", AT: "d2@3 d2 d2@3 a2", AU: "d2@3 a2 d3@4",
  AV: "[g3@4 bb3@4 a2@16 d3 a3 d4 e4@13 ~@8]/3",
})).s("gm_cello").gain(0.3)

stack(violin, viola, cello)