Strudelify

christmas medley

Misc Mashups

KeyE♭ majorTempo140 bpm
0:00/0:00
// christmas medley — Misc Mashups
// 140 bpm, 4/4, 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 (2/4 at bar 1, 4/4 at bar 3, 2/4 at bar 49, 4/4 at bar 50) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/4863397; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 156 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · "Posaune"
const trombone = note(`<
  A@7 B@2 C@2 D@2 E F G H I J K L H F G H I J M N O P Q R S T U V W F G F I J K X Y Z ~@2 AA AB AC AB AC AB AD AE AD AE
  AC AB AF@2 AG@2 AH AI AJ@2 AK AB AD AE AD AE AC AB AF@2 AG@2 AH AL AM@2 ~ AN@2 AO AP AQ AR AS AT AU@2 AV@2 AQ AR AS AT
  AU@2 AW AX AY AZ BA BB AY AZ BC BD AQ AR AS AT AU@2 BE@2 BF BG ~ BH BI@2 BJ BK BL BM@2 BN BO BP BQ@2 BR BS@2 BT@2 BU@2
  BV@3 BW BX@2 BY@2 BZ@2 CA
>`.pickRestart({
  A: "[~@18 ab3@17 bb3@17 ab3@16 g3@17 f3@17 eb3@17 eb3@5 c3@6 ab2@6 d3@5 bb2@6 g2@5 c3@6 ab2@6 f2@4]/7",
  B: "[~ c3@6 bb2@11 eb3@10 ~ d3@10 c3@9]/2", C: "[~@2 bb2@10 a3@10 ~ g3@10 f3@5 ~@6 f3@4]/2",
  D: "[~ f3@5 f3@10 ~ f3@10 f3@21]/2", E: "bb3 ~ ab3 ~ g3 ~ f3 ~", F: "eb3 ~ bb2 ~", G: "eb3 ~ bb2 d3",
  H: "eb3 d3 c3 bb2", I: "bb3@6 f3@4 ~ g3 ab3@4 ~ g3 f3@6", J: "d3 ~ bb2 ~", K: "f3 ~ bb2 d3", L: "f3 ~ bb2 c3",
  M: "f3 d3 c3 bb2", N: "d3 ~ bb2 ab3", O: "bb3@3 g3@2 bb3@3 g3 bb3@3", P: "ab3@5 ab3@4 ab3@3", Q: "g3!3 e3",
  R: "~@2 ab3 ~@3 g3@3 ~@3", S: "eb3 c3 bb2 g2", T: "~@4 f2 ~@7 f2@10 f3@2", U: "bb3@3 bb3@2 ab3@6 ~", V: "ab3 f3",
  W: "bb3@2 f3 bb2", X: "f3 ~ bb2 ~", Y: "eb3@6 bb3@4 ~ c4 db4@4 ~ c4 bb3@6", Z: "eb3 ~@3", AA: "~ eb3 ~ bb2",
  AB: "~@3 eb3@3 ~@2 bb2@3 ~", AC: "d3 eb3 ~ bb2", AD: "d3 f3 ~ bb2", AE: "~@3 f3@3 ~@2 bb2@3 ~",
  AF: "[d3 eb3@2 d3@2 db3@3]/2", AG: "[db3 c3@2 c3@2 b2@3]/2", AH: "db3 eb3@3", AI: "~ f3 eb3 d3",
  AJ: "[c3 d3@4 f3 eb3 d3]/2", AK: "c3 eb3 ~ bb2", AL: "~ c3!2 d3", AM: "[d3 eb3@4 ~@3]/2",
  AN: "[bb2@15 c4@2 d4 ~@6]/2", AO: "~ d3@2 c3@3", AP: "f2@2 g2 ab2@2 bb2 ~@6", AQ: "eb3 d3", AR: "bb3@3 bb3 c4 d4",
  AS: "bb3@5 ~@3 a3@4", AT: "ab3@2 ab3!2", AU: "[c3@3 d3@3 eb3@3 e3@2 f3@7 bb2@6]/2", AV: "[bb3@6 bb2@5 eb3@7 ~@6]/2",
  AW: "bb3@6 bb2@5 eb3", AX: "eb3 ~", AY: "f3 d3", AZ: "f3 bb2", BA: "c3@3 c3", BB: "bb2", BC: "g3!2 f3!2",
  BD: "bb3@2 ab3 g3@2 f3@4 ~@3", BE: "bb3 bb2", BF: "bb3@6 ~@2 eb3 f3@3", BG: "~ eb3@3", BH: "~@9 bb2 ~@2",
  BI: "[~@4 d3@2 ~@8 eb3@2 ~@6 e3@7 f3@2 ~@3 bb2@2 ~@7 d3@2 ~@3]/2", BJ: "~@5 eb3@2 ~@6 e3@7 f3@2 ~@2",
  BK: "~ bb2@2 ~@8 d3@2 ~@8 eb3@2 ~", BL: "~@5 e3@7 f3@2 ~@3 bb2@2 ~@5",
  BM: "[~@2 d3@2 ~@8 eb3@2 ~@6 g3@7 bb3@2 ~@3 eb3@2 ~@8 e3@2 ~@4]/2", BN: "~@4 f3@2 ~@6 a3@7 c4@2 ~@3",
  BO: "f2@2 ~@8 a2@2 ~@7 bb2@2 ~@3", BP: "f2@15 bb2@2 ~@7",
  BQ: "[~ d3@2 ~@8 eb3@2 ~@6 e3@7 f3@2 ~@3 bb2@2 ~@8 d3@2 ~@5]/2", BR: "~@2 eb3@2 ~@6 g3@7 bb3@2 ~@3 eb3@2",
  BS: "[~@8 e3@2 ~@8 f3@2 ~@3 e3@3 f3@2 ~@3 d3@2 db3@3 c3@2 ~@3 d3@7]/2",
  BT: "[eb3@2 ~@3 f3@3 bb3@2 ~@9 f3@10 bb2@5 a2@5 g2@5 f2@4]/2",
  BU: "[~@4 f3@2 g3@3 bb3@2 g3@5 f3@5 bb2@5 a2@5 g2@5 f2@5 ~@3 f3@2 g3@2]/2",
  BV: "[a3@2 bb3@5 f3@5 c3@5 f2@5 g2@5 a2@5 ~@3 f3@2 g3@3 a3@2 bb3@3 a3@2 g3@3 bb3@2 ~@3 e3@7 f3@2 ~@3 e3@3 eb3@2]/3",
  BW: "~@5 f2@15 ~@4", BX: "[d3@3 f3@2 g3@3 f3@2 bb3@5 bb3@5 a3@3 g3@2 bb3@3 g3@2 f3@2 ~@3 bb3@5 ab3@5 f3@3]/2",
  BY: "[d3@2 bb2@3 d3@7 a2@5 g2@5 f2@5 ~@2 eb3@2 g3@3 a3@2 bb3@3 a3@2 g3@3 ~@4]/2",
  BZ: "[~ f3@5 ~@7 f3@3 d3@2 ~@3 db3@7 c3@2 ~@3 f3@3 bb3@2 ~@3 db4@2 bb3@3 ab3@2]/2",
  CA: "f3@3 eb3@2 bb2@3 f3@2 eb3@2 db3@7 bb2@3 ~@2",
})).s("gm_trombone").gain(0.3)

stack(trombone)