Strudelify

Christmas Music!!

Angelina

KeyB♭ majorTempo111 bpm
0:00/0:00
// Christmas Music!! — Angelina
// 111 bpm, 4/4, key Bb 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 (3/4 at bar 1, 4/4 at bar 22, 2/4 at bar 52, 4/4 at bar 99, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5902863; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 244 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(111/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 · viola
const viola = note(`<
  ~@2 A@4 B@2 C D E F G@2 H I@3 J@2 K L M N O@3 P Q@2 R@2 S T@2 U V W@2 X Y@3 Z@3 AA AB@2 AC@3 AD AE AD AE AF AG AH AI
  AD AE AD AE AF AJ AK AL AM AN AO AP AQ AN AO AR AS AT AU AV AW AT AU AX AM AN AO AP AQ AN AO AR AY AR AZ BA BB BC BD
  BE BF BG@2 BH BI BJ@2 BE BF BG@2 BK BL BM@2 BN BO BP BQ BN BO BP BR BS BT BP BI BU BV BW BX@2 BY BZ CA CB CC CD CE
  CF@2 CG CH CI CJ CK CL CM CN CO CP CQ@2 CR CS CT CU CV CW@2 CX CY CZ CD DA DB DC DD DE DF DG DH DI DJ BW DK DI DL DM
  CP CU DN DO DN DP DQ DR DS DT DQ DR DU DV DW DX DY DZ DW DX DY DZ EA DJ EB EC ED EE EF EG EH EE EI EJ EK EL EM EJ EK
  EL EM EN EO EP EQ EJ EK ER EM ES ET EU EV EW ET EX EY CB EZ EV FA ES FB FC EY
>`.pickRestart({
  A: "[~@7 g4@11 f4@11 eb4@11 d4@11 ~ g3@11 f3@11 eb3@11 d3@11]/4",
  B: "[g3@4 g3@2 g3 g3@4 bb3@4 bb3@2 bb3 bb3@4 d4@4 d4@2 d4@2 d4@3 g4@4 g4@2 g4@2 g4@3 g3@4]/2",
  C: "g3@2 g3@2 g3@3 bb3@4 bb3@2 bb3@2 bb3@4 d4@3 d4@2", D: "d4@2 d4@4 g4@3 g4@2 g4@2 g4@4 g4@3 g4@2 g4@2",
  E: "f4@2 eb4@2 d4@4 d4 d4@2 c4@2 bb3@2 c4@4 c4@2 ~ d4@2, ~@21 c4@2 ~", F: "c4@2 g3@4 g3@2 g3 g3@4 d4@11",
  G: "[g4@11 bb4@11 d5@11 ~ g4@3 g4@2 g4@2 f4@2 eb4@2 d4@3]/2",
  H: "d4@2 d4@2 c4@2 bb3@2 c4@3 c4@2 c4@2 d4@2 c4@2 g3@4 g3", I: "[g3@2 g3@4 d4@11 g4@11 bb4@11 d4@11 g3@11 bb3@11]/3",
  J: "[~ d4@11 g4@11 bb4@3 a4@2 bb4@2 g4@4 bb4@4 ~ bb4@2 g4@4 bb4@3, ~@19 a4 ~@4]/2",
  K: "~ a4@2 ~ g4@4 bb4@4 a4@2 ~ g4@4 [g4,bb4]@4 ~, ~@3 bb4@2 ~@9 bb4@2 ~@8", L: "~@6 e4 ~@4 b4 ~@5 e4 ~@4 c5 ~",
  M: "~@3 e4 ~@4 b4 ~@4 e4 ~@4 a4 ~@4 e4", N: "~@4 b4 ~@5 e4 ~@4 c5 ~@4 e4 ~@3",
  O: "[~ b4 ~@4 ab4@3 ab4@2 ab4@5 g4@3 g4@2 g4@5 gb4@3 gb4@3 gb4@5 g4@5 a4@5 g4@5 ~@10 g4@3 ~@7]/3",
  P: "~ gb4@3 ~@7 g4@3 ~@7 db5@3", Q: "[~@7 d5@3 ~@8 db5@5 b4@5 g4@5 b4@5 ~@10]/2",
  R: "[b4@3 g4@2 b4@5 ~ a4@5 gb4@5 g4@5 ab4@2 ab4@3 ab4@5 g4@3 g4@2 g4@5 gb4@2]/2", S: "~ gb4@3 gb4@5 g4@5 a4@5 g4@5",
  T: "[~@10 bb4@5 bb4@5 ~ a4@5 ~@5 ab4@5 ab4@5 g4@5 ~@2]/2", U: "~@3 gb4@5 gb4@5 ~ g4@5 b4@5", V: "b4@5 b4@5 b3@5 ~@9",
  W: "[~@12 a4@5 a4@5 a4@5 ~@5 a4@5 a4@5 a4@5 ~]/2", X: "~@5 a4@5 db5@5 gb4@5 g4@4",
  Y: "[~ a4@10 ~@11 e4@5 e4@5 e4@5 e4@5 e4@5 d4@5 d4@5 d4@5 ~ d4@5 db4@4]/3",
  Z: "[~ db4@5 d4@5 db4@10 gb4@10 ~ a4@5 a4@5 a4@5 a3@5 a4@5 a4@5 a4@5 a3@5]/3", AA: "~ a4@5 db5@5 gb4@5 g4@5 gb4@3",
  AB: "[g4@2 d5@3 db5@2 a4@3 gb4@2 a3@5 ~ e4@5 e4@5 e4@5 e4@5 e4@5 d4@5]/2",
  AC: "[d4@5 d4@5 ~ c5@5 c5@5 g4@5 a4@5 a4@10 gb4@10 ~@21]/3", AD: "gb4@3 gb4!3 g4@3 g4@3", AE: "a4 gb4 g4 ~",
  AF: "e4 gb4 e4 d4 db4 b3 a3@2", AG: "d4 e4 d4 db4 b3 a3 g3@2", AH: "a3 g3 gb3@2 g4 a4 b4 d5",
  AI: "e5 d5 db5 b4 gb4@2 ~@2", AJ: "gb4 g4 gb4 e4 d4 db4 b3@2", AK: "g3 gb3 e3@2 a3 g3 gb3@2",
  AL: "b3 a3 g3 a3 gb4@2 gb4@2", AM: "~@4 d5@2 d5!2", AN: "e5@2 c5@2 b4@2 b4!2", AO: "g4 gb4 e4 g4 gb4!2 e4!2",
  AP: "d4!2 gb4!2 g4!2 e4!2", AQ: "gb4 e4 gb4 ~ d5@2 d5!2", AR: "d4!2 gb4!2 g4!2 gb4!2", AS: "d4 g3 d4 ~ d5@2 d5 db5",
  AT: "b4@2 e4@2 a4@2 a4 g4", AU: "gb4@6 d4@6 e5 ~@2 e5 ~@2 d5 ~@2 d5 ~@2",
  AV: "db5 ~@2 db5 ~@2 b4 ~@2 b4 ~@2 a4 ~@2 a4 ~@2 g4 ~@2 g4 ~@2", AW: "gb4 ~@2 gb4 ~@2 a4 ~@2 a4 ~@2 d5@6 d5@3 db5@3",
  AX: "db5 ~@2 db5 ~@2 b4 ~@2 b4 ~@2 a4 ~@2 a4 ~@2 gb4 ~@2 gb4 ~@2", AY: "e4!2 g4!2 gb4!2 e4!2",
  AZ: "e4!2 g4!2 gb4!2 a4!2", BA: "g4!2 e4!2 gb4!2 a4!2", BB: "g4!2 d4!2 gb4!2 e4!2", BC: "gb4!2 e4!2 gb4!2 e4!2",
  BD: "gb4 c4 b3@2 g4@2 g4@2", BE: "g4!2 gb4!2", BF: "gb4@2 e4!2", BG: "[e4!2 d4@4 c4!2]/2", BH: "c4!2 b3!2",
  BI: "b3@2 d4!2", BJ: "[gb4!2 gb4@4 g4!2]/2", BK: "c4!2 d4!2", BL: "g4@2 gb4 g4", BM: "[gb4!2 b3@4 b3!2]/2",
  BN: "b3 c4 b3 c4", BO: "d4@2 c4 g3", BP: "c4 a3 b3@2", BQ: "b3@2 b3!2", BR: "b3@2 b4 a4", BS: "g4 gb4 g4 gb4",
  BT: "e4@2 c4 g3", BU: "e4 gb4 e4!2", BV: "gb4@2 g4 e4", BW: "g4 gb4 e4@2", BX: "[e4 b3@2 ~]/2", BY: "~ g3 g3@2",
  BZ: "d3 g3 a3@2", CA: "d4@2 g4 gb4", CB: "g4!2 g4@2", CC: "gb4 e4 e4@2", CD: "d4!3 e4", CE: "gb4 g4 d4@2",
  CF: "[e4@3 d4 d4@6 ~@2 b4@4]/2", CG: "a4 g4 a4@2", CH: "g4@2 d4!2", CI: "e4@2 e4@2 d4@3 e4", CJ: "d4 b3!2 a3",
  CK: "b3 c4 b3@2", CL: "b3 d4 d4@2", CM: "d4!2", CN: "gb4 g4!3", CO: "e4!2 d4@2", CP: "d4 e4 d4@2",
  CQ: "[c4 b3@2 ~]/2", CR: "d4 b3!3", CS: "c4!3 a3", CT: "a3 e4 gb4 d4", CU: "d4!4", CV: "e4 c4 g3 c4",
  CW: "[c4!2 b3@3 ~@2 d4]/2", CX: "b3!3 c4", CY: "c4!2 a3!2", CZ: "e4 gb4 d4!2", DA: "c4 g3 c4!2", DB: "c4 b3@3",
  DC: "d4 g4!3", DD: "d4@2 d4 b3", DE: "a3!2 d4@2", DF: "a3@2 b3@2 a3!2 g3!2", DG: "d4@2 d4@2 g4!2 c5@2",
  DH: "c5!2 b4@2", DI: "b3!3 d4", DJ: "g4!3 gb4", DK: "d4 gb4 g4@2", DL: "e4 g4 g4@2", DM: "gb4!2 d4@2",
  DN: "a3 g3!2 gb3", DO: "d3!3 g3", DP: "g3!3 ab3", DQ: "a3 b3 a3@2", DR: "gb3 d3 g3@2", DS: "g3 gb3 g3@2",
  DT: "g3@3 g3 g3@2 ab3@2", DU: "e3 gb3 b3@2", DV: "~@3 e4", DW: "e4!2 eb4!2", DX: "e4 d4 e4 d4", DY: "e4 eb4 e4!2",
  DZ: "eb4@3 e4", EA: "a4!2 g4!2", EB: "e4!2 d4 e4", EC: "gb4@2 e4 gb4", ED: "g4@2 e4 d4", EE: "g4 gb4 e4 eb4",
  EF: "e4@4 e4!2 e4@2", EG: "gb4@2 g4 gb4", EH: "g4!4", EI: "g3", EJ: "b4@3 a4 g4@2 gb4@2", EK: "e4 gb4 g4 d4",
  EL: "gb4 g4 a4 gb4 g4@3 e4", EM: "d4 c4 b3@2", EN: "gb4@3 g4 a4@2 gb4@2", EO: "g4@3 g4 g4@2 a4@2",
  EP: "g4!2 a4@2 g4 a4 b4@2", EQ: "a4 g4 gb4@2", ER: "g4!4 g4@3 e4", ES: "gb4@2 gb4 g4 gb4@2 d4@2", ET: "d4!2 gb4@2",
  EU: "g4!2 gb4 d4", EV: "e4!2 e4@2", EW: "gb4@2 gb4 g4 gb4@2 d4 e4", EX: "g4@2 g4!2 gb4!2 d4@2", EY: "e4 a4 gb4@2",
  EZ: "d4@2 d4!2 d4@4", FA: "d4@2 gb4!2 d4@2 d4@2", FB: "g4 d4 d4@2", FC: "d4@2 d4!2 gb4@2 d4!2",
})).s("gm_viola").gain(0.45)

stack(viola)