Strudelify

little drummer boy

Misc Christmas

KeyG majorTempo120 bpm
0:00/0:00
// little drummer boy — Misc Christmas
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5896486; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 81 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// 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 · string ensemble 1 · "Violins 1"
const string_ensemble_1 = note(`<
  ~@4 A B C@2 D B C@2 E F G@2 E F H I G@2 A B J@2 K@2 L@4 M@2 L N L@2 N@2 L@2 O P Q@2 R@2 S@2 L T@2 A B C@2 D B C@2 E F
  G@2 E F H I G@2 A B J@2 K@2 ~@4
>`.pickRestart({
  A: "g4@3 a4", B: "b4!4", C: "[c5 b4 c5@2 b4@10 ~@2]/2", D: "~ g4!2 a4", E: "~ a4 b4 c5", F: "d5!3 e5",
  G: "[d5 c5 b4@2 a4@10 ~@2]/2", H: "f5 e5 d5@2 c5@4", I: "e5 d5 c5@2 b4@4", J: "[c5 b4 c5@2 b4@8 ~@4]/2",
  K: "[a4 g4 a4@2 g4@12]/2", L: "d4@3 d4!3 d4@3 d4@3", M: "d4@2 d4!2", N: "d4!3 d4@3 d4!3 d4@3", O: "f4@2 e4!2",
  P: "e4@2 e4!2", Q: "d4!3 d4@3 d4@6", R: "b3@3 b3!3 b3@3 b3@3", S: "b3!3 b3@3 b3!3 b3@3",
  T: "[a5 g5 a5@2 g5@6 e5@2 d5@2 c5@2]/2",
})).s("gm_string_ensemble_1").gain(0.3)

// other · string ensemble 1 · "Violins 2"
const string_ensemble_1_2 = note(`<
  ~@4 A B C@2 D B C@2 E F G@2 E H I J K@2 A L M@2 N@2 O P Q@2 R P Q@2 S T U@2 S T V W U@2 O P X@2 Y@3 A B C@2 D B C@2 E
  F G@2 E H I J K@2 A L M@2 N@2 ~@4
>`.pickRestart({
  A: "d4@3 d4", B: "g4!4", C: "[a4 g4 a4@2 g4@10 ~@2]/2", D: "~ b3 d4 f#4", E: "~ f#4 g4 a4", F: "f#4!3 g4",
  G: "[f#4 a4 g4@2 f#4@10 ~@2]/2", H: "b4!3 g4", I: "a4 g4 f4@2 e4@4", J: "c5 b4 a4@2 g4@4",
  K: "[b4 a4 g4@2 f#4@10 ~@2]/2", L: "d4!4", M: "[e4 d4 e4@2 d4@8 ~@4]/2", N: "[f#4 e4 f#4@2 d4@12]/2", O: "g4@3 a4",
  P: "b4!4", Q: "[c5 b4 c5@2 b4@10 ~@2]/2", R: "~ g4!2 a4", S: "~ a4 b4 c5", T: "d5!3 e5",
  U: "[d5 c5 b4@2 a4@10 ~@2]/2", V: "f5 e5 d5@2 c5@4", W: "e5 d5 c5@2 b4@4", X: "[c5 b4 c5@2 b4@8 ~@4]/2",
  Y: "[a4 g4 a4@2 g4@14 c5@2 b4@2 a4@2]/3",
})).s("gm_string_ensemble_1").gain(0.3)

// other · cello · "Violoncello"
const cello = note("<A@12 B@6 C D E B A@14 F@6 G H I@2 A@5 J K L@6 M@2 N@2 O@4 G P@2 Q A@9 R>".pickRestart({
  A: "g2!2", B: "d3!2", C: "d3 c3", D: "a2 g2", E: "b2 d3", F: "d2!2", G: "d3!3 d3@3 c3@3 c3@3",
  H: "a2!3 a2@3 b2@3 b2@3", I: "d3@6 d3!3 d3@3", J: "f#3 e3 f#3@2 g3@4", K: "g3", L: "g2@3 g2!3 g2@3 g2@3",
  M: "g2!3 g2@3 g2@3 g2@3", N: "d3@3 d3!3 d3@3 d3@3", O: "d3!3 d3@3 d3@3 d3@3", P: "d3!3 d3@3 d3@6", Q: "d3!12",
  R: "g2 ~",
})).s("gm_cello").gain(0.3)

stack(string_ensemble_1, string_ensemble_1_2, cello)

More by Misc Christmas