Strudelify

christmas canon

Trans-Siberian Orchestra

KeyD majorTempo65 bpm
0:00/0:00
// christmas canon — Trans-Siberian Orchestra
// 65 bpm, 4/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 (3/4 at bar 1, 4/4 at bar 8) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/152613; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 66 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(65/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.

// chords · piano
const piano = note(`<
  ~@7 A B C D E F G H I J K L M N O P M N O P M N O P M N O P M N O P M N O P M N O P M N O P M N O P M N O P M N O P
  Q@3
>`.pickRestart({
  A: "d3 a2", B: "b2 f#2", C: "g2@4 ~ d3 f#3 a3, ~ d2", D: "g2 a2", E: "d3 a3 d4@2 a2 e3 a3@2",
  F: "b2 f#3 b3@2 f#2 c#3 f#3@2", G: "g2 d3 g3@2 d2 a2 d3@2", H: "g2 d3 g3@2 a2 e3 a3@2", I: "d3 a3 d4 a3 a2 e3 a3 c#4",
  J: "b2 f#3 b3 f#3 f#2 c#3 f#3 a3", K: "g2 d3 g3 d3 d2 a2 d3 f#3", L: "g2 d3 g3 d3 a2 e3 a3 c#4",
  M: "[d3,a3,d4] [a2,e3,a3]", N: "[b2,f#3,b3] [f#2,c#3,f#3]", O: "[g2,d3,g3] [d2,a2,d3]", P: "[g2,d3,g3] [a2,e3,a3]",
  Q: "[d3,f#3,a3,d4]/3", // D
})).s("gm_piano").gain(0.3)

stack(piano)

More by Trans-Siberian Orchestra