Strudelify

The Earl of Oxford's March

William Byrd

KeyF majorTempo70 bpm
0:00/0:00
// The Earl of Oxford's March — William Byrd
// 70 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5956472; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 24 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(70/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 · trumpet · "B♭ Trumpet 2"
const trumpet = note("<A B C B D B E F G H I J K H I J A B C B L M N O>".pickRestart({
  A: "c4@4 c4 ~ c4 ~ c4@4 e4@4", B: "f4!2", C: "f4@4 f4 ~ f4 ~ f4@4 f4@4", D: "f4@4 f4 ~ f4 ~ f4@4 e4@4",
  E: "c4 d4 eb4@2 d4@2 c4@2", F: "e4!2", G: "e4@4 e4 ~ e4 ~ e4@4 e4 ~ f4 ~", H: "f4 d4 e4@2",
  I: "e4@4 e4 ~ f4 ~ f4@4 b3@4", J: "c4!2", K: "e4@4 e4 ~ e4 ~ e4@4 e4@4", L: "c4@3 bb3", M: "c4", N: "f4 f4@3",
  O: "f4",
})).s("gm_trumpet").gain(0.3)

// other · french horn · "Horn in F"
const french_horn = note("<A B C D E D F G H I J K L M N O A B C D P Q R S>".pickRestart({
  A: "a3@4 a3 ~ a3 ~ a3@4 c4@4", B: "c4@8 c4@4 f3 g3 a3 bb3", C: "c4@4 c4 ~ c4 ~ c4@4 d4@4", D: "c4!2",
  E: "c4@4 c4 ~ c4 ~ c4@4 c4 ~ c4 ~", F: "f3 eb3 f3@2", G: "g3@2 c4@2 g3 ~ g3 ~ c4@4 c4@4",
  H: "c4@4 c4 ~ c4 ~ c4 ~ f3 ~ c4@4", I: "c4@4 g3 ~ c4 ~ c4@4 g3 ~ c4 ~", J: "c4@4 c4 ~ g3 ~ f3@4 d3@4",
  K: "e3 g3 g3@2", L: "c4@4 c4 ~ c4 ~ c4@4 c4@4", M: "c4 b3 c4@2", N: "c4@4 c4 ~ g3 ~ f3@4 b3@4",
  O: "g3@3 f3 g3@2 g3@2", P: "g3@3 bb3", Q: "f3@4 e3 f3!2 e3", R: "f3", S: "c4",
})).s("gm_french_horn").gain(0.3)

// other · trombone
const trombone = note("<A B C D E F G H I J K L M N K L A B C D O P Q R>".pickRestart({
  A: "f3@4 f3 ~ f3 ~ f3@4 g3@4", B: "f3@4 f3 ~ c3 ~ f3@4 f3@4", C: "f3@4 f3 ~ f3 ~ f3@4 c3@4",
  D: "f3@4 c3 ~ f3 ~ f3@4 f3 ~ c3 ~", E: "c3@4 c3 ~ c3 ~ c3@4 c3 ~ c3 ~", F: "c3@4 c3 ~ c3 ~ c3@4 f3 ~ c3@2",
  G: "c3!2 f3 c3", H: "c3!2", I: "g3@4 g3 ~ g3 ~ g3@4 g3@4", J: "f3 g3 e3@2", K: "g3@4 g3 ~ g3 ~ f3@4 d3@4", L: "e3!2",
  M: "g3@4 g3 ~ g3 ~ g3 ~ g3 ~ g3@4", N: "f3 g3 a3 g3 g3@4", O: "f3@2 e3 d3 c3@2 bb2@2 a2@2 c3@2 d3@2 e3@2", P: "f3 e3",
  Q: "f3@3 f3 c3@2 f3@2", R: "f3",
})).s("gm_trombone").gain(0.4)

// bass · tuba
const bass = note("<A B C D E F G H I J K H L M K H N B C D O P Q@2>".pickRestart({
  A: "f2@4 f2 ~ f2 ~ f2@4 c2@4", B: "f2@2 f2!2", C: "f2!2 f2@2", D: "f2!2", E: "f2@4 f2 ~ f2 ~ f2@4 f2 ~ f2@2",
  F: "f2@4 f2 ~ f2 ~ f2@8", G: "f2 c3 bb2 f2", H: "c3!2", I: "c3@4 c3 ~ c3 ~ c3 ~ c3 ~ c3@4", J: "f2 g2 c2@2",
  K: "c3@4 c3 ~ c3 ~ f2@4 g2@4", L: "c3@4 c3 ~ c3 ~ c3@4 ~@4", M: "f2 g2 c3@2", N: "f2@4 f2 ~ f2 ~ f2@4 c3@4",
  O: "f2 ~@3", P: "f2 g2 a2 bb2 c3@4", Q: "f2",
})).s("gm_tuba").gain(0.3)

stack(trumpet, french_horn, trombone, bass)