Strudelify

Maxglaner Zigeunermarsch Reloaded Woodwind Quintet

Susanne Koller

KeyC majorTempo170 bpm
0:00/0:00
// Maxglaner Zigeunermarsch Reloaded Woodwind Quintet — Susanne Koller
// 170 bpm, 2/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (2/4 at bar 1, 4/4 at bar 89, 2/4 at bar 161) are rendered on a constant 2/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5416704; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 228 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(170/2)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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@8 B@2 C D A@4 B@2 C E F G H I J K L M N O P Q R S T@2 U V W X Y Z AA AB U V W AC AD V AE@2 A@8 B@2 C D A@4 B@2 C E
  AF@8 AG AH AG@2 AH@2 AG AI AJ AK AJ AK AJ AK AJ AK AL AM AN AO AP@4 AL AM AN AO AP@4 AQ AR AS AT AU@4 AS AV AW AX AY@2
  ~@2 AZ@4 BA@4 BB@2 BC BD BE@2 BF@2 BG BH BI BJ BK BL BF@2 BM BN AW BO BP@2 BQ BR BS AC BT BU BV BW BX BY BS AC BZ CA
  CB AC CC@2 ~@4 CD@4 CE@2 CD CF CD CG ~ CH CE CI CF E CJ@2 CK CL CM CL CN CO ~@8 BS AC BT BU BV BW BX BY BS AC BZ CA CB
  AC CP CQ
>`.pickRestart({
  A: "~ a5 ~ a5", B: "~ g#5 ~ g#5", C: "~@2 a5!2 a5@2 a5@2", D: "a5!2 ~ a5", E: "a5 ~ g5@2", F: "e4 g4 c5 e5",
  G: "f4 g4 b4 d5", H: "c5@3 e5", I: "f5 e5 c5 a4", J: "g4 g5", K: "f5 e5 d5 g4", L: "e4@3 f4 g4@2 a4@2", M: "g4@15 ~",
  N: "c5 e5 a5 c6", O: "b4 d5 e5 g#5", P: "a5@3 e5", Q: "c5!2 e5 a5", R: "g#5@3 f5", S: "e5 f5 g#5 e5",
  T: "[c5@19 ~@5 f5@8]/2", U: "~ e6 d#6 e6", V: "g6@3 f6 e6@2 d6@2", W: "~ c6 b5 c6", X: "e6@3 d6 c6@2 b5@2",
  Y: "a5@3 b5", Z: "c6@3 a5", AA: "g5@3 f5", AB: "e5@15 ~", AC: "b5@3 a5 g5@2 f5@2", AD: "e5 g5 c6 e6",
  AE: "[c6@19 ~@5 e6@8]/2", AF: "~ g4 ~ g4", AG: "~ a4 ~ a4", AH: "~ g#4 ~ g#4", AI: "a4 ~@3", AJ: "~@2 g5!2",
  AK: "~ g5", AL: "g5@3 g#5", AM: "b5 c6", AN: "d6@3 d#6", AO: "f#6 d#6", AP: "[d6@61 ~@3]/4", AQ: "d#6@2 d6 d#6",
  AR: "d6 c6", AS: "d6@2 c6 d6", AT: "c6@2 b5 g5", AU: "[b5@61 ~@3]/4", AV: "c6 b5", AW: "c6@2 b5 c6",
  AX: "b5@2 g#5 b5", AY: "g5/2", AZ: "[c6@53 ~@3 b5@4 c6@4]/4", BA: "[d6@53 ~@3 c6@4 d6@4]/4",
  BB: "[d#6@23 ~ d6@4 d#6@4]/2", BC: "f#6@15 ~", BD: "d#6@15 ~",
  BE: "[g5@23 ~ g5 [g#5,a5] a#5 [b5,c6] c#6 [d6,d#6] e6 [f6,f#6]]/2", BF: "[g6@15 ~]/2", BG: "~ g#6 g6 g#6",
  BH: "g6 f6", BI: "g6@2 f6 g6", BJ: "f6 d#6", BK: "d6@15 ~",
  BL: "d5 d#5 e5 f5 f#5 g5 g#5 [a5,a#5] b5 c6 c#6 d6 d#6 e6 f6 f#6", BM: "~ f6 d#6 f6", BN: "d#6 d6", BO: "b5 g#5",
  BP: "[g5@15 ~]/2", BQ: "g5 b5", BR: "d6 g6", BS: "~ g5 f#5 g5", BT: "~ a5 g#5 a5", BU: "g#5@3 f5 e5@2 e5@2",
  BV: "f5@3 g5", BW: "a5@3 f5", BX: "e5@3 d5", BY: "c5@15 ~", BZ: "~ e5 d#5 e5", CA: "g5@3 f5 e5@2 d5@2",
  CB: "c5 e5 g5 c6", CC: "[e5@19 ~@5 e5@8]/2", CD: "a5 ~ e5 ~", CE: "b5 ~ e5 ~", CF: "a5 c6 e6 c6", CG: "a5 ~@7",
  CH: "~@3 a5", CI: "g#5 ~ e5 ~", CJ: "g5@11 ~ g5@2 g5@2", CK: "g5@4 g5@2 g5@2 g5@3 g5@2 g5@3", CL: "g5@2 g5!2 g5@4",
  CM: "d5@2 d5!2 d5@4", CN: "c5@2 c5!2 e5 c5 e5 g5", CO: "c6@15 ~", CP: "c5 g#4 a#4 c5 c#5 d#5 f5 f#5", CQ: "g5!2 c6 ~",
})).s("gm_flute").gain(0.3)

// other · clarinet · "B Klarinette"
const clarinet = note(`<
  A@8 B@2 A C A@4 B@2 A D E F G H I J K L M N O P Q R S@2 T U V W X@2 U Y T U T U T U Y Z ~@4 AA@3 AB AC@2 AD AE AF@2 AG
  AH AI AJ AK AL AM AN AO AH AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BB BC BB BC BB BC BB BC BB BC BB BC BB BC BB BC
  BB BC BB BC BB BD BE BF BE BF BB BC BB BD BE BF BE BF BB BC BG BH BI@4 BJ@4 BK@2 BL BM BN@2 BO@2 BP BQ BR BS BT@4 BU@4
  BV@2 BW BX T U V W X@2 U Y T U T U T U Y Z BY@8 BZ@2 BY CA BY CB ~@2 BZ@2 BY CC CD CE CF CG CH CI CJ CK AT AU AV AW AX
  AY CL@2 T U V W X@2 U Y T U T U T U CM CN
>`.pickRestart({
  A: "~ c5 ~ c5", B: "~ d5 ~ d5", C: "c5!2 ~ c5", D: "c5 ~ g4@2", E: "g4 c5 e5 g5", F: "g4 b4 d5 f5", G: "e5@3 c6",
  H: "a5 g5 e5 c5", I: "b4 b5", J: "a5 g5 f5 b4", K: "c5@3 d5 e5@2 f5@2", L: "e5", M: "e4 a4 c5 e5", N: "e4 g#4 b4 e5",
  O: "c5@3 b4", P: "a4 e4 a4 c5", Q: "b4@3 a4", R: "g#4 a4 b4 c5", S: "[a4@5 ~ g4@2]/2", T: "g4!2 ~ g4", U: "~ g4 ~ g4",
  V: "a4!2 ~ a4", W: "~ g#4 ~ g#4", X: "~ a4 ~ a4", Y: "~ g4!3", Z: "g4 ~ g#4@2", AA: "[e3 a3 c4 e4@6 e4 d#4 e4]/3",
  AB: "f4 e4", AC: "[e3 g#3 b3 e4@4 d4]/2", AD: "c4@3 b3", AE: "a3 ~", AF: "[e3 a3 c4 e4@2 e4 d#4 e4]/2", AG: "f4@3 e4",
  AH: "f4 e4 c4 a3", AI: "e3 g#3 b3 e4", AJ: "d4 e4 b3 c4", AK: "a3", AL: "a3 ~ g3@2", AM: "e3 g3 c4 e4",
  AN: "f3 g3 b3 d4", AO: "c4@3 e4", AP: "g3 g4", AQ: "f4 e4 d4 g3", AR: "e3@3 f3 g3@2 a3@2", AS: "g3",
  AT: "c4 e4 a4 c5", AU: "b3 d4 e4 g#4", AV: "a4@3 e4", AW: "c4!2 e4 a4", AX: "g#4@3 f4", AY: "e4 f4 g#4 e4", AZ: "c4",
  BA: "c4 ~@3", BB: "~@2 b4!2", BC: "~@2 b4 ~", BD: "~ b4 a#4 b4", BE: "~@2 c5!2", BF: "~@2 c5 ~", BG: "~ g4 f#4 g4",
  BH: "g#4 a4 a#4 b4", BI: "[c5@14 b4 c5]/4", BJ: "[d5@14 c5 d5]/4", BK: "[d#5@6 d5 d#5]/2", BL: "f#5", BM: "d#5",
  BN: "[g5@3 g5]/2", BO: "b5/2", BP: "~ g#5 g5 g#5", BQ: "g5 f5", BR: "g5@2 f5 g5", BS: "f5 d#5", BT: "d6/4",
  BU: "g#5/4", BV: "b4/2", BW: "b4 d5", BX: "f5 g5", BY: "~ c4 ~ c4", BZ: "~ d4 ~ d4", CA: "c4!2 ~ c4", CB: "c4 ~@7",
  CC: "c4 ~ b3@2", CD: "g3 c4 e4 g4", CE: "g3 b3 d4 f4", CF: "e4@3 c5", CG: "a4 g4 e4 c4", CH: "b3 b4",
  CI: "a4 g4 f4 b3", CJ: "c4@3 d4 e4@2 f4@2", CK: "e4", CL: "[c4@5 ~ f4@2]/2", CM: "g#4", CN: "g4!2 c5 ~",
})).s("gm_clarinet").gain(0.4)

// other · french horn · "Horn in F"
const french_horn = note(`<
  ~@4 A@3 B C@2 D E F@2 G H I J K L M N M@2 N@2 M@3 N M@2 N@2 M O P N P N M@3 Q P N P N P N Q O M@8 R@2 M P M@4 R@2 M O
  M N M@2 N@2 M@3 N M@2 N@2 M S T U V U V U V U V U V U V U V U V U V U V U V W X Y X Y V U V W X Y X Y V U Z ~ AA AB AA
  AB AC AD AC AD AE AF AE AF AA AB AA AG AE AF AE AF AA AB AA AG AE AF AE AF AA AB AH@2 P N P N M@3 Q P N P N P N Q O AI
  AJ AK@2 AL@4 AM@2 AN AO AL AP ~@6 M N M@2 N@2 M@3 N M@2 N@2 M O P N P N M@3 Q P N P N P N AQ AR
>`.pickRestart({
  A: "[e3 a3 c4 e4@6 e4 d#4 e4]/3", B: "f4 e4", C: "[e3 g#3 b3 e4@4 d4]/2", D: "c4@3 b3", E: "a3 ~",
  F: "[e3 a3 c4 e4@2 e4 d#4 e4]/2", G: "f4@3 e4", H: "f4 e4 c4 a3", I: "e3 g#3 b3 e4", J: "d4 e4 b3 c4", K: "a3",
  L: "a3 ~ b3@2", M: "~ c4 ~ c4", N: "~ b3 ~ b3", O: "c4 ~ b3@2", P: "c4!2 ~ c4", Q: "~ c4!3", R: "~ d4 ~ d4",
  S: "c4 ~@3", T: "g3@2 g3!2", U: "~@2 g3 ~", V: "~@2 g3!2", W: "~ g3 f#3 g3", X: "~@2 g#3!2", Y: "~@2 g#3 ~",
  Z: "g3 ~@7", AA: "~@2 g4!2", AB: "~@2 g4 ~", AC: "~@2 f4!2", AD: "~@2 f4 ~", AE: "~@2 g#4!2", AF: "~@2 g#4 ~",
  AG: "~ g4 f#4 g4", AH: "g4/2", AI: "a3 g#3", AJ: "g3 f#3", AK: "[f3 e3@2 d3@2 c3@2 b2]/2", AL: "~ a4 ~ a4",
  AM: "~ g#4 ~ g#4", AN: "~@2 a4!2 a4@2 a4@2", AO: "a4!2 ~ a4", AP: "a4 ~@7", AQ: "d#4", AR: "g4 d#4 e4 ~",
})).s("gm_french_horn").gain(0.3)

// other · bassoon · "Fagott"
const bassoon = note(`<
  A B A B A@4 C@2 A B A@3 D C E B F G H G@2 H I J K A C L M N O B F P Q R O S T J U P Q P Q V W X Y A B A B A@4 C@2 A B
  A@3 D C E B F G H G@2 H I J K A C L M N O B Z AA AB AC AB AA AB AC AB AA AB AC AB AA AB AC AB AA AB AC AB AA AB AC AB
  AD AE AF AE AA AB AC AB AD AE AF AE AA AB AG ~ AH@4 AI@3 AJ AK@3 AL AM@3 AN AK@3 AL AM@3 AN AK@3 AL AM@2 AO@2 P Q R O
  S T J U P Q P Q V W X Y ~@4 AP@3 AQ AR AS AT AU AV@2 AW AX AY AZ BA F G H G@2 H I J K A C L M N O B F P Q R O S T J U
  P Q P Q V W BB BC
>`.pickRestart({
  A: "a2 ~ e2 ~", B: "a2 c3 e3 c3", C: "b2 ~ e2 ~", D: "a2 ~ e2 a2", E: "g#2 ~ e2 ~", F: "a2 ~ g2@2", G: "c2 ~ g2 ~",
  H: "d2 ~ g2 ~", I: "b2 ~ d3 ~", J: "c3 ~ g2 ~", K: "c3 e3 c3 b2", L: "a2 e2", M: "c2 a1", N: "e2 ~ b2 ~",
  O: "e2 ~ e2 ~", P: "c2 ~ c2 ~", Q: "g2 ~ g2 ~", R: "a2 ~ a2 ~", S: "f2 ~ c2 ~", T: "f2 ~ a2 ~", U: "c3 g2 e2 g2",
  V: "c2 e2", W: "g2@2 a2 b2", X: "c3 a2 g2 e2", Y: "c2 ~ g2@2", Z: "a2!3 g#2", AA: "g2@3 g2", AB: "g2!2",
  AC: "g2!2 ~ g2", AD: "g#2@3 g#2", AE: "g#2!2", AF: "g#2!2 ~ g#2", AG: "g2 ~@7", AH: "c3@3 c3 g3@2 d#3@2",
  AI: "a#2@3 a#2 f3@2 d3@2", AJ: "a#2@3 a#2 f3@4", AK: "g#2@3 g#2 d#3@2 c3@2", AL: "g#2@3 g#2 d#3@4",
  AM: "g2@3 g2 d3@2 b2@2", AN: "g2@3 g2 d3@4", AO: "g2/2", AP: "[e2 a2 c3 e3@6 e3 d#3 e3]/3", AQ: "f3 e3",
  AR: "e2@5 g#2@5 ~ b2@5", AS: "e3@3 d3", AT: "c3@3 b2", AU: "a2 ~", AV: "[e2 a2 c3 e3@2 e3 d#3 e3]/2",
  AW: "f3 e3 f3 e3", AX: "f3 e3 c3 a2", AY: "e2 g#2 b2 e3", AZ: "d3 e3 b2 c3", BA: "a2", BB: "c3 g#2 g2 f2",
  BC: "g2!2 c3 ~",
})).s("gm_bassoon").gain(0.3)

stack(flute, clarinet, french_horn, bassoon)