Strudelify

interstellar theme

Hans Zimmer

KeyA minorTempo120 bpm
0:00/0:00
// interstellar theme — Hans Zimmer
// 120 bpm, 3/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5869187; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 87 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/3)

// 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 · cello · "Violin"
const cello = note(`<
  ~@4 A@2 B@2 ~ C D E F@2 G@2 H@2 G@2 F@2 G@2 H@2 I@2 J K L M N O L M F@2 G@2 H@2 G@2 P Q R S T U V W X Y Z AA AB AC AD
  AE AF AG AH AI AJ AK AL AM AN AO AP@2 AQ@2 AR@2 AS@2 AT@2 AU@2 AT AV@2 AW@2
>`.pickRestart({
  A: "[~@11 a3@16 ~@5]/2", B: "[b3@21 ~@11]/2", C: "b2@5 a2@5 ~ b2@5", D: "c3", E: "b2",
  F: "[a4@5 e5@5 ~@6 a4@5 e5@5 ~@6, f2]/2", G: "[b4@5 e5@5 ~@6 b4@5 e5@5 ~@6, g2]/2",
  H: "[c5@5 e5@5 ~@6 c5@5 e5@5 ~@6, a2]/2", I: "[d5@5 e5@5 ~@6 d5@5 e5@5 ~@6, g2]/2",
  J: "[f2,a4]@3 [f2,c4]@2 [a2,a3]@3 [c3,c4]@3 [f3,a3]@2 [a3,c4]@3", // F F5 A C F Am
  K: "[c4,e5]@3 [a3,c4]@2 [f3,a3]@3 [c3,c4]@3 [a2,a3]@2 [f2,c4]@3", // C Am F C A F5
  L: "[g2,b4]@3 [g2,d4]@2 [b2,b3]@3 [d3,d4]@3 [g3,b3]@2 [b3,d4]@3", // G G5 B D G Bm
  M: "[d4,e5]@3 [b3,d4]@2 [g3,b3]@3 [d3,d4]@3 [b2,b3]@2 [g2,d4]@3", // Dsus2 Bm G D B G5
  N: "[a2,c5]@3 [a2,e4]@2 [c3,c4]@3 [e3,e4]@3 [a3,c4]@2 [c4,e4]@3", // Am A5 C E Am C
  O: "[e4,e5]@3 [c4,e4]@2 [a3,c4]@3 [e3,e4]@3 [c3,c4]@2 [a2,e4]@3", P: "g3 a3@2 a3@2 a3@3 a3@3 a3@2 a3@3, f2",
  Q: "a3@3 a3@2 a3@3 a3@3 a3@2 a3@3, f2", R: "a3 b3@2 b3@2 b3@3 b3@3 b3@2 b3@3, g2",
  S: "b3@3 b3@2 b3@3 b3@3 b3@2 b3@3, g2", T: "b3 c4@2 c4@2 c4@3 c4@3 c4@2 c4@3, a2",
  U: "c4@3 c4@2 c4@3 c4@3 c4@2 c4@3, a2", V: "c4 d4@2 d4@2 d4@3 d4@3 d4@2 d4@3, g2",
  W: "d4@3 d4@2 d4@3 d4@3 b3 g3 d4@2 b2, g2@11 d4@2 d3 ~@2", X: "f2@3 c2@2 f2@3 a2@3 c3@2 f3@3, a4@5 e5@5 ~@6",
  Y: "a3@3 c4@2 a3@3 f3@3 c3@2 a2@3, a4@5 e5@5 ~@6", Z: "g2@3 d2@2 g2@3 b2@3 d3@2 g3@3, b4@5 e5@5 ~@6",
  AA: "b3@3 d4@2 b3@3 g3@3 d3@2 b2@3, b4@5 e5@5 ~@6", AB: "a2@3 e2@2 a2@3 c3@3 e3@2 a3@3, c5@5 e5@5 ~@6",
  AC: "c4@3 e4@2 c4@3 a3@3 e3@2 c3@3, c5@5 e5@5 ~@6", AD: "g2@3 d2@2 g2@3 b2@3 d3@2 g3@3, d5@5 e5@5 ~@6",
  AE: "b3@3 d4@2 b3@3 g3@3 [b2,b4] [g2,d5] [d2,g5] ~ [b2,b5], d5@5 e5@5 ~@6", // B G5 B
  AF: "[f2,a5]@5 f2@2 a2@2 c3@2 f3@5, ~@5 e6@5 ~@6", AG: "[c4,a5]@5 f3@2 c3@2 a2@2 a5 e5 c5 ~ a4, ~@5 e6@5 ~ f2@5",
  AH: "[g2,b5]@5 g2@2 b2@2 d3@2 g3@5, ~@5 e6@5 ~@6", AI: "[d4,b5]@5 g3@2 d3@2 b2@2 b5 g5 d5 ~ b4, ~@5 e6@5 ~ g2@5",
  AJ: "[a2,c6]@5 a2@2 c3@2 e3@2 a3@5, ~@5 e6@5 ~@6", AK: "[e4,c6]@5 a3@2 e3@2 c3@2 c6 a5 e5 ~ c5, ~@5 e6@5 ~ a2@5",
  AL: "[g2,d6]@5 g2@2 b2@2 d3@2 g3@5, ~@5 e6@5 ~@6", AM: "[d4,d6]@5 g3@2 d3@2 b2@2 a5 d5 c5 ~ a4, ~@5 e6@5 ~ g2@5",
  AN: "a4@3 a4@2 e5@3 a4@3 a4@2 a4@3, c3", AO: "e5@3 a4@2 a4@3 a4@3 e5@2 a4@3, f2",
  AP: "[b4@3 b4@2 e5@3 b4@3 b4@2 b4@3 e5@3 b4@2 b4@3 b4@3 e5@2 b4@3, g2]/2",
  AQ: "[c5@3 c5@2 e5@3 c5@3 c5@2 c5@3 e5@3 c5@2 c5@3 c5@3 e5@2 c5@3, a2]/2",
  AR: "[d5@3 d5@2 e5@3 d5@3 d5@2 d5@3 e5@3 d5@2 d5@3 d5 a4 ~ e5 d5 c5 ~ b4, g2]/2", AS: "f2@3 c3@2 f3@5 ~ c3@5",
  AT: "g2@3 d3@2 g3@5 ~ d3@5", AU: "g2@3 e3@2 g3@5 ~ c3@5", AV: "[g2@3 d3@2 g4@27]/2", AW: "a2",
})).s("gm_cello").gain(0.2)

// other · viola
const viola = note(`<
  ~@12 A@2 B@6 C@2 D@2 E@2 F@2 G H I H@3 I H A@2 B@6 J@8 K@2 L@2 M@2 N O P Q R S T Q U V ~@17 W X
>`.pickRestart({
  A: "c4@5 ~@11", B: "d4@5 ~@11", C: "a3@3 a3@2 e4@3 a3@3 c4@2 a3@3", D: "b3@3 b3@2 e4@3 b3@3 d4@2 b3@3",
  E: "c4@3 c4@2 e4@3 c4@3 e4@2 c4@3", F: "d4@3 d4@2 e4@3 d4@3 e4@2 d4@3", G: "c4@3 ~@13", H: "e4@3 ~@13",
  I: "d4@3 ~@13", J: "~@5 e5@11", K: "c4@3 a3@2 e4@3 a3@3 a3@2 a3@3", L: "b3@3 b3@2 e4@3 b3@3 b3@2 b3@3",
  M: "e4@3 c4@2 e4@3 c4@3 c4@2 c4@3", N: "d4@3 d4@2 e4@3 d4@3 d4@2 d4@3", O: "d4@3 d4@2 e4@3 d4@3 ~@5",
  P: "c5@5 e5@5 ~ a4@2 a4@3", Q: "c5@5 e5@5 ~@6", R: "b4@5 e5@5 ~ b4@2 b4@3", S: "b4@5 e5@5 ~@6",
  T: "c5@5 e5@5 ~ c5@2 c5@3", U: "d5@5 e5@5 ~ d5@2 d5@3", V: "d5@5 e5@5 ~@6", W: "a3", X: "e3",
})).s("gm_viola").gain(0.2)

// other · viola
const viola_2 = note(`<
  A@6 B@2 C B@3 D@8 ~@8 E F G F H F G F D@8 I@2 J@2 K@2 J@2 L@2 M@2 N@2 O P Q R S T U V W X Y@2 Z@2 AA@2 ~@11 AB AC
>`.pickRestart({
  A: "e4@3 c4@2 e4@3 c4@3 e4@2 c4@3", B: "e4@3 d4@2 e4@3 d4@3 e4@2 d4@3", C: "e4@3 c4@2 e4@3 d4@3 e4@2 d4@3",
  D: "e3@5 ~@11", E: "a3@3 ~@13", F: "e4@3 ~@13", G: "b3@3 ~@13", H: "c4@3 ~@13", I: "a3@5 ~@11", J: "b3@5 ~@11",
  K: "c4@5 ~@11", L: "a3@3 a3@2 e4@3 a3@3 a3@2 a3@3", M: "b3@3 b3@2 e4@3 b3@3 b3@2 b3@3",
  N: "c4@3 c4@2 e4@3 c4@3 c4@2 c4@3", O: "d4@3 d4@2 e4@3 d4@3 d4@2 d4@3", P: "d4@3 d4@2 e4@3 d4@3 ~@5",
  Q: "a4@5 e5@5 ~ a4@2 a4@3", R: "a4@5 e5@5 ~@6", S: "b4@5 e5@5 ~ b4@2 b4@3", T: "b4@5 e5@5 ~@6",
  U: "c5@5 e5@5 ~ c5@2 c5@3", V: "c5@5 e5@5 ~@6", W: "d5@5 e5@5 ~ d5@2 d5@3", X: "d5@5 e5@5 ~@6", Y: "f3/2", Z: "g3/2",
  AA: "a3/2", AB: "e3", AC: "a3",
})).s("gm_viola").gain(0.2)

// other · cello · "Violoncello"
const cello_2 = note(`<
  ~@4 A@2 B@2 C D E F G@2 H@2 I@2 H@2 G@2 H@2 I@2 H@2 J ~@22 K L M N O P Q N R S T U V W X U V ~@19
>`.pickRestart({
  A: "[~@11 a2@16 ~@5]/2", B: "[b2@21 ~@11]/2", C: "a3@5 b3@5 ~ c4@5", D: "b3@5 a3@5 ~ b3@5", E: "c4", F: "b3",
  G: "f3/2", H: "g3/2", I: "a3/2", J: "c2@3 f2@2 a2@3 c3@3 f3@2 a3@3", K: "~@11 b3 g3 d3 ~ b2",
  L: "f2@3 c2@2 f2@3 a2@3 c3@2 f3@3", M: "a3@3 c4@2 a3@3 f3@3 c3@2 a2@3", N: "g2@3 d2@2 g2@3 b2@3 d3@2 g3@3",
  O: "b3@3 d4@2 b3@3 g3@3 d3@2 b2@3", P: "a2@3 e2@2 a2@3 c3@3 e3@2 a3@3", Q: "c4@3 e4@2 c4@3 a3@3 e3@2 c3@3",
  R: "b3@3 d4@2 b3@3 g3@3 b3 g3 d3 ~ b2", S: "c2@5 f2@2 a2@2 c3@2 f3@5", T: "c4@5 f3@2 c3@2 a2@2 f2@5",
  U: "d2@5 g2@2 b2@2 d3@2 g3@5", V: "d4@5 g3@2 d3@2 b2@2 g2@5", W: "e2@5 a2@2 c3@2 e3@2 a3@5",
  X: "e4@5 a3@2 e3@2 c3@2 a2@5",
})).s("gm_cello").gain(0.3)

// other · cello · "Violoncello" · soft notes
const cello_soft = note(`<
  ~@29 A B C D E B C F@2 G@2 H@2 G@2 I@2 J@2 K@2 J L ~@16 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 R T@2 U V
>`.pickRestart({
  A: "c4@3 a3@2 f3@3 c3@3 a2@2 f2@3", B: "d2@3 g2@2 b2@3 d3@3 g3@2 b3@3", C: "d4@3 b3@2 g3@3 d3@3 b2@2 g2@3",
  D: "e2@3 a2@2 c3@3 e3@3 a3@2 c4@3", E: "e4@3 c4@2 a3@3 e3@3 c3@2 a2@3", F: "f3/2", G: "g3/2", H: "a3/2", I: "c3",
  J: "d3", K: "e3", L: "d3@11 ~@5", M: "c3/2", N: "d3/2", O: "e3/2", P: "g2/2", Q: "f2@3 c3@2 c4@5 ~ c3@5",
  R: "g2@3 d3@2 d4@5 ~ d3@5", S: "g2@3 c3@2 d4@5 ~ e3@5", T: "[g2@3 d3@2 b3@27]/2", U: "a3", V: "a2",
})).s("gm_cello").gain(0.2)

stack(cello, viola, viola_2, cello_2, cello_soft)

More by Hans Zimmer