Strudelify

the star-spangled banner

Francis Scott Key

KeyB♭ majorTempo96 bpm
0:00/0:00
// the star-spangled banner — Francis Scott Key
// 96 bpm, 3/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 3/4 at bar 2) are rendered on a constant 3/4 grid of one bar per cycle
// note: duplicate parts dropped: ch 8 "Bb Trumpet" trumpet (copy of ch 2 "Bb Clarinet" clarinet); ch 6 "Alto Saxophone" soprano sax (copy of ch 3 "Bb Clarinet" clarinet); ch 11 "Horn" french horn (copy of ch 3 "Bb Clarinet" clarinet)
// note: Transcription provider: pdmx. https://musescore.com/score/811881; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 8 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(96/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.

// other · clarinet · "Bb Clarinet"
const clarinet = note(`<
  [~@8 f4@3 d4]
  [bb3 d4 f4]
  [bb4@8 d5@3 c5]
  [bb4 d4 e4]
  [f4@4 f4!2]
  [d5@3 c5 bb4@2]
  [a4@4 g4 a4]
  [bb4!2 f4]
>`).s("gm_clarinet").gain(0.45)

// other · clarinet · "Bb Clarinet"
const clarinet_2 = note(`<
  [~@8 f4@3 d4]
  [bb3 d4 f4]
  [d4@8 d4@3 d4]
  [d4!2 c4]
  [c4@4 f4!2]
  [f4@3 f4 f4@2]
  [f4@4 f4!2]
  [f4 bb4 f4]
>`).s("gm_clarinet").gain(0.3)

// bass · clarinet · "Bass Clarinet"
const bass = note(`<
  [~@8 f3@3 d3]
  [bb2 bb3 a3]
  [g3@8 gb3@3 gb3]
  [g3!2 c3]
  [f3@4 f3!2]
  [bb2@3 c3 d3@2]
  [f3@4 eb3!2]
  [d3 bb3 f3]
>`).s("gm_electric_bass_finger").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  [~@8 f4@3 d4]
  [bb3 bb4 c5]
  [bb4@8 a4@3 a4]
  [bb4!3]
  [a4@4 f4!2]
  [bb4@3 a4 bb4@2]
  [c5@4 c5!2]
  [bb4!2 f4]
>`).s("gm_alto_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  [~@8 f4@3 d4]
  [bb3!2 c4]
  [bb3@8 a3@3 a3]
  [bb3!3]
  [a3@4 f3!2]
  [bb3@3 a3 bb3@2]
  [c4@4 c4!2]
  [bb3!2 f4]
>`).s("gm_tenor_sax").gain(0.3)

// other · trombone
const trombone = note(`<
  [~@8 f3@3 d3]
  [bb2 bb3 c4]
  [bb3@8 a3@3 a3]
  [bb3!3]
  [a3@4 f3!2]
  [bb3@3 a3 bb3@2]
  [c4@4 c4!2]
  [bb3!2 f3]
>`).s("gm_trombone").gain(0.3)

// other · trombone · F D Bb C Bb C D F …
const trombone_2 = note(`<
  [~@8 [f2,f3]@3 [d2,d3]]
  [[bb1,bb2] bb2 a2]
  [g2@8 gb2@3 gb2]
  [g2!2 [c2,c3]]
  [f2@4 f2!2]
  [[bb1,bb2]@3 [c2,c3] [d2,d3]@2]
  [[f2,f3]@4 [eb2,eb3]!2]
  [[d2,d3] bb2 f2]
>`).s("gm_trombone").gain(0.3)

// bass · tuba · "C Tuba"
const bass_2 = note(`<
  [~@8 f2@3 d2]
  [bb1 bb2 a2]
  [g2@8 gb2@3 gb2]
  [g2!2 c2]
  [f2@4 f2!2]
  [bb1@3 c2 d2@2]
  [f2@4 eb2!2]
  [d2 bb2 f2]
>`).s("gm_tuba").gain(0.45)

stack(clarinet, clarinet_2, bass, alto_sax, tenor_sax, trombone, trombone_2, bass_2)