Strudelify

The Hunger Games OSTs

J. S. S.

KeyE majorTempo71 bpm
0:00/0:00
// The Hunger Games OSTs — J. S. S.
// 71 bpm, 2/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: duplicate parts dropped: ch 4 "Horn" french horn (copy of ch 2 "Bb Trumpet" trumpet); ch 5 "Flute" flute (copy of ch 2 "Bb Trumpet" trumpet); ch 6 "Soprano Saxophone" soprano sax (copy of ch 2 "Bb Trumpet" trumpet); ch 9 "Oboe" oboe (copy of ch 2 "Bb Trumpet" trumpet); ch 8 "Bb Tuba" tuba (copy of ch 7 "Baritone Saxophone" baritone sax)
// note: Transcription provider: pdmx. https://musescore.com/score/415046; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(71/2)

// 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 · church organ · "Organ"
const church_organ = note(`<
  ~@20 A B@6 C@3 D@5 E F G@2 H I J@2 K L@2 M N O P Q@2 H K R S T@2 U S V@2 W H K X@4 Y@4
>`.pickRestart({
  A: "[b2,f#3,b3,b4,b5]", // B5
  B: "[~@2 g4@2 b4@2 d5@2 [d#3,d#5]@8 [g3,d5]@8 ~@2 g4@2 b4@2 d5@2 d#5@2 d5@2 [c3,g5]@3 a5 g5@6 g5@2, g2, [d3,g3] ~ d3@2 d#3 [d3,g3], ~@3 g3 ~@2]/6", // D# G5 C5 G5
  C: "[[d3,g5]@3 f#5 [b2,d3,f#5]@3 e5 e5@6 e5@2 e5@3 f#5 e5@3 d5, g2, ~ [c3,e3]@2]/3", // G5 Bm C
  D: "[d5@6 g4@2 c5@3 b4 g4@3 a4 [a#2,g4]@8 [a#2,d#3,d#4]@8 ~ g4 c5 f5 ~ g4 c5 f5, g2, d3 [e2,c3] d#2@2 [d#2,d#3,f4]]/5", // D# D#5 C D#sus2
  E: "[g2,c3,e4]", F: "[g2,g3,g4]", G: "[[g2,g4] [g2,g4], [a#2,g3,a#4,d#5]]/2", H: "~ b4 d#5 f#5, [b2,d#3,f#3,b3]",
  I: "[g2,b2,d3,g3,b3,g5]", J: "[f#5@4 ~ b4 d#5 f#5, [b2,d#3,f#3,b3]]/2",
  K: "g5@2 f#5@2 [e2,b2,e3,g3,b3,b5]@3 c#6, [g2,b2,d3,g3,b3] ~", // Em G
  L: "[b5@6 b5@2 b5@3 a#5 [d#3,a#5]@3 g#5, [f#3,b3], d#3@3 ~, b2 b2]/2", M: "g#5@3 g#5, [b2,e3,g#3,b3]",
  N: "g#5@3 a#5 g#5@3 f#5, [b2,e3,g#3,b3]", O: "f#5@3 b4, [b2,d#3,f#3,b3]", P: "e5@3 d#5 c#5@3 d#5, [g2,b2,e3,g3,b3]",
  Q: "[c#5@3 g#4 [f#2,a#4]@4, [c#3,f#3], f#2 ~]/2", R: "~@3 b4, [b2,d#3,f#3,b3,b5]", S: "d#5@3 c#5 c#5@4, f#2",
  T: "[c#5@6 e5@2 e5@3 d#5 b4@3 c#5, [e2,g2,b2,e3,g3]]/2", U: "b4@3 b4, [d#2,b2,d#3,f#3,b3]",
  V: "[c#5@6 a5@2 a5@3 g5 g5@3 f#5, [e2,g2,b2,e3,g3]]/2", W: "[b2,d#3,f#3,b3,f#5]",
  X: "[e6@3 d#6 d#6@28, [b2,f#3,b3,b5]]/4", Y: "b2/4",
})).s("gm_church_organ").gain(0.45)

// chords · church organ · "Organ" · soft notes
const church_organ_soft = note("<A@8 B@2 C@2 D@8 ~@53>".pickRestart({
  A: "[~@17 b4@6 d#5@6 f#5@6 [g2,g3,g5]@25 f#5@6 d#5@3 f#5@3 ~@4 d#5@3 d#5@3 f#5@3 f#5@25 ~@6 b4@6 d#5@6 f#5@6 g5@6 f#5@6 ~ [e2,b5]@9 c#6@3 b5@18 b5@6 ~ [b2,f#3,b5]@8, ~@11 b2@49 [b2,f#3]@49 ~ b2@49 [b2,f#3]@25 ~@8, ~@11 f#3@25 ~@37 f#5@9 ~@28 f#3@24 g3@25 ~@33, ~@67 g2@6 ~@23]/8", // G E5 B5
  B: "[~ a#5@3 [d#3,f#3,a#5]@9 g#5@3 g#5@18 ~ g#5@6 [e3,g#3,g#5]@7, ~@16 [e3,g#3]@25 ~@7]/2", // D#m E
  C: "[~@2 [f#3,a#5]@3 [e3,g#5]@10 [d#3,f#5]@3 f#5@18 b4@6 [g2,e3,e5]@6, ~@18 [b2,d#3,f#3]@25 ~@5]/2", // F# E D#m C B
  D: "[~@4 d#5@3 c#5@9 d#5@3 c#5@18 ~ g#4@6 a#4@25 ~@6 b4@6 d#5@6 f#5@6 g5@6 f#5@6 ~ [e2,b5]@9 c#6@3 [b2,f#3,b5]@25 [b2,f#3,b5]@24 [b2,f#3,b3,b4,b5]@25, ~@19 [f#2,c#3,f#3]@49 ~ b2@49 ~@74, ~@69 f#3@24 g3@25 ~@74, ~@31 g2@4 ~@29]/8", // E5 B5 F#5
})).s("gm_church_organ").gain(0.25)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A@6 B@2 C@8 D@4 E F@6 G@3 H@5 I J@3 E I K@2 L E M N@2 E I O@2 E L E O P@2 Q O P@2 E@2 L R@4 S@4
>`.pickRestart({
  A: "[~@11 b2@24 g2@25 b2@49 ~ b2@24 g2@10]/6", B: "[~@3 e2@12 b2@25 b2@8]/2",
  C: "[~@4 d#3@12 e3@49 ~ b2@24 g2@25 f#2@49 ~ b2@24 g2@3]/8", D: "[~@10 e2@12 b2@25 b2@24 b2@25]/4", E: "b2",
  F: "[g3@2 d#3@2 g3@2 g3@2 d#3 c3 g3@2, g2]/6", G: "[~ b2 c3@4, g2]/3", H: "[~@3 d#3 ~, g2]/5", I: "g2",
  J: "[g2 g2 g2, g3]/3", K: "b2/2", L: "g2 e2", M: "b2 d#3", N: "e3", O: "f#2", P: "e2/2", Q: "d#2", R: "[b2,b3]/4",
  S: "b2/4",
})).s("gm_baritone_sax").gain(0.3)

stack(church_organ, church_organ_soft, baritone_sax)