Strudelify

Deliver Us Violin and Piano Duet

Passioala

KeyE majorTempo88 bpm
0:00/0:00
// Deliver Us Violin and Piano Duet — Passioala
// 88 bpm, 3/4, key E 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 (3/4 at bar 1, 4/4 at bar 14, 3/4 at bar 65, 4/4 at bar 110, ...) are rendered on a constant 3/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5852713; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 135 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(88/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.

// other · pizzicato strings
const pizzicato_strings = note("<~@134 [~@13 e4@6 ~@5]>").s("gm_pizzicato_strings").gain(0.45)

// chords · piano
const piano = note(`<
  A B C D A B E@2 F G H I J K L M N O P Q R S T U@2 V W X@3 Y Z AA AB AC@2 AD@2 AE AF AG AH AI AJ@2 AK AL AM@2 AN AO@3
  AP AQ AR@3 AS AT@3 AU@2 AV@3 AW AX@2 AY@7 AZ@8 BA@2 BB@7 BC@3 BD@3 BE@8 BF@2 BG BH@5 BI@4 BJ@5 BK@5 BL@3 BM BN
>`.pickRestart({
  A: "e4 g#4 b4", B: "d5@8 c5@11 ~ d5@4", C: "b4 e4 b4", D: "a4@23 ~", E: "[b4@23 ~]/2", F: "e5 d5 c5",
  G: "d5@8 b4@15 ~", H: "c5 b4 a4", I: "b4@23 ~", J: "g4 c4 g4", K: "f#4@4 b3@4 b1 b2 b1 b2, ~@2 f#4",
  L: "[e2,b2,e3,b3,e4] ~ [e2,b2,e3,b3] ~ [e2,b2,e3,b3] ~", // E5
  M: "[e2,b2,e3,b3] [e2,c3,e3,c4]@3 [e2,b2,e3,b3]@2 ~@2 [e2,b2,e3,b3]@2 ~@2", // E5 C E5
  N: "[e2,d3,e3,d4]@2 [e2,c3,e3,c4]@2 [e2,b2,e3,b3] ~", // E7 C E5
  O: "[e2,b2,e3,b3]@2 ~@2 [e2,b2,e3,b3]@2 ~@2 [e2,b2,e3,b3] [e2,c3,e3,c4]@3", // E5 C
  P: "[e2,b2,e3,b3] ~ [e2,b2,e3,b3] ~ [e2,d3]@2, ~@4 [e3,b3] ~", Q: "[e3,b3] d4 [e2,b3,e4]@2 [b3,e4] f#4, [e2,c3] ~ e2",
  R: "[e2,b3,e4,g4]@2 [e2,b3,f#4] [c3,e4] [f#3,d#4] c4, ~@2 e2", // Em Esus2 C D#m
  S: "e2@3 e2 [e2,d3]@4 [f#3,b3]@2 d4@2, [f#3,b3]@15 ~ [e2,c3]@8", // E7 B5 C
  T: "[e2,b2,a3,d#4,f#4]@2 [a3,d#4,f#4] g4 [e2,a3,d#4,a4]@2, ~ e2 ~", // B7 D#dim A
  U: "[[a3,d#4,g4]@2 f#4@2 [b3,e4] f#4 ~@2 e2@3 e2 [e2,d3]@4 e4 [e4,b4,d5]@3 [a2,e4,a4,c5]@4, e2!2 ~@2 g#2 ~, ~@12 [b3,g4]@19 ~@17]/2", // Am7b5 E5 E7 Am Em
  V: "c5@2 e4 ~ d2@4 [d2,d4]@2 [f#2,c5]@2, a2@2 [a3,d4,f#4]@3 ~@3", // D F#dim D
  W: "[d4,f#4,c5]@2 b4@2 [d4,f#4,a4] g4@3 [e2,g3,c4]@4, b1!2 ~", // D7 D C
  X: "[c4@2 b4@2 [c4,g4]@4 ~@2 f2@2 e4@4 c4@2 [f2,a4]@2 e2@4 b2@2 g#4@2 e4@2 [d4,f4]@2 [c4,e4]@2 ~ b4, e2@8 a4@23 ~@37 [b3,d4]@4, ~@8 f2@11 ~@5 f2@11 ~@37, ~@16 f4@8 ~@16 [d4,a4]@11 ~ [e3,b4]@19 ~]/3", // C5 F Dm C Bm D5 E5
  Y: "[e4,g#4,b4] c5 [e4,a4,c5]@2 [g#2,g#3,b3,e4] ~ [a2,a3,c4,e4] ~@3 [e4,a4] b4, a1 ~ a1", // E Am E Am A5
  Z: "[a2,e4,c5]@3 a4 [f4,a4,c5] d5 [f4,a4,d5]@2 [f2,f3,a3,c4] ~ [g2,g3,b3,d4] ~, ~ d2 ~", // Am F Dm F G
  AA: "~@2 [g4,b4] [a4,c5] [b4,d5]@2 g4@2 e2@2 b2@2, g1 g2 [g#4,d5,f5]", // G Am Bm Ddim
  AB: "[e3,e5] [a4,c5]@2 a4 b4 c5, ~@4 a2@11 ~ e3@8", // E Am
  AC: "[e5@4 d5@2 g#4@4 [d4,f4]@2 [c4,e4]@2 ~ b4 [e4,g#4,b4] c5 [e4,a4,c5]@2 [g#3,b3,e4] ~ [a3,c4,e4] ~, [d2,f#4,a4]@11 ~ [e2,b4]@19 ~ a1@8 g#2@4 a2@4, ~@7 [b3,d4] ~@4]/2", // Dm C E Am E Am D E5 …
  AD: "[~@2 [a4,c5] [b4,d5] [a2,c5,e5]@2 [b2,b4,d#5,f#5]@2 [e2,b4,e5,g5]@3 g2 g2@2 a2@2 ~@2 c#4 b3 a3 e3 c#3 [b2,f#5], a1@4 ~@7 [a4,d5,f#5]@3 [a4,c#5,e5]@4 ~@6, ~@4 a1 ~]/2", // Am Bm Am B Em B5 D A
  AE: "[a4,c5,g5] f#5 ~@4 a4 b4 [b1,e4,a4,c5]@4, a2 a1 ~, ~ [a4,c5,e5]@2 ~@3", // Am7 Am
  AF: "[b2,d#4,f#4,b4]@2 [e2,b2,e3,b3,e4] ~ [e2,b2,e3,b3] ~", // B E5
  AG: "[e2,b2,e3,b3]@2 ~@2 [e2,b2,e3,b3] [e2,c3,e3,c4]@3 [e2,b2,e3,b3]@2 ~@2", // E5 C E5
  AH: "[e2,b2,e3,b3] ~ [e2,d3,e3,d4]@2 [e2,c3]@2, ~@4 [e3,b3] ~", // E5 E7 C E5
  AI: "[e2,b3,e4]@2 [b3,e4] f#4 [e2,b3,e4,g4]@2, ~ e2 ~", // E5 Em
  AJ: "[[e2,b3,f#4]@2 [c3,e4]@2 [f#3,d#4]@2 c4@2 e2@3 e2 [e2,d3]@4 [f#3,b3]@2 d4@2 [e2,b2,a3,d#4,f#4]@4, ~@8 e2@8 [f#3,b3]@15 ~ [e2,c3]@8 ~@8]/2", // Esus2 C D#m E7 B5 B7 B5 C
  AK: "[a3,d#4,f#4] g4 [e2,a3,d#4,a4]@2 [a3,d#4,g4] f#4, e2 ~ e2", // D#dim A Am7b5
  AL: "[b3,e4] f#4 ~@2 e2@3 e2 [e2,d3]@4, e2 ~@2, ~@4 [b3,g4]@19 ~", // E5 E7 Em
  AM: "[e4 [e4,b4,d5]@3 [a2,e4,a4,c5]@4 c5@2 e4 ~ d2@4 [d2,d4]@2 [f#2,c5]@2 [d4,f#4,c5]@2 b4@2, g#2@8 ~@8 a2@6 [a3,d4,f#4]@9 ~@9 b1@8]/2", // E7 Am D F#dim D7 D
  AN: "[d4,f#4,a4] g4@3 [e2,g3,c4]@4 c4@2 b4@2, b1 ~ e2", // D C
  AO: "[[c4,g4]@4 ~@2 f2@2 e4@4 c4@2 [f2,a4]@2 e2@4 b2@2 g#4@2 e4@2 [d4,f4]@2 [c4,e4]@2 ~ b4 [e4,g#4,b4] c5 [e4,a4,c5]@2, a4@23 ~@37 [b3,d4]@4 ~@8, f2@11 ~@5 f2@11 ~@37 a1@8, ~@8 f4@8 ~@16 [d4,a4]@11 ~ [e3,b4]@19 ~@9]/3", // C5 F Dm C E Am Bm D5 …
  AP: "[g#2,g#3,b3,e4] ~ [a2,a3,c4,e4] ~@3 [e4,a4] b4 [a2,e4,c5]@3 a4, ~ a1 ~", // E Am A5 Am
  AQ: "[f4,a4,c5] d5 [f4,a4,d5]@2 [f2,f3,a3,c4] ~ [g2,g3,b3,d4] ~@3 [g4,b4] [a4,c5], d2 ~ g1", // F Dm F G Am
  AR: "[[b4,d5]@2 g4@2 e2@2 b2@2 [e3,e5]@2 [a4,c5]@4 a4@2 b4@2 c5@2 e5@4 d5@2 g#4@4 [d4,f4]@2 [c4,e4]@2 ~ b4, g2@8 [g#4,d5,f5]@8 ~@4 a2@11 ~ e3@8 [d2,f#4,a4]@11 ~ [e2,b4]@19 ~, ~@17 [b3,d4]]/3", // Bm E Am Dm C Ddim D E5 …
  AS: "[e4,g#4,b4] c5 [e4,a4,c5]@2 [g#3,b3,e4] ~ [a3,c4,e4] ~@3 [a4,c5] [b4,d5], a1@2 g#2 a2 a1@2", // E Am E Am Bm
  AT: "[[a2,c5,e5]@2 [b2,b4,d#5,f#5]@2 [e2,b4,e5,g5]@3 g2 g2@2 a2@2 ~@2 c#4 b3 a3 e3 c#3 [b2,f#5] [a4,c5,g5] f#5 ~@4 a4 b4 [b1,e4,a4,c5]@4 [b2,d#4,f#4,b4]@4, ~@7 [a4,d5,f#5]@3 [a4,c#5,e5]@4 ~@8 [a4,c5,e5]@4 ~@10, ~@3 a1 ~ a2 a1 ~@2]/3", // Am B Em B5 Am7 Am B D …
  AU: "[~@2 c#3@4 c#3@4 ~@4 f#5@2 g5 f#5 c3 e3 ~@2 g5 f#5, c#2@15 ~ a1@2 ~@2 a3@4, e4@27 ~@5 [a4,c5]@15 ~, ~@20 c#3@11 ~@5 e5@8 ~@4]/2", // Am
  AV: "[~@2 b2@2 f#3@2 b3@2 ~@2 b2@2 f#3@2 b3@2 c3@3 g3@3 c4@3 e4@3 g4@6 ~ c3@3 g#3@3 d4@3 f4@3 g#4@6 c3@3 g3@3 c4@3 e4@3 ~@3 e5@3 ~, [a4,c5,e5]@8 [f#4,b4,d#5]@8 e5@18 ~ f5@18 g5@6 f5@9 ~@4, ~@65 g4@6 ~]/3", // Am B
  AW: "c3 g#3 d4 f4 g#4@2 c3 g3, d5@3 c5",
  AX: "[c4@3 e4@3 [g4,g5]@6 ~ c3@3 g#3@3 d4@3 f4@3 ~@3 a#5@3 c3@3 g3@3 c4@3 e4@3 ~ [g4,g5]@4, e5@6 ~@7 a#5@6 g#5@9 ~@3 g5@6 ~@11, ~@25 g#4@6 ~@6 c5@6 ~@5]/2", // G
  AY: "[~@2 c3@3 g#3@3 d4@3 f4@3 g#4@6 c2@3 g2@3 e3@10 g4@3 c2@3 g#2@3 [f4,g#4]@9 a#4@3 c2@3 g2@3 c4@6 ~ g4@6 c2@3 g#2@3 ~@3 g#3@3 c4@6 c2@3 g2@3 e4@6 ~ g4@6 c2@3 g#2@3 [f4,g#4]@9 a#4@3 c2@3 [g2,e4]@3 ~ d4@3 e4@3 c4@3 e4@3 [c2,d4]@3 [g2,e4]@3 c4@3 e4@3 d4@3 e4@3, ~@2 f5@18 c4@6 e4@9 ~@4 a#4@6 d3@12 [e4,g4]@6 e3@12 ~ f4@18 ~@19 a#4@6 ~@12 g4@35 ~@2, ~@76 d4@9 ~@9 c4@6 ~@68, ~@82 d3@12 ~@6 e3@12 ~@7 d3@12 ~@7 e3@12 ~@6 e3@12]/7", // Fm C Csus2 C Em
  AZ: "[c5@4 d#3@3 a#4@6 g#4@6 d#2@3 a#2@3 g4@9 a#4@3 a#2@3 ~ f3@3 ~@6 g4@3 f4@3 c2@3 g2@3 ~@9 c4@3 ~ f#2@3 ~@3 g#3@6 d#4@6 f2@3 ~@3 g3@6 d4@6 ~ c2@3 g2@3 e4@6 g4@6 c2@3 g#2@3 [f4,g#4]@9 ~ a#4@3 c2@3 g2@3 c4@6 g4@6 c2@3 g#2@3 ~@3 g#3@3 ~ c4@6 d2@3 a2@3, [c4,d#4]@18 ~ [a#3,d#4]@18 [c#4,g#4]@12 ~@7 [e4,g4]@15 ~@7 d#3@15 ~@3 d3@15 ~@7 e3@12 ~@6 d3@10 ~@9 e3@12 d4@9 ~@10 [a3,d4]@6, g#2@3 ~@4 g#3@12 a#4@6 g3@12 ~@7 g#3@12 ~@6 e3@12 ~ [g#3,d#4]@6 ~@12 [g3,d4]@6 ~@13 c4@6 ~@12 a#4@6 ~@13 [e4,g4]@6 ~@12 f4@18 ~@7, ~@173 d3@12 ~@7]/8", // Fm Cm D#5 C#5 Em D5 G#5 G5 …
  BA: "[f#4@9 a4@3 d2@3 a#2@3 [g4,a#4]@9 ~ c5@3 d2@3 a2@3 d4@6 a4@5, d3@12 [g4,c5]@6 e3@10 ~@3 [f#4,a4]@6 d3@11]/2", // Gm C5 F#m
  BB: "[~ a4 ~@2 a#2@3 ~@4 a#3@3 d4@6 d2@3 a2@3 f#4@6 a4@6 d2@3 a#2@3 e3@10 c5@3 d2@3 a2@3 d3@3 f#3@3 a3@3 d4@3 d2@3 a2@3 ~ d3@3 f#3@3 a3@3 d4@3 a#2@3 f3@3 c5@6 a#4@6 c5@4 c3@3 [a3,a4]@12 c3@3 g3@3 a4@6 g4@6 d2@3 ~ a2@3 ~@3 a3@3 d4@6, ~ e4@9 ~@10 d4@6 ~@31 [f#4,a4]@35 ~@2 [d4,f4]@18 [c4,f4]@18 ~ [d#4,a#4]@6 a#3@12 [f#4,a4]@9 ~@10, ~ d2@3 ~@3 e3@12 ~@7 d3@12 ~@62 a#3@12 f2@3 ~@41 f#3@12, ~@2 g4@17 ~@19 c5@6 a#4@9 ~@41 d5@6 ~@68]/7", // A F#m Dm F5 D#5 F#m
  BC: "[g#2@3 ~@3 a#3@9 f4@3 ~ g2@3 ~@3 a3@6 e4@6 d2@3 a2@3 ~@3 f#3@3 a3@6 ~ d2@3 a#2@3 ~@3 g3@3 a#3@4, [d4,f4]@6 ~@13 [c#4,e4]@6 ~@12 d4@18 ~ g4@16, ~@3 f3@15 ~@4 e3@15 ~@6 d3@12 ~@7 e3@10]/3", // Dm C#m
  BD: "[~@2 d2@3 a2@3 ~@3 f#3@3 a3@6 ~ g2@3 c#3@3 ~@3 a#3@3 g4@6 c3@3 g3@3 e5@6 ~ g5@6 c3@3 g#3@3 [d4,f5,g#5]@8, ~@2 [f#4,a4]@18 ~ [f4,a#4]@18 [e4,c5]@6 e4@12 ~ a#5@6 ~@8, ~@8 d3@12 ~@7 f3@12 ~@33]/3", // Ddim F#m A#5 C
  BE: "[~ a#5@3 c3@3 g3@3 c5@6 ~ g5@6 c3@3 g#3@3 d4@3 f4@3 ~@3 c5@3 c3@3 g3@3 e5@6 ~ g5@6 c3@3 g#3@3 [f5,g#5]@9 a#5@3 c3@3 [g3,e5]@3 d5@3 ~ e5@3 c5@3 e5@3 [c3,d5]@3 [g3,e5]@3 c5@3 e5@3 d5@3 e5@3 g#2@3 d#3@3 ~ a#5@6 g#5@6 d#3@3 a#3@3 [d#4,g5]@12 [c#5,g#5]@4 f3@3 g5@6 f5@6 c3@3 g3@3 ~@3 g4@3 c5@6 [f#2,g#4,d#5]@3, ~@4 [e5,g5]@6 e4@12 ~ [d5,f5]@15 ~@3 c5@6 ~@13 a#5@6 ~@12 g5@35 ~@2 [c5,d#5]@18 ~ [a#4,d#5]@18 a#2@3 ~@4 g#3@12 ~@6 e4@12 ~@3, ~@35 g#4@6 ~@6 e4@12 ~@7 d4@12 ~@6 e4@12 ~@7 e4@12 c6@6 ~ c4@12 a#5@6 ~@31 [e5,g5]@9 ~@12]/8", // Fm C Csus2 C D# C#5 G#7 Em …
  BF: "[~ d#3@3 g#4@6 d#5@6 f2@3 d3@3 g4@6 d5@6 ~ [e4,g#4,b4]@3 c5@3 [e4,a4,c5]@6 ~, ~@4 f#3@12 [g4,d5]@6 f3@12 ~ a1@13]/2", // E Am G5
  BG: "[g#2,g#3,b3,e4]@6 ~ [a2,a3,c4,e4]@6 ~@7 [e4,a4]@3 b4, ~@13 a1@11", // E Am A5
  BH: "[~@3 [e4,c5]@10 a4@3 [f4,a4,c5]@3 ~ d5@3 [f4,a4,d5]@6 ~ [f2,f3,a3,c4]@6 [g2,g3,b3,d4]@6 ~@8 [g4,b4]@3 [a4,c5]@3 [b4,d5]@6 ~ g4@6 ~ e2@6 ~ b2@6 [e3,e5]@6 ~ [a2,a4,c5]@13 [g2,a4]@6 ~ [f#2,b4]@6 ~ [e2,c5]@3, ~@3 a2@13 d2@13 ~@14 g1@13 g2@13 ~ [g#4,d5,f5]@13 ~@37]/5", // C F Dm F G Am Bm E …
  BI: "[~@3 d2@6 ~ a2@6 ~ d5@6 ~@7 [e3,g#3,b3]@7 ~@7 e4@4 g#4@4 ~ b4@4 d5@4 ~ c5@4 d5@4 b4@4 ~ e4@4 b4@4 ~ [e4,g#4,b4]@3 c5@3 ~ [e4,a4,c5]@5, ~@3 f#4@25 ~@68, ~@3 e5@13 ~ d3@13 ~@14 [e3,g#3,b3]@38 ~@2 a1@12, ~@24 b4@19 ~@53]/4", // E Am E
  BJ: "[~ [e2,g#3,b3,e4]@6 ~ [a2,a3,c4,e4]@6 ~@7 [a4,c5]@3 ~ [b4,d5]@3 [c5,e5]@3 f#5@4 ~@3 [b4,d#5,a5]@3 ~ [e2,b4,e5,g5]@10 [g2,a4,d5,f#5]@10 a2@10 e3@3 b3@3 a3@3 ~ e3@3 c#3@3 b2@3 ~ [a2,a5]@3 [a4,c5,g5]@3 ~ f#5@3 a3@3 b3@3 ~ c4@3 ~@3 a4@3 ~ b4, ~@15 a1@13 a2@6 ~ b2@6 ~@21 [a4,c#5,e5]@19 ~ e5@10 ~@3 a2@4 ~@3 [a4,c5,e5]@13 ~@5, ~@14 e4]/5", // E Am Bm C B7 Em D A …
  BK: "[~@2 [e4,a4,c5]@13 [d#4,f#4,b4]@13 ~ [c4,e4]@13 c4@4 ~ e4@4 f#4@4 ~ g4@4 a#4@4 ~ a4@4 g4@4 ~ e5@4 [f#4,f#5]@4 [g4,c5,g5]@3 ~ f#5@3 c4@3 ~ b3@3 a3@3 e3@3 ~ [c3,g5]@3 [a2,f#5]@3 [b1,b2,a4,c5,e5]@11, ~@2 [b2,f#3,b3]@25 ~@2 [a#1,a#2]@51 ~@2 a2@4 ~@3 [g4,c5,e5]@13 ~@18]/5", // Am B C F# C5 D Am B5 …
  BL: "[~@3 [b1,b2,f#4,b4,d#5,f#5]@13 e2@3 b2@3 e3@3 g#3@3 [b3,b4,b5]@6 ~ e2@3 c3@3 e3@3 f#3@3 ~@3 [d5,d6]@3 e2@3 b2@3 e3@3 g#3@3 [b3,b4,b5]@6 ~, ~@16 [g#4,b4,e5]@6 [g#4,g#5]@6 ~@7 [d5,f#5,d6]@6 [c5,c6]@9 ~@3 [b4,g#5,b5]@6 [e4,e5]@6 ~@7, ~@47 a3@6 ~@19]/3", // B D B E G# D C E
  BM: "~ [a3,f#4,f#5], e2@19 ~@5, f#5@3 [f#3,g#4,g#5]@3 ~@2, [a4,a5] [e3,a4,a5]@2 ~, ~ c3@5 ~@2", // D F#sus2 A A5
  BN: "[f#4,e6,g#6] ~ [b4,b5] [f#4,e6,g#6] ~ [b4,b5] ~ [f#4,e6,g#6] [b4,b5] ~ [f#4,e6,g#6] [b4,b5] ~ [e1,e2]@6 ~@5", // C#m B C#m B C#m B C#m B …
})).s("gm_piano").gain(0.3)

stack(pizzicato_strings, piano)