Strudelify

The Glory Days

Michael Giacchino

KeyB♭ majorTempo190 bpm
0:00/0:00
// The Glory Days — Michael Giacchino
// 190 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, 2/4 at bar 8, 4/4 at bar 9) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5840739; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(190/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.

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@4 A@2 B@4 ~@2 C D@4 E@2 F@4 G H@3 I J ~ K L@2 ~@14 M N ~@2 O P Q R O P S T Q U V W X Y Z AA AB AC@2 AD AE@2 AF AG AH
  AI AJ AK AL AM AN@2 AO AP ~@8
>`.pickRestart({
  A: "[~@15 f4@3 ab4@3 ~@2 db5@3 ~@3 b4@3]/2", B: "[c5@39 f5@13 ~@12]/4", C: "~@11 ab4@2 d5@3",
  D: "[~ c5@2 d5@4 ~ c5@2 d5@2 ab4@2 d5@4 c5@2 d5@4 c5@2 ~@3 c4@2 f4@2 ab4@2 c5@4 ab4@2 b4@21 c4@2]/4",
  E: "[~ f4@2 ab4@2 b4@4 ab4@2 bb4@21]/2",
  F: "[e4@2 f4@2 ab4@2 ~ bb4@4 g4@2 ab4@21 c4@2 f4@2 ab4@2 c5@2 db5 c5 [bb4,c5] ab4@2 b4@4 c4@2 f4@2 ab4@2 b4@2 c5 [ab4,b4] ab4@2 ~, ~@61 b4 ~@2]/4", // Bbsus2 Abm
  G: "bb4@4 c4@2 f4@2 ab4@2 bb4@2 c5 [ab4,bb4] g4@2, ~@14 bb4 ~", H: "[ab4@21 ~ e4@6 e4@2 e4@4 ~@14]/3",
  I: "~@7 e4@6 ~ e4@2", J: "e4 ~@3", K: "~@10 bb4@2 ~@3 bb4", L: "[~ bb4 ~@2 f5@28]/2", M: "f5@6 f5!2 f5@6 f5!2",
  N: "f5 ~@7", O: "~@2 db4!2 ~@2 db4!2", P: "~ db4 ~ db4", Q: "~@2 c4!2 ~@2 c4!2", R: "~ c4 ~ c4",
  S: "~@2 db4!2 ~@2 bb4!2", T: "eb5@4 gb4 ~ gb4 ~ bb4@4 ~@4", U: "~@2 c4@2 ~@2 c5!2", V: "eb5 eb5@2 eb5 f5@2 f5@2",
  W: "f5 ~@3", X: "~@4 db4@2 db4@2 ~@3 db4@4 ~", Y: "~@3 db4@4 ~@4 c4@4 ~", Z: "~ db4!2 ~@2 c4@2 ~",
  AA: "~ db4@4 ~@4 db4@4 ~@3", AB: "~ d4@4 ~@3 d4@4 ~@4", AC: "[d4@4 ~@3 d4@4 ~@4 eb4@2 eb4@2 ~@4 d4@4 ~@3 eb4@2]/2",
  AD: "eb4@2 ~@4 eb4@4 ~@3 eb4@3", AE: "[~@5 eb4@4 ~@4 db4@2 db4@2 ~@3 db4@4 ~@4 db4@4]/2",
  AF: "~@3 db4@4 ~@4 gb4@2 gb4@2 ~", AG: "~@3 gb4@4 ~@3 e4@4 ~@2", AH: "~@2 e4@4 ~@3 e4@4 eb4@3",
  AI: "~ e4@4 ~@4 bb4@2 ~ bb4@2 ~@2", AJ: "bb4@2 ~@2 bb4@2 ~@9 gb4",
  AK: "~ g4 ab4 a4@2 bb4@2 a4@2 ~ gb4@2 ~@2 eb4 e4, ~@9 g4@2 ~@5",
  AL: "f4 ~@2 ab4@2 gb4@2 f4@2 eb4@2 ~ c4 db4 ~ d4, ~ gb4 ~@6",
  AM: "eb4@2 gb4@3 ab4@2 a4@2 gb4@2 ~ a4@2 bb4@2, ~@11 ab4@2 ~@3",
  AN: "[e4@2 f4@2 d4@3 d4@4 ~@3 f4@4 d4@5 ~@9, ~@13 a4@2 ~@17]/2", AO: "~@9 d4@4 ~@3", AP: "~@2 db4@5 ~ a3@4 ~@4",
})).s("gm_trumpet").gain(0.3)

// other · french horn · "Horn in F"
const french_horn = note(`<
  A@3 B C@3 D@3 ~@2 E F G H I J@2 ~@2 K@2 L M@3 N O ~ P Q@2 ~@9 R@3 S@4 T@2 U V W X U Y Z AA AB AC AD AE AF@7 AG@2 AH@2
  AI AJ@3 AK AL AM AN AO AP@2 ~@8
>`.pickRestart({
  A: "[~@11 a3@8 ~ a3@3 e4@19 a3@3 a3@3]/3", B: "~ b3@4 c4@4 b3@7", C: "[~ a3@3 f4@34 f3@2 ab3@3 ~@3 db4@2]/3",
  D: "[~@4 eb4@2 g4@17 c5@13 ~@12]/3", E: "~@11 ab4@2 ~@3", F: "~ ab4@2 ~@5 ab4@2 ~@2 ab4@2 ~@2",
  G: "~ ab4 ~@2 ab4 ~@3", H: "~@7 f4", I: "~@2 ab4 ~@2 bb4 ~@2", J: "[~@15 f4@2 ~@5 ab4@2 ~@4 bb4@2 ~@2]/2",
  K: "[~@2 c4@2 f4@2 ab4@2 ab4@2 bb4 ab4 [g4,ab4] ab4@2 f4@4 c4@2 f4@2 ab4@2 g4@2 ab4 [f4,g4] ab4@2 ~, ~@29 g4 ~@2]/2", // Abmaj7 Fsus2
  L: "e4@4 c4@2 f4@2 ab4@2 f4@2 g4 [eb4,f4] g4@2, ~@14 f4 ~", M: "[c4@21 ~ c4@6 c4@2 c4@4 ~@14]/3",
  N: "~@7 c4@6 ~ c4@2", O: "c4 ~@3", P: "~@10 f4@2 ~@3 f4", Q: "[~ f4 ~@2 bb4@28]/2", R: "[~@3 bb3@2 f4@4 bb3 c4@2]/3",
  S: "[bb3 f4@5 ~ bb3@2 f4@4 bb3 c4@2]/4", T: "[db4 bb3@5 ~@2]/2", U: "bb3@2 f4!2 bb3@2 f4!2",
  V: "bb3 ~ f4 ~ gb4@2 f4 ~", W: "f3@2 c4!2 f3@2 c4!2", X: "f3 ~ c4 ~ db4@2 c4 ~", Y: "bb3 ~ f4 ~ gb4@2 f4@2", Z: "eb4",
  AA: "~@3 db4", AB: "c4@2 g4!2 c4@2 g4@2", AC: "c4@2 g4!2 c4@2 ~ c4", AD: "f4 f4@2 f4 g4@2 ab4@2", AE: "a4 ~ f3!2",
  AF: "[f4@6 eb4@4 ~ eb4@4 db4@6 c4@4 db4@2 c4@3 bb3@8 f3@8 f3@4 ~@3 e3@4 f3@4 bb3@6 ab3@3 bb3@2 ab3@4 gb3@6 f3@4 ~ f3@4 eb3@19 ~@2, ~@5 f4 ~@37 gb3 ~@12]/7",
  AG: "[~@6 gb3@4 gb3@2 gb3@3 f3@4 gb3@2 f3@4 db3@7]/2",
  AH: "[~@4 f3@4 bb3@4 bb3@2 ab3@4 ~ ab3@4 gb3@8 ~, ~@9 bb3 ~@6]/2", AI: "~@3 c4 db4@2 c4@2",
  AJ: "[db4@2 c4@4 c4@2 db4@3 c4@4 db4@2 c4@4 f4@15 ~@11 a3]/3",
  AK: "~ bb3 b3 c4@2 d4@2 c4@2 ~ a3@2 ~@2 gb3 g3, ~@9 bb3@2 ~@5",
  AL: "ab3 ~@2 bb3@2 a3@2 g3@2 gb3@2 ~ d3 eb3 ~ e3, ~ a3 ~@6",
  AM: "f3@2 a3@3 b3@2 c4@2 g3@2 ~ a3@2 bb3@2, ~@11 ab3@2 ~@3", AN: "e4@2 f4@2 d4@3 db4@2 ~@7", AO: "~@11 d4@5",
  AP: "[db4@5 ~@4 ab3@2 bb3@2 d4@2 ~ ab3@2 e4@5 ~ d4@4 ~@4, ~@15 f4@2 ~@15]/2",
})).s("gm_french_horn").gain(0.3)

// other · trombone
const trombone = note(`<
  A@3 B C@3 D@3 ~@2 E F G ~@6 H@2 I J@3 K L ~@6 M N ~@2 O P Q R@3 S@4 T@2 U V W X U V Y ~ Z V AA AB AC AD AE AF AG AH@2
  AI AJ@2 AK AL AM AN AO AP AQ AR AS AT AU AV ~@6 AW@2
>`.pickRestart({
  A: "[~@11 a3@8 ~ a3@3 e4@19 a3@3 a3@3]/3", B: "~ b3@4 c4@4 b3@7", C: "[~ a3@3 c4@34 f3@2 ab3@3 ~@3 db4@2]/3",
  D: "[~@4 eb4@2 e4@17 f4@13 ~@12]/3", E: "~@11 f4@2 ~@3", F: "~ f4@2 ~@5 f4@2 ~@2 f4@2 ~@2", G: "~ f4 ~@2 f4 ~@3",
  H: "[~@8 ab3@6 ~ f3@4 ~@6 g3@6 ~]/2", I: "e3@2 ~@3 f3@3", J: "[c3@21 ~ ab3@6 ab3@2 ab3@4 ~@14]/3",
  K: "~@7 ab3@6 ~ ab3@2", L: "ab3 ~@3", M: "~@2 bb3@2 eb3 ~@2 bb2", N: "gb3!2 eb3 gb3@2 f3@3",
  O: "~@2 bb3@2 eb3 ~@2 c3", P: "gb3!2 eb3 gb3@3 ~@2", Q: "~ db4 gb3 ~", R: "[a3!3 gb3 a3 ab3 f3@4 bb3@8 f3@2 gb3@4]/3",
  S: "[f3 bb3@5 ~ f3@2 bb3@4 f3 gb3@2]/4", T: "[bb3 f3@5 ~@2]/2", U: "~@2 bb3!2 ~@2 bb3!2", V: "~ bb3 ~ bb3",
  W: "~@2 ab3!2 ~@2 ab3!2", X: "~ ab3 ~ ab3", Y: "eb3 f3", Z: "~@2 bb3!2 ~@2 bb3@2", AA: "c4 c4@2 c4 db4@2 d4@2",
  AB: "eb4 ~@3", AC: "~@4 bb3@2 bb3@2 ~@3 bb3@4 ~", AD: "~@3 bb3@4 ~@4 a3@4 ~", AE: "~ bb3!2 ~@2 a3@2 ~",
  AF: "~ bb3@4 ~@4 bb3@4 ~@3", AG: "~ bb3@4 ~@3 bb3@4 ~@4",
  AH: "[bb3@4 ~@3 bb3@4 ~@4 bb3@2 bb3@2 ~@4 a3@4 ~@3 bb3@2]/2", AI: "bb3@2 ~@4 bb3@4 ~@3 bb3@3",
  AJ: "[~@5 g3@4 ~@4 bb3@2 bb3@2 ~@3 bb3@4 ~@4 b3@4]/2", AK: "~@3 b3@4 ~@4 db4@2 db4@2 ~", AL: "~@3 db4@4 ~@3 c4@4 ~@2",
  AM: "~@2 c4@4 ~@3 c4@4 b3@3", AN: "~ c4@4 ~@4 c4@2 ~ d4@2 ~@2", AO: "eb4 ~ e4 ~@5", AP: "~@3 gb4@5 ~ gb4@2 ~@5",
  AQ: "~@2 eb4@5 eb4@2 ~@7", AR: "a3@2 ~ eb4@2 f4@4 c4@2 ~ db4@2 d4@2, ~@2 c4@2 ~@7 c4@2 ~@3", AS: "a3 bb3 f3@2 ~@4",
  AT: "~@11 f4@5", AU: "e4@5 ~@4 ab3@4 ~@3", AV: "~@2 g3@5 ~ f3@4 ~@4", AW: "[~@10 bb2@4 f2@3 gb2@4 f2@2 ~@9]/2",
})).s("gm_trombone").gain(0.3)

// bass · tuba
const bass = note(`<
  A B C@4 ~@2 D E@3 F@2 G ~@6 H@2 I J@2 K@2 L@3 ~@2 M N M N M N M N M N O P O P O P O P ~ Q R S T Q U V W ~ X ~ Y@4 Z
  AA@3 AB AC AD@3 AE AF@2 AG AH AI AJ AK AL ~@6 AM@2
>`.pickRestart({
  A: "~@11 a2@4 ~", B: "a2 a2@8 ~ a2@2 a2@2 a2@2", C: "[a2@2 a2@4 a2 ~ a2@17 f2@4 f2 f2@6 c3@28]/4",
  D: "~@7 f2@2 g2@2 ~ ab2@2 f2@2",
  E: "[g2@2 ab2@2 f2@2 g2@2 f2@2 g2@2 ab2@2 ~ f2@2 g2@2 ab2@2 f2@2 g2@2 f2@2 g2@2 ab2@2 f2@2 ~ g2@2 ab2@2 f2@2 g2@2 f2@2 g2@2 ab2@2]/3",
  F: "[f2@2 g2@2 ~ ab2@2 f2@2 g2@2 f2@2 g2@2 ab2@2 f2@2 g2@2 ab2@2 ~ f2@2 g2@2 f2@2 g2@2]/2",
  G: "ab2@2 f2@2 g2@2 ab2@2 f2@2 ~ g2@2 ~@3", H: "[~@2 f2@4 f2@2 f2@4 ~ f2@2 f2@4 f2@2 f2@4 f2@4 g2@2 ~]/2",
  I: "ab2@2 f2!3 f2@2 f2", J: "[~@5 f2@2 f2@2 ~@2 f2@4 g2@2 ab2@4 ~ f2@4 f2@2 f2@2 ~@2]/2",
  K: "[f2@2 f2@4 f2@2 ~ g2@2 ab2@2 f2@2 f2@2 g2@2 ab2@4 f2@4 ~ f2@2 f2@2]/2",
  L: "[~@2 f2@2 f2@4 f2@2 f2@2 ~@3 f2@2 f2@2 g2@2 ab2@4 f2@2 g2@2 ab2@2 db3@6 ~ c3@4 ~@6]/3",
  M: "bb2@2 ~@2 f2 ~ f2 ~ bb2@2 ~@2 f2 ~ f2 ~", N: "bb2 ~ f2 ~ gb2@2 f2 ~", O: "bb2 ~ f2!2 bb2 ~ f2!2",
  P: "bb2@2 f2@2 gb2@2 f2 ~", Q: "~ bb2", R: "f2 ~@3", S: "~ f2", T: "bb2 ~@7", U: "eb2 f2", V: "gb2 f2", W: "eb2 ~@3",
  X: "f2 ~ f2 ~", Y: "[bb2@4 ~@4 f2@4 ~@3 bb2@4 ~@4 f2@4 ~@3 bb2@4 ~@4 c3@4 ~@4 db3@4 ~@3 bb2@4 ~@4 bb1@3]/4",
  Z: "~ bb2 ~ d2", AA: "[~@4 d2@4 ~@3 eb2@8 f2@7 gb2@8 eb2@8 c3@4 ~@2]/3", AB: "~ f2@4 ~@4 bb1@4 ~@3",
  AC: "bb2 ~ db2 ~", AD: "[db2@4 ~@3 gb2@4 ~@4 gb2@4 ~@3 c3@4 ~@4 g2@4 ~@4 e2@4 ~@3 b1@3]/3",
  AE: "~ c2@4 ~@4 c3@2 ~ d3@2 ~@2", AF: "[eb3@2 ~@2 e3@2 ~@6 c3@7 eb2@5 ~ eb2@2 ~@5]/2", AG: "~@2 c2@5 c2@2 ~@7",
  AH: "f2@5 g2@5 ~ a2@3 bb2@2", AI: "e2@2 f2@2 bb1@4 ~@5 d3@3", AJ: "~@4 a2@4 ~@3 bb2@3 ab2@2",
  AK: "g2@2 ~@2 f2@2 g2@3 bb2@4 ~@3", AL: "~@2 a2@5 ~ d3@4 ~@4", AM: "[~@10 bb1@4 f1@3 gb1@4 f1@2 ~@9]/2",
})).s("gm_tuba").gain(0.3)

stack(trumpet, french_horn, trombone, bass)

More by Michael Giacchino