Strudelify

The Thunderer

John Philip Sousa

KeyG majorTempo248 bpm
0:00/0:00
// The Thunderer — John Philip Sousa
// 248 bpm, 2/2, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1955181; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 146 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(248/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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@3 G H I J E K@3 L M N O E P Q R G H S J E P Q T U V W O X Y X Y X Y Z AA X Y X Y X Y AB AC AD AE AF AG
  AH@2 AI AJ AD AE AF AK AL@2 AM@2 AN AO AP AQ AR AS AT AU AN AO AP AQ AR AS AT AV AW AX ~@2 AY AZ BA BB BC BD BC BE BC
  BF@2 BG BH BG@2 BI BJ BG BK BG BH BG@2 BI BJ BL BM AW AX ~@2 AY AZ BA BB BC BD BC BE E BF BN BO BP BO BQ BI BJ BG BK
  BO BP BO BQ BR BS BT BU
>`.pickRestart({
  A: "c5@3 d5", B: "e5@3 f5", C: "g5 f5 e5 d5", D: "c5 ~@3", E: "f4@2 f4!2 f4@2 f4@2", F: "[f4@9 c4 d4 d#4]/3",
  G: "e4@2 g4!2 g4@2 g4@2", H: "g4 c4 d4 e4", I: "f4@2 a4!2 a4@2 a4@2", J: "a4@2 c5 ~ a4 ~ f4 ~",
  K: "[f4@18 c5 ~ a4 ~ f4 ~]/3", L: "f4 ~ f4!3 ~ f4 ~", M: "f4 ~ a4!3 ~ a4 ~", N: "c5 ~ c5@2", O: "c4 ~ g4@2",
  P: "f4 ~ c4 ~", Q: "a3 ~ a3 ~", R: "f4 c4 d4 d#4", S: "a4@2 a4!2 a4@2 a4@2", T: "f4@2 c5 ~ a4 ~ f4 ~",
  U: "b4@3 a4 g4@2 f4@2", V: "f4 e4 f4 d4", W: "c4 ~ c5@2", X: "~ c4 f4 a4", Y: "c5", Z: "c4@3 d4 e4@3 d4",
  AA: "c4 a#3 a3 g3", AB: "f4 e4 d4 c4", AC: "f4 a4 c5 a4", AD: "~ f5 e5 d5", AE: "c5 b4 a#4 g4", AF: "f4@3 c4 f4@4",
  AG: "~@2 c4@2 f4@3 g4", AH: "[a4@3 c4 a4@6 f4@2 a4@3 c5]/2", AI: "a#4@3 a4 g4@3 a4", AJ: "a#4 c5 d5 e5",
  AK: "~@2 c4@2 f4@3 a4", AL: "[c5@3 d5 c5@6 d5@2 a#4@2 g4@2]/2", AM: "[f4@5 ~ f4@2]/2", AN: "a#3@3 ~@5 f4@3 ~@5",
  AO: "c4@3 ~@5 d4@3 ~@5", AP: "a#4!2 a4 g4", AQ: "f4@4 ~@4 a#3@3 ~@5", AR: "d#4@3 ~@5 c4@3 ~@5",
  AS: "f4@3 ~@5 f4@3 ~@5", AT: "a#4 c5 d5 c5", AU: "a#4 a4 g4 f4", AV: "a#4 a4 g4 f#4",
  AW: "f4@2 ~@2 f4 ~ f4 ~ f4@3 ~ f4@3 ~", AX: "f4@3 ~@13", AY: "a4@2 ~@2 a4 ~ a4 ~ a4@3 ~ a4@3 ~",
  AZ: "a4@3 ~ a4@2 a#4@2 c#5@4 c#5@2 d5@2", BA: "e5@2 c#5 d5 e5@2 f#5 g#5", BB: "a5 ~@3", BC: "f4@2 f4!2 f4@2 f4 ~",
  BD: "f4@3 ~ f4@3 ~@9", BE: "a4@3 ~ a4@3 ~@9", BF: "f4 g4 a4 g4", BG: "~@2 a#4!2 a#4@2 a#4@2", BH: "~ a4 ~ a#4",
  BI: "~@2 g4!2 g4@2 g4@2", BJ: "~@2 a4!2 a4@2 a4@2", BK: "a#4!4", BL: "a#3 c4 d4 c4", BM: "a#3 a3 g3 f#3",
  BN: "f4 d#4 d4 c4", BO: "d4@2 a#4!2 a#4@2 a#4@2", BP: "f4 a4 ~ a#4", BQ: "f4@2 a#4!2 d4@2 a#4@2",
  BR: "d#4@2 g4!2 d#4@2 g4@2", BS: "d#4@2 c5!2 a4@2 a4@2", BT: "a#4 a4 g4 a4", BU: "a#4 ~ a#3 ~",
})).s("gm_trumpet").gain(0.3)

stack(trumpet)

More by John Philip Sousa