Strudelify

nfl theme

Fox Sports

KeyE♭ majorTempo115 bpm
0:00/0:00
// nfl theme — Fox Sports
// 115 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5952345; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 36 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(115/4)

// 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@3 B C D E F G H I J K L M N O P Q R Q S T U V W X Y Z AA AB AC@3 AD AE>".pickRestart({
  A: "[~@3 [c1,c2,c3,c4]@4 [c2,c3,c4]@4 [c2,c3,c4,eb4,g4], ~@3 g3@5 ~@4, ~@7 [c1,ab3]@5]/3", // C Cm Fm
  B: "[f1,f2,c4,f4,ab4]@4 [ab1,ab2,c4,f4,ab4,c5]@4 [g1,g2]@4 g3 g2!2 g1, ~ [d4,g4,b4]", // Fm G
  C: "c2@2 [c2,g4] [g2,ab4] [c5,eb5] ~ [c3,g4] [g2,ab4] [c5,eb5] ~ [c2,g4] [g2,ab4] [c5,eb5] ~ c3 g2, ~@2 c3 ~ c2 ~ c3 [d5,f5]", // C5 Abmaj7 Cm C5 Abmaj7 Cm C5 Abmaj7 …
  D: "c2@2 c2 g2 g3 c4 [c3,d4] [g2,g4] g4 c5 [c2,d5] [g2,g5] g5 c6 [c3,d6] [g2,f6], [f4,bb4,d5]@2 c3 ~ c2 ~ c3 ~", // Csus2 G Csus2 G Csus2 G7 Bb
  E: "[c2,g5,c6,eb6]@2 [c2,g4] [g2,ab4] [c5,eb5] ~ [c3,g4] [g2,ab4] [c5,eb5] ~ [c2,g4] [g2,ab4] [c5,eb5] ~ c3 g2, ~@2 c3 ~ c2 ~ c3 [eb5,g5]", // Cm C5 Abmaj7 Cm C5 Abmaj7 Cm C5 …
  F: "c2@2 c2 g2 c3@2 c3 g2 c2@2 c2 g2 c3@2 c3 g2, [bb4,f5] [f4,d5]", // Bb5 Dm
  G: "[g1,g2,g4,c5,eb5,g5] [f1,f2,ab4,c5,f5,ab5] [eb1,eb2,bb4,eb5,g5,bb5] [ab1,ab2,c5,eb5,ab5,c6]", // Cm Fm Eb Ab
  H: "[g1,g2]!8, [c5,eb5,g5,c6] [d5,f5,g5,b5,d6]", // G Cm G7
  I: "[ab2,eb3,ab3,c4,eb4] ~ [ab2,eb3,ab3,c4,eb4] ~ [ab2,eb3,ab3,c4,eb4] ~ [ab2,eb3,ab3,c4,eb4] ~ [ab2,eb3,ab3,c4,eb4] ~ [ab2,eb3,ab3,c4,eb4] ~ [ab2,eb3,ab3,c4,eb4] ~ [ab2,eb3,ab3,c4,eb4] ~", // Ab
  J: "[ab2,f3,bb3,d4,f4] ~ [ab2,f3,bb3,d4,f4] ~ [ab2,f3,eb5] d5 [ab2,f3,eb5] [c5,d5] [ab2,f3,bb5] eb5 [ab2,f3,c5] bb4 [ab2,f3,ab4] eb4 [ab2,f3,c4] bb3", // Bb7 Fm7 Csus2 Bb7 Fm Db Fm
  K: "[f2,c3,f3,ab3,c4] ~ [f2,c3,f3,ab3,c4] ~ [f2,c3,f3,ab3,c4] ~ [f2,c3,f3,ab3,c4] ~ [f2,c3,f3,ab3,c4] ~ [f2,c3,f3,ab3,c4] ~ [f2,c3,f3,ab3,c4] ~ [f2,c3,f3,ab3,c4] ~", // Fm
  L: "[f2,ab3]@2 bb3 c4 [ab2,c4]@2 [f2,ab3]@2, [c3,ab4,c5] [c3,f4,ab4], ~ g2 ~@2", // Fm Ab Fm
  M: "[c2,c3]@2 [c2,c3]@2 [c2,c3]@2 [c2,c3,g3,c4] ~ [c2,c3]@2 [c2,c3]@2 [c2,c3]@2 [c2,c3,g3,c4] ~, [g3,c4]@2 ~@2 [g3,c4]@3 ~", // C C5 C C5
  N: "[c2,c3]@2 [c2,c3]@2 [c2,c3]@2 [c2,c3,g3,c4,g4] ~ [c2,c3]@2 [c2,c3]@2 [c2,c3]@2 [c2,c3,g4,c5,eb5,g5] ~, [g3,c4,g4]@2 ~@2 [g3,c4,g4]@3 ~", // C C5 C Cm C5
  O: "[f1,f2,ab4,c5,f5,ab5]@4 [ab1,ab2,c5,eb5,ab5,c6]@4 [g1,g2]@4 g3 g2!2 g1, ~ [b4,d5,g5,b5]", // Fm Ab G
  P: "[c4,eb4] ~ [c2,c4,eb4] g2 [c4,eb4] ~ [c3,c4,eb4] g2 [c4,eb4] ~ [c2,c4,eb4] g2 [c4,eb4] ~ [c3,c4,eb4] g2, c2 ~ c3 ~ c2 ~ c3 ~", // Cm
  Q: "[bb3,d4,eb4] ~ [c2,bb3,d4,eb4] g2 [bb3,d4,eb4] ~ [bb3,d4,eb4] ~ [bb3,d4,eb4] ~ [bb3,d4,eb4] ~ [bb3,d4,eb4] ~ [eb3,bb3,d4,eb4] d3, c2 ~ bb2@2 f3@3 ~", // Ebmaj7 Cm7 Ebmaj7
  R: "[c2,c3]@2 [c2,c4,eb4] g2 [c4,eb4] ~ [c3,c4,eb4] g2 [c4,eb4] ~ [c2,c4,eb4] g2 [c4,eb4] ~ [c3,c4,eb4] g2, [c4,eb4] ~@3 c3@2 ~@2 c2@2 ~@2 c3@2 ~@2", // C Cm
  S: "[ab3,c4] ~ [ab3,c4] ~ [ab3,c4] ~ [ab3,c4] ~ [ab3,c4] ~ [ab3,c4] ~ [ab3,c4] ~ [ab3,c4] ~, [f2,c3]@3 [f2,c3]@3 [f2,c3]@2", // Ab F5
  T: "[bb3,d4] ~ [bb3,d4] ~ bb3@2 [bb3,d4] ~ ab4@2 [bb3,d4] ~ [d3,g4]@2 [bb3,d4] ~, f2@3 [f2,d3]@3 f2@2, d3 f3@2 ~@4 g3", // Bb G5 Bb Dm
  U: "[g3,c4]!6 [c4,g4] [g4,c5], [g2,eb3]@3 [g2,eb3]@3 [g2,eb3]@2", // C5 Cm
  V: "~@15 g3, [g2,f5]@4 bb3 [d4,bb4] [bb3,g4] [ab3,d4], ~ d3@7, ~ bb4 d5 [g3,bb4] d5@4, ~ f3@3", // G7 Gm Eb Abdim Gm
  W: "~@7 [ab3,f4], [ab2,c3,bb3], ~ g3@2 g3@2 g3@3, ~@3 ab3@4 ab3@5 eb4@4, ~@4 eb4@4 eb4@3 c4@5", // Db Ab
  X: "[bb3,d4] ~@6 g3, [f2,d3]@3 [f2,d3]@3 [f2,d3,g4,g5]@2, ~ [f3,bb3,d4]@7, ~ g4@2 ~, ~ [f4,f5]", // Bb Dm G7 Bb F
  Y: "[bb2,g3] ~ [bb2,g3] ~ [bb2,g3] ~ [bb2,g3] [bb2,g3,bb4], eb5, bb4@3 eb4, ~@2 [bb2,g3]@2 eb4@3 ab3@9, ~@3 ab3@3 [bb2,g3]@2 eb4@2 [bb2,g3] c4@5", // Eb
  Z: "[bb2,f3]@2 [bb2,f3]@2 [bb2,f3]@2 bb2@2 [bb1,bb2]@2 [bb1,bb2]@2 ~@3 bb4, ab4@12 [bb1,bb2] d5 [bb1,bb2,c5]@2, ~@3 f3@5, ~ g4, ~@3 eb5", // Bb5 Bb Bbsus2
  AA: "c2@2 c2 g2 c3@2 c3 g2 c2@2 c2 g2 c3@2 [c2,g4,g5]@2, [g4,c5]@11 ~@5", // C5
  AB: "[f1,f2,ab4,c5,f5,ab5]@4 [eb1,eb2,bb4,eb5,g5,bb5]@4 [g1,g2]@4 g3 g2!2 g1, ~ [b4,d5,g5,b5]", // Fm Eb G
  AC: "[[c1,c2]@2 ~@10 [c1,c2,c3,c4]@16 [c3,ab3,c4]@6 [c4,c5] [d4,d5] [eb4,eb5] ~ [d4,d5] [c4,c5] ~@4 g3 g2 [c1,c2,c4,eb4,g4]@2, ~@6 g3@10 ~@4 [g4,g5]@3 ~, ~@28 [c1,c2]@15 ~@5]/3", // C Fm C D Eb D C Cm …
  AD: "[f1,f2,ab4,c5,f5,ab5] [eb1,eb2,bb4,eb5,g5,bb5] [g2,g3] [g1,g2], ~ [b4,d5,g5,b5]", AE: "[c1,c2,c5,eb5,g5,c6] ~@7",
})).s("gm_piano").gain(0.25)

stack(piano)