Strudelify

god rest ye merry gentlemen

Sir John Stainer

KeyG majorTempo120 bpm
0:00/0:00
// god rest ye merry gentlemen — Sir John Stainer
// 120 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 4 "Bass" named as a bass, played on electric bass finger (its cello patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/144011; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 20 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.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · viola · "Alto"
const viola = note("<A B C D E B C D F G H I J K L M N O P Q>".pickRestart({
  A: "~@3 e4", B: "e4 g4 f#4 d#4", C: "e4 d4 c4 b3", D: "e4 d#4 e4!2", E: "d#4@3 e4", F: "d#4@2 ~ e4", G: "e4 d4!2 g4",
  H: "f4 e4 d4 d#4", I: "e4 c#4 d4 g4", J: "a4@2 g4 d4", K: "d4@2 e4 d4", L: "g4 f#4 e4 d#4", M: "e4@4 b3!2 c#4@2",
  N: "d4@2 e4 f#4", O: "g4@2 g4!2", P: "g4 f#4 e4 c#4", Q: "e4@3 ~",
})).s("gm_viola").gain(0.21)

// other · cello · "Baritone"
const cello = note("<A B C D E B F D G H I J K L M N O P M Q>".pickRestart({
  A: "~@3 e3", B: "g3 e3 f#3 b3", C: "b3@2 g3!2", D: "g3 b3!2 e3", E: "f#3@3 e3", F: "b3!2 g3!2", G: "f#3@2 ~ g#3",
  H: "a3!2 g3!2", I: "g3!3 f#3", J: "g3!2 a3 d4", K: "d4 c4 b3 a3", L: "g3@2 g3!2", M: "d4 c4 b3!2",
  N: "g3@4 g3!2 g3@2", O: "f#3 a3 d4 c4", P: "b3 g3 d4 c4", Q: "g3@3 ~",
})).s("gm_cello").gain(0.22)

// bass · electric bass finger · "Bass"
const bass = note("<A B C D E B C D F G H I J K L M N O L P>".pickRestart({
  A: "~@3 e3", B: "e3!2 d#3 b2", C: "e3 b2 c3 g2", D: "c3 b2 e3 c3", E: "b2@3 e3", F: "b2@2 ~ e3", G: "a3 f#3 g3 e3",
  H: "b2 c3 g2 b2", I: "e3!2 f#3 b2", J: "d3@2 e3 f#3", K: "g3@2 c3 g3", L: "g2 a2 b2!2", M: "e3@4 e3!2 e3@2",
  N: "d3 c3 b2 a2", O: "g2 e3 b2 c3", P: "e3@3 ~",
})).s("gm_electric_bass_finger").gain(0.23)

stack(viola, cello, bass)