Strudelify

H3h3 Theme Song Trumpet Duet

Luke Hanavan

KeyA♭ majorTempo115 bpm
0:00/0:00
// H3h3 Theme Song Trumpet Duet — Luke Hanavan
// 115 bpm, 4/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5046982; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 61 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A@2 B C D@2 E F D@2 E F G@2 H I G@2 H I J K L M N O P Q G@2 H I G@2 H I R@2 S T U@2 V W G@2 H I X Y Z AA ~@9
>`.pickRestart({
  A: "gb3@3 gb3 bb3@2 db4@2", B: "b3@3 b3 bb3@2 gb3@2", C: "ab3@3 ab3 eb4@2 ~@2",
  D: "[gb3,gb4]@3 [gb3,gb4] [bb3,bb4]@2 [db4,db5]@2", E: "[b3,b4]@3 [b3,b4] [bb3,bb4]@2 [gb3,gb4]@2",
  F: "[ab3,ab4]@3 [ab3,ab4] [eb4,eb5]@2 ~@2", G: "gb4!4", H: "b4!3 gb4", I: "ab4!2 eb5!2",
  J: "gb4@3 gb4@2 gb4 gb4@2 gb4@2 eb4!2 db4!2 eb4@2", K: "bb3@3 bb3@3 bb3@2 ab3@2 gb3@2 ab3@2 eb3@2",
  L: "gb3@3 gb3@3 ab3@2 eb3@4 bb3@4", M: "gb3@3 gb3 eb3@2 eb4 eb3", N: "gb3@3 gb3@3 gb3@2 ab3@2 gb3@2 eb3!2 db4@2",
  O: "eb4@4 ab3@2 bb3@2 ab3@2 gb3!2 ab3!2 db4@2", P: "ab3@3 ab3 eb3@2 bb3@2", Q: "ab3@3 db4 eb4@2 gb4@2",
  R: "[gb3,gb4] ~@3", S: "[b3,b4] ~@3", T: "[ab3,ab4] ~@3", U: "[gb3,gb4]@2 ~ [gb3,gb4] [bb3,bb4]@2 [db4,db5]@2",
  V: "[b3,b4]@2 ~ [b3,b4] [bb3,bb4]@2 [gb3,gb4]@2", W: "[ab3,ab4]@2 ~ [ab3,ab4] [eb4,eb5]@2 ~@2",
  X: "gb4@3 gb4 ab4 eb4 db4 eb4", Y: "bb3@2 eb4 bb3 ab3 gb3 ab3 eb3", Z: "gb3@3 ~ eb4@2 bb3@2",
  AA: "ab3@2 bb3 ab3 db4@2 eb4@2",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B♭ Trumpet" · soft notes · Gb Bb Db B Bb Gb Bb Db …
const trumpet_soft = note(`<
  ~@52
  [[gb3,gb4]@3 [gb3,gb4] [bb3,bb4]@2 [db4,db5]@2]!2
  [[b3,b4]@3 [b3,b4] [bb3,bb4]@2 [gb3,gb4]@2]
  [ab3@3 db4 eb4@2 gb4@2]
  [[gb3,gb4]@3 [gb3,gb4] [bb3,bb4]@2 [db4,db5]@2]!2
  [[b3,b4]@3 [b3,b4] [bb3,bb4]@2 [gb3,gb4]@2]
  [ab3@3 ab3 eb4@2 ~@2]
  ~
>`).s("gm_trumpet").gain(0.2)

stack(trumpet, trumpet_soft)