Strudelify

Auresco Day (Violin Piano Cello) : Xenoblade Chronicles 2

Calary Cello and Violin : Derpinick

KeyG majorTempo82 bpm
0:00/0:00
// Auresco Day (Violin Piano Cello) : Xenoblade Chronicles 2 — Calary Cello and Violin : Derpinick
// 82 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 6, 4/4 at bar 6) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5340961; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 53 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(82/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.

// chords · piano
const piano = note(`<
  A@3 B C@2 D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AH AL AM AN AO AP AQ AR AS AT
  AU@3
>`.pickRestart({
  A: "[~@4 [b4,e5] [a4,d5] [d5,g5] [e5,a5] [b4,e5] [a4,d5] [d5,g5] [e5,a5] [b4,e5] [a4,d5] [d5,g5] [e5,a5] [b4,e5] [a4,d5] [a4,c#5] [e4,a4] [d4,g4] [e4,a4] [g4,b4] [a4,d5], ~@8 [g3,b3,d4,f#4]@15 ~ [f#3,a3,c#4,e4]@15 ~ [e3,g3,b3]@8]/3", // E5 D5 G5 A5 E5 D5 G5 A5 …
  B: "[d4,g4] [a4,d5] [d3,f3,a3,c4,f4,g4,c5]@2, [d#3,g3,a#3] ~", // G5 D5 Dm7 D#
  C: "[~ g4@2 ~, [g2,d5]@3 ~, g4@3 d4@9 ~@4, ~ d3@11 ~@4, ~ g3@5 ~@2]/2", // G5
  D: "~@3 [b3,e4]@3 [b3,e4]@2, c3, ~ g3@7, ~ g4@3, ~@4 e4 b4@11", // E5
  E: "~@3 d3, d3 [d4,f#4], ~@2 a3@3 d5@11, ~ a4@3, ~@2 f#4 a3@5", // D
  F: "~@3 b2, b2@5 f#3@3, ~ f#3@2 [b3,d4]@5, ~ f#4@3, ~@4 d4 a4@11", G: "b3@2 ~ e3 a3@2 a3@2, e3@3 ~ d3@4, ~ b3 ~@2",
  H: "~@3 g3@3 g3@2, [c3,e4], ~@2 g3@3 e5@11, ~ [g4,b4]@3, ~@3 b3@5", // C G
  I: "~@3 d3 ~@2 [a3,d4]@2, d3@3 ~ d3@4, ~ f#4@3, ~ [a3,d4]@2 ~", // D5
  J: "~@3 [f#4,a4], e3@5 a3@3, ~ b3@7, ~ [e4,g4,b4]@3, ~ d3", // F#m Em
  K: "~@3 [a3,d4], c3@5 f#3@3, ~ g3@7, ~ [e4,g4,b4]@3, ~ b2", // D5 Em
  L: "e3 ~ g3 a2@3 a2@2, [a2,c4]@3 ~@5, g3 ~@3, ~ e3@2 [e3,g3,c4]@5", M: "~@3 [d4,f#4]@5, b2, ~ d3@7, ~ f#3@3",
  N: "~@3 e3, c3, ~ e3@5 ~@2, ~ g3@3, ~@3 [b3,c4,e4,g4]@5", O: "~@3 d3, d3@3 ~, ~ a3@7, ~ d4@3, ~@3 [e4,f#4]@5",
  P: "~ [g5,e6] ~ [d6,f#6], e3 d3, ~ b3@3 ~ a3@3", Q: "~ [b5,g6] ~ [f#5,d6], c3 b2, ~ e3@3 ~ f#3@3",
  R: "~ e3 [e3,a3,c4]@2 f#3!2 [f#3,b3]@2, a2 b2, ~@2 b3 ~", S: "~@3 g4 [f3,c4,f4,a4,c5]@4, e3 ~, ~ b3@3 ~@4, ~ e4 ~@2",
  T: "c3 ~@2 e3 ~@3 d4, c2@4 ~ a3@3, ~ c3@3 d3@4, ~@2 g3@2 d4@3 ~, ~@3 f#4",
  U: "~@3 e4 f#3 ~ d4@2, [e2,e3] [b2,b3], ~ g3@3 ~ f#3@3, ~ b3 ~@2", // E B
  V: "~@2 g3@2 d3 ~ a3@2, c3@4 ~ d3@3, g3 ~@3, ~ g2@3 d2@4", W: "~ [e2,e3,g3], [a3,e4], e2 ~, ~ b2@2 b2@5, ~ e3 ~@2",
  X: "~ g4, e3, ~ b3@7, ~ e4@3, ~@3 f#4@5", Y: "~@3 f#4 g4 ~@3, e3 ~, ~ b3@3 ~@4, ~ e4 ~@2",
  Z: "~@3 [g3,c4], c2, ~ g2@7, ~ c3@3, ~@3 e3 [g3,c4] e3@3", // C5
  AA: "~@2 d4 [f#3,d4], d2, [d4,e4,f#4]@3 f#3 [a3,e4,f#4]@4, ~ a2@7, ~ d3@3", // D F#m7
  AB: "~@3 f#3, [b2,f#4], d4@3 [b4,f#5]@5, b3!2 [b3,d4]@2, ~ f#3@5 ~@2", // B5 Bm
  AC: "~ e4 ~ f#4, e3 [d3,f#3,d4], e4 ~@3, ~ b3@3 ~ a3@3", // D
  AD: "~@3 c3, c3 [c4,e4,g4], [c4,e4]@2 g4 b3@5, b3 [g3,b4,e5]@3, g4 e3@7", // C Em
  AE: "~@3 f#3, d3, ~ f#3@5 ~@2, ~ a3@3, ~@3 d4@5", AF: "[e3,g3,b3]@2 ~@5 g4, ~ e2@2 e4, ~@3 b2@5, ~ g3, ~@5 b3@3",
  AG: "[g4,b4,e5] [b4,g5] [a4,f#5] [f#4,d5], ~ [d2,a2,d3]", // Em D D5
  AH: "[c2,c3]@4 [g3,b3,c4,e4] ~ [g3,b3,c4,e4]@6 [g3,b3,c4,e4]@4, [g4,b4,e5]", // C Cmaj7 Em
  AI: "[d2,d3]@4 [a3,d4,f#4] ~ [a3,d4,f#4]@6 [a3,d4,f#4]@4", // D
  AJ: "[b1,b2]@4 [b3,d#4,f#4] ~ [b3,d#4,f#4]@6 [b3,d#4,f#4]@4, [b4,d#5,a5]", // B B7
  AK: "~@3 e3 [c4,f4]@2 ~ f3, [b4,e5,g5], e2 f2, e3@3 ~ f3@3 ~, ~ [b3,e4,g4] ~ [c4,f4,a4]", // F5 Em F
  AL: "[d2,d3]@4 [a3,d4,f#4] ~ [a3,d4,f#4]@6 [a3,d4,f#4]@4, [a4,d5,f#5]", // D
  AM: "~@7 e3, [a4,f#5], [b3,e4]@3 a3@2 b2@3, e3 e3@2 a3, ~ b2@3 [b3,e4,g4,e5]@4", // D E5 Em
  AN: "~@7 d5, e4@4 b3 g5 f#5@2, b3@3 g3@5, g3 e3@3, ~ b2@7",
  AO: "~@7 d5, [c3,e5]@4 c4 a4 b4@2, ~ d5@5 b3@10, ~ e3@7, ~ b4 g3@6", // C
  AP: "~@7 g4, [d3,a4]@5 g4 f#4@2, ~ f#3@2 f#3@5, ~ a3@3, ~ d4", // D5
  AQ: "~@7 f#5, a4@3 f#5@2 d5 [b2,e5]@2, b2@3 [b3,b4]@5, ~ d3@7, ~ f#3@3", // E5 B
  AR: "~@3 d5 ~@2 [d4,a4]@2, [e3,b4] [d3,b4], d5 [e4,e5] ~@2, ~ g5@7 ~@8, ~ [b3,f#5]@3 ~ a3@3", // D5 E5 G E B5
  AS: "~@7 b4, c3@2 e5 b3@2 d5 [c3,e5]@2, e4 b4 e4@2, g4 [g3,g4]@3, ~ e3@7", // C G
  AT: "~@7 d5, d3@4 a4 g4 [d3,a4]@2, a4@3 d4@5, ~ f#3@7, ~ a3@3", // D5
  AU: "[~@8 e6@15 ~, [e3,f#5]@4 g4 b4 e5 g5@5 ~@12, ~ g3@11 ~@12, ~ g5 e5 e4@9 ~@12, ~ b3@5 ~@6]/3", // Esus2
})).s("gm_piano").gain(0.32)

// other · cello · "Violoncello"
const cello = note(`<
  ~@6 A B C D E F G H I J K L M N O P Q R S T ~@2 A U V W X Y Z AA AB L AC AD AE L Z ~@10
>`.pickRestart({
  A: "c2 c3", B: "d3@3 a2 f#3@2 d3@2", C: "b2@2 f#3 d3", D: "e3@2 d3 a2", E: "c2 g2@2 e2", F: "d2 d3@2 f#2",
  G: "e2@2 e3@2 f#3@2 e3 f#3", H: "g3@2 f#3 g3 f#3@2 e3 d3", I: "e3 a2", J: "b2@5 e3 d3 f#3", K: "e3@3 c3@3 g2@2",
  L: "a2 d3", M: "~@2 b2@2 g3@2 f#3 e3", N: "e3@2 d3 e3 d3@2 b2@2", O: "a2@2 f#2 b2", P: "e3 g3 f3 c3", Q: "c2@2 d2 d3",
  R: "e3@2 b2 d3", S: "c3 e2 a2@2", T: "b2", U: "d3@3 e3 f#3@2 d3@2", V: "b2@3 f#3@5", W: "b2@2 d3 f#3",
  X: "e3 g3@2 e3", Y: "d3 a2 d3 f#3", Z: "e3", AA: "~ g3 f#3 d3", AB: "e3@2 c2 g2", AC: "b2 d#3", AD: "e3 g3 f3 ~",
  AE: "c3 c2",
})).s("gm_cello").gain(0.3)

stack(piano, cello)