Strudelify

Nocturne No. 1 in E minor, Op. 72: Andante

Chopin Frederic

KeyB majorTempo120 bpm
0:00/0:00
// Nocturne No. 1 in E minor, Op. 72: Andante — Chopin Frederic
// 120 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 97 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 B@7 C D@2 E@7 F@6 G@8 H@2 ~ I@3 J@4 K@4 L@7 M@4 N@7 O@4 P@6 Q@5 R@6 S@8 ~@4>".pickRestart({
  A: "~@24 b3@5 e2@3, ~@11 g3@18 ~@3, ~@15 e3@14 ~@3, ~@19 c4@10 ~@3",
  B: "[~@19 b4@5 ~@20 c4@8 ~@24 b3@5 ~@18 c4@8 ~@29 d#2@5 ~@19 b3@4 ~@21 b3@4 ~@9 b3@5 a#3@4 ~@6 a#2@6 ~@5, ~@2 b2@22 ~@28 e2@20 c4@10 ~@9 a3@16 g2@17 c4@6 b3@3 c5@5 ~@12 f#3@6 c4 f#4@7 c5@6 g4@3 g3@3 [f#4,a4] e3@12 [d#4,f#4]@16 ~@3 g3@10 ~@6, ~@6 g3@18 ~@12 g3@17 ~@8 g3@12 e5@10 ~@12 f#3@13 ~@7 g3@5 [e3,e5]@16 ~@9 a3@19 a4@6 b4@10 c4@2 [e4,g4]@8 ~@13 [e4,g4]@16 ~@5, ~@10 e3@14 ~@16 e3@13 ~@13 f#5@15 d#5@55 b4@29 e2@25 ~@34, ~@14 c4@10 g5@57 f#2@28 ~@2 b2@25 ~@5 b2@25 ~@3 b2@21 ~@4 b2@11 ~@19]/7", // F#m D#m E Em
  C: "~@31 d3",
  D: "[~@16 d4@4 f#2@4 ~@15 f#3@3 ~@18 f#4@4, ~@8 b4@34 b2@4 f#3@11 g4@7, ~@8 f4@12 f#4@23 [b4,d5]@21, ~@12 e4@9 ~@3 f#3@11 c#4@8 ~@7 d4@14, ~@27 c#4@4 [e4,a#4,c#5]@12 ~@10 b3@11]/2", // Bm A#dim
  E: "[~@43 f#4@4 ~@22 f#1@6 ~@75 b3@4 e2@4 ~@46 e4@2 ~@14 [b3,a4]@3 [d#2,b4,b5], [f4,b4]@18 f3@4 f2@3 c#5@35 f#3@4 f#2@11 b4@31 c4@4 b3@3 f#3@11 g4@41 [e3,f#4,f#5]@10 b3@4 [f#2,d#4,d#5]@14 c4@4 b3@3 g2@16 [g4,g5] c4@2 a5@5, d5@13 [g#3,d5]@11 f#2@4 ~@4 c#4@4 e4@4 g4@8 a#4@28 ~@19 c4@4 b3@3 [g3,e4]@12 f#4@15 e2@10 g3@4 e3@4 c4@10 ~@4 g3@8 c4@3 [e4,e5]@11 ~@4 a3@17 ~@4 [f#4,f#5]@4 ~ [e3,f#4,f#5]@11, ~@5 d4@21 b4@21 e4@6 ~@3 a#3@20 ~@4 b2@37 ~@6 b3@9 ~@2 b2@23 ~ b2@25 b2@21 [b2,e5]@20, ~@9 b3@17 ~@3 f#3@21 ~@2 c#4@24 ~@14 d#4@27 ~ c4@11 g5@54 ~@7 f#3@14 ~@5 g3@15]/7", // B7 G#m Fdim Esus2 D#m G G#dim C …
  F: "[~@20 b3@5 ~@10 g4@3 ~@10 [b3,e4,g4]@4 b1@4 ~@14 e5@5 ~ [g4,e5]@5 b2@8 ~@90 b4@2 ~@8 d4@3, ~@4 b2@21 a4@13 g4 e3 b4@4 [c4,a4] f#4@7 [d#4,f#4]@29 d#5@32 f#4@21 ~@3 f4@10 ~ b3@8 ~@8 c3@4 f4@19 g4@5, ~@8 a3@17 b4@10 g3@18 ~@8 b3@20 f#4@16 f#3@24 ~@10 g4@16 ~@5 c4@9 ~@6 g2@6 b4@2 g3@17, ~@12 f#3@5 a4 b4@7 e2@28 ~@12 [a#3,e4]@16 ~@12 d#3@28 ~@14 g3@4 b3@4 e4@26 ~@2 d3@7 a4@3 a4@11, ~@16 c4@10 ~@5 [b2,g#4]@22 ~@3 b2@9 g4@5 b2@10 ~@9 b2@24 d5@43 ~ c5@25 ~@3 e4@7]/6", // Em C F D#m A#dim E
  G: "[~@14 g4@6 ~@2 e4@4 c#4@4 ~@14 e4@4 d2@4 ~@18 d#2@4 ~@13 f#4@4 e2@3 ~@14 e4@5 f#2@4 ~@19 f#2@3 ~@15 f#4@5 b1@4 ~@17 f#4@5 e2@4 ~@40 c#4@4 f#2@4 ~@16 b3@3, ~ g4@13 ~@6 g4@6 a4@11 a3@11 a4@11 ~ [a3,a4]@3 e4@2 a4@2 d4@5 ~@2 d#3@6 b4@3 g4@2 b4@6 b4@13 g4@9 [b4,d5]@20 f#4@5 ~@8 c#4 a#4@12 [a4,d#5]@28 ~@11 b3 b4@3 f#4@4 e4@4 [g4,a#4]@11 f#4@3 d4@2 e4@7 [d4,b4]@23, ~@5 c3@22 ~@3 c#3@20 ~@3 d3@17 a4@21 g4@10 [b3,c#5]@13 ~@7 d4@8 g4@7 [b4,c#5]@24 ~@12 a3@4 g4@9 [g4,e5]@24 f#2@5 ~@6 a#3@14 ~@11 b3@3 a#3@8, ~@33 e3@16 ~@8 f3@13 f#4@10 b3@12 ~@6 g3@16 ~@3 f#3@21 ~ f#3@11 g4@10 ~@7 f#3@19 ~@7 g3@18 ~@6 e3@17 ~@7 f#3@15, ~@37 a4@3 f4@2 a4@6 f4@22 b4@7 f#3@15 ~@2 e3@19 f#4@13 b3@12 ~@5 d4@17 ~@3 b2@24 ~@2 b2@22 ~@2 c#3@21 ~@3 d3@19]/8", // A Bm Adim Gm G Bsus2 C
  H: "[~@20 g3@5 ~@4 c#3@12 ~@23, c#4@41 ~@23, b4@7 ~@9, ~@5 c#3@20 a#4@35 ~@4, ~@4 f3@2 f#3@2 a3@5 ~@19]/2",
  I: "[~@40 c#5@3 ~ a4@29 ~@23, ~@15 [b4,d#5]@28 c#5@30 ~@23, ~@27 d#3@17 ~@52]/3", // B
  J: "[~@19 c#3@8 b1@3 ~@16 b2@4 b1@3 ~@5 g3@5 ~@40 c#3@7 ~@15 c#3@3, ~@15 c5@12 a#4@36 a#4@19 g5@28 ~@18, ~@16 a4@11 c#5@16 c#3 [b4,d#5]@6 [c#5,e5]@14 e3@20 ~@15 [d#5,f#5]@29, ~@31 b2@8 e3@12 ~@12 [e5,g5]@8 g5@6 b4@51, ~@35 g3@16 ~@5 [d#5,f#5]@10 ~@5 e5@2 b2@6 e5@31 ~@8 f#3@10]/4", // B C#m D#m Em D#m
  K: "[~ b2@4 b1@3 ~@15 b2@4 b1@3 ~@16 b2@5 b1@5 ~@44 b2@4 ~@20 b2@4, ~@5 [d#4,b4,d#5]@24 ~@5 f#3@10 [d#4,a4]@7 [e4,g#4,c#5]@54 e4@16 c#3 [d#4,f#4]@6, ~@9 f#2@11 c#3@7 ~@4 f#2@22 ~@14 b4@21 g#3@9 c#3@8 ~@3 b2@8 e3@12, ~@12 f#3@15 c#5@16 [c#3,b4]@10 ~@4 b2@18 ~@4 b1@25 [g4,a#4]@24, ~@16 d#3@11 [d#4,a4]@11 d#3@14 ~@10 g#3@23 b2@8 [e3,b4]@13 ~@6 g3@16]/4", // G#m D#dim C#m D#m C#7 Gm D#dim E5
  L: "[b1@3 ~@11 [e4,g4]@6 ~@67 b4@3 ~@26 b3@4 e2@4 ~@6 b4 ~@10 [b3,e5]@4 f#2@4 ~@17 b3@4 ~@22 a5@3 d#2@4 ~@15 b3@4 e2@3 b2@3, [e4,g4]@9 g3@13 [e4,g4]@3 b2@6 f#4@27 b3@3 a3@4 f#3@4 d#3@4 c3@5 b2@7 b1@5 b4@40 c5 [e3,b4]@4 a#4@10 d#5@25 g2@13 d#5@2 [c4,e5]@2 f#5@3 [b3,g5]@5 b5@16 c4@10 ~@3, ~@4 b2@10 e3@17 b1@8 b2@10 a3@5 c4@38 e2@12 g3@18 ~@2 b2@23 ~@2 b2@13 c4@11 ~@5 e5 f#5 e5 e3@14 ~@12 f#3@14 ~@3, ~@6 f#4@14 c#3@12 [e4,a4]@62 g5@43 c4@10 ~@7 a3@19 ~@4 g3@18 ~@8 a3@18 ~@3, ~@7 d#4@28 ~@9 f#3@5 d#4@45 ~@5 b2@9 e3@4 c4@9 ~@6 g3@11 b4@8 ~@12 f#3@15 ~ b2@21 ~@4 b2@22 ~@3]/7", // Em E5 Em E5 C Em A5
  M: "[~@17 g6@3 ~@12 f#3@5 e6@3 ~@12 e4@2 ~@11 a#2@4 ~ b2@4 d#3@7 ~@29 b4@7 b4@6 b4@5, g3@20 ~@8 b2@11 ~@3 a#5@2 g5@2 e5@2 [a#3,c#5]@2 a#4@4 b3@15 ~@34 e4@10 ~@15, ~ b5@2 b5@3 c#6@2 d#6 c4@2 e6@9 ~@4 f#6@15 ~ c#6@15 b4@26 ~@23 f#4@2 g4@2 a4@5 ~@15, ~@2 c6@12 [b3,f#6]@6 ~@17 g3@18 d#4@29 ~@5 d4@20 g3@19, ~@4 e3@16 [b1,d#5]@19 ~@4 b2@13 ~@5 b2@9 ~@25 d3@17 ~@16]/4", // A#m B5 B
  N: "[~@10 d4@4 ~@13 g#5@2 ~@24 f#4@4 ~ b5 c#6 ~ b5 ~ b5@2 ~@2 c#6@2 ~@19 d6@2 ~ d6@2 ~@2 c#6@2 ~@2 d6@2 ~@2 c#6@2 ~@4 c#6@2 ~@3 c#6@2 ~ c#6@2 ~@3 c#6@2 ~@92 b3@4 e2@4, [f#2,b4]@14 a#4@2 ~ g#4@6 d5@2 [f#3,e5] f#5@4 b2@19 g4@8 f4@16 c#6 b5 c#6 d3 b5 c#6 b5 f2 a#5 b5@29 d6 c#6 [c#4,d6]@3 d6 a#3@2 d6 c#6 [f#3,d6]@3 c6 c#6 [f#2,d6]@2 d#6 e6 f6 f#6 [f#1,g6]@6 [b5,b6]@40 ~@13 [g4,g5]@33, ~@5 f#3@10 e4@14 a#5@2 b5@14 b3@12 c#6@2 ~@3 c#6@3 c#6@2 b3@17 c#6@2 f#2@20 c#6 d6@2 [e4,a#5]@24 g#6 a6@2 a#6@3 ~@12 [a3,d#4]@27 ~ c4@13 e2@15 e3@4 c4@11 ~@2, ~@18 a#4@4 c#5@9 ~@10 d4@18 ~@4 d4@22 d6@2 c#6@2 ~ c#6@3 c#6 d6 c#4@2 d6 c#6 e4@2 c#6 g4@35 b1@6 b2@23 c4@4 b3@4 [f#3,f#4]@23 ~ b2@25 ~, ~@20 [c#4,b4]@11 ~@5 f#3@23 ~@7 b5@3 b5 c#6 b5 f3@15 ~@4 f#3@11 d6@2 ~ d6 f#4@33 ~@8 f#3@8 c4@4 b3@3 [g3,e4]@16 ~@7 b3@12 ~@6 g3@19 ~@2]/7", // B5 F#7 Dmaj7 D Gmaj7 B G Edim …
  O: "[~@19 f#2@5 ~@39 [b4,b5] ~ [b4,b5]@6 [b4,b5]@4 [b4,b5]@4 b4@3 b4@3 ~ b4@4 b4@4 ~@5 g4@2 ~@10 [b3,e4,g4]@4 b1@4 ~@5 b3@4, b2@13 [e4,e5]@3 b3@3 [d#4,d#5]@16 c4@10 e5@13 [c4,a4,a5]@4 b3@5 ~@8 a3@7 c4@3 a4 b3@8 g#4@13 [c4,f#4,a4]@8 [d#4,f#4]@13, ~@3 g3@19 ~@5 a3@12 b3@6 e4@3 ~@2 [g3,f#4,f#5]@5 [e3,g4,g5]@10 d#2@25 [e2,a4]@5 b2@22 ~@2 b2@9, ~@7 [e3,f#4,f#5]@15 ~@2 b2@22 b2@21 ~@4 b2@23 b4@3 ~ b4@3 g4 [e3,b4]@14 ~@12, ~@11 c4@11 ~@9 f#3@11 g2@25 ~@12 [f#3,b5]@17 ~@3 g3@18 ~@11]/4", // B Em E D# F F#dim D#m Gmaj7 …
  P: "[~@11 [b1,g4,e5]@5 ~@55 b2@7 ~@15 b3@4 ~@25 a#3@3 ~@15 a#1@5 ~@25 e5@4 ~@4 a#2@9 ~ d#5@4, e4@15 ~@14 d#3@9 b3@6 [c4,f#4,a4,d#5]@35 ~@11 c4@10 ~@10 e3@12 [e4,g4]@14 g2@9 b1@4 ~@8 g3@17 e5@15 ~@3, g4@11 ~@5 [f#4,d#5]@17 f#3@15 ~@7 b2@16 ~@7 b1@22 ~ b1@21 e5@11 [a#2,e5]@12 ~@4 b2@13 c4@14 ~@16, ~ a#3@15 ~@5 b1@27 ~@15 d3@14 ~@8 [f#3,d#5]@15 ~@6 b2@19 ~@5 e3@15 ~ b4@20 f#5@10 ~@16, ~@6 e5 b2@9 b2@9 b2@23 ~@3 c3@8 c3@7 ~ c3@10 ~@5 b2@15 [e4,g4,e5]@17 c4@4 b3@7 ~ g3@19 [g4,g5]@31 ~@16]/6", // Em Cdim Em D#m A#dim D#m Em G
  Q: "[a#1@14 ~@19 g#3@11 e2@27 ~@3 e5@26 ~@27 e5@5 ~@28, ~@16 e2@28 ~@29 g#5@28 d5@31 ~@28, ~@9 e5@28 ~@13 f#5@16 ~@14]/5",
  R: "[~@17 e3@4 ~ e2@3 ~@17 [e5,g#5]@7 f#5@2 ~@11 [a5,c6]@8 ~@9 c6@54 e2@3 ~@17 e5@4 ~ e5@5 ~@21 d5@4 [d5,f#5]@4, ~@5 c#4@16 d#5@34 [g#5,b5]@22 e5@56 [e5,g#5]@20 ~@19 f#5@11 f#5@4 ~@5, ~@10 [d5,f5]@11 f#5@28 e2@21 c6 a5@2 e3@5 a5@56 ~@18 g#5@5 g#5@6 g#5@29, ~@26 e3@10 a3@13 a5@8 c4@23 ~@112, ~@31 c4@19 ~@3 e3@9 d#5@18 ~@66 g#4@33 g#4@13]/6", // E Am D G#m E Dm
  S: "[~@3 f#5@2 ~@53 e3@5 ~@20 e2@4 ~@9 [a4,c5]@6 ~@4 e3@6 e2@6 ~@50 e2@5 ~@10 a3@28 a4@21 ~@24, ~ c#5@43 f#3@9 e2@10 c4@11 [g#4,b4]@2 e3@6 [a4,c5]@8 b4@6 a3@16 [g#4,b4,e5]@60 ~@2 e3@19 ~@63, ~ a4@39 a3@8 e3@5 d#5@60 ~@143, ~@5 e5@60 ~@3 a3@17 ~@4 g#4@13 [a4,c5]@11 ~@65 c4@29 ~@49, ~@11 c#4@21 e3@4 c#4@17 [a4,c5]@19 f#3@13 ~@3 e3@4 c4@21 ~@55 [d#4,a4]@43 ~@45]/8", // Am G#m Am E Am D#dim
})).s("gm_piano").gain(0.4)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  A B@4 ~ C D@3 ~@3 E@2 ~@5 F@3 G H@2 ~@6 I@7 J K@3 ~ L M ~@9 N@3 ~@13 O P@8 Q@7 ~ R@3 S@6
>`.pickRestart({
  A: "~@6 b2@23 ~@3, e2@29 ~@3",
  B: "[~@18 b3@6 ~@24 b3@4 ~@15 e3@15 ~@21 b3@5 ~@20, ~@25 e2@27 ~@76, ~@30 b2@23 ~@4 b2@25 ~@4 b2@23 ~@19]/4",
  C: "~@29 b1@3",
  D: "[~@25 b2@4 ~@28 g2@7 ~@8 g3@13 ~@11, ~@25 [d#4,f#4]@18 f#3@18 ~@35, ~@29 b1@20 b3@12 ~@6 b3@18 ~@11, ~@34 b2@23 d4@23 ~@16, ~@38 d#3@19 b4@15 ~@24]/3", // D#m
  E: "[~@11 b1@5 ~@10 a3@27 ~@11, ~@21 f#3@28 ~@15]/2",
  F: "[~@12 b1@6 ~@32 b2@6 b1@4 ~@19 c4@4 ~@9 g3@4, ~@22 b1@34 ~@5 b2@9 ~@26, ~@40 b3@17 ~@10 d3@16 ~@13]/3",
  G: "~ e3@8 ~@10 b3@7 ~@6",
  H: "[~@18 c4@8 g4@23 ~@15, ~ c4@5 ~@4 e3@17 ~@37, ~ e4@10 ~@2 e4@9 ~@10, ~@15 g3@12 ~@37]/2",
  I: "[~ f#2@5 ~@32 f#3@4 ~ f3@6 ~@9 b1@5 ~@18 b2@4 ~@20 b2@7 b1@4 ~@20 a4@3 b1@3 ~@23 [g#4,b4]@3 ~@47 b2@5 ~@4, ~@25 f#2@16 ~@16 d#4@44 c#3@13 ~@13 c#3@13 ~@12 d#3@16 b1@4 ~@10 e3@15 b2@10 e3@13 ~@4, ~@33 f3@8 ~@8 f#3@9 b4@34 f#3@21 ~@7 f#3@21 ~@6 f#3@22 [g#4,b4]@51 ~@4, ~@38 e4@22 ~@4 f#2@10 d#3@12 ~@3 f#2@25 ~@2 f#2@25 ~@2 f#2@19 b2@7 ~@4 b2@13 c#3@14 g#3@20 ~@4, ~@69 f#3@8 c#3@8 b1@11 d#3@17 ~@20 b2@8 ~@16 c#3@12 ~@8 g#3@12 b2@4 b1@26 ~@5]/7", // G#m
  J: "~@11 b2@5",
  K: "[~@43 b2@3 ~@12 d#3@13 ~@25, ~@5 c#3@15 ~@5 f#2@21 ~@4 f#2@20 ~@26, ~@16 b1@30 ~ b1@22 ~@27, ~@15 f#3@8 ~@25, ~@35 d#3@11 ~@50]/3",
  L: "~@11 b2@9 ~@12, ~@4 e3@25 ~@3, ~@7 c#3@25", M: "~@2 b1 ~@5",
  N: "[~@37 b3@11 ~@11 d4@7 ~@30, ~@4 f#3@3 ~@17, ~@22 b4@6 ~@26 e4@13 ~@29, ~@25 g2@23 ~@48]/3", O: "~ b2@3 ~@28",
  P: "[~@55 b2@5 b1@10 ~@35 e3@4 ~@51 e3@5 ~@26 c#5@4 ~@43 f#3@9 ~@9, ~@26 e3@20 [f#4,a4,b4]@30 g#4@44 g#3@4 f#3@5 e3@6 e2@21 f#3@9 ~@4 b2@19 e3@7 e2@4 ~@9 a3@17 e3@16 ~@15, ~@40 b3@8 ~@26 e4@42 b3@23 ~@8 b3@18 ~@8 b3@23 [c#5,e5]@51 ~@9, ~@45 b2@4 ~@21 b1@8 b4@61 ~@12 g#3@13 ~@14 g#3@18 ~@8 c#4@12 e3@5 e2@25 ~@10, ~@74 e1@7 ~@7 b2@4 b3@9 f#3@8 ~@3 b2@27 ~@4 b2@22 e2@18 f#3@13 ~@4 e3@12 f#3@22 a3@13 ~@9]/8", // B7 C#m
  Q: "[~@13 e3@5 ~@17 f#3@11 e2@7 ~@43 e3@6 ~@54 e3@5 e2@5 ~@22 e2@25 ~@11, ~@9 f#3@8 ~@14 a3@17 ~@5 b2@15 f#3@12 b2@12 f#3@10 ~@3 b2@21 e3@6 ~@4 b2@27 ~@61, ~@59 b3@13 e3@12 b3@19 ~@6 b3@20 d5@18 g#3@16 ~@13 a3@24 ~@24, ~@64 [g#5,b5]@39 ~@17 f#3@11 e2@21 f#3@11 ~@4 e3@16 ~ e3@8 ~@32, ~@64 g#3@12 e2@12 g#3@14 ~@12 g#3@17 ~@10 b3@22 ~@16 f#3@25 ~@20]/7", // G#m
  R: "[~@5 f#3@12 ~@75 f#3@4, ~@22 b2@17 e3@17 g#3@9 e3@7 f#4@24, ~@27 b3@16 e2@18 f#3@15 ~@20, ~@15 g#3@9 b2@14 ~@10, ~@35 f#3@17 b3@24 ~@20]/3",
  S: "[~@31 e3@7 ~@87 e4@64 ~@3, ~ e3@10 e3@9 [a3,f#4]@18 g#4@36 b2@49 b3@64 ~@5, ~@5 e2@19 f#3@14 e2@11 b3@9 f#3@10 e2@52 g#3@64 ~@8, ~@15 c4@24 ~@5 b2@9 g#3@10 e3@23 g#3@7 f#3@31 e2@64 ~@4, ~@19 d#4@20 e4@41 b3@25 e3@78 ~@9]/6", // D
})).s("gm_piano").gain(0.24)

stack(piano, piano_soft)

More by Chopin Frederic