Strudelify

The Dog Wrestler Waltz

Exurb1a

KeyE♭ majorTempo190 bpm
0:00/0:00
// The Dog Wrestler Waltz — Exurb1a
// 190 bpm, 3/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 3/4 at bar 24) are rendered on a constant 3/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5911928; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 160 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(190/3)

// 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(`<
  ~@9 A@7 B@4 ~@3 C@2 D@2 E@2 F@2 G@2 H@2 E@2 F@2 C@2 D@2 E@2 F@2 G@2 H@2 E@2 F@4 I@2 J@2 K@2 F@2 I@2 J@2 K@2 F@2 L@2
  H@2 E@2 G@2 M@2 C@2 F@2 G@2 F@2 N O P@2 Q R@2 S T U V@8 W@6 X@8 Y@6 Z@4 AA@6 AB@8 AC@8 AD@5
>`.pickRestart({
  A: "[~@3 eb3@28 eb3@4 f3@5 g3@18 bb3@18 ~ d3@18 d4@17]/7", B: "[~ c4@18 ~ ab3@37 ~@7]/4", C: "c4@5 g4@5 ~ g4@5",
  D: "eb4@5 bb4@5 ~ bb4@5", E: "bb3@5 f4@5 ~ f4@5", F: "f3@5 c4@5 ~ c4@5", G: "c3@5 g3@5 ~ g3@5",
  H: "eb3@5 bb3@5 ~ bb3@5", I: "c4", J: "eb4", K: "bb3", L: "ab3@5 eb4@5 ~ eb4@5", M: "f4@5 c5@5 ~ c5@5",
  N: "eb3@11 eb3@2 f3@3", O: "d3@11 d3@2 eb3@3", P: "c3/2", Q: "c3@5 eb3@5 ~ g3@5", R: "g3", S: "b3", T: "d4", U: "f4",
  V: "[g4@36 c5@27 bb4@2 ab4@3 g4@11 ab4@2 g4@3 f4@11 g4@5 ab4@27 bb4]/8",
  W: "[~ ab4@3 g4@16 f4@11 eb4@2 d4@3 eb4@3 d4@2 c4@11 eb5@16 bb4@27 ab4]/6",
  X: "[~ g4@3 f4@27 g4@5 ab4@16 f4@16 ab3@16 f3@16 c5@27 bb4]/8",
  Y: "[~ ab4@3 g4@11 ab4@2 g4@3 f4@11 g4@5 ab4@27 bb4@2 ab4@3 g4@16 f4@11 eb4]/6",
  Z: "[~ d4@3 eb4@3 d4@2 c4@11 eb5@16 bb4@27 ab4]/4", AA: "[~ g4@3 f4@27 g4@5 ab4@16 f4@16 ab3@16 ~@12]/6",
  AB: "[~@4 c4@5 g4@5 ~ g4@5 c4@5 g4@5 ~ g4@5 eb4@5 bb4@5 ~ bb4@5 eb4@5 bb4@5 ~ bb4@5 bb3@5 f4@5 ~ f4@5 bb3@5 f4@5 ~ f4@5 f3@5 c4@5 ~ c4@5 f3@5 c4@5 ~ c4]/8",
  AC: "[~@4 c3@5 g3@5 ~ g3@5 c3@5 g3@5 ~ g3@5 eb3@5 bb3@5 ~ bb3@5 eb3@5 bb3@5 ~ bb3@5 bb3@5 f4@5 ~ f4@5 bb3@5 f4@5 ~ f4@5 f3@5 c4@5 ~ c4@5 f3@5 c4@5 ~ c4]/8",
  AD: "[~@4 f3@5 c4@5 ~ c4@5 f3@5 c4@5 ~ c4@5 f3@32 ~@12]/5",
})).s("gm_viola").gain(0.3)

stack(viola)