Strudelify

God Rest Ye Merry Gentlemen - Sax Ensemble

Traditional English Carol

KeyD majorTempo120 bpm
0:00/0:00
// God Rest Ye Merry Gentlemen - Sax Ensemble — Traditional English Carol
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 4/4 at bar 2, 3/4 at bar 21, 4/4 at bar 33) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/145328; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 43 bars on a 16-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 · [c3,e3] is a chord · [...]/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 · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  A B C D E B C D F G H I J K L M J N L O P@2 Q R@3 P@2 Q S@3 T U V W K X Y W Z X AA
>`.pickRestart({
  A: "~@3 d3", B: "d3 a3!2 g3", C: "f3 e3 d3 c3", D: "d3 e3 f3 g3", E: "a3@3 d3", F: "a3@3 a3", G: "a#3 g3 a3 a#3",
  H: "c4 d4 a3 g3", I: "f3 d3 e3 f3", J: "g3@2 f3 g3", K: "a3@2 a#3 a3", L: "a3 g3 f3 e3", M: "d3@4 f3 e3 d3@2",
  N: "a3 a#3 c4 d4", O: "d3@3 d3", P: "[d3@2 a3 a3@2 g3 f3@2]/2", Q: "e3 d3@2 c3",
  R: "[d3@2 e3 f3@2 g3 a3@3 a3 ~ d3]/3", S: "[d3@2 e3 f3@2 g3 a3@3 a3 ~ a3]/3", T: "a#3@2 ~ g3 a3@2 a#3@2",
  U: "c4 d4@3 a3@2 g3@2", V: "f3@3 d3 e3@2 f3 g3", W: "g3@12 f3@3 g3", X: "a3 g3@3 f3@2 e3@2", Y: "d3@8 f3@3 e3 d3@4",
  Z: "a3@2 ~ a#3 c4@2 d4@2", AA: "d3",
})).s("gm_tenor_sax").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A B C D E F G H I J K L M N O P Q R O S T@2 U V@3 T@2 U V@3 W X Y Z N AA AB AC AD AE AF
>`.pickRestart({
  A: "~@3 d4", B: "d4 a4!2 g4", C: "f4 e4 d4 c4", D: "d4 e4 f4 g4", E: "a4@3 d4", F: "d4 f4 e4 c#4", G: "d4 c4 a#3 a3",
  H: "d4 c#4 d4@2", I: "c#4@3 d4", J: "d4 c4!2 f4", K: "d#4 d4 c4 c#4", L: "d4 b3 c4!2", M: "e4@2 f4 c4",
  N: "c4@2 d4 c4", O: "f4 e4 d4 c#4", P: "d4@4 a3!2 b3@2", Q: "c4@2 d4 e4", R: "f4@2 f4!2", S: "d4@3 d4",
  T: "[a3@2 f4 e4@2 c#4 d4@2]/2", U: "c4 a#3@2 a3", V: "[a#3@2 c#4 d4@2 d4 c#4@3 c#4 ~ d4]/3", W: "d4@2 ~ c4 c4@2 f4@2",
  X: "d#4 d4@3 c4@2 c#4@2", Y: "d4@3 b3 c4@2 c4 e4", Z: "e4@12 f4@3 c4", AA: "f4 e4@3 d4@2 c#4@2",
  AB: "d4@8 a3@3 a3 b3@4", AC: "c4@12 f4@3 g4", AD: "a4@2 ~ a#4 c5@2 d5@2", AE: "a4 g4@3 f4@2 c#4@2", AF: "a3",
})).s("gm_alto_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax_2 = note(`<
  A B C D E F G H I J K L M N O P Q R O S T@2 U V@3 T@2 U V@3 W X Y Z N AA AB AC AD AE AF
>`.pickRestart({
  A: "~@3 d3", B: "d3 a3!2 g3", C: "f3 e3 d3 c3", D: "d3 e3 f3 g3", E: "a3@3 d4", F: "d4 f4 e4 c#4", G: "d4 c4 a#3 a3",
  H: "d4 c#4 d4@2", I: "c#4@3 d4", J: "d4 c4!2 f4", K: "d#4 d4 c4 c#4", L: "d4 b3 c4!2", M: "e4@2 f4 c4",
  N: "c4@2 d4 c4", O: "f4 e4 d4 c#4", P: "d4@4 a3!2 b3@2", Q: "c4@2 d4 e4", R: "f4@2 f4!2", S: "d4@3 d4",
  T: "[a3@2 f4 e4@2 c#4 d4@2]/2", U: "c4 a#3@2 a3", V: "[a#3@2 c#4 d4@2 d4 c#4@3 c#4 ~ d4]/3", W: "d4@2 ~ c4 c4@2 f4@2",
  X: "d#4 d4@3 c4@2 c#4@2", Y: "d4@3 b3 c4@2 c4 e4", Z: "e4@12 f4@3 c4", AA: "f4 e4@3 d4@2 c#4@2",
  AB: "d4@8 a3@3 a3 b3@4", AC: "g3@12 f3@3 g3", AD: "a3@2 ~ a#3 c4@2 d4@2", AE: "a3 g3@3 f3@2 c#3@2", AF: "a3",
})).s("gm_tenor_sax").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax_2 = note(`<
  A B C D E F G H I J K L M N O P Q R O S T U@2 V W X T U@2 V W Y Z AA AB AC AD AE AF AG AH AI AJ
>`.pickRestart({
  A: "~@3 d4", B: "d4 a4!2 g4", C: "f4 e4 d4 c4", D: "d4 e4 f4 g4", E: "a4@3 d4", F: "f4 d4 e4 a3", G: "a3@2 f4!2",
  H: "f4 a4!2 d4", I: "e4@3 f#4", J: "g4!2 f4!2", K: "f4@2 f4 e4", L: "f4!2 a3!2", M: "c4 a#3 a3 g3", N: "f3@2 f3!2",
  O: "c4 a#3 a3!2", P: "f4@4 f4!2 f4@2", Q: "e4 g4 c4 a#3", R: "a3 f3 c4 a#3", S: "f3@3 d4", T: "~ f4@2 ~",
  U: "[e4@2 ~ a3@2 ~ f4@2]/2", V: "~ f4 e4 ~", W: "a3@4 e4@2 e4!2", X: "e4!2 ~ d4", Y: "e4!2 ~ f#4",
  Z: "g4@2 ~ g4 f4@2 f4@2", AA: "f4 f4@3 f4@2 e4@2", AB: "f4@3 f4 a3@2 c4!2", AC: "c4@12 a4@3 g4", AD: "f4@2 f4!2",
  AE: "c4 a#3@3 a3@2 a3@2", AF: "f4@8 f4@3 f4 f4@4", AG: "e4@12 f4@3 g4", AH: "a4@2 ~ a#3 c4@2 d4@2",
  AI: "a4 g4@3 f4@2 a3@2", AJ: "f4",
})).s("gm_alto_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax_3 = note(`<
  A B C D E F G H I J K L M N O P Q R O S T U@2 V W X T U@2 V W Y Z AA AB AC N AD AE AF AG AH AI
>`.pickRestart({
  A: "~@3 d3", B: "d3 a3!2 g3", C: "f3 e3 d3 c3", D: "d3 e3 f3 g3", E: "a3@3 d3", F: "f3 d3 e3 a3", G: "a3@2 f3!2",
  H: "f3 a3!2 d3", I: "e3@3 f#3", J: "g3!2 f3!2", K: "f3@2 f3 e3", L: "f3!2 a3!2", M: "c4 a#3 a3 g3", N: "f3@2 f3!2",
  O: "c4 a#3 a3!2", P: "f4@4 f4!2 f4@2", Q: "e4 g4 c4 a#3", R: "a3 f3 c4 a#3", S: "f3@3 d3", T: "~ f3@2 ~",
  U: "[c#3@2 ~ a3@2 ~ f3@2]/2", V: "~ f3 e3 ~", W: "a3@4 e3@2 e3!2", X: "e3!2 ~ d3", Y: "e3!2 ~ f#3",
  Z: "g3@2 ~ g3 f3@2 f3@2", AA: "f3 f3@3 f3@2 e3@2", AB: "f3@3 f3 a3@2 c4!2", AC: "c4@12 a3@3 g3",
  AD: "c4 a#3@3 a3@2 a3@2", AE: "f3@8 f3@3 f3 f3@4", AF: "g3@12 f3@3 g3", AG: "a3@2 ~ a#3 c4@2 d4@2",
  AH: "a3 g3@3 f3@2 e3@2", AI: "f3",
})).s("gm_tenor_sax").gain(0.3)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A B C D E F G H I J K L M N O P Q R O S T@2 U V@2 W T@2 U V@2 X Y Z AA AB N AC AD AE AF AG AH
>`.pickRestart({
  A: "~@3 d3", B: "d3 a3!2 g3", C: "f3 e3 d3 c3", D: "d3 e3 f3 g3", E: "a3@3 d3", F: "d3!2 c#3 a2", G: "d2 a2 a#2 f2",
  H: "a#2 a2 d2@2", I: "a2@3 d2", J: "g2 e2 f2 d2", K: "a2 a#2 f2 a2", L: "d3!2 c3 a2", M: "[c2,c3]@2 d2 e2",
  N: "f2@2 a#2 f2", O: "f2 g2 a2!2", P: "d2@4 d3!2 d3@2", Q: "c3 a#2 a2 g2", R: "f2 d2 a2 a#2", S: "d2@3 d3",
  T: "[d3@2 ~ a2@2 ~ d3@2]/2", U: "~ a#2@2 f2", V: "[a#2@4 ~@2 d3@4 ~@2 a2@2 a2!2]/2", W: "a2!2 ~ d3", X: "a2!2 ~ d2",
  Y: "g2@2 ~ e2 f2@2 d2@2", Z: "a2 a#2@3 f2@2 a2@2", AA: "d2@3 d2 [c2,c3]@2 a2 c3", AB: "c3@12 d2@3 e2",
  AC: "f2 g2@3 a2@2 a2@2", AD: "d3@8 d3@3 d3 d3@4", AE: "c3@6 c3@2 a#2@4 f3@3 g3", AF: "a3@2 ~ a#3 c4@2 d4@2",
  AG: "a3 g3@3 f3@2 a2@2", AH: "d2",
})).s("gm_baritone_sax").gain(0.3)

stack(tenor_sax, alto_sax, tenor_sax_2, alto_sax_2, tenor_sax_3, baritone_sax)

More by Traditional English Carol