Strudelify

Vierteljahrhundert Dreiviertler

Herbert Pixner

KeyB♭ majorTempo140 bpm
0:00/0:00
// Vierteljahrhundert Dreiviertler — Herbert Pixner
// 140 bpm, 3/4, key Bb 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/5416914; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 135 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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 · flute · "Flöte"
const flute = note(`<
  A B C@2 D@2 E F G H I@2 D@2 E F J K C@2 D@2 E F G H I@2 D@2 E F J L M N O P Q R S T U V W X Y Z AA AB ~@2 AC AD AE B
  AF AG AH B AI AJ AK AL AM AN C@2 D@2 E F G H I@2 D@2 E F J L ~@3 AO ~@3 AP ~@3 AO ~@3 AQ@2 ~ AR@7 AS AT AU AV@5 AS AW
  AX@6 AS AT AU AV@5 AS AW AY@2
>`.pickRestart({
  A: "d5@15 ~", B: "c5@15 ~", C: "[bb4@20 ~ d5@5 ~ eb5@5]/2", D: "[f5@15 ~]/2", E: "g5@3 f5@2 eb5@3 g5@3 f5@2 eb5@3",
  F: "a5@3 f5@2 eb5@3 a5@3 f5@2 eb5@3", G: "d5@3 f5@2 bb5@3 d6@3 c6@2 bb5@3", H: "a5@3 c6@2 bb5@3 a5@3 g5@2 eb5@3",
  I: "[d5@20 ~ d5@5 ~ eb5@5]/2", J: "d5@3 d5@2 d5@3 f5@3 f5@2 eb5@3", K: "d5@3 ~@2 d5@5 ~ c5@5", L: "d5@5 ~@3",
  M: "f5@3 f5@2 a5@3 c6@3 a5@2 f5@3", N: "c5@3 c5@2 e5@3 g5@3 e5@2 c5@3", O: "d4@3 f4@2 a4@3 d5@3 f5@2 a5@3",
  P: "d6@3 a5@2 f5@3 d5@3 a4@2 f4@3", Q: "bb5@3 g5@2 d5@3 g5@3 bb5@2 g5@3", R: "a5@3 f5@2 c5@3 f5@3 a5@2 f5@3",
  S: "g5@5 ~@3 c5@3 d5@2 e5@3", T: "f5@3 g5@2 a5@5 ~ bb5@5", U: "c5@3 c5@2 f5@3 a5@3 c6@2 a5@3",
  V: "a4@3 a4@2 e5@3 g5@3 a5@2 c6@3", W: "d6@5 ~@3 a5@3 c6@2 d6@3", X: "bb4@3 c5@2 d5@3 f5@3 bb5@2 f5@3",
  Y: "a5@5 f5@5 ~@6", Z: "g5@5 c5@5 ~@6", AA: "f5@3 c5@2 a4@3 f4@3 a4@2 c5@3", AB: "f5@5 ~@11", AC: "~@11 e5@2 f5@3",
  AD: "a5@5 ~ a5 ~, ~@11 g5@3 ~@2", AE: "f5@8 d5@3 e5@2 f5@3", AF: "bb4@3 bb4@2 bb4@3 a4@3 a4@2 a4@3", AG: "g4@5 ~@11",
  AH: "a4@15 ~", AI: "a4@10 ~ e5@2 f5@3", AJ: "bb5@5 ~ c6 d6, ~@11 bb5@2 ~@3", AK: "c6@8 d6@3 c6@2 bb5@3",
  AL: "c6@5 bb5@10 ~", AM: "a5@15 ~", AN: "~@5 d5@5 ~ c5@5", AO: "bb4@5 a4@3 g4@3 a4@5",
  AP: "f4@3 f5@2 f5@3 c5@3 a4@2 f4@3", AQ: "[c5@15 ~]/2",
  AR: "[~@9 d5@15 ~ c5@15 ~ bb4@20 ~ d5@5 ~ eb5@5 f5@30 ~@2 g5@3 f5@2 eb5@2]/7",
  AS: "~ g5@3 f5@2 eb5@3 a5@3 f5@2 eb5@2", AT: "~ a5@3 f5@2 eb5@3 d5@3 f5@2 bb5@2",
  AU: "~ d6@3 c6@2 bb5@3 a5@3 c6@2 bb5@2", AV: "[~ a5@3 g5@2 eb5@3 d5@20 ~ d5@5 ~ eb5@5 f5@30 ~@2 g5@3 f5@2 eb5@2]/5",
  AW: "~ a5@3 f5@2 eb5@3 d5@3 d5@2 d5@2",
  AX: "[~ f5@3 f5@2 eb5@3 d5@3 ~@2 d5@5 ~ c5@5 bb4@20 ~ d5@5 ~ eb5@5 f5@30 ~@2 g5@3 f5@2 eb5@2]/6",
  AY: "[~ f5@3 f5@2 eb5@3 d5@15 ~@8]/2",
})).s("gm_flute").gain(0.3)

// other · oboe
const oboe = note(`<
  A B C@2 D@2 ~@4 C@2 D@2 ~@2 E F C@2 D@2 ~@4 C@2 D@2 ~@2 E G H I J@2 K L M N H O P@2 Q R S@2 ~@2 T U V W X Y H O Z AA
  AB O Q AC C@2 D@2 ~@4 C@2 D@2 ~@2 E G ~@2 AD AE AF ~ AG W ~@2 AD AE AF ~ AD J@2 ~ AH@7 ~@3 AI@5 ~ AJ AK@6 ~@3 AI@5 ~
  AJ AL@2
>`.pickRestart({
  A: "bb4", B: "f4", C: "[f4@21 f4@5 ~ bb4@5]/2", D: "c5/2", E: "bb4@3 bb4@2 bb4@3 d5@3 d5@2 c5@3",
  F: "bb4@3 ~@2 g4@5 ~ eb4@5", G: "bb4@11 ~@5", H: "c5", I: "g4", J: "a4/2", K: "d5", L: "a4@13 bb4@3", M: "g4@13 c4@3",
  N: "d4@3 e4@2 f4@3 g4@3 a4@2 bb4@3", O: "e5", P: "f5/2", Q: "f5", R: "g5@13 e5@3", S: "[f5@21 c5@3 c5@3 c5@5]/2",
  T: "~@11 ab4@2 a4@3", U: "a4@11 ~ bb4@2 ~@2, ~@11 a4@4 ~", V: "bb4@8 bb4@3 c5@2 d5@3", W: "a4",
  X: "g4@3 g4@2 g4@3 f4@3 f4@2 f4@3", Y: "e4@5 ~@11", Z: "f5@11 g5@2 a5@3", AA: "f5@11 ~ g5@2 bb5@2, ~@11 f5@2 ~@3",
  AB: "a5@8 bb5@3 a5@2 g5@3", AC: "~@5 g4@5 ~ eb4@5", AD: "bb4@5 a4@5 ~ bb4@5", AE: "f4@11 eb4@5", AF: "d4@5 ~@11",
  AG: "bb4@5 a4@5 ~ bb4@2 f4@3", AH: "[~@9 bb4@16 f4@16 f4@21 f4@5 ~ bb4@5 c5@32 ~@7]/7",
  AI: "[~@9 f4@21 f4@5 ~ bb4@5 c5@32 ~@7]/5", AJ: "~@9 bb4@3 bb4@2 bb4@2",
  AK: "[~ d5@3 d5@2 c5@3 bb4@3 ~@2 g4@5 ~ eb4@5 f4@21 f4@5 ~ bb4@5 c5@32 ~@7]/6", AL: "[~ d5@3 d5@2 c5@3 bb4@16 ~@7]/2",
})).s("gm_oboe").gain(0.3)

// other · french horn · "Horn in F"
const french_horn = note(`<
  ~@2 A@4 B A@2 B C A@3 B A C D A@4 B A@2 B C A@3 B A C E F G H@2 I J K L J F@2 I F I M@2 N O P@2 Q R S T N O U V W X W
  ~ A@4 B A@2 B C A@3 B A C E Y I@2 J Y I@2 F Y I@2 F Y I@2 Z@2 ~@3 AA@8 AB@8 AA@8 AC@7 AD@2
>`.pickRestart({
  A: "~@5 f4@5 ~ f4@5", B: "~@5 eb4@5 ~ eb4@5", C: "~@5 d4@5 ~ d4@5", D: "d4@5 ~@11", E: "d4@11 ~@5", F: "a3", G: "e4",
  H: "f4", I: "bb3", J: "f3", K: "e4@13 c4@3", L: "bb3@3 c4@2 d4@3 e4@3 f4@2 g4@3", M: "[a3@21 ~@11]/2",
  N: "f4@3 ~@2 a3@3 c4@3 f4@2 a4@3", O: "e4@11 g4@5", P: "[f4@3 ~@2 f4@27]/2", Q: "g4@11 ~@5", R: "~@5 c4@11",
  S: "c4@5 ~@11", T: "c4@3 d4@2 e4@3 f4@3 g4@2 a4@3", U: "f4@3 ~@2 f4@11", V: "bb4", W: "a4", X: "c5",
  Y: "g3@5 a3@5 ~ bb3@5", Z: "f3/2",
  AA: "[~@14 f4@5 ~ f4@5 ~@5 f4@5 ~ f4@5 ~@5 f4@5 ~ f4@5 ~@5 f4@5 ~ f4@5 ~@5 eb4@5 ~ eb4@5 ~@5 f4@5 ~ f4@5 ~@5 f4@5 ~ f4@5 ~@5 eb4@2]/8",
  AB: "[~@4 eb4@5 ~@5 d4@5 ~ d4@5 ~@5 f4@5 ~ f4@5 ~@5 f4@5 ~ f4@5 ~@5 f4@5 ~ f4@5 ~@5 eb4@5 ~ eb4@5 ~@5 f4@5 ~ f4@5 ~@5 d4@5 ~ d4@5 d4@5 ~@2]/8",
  AC: "[~@4 eb4@5 ~@5 d4@5 ~ d4@5 ~@5 f4@5 ~ f4@5 ~@5 f4@5 ~ f4@5 ~@5 f4@5 ~ f4@5 ~@5 eb4@5 ~ eb4@5 ~@5 f4@5 ~ f4@5 ~@5 d4@2]/7",
  AD: "[~@4 d4@5 d4@16 ~@7]/2",
})).s("gm_french_horn").gain(0.3)

// other · bassoon · "Fagott"
const bassoon = note(`<
  ~@2 A B C D E F G H I A C D E F J K A B C D E F G H I A C D E F J L M N O P Q M R S M N O T U V W M X Y Z N Q X AA AB
  X Y AC T U V W M A B C D E F G H I A C D E F J AD AE AF A X AE AF A AG AE AH A AG AE AH S AI AJ ~@3 AK@7 AL@8 AM@8
  AL@8 AN@2
>`.pickRestart({
  A: "bb2", B: "d3", C: "c3", D: "f3@11 d3@5", E: "eb3@11 eb3@5", F: "f3@11 f3@5", G: "bb3@8 a3@3 g3@5",
  H: "f3@5 g3@5 ~ a3@5", I: "~@5 a3@3 g3@3 f3@2 d3@3, bb3", J: "bb3@5 f3@5 ~ d3@5", K: "bb2@11 f3@5", L: "bb2@11 d3@5",
  M: "f2@5 ~@11", N: "a2@5 ~@11", O: "d2@5 ~@11", P: "a2@5 ~@6 d2@5", Q: "g2@5 ~@11", R: "c3@8 d3@3 c3@5",
  S: "bb2@5 a2@5 ~ g2@5", T: "bb2@5 ~@6 d2@2 e2@3", U: "f2@11 f2@5", V: "c3@11 c2@5", W: "f2@5 c3@5 ~ a2@5", X: "f2",
  Y: "a2", Z: "d3@5 ~@11", AA: "c2@3 ~@5 f2@8", AB: "c2@5 e2@5 ~ g2@5", AC: "d2", AD: "bb2@11 a2@5", AE: "g2",
  AF: "eb3", AG: "f2@11 gb2@5", AH: "eb2", AI: "f2@5 eb2@5 ~ d2@5", AJ: "c2",
  AK: "[~@9 bb2@16 d3@16 c3@16 f3@11 d3@5 eb3@11 eb3@5 f3@11 f3@5 bb3@7]/7",
  AL: "[~ a3@3 g3@5 f3@5 g3@5 ~ a3@5 ~@5 a3@3 g3@3 f3@2 d3@3 bb2@16 c3@16 f3@11 d3@5 eb3@11 eb3@5 f3@11 f3@5 bb3@5 f3@2, ~@25 bb3@16 ~@87]/8",
  AM: "[~@4 d3@5 bb2@11 f3@5 bb2@16 d3@16 c3@16 f3@11 d3@5 eb3@11 eb3@5 f3@11 f3@5 bb3@7]/8",
  AN: "[~@4 d3@5 bb2@16 ~@7]/2",
})).s("gm_bassoon").gain(0.3)

stack(flute, oboe, french_horn, bassoon)