Strudelify

the first noel

Traditional English Carol

KeyB majorTempo76 bpm
0:00/0:00
// the first noel — Traditional English Carol
// 76 bpm, 3/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 3/4 at bar 1) are rendered on a constant 3/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5874724; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 47 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(76/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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.

// chords · piano
const piano = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK@4 AL@7
>`.pickRestart({
  A: "~@5 e4, ~@2 f#4", B: "~@5 [a3,g4], d4, d3@3 a3 [d3,f#4]@2, ~ a3@2 e4@3, ~ f#3@2",
  C: "~@5 [a3,c#5], a4, c#3@2 [c#3,b4], ~ a3@2 a3@2 ~, ~ e3@2", // A C#7
  D: "~@5 g3, d5, b2@2 [b2,b4], ~ g3@2 g3@2 ~, ~ [d3,c#5]@2", // B Dmaj7
  E: "~@5 [a3,c#5], [d4,a4], c#3@2 [c#3,b4], ~ a3@2 a3@2 ~, ~ e3@2", // A D5 C#7
  F: "~@5 b3, d5, [b2,b4]@2 [b2,b4], ~ b3@2 b3@2 ~, ~ [f#3,c#5]@2", G: "~@2 [e3,c#5], [c#3,d4,a4], ~ [a2,b4]@2",
  H: "~@5 [d3,g4], [g2,d5], ~ d3@2 d3@2 ~, ~ e3@2, ~@2 [g3,a4]", I: "~ a1@2, [a2,f#4]",
  J: "~@5 d5, [d3,f#5], ~ a4@2 a4@3, ~ a3@2, ~ d5 [f#3,e5]", K: "~@5 c#5, c#3, c#5@2 [e3,b4], ~ a4 b4 a4@3, ~ a3@2",
  L: "~@5 d5, f#5, b2 a4, ~ a4 d5@2 [b2,e5]@2, ~ f#3@2", M: "~@5 c#5, a2, c#5@5 ~, ~ [a3,a4]@2, ~@2 [e3,b4]",
  N: "~@2 [d3,b4], [b2,d5], b4@2 ~, ~ d4@2 d4@3, ~ [f#3,c#5]@2", // G Bm F#5
  O: "~@3 a3 ~ f#4, [c#3,e4,a4], ~ a3@2 ~ [a3,d4]@2, ~ [e3,c#4]@2", // A D5 C#m
  P: "~@5 g3, [g2,g4], ~ g3@2 g3@2 ~, ~ [b2,b3]@2, ~@2 [d3,a4]", Q: "~ a2@2, [a3,c#4,f#4]",
  R: "~@5 [a3,g5], d5, d3@3 a3 [d3,f#5]@2, ~ a3@2 e5@3, ~ f#3@2", // A7 D
  S: "~@5 [a3,c#6], a5, c#3@2 [c#3,b5], ~ a3@2 a3@2 ~, ~ e3@2", // A C#7
  T: "~@5 g3, d6, b2@2 [b2,b5], ~ g3@2 g3@2 ~, ~ [d3,c#6]@2", // B Dmaj7
  U: "~@3 a4 ~ [a3,d5], [e5,a5], c#3@2 [c#3,a4], c#5 [e3,c#5]@2, ~ [a3,a4]@2 a3@2 ~", // D5 A5 F#m C#m A
  V: "~@5 b3, a5, b2@2 [b2,f#5], ~ b3@2 b3@2 ~, ~ [f#3,g5]@2", W: "~@2 d5@2 ~ f#5, [c#3,e5], ~ a2@2, ~@2 [e3,d5]",
  X: "~@5 d3, [g2,g5], ~ d3@2 d3@2 ~, ~ [e3,f#5]@2, ~@2 [g3,d5]", // G Esus2 G5
  Y: "~@5 [a2,c#5], [c#4,d4]@2 [c#3,b4], a2 f#4@2, ~ e4@5, ~@2 a2 [b2,a4]@3", // A Dmaj7 C#7 B7
  Z: "d2 ~ [f#2,f#3,f#4,a4,d5], d3, [f#4,a4,d5]@2 ~, ~ [d1,d2]@2", AA: "a1 c#5 [e2,e3,c#5], [a2,e4,a4,d5], ~ [a0,a1]@2",
  AB: "g2 [g2,b4] [g2,g3,g4,b4], c#5, [g3,g4]@2 ~, ~ g1@2", AC: "[d2,d3,d4,e4,f#4,a4]",
  AD: "~@2 b4, [b2,b3,d5], b4@2 ~, ~ c#5@2", AE: "a4!3, [a2,a3], ~ b4@2",
  AF: "~@5 d4, [g2,g3], g4@2 g4, ~ d4@2 d4@2 ~, ~ e4@2", AG: "~@5 e5, [a1,a2,c#4,f#4,a4], ~@2 f#5",
  AH: "~@5 g5, [d4,d5], ~ e5, ~@2 f#5", AI: "~@5 c#6, [c#4,a5], ~@2 d6", AJ: "~@5 e6, [g3,b5], ~ c#6, ~@2 d6",
  AK: "[[d4,f#4,a4,f#6]@7 ~@4 b4@2 a4@2 a4@2 a4@2 ~@4 g4, ~@7 [b3,d5]@6 a3@6 g3@5, ~@7 b4@4 ~@4 b4@4 g4@4 ~, ~@9 c#5@4 ~@7 d4@2 d4@2, ~@7 e4]/4", // D Bm
  AL: "[d4@4 ~@8 c#4@16 ~@20 a3@4 ~@23 a4@4 ~@24 [e5,e6]@5 ~@30 [d2,d3]@10 ~@20, ~@4 [a2,d4,g4,a4]@24 d2@25 d3@26 d4@29 [d4,f#4,a4,a5,d6,e6,f#6]@41 ~@19, ~@28 d4@8 d4@17 ~@13 e5@13 ~@5 a5@24 ~@60, ~@32 a3@12 f#4@8 ~ d5@8 d5@18 ~@9 d5@5 a4@15 ~@60, ~@40 e4@13 ~@4 a4@13 f#5@9 d6@19 [d5,d6]@10 ~@60]/7", // E D Dsus4 D
})).s("gm_piano").gain(0.25)

stack(piano)

More by Traditional English Carol