Strudelify

NFL Short

Mitchell Belz

KeyF majorTempo120 bpm
0:00/0:00
// NFL Short — Mitchell Belz
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1191271; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 22 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 · trumpet · "B♭ Trumpet"
const trumpet = note("<A B C D E F G H I J K F L M N O P Q R S T@2>".pickRestart({
  A: "~@2 c4 d4 eb4@2 d4 c4 g4@8", B: "~@2 c4 d4 eb4@2 d4 c4 ab4@8", C: "~@2 c4 d4 eb4@2 d4 c4 g4@4 eb4@4",
  D: "f4 ab4 g4@2", E: "~@2 g4 ab4 eb5@2 g4 ab4 eb5@2 g4 ab4 eb5@2 f5@2", F: "d5",
  G: "~@2 g4 ab4 eb5@2 g4 ab4 eb5@2 g4 ab4 eb5@2 g5@2", H: "f5@4 d5@2 ~ [c4,f4]",
  I: "[c4,eb4] [c4,f4] [eb4,g4] [eb4,ab4]", J: "[d4,g4]!2", K: "~@2 g4 ab4 eb5 ~ g4 ab4 eb5 ~ g4 ab4 eb5@2 f5@2",
  L: "~@2 g4 ab4 eb5@2 g4 ab4 eb5@2 g4 ab4 eb5@2 bb4@2", M: "ab4 f4", N: "g4 ~@3", O: "~@7 [c4,eb4]",
  P: "[c4,f4] [eb4,g4] [d4,g4]@2", Q: "~@2 c4 d4 eb4 ~ d4 c4 g4@8", R: "~@2 c4 d4 eb4 ~ d4 c4 ab4@8",
  S: "~@2 c4 d4 eb4 ~ d4 c4 g4@4 [c4,eb4]@4", T: "[[c4,f4]@2 [eb4,g4]@2 [d4,g4]@8 [eb4,g4] ~@3]/2",
})).s("gm_trumpet").gain(0.4)

// other · french horn · "Horn in F"
const french_horn = note("<A B C D E F G H I J K@2 L M N O P Q R S T@2>".pickRestart({
  A: "~@2 c4 d4 eb4@2 d4 c4 g4@8", B: "~@2 c4 d4 eb4@2 d4 c4 ab4@8", C: "~@2 c4 d4 eb4@2 d4 c4 g4@4 g4@4",
  D: "ab3 c4 b3@2", E: "~@2 g4 ab4 eb4@2 g4 ab4 eb4@2 g4 ab4 eb4@2 f4@2", F: "d4",
  G: "~@2 g4 ab4 eb4@2 g4 ab4 eb4@2 g4 ab4 eb4@2 g4@2", H: "f4@4 d4@2 ~ ab4", I: "g4 ab4 bb4 c5", J: "c5 d5",
  K: "ab4/2", L: "c4", M: "f4@4 g4@4 f4@6 eb4 d4", N: "c4 ~@3", O: "~@7 g3", P: "ab3 bb3 b3@2",
  Q: "~@2 c4 d4 eb4 ~ d4 c4 g4@8", R: "~@2 c4 d4 eb4 ~ d4 c4 ab4@8", S: "~@2 c4 d4 eb4 ~ d4 c4 g4@4 g3@4",
  T: "[ab3@2 bb3@2 b3@8 c4 ~@3]/2",
})).s("gm_french_horn").gain(0.4)

// other · trombone
const trombone = note("<A@3 B C D E F G H I@2 J@2 K@2 L A@3 M@2>".pickRestart({
  A: "[~@3 c3@4 c3@4 c4]/3", B: "f3 ab3 g3@2", C: "~@2 g3 ab3 eb3@2 g3 ab3 eb3@2 g3 ab3 eb3@2 f3@2", D: "d3",
  E: "~@2 g3 ab3 eb3@2 g3 ab3 eb3@2 g3 ab3 eb3@2 g3@2", F: "f3@4 d3@2 ~ ab3", G: "c3 f3 eb3 ab3", H: "g3!2", I: "ab3/2",
  J: "f3/2", K: "c4@2 ~ c4 c4@2 ~ c4", L: "f3 eb3 g3@2", M: "[f3@2 eb3@2 g3@8 c3 ~@3]/2",
})).s("gm_trombone").gain(0.4)

// bass · tuba · "Euphonium"
const bass = note("<A@3 B C@4 D E F@2 G@2 H@2 I J@3 K@2>".pickRestart({
  A: "[~@3 c3@4 c3@4 c3]/3", B: "f3 ab3 g3@2", C: "c3!2", D: "c3 f3 eb3 ab2", E: "g2!2", F: "ab2/2", G: "f2/2",
  H: "c3@2 ~ c3 c3@2 ~ c3", I: "f3 eb3 g3@2", J: "[~@3 c3@4 c3@4 c4]/3", K: "[f3@2 eb3@2 g3@8 c3 ~@3]/2",
})).s("gm_tuba").gain(0.4)

// bass · tuba · "B♭ Tuba"
const bass_2 = note("<A@3 B C@4 D E F@2 G@2 H@2 I J@3 K@2>".pickRestart({
  A: "[~@3 c2@4 c2@4 c2]/3", B: "f2 ab2 g2@2", C: "c2!2", D: "c3 f3 eb3 ab2", E: "g2!2", F: "ab2!2", G: "f2!2",
  H: "c2@2 ~ c2 c2@2 ~ c2", I: "f2 eb2 g2@2", J: "[~@3 c2@4 c2@4 c3]/3", K: "[f2@2 eb2@2 g2@8 c2 ~@3]/2",
})).s("gm_tuba").gain(0.4)

stack(trumpet, french_horn, trombone, bass, bass_2)