Strudelify

the hobbit - misty mountains cold

Misc Soundtrack

KeyB♭ majorTempo96 bpm
0:00/0:00
// the hobbit - misty mountains cold — Misc Soundtrack
// 96 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 3/4 at bar 24, 4/4 at bar 34) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/181211; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 80 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(96/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 · flute
const flute = note(`<
  A B C D E F G@2 H I@4 J@2 ~@6 K@2 L M N@4 O@5 ~@5 P@3 Q@3 R@2 S T@3 ~@3 U V W V X W Y Z AA@2 AB AC AD AC AE AF AG AH@2
  W AI AJ AK AB AL AM
>`.pickRestart({
  A: "~@2 bb4 c5 d5@4 f5@5 d5!2 c5", B: "bb4@3 d5", C: "f5 g5@4 bb5 a5@2", D: "f5@2 d5@6 eb5 d5 c5@4 ~@2",
  E: "bb4 c5 d5@4 f5@4 d5 c5@3 bb4@2", F: "~ c5 bb4@10 d5@4", G: "[f5 g5@3 g5 f5@2 d5@2 c5@7]/2",
  H: "~@2 bb4 c5 d5@11 d5", I: "[g5 a5 bb5@8 a5@4 f5@4 d5@6 eb5 d5 c5@8 bb4 c5 d5@6 d5@21 d5]/4",
  J: "[g5 a5 bb5@8 a5@4 f5@4 f5@14]/2", K: "[~@19 f4@8 bb4@3 d5@6 gb5@26 ~@2]/2",
  L: "~ bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 db5@3 db5@2 db5@3 db5@3 db5@2",
  M: "~ db5@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@3 bb4@2 bb4@3 bb4@3 bb4@2",
  N: "[~ db5@3 db5@3 eb4 f4 g4@4 bb4@11 g4@15 f4@3 eb4@29 g4@3 bb4@3 c5@14 c5@3 eb5@6 d5@6 bb4@6 g4@16]/4",
  O: "[~ f4@12 ~@6 bb4@17 d5@12 d4@3 f4@3 g4@17 a4@17 bb4@17 ~ c5@17 d5@17 ~@20]/5", P: "[~@13 eb4@32 ~@3]/3",
  Q: "[~@13 f4@70 ~@13]/3", R: "[~@13 bb4@51]/2", S: "f4", T: "[d4@6 f4@6 ~ g4@6 a4@6 ~ a4@32 bb4@9 f4@3 g4@26]/3",
  U: "~@14 c5 d5", V: "eb5@2 g5@2 f5@3 eb5", W: "eb5 d5 c5 bb4", X: "f5@12 ~@2 c5 d5", Y: "bb5 ab5 g5 f5",
  Z: "f5@2 eb5@2 d5@3 eb5", AA: "[f5@7 ~]/2", AB: "f5", AC: "gb5", AD: "~ db5 bb4 db5 f5 db5 bb4 db5",
  AE: "~ db5 bb4 db5@5", AF: "bb5@2 ab5@2 gb5@3 f5", AG: "f5@4 db5@3 db5", AH: "[bb4@28 ~@2 c5 d5]/2",
  AI: "g5 f5 eb5 d5", AJ: "ab5@2 g5@2 f5@3 g5", AK: "bb5@2 ab5@2 g5@3 eb5", AL: "eb5", AM: "g5",
})).s("gm_flute").gain(0.3)

// other · french horn · "Horn"
const french_horn = note(`<
  ~@8 A@7 B@5 C D E F@2 G@4 H@2 I@3 ~@5 J@3 K@3 L@2 M ~@3 N O N P Q R S T ~ R S U@2 O V W X O Y Z AA@2 AB AC AD AE AF AG
  AH
>`.pickRestart({
  A: "[~ g3@8 g3@8 f3@4 f3@4 g3@16 g3@8 a3@7]/7", B: "[~ f3@16 bb3@8 a3@8 f3@7]/5",
  C: "~@4 bb3@3 bb3@3 bb3@3 bb3@3 bb3@3 bb3@3 bb3@2 bb3@3 bb3@3 bb3@2",
  D: "~ bb3@3 bb3@3 bb3@3 bb3@3 bb3@3 bb3@3 bb3@3 bb3@2 bb3@3 bb3@3 bb3@2",
  E: "~ bb3@3 bb3@3 bb3@3 bb3@3 bb3@3 bb3@3 bb3@3 bb3@2 bb3@3 bb3@3 ~@2",
  F: "[~ g3@9 f3@3 eb3@6 gb3@5 bb3@6 db4@6 eb4@9 bb3@3 g3@6 gb3@2 f3@3 gb3@3 ab3@2]/2",
  G: "[~ bb3@3 c4@3 bb3@70 c4@35 bb3@16]/4", H: "[~ bb3@12 ~@6 d4@29 ~@6 bb3@5 bb3@5]/2",
  I: "[~ bb3@6 c4@6 c4@6 c4@5 eb4@6 eb4@6 eb4@6 f4@6 f4@6 f4@5 d4@17 ~@20]/3", J: "[~@13 g3@32 ~@3]/3",
  K: "[~@13 a3@70 ~@7 d3@6]/3", L: "[eb3@6 d3@6 ~ g3@32 d3@6 eb3@10 c3@3]/2", M: "d3", N: "bb3@2 bb3@5 bb3", O: "bb3",
  P: "d4@7 ~", Q: "eb3 g3 bb3 g3 bb3 g3 bb3 g3", R: "eb3 g3 c4 g3 c4 g3 c4 g3", S: "eb3 ab3 c4 ab3 c4 ab3 c4 ab3",
  T: "d3 f3 bb3 f3 bb3 f3@2 ~", U: "[d3 f3 bb3 f3 bb3@10 ~@2]/2", V: "bb3@2 db4@2 bb3@3 bb3", W: "bb3 f3@3",
  X: "bb3@2 db4@2 c4@3 bb3", Y: "bb3@2 ab3@2 gb3@3 f3", Z: "f3@4 db3@3 db3", AA: "[d3@28 ~@2 c4 d4]/2",
  AB: "eb4 d4 c4 bb3", AC: "g4 f4 eb4 d4", AD: "ab4@2 g4@2 f4@3 g4", AE: "bb4@2 ab4@2 g4@3 eb4", AF: "f4", AG: "eb4",
  AH: "g3",
})).s("gm_french_horn").gain(0.25)

// other · trombone
const trombone = note(`<
  ~@8 A@7 B@5 C D E F@2 G ~ H@2 I J K@3 ~@11 L@2 M ~@3 N O N P ~@9 Q R S T Q U V W@2 X Y Z AA AB AC AD
>`.pickRestart({
  A: "[~ bb2@8 bb2@8 bb2@4 a2@4 bb2@16 bb2@8 c3@7]/7", B: "[~ bb3@16 eb3@4 f3@2 g3@2 f3@8 f3@7]/5",
  C: "~@4 f3@3 f3@3 f3@3 f3@3 f3@3 f3@3 f3@2 f3@3 gb3@3 gb3@2",
  D: "~ gb3@3 gb3@3 gb3@3 gb3@3 gb3@3 gb3@3 f3@3 f3@2 f3@3 f3@3 f3@2",
  E: "~ f3@3 f3@3 f3@3 gb3@3 gb3@3 gb3@3 gb3@3 gb3@2 gb3@3 gb3@3 ~@2",
  F: "[~ g3@9 f3@3 eb3@6 gb3@5 bb3@6 db3@6 eb3@9 bb3@3 g3@6 gb3@2 f3@3 gb3@3 ab3@2]/2", G: "~ bb3@3 c4@3 ~@25",
  H: "[~@13 c4@35 bb3@16]/2", I: "~ bb3@12 ~@19", J: "~@22 g3@5 g3@5",
  K: "[~ g3@6 a3@6 a3@6 a3@5 bb3@6 bb3@6 bb3@6 c4@6 c4@6 c4@5 bb3@17 ~@20]/3", L: "[~@13 bb3@51]/2", M: "f3",
  N: "bb2@2 bb2@5 bb2", O: "bb2", P: "d3@7 ~", Q: "bb3", R: "bb3@2 db4@2 bb3@3 bb3", S: "bb3 f3@3",
  T: "bb3@2 db4@2 c4@3 bb3", U: "bb3@2 ab3@2 gb3@3 f3", V: "f3@4 db3@3 db3", W: "[d3@7 ~]/2",
  X: "bb3 g3 eb3 g3 eb3 g3!3", Y: "eb3 g3 c4 g3 c4 g3 c4 g3", Z: "bb3 ab3 c4 ab3 c4 ab3 c4 ab3", AA: "~@4 g3!2 eb3 g3",
  AB: "f3!2 bb3 f3 bb3 f3 bb3 f3", AC: "bb3@5 g3@5 ~ eb3@5 eb3@5 eb3@11", AD: "eb3",
})).s("gm_trombone").gain(0.3)

// other · trombone · soft notes
const trombone_soft = note("<~@39 A@3 B@3 ~@10 C D@2 C@2 D@2 E@2 ~@12 F ~@3>".pickRestart({
  A: "[~@13 bb3@32 ~@3]/3", B: "[~@13 c4@70 ~@13]/3", C: "bb2", D: "c3", E: "[bb2@7 ~]/2", F: "bb3 g3 eb3 g3 ~@4",
})).s("gm_trombone").gain(0.2)

// bass · trombone · "Bass Trombone"
const bass = note(`<
  ~@3 A B C D E F G H I J K L ~@2 M@3 N O P Q@2 R@4 S T U@3 V W@2 X Y@2 Z AA AB AC@2 AD@2 AE AF@3 AG AH AG AI AJ@2 AK AH
  AJ@2 AK AL@2 AM AN AO AN AO AP AQ AR@2 AS@4 AT AP AS
>`.pickRestart({
  A: "~@7 f2", B: "~ bb2 ~ d3 ~ bb2 ~ d3", C: "~ f2 ~ d2 ~ f2 ~ bb2", D: "~ eb2 ~ g2 ~ bb2 ~ g2",
  E: "~ f2 ~ a2 ~ f2 ~ c3", F: "~ g2 ~ d2 ~ g2 ~ d2", G: "~ g2 ~ eb2@4 ~", H: "~ bb2 ~ d2 ~ f2 ~ c3",
  I: "~ g2 ~ d2 ~ g2 ~ f2", J: "~ g2 ~ bb2 ~ g2 ~ bb2", K: "~ g2 ~ bb2 ~@4", L: "~ f2@7", M: "[~ eb2@8 c2@8 d2@7]/3",
  N: "~@4 d2@3 ~@3 f2@3 ~@3 bb2@3 ~@3 f2@3 ~@2 gb2@3 ~@2", O: "~ bb2@3 ~@3 db3@3 ~@3 bb2@3 ~@3 d2@3 ~@2 f2@3 ~@3 bb2@2",
  P: "~@10 gb2@3 ~@3 bb2@3 ~@3 db2@3 ~@2 gb2@3 ~@2",
  Q: "[~ eb2@6 g2@6 bb2@6 gb2@5 bb2@6 db3@6 eb2@6 g2@6 bb2@6 gb2@5 bb2@5]/2", R: "[~ db3@6 g2@70 c3@35 bb2@16]/4",
  S: "~ bb2@12 ~@19", T: "~@22 bb2@5 bb2@5",
  U: "[~ bb2@6 c3@6 c3@6 c3@5 eb3@6 eb3@6 eb3@6 f3@6 f3@6 f3@5 d3@17 ~@14 d2@6]/3", V: "f2@6 g2@19 ~ bb2@6",
  W: "[c3@6 d3@3 ~ c3@3 bb2@6 a2@6 ~ g2@19 d2@6 f2@6 ~ g2@6]/2", X: "a2@19 bb2@6 ~ c3@6",
  Y: "[bb2@3 a2@3 g2@32 d2@6 ~ f2@6 g2@6 ~ g2@6]/2", Z: "g2@13 bb2@6 c3@3 bb2@3 ~ a2@6", AA: "f2@6 g2@19 ~ d2@6",
  AB: "f2@6 g2@6 ~ a2@6 a2@13", AC: "[bb2@6 c3@3 ~ bb2@3 a2@6 g2@6 ~ a2@26 ~@6 a2@6]/2",
  AD: "[bb2@6 a2@6 ~ d3@32 a2@6 bb2@10 g2@3]/2", AE: "a2", AF: "[d2@6 f2@6 ~ g2@6 a2@6 ~ a2@32 bb2@9 f2@3 g2@26]/3",
  AG: "g2@2 g2@5 g2", AH: "f2", AI: "bb2@7 ~", AJ: "g2", AK: "ab2", AL: "[f2@7 ~]/2", AM: "d3", AN: "gb3", AO: "db3",
  AP: "eb3", AQ: "f3", AR: "[f3@15 ~]/2", AS: "eb2", AT: "d2",
})).s("gm_trombone").gain(0.25)

stack(flute, french_horn, trombone, trombone_soft, bass)

More by Misc Soundtrack