Strudelify

Cinema Paradiso

Ennio Morricone

KeyB♭ majorTempo65 bpm
0:00/0:00
// Cinema Paradiso — Ennio Morricone
// 65 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 39, 4/4 at bar 68) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5926044; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 72 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/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 · cello · "Violoncello"
const cello = note(`<
  A B@3 C D E F G H I J K L M@2 N O P Q R S T@2 U V@4 W X@5 Y@2 Z@2 ~@10 AA AB@2 AC@3 AD@2 AE AF@2 AG@6 AH@3 AI@3
>`.pickRestart({
  A: "d3@5 f2 bb2 d3", B: "[eb3 d3 eb3 g3 f3@5 g3 eb3 d3 f3@5 g3 eb3 d3 eb3 bb3 a3 c4]/3", C: "c4@2 d4@4 c4 d4",
  D: "f4 bb3 eb4@3 c4 a3 f3", E: "d4 f3 c4 f3 bb3@4", F: "bb3@2 c3 d3 g3 f3 eb3 f3", G: "f3@2 bb2@4 eb3 d3", H: "d3 c3",
  I: "bb2", J: "~@5 f3 bb3 a3", K: "g3@2 bb3@2 ~ bb3 c4 a3", L: "b3@4 g3 f3 a3!2",
  M: "[a3@2 bb3@4 bb3@3 eb4 c4 bb3 a3 ~ c3 a3]/2", N: "bb3 d3 f3 a3 g3@3 bb3", O: "a3@4 bb3 a3 g3 bb3",
  P: "d4@4 eb3 f3 g3 bb3", Q: "bb3 a3", R: "bb3", S: "f2 bb2@3",
  T: "[~@26 f3@9 eb4@4 d4@4 c4@4 ~ d4@4 c4@4 bb3@4 ~ d3@3]/2", U: "~ eb3@4 f3@26 ~",
  V: "[~@4 f3@4 bb3@4 a3@4 ~ g3@4 a3@4 g3@4 ~ f3@4 a3@4 c4@4 ~ eb4@26 ~@4 eb3@4 g3@4 ~ bb3@4 a3@4 c4@4 ~ bb3@4 g3@4 eb4@4 ~ d4@4 c4@4 g4@4 ~ f4@4 eb4@3]/4",
  W: "~ f4@26 ~@5",
  X: "[~@17 f4@4 eb5@4 ~ d5@4 c5@4 d5@4 ~ c5@4 bb4@4 f4@4 ~ g4@4 ab4@26 ~@4 gb4@4 ~ g4@4 f5@9 gb4@4 g4@4 f5@4 ~ eb5@4 bb4@4 d5@13 d5@4 ~ eb5@4 d5@4 c5@4 ~ bb4@4]/5",
  Y: "[c5@4 g4@4 ~ c5@26 c5@4 eb5@4 d5@4 ~ bb4@4 g4@12]/2", Z: "[~ bb4@39 ~@24]/2", AA: "~@28 g2 d3 g3 a3",
  AB: "[bb3 a3 [a3,bb3] g3 f4 eb4@21 f4@4 eb4@4 d4@4 c4@4 c4@4 d3@3 c4@4 a3@4 bb3@7]/2", // Bbmaj7
  AC: "[~ bb4@7 a4@4 g4@4 gb4@4 g4@4 f4@3 d4@4 bb3@4 d4@4 eb4@4 d4@4 eb4@3 d5@4 c5@4 bb4@4 a4@4 g4@3 g4@4 eb4@4 c5@4 bb4@4 a4@4 a3@3 f4@4]/3",
  AD: "[a4@4 g4@11 ~ g4@3 a4@4 g4@4 f4@4 d4@4 eb4@3 bb3@4 eb4@4 d4@4 db4@14]/2", AE: "~ c4@8 bb3@8 bb3@11 a3@4",
  AF: "[bb3@15 bb3@11 ~@2 eb4 f4 [g4,a4] ~@11 d4@4 eb4@4 bb4@3 a4@4 g4@4 a4@3, ~@27 d4@2 ~ bb4@11 ~@23]/2", // Gsus2
  AG: "[~ c5@4 f4@3 eb4@4 eb4@8 d4@8 ~@3 d4@4 f4@4 a4@4 c5@4 bb4@4 a4@3 bb4@4 d5@11 ~ d5@3 g4@4 gb4@4 g4@4 f5@4 eb5@15 ~@4 c5@4 g5@4 f5@3 f5@4 eb5@4 d5@4 c5@4 bb4@11 bb4@4 c5@4 bb4@4 a4@3 f4@4 g4@23 a4@4]/6",
  AH: "[bb4@4 f4@27 eb4@3 eb4@23 bb3@15 ~ c4@15 c4@8]/3", AI: "[c4@11 d4@4 d4@30 d4@46 ~@5]/3",
})).s("gm_cello").gain(0.25)

// other · cello · "Violoncello" · soft notes
const cello_soft = note("<~@38 A@6 B C@5 ~@22>".pickRestart({
  A: "[~@26 [bb3,eb4]@16 [d4,g4]@5 [eb4,a4]@5 [bb3,eb4]@5 [a3,d4]@5 ~ [g3,c4]@5 [a3,d4]@5 [c3,f3]@5 [f4,bb4]@8 [eb4,a4]@3 [eb4,a4]@10 [d4,g4]@10 ~@6 [d3,g3]@5 [f3,bb3]@5 [a3,d4]@5 [c4,f4]@5 [bb3,eb4]@5 ~ [a3,d4]@5 [bb3,eb4]@5 [d4,g4]@16 [d4,g4]@5 [g3,c4]@5 [gb3,bb3]@5 [g3,c4]@5 [f3,bb3]@5]/6", // Eb5 G5 Ebdim Eb5 D5 C5 D5 F5 …
  B: "~ [eb3,a3]@26 [c4,f4]@5", // Ebdim F5
  C: "[[g4,c5]@8 [f4,bb4]@2 [f4,bb4]@5 [eb4,a4]@5 ~ [d4,g4]@5 [c4,f4]@5 [bb3,eb4]@16 [bb2,eb3]@5 [c4,f4]@5 [bb2,eb3]@5 [a3,d4]@5 [f3,bb3]@5 ~ [g3,c4]@31 [a3,d4]@5 [bb3,eb4]@5 [a3,d4]@42 ~@4]/5", // C5 Bb5 Ebdim G5 F5 Eb5 F5 Eb5 …
})).s("gm_cello").gain(0.05)

stack(cello, cello_soft)

More by Ennio Morricone