Strudelify

christmas medley

Natouchka

KeyD majorTempo104 bpm
0:00/0:00
// christmas medley — Natouchka
// 104 bpm, 3/4, key D 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, 3/4 at bar 22) are rendered on a constant 3/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5860582; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 145 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(104/3)

// 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 · violin · "Violon"
const violin = note(`<
  A B@4 C D@6 E@5 F G H@3 I@5 J K@4 L@2 M@2 N@4 O P@2 Q@2 R@4 S@3 T U V@4 W@4 X Y@3 Z@2 AA@2 AB@2 AC AD AE@2 AF AG AH@2
  AI AJ AK AL AM AN AO@2 AP AQ AR@2 AS AT AU@2 AV@2 AW@2 AX@2 AY AZ BA@2 AY AZ BB BC BD BE@2 BF BG BH@2 BI BJ@2 BK BL BM
  BN BO@2 BP@2 BQ BR BS@2 BT@2 BU@2 BQ BR BS@2 BT@2 BU@2 BV
>`.pickRestart({
  A: "~@14 f#4@2 e4@3 d4@5", B: "[d5@10 b4@5 ~ a4@7 g4@3 f#4@5 g4@5 f#4@10 ~ e4@10 d5@21 d5@10 c#5@8]/4",
  C: "b4@3 a4@15 g4@5 ~", D: "[f#4@10 e4@10 d4@16 a4@5 b4@16 b4@5 c#5@16 c#5@5 d5@36 d5@5 d5@8 c#5@3 b4@5 a4@4]/6",
  E: "[~ a4@8 g4@3 f#4@5 d5@5 d5@8 c#5@2 b4@5 ~ a4@5 a4@8 g4@2 f#4@5 f#4@5 ~ f#4@5 f#4@2 f#4@3 f#4@5 f#4@3 g4@2 a4@16 g4@3 f#4@2 e4@5 e4@3 e4@3 e4@4]/5",
  F: "~ e4@2 f#4@3 g4@16 f#4@2", G: "e4@3 d4@5 d5@10 b4@5 ~", H: "[a4@7 g4@3 f#4@5 g4@5 f#4@10 ~ e4@10 d5@21 ~@10]/3",
  I: "[~@7 f#4@4 ~ e4@4 d4@13 e4@4 f#4@4 ~ g4@4 a4@17 b4@4 ~ c#5@4 d5@9 c#5@8 b4@9 a4@17 b4@4 ~ c#5@4]/5",
  J: "d5@9 c#5@8 b4@7", K: "[~@2 a4@9 b4@8 c#5@9 d5@9 a4@8 g4@9 f#4@17 f#4@4 ~ e4@4 d4@13 e4@3]/4",
  L: "[~ f#4@4 ~ g4@4 a4@17 d5@4 ~ c#5@4 b4@4 a4@4 ~ b4@3]/2", M: "[~ c#5@4 d5@4 ~ e5@4 f#5@17 e5@9 d5@8]/2",
  N: "[~ c#5@8 b4@9 a4@9 b4@8 c#5@9 d5@9 a4@8 g4@9 f#4@26]/4", O: "a4@13 g4@4 f#4@7",
  P: "[~@2 e4@9 d4@8 e4@9 f#4@9 d4@8 e4@3]/2", Q: "[~@2 f#4@4 g4@4 e4@4 ~ f#4@13 e4@4 d4@9 c#4@7]/2",
  R: "[~ d4@17 ~ a4@13 g4@4 f#4@9 e4@8 d4@9 e4@9 f#4@8 d4@9 e4@4 f#4@4]/4",
  S: "[~ g4@4 e4@4 f#4@13 e4@4 ~ d4@8 c#4@9 d4@17 e4@11]/3", T: "~@2 f#4@4 ~ g4@8 e4@9", U: "f#4@13 g4@4 a4@7",
  V: "[~@2 f#4@9 f#4@4 g4@4 a4@9 b4@4 c#5@4 ~ d5@8 c#5@9 b4@9 a4@17 a4@13 g4@3]/4",
  W: "[~ f#4@9 e4@9 d4@8 e4@9 f#4@9 d4@8 b4@4 ~ b4@4 b4@4 b4@4 ~ a4@13 g4@4 f#4@8]/4", X: "~ e4@8 d4@15",
  Y: "[~@3 b4@4 b4@4 b4@4 ~ b4@4 a4@13 g4@4 a4@9 c#5@9 d5@9 ~@8]/3", Z: "[~ d5 d5@2 a4 d5]/2",
  AA: "[e5@2 a4@2 f#5 e5]/2", AB: "[f#5 g5 f#5@2 e5 d5]/2", AC: "d5@2 c#5", AD: "b4 c#5 d5",
  AE: "[e5@2 f#5@2 c#5@4 b4@3 a4]/2", AF: "a4", AG: "~ a5@2", AH: "[g5 f#5 g5@2 f#5@2]/2", AI: "e5 f#5 d5",
  AJ: "e5@2 c#5@3 b4", AK: "a4 d5!2", AL: "c#5 d5 e5", AM: "d5@2 a4", AN: "f#5!2 e5", AO: "[f#5 g5 f#5@2 e5 f#5]/2",
  AP: "g5 f#5 e5", AQ: "d5 c#5@2", AR: "[d5@2 g5@2 f#5@4 e5@3 d5]/2", AS: "d5", AT: "~@2 a4@3 b4",
  AU: "[a4@2 f#4@6 a4@3 b4]/2", AV: "[a4 f#4@3 e5@2]/2", AW: "[e5 c#5@3 d5@2]/2", AX: "[d5 a4@3 b4@2]/2",
  AY: "b4@2 d5@3 c#5", AZ: "b4@2 a4@3 b4", BA: "[a4 f#4@3 b4@2]/2", BB: "a4 f#4@2", BC: "f#4 e5@2", BD: "e5@2 g5@3 e5",
  BE: "[c#5 d5@3 f#5@2]/2", BF: "~@2 d5@3 a4", BG: "f#4@2 a4@3 g4", BH: "[e4 d4@3 d4@2]/2", BI: "~ f#4!2",
  BJ: "[f#4@2 a4@2 a4@3 g4 f#4@4]/2", BK: "f#4 e4 f#4", BL: "a4@2 f#4@3 e4", BM: "d4@2 f#4", BN: "f#4!2 a4",
  BO: "[a4@3 g4 f#4@4 f#4@2 e4@2]/2", BP: "[f#4@2 a4@2 f#4@3 e4 d4@4]/2", BQ: "a4@4 b4 a4", BR: "g4 f#4 g4@4",
  BS: "[a4 g4 f#4 e4 f#4@4 g4 f#4 e4 d4]/2", BT: "[e4@3 e4 a3@4 d4@2 e4@2]/2", BU: "[f#4 g4 f#4@2 e4@2]/2", BV: "d4",
})).s("gm_violin").gain(0.3)

stack(violin)