Strudelify

Mission Impossible Theme

Lalo Schifrin

KeyB♭ majorTempo180 bpm
0:00/0:00
// Mission Impossible Theme — Lalo Schifrin
// 180 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (10/8 at bar 1, 4/4 at bar 13, 10/8 at bar 48) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5919196; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 52 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/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.

// chords · piano
const piano = note(`<
  A B C D E F@3 G H I@3 J K J L M@2 N@2 O@2 P Q R@2 S@2 T@2 U V W@2 X@2 Y@2 Z AA AB@2 AC@2 AD@2 AE AF AG AH@2
>`.pickRestart({
  A: "~@4 g4!4", B: "g4!8", C: "g4!4 f4!2 gb4!2", D: "g4!8, [g2,g3]@3 [g2,g3]@3 [bb2,bb3]@2",
  E: "g4!8, [c3,c4]@2 [g2,g3]@3 [g2,g3]@3", // C G
  F: "[f4!2 gb4!2 g4!4 g4!8 g4!4 f4!2 gb4!2, [f2,f3]@2 [gb2,gb3]@2 [g2,g3]@3 [g2,g3]@3 [bb2,bb3]@2 [c3,c4]@2 [g2,g3]@3 [g2,g3]@3 [f2,f3]@2 [gb2,gb3]@2]/3", // F Gb G Bb C G F Gb
  G: "g3!6 bb3!2, [g4,bb4,d5,g5]@3 [g4,bb4,d5,g5]@3 [bb4,db5,f5,bb5]@2", // Gm Bbm
  H: "c4!2 g3!6, [c5,eb5,g5,c6]@2 [g4,bb4,d5,g5]@3 [g4,bb4,d5,g5]@3", // Cm Gm
  I: "[f3!2 gb3!2 g3!4 g3!2 bb3!2 c4!2 g3!2 g3!4 f3!2 gb3!2, [f4,ab4,c5,f5]@2 [gb4,a4,db5,gb5]@2 [g4,bb4,d5,g5]@3 [g4,bb4,d5,g5]@3 [bb4,db5,f5,bb5]@2 [c5,eb5,g5,c6]@2 [g4,bb4,d5,g5]@3 [g4,bb4,d5,g5]@3 [f4,ab4,c5,f5]@2 [gb4,a4,db5,gb5]@2]/3", // Fm Gbm Gm Bbm Cm Gm Fm Gbm
  J: "g2@3 g2@3 g2@2", K: "~ g2@2 g2 bb2@2 c3@2", L: "~ g2@2 g2 f2@2 gb2@2",
  M: "[[bb4,d5,bb5] g5 ~ [g2,g3]@3 [g2,g3]@2 ~ [g2,g3]@2 [g2,g3] [bb2,bb3]@2 [c3,c4]@2, [g2,g3]@3 ~@13, ~@4 d5@27 ~]/2", // Bb G Bb C G
  N: "[[bb4,db5,bb5] g5 ~ [g2,g3]@3 [g2,g3]@2 ~ [g2,g3]@2 [g2,g3] [f2,f3]@2 [gb2,gb3]@2, [g2,g3]@3 ~@13, ~@4 db5@27 ~]/2", // Bbm G F Gb G
  O: "[[c5,bb5] g5 ~ [g2,g3]@3 [g2,g3]@2 ~ [g2,g3]@2 [g2,g3] [bb2,bb3]@2 [c3,c4]@2, [g2,g3]@3 ~@13, ~@4 c5@27 ~]/2", // C7 G Bb C G
  P: "bb4 c5 ~ [g2,g3]@3 [g2,g3]@2, [g2,g3]@3 ~@5", Q: "~ [g2,g3]@2 [g2,g3] [f2,f3]@2 [gb2,gb3]@2",
  R: "[[d4,bb4] g4 ~ [g2,g3]@3 [g2,g3]@2 ~ [g2,g3]@2 [g2,g3] [bb2,bb3]@2 [c3,c4]@2, [g2,g3]@3 ~@13, ~@4 gb5@27 ~]/2", // Gm G Bb C G
  S: "[[d4,bb4] g4 ~ [g2,g3]@3 [g2,g3]@2 ~ [g2,g3]@2 [g2,g3] [f2,f3]@2 [gb2,gb3]@2, [g2,g3]@3 ~@13, ~@4 f5@27 ~]/2", // Gm G F Gb G
  T: "[[d4,bb4] g4 ~ [g2,g3]@3 [g2,g3]@2 ~ [g2,g3]@2 [g2,g3] [bb2,bb3]@2 [c3,c4]@2, [g2,g3]@3 ~@13, ~@4 e5@27 ~]/2", // Gm G Bb C G
  U: "eb5 d5 ~ [g2,g3]@3 [g2,g3]@2, [g2,g3]@3 ~@5", V: "~ [g2,g3]@2 [g2,g3] [bb2,bb3]@2 [b2,b3]@2",
  W: "[eb6 c6 ~ [c3,c4]@3 [c3,c4]@2 ~ [c3,c4]@2 [c3,c4] [eb3,eb4]@2 [f3,f4]@2, [c3,c4]@3 ~@13, ~@4 g5@27 ~, ~@4 [g4,c5,eb5]@11 ~@17]/2", // C Eb F C Cm
  X: "[eb6 c6 ~ [c3,c4]@3 [c3,c4]@2 ~ [c3,c4]@2 [c3,c4] [bb2,bb3]@2 [b2,b3]@2, [c3,c4]@3 ~@13, ~@4 gb5@27 ~, ~@4 [gb4,c5,eb5]@11 ~@17]/2", // C Bb B C Cdim
  Y: "[eb6 c6 ~ [c3,c4]@3 [c3,c4]@2 ~ [c3,c4]@2 [c3,c4] [eb3,eb4]@2 [f3,f4]@2, [c3,c4]@3 ~@13, ~@4 f5@27 ~, ~@4 [f4,c5]@11 ~@17]/2", // C Eb F C F5
  Z: "[eb4,bb4,eb5] [f4,c5,f5] ~ [c3,c4]@3 [c3,c4]@2, [c3,c4]@3 ~@5", AA: "~ [c3,c4]@2 [c3,c4] [bb2,bb3]@2 [b2,b3]@2",
  AB: "[bb4 g4 ~ [g2,g3]@3 [g2,g3]@2 ~ [g2,g3]@2 [g2,g3] [bb2,bb3]@2 [c3,c4]@2, [g2,g3]@3 ~@13, ~@4 gb5@27 ~, ~@4 [g4,bb4,d5]@11 ~@17]/2", // G Bb C G Gm
  AC: "[bb4 g4 ~ [g2,g3]@3 [g2,g3]@2 ~ [g2,g3]@2 [g2,g3] [f2,f3]@2 [gb2,gb3]@2, [g2,g3]@3 ~@13, ~@4 f5@27 ~, ~@4 [g4,bb4,d5]@11 ~@17]/2", // G F Gb G Gm
  AD: "[bb4 g4 ~ [g2,g3]@3 [g2,g3]@2 ~ [g2,g3]@2 [g2,g3] [bb2,bb3]@2 [c3,c4]@2, [g2,g3]@3 ~@13, ~@4 e5@27 ~, ~@4 [g4,bb4,d5]@11 ~@17]/2", // G Bb C G Gm
  AE: "[eb4,bb4,eb5] [d4,a4,d5] ~ [g2,g3]@3 [g2,g3]@2, [g2,g3]@3 ~@5", // Eb5 D5 G
  AF: "[g2,g3,g4,bb4,d5,g5]@3 [g2,g3,g4,bb4,d5,g5]@3 [bb2,bb3,bb4,db5,f5,bb5]@2", // Gm Bbm
  AG: "[b2,b3,b4,d5,f5,b5]@2 [c3,c4,c5,eb5,g5,c6]@3 [c3,c4,c5,eb5,g5,c6]@3", // Bdim Cm
  AH: "[[f3,f4,f5,ab5,c6,f6]@4 [gb3,gb4,gb5,a5,db6,gb6]@4 [g3,g4,g5,bb5,d6,g6]@19 ~@5]/2", // Fm Gbm Gm
})).s("gm_piano").gain(0.3)

stack(piano)