Strudelify

Legend of Zelda - Euphonium Quartet

Gabe Nunag

KeyD♭ majorTempo120 bpm
0:00/0:00
// Legend of Zelda - Euphonium Quartet — Gabe Nunag
// 120 bpm, 4/4, key Db 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 32, 2/4 at bar 48, 4/4 at bar 65) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5238320; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 115 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// 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 · trombone · "Euphonium"
const trombone = note(`<
  ~@7 A@2 ~ B@3 C@2 D@3 E F@2 G@2 H@2 I@2 J K L@2 M N O N@2 P Q R S T@3 N U V@3 W X Y Z AA AB AC AD AE AF AG AH AI AJ AK
  AL AM AN ~@2 AO AP AQ AR AS AT AU AS@2 AT AU AS AT AV AW AU AT AX AY AZ AT AV AW AU AT BA BB AS@2 AT AU AS BC BD BE BF
  ~@2 BG@2 BH@3 BI@3 ~
>`.pickRestart({
  A: "[~@11 bb3@5 bb3@3 c4@3 d4@2 eb4@3 f4@21 ~@16]/2",
  B: "[bb3@5 ~ bb3@2 c4@3 d4@3 eb4@2 f4@21 ~@17 d3@13 ~@4 d3@2 ~ d3@2 d3@2 d3@2 c3@4 ~ c3@2 c3@9]/3",
  C: "[~@2 c3@2 c3@2 c3@2 ~ c3@2 db3@4 db3@2 db3@11 db3@2 ~ db3@2 db3@2 db3@2 db3@3 ~ a2 a2@2 a2@3 a2@2 a2 a2@3 ~ a2 a2@2 a2@3 a2@3 ~]/2",
  D: "[d3@6 d3@2 ~ d3@2 c3@2 d3@3 d3@3 ~@2 eb3@2 f3@2 ~ ab3@5 bb3@2 ~ c4@2 d4@2 ~ f4@7 ab3@2 bb3@2 c4@2 ~ gb3@5 gb3 gb3@2 ab3@2 ~ c4@2 db4@5 db4@2 db4@2 c4@2 bb3@2 db4@5 ab3@2 ab3@2 ab3@2 ab3@2 ab3@4, ~@20 d3@2 ~@3 g3@2 ~@6 bb3@2 ~@3 eb4@2 ~@23 bb3@2 ~@31]/3",
  E: "~ ab3@2 ab3@2 gb3@2 ab3@2 ~ gb3@3 gb3@2 ~ gb3@3 ~@2 ab3@2 bb3@6 ab3@3, ~@15 f3@2 ~@3 gb3@2 ~@10",
  F: "[~ gb3@3 f3@3 f3@2 eb3@2 f3@3 f3@2 ~ ab3@7 gb3@3 f3@3 ~ e3@3 e3@2 ~ e3@3 ~@2 f3@2 g3@3 g3@2 ~ bb3@3 ~ c4@3 a3@3 a3@2 a3@2, ~@16 gb3@2 ~@18 d3@2 ~@3 e3@2 ~@6 a3@2 ~@13]/2",
  G: "[a3@3 a3@3 a3@3 ~ a3@3 a3@3 a3@3 ~ d3@6 d3@2 d3@2 ~ c3@2 d3@3 d3@3 d3@2 eb3@2 ~ g3@2 ab3@5 bb3@2 ~ c4@2 d4@2 ~ f4@5, ~@43 f3@2 ~@8 bb3@2 ~@3 eb4@2 ~@4]/2",
  H: "[~@2 ab3@2 bb3@2 c4@2 ~ db4@19 e4@7 eb4@7 c4@13 a3@6 e2@2 ~]/2",
  I: "[bb2@2 db3@2 e3@2 bb3@2 ~ db4@2 e4@13 f4@7 f3@2 f3@2 f3@2 f3@7 ~@6 e2@2 ~ bb2@2 db3@2 e3@2 bb3@2 db4@2 ~]/2",
  J: "e4@13 f4@7 f3@2 f3@2 f3@2 f3@6", K: "~@7 gb3@20 b3@5",
  L: "[~@2 bb3@7 f3@13 db3@6 e3@7 e3@3 e3@2 f3@2 g3@3 g3@2 ~ bb3@3 ~ c4@3 a3@3 a3@2 ~ ab3@3, ~@47 a3@2 ~@11 a3@2 ~@2]/2",
  M: "~ ab3 ab3@2 g3@3 g3@2 g3@2 gb3@3 gb3@2 gb3@2 ~@5 f3@4 ~ f3@4", N: "~@7 g3@11 ~@5 a3@4 ~ a3@4",
  O: "~@7 g3@11 ~@5 f3@4 ~ f3@4", P: "~@7 b3@11 ~@5 c4@4 ~ c4@4", Q: "~@7 b3@11 ~@5 f3@4 ~ f3@4",
  R: "~@7 a3@11 ~@5 f3@4 ~ f3@4", S: "~@7 e3@10 d3@2 ~ f3@2 ~ d4@9",
  T: "[~ d3@2 ~ f3@2 ~ d4@10 e4@8 f4@2 ~ e4@2 ~ f4@2 e4@2 ~ c4@2 ~ a3@10 a3@4 ~@2 d3@5 f3@2 ~ g3@2 a3@11 a3@4 ~@7 f3@4 ~ f3@4]/3",
  U: "~@7 g3@11 ~@5 f3@4 ~@2 f3@3", V: "[~@9 g3@13 ~@8 a3@5 ~@2 a3@5 ~@14 g3@30 ~@10]/3", W: "~@18 f3@3 a3@4 a3@3 a3@4",
  X: "f3@4 a3@3 a3@4 a3@3 f3@4 a3@3 a3@4 a3@3 f3@4", Y: "a3@4 a3@3 a3@4 c3@3 e3@4 e3@3 e3@4 c3@3 e3@4",
  Z: "e3@4 e3@3 c3@4 e3@3 e3@4 e3@3 c3@4 e3@3 e3@4", AA: "c3@4 f3@3 a3@4 a3@3 a3@4 f3@3 a3@4 a3@3 a3@4",
  AB: "f3@4 a3@3 a3@4 a3@3 f3@4 a3@3 a3@4 a3@3 c3@4", AC: "e3@4 e3@3 e3@4 c3@3 e3@4 e3@3 e3@4 c3@3 e3@4",
  AD: "e3@4 e3@3 c3@4 e3@3 e3@4 c3@3 d3@4 d3@3 d3@4", AE: "d3@4 g2@3 g2@4 g2@3 g2@4 c3@3 c3@4 c3@3 c3@4",
  AF: "a2@4 a2@3 a2@4 a2@3 d3@4 d3@3 d3@4 d3@3 g2@4", AG: "g2@4 g2@3 g2@4 c3@3 c3@4 c3@3 c3@4 a2@3 a2@4",
  AH: "a2@4 a2@3 d3@4 d3@3 d3@4 d3@3 g2@4 g2@3 g2@4", AI: "g2@4 c3@3 c3@4 c3@3 c3@4 a2@3 a2@4 a2@3 a2@4",
  AJ: "d3@4 f3@3 f3@4 ~@3 d3@4 f3@3 f3@4 ~@3 c3@4", AK: "g3@4 g3@4 ~@3 c3@3 g3@4 g3@4 ~@3 e3@3 a3@4",
  AL: "~@4 a3@3 e3@4 a3@4 ~@3 a3@3 e3@4 ab3@3 ab3@4", AM: "ab3@4 ab3@7 e3@7 ~@14", AN: "d3@8 ~ a3 gb3 eb3 d3@4",
  AO: "~ d4!3 ~ d4@2 d4 ~ d4!3 ~ d4@2 d4", AP: "~ bb3!3 ~ bb3@2 bb3 ~ bb3!3 ~ bb3@2 bb3",
  AQ: "~ g3!3 ~ g3@2 g3 ~ g3!3 ~ g3@2 g3", AR: "~ c4!3 ~ c4@2 c4 ~ c4!3 ~ c4@2 c4", AS: "d4", AT: "bb3", AU: "a3",
  AV: "g3", AW: "f3", AX: "eb3@6 ~ c3", AY: "a2@3 c3 c3@3 a2", AZ: "a2", BA: "g3@6 ~ eb4",
  BB: "c4@3 [a3,a4] [g3,g4]@3 c4", BC: "g3!2", BD: "eb3!2", BE: "f3!2", BF: "eb3 f3 eb3 d3@13", BG: "[~ c4@3]/2",
  BH: "[ab3 e3]/3", BI: "[ab3 ab3]/3",
})).s("gm_trombone").gain(0.4)

// other · trombone · "Euphonium"
const trombone_2 = note(`<
  ~@5 A@7 B@3 C@4 D@2 E@2 F@5 G H I J K L K@2 M N O P M N Q K R S@3 T U@2 V@2 ~@4 W X@2 ~ Y Z@2 ~@4 AA AB AC AD AE AF AG
  AH AE AF AG AH AE AF AG AI@2 AJ AK AL AF AJ AK AL AF AM AN AH AE AF AG AH AI AE AH AI ~@2 AO@2 AP@3 AQ@3 ~
>`.pickRestart({
  A: "[~@27 bb2@43 ab2@42 gb2@43 f2@43 ~@16 bb2@6 bb2@2 ~ bb2]/7",
  B: "[~ bb2@2 bb2@7 bb2@6 ab2@7 ab2@2 ab2@2 ab2@2 ab2@7 ab2@7 gb2@6 gb2@2 ~ gb2@2 gb2@2 gb2@7 gb2@6 f2@7 f2@6 f2@7 g2@3 a2@3 ~]/3",
  C: "[bb2@6 f2@10 bb2@3 ~@2 c3@2 d3@2 ~ f3@13 ~@4 f3 f3@2 f3@2 gb3@2 ab3@2 ~ bb3@18 bb3@2 bb3@2 ab3@2 gb3@2 ab3@5 gb3@2 f3@13 f3@7 eb3@3 eb3@2 ~ gb3@13 f3@3, ~@20 bb2@2 ~@3 eb3@2 ~@84 f3@2 ~@15]/4",
  D: "[~ eb3@3 db3@3 db3@2 eb3@2 f3@13 eb3@3 db3@3 ~ c3@3 c3@2 ~ e3@13 g3@7 f3@3 f2@2 f2@2, ~@18 d3 ~@13]/2",
  E: "[f2@3 f2@2 f2 f2@3 ~ f2 f2@2 f2@3 f2@3 ~ bb2@6 f2@10 bb2@3 bb2@2 c3@2 ~ eb3@2 f3@13 ~@4 f3, ~@43 d3@2 ~@19]/2",
  F: "[f3@2 f3@2 gb3@2 ab3@2 ~ bb3@19 db4@7 c4@7 a3@13 f3@6 gb3@20 bb3@7 a3@7 f3@13 f3@6 gb3@20 bb3@7 a3@7 f3@12]/5",
  G: "~ d3@6 eb3@20 gb3@5", H: "~@2 f3@7 db3@13 bb2@6 c3@3 ~", I: "~ d3@2 e3@13 g3@7 f3@3 f2@2 f2 f2@3, c3 ~@15",
  J: "~ f2 f2@2 f2@3 f2@2 f2@2 f2@3 f2@2 f2@2 ~@5 d3@4 ~ d3@4", K: "~@4 e3@13 ~@6 f3@4 ~ f3@4",
  L: "~@4 e3@13 ~@6 d3@4 ~ d3@4", M: "~@7 g3@11 ~@5 a3@4 ~ a3@4", N: "~@7 g3@11 ~@5 d3@4 ~ d3@4",
  O: "~@7 c3@11 ~@5 d3@4 ~ d3@4", P: "~@7 db3@11 ~@5 f3@4 ~ f3@4", Q: "~@7 db3@4 ~ db3@4 ~@7 d3@4 ~ d3@4",
  R: "~@4 e3@13 ~@6 d3@4 ~@2 d3@3", S: "[~@6 e3@16 ~@8 f3@5 ~@2 f3@5 ~@10 e3@33 ~@11]/3",
  T: "~@18 f3@2 ~ a3@2 ~@2 b3@7",
  U: "[f3@2 ~@2 a3@2 ~ b3@7 f3@4 a3@3 b3@4 e4@2 ~ d4@7 ~ b3@3 c4@2 ~@2 b3@3 g3@4 e3@14]/2",
  V: "[~@4 d3@3 e3@4 g3@3 e3@21 ~@29]/2", W: "~@14 f3@4 g3@2 ~ a3@7 b3@4",
  X: "[c4@2 ~@2 d4@7 e4@3 f4@2 ~@2 g4@21 ~@25]/2", Y: "f3@4 e3@3 g3@4 f3@3 b3@4 a3@3 c4@4 b3@3 d4@4",
  Z: "[c4@4 e4@3 d4@4 f4@3 e4@4 e4@2 f4@2 ~ d4@2 e4@28 ~@11]/2", AA: "~ bb3!3 ~ bb3@2 bb3 ~ bb3!3 ~ bb3@2 bb3",
  AB: "~ g3!3 ~ g3@2 g3 ~ g3!3 ~ g3@2 g3", AC: "~ eb3!3 ~ eb3@2 eb3 ~ eb3!3 ~ eb3@2 eb3",
  AD: "~ a3!3 ~ a3@2 a3 ~ a3!3 ~ a3@2 a3", AE: "bb3", AF: "g3", AG: "f3", AH: "a3", AI: "d4", AJ: "eb3", AK: "c3",
  AL: "gb3", AM: "eb3@6 ~ c4", AN: "a3@3 f4 eb4@3 a3", AO: "[~ eb3@3]/2", AP: "[db3 b2]/3", AQ: "[eb3 eb3]/3",
})).s("gm_trombone").gain(0.4)

// other · trombone · "Euphonium"
const trombone_3 = note(`<
  A@3 B@3 ~@9 C D E@4 F@2 G@5 H I@3 J K J K J L M N J L N J O@4 P ~@3 Q R S T@3 U@3 V W@2 ~@4 X Y Z AA AB AC AD AE AB AC
  AD AE AB AC AD AE AB@2 AF AG AH AI AG AH@2 AI AJ AK AB AC AD AE AI AB AL AG ~@2 AM@2 AN@3 AO@3 AP
>`.pickRestart({
  A: "[~@16 bb2@11 f3@11 bb3@21 ab2@11 eb3@10 ab3@16]/3", B: "[~@6 gb2@10 db3@11 gb3@21 f2@11 c3@11 f3@16 ~@10]/3",
  C: "bb3@6 bb3@2 ~ bb3@2 ab3@2 bb3@7 bb3@6 ab3@6", D: "~ ab3@2 ab3@2 gb3@2 ab3@7 ab3@7 gb3@6 gb3@2 gb3@2 ~",
  E: "[e3@2 gb3@7 gb3@6 db4@7 db4@2 db4@2 b3@2 db4@7 db4@7 b3@6 b3@2 b3@2 ~ bb3@2 b3@6 b3@7 bb3@7 bb3@2 bb3@2 ab3@2 bb3@7 bb3@7 c4@6 c4@2 c4@2 ~ c4@2 c4@6 c4@2 ~ c4@2 c4@2 f3@7]/4",
  F: "[f3@6 f3@7 g3@3 a3@3 ~ bb3@6 bb3@2 bb3@2 ~ ab3@2 bb3@6 bb3@7 ab3@7 ab3@2 ab3@2 gb3@2 ab3@5]/2",
  G: "[~@2 ab3@7 gb3@6 gb3@2 gb3@2 ~ e3@2 gb3@6 gb3@7 f3@7 f3@2 f3@2 eb3@2 f3@7 f3@6 e3@26 ~ f4@7 f2@2 f2@2 f2@2 f2@7 ~@6 e3@26 ~ f4@7 f2@2 f2@2 f2@2 f2@6]/5",
  H: "~@7 b3@7 b3@2 b3@2 bb3@2 ~ b3@6 b3@2 b3@2 ~",
  I: "[b3@2 bb3@7 bb3@2 bb3@2 ab3@2 bb3@7 bb3@2 bb3@2 bb3@2 c4@7 c4@2 c4@2 c4@2 ~ c4@6 c4@2 c4@2 ~ c4@2 f3@6 f3@7 f3@7 g3@3 a3@3 d3@15]/3",
  J: "~ e3@16 f3@15", K: "~ e3@16 d3@15", L: "~ e3@16 bb2@15", M: "~ f2@16 bb2@15", N: "~ a2@16 d3@15",
  O: "[~ e3@16 d3@18 e3@19 ~ f3@22 e3@40 f3@4 f3@2 f3 f3@4]/4", P: "f3@2 f3@2 f3@3 f3@4 ~@21",
  Q: "~@4 f3@2 ~ a3@2 ~@2 b3@7 f3@2 ~ a3@2 ~@2 b3@7", R: "f3@4 a3@3 b3@4 e4@2 ~ d4@7 b3@4 c4@2 ~ e4@4",
  S: "b3@2 ~@2 g3@14 ~@3 b3@4 g3@2 ~ d3@4",
  T: "[e3@18 ~@3 d3@4 e3@2 ~ f3@7 ~ g3@3 a3@2 ~@2 b3@7 c4@3 b3@2 ~@2 e3@21 d3@4 e3@2 ~ f3@7 g3@4]/3",
  U: "[a3@2 ~@2 b3@7 c4@3 d4@2 ~@2 e4@21 d3@4 e3@3 f3@7 g3@4 a3@3 b3@7 ~ c4@3 b3@4 e3@21]/3",
  V: "d3@4 c3@3 e3@4 d3@3 g3@4 f3@3 a3@4 g3@3 b3@4", W: "[a3@4 c4@3 b3@4 d4@3 c4@4 e4@2 f4@2 ~ d4@2 b3@28 ~@11]/2",
  X: "g3 ~ g3 ~ g3 ~ g3 ~", Y: "eb3 ~ eb3 ~ eb3 ~ eb3 ~", Z: "c3 ~ c3 ~ c3 ~ c3 ~", AA: "f3 ~ f3 ~ f3 ~ f3 ~", AB: "g3",
  AC: "eb3", AD: "c3", AE: "gb3", AF: "a2", AG: "a3", AH: "d4", AI: "bb3", AJ: "f3 eb3", AK: "d3", AL: "f3",
  AM: "[~ ab2@3]/2", AN: "[gb2 g2]/3", AO: "[ab2 ab2]/3", AP: "ab2@3 ~",
})).s("gm_trombone").gain(0.3)

stack(trombone, trombone_2, trombone_3)

More by Gabe Nunag