Strudelify

interstellar

Han Zimer

KeyE minorTempo80 bpm
0:00/0:00
// interstellar — Han Zimer
// 80 bpm, 12/8, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/4 at bar 1, 12/8 at bar 35) are rendered on a constant 12/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5652854; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 70 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(80/6)

// 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 · cello · "Violonchelo"
const cello = note(`<
  A B@11 C@8 ~ A B@8 D@3 E F G H E F G H I J K I J K J L M N M L M N M B O P Q R O P Q R O P Q S B
>`.pickRestart({
  A: "~@3 e3!3", B: "e3!6", C: "[e3!3 a3@6 g3@6 f3@6 g3@6 a3@6 g3@6 f3@6 g3@3]/8", D: "[e3!3 e3@6 e3@6 e3@3]/3",
  E: "a2 e3@2 a2 e3@2", F: "b2 e3@2 b2 e3@2", G: "c3 e3@2 c3 e3@2", H: "d3 e3@2 d3 e3 b2", I: "f3 ~@2 f3 ~@2",
  J: "g3 ~@2 g3 ~@2", K: "a3 ~@2 a3 ~@2", L: "f3", M: "g3", N: "a3",
  O: "f2 c3 e3 a3 e3 c3 f2 c3 e3 a3 e3 c3 f2 c3 e3 a3 e3 c3 f2 c3 e3 a3 e3 c3",
  P: "f2 c3 d3 a3 d3 c3 f2 c3 d3 a3 d3 c3 f2 c3 d3 a3 d3 c3 f2 c3 d3 a3 d3 c3",
  Q: "a2 c3 e3 c4 e3 c3 a2 c3 e3 c4 e3 c3 a2 c3 e3 c4 e3 c3 a2 c3 e3 c4 e3 c3",
  R: "g2 d3 e3 b3 e3 d3 g2 d3 e3 b3 e3 d3 g2 d3 e3 b3 e3 d3 g2 d3 e3 b3 e3 d3",
  S: "g2 d3 e3 b3 e3 d3 g2 d3 e3 b3 e3 d3 g2 d3 e3 b3 e3 d3 g2 d3 e3 b3 g2 d3",
})).s("gm_cello").gain(0.2)

// other · cello · "Violonchelo"
const cello_2 = note(`<
  ~@2 A B C D E D F G H I@2 J K I@2 L@2 M N ~ O@8 P Q R S T U V S T U V W X Y Z AA AB AA S T U AC AD AE AF AG AH ~@13
>`.pickRestart({
  A: "~ a2", B: "b2 ~", C: "a2 b2 c3 b2 a2 b2", D: "c3 b2", E: "~@3 a2@2 ~", F: "a2 ~ c3 b2 a2 b2", G: "c3 d3",
  H: "~@3 b3 a3 b3", I: "[c4 b3@2 a3]/2", J: "b3", K: "a3 b3 c4 b3 a3 b3", L: "[c4@3 b3@6 a3@2 c4]/2",
  M: "b3 a3 b3 c4@3", N: "d4@6 e4 ~@5", O: "[~ f3@2 g3@2 a3@2 g3@2 f3@2 g3@2 a3@2 g3]/8",
  P: "~@12 a2 c3 e3@2 a2 c3 e3@2 a2 c3 e3@2", Q: "b2 d3 e3@2 b2 d3 e3@2 b2 d3 e3@2 b2 d3 e3@2 b2 d3 e3@2 b2 d3 e3@2",
  R: "a2 c3 e3@2 g2 b2 e3@2 a2 c3 e3@2 b2 d3 e3@2 a2 c3 e3@2 g2 b2 e3@2", S: "a3 e4@2 a3 e4@2", T: "b3 e4@2 b3 e4@2",
  U: "c4 e4@2 c4 e4@2", V: "d4 e4@2 d4 e4 b3", W: "f2 e3@2 f2 e3@2", X: "g2 e3@2 g2 e3@2", Y: "a2 e3@2 a2 e3@2",
  Z: "f2 e4@2 f2 e4@2", AA: "g2 e4@2 g2 e4@2", AB: "a2 e4@2 a2 e4@2", AC: "d4 e4@2 d4 e4@2", AD: "a3 e4 a3!2 e4 a3",
  AE: "b3 e4 b3!2 e4 b3", AF: "c4 e4 c4!2 e4 c4", AG: "d4 e4 d4!2 e4 b3", AH: "e3",
})).s("gm_cello").gain(0.3)

// other · cello · "Violonchelo" · soft notes
const cello_soft = note("<~@57 A B C B A B C B C B A B D>".pickRestart({
  A: "f2", B: "g2", C: "a2", D: "e3",
})).s("gm_cello").gain(0.2)

stack(cello, cello_2, cello_soft)