Strudelify

An der schönen blauen Donau Op.314

Andrea Motas

KeyD majorTempo180 bpm
0:00/0:00
// An der schönen blauen Donau Op.314 — Andrea Motas
// 180 bpm, 3/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5161782; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 174 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/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.

// other · violin
const violin = note(`<
  A B C D E D@2 F ~ G F H I J@3 K L M ~@6 N O P ~ N Q R ~ S T R ~ N O P ~ U V W ~ X Y Z AA AB@2 AC@2 AD AE AF AG AH AI
  AJ AK ~ AL ~ AM AH AN AO AP AQ AR AS AT AG AH AI AJ AK ~ AL ~ AM AH AN AO AP AQ AR AS AT M AU M ~ N O P ~ N Q R ~ S T
  R ~ N O P ~ U V W ~ X Y Z AA AB@2 AC@2 AD AE AF AG AH AI AJ AK ~ AL ~ AM AH AN AO AP AQ AR AS AT AV@4 AW@4 AV@4 AX AY
  AZ BA AV@4 AW@4 AV@4 AX AY AZ BA
>`.pickRestart({
  A: "c#4 e4", B: "d4 f#4", C: "e4 g4", D: "f#4 a4", E: "g4 a4", F: "[a3,g4]@5 ~@11", G: "~@5 [a3,g4]@5 ~ [a3,g4]@5",
  H: "~@5 [a3,f#4]@5 ~ [a3,f#4]@5", I: "[a3,f#4]@5 ~@11", J: "g4/3", K: "b4", L: "a4", M: "g4", N: "~@11 a4@2 f#5@3",
  O: "f#5@5 ~@6 a4@2 d5@3", P: "d5@5 ~@11", Q: "f#5@5 ~@6 a4@2 c#5@3", R: "c#5@5 ~@11", S: "~@11 c#5@2 g5@3",
  T: "g5@5 ~@6 a4@2 c#5@3", U: "~@11 d5@2 a5@3", V: "a5@5 ~@6 d5@2 f#5@3", W: "f#5@5 ~@11", X: "~@11 d5@2 b5@3",
  Y: "b5@5 ~@6 d5@2 g5@3", Z: "g5@5 ~@6 e4@5", AA: "e4@5 g4@5 ~ b4@3 ~@2", AB: "[b4@21 g#4@5 ~ a4@5]/2",
  AC: "[a5@21 d5@5 ~ f#5@5]/2", AD: "b4@11 e4@5", AE: "c#5@11 e4@5", AF: "[a3,f#4]@5 ~@3 [a3,f#4]@3 [a3,f#4]@5",
  AG: "~@5 f#5@3 ~@3 e5@3 ~@2", AH: "e5@5 d5@3 ~@3 d5@3 ~@2", AI: "~@5 d5@3 ~@3 c#5@3 ~@2",
  AJ: "c#5@5 d5@3 ~@3 d5@3 ~@2", AK: "[d4,b4]@5 ~@11", AL: "e5 e5@4 ~@11, ~ f#5 ~@14",
  AM: "e5 e5@4 f#5@3 ~@3 e5@3 ~@2, ~ f#5 ~@14", AN: "~@5 b4@3 ~@3 a#4@3 ~@2", AO: "c#5@5 b4@3 ~@3 b4@3 ~@2",
  AP: "~@5 g#4@5 ~ b4@5", AQ: "b4@11 a4@5", AR: "g#4@8 f#4@3 d4@2 b3@3", AS: "f#4@3 f#4@2 f#4@3 ~@3 e4@3 ~@2",
  AT: "a3@3 ~@13", AU: "e4", AV: "~@5 [a3,e4]@3 ~@3 [a3,e4]@3 ~@2", AW: "~@5 [a3,f#4]@3 ~@3 [a3,f#4]@3 ~@2",
  AX: "d4@5 e4@5 ~ f#4@5", AY: "a4@11 g4@5", AZ: "a4@3 a4@2 a4@5 ~ g4@5", BA: "f#4@5 ~@11",
})).s("gm_violin").gain(0.3)

// chords · viola
const viola = note(`<
  A B C B D B E F ~ G F H I J K L M N J ~@6 O@4 P@4 Q@4 O@8 G@2 R S Q@2 O@2 K T U V J@3 W X Y X Y J@3 Z L AA AB AC V J@3
  W X Y X Y J@3 Z L AA AB AC J AD J ~ O@4 P@4 Q@4 O@8 G@2 R S Q@2 O@2 K T U V J@3 W X Y X Y J@3 Z L AA AB AC AE@2 AF@2
  AG@2 AH@2 AE@2 AF@2 AI AJ AK AL AE@2 AF@2 AG@2 AH@2 AE@2 AF@2 AI AJ AK I
>`.pickRestart({
  A: "a3@5 a3@5 ~ a3@5", B: "[a3,d4]@5 [a3,d4]@5 ~ [a3,d4]@5", C: "[a3,e4]@5 [a3,e4]@5 ~ [a3,e4]@5",
  D: "c#4@5 c#4@5 ~ c#4@5", E: "d#4@5 d#4@5 ~ d#4@5", F: "e4@5 ~@11", G: "~@5 e4@5 ~ e4@5", H: "~@5 d4@5 ~ d4@5",
  I: "d4@5 ~@11", J: "e4", K: "d4", L: "c#4", M: "g4", N: "f#4", O: "~@5 [a3,d4]@5 ~ [a3,d4]@5", P: "~@5 c#4@5 ~ c#4@5",
  Q: "~@5 [g3,c#4]@5 ~ [g3,c#4]@5", R: "e4@5 ~@6 e3@5", S: "e3@5 g3@5 ~ b3@3 ~@2", T: "g3",
  U: "[a3,d4]@5 ~@3 [a3,d4]@3 [a3,d4]@5", V: "~@5 d5@3 ~@3 c#5@3 ~@2", W: "~@5 [g#3,d4]@5 ~ [g#3,d4]@5",
  X: "~@5 [c#4,a4]@5 ~ [c#4,a4]@5", Y: "[e4,c#5]@5 c#4@5 ~ c#4@5", Z: "[d4,g#4]@11 d4@5", AA: "f#3",
  AB: "d4@3 d4@2 d4@3 ~@3 d4@3 ~@2", AC: "c#4@3 ~@13", AD: "a3", AE: "g4@5 ~@6 a4@5", AF: "[f#5@21 e5@5 ~ a4@5]/2",
  AG: "f#4@5 ~@6 a4@5", AH: "[e5@21 d5@5 ~ a4@5]/2", AI: "d4@5 c#4@5 ~ c4@5", AJ: "d#4@11 e4@5",
  AK: "f#4@3 f#4@2 f#4@5 ~ e4@5", AL: "d4@5 ~@6 a4@5",
})).s("gm_viola").gain(0.3)

// other · cello · "Violoncello"
const cello = note(`<
  A B C B D E F G ~ H I H I J@5 K L M N ~@3 O@4 P@4 Q@4 O@4 R@4 S@2 T U V W O R X Y Z ~ AA AB AA AB AC@4 AA AB AA AD AE
  AF AG AH ~ AA AB AA AB AC@4 AA AB AA AD AE AF AG AH ~@4 O@4 P@4 Q@4 O@4 R@4 S@2 T U V W O R X Y Z ~ AA AB AA AB AC@4
  AA AB AA AD AE AF AG AH AI AJ AI AJ AK AL AK AL AI AJ AI AJ AF X AM AN AI AJ AI AJ AK AL AK AL AI AJ AI AJ AF X AM AO
>`.pickRestart({
  A: "c#3@5 a2@5 ~ c#3@5", B: "d3@5 a2@5 ~ d3@5", C: "e3@5 a2@5 ~ e3@5", D: "c#4@5 a3@5 ~ c#4@5", E: "d4@5 a3@5 ~ d4@5",
  F: "d#4@5 a3@5 ~ d#4@5", G: "e4@5 ~@11", H: "~@5 a3@5 ~ a3@5", I: "a3@5 ~@11", J: "a3", K: "a3@11 ~@5",
  L: "a2@5 ~@11", M: "g2@5 ~@11", N: "e2@5 ~@11", O: "d3@5 [f#3,a3]@5 ~ [f#3,a3]@5", P: "e3@5 [g3,a3]@5 ~ [g3,a3]@5",
  Q: "a2@5 [e3,a3]@5 ~ [e3,a3]@5", R: "f#2@5 [d3,a3]@5 ~ [d3,a3]@5", S: "g2@5 [d3,b3]@5 ~ [d3,b3]@5",
  T: "g2@5 ~@6 e2@5", U: "e2@5 g2@5 ~ b2@3 ~@2", V: "e3@5 [g3,b3]@5 ~ [g3,b3]@5", W: "a2@5 [e3,b3]@5 ~ [e3,b3]@5",
  X: "g2", Y: "a2", Z: "d3@5 ~@3 d3@3 d3@5", AA: "e3@5 g#3@5 ~ g#3@5", AB: "e3@5 g#3@5 ~ f#3@5", AC: "a2@5 e3@5 ~ e3@5",
  AD: "e3@5 g#3@5 ~ f3@5", AE: "f#3", AF: "d3", AG: "e2@3 ~@2 g#2@3 ~@3 e2@3 ~@2", AH: "a2@3 ~@13",
  AI: "e3@5 c#4@5 ~ c#4@5", AJ: "a2@5 c#4@5 ~ c#4@5", AK: "d3@5 d4@5 ~ d4@5", AL: "a2@5 d4@5 ~ d4@5",
  AM: "a2@5 a3@5 ~ a2@5", AN: "d3@5 ~@11", AO: "d2@5 ~@11",
})).s("gm_cello").gain(0.3)

stack(violin, viola, cello)

More by Andrea Motas