Strudelify

the first noel

Misc Christmas

KeyC majorTempo120 bpm
0:00/0:00
// the first noel — Misc Christmas
// 120 bpm, 3/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// 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: Transcription provider: pdmx. https://musescore.com/score/5885552; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 25 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 B J D E F G K L M N O P Q R S T>".pickRestart({
  A: "~@11 g6@5", B: "g6@3 f6@2 e6@3 d6@3 c6@5", C: "d6@8 g6@3 f6@5", D: "e6@3 f6@2 g6@8 d6@3", E: "e6@3 d6@2 c6@11",
  F: "c6@8 g5@3 a5@2 b5@3", G: "c6@8 a5@3 g5@2 f5@3", H: "e6@3 d6@2 c6@5 ~ d6@5", I: "c6@5 g6@11", J: "d6@5 g5@8 f6@3",
  K: "g5@8 c6@3 d6@5", L: "c6@3 d6@2 e6@3 f6@3 g6@5", M: "g6@3 f6@2 e6@3 d6@3 c6@2 d6@3", N: "e6@5 b5@5 ~ e6@2 d6@3",
  O: "f6@3 g6@2 a6@3 g6@3 f6@2 g6@3", P: "e6@3 d6@2 c6@8 f6@3", Q: "e6@3 f6@2 d6@3 e6@3 c6@2 d6@3",
  R: "e6@8 c6@3 b5@2 a5@3", S: "g5@3 f5@2 e5@5 ~ b5@5", T: "c6",
})).s("gm_recorder").gain(0.3)

// other · recorder · "Alto Recorder"
const recorder_2 = note("<A B C D E F G H I B J K L F@2 M I B C N O F@2 M P>".pickRestart({
  A: "~@11 b4@5", B: "c5@11 c5@5", C: "d5@3 e5@2 f5@3 g5@3 a5@5", D: "g5@11 f5@2 e5@3", E: "d5@3 c5@2 b4@5 ~ c5@2 d5@3",
  F: "e5@11 f5@5", G: "g5@5 c5@5 ~ f5@5", H: "g5@5 e5@5 ~ d5@5", I: "c5@11 b4@5", J: "b4@5 c5@5 ~ e5@5",
  K: "f5@11 f5@5", L: "e5@5 g5@11", M: "g5@5 c5@5 ~ b4@5", N: "f5@8 g5@3 a5@2 b5@3", O: "c6@11 b5@5", P: "c5",
})).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 F L F G H M B C F G F G H N>".pickRestart({
  A: "~@11 g4@2 f4@3", B: "e4@5 f4@5 ~ a4@5", C: "b4@3 c5@2 d5@3 e5@3 f5@5", D: "e5@11 d5@2 c5@3",
  E: "b4@3 a4@2 g4@5 ~ a4@2 b4@3", F: "c5@11 c5@5", G: "c5@11 d5@5", H: "c5@11 g4@5",
  I: "c4@3 d4@2 e4@3 f4@3 g4@2 f4@3", J: "e4@11 a4@5", K: "b4@11 c5@5", L: "b4@11 c5@2 c5@3", M: "g4@11 g4@2 f4@3",
  N: "g4",
})).s("gm_recorder").gain(0.3)

// other · recorder · "Bass Recorder"
const recorder_4 = note("<A B C D E F G H I B J D E F G H I B K L M F N H O>".pickRestart({
  A: "~@11 g3@5", B: "c4@11 a3@5", C: "g3@5 g4@5 ~ f4@5", D: "e4@11 f4@5", E: "g4@11 f4@2 g4@3", F: "a4@5 g4@5 ~ f4@5",
  G: "e4@5 f4@5 ~ d4@5", H: "e4@3 f4@2 g4@5 ~ g3@5", I: "c4@11 g3@5", J: "g4@5 g4@5 ~ f4@5", K: "e4@8 d4@3 c4@5",
  L: "f4@8 g4@3 a4@2 b4@3", M: "c5@11 b4@5", N: "c5@5 c4@5 ~ d4@5", O: "c4",
})).s("gm_recorder").gain(0.3)

stack(recorder, recorder_2, recorder_3, recorder_4)

More by Misc Christmas