Strudelify

white christmas

Irvin Berlin

KeyE♭ majorTempo80 bpm
0:00/0:00
// white christmas — Irvin Berlin
// 80 bpm, 2/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5879493; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 33 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/2)

// Notation: c3@3 lasts 3 steps · ~ is a rest.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · flute
const flute = note("<A B C D E F G H I J K L A M N O A B C D E F G H I J P Q I R S@2 T>".pickRestart({
  A: "g5@15 ~", B: "ab5 g5 gb5 g5", C: "ab5@15 ~", D: "a5@4 bb5@11 ~", E: "c6@2 d6 eb6", F: "f6 eb6 d6 c6",
  G: "bb5@15 ~", H: "~@2 eb5 f5", I: "g5!2", J: "g5 c6@2 bb5", K: "eb5!2", L: "eb5 bb5@2 ab5", M: "ab5 g5 f5 eb5",
  N: "f5", O: "f5 gb5", P: "eb6", Q: "eb6@2 eb5 f5", R: "c6!2 d5!2", S: "eb5", T: "eb5@15 ~",
})).s("gm_flute").gain(0.3)

// other · flute
const flute_2 = note("<A B A C D E F G H I J K L M N O A B A C D E P Q R S T U V W X Y L>".pickRestart({
  A: "eb5@15 ~", B: "eb5!4", C: "e5@4 f5@11 ~", D: "ab5@2 bb5 c6", E: "d6 c6 bb5 a5", F: "g5@11 ~ f5@4",
  G: "eb5@2 eb5!2", H: "d5 eb5", I: "f5@2 g5!2", J: "c5!2", K: "c5@2 b4!2", L: "bb4@15 ~", M: "eb5!2 c5 eb5",
  N: "eb5@2 d5 c5", O: "d5@15 ~", P: "bb5 ab5", Q: "g5 ~", R: "eb5!2", S: "f5 g5", T: "bb5@2 ab5 g5", U: "f5@2 eb5!2",
  V: "eb5 e5", W: "f5!2 bb4!2", X: "bb4 c5", Y: "d5!2 c5 b4",
})).s("gm_flute").gain(0.3)

stack(flute, flute_2)