Strudelify

Heian Alien in B flat for Low Brass Quartet

ZUNarr. Eric Huang

KeyB♭ majorTempo120 bpm
0:00/0:00
// Heian Alien in B flat for Low Brass Quartet — ZUNarr. Eric Huang
// 120 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/575421; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 161 bars on a 16-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 · [...]/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
const trombone = note(`<
  ~@4 A B A B C D E F C D E F C D E F C D E F G H G H G H G H C D E F C D E F C D E F C D E F I J K L I J M N O P Q R O
  P S R O P Q R O P ~@6 A B A B C D E F C D E F C D E F C D E F G H G H G H C D E F C D E F C D E F C D E F I J K L I J
  M N O P Q R O P T@4 U@4 V@3 W V@2 X P Y@3 Z P Y@3 W Y@2 AA ~
>`.pickRestart({
  A: "~ c3 f3 g3 ~ db3 f3 g3", B: "~ d3 f3 g3 ~ db3 f3 g3", C: "c3 db3", D: "d3 eb3", E: "c3 eb3", F: "d3 db3",
  G: "c3 f3 g3 c3 db3 f3 g3 c3", H: "d3 f3 g3 c3 db3 f3 g3 c3", I: "~@2 eb3 ~@3 eb3 ~", J: "~@2 f3 ~@3 f3 ~",
  K: "~@2 g3 ~@3 g3 ~", L: "g3!3 f3", M: "~@3 g3 ~@2 g3@2", N: "g3 eb3 c3 ~", O: "e3!2", P: "d3!2", Q: "c3!2",
  R: "g3 a3", S: "gb3 ~ gb3 ~", T: "[e3,e4]/4", U: "[a2,a3]/4", V: "e3@8 e3@3 a3@3 e4@2", W: "d3@2 a3 b3 d3 a3 b3 e4",
  X: "gb3@3 b3@3 b3@2 b3@2 b3 a3 gb3@2 e3@2", Y: "e3@8 e3@3 d3@3 a3@2", Z: "c3@3 e3@3 e3@2 e3@2 e3 d3 b2@2 a2@2",
  AA: "c3@3 ~",
})).s("gm_trombone").gain(0.3)

// other · trombone
const trombone_2 = note(`<
  A B A B C D C D A E F B A E F B A E F B A E F B G H G H G H G H A E F B A E F B A E F B A E F B I J K L I M N O P Q R
  S P Q T S P Q R S P Q ~@2 A B A B C D C D A E F B A E F B A E F B A E F B G H G H G H A E F B A E F B A E F B A E F B
  I J K L I M N O P Q R S P Q U@3 V W X Y Z U@3 AA U@2 Y Z U@3 Y Z U@3 AA U@2 AB ~
>`.pickRestart({
  A: "g2 ab2", B: "a2 ab2", C: "eb2 bb2 eb2 bb2 eb2 bb2 eb2 bb2", D: "f2 c3 f2 c3 eb2 bb2 eb2 bb2", E: "a2 bb2",
  F: "g2 bb2", G: "g2 c3 d3 g3 g2 c3 d3 g3", H: "a2 c3 d3 g3 g2 c3 d3 g3", I: "~@2 ab2 ~@3 ab2 ~", J: "~@2 f3 ~@3 f3 ~",
  K: "~@2 g3 ~@3 g3 ~", L: "c3 bb2 c3 bb2", M: "~@2 bb2 ~@3 bb2 ~", N: "~@3 c3 ~@2 c3@2", O: "c3 bb2 g2 ~",
  P: "e3 ~ a3 ~", Q: "d3 ~ g3 ~", R: "d3 ~ gb3 ~", S: "d3 e3", T: "d3 ~ d3 ~", U: "b2@8 b2@3 a2@3 e3@2",
  V: "[d2,b2]@2 a2 b2 [d2,c3] a2 b2 e3", W: "[e2,b2]@8 [e2,b2]@3 a2@3 e3@2", X: "[d2,b2]@8 [d2,b2]@3 a2@3 e3@2",
  Y: "b2@3 e3@3 e3@2 e3@2 e3 d3 b2@2 a2@2", Z: "b2 c3", AA: "b2@2 a2 b2 c3 a2 b2 e3", AB: "b2@3 ~",
})).s("gm_trombone").gain(0.3)

// bass · tuba · "F Tuba"
const bass = note(`<
  A B A B C D C D A E F B A E F B A E F B A E F B G H G H G H G H A E F B A E F B A E F B A E F B I J K L I M N O P Q@2
  R S T Q U P Q@2 R S T ~@2 A B A B C D C D A E F B A E F B A E F B A E F B G H G H G H A E F B A E F B A E F B A E F B
  I J K L I M N O P Q@2 R S T V W X Y V Z AA AB V W X Y V Z AA AC AD AE AF AA AC AD AE AF Y AE AF AG ~
>`.pickRestart({
  A: "c2 db2", B: "d2 db2", C: "c2 g2 c2 g2 db2 ab2 db2 ab2", D: "d2 a2 d2 a2 db2 ab2 db2 ab2", E: "d2 eb2",
  F: "c2 eb2", G: "c2 f2 g2 c3 db2 f2 g2 c3", H: "d2 f2 g2 c3 db2 f2 g2 c3", I: "~@2 eb2 ~@3 eb2 ~",
  J: "~@2 f3 ~@3 f3 ~", K: "~@2 g3 ~@3 g3 ~", L: "g2!3 f2", M: "~@2 f2 ~@3 f2 ~", N: "~@3 g2 ~@2 g2@2", O: "g2!2 eb2 ~",
  P: "b2 ~ e3 ~", Q: "b2 ~ d3 ~", R: "b2 c3", S: "c3 ~ e3 ~", T: "a2 ~ d3 ~", U: "b2!2", V: "e2@8 e2@3 a1@3 e2@2",
  W: "d2@8 d2@3 a1@3 d2@2", X: "c2@8 c2@3 a1@3 d2@2", Y: "d2@2 a1 b1 d2 a1 b1 e2", Z: "d2@8 d2@3 a1@3 e2@2",
  AA: "c2@3 e2@3 e2@2 e2@2 e2 d2 b1@2 a1@2", AB: "d2!2", AC: "b1 c2", AD: "e2@8 b1@3 a1@3 e2@2",
  AE: "d2@8 b1@3 a1@3 e2@2", AF: "c2@8 b1@3 a1@3 e2@2", AG: "c2@3 ~",
})).s("gm_tuba").gain(0.3)

stack(trombone, trombone_2, bass)