Strudelify

Etude from Hibike! Euphonium

Gabe Nunag

KeyE♭ majorTempo105 bpm
0:00/0:00
// Etude from Hibike! Euphonium — Gabe Nunag
// 105 bpm, 12/8, 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, 12/8 at bar 35) are rendered on a constant 12/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5319225; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 74 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(105/6)

// 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 · trombone · "Euphonium"
const trombone = note(`<
  A@2 B@2 ~@3 C D E F G H I J K ~@3 L M N O P Q R ~@3 S T U V W X ~@3 Y Z AA AB AC AD AE AF ~@2 AG AH AI AJ AK AL AI AM
  AN AO AP AQ AR AS AT AU AR AV AW AX AI AY AZ BA AR BB
>`.pickRestart({
  A: "[eb4@34 ~@5 bb3@6 ab4@3]/2", B: "[g4@5 f4@3 g4@22 ~@18]/2", C: "bb3@7 g3 ~ ab3 bb3 ~ c4@3 d4@5 eb4@2 f4@2",
  D: "bb3@4 ~ bb3 eb4 g4", E: "g4@7 f4 ~ e4 f4 ~ ab4@9 g4@3", F: "f4@2 eb4@2 d4@2 eb4@6 ~@3 eb4@3 d4@4 bb3 ~",
  G: "c4@9 d4 eb4 ~ f4@6 d4@3 c4@3", H: "bb3@2 ~ g3 db4@2 c4@2", I: "bb3 ab3 g3 ab3@3 ~@6",
  J: "~@6 f3@2 g3@2 ab3@2 ab3@9 d3@3", K: "f3 eb3@3", L: "~@3 g3@3 d4@3 eb4@3 f4@3 g4@3 bb4@2 ab4@2 g4@2",
  M: "g4@6 c4@6 ~@3 f4@3 d4@4 c4 ~", N: "bb3@4 c4 d4 eb4@4 d4 eb4", O: "ab3@8 bb3@2 c4@2 d4@3 eb4@3 f4@3 d4 c4 ~",
  P: "c4@3 bb3 ~@2 ab3@3 g3 ~@2 bb3@3 ab3 ~@2 g3@4 f3 ~", Q: "ab3 g3 eb4@6", R: "g3 f3 d4@6",
  S: "~@15 eb4@3 d4@4 eb4 ~", T: "g4@6 ~@3 bb3 [c4,d4] eb4 g4@3 f4@6 d4 eb4 ~",
  U: "ab4@3 g4@3 ~@3 eb4 f4 ~ bb4@6 ab4@6", V: "g4@12 ~@3 b3@3 c4@2 d4@2 eb4@2", W: "g4@6 f4@9 ~@3 g4@4 ab4 ~",
  X: "bb4 ~@3", Y: "~ bb2 eb3 eb4 ~@3 f3 d4 eb4 ~@2", Z: "~@2 eb3@2 bb3@2 eb4@2 ~@6 g3@2 bb3@2 db4 eb4 db4 bb3 g3@2",
  AA: "eb3@2 ab3 eb3", AB: "gb3 a3 g3 d4", AC: "g3", AD: "bb3@4 ab3 g3 ab3@3 g3@3", AE: "f3@4 e3 eb3 e3@4 d3 c3",
  AF: "bb2 a3@2 g3", AG: "~ f4!3 e4 d4!2 db4 d4 e4 d4 e4", AH: "ab3@4 f3 ab3 bb3@3 f4@3",
  AI: "g3@3 ~ bb2 eb3 bb3@3 ~ eb3 eb4", AJ: "d4@2 c4 bb3@2 ab3 bb3@3 ~ g3 ab3", AK: "bb3@4 ab3 g3 f3@4 g3 eb3",
  AL: "c3 eb3!2 f3", AM: "d4@2 c4 bb3@2 ab3 g3@3 f3@3", AN: "eb3@3 ~ eb4!2 d4@2 eb4@2 f4@2",
  AO: "g4@3 ~ g4!2 f4@2 g4@2 ab4@2", AP: "g4@6 ~@4 eb4 f4", AQ: "g4 bb3", AR: "eb4", AS: "~@18 bb3 c4 d4 eb4 f4 g4",
  AT: "bb4@4 ab4 g4 f4@4 g4 eb4", AU: "c4@2 g4 d4", AV: "bb3", AW: "eb3@6 ~ eb3 g3 bb3 g3 bb3",
  AX: "eb4@4 db4 b3 bb3@3 ab3@3", AY: "d4@2 c4@2 c4 d4 f4@3 eb4@3", AZ: "g4 ~ g4 ~", BA: "ab4 ~ ab4 ~", BB: "eb4 ~@3",
})).s("gm_trombone").gain(0.3)

// other · trombone · "Euphonium"
const trombone_2 = note(`<
  A B@4 C D ~@2 E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT
  AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BJ BP
>`.pickRestart({
  A: "~@11 d3@3 c3@3 b2@3 c3@2 c3@2", B: "[~ b2@8 ~ bb2@22 eb4@22 eb4@11 ~ gb4@11 f4@11 f4@8]/4", C: "c4@3 ~@20 c4",
  D: "d4 ~ eb4@11 d4@11", E: "ab3 bb3", F: "f4@3 eb4 d4 db4 c4 b3@2 bb3@3", G: "eb3 bb3", H: "d3 g3",
  I: "~@6 d3@2 eb3@2 f3@2 eb4@9 d4@3", J: "f3", K: "~@2 eb3@2 eb3@3 ab3", L: "g3@3 f3 eb3 ~ eb3@12 b3@6", M: "d3 g2",
  N: "d3@2 ab3 g3", O: "c4@2 bb3 ab3", P: "c4@3 g4 f4 g4 c4@3 ~@3", Q: "g3@3 bb3 a3 ab3 eb3@6",
  R: "ab3@12 gb4@6 d4@3 d4 c4 ~", S: "~@3 bb3 ~@5 g3 ~@5 ab3 ~@2 d3@6", T: "bb3 eb3", U: "bb3 d3",
  V: "g3@7 eb3 ~ eb3 g3 ~ ab3@3 bb3@5 c4@2 c4@2", W: "g3@4 ~ bb3!2 eb4", X: "eb4@7 c4 ~ c4!2 ~ d4@9 eb4@3",
  Y: "ab3 g3 f3 eb3@9", Z: "~ eb3!5 ~ d3!2 bb2!3", AA: "d3 ab2 bb2@4 ~ ab2 bb2 c3 d3 eb3", AB: "d3@3 ~ d3!2 d3@6",
  AC: "db4 db4@2 b3", AD: "bb3 ~@2 bb3", AE: "b3 ~ b3 bb3", AF: "eb3@4 f3 gb3 g3@2 ab3@2 bb3 b3",
  AG: "db4@5 db4 b3@3 bb3@3", AH: "c4 b3", AI: "bb3@6 ~ f3 g3@4", AJ: "ab3@2 eb4 ab3", AK: "~ d3 gb3 a3@3 ~ d3 g3 d4@3",
  AL: "g3@3 g4@3 f4@2 e4@2 b3 c4", AM: "bb4@3 g4 f4 e4 c4@3 d4@3", AN: "f4@4 e4 eb4 e4@4 d4 c4",
  AO: "bb3@3 d3 e3 f3 e3 f3 g3!2 a3 bb3", AP: "a3 ab3 a3 b3 c4@4 b3@2 c4@2 e4@4 d4@4 db4@2 d4@2", AQ: "g3 g4 f4 e4",
  AR: "a4@6 ~ ab3 a3 b3 a3 b3", AS: "c4@4 d4 eb4 f4@6", AT: "bb3 ~ bb3 ~", AU: "~@4 bb3@2 ~@4 bb3@2 bb3!2 bb3@4 ~@6",
  AV: "c3@6 d3 eb3 f3 g3 ab3 bb3", AW: "c4 ab3 g3 bb3", AX: "bb2@3 ~ g2 bb2 eb3@3 ~@3",
  AY: "~@2 eb3!2 eb3@2 f3@2 g3@2 ab3@2 a3@6 f3@6", AZ: "bb3@3 bb3!3 b3@3 b3!3", BA: "c4@3 c4!3 db4@2 db4@2 b3@2",
  BB: "~ bb3 eb3 g3 eb3 g3 bb3 g3 eb3 bb2@3", BC: "eb3 f3", BD: "bb3@9 ~@2 g3", BE: "f3@2 eb3 d3@2 c3 d3@6",
  BF: "f3@2 ab3 g3", BG: "ab3@2 bb3 f3", BH: "eb3@6 g3 eb3 g3!2 eb3 g3", BI: "ab3@6 eb3!3 g3!3", BJ: "bb3",
  BK: "ab3!2 d3 bb2", BL: "bb2@3 ~ eb3!2 g3@3 ~ g3!2", BM: "g3@4 g3 bb3 d4@3 bb3@3", BN: "~ g3 ~ g3", BO: "~ eb3 ~ f3",
  BP: "bb3 ~@3",
})).s("gm_trombone").gain(0.23)

stack(trombone, trombone_2)

More by Gabe Nunag