Strudelify

14 Romances Op.34

Rachmaninov

KeyG majorTempo51 bpm
0:00/0:00
// 14 Romances Op.34 — Rachmaninov
// 51 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 2, 4/4 at bar 3, 2/4 at bar 17, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5902544; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 67 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(51/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 G H I J K L@3 M N O@2 B C D E F G H I J K L@3 M N P Q R S T U@2 V@2 W X@4 Y Z AA AB AC AD AE AF AG AH AI
  AJ AK AL AM AN AO AP AQ@2
>`.pickRestart({
  A: "~@4 [d#4,g4]!4, ~ c4", B: "[c4,d#4,g4]!6 [c4,d4,f4] [a#3,d4,f4], a#3 g#3",
  C: "[a#3,d4,f4]!4 [a#3,c4,d#4]!2 [g#3,c4,d#4]!2, g3@2 g3 f3", // A# Cm7 G#
  D: "[g3,c4,d#4]!4 [g3,c4,f4]!2 [g3,b3,f4]!2, d#3@2 d3 c#3", // Cm Csus4 G7
  E: "[g3,a#3,f4]!2 [g3,a#3,e4]!2 [g#3,c4,d#4]!2 [g#3,a#3,d4]!2, c3@11 ~@5, ~@2 f2 [a#1,a#2]", // Gm7 Edim G# A#7 A#
  F: "[g3,c4,d#4]!2 [g#3,d#4,f4] [f3,g#3,c#4,f4] [g3,c4,g4]!2 [g3,b3,f4]!2, [c2,c3] f2 g2@2, ~@2 d#3 d3", // Cm Fm7 C# C5 G7 C
  G: "[g3,c4,d#4]@2 [g3,c4,d#4]@2 [g3,c4,d#4]@2 c4 a#3 c4@2 a#3 a3 [a#3,c4,d#4,g4]@2 f3 g3, [c2,c3] ~, ~@3 [d#4,g4] ~ [c4,d#4,g4] ~ [c4,d#4,g4]", // Cm Cm7 C D# Cm
  H: "~@2 [c4,d#4,g4]@2 [c4,d#4,g4]@2 a4 g4 [a3,d#4,a4]@2 g4 f#4 [d3,a3,d4,g4]@2 f#4 f4, [c2,c3]@4 ~ [a3,d#4] ~@2, a3@3 [a3,d#4] c3@2 ~ [d#3,a3,c4]", // Cm Adim Dsus4 C Adim
  I: "[a3,a#3,d4]@2 [a3,a#3,d4]@2 [a#3,d4]@2 g3 f3 [g3,a#3,d4]@2 f3 e3 [f3,a#3,d4]@2 e3 d3, g2@5 ~@3, d3@3 [a#3,d4] ~ [a#3,d4] ~ [a#3,d4], f#4@4 g4@11 ~", // A#maj7 A# Gm A#
  J: "[a#3,e4]@2 [a#3,e4]@2 [a#3,e4]@2 g4 f4 [a#3,e4,g4]@2 f4 e4 [a#3,f4]@2 [e3,c#4,e4] [d3,d4,f4], g2, c#3@5 d3@2 ~, ~@3 [a#3,e4] ~ a#3 ~ a#3", // A#dim Edim A#5 C#m Dm A#dim
  K: "[a3,e4]@2 [a3,e4]@2 [d3,a3,d4,f4]@2 a3 g#3 [d4,f4]@2 [d4,f4]@2 [d4,f4]@2 [c4,d#4]@2, f2@3 ~@5, [c#3,g4]@2 ~ [d4,f4] a3@4", // A5 Dm Cm C#dim Dm
  L: "[[c4,d4]@2 g#3 g3 [c4,d4]@2 [c4,d4]@2 [c4,d4]@2 g3 f#3 [c4,d4]@2 [c4,d4]@2 [b3,d4]@2 [g3,b3,d4]@2 [g3,c4]@2 [g2,g3] [a2,a3] ~@2 [g3,c4]@2 [g3,c4]@2 [f2,f3,a#3,c4]@2 [g2,d#3,a#3,c4]@2 [f2,f3,a#3,c4]@2 [g3,a#3,c4]@2 f#3 f3 [a#3,c4]@2 [a#3,c4]@2 [a#3,c4]@2 f3 e3, ~ [c4,d4] [f1,f2]@4 [e1,e2]@2 [d#1,d#2]@4 [d#2,a#3]@3 ~@3 [d#1,d#2]@4 [d1,d2]@2, ~@2 g#3@3 [c4,d4] g3@3 ~@2 c4 a#2@6 ~ [a#3,c4] f#3@3 [a3,c4]]/3", // Csus2 Bm G C5 G A C5 Fsus4 …
  M: "[a3,c4]@2 [a3,c4]@2 [f3,a#3]@2 [f2,f3] [g2,g3] ~@2 [f3,a#3]@2 [f3,a#3]@2 [f3,a#3]@2, [c#1,c#2] [c#2,g#2,g#3], f3@2 ~ a#3 ~@4", // Am A#5 F G A#5 C# C#5
  N: "[e3,g3,a#3]@2 [e3,g3,a#3]@2 [d#3,g3,a#3]@2 [d#3,g3,a#3]@2 [c3,a3]@2 [a#2,a#3]@2 [a2,c4]@2 d4 d#4, c#2@2 c2@2 [d#3,f#3]@3 [g#2,f#3,c4]", // Edim D# F A# Am D#m G#7
  O: "[[g2,f3,b3,f4]@2 [f#3,d#4] [a3,f#4] [e4,g4] a4 [d3,c4,d4,f#4]@2 g3@2 g3@2 g3@2 [g4,d#5,g5] [f4,d5,f5] [d#4,g4,a#4,d#5,g5]@2 [f4,d5,f5] [d#4,c5,d#5] [c#4,c#5] [d4,c5] [d#4,d#5] [d4,d5,f5] [c4,d#4,g4,c5,d#5,g5]@2 [c4,d#4,g4]@2 [d#4,g4]@2 [d#4,g4]@2, ~ [c3,d#3] [c#3,e3,a#3] ~ [a#3,d4,g4]@3 g3@2 g3@2 [g3,g4,b4] ~@2 c4@2, ~@7 b4 ~ a4 g#4@2 ~@4, ~@10 [f4,f5] ~@5]/2", // G7 D#m D Em D7 Cm Dm D# …
  P: "[g2,f3,b3,f4]@2 [f#3,d#4] [a3,f#4] [e4,g4] a4 [d3,c4,d4,f#4]@2 [a#3,d4]@2 [a#3,d4]@2 ~@2 f3 g3, ~ [c3,d#3] [c#3,e3,a#3] ~ g4@4, ~@4 g3@3 ~, ~@3 [a#3,d4]", // G7 D#m D Em D7 A# Cm A#dim …
  Q: "~@2 [b3,d4,f4]@2 [b3,d4,f4]@2 f4 g4 [g1,b3,d4,f4]@2 [b3,d4,f4]@2 [b3,d4,f4]@2 [g#3,f4,g#4] [g3,d#4,g4], g#3@4 ~ [g2,d3]@2 ~, ~@3 [b3,d4] g#4@3 b3", // Bdim G7 Bdim C# Cm G5 Bm
  R: "[g#3,b3,f4,g#4]@2 [g3,d#4,g4] [f3,d4,f4] [g3,g#3,b3,d#4,g4]@2 [f3,d4,f4] [g3,d#4,g4] [b3,d4,f4]@2 [g1,b3,d4,f4]@2 [b3,d4,f4]@2 [d4,f4] [d#4,g4], ~ [g#3,b3] ~ [g#3,b3] [g#3,g#4]@3 b3, ~@3 [g2,d3]", // Fdim Cm Dm G#m Dm Cm Bdim G7 …
  S: "[g#3,c4]@2 [g#3,c4]@2 [g#3,c4]@2 [d#4,g4] f4 [g#3,a#3,d4]@2 [g#3,a#3,d4]@2 [g#3,a#3,d4]@2 f4 d#4, [f2,c3] [a#1,a#2], [f4,g#4]@3 [g#3,c4] g4@3 [g#3,a#3]", // G# D# A#7 F5 A# Fm G# G#sus2
  T: "[g3,a#3]@2 [g3,a#3]@2 [d#3,g3,b3]@2 d#4 d4 [g3,c4]@2 [g3,c4]@2 [g3,c4]@2 [c4,c5] [a#3,a#4], g2@4 [c2,d#3,d#4]@3 ~, f4@3 ~@4 [d#4,g4], d3@2 ~ [f3,g3,b3] ~@4", // Gm D#aug C5 C A# Cm D# G7
  U: "[[c4,d#4,g4,c5]@2 [a#3,a#4] [a3,a4] [a#3,d#4,g4,a#4]@2 [f#3,f#4] [g3,g4] [a3,d#4,f#4]@2 [a3,d#4,f#4]@2 [a3,d#4,f#4]@2 [c4,c5] [a#3,a#4] [c4,d#4,g4,c5]@2 [a#3,a#4] [a3,a4] [a#3,d#4,g4,a#4]@2 [f#3,f#4] [g3,g4] [a3,d#4,f#4]@2 [a3,d#4,f#4]@2 [a3,d#4,f#4]@2 [g#3,g#4] [g3,g4], ~ [d#4,g4] ~ [c4,d#4] [c3,f#3,a4]@3 [d#4,g4] ~ [d#4,g4] ~ [c4,d#4] [c3,f#3,a4]@3 [d#4,f#4], ~@3 c2@2 ~@2 c2]/2", // Cm A# A D# F# G D#dim C …
  V: "[[g#3,d#4,f#4]@2 [g#3,d#4,f#4]@2 [g#3,d#4,f#4]@2 [g3,g4] [f#3,f#4] [g3,c4,d#4,g4]@2 [d#3,d#4] [g3,f4] [f#3,c4,d#4]@2 [f#3,c4,d#4]@2 [f#3,c4,d#4]@2 [f#3,c4,d#4]@2 [f#3,c4,d#4]@2 [g#2,g#3] [a#2,a#3] [c3,c4]@2 [b2,b3] [a#2,a#3] [b2,b3]@2 [g2,g3] [b2,g#3], [c3,g#4]@3 c4 c3@2 a#2@2 g#2@3 f#3 c#2@4, ~@4 c2@4 ~@2 c4@2 f#4@9 ~@3 [f3,g#3]@6 f3@2]/2", // G#7 G F# Cm D# G7 Cdim G# …
  W: "[f3,g3]@2 [f3,g3]@2 ~ [b2,b3] [c3,c4] [c#3,c#4] [d3,d4]@2 [c#3,c#4] [c3,c4] [c#3,c#4]@2 [a#2,a#3] [b2,b3], d2 d#2, [a#2,a#3]@2 [f3,g3]!2 [g3,b3]@3 g3", // Fsus2 B C C# D C# C C# …
  X: "[[g3,b3]@2 [g3,b3]@2 [d2,f3,g#3,b3]@2 g3 g#3 [e3,g3,a#3]@2 g#3 g3 [c3,f3]@2 [c3,f3]@2 ~@2 [f3,g#3]@2 [d3,f3,g#3]@2 d#4 d4 [g3,g#3,b3,d#4]@2 c#4 d4 [g#3,c4]@2 [g#3,c4]@2 [g#3,c4]@2 d4 d#4 [d3,g#3,c4,f4]@2 [c#3,d#4] [d3,f4] [d#3,g3,c4]@2 [f3,g#3,c4,f4]@2 [f#3,a3,c4,d#4]@2 [b3,d4,f4]@2 [c4,d#4]@2 [c4,d#4]@2 [c4,d#4]@2 f3 g3 ~@2 [a#3,d4,f4]@2 [a#3,d4,f4]@2 ~ [d#4,g4], [e2,c3,c4]@2 b2@2 ~ e3 g#3@3 ~@4 [f3,g#3,b3] d#3@4 ~@5 g3@4 ~ g#3@4, ~@3 [c#2,f3] [c2,c3]@2 [f1,f2]@2 c3@2 ~ [d#3,g#3,c4] f2@6 ~@2 g2@4 c3@3 ~@5, ~@28 d#4@6 [g#3,c4]@2 ~@2 [g#3,b3]@2 g4@15 ~@7 [a#3,d4,f4]@2]/4", // G Ddim Edim F5 Fm Ddim G#m G# …
  Y: "[g1,b3,d4,f4]@2 [b3,d4,f4]@2 [b3,d4,f4]@2 [g#3,f4,g#4] [g3,d#4,g4] [g#3,b3,f4,g#4]@2 [g3,d#4,g4] [f3,d4,f4] [g3,g#3,b3,d#4,g4]@2 [f3,d4,f4] [g3,d#4,g4], g#4@3 b3 ~ [g#3,b3] ~ [g#3,b3], ~ [g2,d3]@2 ~@5", // G7 Bdim C# Cm Fdim Cm Dm G#m …
  Z: "[b3,d4,f4]@2 [g1,b3,d4,f4]@2 [b3,d4,f4]@2 [d4,f4] [d#4,g4] [g#3,c4]@2 [g#3,c4]@2 [g#3,c4]@2 [d#4,g4] f4, [g#3,g#4]@3 b3 [f4,g#4]@3 [g#3,c4], ~ [g2,d3] [f2,c3]@2", // Bdim G7 Bdim Dm D# G# D# G# …
  AA: "[g#3,a#3,d4]@2 [g#3,a#3,d4]@2 [g#3,a#3,d4]@2 f4 d#4 [g3,a#3]@2 [g3,a#3]@2 [d#3,g3,b3]@2 d#4 d4, [a#1,a#2] g2, g4@3 [g#3,a#3] f4@3 ~, ~@4 d3@2 ~ [f3,g3,b3]", // A#7 Gm D#aug A# G#sus2 G7
  AB: "[g3,c4]@2 [g3,c4]@2 [g3,c4]@2 [c4,c5] [a#3,a#4] [c4,d#4,g4,c5]@2 [a#3,a#4] [a3,a4] [a#3,d#4,g4,a#4]@2 [f#3,f#4] [g3,g4], [c2,d#3,d#4]@3 [d#4,g4] ~ [d#4,g4] ~ [c4,d#4]", // C5 C A# Cm A# A D# F# …
  AC: "[a3,d#4,f#4]@2 [a3,d#4,f#4]@2 [a3,d#4,f#4]@2 [c4,c5] [a#3,a#4] [c4,d#4,g4,c5]@2 [a#3,a#4] [a3,a4] [a#3,d#4,g4,a#4]@2 [f#3,f#4] [g3,g4], [c3,f#3,a4]@3 [d#4,g4] ~ [d#4,g4] ~ [c4,d#4], ~ c2@2 ~", // D#dim C A# Cm A# A D# F# …
  AD: "[a3,d#4,f#4]@2 [a3,d#4,f#4]@2 [a3,d#4,f#4]@2 [g#3,g#4] [g3,g4] [g#3,d#4,f#4]@2 [g#3,d#4,f#4]@2 [g#3,d#4,f#4]@2 [g3,g4] [f#3,f#4], [c3,f#3,a4]@3 [d#4,f#4] ~@2 c2@2, ~@2 c2@2 [c3,g#4]@3 c4", // D#dim G# G G#7 G F# F#dim D#m …
  AE: "[g3,c4,d#4,g4]@2 [d#3,d#4] [g3,f4] [f#3,c4,d#4]@2 [f#3,c4,d#4]@2 [f#3,c4,d#4]@2 [f#3,c4,d#4]@2 [f#3,c4,d#4]@2 [g#2,g#3] [a#2,a#3], c3@2 a#2@2 g#2@3 f#3, ~@2 c4@2 f#4@9 ~@3", // Cm D# G7 Cdim G# A#
  AF: "[c3,c4]@2 [b2,b3] [a#2,a#3] [b2,b3]@2 [g2,g3] [b2,g#3] [f3,g3]@2 [f3,g3]@2 ~ [b2,b3] [c3,c4] [c#3,c#4], c#2 d2, [f3,g#3]@3 f3 [a#2,a#3]@2 [f3,g3]!2", // C B A# B G E Fsus2 B …
  AG: "[d3,d4]@2 [c#3,c#4] [c3,c4] [c#3,c#4]@2 [a#2,a#3] [b2,b3] [g3,b3]@2 [g3,b3]@2 [d2,f3,g#3,b3]@2 g3 g#3, d#2@2 [e2,c3,c4] b2, [g3,b3]@3 g3 ~@3 [c#2,f3]", // D C# C C# A# B G Ddim …
  AH: "[e3,g3,a#3]@2 g#3 g3 [c3,f3]@2 [c3,f3]@2 ~@2 [f3,g#3]@2 [d3,f3,g#3]@2 d#4 d4, [c2,c3]@2 [f1,f2]@2 c3@2 ~ [d#3,g#3,c4], ~ e3 g#3@3 ~@3", // Edim F5 Fm Ddim C F G#
  AI: "[g3,g#3,b3,d#4]@2 c#4 d4 [g#3,c4]@2 [g#3,c4]@2 [g#3,c4]@2 d4 d#4 [d3,g#3,c4,f4]@2 [c#3,d#4] [d3,f4], f2@3 ~, ~ [f3,g#3,b3] d#3@4 ~@2, ~@2 d#4@3 [g#3,c4] ~ [g#3,b3]", // G#m G# Dm7b5 C#sus2 Dm Fdim G# G#m
  AJ: "[d#3,g3,c4]@2 [f3,g#3,c4,f4]@2 [f#3,a3,c4,d#4]@2 [g3,b3,d4,f4]@2 [c3,c4,d#4]@2 [c4,d#4]@2 [c4,d#4]@2 d#5 d5, [g2,g4]@4 [g3,g4]@3 [c4,d#4,g4]", // Cm Fm F#dim G7 Cm G Cm
  AK: "[c4,d#4,g4]@2 [c4,d#4,g4]@2 [c4,d#4,g4]@2 c5 d5 [c4,d#4,g4,d#5]@2 d5 c5 [c4,d4,f4,d5]@2 a#4 c5, a#3 g#3, d#5@3 [c4,d#4,g4] ~ [c4,d#4,g4] ~ [a#3,d4,f4]", // Cm Dm7 Cm A#
  AL: "[a#3,d4,f4]@2 [a#3,d4,f4]@2 [a#3,d4,f4]@2 [a#3,d4,f4]@2 [g#3,c4,d#4]@2 c5 a#4 [g#3,c4,d4,c5]@2 g#4 a#4, g3@15 ~, d5@4 ~ [g#3,c4,d#4] ~ g#3", // A# G# Dm7b5 G#
  AM: "[g3,c4,d#4]@2 [g3,c4,d#4]@2 [g3,c4,d#4]@2 [g3,c4,d#4]@2 [g3,c4,f4]@2 a#4 g#4 [f3,b3]@2 ~ f4, [f3,c5]@2 d3 [c#3,g4], ~@5 [g3,c4,f4] ~ [f3,b3]", // Cm Csus4 Fdim F5 C#dim Csus4 Fdim
  AN: "[g3,a#3,f4,g4]@2 ~ g#4 [a#3,c4,e4]@2 [a#3,c4,e4]@2 ~ g#4 c5 d#5 [g#3,d4,g#4,f5]@2 [g#3,c4] d4, c3@2 [f2,c3] a#2, ~ [g3,a#3,f4] g4@2 [g#3,c4,d#4]!2 ~ [g#4,g5]", // Gm7 C7 Ddim G# F5 Gm7 G# G#maj7
  AO: "[g4,c5]@2 [g4,c5]@2 [f3,f4,g#4]@2 d#3 f3 [d#4,g4]@2 [d#4,g4]@2 [b4,c5]!4, d#5@3 [f4,g#4,c#5] c5@2 [d4,f4]!2, [c3,g3,d#4] ~ g3@2", // C5 Fm D# Cmaj7 C# Dm Cm
  AP: "[g#3,b4] g3 g#3 a#3 c4 c#4 [c4,g#4,c5] [a#3,g4,a#4] [g#3,c4,d#4,g#4,c5]@2 [g4,a#4] [g3,f4,g#4] [f#3,f#4] [g3,f4] [g#3,g#4] [g3,g4,a#4], c5@3 ~@5, [c4,d#4] [d4,f4] [d#4,g4] e4 ~ [a#3,d4] [a#3,d4,a#4] [c4,e4]", // G#m Fm D# G# Gm C# F# G7 …
  AQ: "[f3 d3 d#3 f3 g3 g#3 [g3,d4,f4]@2 [c3,c4,d#4]@2 ~ g3 [c4,d#4,g4]@11 ~@9, [c4,c5]@4 ~ [d#4,g4] ~@10, [f4,g#4]@2 [f4,g#4]@2 [d#4,g4]@2 ~@2 c5@15 ~@9]/2", // G7 Cm C D# Fm D#
})).s("gm_piano").gain(0.3).pan(0.6)

stack(piano)