Strudelify

we wish you a merry christmas

Jake Wyatt

KeyB♭ majorTempo184 bpm
0:00/0:00
// we wish you a merry christmas — Jake Wyatt
// 184 bpm, 3/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 (1/4 at bar 1, 3/4 at bar 2) are rendered on a constant 3/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/79935; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 29 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(184/3)

// 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("<A B C D E F G H I J K L M N O H I ~ P@3 Q@8>".pickRestart({
  A: "~@11 f4@5", B: "[d4,f4,bb4]@5 ~@8 a4@3, f2, ~@5 [bb2,d4,f4]@11, ~@5 bb4@5 ~ [d3,bb4]@5, ~ c5",
  C: "[bb3,eb4,g4]@5 g4@5 ~ [eb3,g4]@5, g2, ~@5 [bb2,bb3,eb4]@11", // Eb Eb5
  D: "[eb4,g4,c5]@5 ~@8 bb4@3, eb2, ~@5 [g2,eb4,g4]@11, ~@5 c5@5 ~ [c3,c5]@5, ~ d5", // Cm C
  E: "[c4,f4]@5 f4@5 ~ [c3,f4]@5, [f2,a4], ~@5 [a2,a3,c4]@11", // F5 F Am
  F: "[f4,bb4,d5]@5 ~@8 c5@3, f2, ~@5 [bb2,f4,bb4]@11, ~@5 d5@5 ~ [d3,d5]@5, ~ eb5", // Bb Bb5 D
  G: "[eb4,g4]@5 ~@6 f4@2 f4@3, [g2,bb4], ~@5 [bb2,bb3,eb4,g4]@11, ~@11 eb3@5", // Eb Gm Eb
  H: "f4@5 f4@5 ~ [c3,f4,a4]@5, f2, a4@11 ~@5, ~@5 [a2,c5]@11", I: "f4@11 f4@5, [bb2,bb3,d4,bb4]",
  J: "bb4@5 bb4@5 ~ [d3,bb4]@5, [f2,d4,f4], ~@5 bb2@11", K: "~@11 [c3,a4]@5, [f2,c4,f4], a4@11 ~@5, ~@5 a2@11",
  L: "~@11 [d3,g4]@5, [f2,d4,f4,bb4], ~@5 [bb2,a4]@11", M: "~@11 [c3,a4]@5, [f2,a3,c4,f4], ~@5 a2@11",
  N: "~@11 [d3,bb4]@5, [f2,f4,d5], bb4@11 ~@5, ~@5 [bb2,c5]@11", // Gm Dm Bbsus2
  O: "~@5 f4@5 ~ f4@2 f4@3, [f2,bb4,d5,f5], ~@5 bb2@11, ~@11 d3@5", P: "[[f2,d4,f4,bb4]@5 [bb2,bb4,d5,f5]@43]/3",
  Q: "[~@2 f4@6 f4@6 [f2,f4,a4]@12 [a2,f4,c5]@12 ~ [c3,f4,a4]@20 [bb2,f3,bb3,d4,f4,bb4]@57 ~@12, ~ f2@6 ~@57]/8", // F Bb
})).s("gm_piano").gain(0.48)

stack(piano)