Strudelify

Prelude in E minor, op. 28 nr. 4 "Suffocation" (arr. Franz Liszt) (organ: Gerrie Meijers)

Chopin Frederic

KeyE minorTempo120 bpm
0:00/0:00
// Prelude in E minor, op. 28 nr. 4 "Suffocation" (arr. Franz Liszt) (organ: Gerrie Meijers) — Chopin Frederic
// 120 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 63 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · "A.PIANO 1"
const piano = note("<A@3 B@7 C@5 D@7 E@7 F@2 G@3 H@6 I@7 J@5 K@3 L@7 ~>".pickRestart({
  A: "[~@20 b4@4 ~ [b3,e4]@10 [b3,e4]@10 ~@9 e4@8 ~ g3@8 [g3,b3,e4]@8 ~ [g3,b3,e4]@5 ~@4 g3@7, b3@12 b4@29 ~@3 [b3,e4]@4, ~@25 g3@5 ~@32 [b3,e4]@8 ~@9 c5@17]/3", // E5 Em E5
  B: "[~@4 a3@6 ~@4 [f#3,e4]@9 [f#3,a3,e4]@8 ~ [f#3,a3]@8 [f#3,d#4]@9 ~ [f#3,a3]@8 f#3@9 [a3,d#4]@10 ~ [f3,a3]@10 [a3,d#4]@9 [f3,a3,d#4]@8 ~ f3@9 [a3,d4]@10 ~ [f3,a3]@8 ~ [f3,d4]@8 ~ [f3,d4]@12 [g#3,d4]@11 [g#3,d4]@8 ~ e3@8 [e3,g#3,d4]@9 ~ e3@10 d4@9 a#4@11, ~@3 b4@58 ~@16 b4@58 ~@21 b4@60 ~@8, ~@3 [f#3,e4]@11 ~@17 e4@9 ~@9 d#4@9 c5@23 ~@53 c5@25 ~@65, ~@58 d#4@5 ~@14 d#4@11 ~@17 [a3,d#4]@11 ~@9 d4@9 g#3@9 g#3@13 e3@4 ~@15 [g#3,d4]@8 ~@10 [g3,d4]@11 ~@20]/7", // F#7 F#m7 F#m D#m F#m Adim F Adim …
  C: "[~@14 e3@10 [e3,g3,c4]@9 [e3,g3,c4]@8 ~ g3@9 ~ e3@9 [e3,f#3,c4]@8 ~ [f#3,c4]@9 [e3,f#3,c4]@11 ~ [e3,f#3,c4]@10 [e3,f#3,c4]@9 [e3,f#3,c4]@8 ~ [e3,f#3]@9 [d#3,f#3,c4]@9 [d#3,f#3,c4]@8 ~ [f#3,c4]@8 [d#3,f#3,c4]@6, ~@13 a4@64 ~@13 a4@64 ~@6, ~@41 c4@10 [f#3,c4]@10 ~@8 b4@25 ~@24 c4@9 ~@18 b4@15, ~@145 d#3@9 ~@6]/5", // C F#m7b5 F#dim F#m7b5 Esus2 Cdim F#dim Cdim …
  D: "[~@6 d3@9 [f#3,c4]@9 [d3,f#3,c4]@9 [d3,f#3,c4]@8 [d3,f#3,c4]@8 ~ d3@7 ~ [d3,f#3,c4]@12 ~@4 a4@5 [d3,f3,c4]@9 [d3,f3,c4]@8 [d3,f3,c4]@9 [f3,c4]@10 [d3,f3,b3]@10 ~ d3@9 ~ [d3,f3,b3]@8 [d3,f3,b3]@9 [c3,e3,b3]@9 ~ [c3,e3]@8 ~ [c3,e3]@7 [e3,a3,b4]@9 [c3,e3,a3]@10 ~ c3@7 ~ [c3,a3]@5 ~@3 [c3,e3,a3,a4]@9, ~@5 a4@64 ~ [d3,f#3,c4]@9 a4@59 ~@24 b3@17 c3@4 ~@15 [e3,a3,c5]@9 e3@8 ~@9, ~@49 [f#3,c4]@8 b4@23 ~@45 [f3,b3]@10 g#4@46 ~@7 d5@21 ~@15, ~@171 [a3,a4]@10 ~@25 e4@11 ~@7]/7", // F#dim D7 Dm7 F5 Bdim Cmaj7 C Esus4 …
  E: "[~@2 [b2,e3,a3]@10 [b2,e3,a3]@8 [b2,d#3,a3]@8 [b2,d#3,a3]@9 [c3,e3,a3]@10 [e3,a3]@9 ~@9 [c3,e3,a3]@12 [d#3,a3]@10 [d#3,a3]@8 [d#3,a3]@8 [d#3,a3]@8 ~ [c3,e3]@9 e3@10 ~@13 [c3,e3,a3]@15 ~@50 f#4@11 d5@4, ~@2 f#4@55 a4@22 ~@54 b4@27 d#3@36 ~@28, ~@56 c3@9 ~@47 a3@4 ~@24 a4@22 ~@12 f#4@22 ~@5 d#4@12 ~@11, ~@56 [e3,a3]@5 ~@16 f#4@64 ~@18 g4@17 ~@8 c4@12 ~@28, ~@193 b3@11 ~@20]/7", // Esus4 B7 Am A5 Am D#dim C Am …
  F: "[~@4 c5@6 b4@7 ~@12 e4@9 [g3,b3,e4]@8 ~ [g3,b3]@8 [b3,e4]@9, ~@17 b4@47, ~@46 e4@9 ~@9]/2", // Em G E5
  G: "[[g3,e4]@10 ~ g3@4 ~@5 e4@11 ~ f#3@9 ~ [f#3,a3]@7 [f#3,a3,e4]@8 [f#3,a3,e4]@8 ~ a3@8 [f3,a3,d#4]@8 ~@9 [f3,a3]@5, ~@10 c5@21 [a3,e4]@10 e4@8 ~@16 d#4@8 ~@9 d#4@8 d#4@6, ~@10 e4@4 ~@17 b4@64 ~, ~@66 f3@4 ~@13 [f3,a3]@8 ~@5, ~@7 c5]/3", // C F#m F#m7 F7 F A5 F
  H: "[~@13 [f3,g#3,d#4]@8 [f3,g#3,d4]@8 g#3@8 ~ [e3,d4]@8 [e3,g#3,d4]@7 ~ e3@7 [g#3,d4]@8 ~@14 a#4@4 [e3,g3,c#4]@7 ~@17 e3@7 [c3,e3,a3]@8 ~@6 e5@4 [b1,b2]@3 ~@5 [a3,c4,f#4,a4]@9 ~ [a3,c4,f#4,a4]@8 ~@8 g3@8 [g3,b3,e4]@5 ~@4 b3@5, ~@3 [f3,g#3,d#4]@10 ~@16 [f3,d4]@11 ~@14 c5@18 ~@7 [g3,d4]@9 ~@6 [e3,g3,c#4]@8 [c#3,e3,a#3]@9 [c#3,a#3]@10 ~@5 [c3,e3,a3]@11 ~@25 [c4,f#4,a4,d#5]@7 d#5@11 ~@12, ~@4 b4@64 ~@2 b4@19 ~@6 b4@9 g5@17 ~@15 e5@34 [d#4,f#4]@11 ~@11, ~@37 g#3@8 ~@8 [g#3,d4]@8 e3@7 ~ [e3,g3,d4]@11 e3@7 a#4@10 a#4@4 a#4@4 ~@13 f#5@19 ~@7 d#5@18 ~ a3@7 b3@5 ~@11 [g3,e4,g5]@6, ~@99 a4@5 ~@49 c6@18 ~@7 e5@8 ~@6]/6", // Fm7 Ddim E7 G#dim C#dim Am B F#dim …
  I: "[~@3 e4@7 ~ a3@7 ~ [c4,e4]@7 ~@14 a4@7 ~@11 [b2,e3,b3]@9 ~ e3@10 ~ [c3,e3,a3]@9 [e3,b3]@11 e3@9 e3@8 e3@8 [c3,e3,a3]@9 [c3,e3,a3]@12 ~@11 [c3,e3,a3]@10 ~ e3@9 e3@8 ~ e3@8 [e3,b3]@9 [b2,d#3,b3]@10 d#3@10 a3@2, ~@2 [g3,b4]@11 ~@13 [a2,e5]@11 e3@10 [e3,b3]@11 ~@9 [c3,a3]@12 ~@145, ~@10 d5@17 ~@9 c4@13 f#4@31 ~@8 f#4@58 ~@6 a4@16 ~@56, ~@10 [c4,e4]@8 c5@10 ~@6 e4@16 ~@28 a4@12 ~@56 b4@11 ~@9 f#4@58, ~@37 f#3@13 ~@174]/7", // C E5 Am E5 Am E5 B G …
  J: "[~@17 e4@7 ~ g3@10 g3@9 [c3,g3]@9 c3@10 [c3,a#3]@11 [c3,a#3]@10 [c3,e3,a3]@9 [c3,e3,a3]@12 [e3,a3]@11 a3@9 g#3@9 ~ e3@10 [e3,g3]@11 ~@4, ~@9 d#3@19 ~@25 g3@13 ~@18 f#4@24 ~@17 e3@4 ~@5 g#3@10 ~@16, ~@24 e4@63 ~@18 e4@55]/5", // C5 C7 Am A5 Em
  K: "[~@23 [a#2,e4]@25, ~@6 e3@13 ~@77, ~@7 f#4@56 ~@33]/3", // A#dim
  L: "[~@32 [b2,b3]@46 ~ [b3,d#4]@64 ~@7 [e1,e2,e3,b3]@64 ~@10, ~@31 e4@55 ~@138, ~@31 f#3@47 d#3@64 ~@82, ~@32 e3@55 ~@137]/7", // B E5
})).s("gm_piano").gain(0.24)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  ~ A ~ B C D E ~ F G H I J ~@2 K ~@2 L ~@4 M N@3 O@2 P@2 Q ~@8 R S T@2 U V W@3 ~ X Y@4 Z@8
>`.pickRestart({
  A: "~@3 g3@10 [g3,b3,e4]@9 [g3,b3]@9 ~", B: "~@15 a3@8 ~@9", C: "~@8 a3@9 ~@10 a3@5", D: "~@3 f#3@11 ~@10 f3@8",
  E: "~@10 f3@5 ~", F: "~@7 e3@9 ~@16", G: "~@6 [e3,g3]@5 [e3,g3,c#4]@5",
  H: "~ [e3,g3]@12 ~ g3@10 ~@8, c#4@13 c4@11 ~@8", I: "~@5 e3@5 ~@6", J: "~@6 e3@9 ~@17", K: "~@6 [f#3,c4]@9 d3@9 ~@8",
  L: "~@9 d3@10 ~@13", M: "~@15 c3@9 ~@8",
  N: "[~@13 b2@4 ~@6 b2@8 b2@8 b2@8 ~@11 c3@9 [c3,e3,a3]@13 ~@16, ~@57 a3@10 ~@29]/3", O: "[[b2,a3]@9 ~@7]/2",
  P: "[~@17 [g3,b3,e4]@13 [g3,b3]@8 ~@17 g3@9]/2", Q: "b3@10 ~ b3@9 [g3,b3]@11 ~", R: "~@3 b3@8 ~@8 a3@8 ~@5",
  S: "~@15 b2@11 ~@6", T: "[~@25 b2@10 [b2,b3]@9 [b2,b3]@8 [b2,b3]@9 ~@3]/2", U: "~@17 e3@11 ~@4, ~@4 [c3,a3]@3 ~",
  V: "~@7 [b2,b3]@9 [b2,b3]@8 ~ b2@7, ~@3 b3", // B
  W: "[~ b2@9 ~@10 [b2,b3]@10 [b2,d#3]@11 ~@16 c3@11 c3@8 ~@20, ~@41 [b2,a3]@19 ~@36]/3", X: "~@9 b2@11 [b2,e3]@9 b2@3",
  Y: "[~@7 b2@10 b2@11 [b2,e3,g3]@10 ~ g3@13 g3@26 [c3,g3]@50, ~@38 b2@14 [b2,e3]@43 ~@33]/4", // Em C5 E5
  Z: "[~@31 b1@47 ~ [b1,f#2,b2]@64 ~@7 e4@78 ~@28, ~@39 f#3@32 ~@4 g3@32 ~@21]/8", // B5
})).s("gm_piano").gain(0.08)

stack(piano, piano_soft)

More by Chopin Frederic