Strudelify

christmas dont be late

Sarah Wood

KeyE♭ majorTempo150 bpm
0:00/0:00
// christmas dont be late — Sarah Wood
// 150 bpm, 3/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3066851; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 86 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(150/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
const violin = note(`<
  ~@8 A B C D E B C D F G H I H G H D A B C D ~@34 J K L M N O P Q R S T M N U R V W X Y@2 Z AA Y@2
>`.pickRestart({
  A: "c4@11 eb4@5", B: "f4@11 ab4@5", C: "g4@11 f4@5", D: "f4@11 ~@5", E: "g4@11 eb4@5", F: "db4@11 f4@5",
  G: "g4@11 bb4@5", H: "ab4@11 f4@5", I: "g4@11 ~@5", J: "c5@11 db5@5", K: "f5", L: "ab4@11 ab4@5", M: "bb4@11 ab4@5",
  N: "f4@11 eb4@5", O: "ab4@11 eb4@5", P: "eb5@11 db5@5", Q: "ab4@11 bb4@5", R: "c5", S: "bb4", T: "ab4@8 ~ ab4@7",
  U: "~@5 bb4@11", V: "~@11 ab5@5", W: "f5@11 ab5@5", X: "eb5@11 bb5@5", Y: "ab5/2", Z: "db5@8 ~ f5@7",
  AA: "eb5@8 ~ g5@7",
})).s("gm_violin").gain(0.3)

// other · pizzicato strings
const pizzicato_strings = note(`<
  ~@5 A ~ B ~@20 C@2 D E F G H I J@2 K@2 L M N O N O L M N P Q R Q S T U L M N V W ~@25
>`.pickRestart({
  A: "~@5 ab4@5 ~ f4@5", B: "ab4@5 ab4@5 ~ g4@5", C: "eb4@11 eb4@5", D: "bb3@11 bb3@5", E: "bb3@11 ~@5",
  F: "eb4@11 db4@5", G: "f4@11 eb4@5", H: "db4@11 c4@5", I: "f4@11 ab3@5", J: "bb3@11 g4@5", K: "ab4/2",
  L: "~@3 eb4@2 eb4@3 ~@3 eb4@3 eb4@2", M: "~@3 eb4@2 ~@4 eb4@2 ~@3 eb4@2", N: "~@3 f4@2 f4@3 ~@3 f4@3 f4@2",
  O: "~@3 f4@2 ~@4 f4@2 ~@3 f4@2", P: "~@3 g4@2 ~@4 eb4@2 ~@3 eb4@2", Q: "~@3 ab4@2 ab4@3 ~@3 ab4@3 ab4@2",
  R: "~@3 eb4@2 ~@4 eb4@2 ~@3 f4@2", S: "~@3 ab3@2 ~@4 bb3@2 ~@3 db4@2", T: "~@3 c4@2 c4@3 ~@3 c4@3 c4@2",
  U: "~@3 f4@2 ~@4 f4@2 ~@3 eb4@2", V: "ab4@3 ab4@2 g4@3 ~ f4@2 g4@3 f4@2", W: "eb4@5 ~@11",
})).s("gm_pizzicato_strings").gain(0.3)

// other · violin
const violin_2 = note(`<
  ~@28 A B C D C E F G H I J@2 ~@20 A K L M C E F G H I N O P Q F R S T H I J@2 U V W@2
>`.pickRestart({
  A: "eb4@11 f4@5", B: "ab4@11 c5@5", C: "c5@11 bb4@5", D: "bb4@11 ~@5", E: "db5@11 c5@5", F: "bb4@11 ab4@5",
  G: "c5@11 eb4@5", H: "f4@11 ab4@5", I: "eb4@11 bb4@5", J: "ab4/2", K: "ab4@11 eb5@5", L: "eb5@11 db5@5", M: "db5",
  N: "ab4", O: "g4", P: "c5@8 ~ bb4@7", Q: "db5@8 ~ c5@7", R: "~@5 c5@11", S: "f5", T: "~@11 ab4@5", U: "f4@8 ~ ab4@7",
  V: "eb4@8 ~ bb4@7", W: "c5/2",
})).s("gm_violin").gain(0.3)

// other · violin
const violin_3 = note(`<
  ~@40 A B C D E B C F G H I J I H I F A B C F ~ K L D L M N O@2 P Q R S T U V W X Y Z AA D Y AB AC@2
>`.pickRestart({
  A: "c4@11 eb4@5", B: "f4@11 ab4@5", C: "g4@11 f4@5", D: "f4", E: "g4@11 eb4@5", F: "f4@11 ~@5", G: "db4@11 f4@5",
  H: "g4@11 bb4@5", I: "ab4@11 f4@5", J: "g4@11 ~@5", K: "c4@11 c4@5", L: "eb4@11 db4@5", M: "f4@11 eb4@5",
  N: "db4@11 c4@5", O: "eb4@11 eb4@5", P: "f4@11 db4@5", Q: "c4", R: "db4", S: "eb4@8 ~ db4@7", T: "f4@8 ~ eb4@7",
  U: "~@5 c4@5 ~ c4@5", V: "~@5 f4@11", W: "ab4", X: "~@11 c4@5", Y: "~@5 ab3@5 ~ ab3@5", Z: "~@5 bb3@5 ~ bb3@5",
  AA: "c4@5 eb4@5 ~ eb4@5", AB: "ab3@8 ~ bb3@7", AC: "c4/2",
})).s("gm_violin").gain(0.3)

// other · pizzicato strings
const pizzicato_strings_2 = note(`<
  ~ A ~ A ~ A ~ B C@2 D@4 C@2 D E D@4 C@2 F@2 G H C@2 D@4 C I J K L M ~@46
>`.pickRestart({
  A: "~@5 c4@5 ~ bb3@5", B: "c4@5 c4@5 ~ bb3@5", C: "~@5 c4@5 ~ c4@5", D: "~@5 db4@5 ~ db4@5", E: "~@5 eb4@5 ~ eb4@5",
  F: "eb4@5 c4@5 ~ c4@5", G: "f4@5 db4@5 ~ db4@5", H: "ab4@5 f4@5 ~ f4@5", I: "~@5 f5@5 ~ f4@5", J: "~@5 ab3@5 ~ ab3@5",
  K: "~@5 bb3@5 ~ bb3@5", L: "c4@5 eb4@5 ~ ab4@5", M: "c5",
})).s("gm_pizzicato_strings").gain(0.3)

// other · cello
const cello = note("<~@60 A B C D E F G H I J K G L M E N O P Q@2 R E Q G S T>".pickRestart({
  A: "eb3@11 f3@5", B: "ab3@11 c4@5", C: "c4@11 bb3@5", D: "bb3", E: "c3", F: "db3", G: "bb2", H: "f3@5 f3@5 ~ eb3@5",
  I: "f2@11 ab2@5", J: "c3@5 c3@5 ~ bb2@5", K: "ab2@5 g2@5 ~ ab2@5", L: "c3@8 ~ bb2@7", M: "eb3@5 eb3@5 ~ eb3@5",
  N: "~@5 c3@11", O: "f2", P: "~@11 eb3@5", Q: "eb3", R: "ab2@5 c3@5 ~ c3@5", S: "ab2@5 c3@5 ~ eb3@5", T: "ab2",
})).s("gm_cello").gain(0.4)

// other · pizzicato strings
const pizzicato_strings_3 = note(`<
  A B A B A B C D E@2 F G F G E B F G F@3 H E B I@2 J K B@2 G L G B M G B@2 I M N O P Q R Q N S P Q P T P U N S N O P V
  ~@26
>`.pickRestart({
  A: "ab3@5 ~@11", B: "eb3", C: "ab3", D: "eb3@5 f3@5 ~ g3@5", E: "ab2", F: "bb2", G: "f3", H: "g3",
  I: "ab2@5 c3@5 ~ c3@5", J: "bb2@5 db3@5 ~ db3@5", K: "f3@5 f3@5 ~ db3@5", L: "db3", M: "c3", N: "ab2@8 ~ ab2@7",
  O: "ab2@5 ab2@5 ~ ab2@5", P: "bb2@8 ~ bb2@7", Q: "f3@5 f3@5 ~ f3@5", R: "bb3@8 ~ bb3@7", S: "eb3@5 eb3@5 ~ eb3@5",
  T: "bb2@5 bb2@5 ~ bb2@5", U: "g3@5 g3@5 ~ g3@5", V: "f3@5 f3@5 ~ g3@5",
})).s("gm_pizzicato_strings").gain(0.3)

stack(violin, pizzicato_strings, violin_2, violin_3, pizzicato_strings_2, cello, pizzicato_strings_3)

More by Sarah Wood