Strudelify

coventry carol

Misc Christmas

KeyA minorTempo120 bpm
0:00/0:00
// coventry carol — Misc Christmas
// 120 bpm, 3/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5882465; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 48 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

// 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 · recorder · "Soprano Recorder"
const recorder = note("<A B C D E F G H I J C D K F G L ~@12 K F G L A B C D E M G N I J C D E O P G>".pickRestart({
  A: "a5@5 a5@5 ~ g#5@5", B: "a5@11 c6@5", C: "b5@11 a5@5", D: "g#5", E: "a5@5 b5@5 ~ c6@5", F: "d6@5 b5@11", G: "a5",
  H: "a5@11 e6@5", I: "d6@11 c6@5", J: "b5@11 c6@5", K: "a5@5 g#5@5 ~ a5@5", L: "a5@11 ~@5", M: "d6@11 b5@5",
  N: "a5@3 b5@2 c6@3 d6@3 e6@5", O: "d6@5 e6@5 ~ g#6@5", P: "a6",
})).s("gm_recorder").gain(0.3)

// other · recorder · "Alto Recorder"
const recorder_2 = note(`<
  A B C A D E F G H C I A J E F K ~@7 L M N O P J E A Q R S T U V E A W H X I Y D Z F AA
>`.pickRestart({
  A: "e5", B: "e5@11 a5@5", C: "g5@11 e5@5", D: "e5@5 g5@5 ~ g5@5", E: "a5@11 g#5@5", F: "a5", G: "a5@11 g5@5",
  H: "b5@11 a5@5", I: "g5@11 d5@5", J: "e5@5 e5@5 ~ e5@5", K: "a5@11 ~@5", L: "a4@5 c5@5 ~ e5@5", M: "d5@11 c5@5",
  N: "b4@11 c5@5", O: "b4@11 a4@5", P: "g#4", Q: "e5@11 ~@5", R: "e5@11 e5@5", S: "e5@5 e5@5 ~ c5@5",
  T: "d5@11 c5@2 e5@3", U: "e5@3 f5@2 e5@3 d5@3 c5@2 b4@3", V: "c5@5 d5@5 ~ e5@2 g5@3", W: "c5@3 d5@2 e5@3 f5@3 g5@5",
  X: "b5@3 a5@2 g5@3 f5@3 e5@5", Y: "b4@5 a4@3 b4@3 c5@2 d5@3", Z: "f5@5 a5@5 ~ g#5@5", AA: "a4",
})).s("gm_recorder").gain(0.3)

// other · recorder · "Tenor Recorder"
const recorder_3 = note(`<
  A B C D E F G H I J K D L F G M ~@4 N O P Q R S T U L F V W A X Y Z AA AB V AC I AD K AE AF AG AH@2
>`.pickRestart({
  A: "c5@11 b4@5", B: "c5@11 f5@5", C: "d5@11 c5@5", D: "b4", E: "c5@5 d5@5 ~ e5@5", F: "f5@5 e5@11", G: "e5",
  H: "e5@11 e5@5", I: "g5@11 e5@5", J: "e5@11 c5@5", K: "d5@11 a4@5", L: "c5@5 b4@5 ~ c5@5", M: "e5@11 ~@5",
  N: "a4@5 b4@5 ~ c5@5", O: "d5@11 b4@5", P: "a4", Q: "c4@5 e4@5 ~ g4@5", R: "b4@11 a4@5",
  S: "b4@3 a4@2 g4@3 f4@3 e4@5", T: "g4@11 d5@5", U: "b4@5 a4@3 b4@3 c5@2 d5@3", V: "c5", W: "c5@11 ~@5",
  X: "c5@5 e5@5 ~ a4@5", Y: "g4@11 c5@5", Z: "e5@3 d5@2 c5@3 b4@3 a4@2 g#4@3", AA: "a4@5 b4@5 ~ c5@2 e5@3",
  AB: "a4@5 a4@3 b4@3 c5@2 d5@3", AC: "c5@11 e5@5", AD: "g5@3 f5@2 e5@3 d5@3 c5@5", AE: "e4@5 f4@3 g#4@3 a4@2 b4@3",
  AF: "c5@5 d5@5 ~ c5@5", AG: "a4@5 e5@11", AH: "c#5",
})).s("gm_recorder").gain(0.3)

stack(recorder, recorder_2, recorder_3)

More by Misc Christmas