Strudelify

Melodica Waltz No.2

Kaden Dayog

KeyA minorTempo160 bpm
0:00/0:00
// Melodica Waltz No.2 — Kaden Dayog
// 160 bpm, 3/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5949084; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 95 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/3)

// 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 · "Continuo"
const piano = note(`<
  A@4 B C@2 D E F G H I@2 J K L M N O P@2 Q R S T@2 U V W X Y Z AA AB AC AD AE@2 AF AG AH AI AJ@2 AK AL AM AN@2 AO AP
  AQ@2 AR AS AT AU AV@2 AW AX AY AZ BA BB BC BD BE BF BC BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ
  CA@2 CB CC
>`.pickRestart({
  A: "a3@5 [c4,e4]@3 ~@3 [c4,e4]@3 ~@2", B: "[a3,a4]@5 [c4,e4]@3 ~@3 [a4,c5,e5]@5, ~@5 c5@5 ~ [c4,e4]@3 ~@2",
  C: "[a3@5 [c4,e4]@3 ~@3 [c4,e4]@3 ~@2 a3@5 [c4,e4]@3 ~@3 [c4,e4]@3 ~@2, [a4,c5,e5]@15 ~]/2", // C Am
  D: "f5@3 e5@2 [c4,e4]@3 ~@3 [c4,e4]@3 ~@2, a3@5 d5@10 ~", // C
  E: "[b3,b4]@5 [d4,f4]@3 ~@3 [d5,f5]@5, ~@5 d5@5 ~ [d4,f4]@3 ~@2", // B Dm
  F: "b3@5 [d4,f4]@5 ~ [d4,f4,b4,d5]@5, [d5,f5]@5 ~@3", G: "a3@5 [c4,e4]@5 ~ [c4,e4]@5, [c5,e5]@15 ~",
  H: "[a3,a4,c5]@5 [c4,e4,c5]@5 ~ [c4,e4,a4,c5,e5]@5", // Am C Am
  I: "[a3@5 [c4,e4]@5 ~ [c4,e4]@5 a3@5 [c4,e4]@5 ~ [c4,e4]@5, [a4,c5,e5]@15 ~]/2", // C Am
  J: "f5@3 e5@2 [c4,e4]@5 ~ [c4,e4]@5, a3@5 [d5,f5]@10 ~", K: "[g#3,g#4,b4]@5 [b3,d4,b4]@5 ~ [b3,d4,g#4,b4,d5]@5",
  L: "[a3,e4,a4]@5 [c4,e4,c5]@5 ~ [c4,e4,a4,e5]@5", M: "[g#3,e4,g#4,b4]@5 [b3,d4,b4]@5 ~ [b3,d4,g#4,b4,d5]@5",
  N: "a3@5 [c4,e4]@5 ~ [c4,e4]@5, [a4,c5,a5]@15 ~", O: "[a3,a4]@5 [c4,e4]@5 ~ [c4,e4,a4,c5]@5, ~@5 e5@3 ~@8",
  P: "[b3,b4]@5 [d4,f4,d5]@5 ~ [d4,f4,b4,d5]@5", Q: "b3@5 [d4,f4]@5 ~ [d4,f4,c5]@5, [b4,d5]@5 ~@3",
  R: "[b3,d5]@5 [d4,f4,c5]@5 ~ [d4,f4,b4,d5]@5", S: "a3@5 [c4,e4]@5 ~ [c4,e4]@5, [a4,c5]@5 ~@3",
  T: "[[b3,f4]@5 [d4,f4]@5 ~ d4@5 b3@5 [d4,f4]@5 ~ [d4,f4]@5, [a4,b4]@15 ~, ~@11 f4@10 ~@11]/2", // Bdim Dm Asus2
  U: "[b3,a4]@5 [d4,f4,b4]@5 ~ [d4,f4,a4,c5]@5", V: "b3@5 [d4,f4]@5 ~ [d4,e4,f4,g#4,b4]@5, [e4,b4]@5 ~@3",
  W: "[a3,a4]@5 [c4,e4,c5]@5 ~ [c4,e4,a4,c5,e5]@5", X: "g#3@5 [b3,d4]@5 ~ [b3,d4,b4]@5, [g#4,b4,e5]@5 ~@3",
  Y: "g#3@5 [b3,d4]@5 ~ [b3,d4]@5, [b4,e5]@15 ~", Z: "[g#3,g#4]@5 [b3,d4,b4]@5 ~ [b3,d4,g#4,b4,d5]@5",
  AA: "g#3@5 [b3,d4]@5 ~ [b3,d4,c5]@5, [b4,e5]@5 ~@3", AB: "[g#3,d5]@5 [b3,d4,c5]@5 ~ [b3,d4,b4,d5]@5",
  AC: "[a3,e4,a4,c5]@5 [c4,e4,c5]@5 ~ [c4,e4,c5,e5]@5", AD: "a3@5 [b3,d4]@5 ~ [b3,d4,g#5,g#6]@5, [a5,a6]@5 ~@3",
  AE: "[a3@5 [c4,e4]@5 ~ [c4,e4]@5 a3@5 [c4,e4]@5 ~ [c4,e4]@5, [a5,a6]@15 ~]/2", // C A
  AF: "g#3@5 [b3,d4]@5 ~ [b3,d4,b5,b6]@5", AG: "g#3@5 [b3,d4]@5 ~ [b3,d4,b5,b6]@5, [g#5,g#6]@5 ~@3",
  AH: "a3@5 [c4,e4]@5 ~ [c4,e4,c5]@5, [a5,a6]@5 ~@3", AI: "[a3,a4]@5 [c4,e4,b4]@5 ~ [c4,e4,c5]@5",
  AJ: "[b3@5 [d4,f4]@5 ~ [d4,f4]@5 b3@5 [d4,f4]@5 ~ [d4,f4]@5, [b4,d5]@31 ~]/2", // Dm Bm
  AK: "b3@5 [d4,f4]@5 ~ [d4,f4]@5, ~@5 a4@10 ~", AL: "[b3,b4]@5 [d4,f4,c5]@5 ~ [d4,f4,a4]@5",
  AM: "[g#3,g#4]@5 [b3,d4,b4]@5 ~ [b3,d4,b4,d5]@5", // G# Bm
  AN: "[g#3@5 [b3,d4]@5 ~ [b3,d4]@5 g#3@5 [b3,d4]@5 ~ [b3,d4]@5, [c5,e5]@15 ~, g#4@15 ~ e4@15 ~]/2", // Bm C
  AO: "[a3,a4]@5 [c4,e4,c5]@5 ~ [c4,e4,a4,c5,f5]@5", AP: "g#3@5 [b3,d4]@5 ~ [b3,d4,b4,d5]@5, [c5,e5]@5 ~@3",
  AQ: "[g#3@5 [b3,d4]@5 ~ [b3,d4]@5 g#3@5 [b3,d4]@5 ~ [b3,d4]@5, [g#4,e5]@15 ~]/2", // Bm C#m
  AR: "g#3@5 [b3,d4]@5 ~ [b3,d4,c5,c6]@5", AS: "g#3@5 [b3,d4]@5 ~ [b3,d4,b4,b5]@5, [d5,d6]@5 ~@3",
  AT: "a3@5 [c4,e4]@3 [c4,e4]@3 [c4,e4]@5, [c5,c6]@15 ~", AU: "~ a5@7, [a3,a4], ~ c5@15",
  AV: "[e5@10 ~ d5@5 c5@10 ~ b4@5, [a3,c4]@15 ~]/2", AW: "a4@10 ~ g#4@5, [c4,e4]@15 ~",
  AX: "a4@10 ~ b4@5, [a3,c4]@15 ~", AY: "[b3,e4]@5 [b3,d4]@3 [b3,d4]@3 [b3,d4]@5",
  AZ: "b3@5 [b3,d4]@3 [b3,d4]@3 [b3,d4,g#4]@5, e4@5 ~@3", BA: "[e4,a4]@10 ~ [d4,d5]@5",
  BB: "c5@5 b4@5 ~ [b3,g#4]@5, c4@5 ~@3", BC: "a4@3 c5@2 [a3,c4,e5]@3 [a3,c4,a5]@3 e5@2 c5@3, a3@5 ~@6 [a3,c4]@5",
  BD: "a2@3 c3@2 [e3,e5]@3 [a3,e5]@3 [e3,e5]@2 [c3,c5]@3, a4@5 ~@11", // E A5 E C
  BE: "[g#3,d5]@5 [b3,d4,d5]@3 [b3,d4,d5]@3 d5@2 b4@3, ~@11 [b3,d4]@5", // G#dim Bm
  BF: "[a3,c5]@5 [a3,c4]@3 [a3,c4]@3 [c5,e5]@2 [a4,c5]@3, ~@5 [c5,e5]@5 ~ [a3,c4]@5", // Am C Am C Am
  BG: "a2@3 c3@2 e3@3 a3@3 e3@2 c3@3, a4@5 [c5,e5]@5 ~ a4@5", // C
  BH: "[g#3,g#4,b4,e5]@5 [b3,d4]@3 [b3,d4]@3 d5@2 e5@3, ~@5 d5@5 ~ [b3,d4]@5", // E Bm
  BI: "[a3,c5]@5 [a3,c4]@3 [a3,c4]@3 [a3,c4,a4,e5]@5, ~@5 a4@5 ~@6", BJ: "g#4@5 e4@5 ~ [g#3,b3,d4,e4]@5, g#3@11 ~@5",
  BK: "[a3,c4]@5 a3@5 ~ [a3,c4]@5", BL: "[b3,d4]@5 b3@5 ~ [g#3,b3]@5", BM: "c4@5 e4@5 ~ [f3,a3,c4,f4,a4]@5, a3@11 ~@5",
  BN: "[b3,b4]@5 d4@5 ~ [b2,d3,b3,a4]@5, e3@5 ~@3", BO: "c4@5 d4@5 ~ [b2,d3,f4,a4]@5, e3@5 ~@3",
  BP: "e4@5 c4@5 ~ [a2,c3,a3,g4]@5, c3@5 ~@3", BQ: "g#3@5 b3@5 ~ [c3,e3,g#3,b3,e4]@5, [g#2,b2]@11 ~@5",
  BR: "[a2,c3,c4]@5 [c3,e3,e4]@5 ~ [e3,g#3,g#4]@5", BS: "[e3,a3,a4]@5 [a3,c4,c5]@5 ~ [c4,e4,e5]@5",
  BT: "[b3,d5]@5 [b3,d4,f5]@5 ~ [d4,e4,e5]@5", BU: "[b3,d5]@5 [b3,d4,b4]@5 ~ [d4,e4]@5",
  BV: "[g#2,g#3,e4,g#4]@5 [b3,d4,b4]@5 ~ [d4,f4,d5]@5", BW: "[a2,e3,a3,c5]@5 [a3,c4,a4]@5 ~ [c4,e4]@5",
  BX: "[g#2,e3,g#3,d5]@5 [b3,d4,b4]@5 ~ [c4,e4]@5", BY: "[a2,e3,a3,c5,e5]@5 [a3,c4,a4]@5 ~ [c4,e4]@5",
  BZ: "[g#2,e3,g#3,b4,d5]@5 [b3,d4,b4]@5 ~ [c4,e4,g#4]@5", CA: "[a2,e3,a3,a4]@5 [a3,c4,c5]@5 ~ [c4,e4,e5]@5",
  CB: "[f3,b3,b4]", CC: "~@3 a5@13, [a2,c3,e3,a4], ~ c5@15, ~ e5@7",
})).s("gm_piano").gain(0.3)

stack(piano)