Strudelify

Mazurka Nr. 51 f -moll op. 68 Nr. 4

Chopin Frederic

KeyF majorTempo120 bpm
0:00/0:00
// Mazurka Nr. 51 f -moll op. 68 Nr. 4 — Chopin Frederic
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 44 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@2 B@2 C@8 D@2 E@7 F@3 G@3 H@6 I@4 J@7>".pickRestart({
  A: "[[f3,c4,a4,c5] ~@5 c5 ~ [f3,c4,a4]@7 ~ f3@5 ~@10 [c4,e4,c5]@17 ~ d3@5 ~ [f4,a4] ~ [d3,a3]@7, ~@6 [f3,c4,a4]@2 ~@7 [c4,a4,f5]@6 c3@28 ~@5 [d3,a3]@2 ~@8, ~@7 c5@15 g3@27 a3@3 ~@12, ~@22 [c4,g4,e5]@11 ~@15 a4@6 ~@10, ~@29 [b3,f4,d5]@4 ~@15 f4@3 ~@5 [f4,a4]@8]/2", // F C F D5 F D5 C Bdim …
  B: "[[d3,a3,f4,d5]@7 ~@12 [a3,c4]@18 [bb2,f3,d4,f4]@3 ~@3 [f3,d4,f4]@2 [bb2,f3,d4,f4]@7 [bb2,d4,bb4]@6 ~ f2@5, ~@7 a2@30 ~@5 bb2@2 ~@15 f3@2 ~@3, ~@7 [e3,e4,c5]@11 a4@19 ~@21 a4@6, ~@16 [ab3,d4,b4]@5 ~@31 f3@3 ~@3 c4@2 ~@4]/2", // Dm Am Bb Dm Bb C Abdim
  C: "[[f2,f3,bb3,g4] ~ a3@7 [bb2,d4,bb4]@6 [f3,a4]@5 f3 g4 ~ a3@6 ~@4 g3@5 [g3,c4,e4]@7 f3@3 [e3,c4]@20 c5@6 ~@3 c4@2 ~@5 [c4,f5]@7 ~@11 [e4,c5]@16 ~ [d3,f4,a4] ~@5 [d3,a3,f4] ~ [d3,a3,f4,a4]@8 [d3,f4,d5]@7 ~@11 [a3,c4]@20 [bb2,f4]@3 ~@2 [bb2,f4] [f3,d4] ~ f3@6 ~ [bb2,d4]@6 ~ [f2,c4]@2 ~@4 g4@2 [a3,f4]@8 ~ [bb2,d4]@6 ~ f3@5 [bb3,g4]@2 [f3,a3,f4]@8 ~ bb2@8 d4@6 [c4,e4]@7, ~ f4@8 ~@6 c4@2 ~@3 bb3@2 ~@7 b3@9 ~@7 d4 ~@28 [c4,c5]@3 ~@21 b3@7 ~@14 a3@2 ~@22 e3@9 a4@20 ~@15 bb4@7 a4@9 ~@8 bb4@8 ~@37, ~ f2@3 ~@11 f2@14 [g2,d3]@5 ~@4 c3@30 ~@7 f3@2 ~@14 c3@27 ~@25 a2@30 ~@7 [bb2,d4,f4]@8 f3@2 ~@5 f3 ~@4 [f2,bb3]@4 ~@15 f2@16 ~@21, ~@2 f3@2 ~@5 f3@3 ~@10 [f3,f4]@8 g4@9 ~@37 c5@9 ~@6 [g4,e5]@14 ~@37 [e4,c5]@13 ~@63 a4@9 ~@7 d4@4 ~@18, ~@102 c4@9 ~@38 ab3 d4@5 ~@18 d4@5 ~@41 c4@9 ~@6 [g3,g4]@11 ~@11]/8", // Gm7 Bb F C F5 C Dm Am …
  D: "[f4@18 ~@4 [a3,a4,a5]@6 a5 ~@7 [d4,d5,f5]@7 [db4,d4,e4,db5,d5,e5,f5]@6 [d4,b4] [db4,db5]@8 ~ [e3,db4]@5, ~@22 a2@27 ~@15, ~@28 [a3,a4]@2 [a3,a4]@21 ~@13, ~@29 a5@20 ~ [e4,e5]@14, ~@36 f4@13 [b3,d5]@2 ~@7 [a4,db5]@6]/2", // A Dm G Db Dbm A E Bm …
  E: "[~@2 [a4,a5]@2 ~@4 [a4,a5] [a4,a5]@7 [d4,f4,d5,f5]@7 [db4,e4]@2 ~@4 [b3,d4,d5]@2 [e3,b3,e4,b4]@18 ~ [a3,a4,a5]@6 [a4,a5] ~@11 d5@6 ~@2 e4@5 [b4,d5] ~ [db4,e4,e5]@7 [db4,db5]@9 a5@6 ~ [a3,a4,a5]@2 ~@8 [f4,d5,f5]@9 e4@2 ~@9 db4@3 [a3,db4,a4]@30 ~ [c3,c5]@9 ~@2 f3@7 [f3,a4,f5]@7 ~@5 [b3,d5]@3 [e4,c5]@14 [f4,a4] ~@5 [d3,f4,a4], ~@2 [a2,a3] ~@4 a3@2 a3@14 [db5,e5]@9 ~@18 a2@8 a5@17 [db4,db5,e5]@6 b3@2 ~@98 c4@3 ~@4 c4@2 ~@5 [c4,g4,e5]@9 ~@13 a3@2 ~@3 a3@2, ~@59 a3@27 ~@22 a3@11 ~@16 [a3,a4]@4 ~@56 [c3,g3]@22 ~@7, ~@67 f5@7 [d5,f5]@7 ~ db5@7 ~ a4 ~@34 e5@45 ~@9 c5@9 ~@36, ~@68 f4@13 ~@54 db5@34 bb4@11 a4@7 ~@16 c4@8 ~@13]/7", // A Dm Dbm Bm E5 A Bm Dbm …
  F: "[~ [d3,a3,f4]@7 [d3,a3,f4,d5]@7 ~ [e3,e4]@6 [d4,b4]@2 [a3,c4,a4]@8 ~@9 [bb2,f3,d4,f4]@5 [d4,f4] ~ [bb2,f3,d4]@7 [bb2,d4,bb4]@7 [f3,a4]@2 ~@3 [bb3,g4]@2 [a3,f4]@6 ~ bb2@6 [f3,a4]@2 ~@3 [f3,bb3,g4]@2 [f3,a3,f4]@7, ~ a4@14 c5@7 ab3 ~@23 [bb2,f3]@2 ~@7 f3@3 ~@4 f2 ~@13 f3@3 ~@3 f2@10 ~@4, ~@16 a2@31 f4@8 ~@7 c4@5 f3@5 ~@3 [d4,bb4]@7 c4@5 ~@9]/3", // Dm E G Am Bb Dm Bb F …
  G: "[[bb2,g3,d4,g4]@7 ~@5 c4@5 [a3,f4]@22 ~ bb3@6 ~@11 f4@6 bb3@5 ~@12 bb3@5 bb3@5 ~ bb3@5, ~@7 [g3,d4]@4 e4@6 ~@62 f4@6 ~@5 f4@5 ~, ~@8 c3@9 f2@7 ~@72]/3", // Gm Dm G5
  H: "[~@5 [bb3,f4]@5 ~ [bb3,f4]@3 ~@20 e6@2 ~ f4@5 ~@12 d6@2 ~ f4 ~@4 [bb3,f4,c6]@3 a5@2 ~ f5@4 ~@2 [bb3,f4]@5 ~@17 e6@3 [bb3,f4]@5 ~@7 e6@3 [bb3,f6]@3 d6@2 [bb3,f4,bb5]@3 d6@3 ~ c4 ~ bb5@5 [bb4,g5]@11 [f4,a4,f5]@5 [f3,f4,c5] ~@17 g3@2 ~@7 c4@6 ~@7 [d3,a3,f4,a4]@3, ~@10 f5@2 ~@5 f4@5 [bb3,f4]@5 bb5@9 ~@6 bb5@15 bb5@9 ~@6 f5@22 [bb3,f4,c6]@5 ~@5 [bb3,f4]@5 [bb3,f4,c6]@4 ~ f4 ~@10 [bb4,c6]@7 ~@19 [f4,c5]@16 [g4,e5]@8 [e4,c5]@14 ~@3, ~@11 f6@11 f6@14 ~ f6@10 [bb3,f4]@2 e6@7 ~@3 d6@6 ~@9 f6@10 f6@14 ~ f6@14 ~@54 c3@22 ~@3, ~@19 e6@13 [bb3,f4,c6]@4 ~ bb3@2 ~@3 [bb3,f4]@5 c6@10 ~@25 e6@7 [bb3,f4]@2 d6@7 ~@8 d6@7 ~@47 c4@13 [b3,f4,d5]@5 ~@14, ~@24 d6@3 f4@2 d6@7 ~@8 d6@8 [f4,f6]@5 ~@10 [bb3,f4]@6 ~@6 [bb3,f4]@5 [bb3,f4]@2 d6@3 bb5@9 ~@6 bb5@9 ~@47 [f3,a4,f5]@19 ~@13]/6", // Bb5 Bbsus2 Bb5 Eb F F5 Dm Bb5 …
  I: "[~ f4 [d3,a4] ~ d3@6 [d3,a3,f4,d5]@6 ~ [e3,e4,c5]@6 [ab3,d4,b4] ~ [c4,a4]@14 [bb2,f3]@2 ~@3 [bb2,f3,d4] ~@2 d4@7 ~ [bb2,f3,d4]@6 ~ [f2,f3,a4] ~@5 f3@2 f4@7 ~ [bb2,d4]@6 ~@6 [f3,bb3,g4] ~ [f3,a3,f4]@7 d3@3 ~ g3@3 ~ [g3,c4,e4]@3 ~@7 [e3,c4]@7 ~@4, ~@3 a4@13 ~@9 a3@7 ~@7 [d4,f4] ~@6 f4@15 c4@9 a3@4 ~@4 f3 ~@5 [f3,c4]@2 ~@21 c3@15 ~@6, ~@3 f4@7 ~@7 a2@16 ~@21 bb4@7 ~@6 [bb3,g4]@4 ~@6 bb4@6 ~ a4@6 ~@24 d4@4 ~@10, ~@85 f2@10 ~@4 [g2,b3,g4]@8 ~@8 f3@4 ~@9]/4", // D5 Dm C Abdim F Bb5 Bb F …
  J: "[~@4 [a4,c5]@3 ~@2 [f3,c4,a4,c5] ~ [f3,c4,a4]@7 [c4,a4,f5]@7 [c4,e5]@3 ~@4 [b3,d5]@2 ~ c4@6 ~@7 [a3,f4] ~@4 [d3,a3,f4,a4]@2 [f4,a4]@7 f4 d3@7 ~@7 [ab3,d4,b4]@2 ~@15 [bb2,f3,d4,f4]@5 [bb2,f3,d4,f4] ~@2 f3@7 [bb2,d4,bb4]@7 [f2,f3]@6 [f2,f3,bb3,g4]@2 ~ f3@9 ~ f3@3 ~@9 [f3,bb3,g4]@2 [f3,a3,f4]@10 ~ [g3,d4]@4 ~@4 [c3,g3,d4]@6 e4@7 f4@32 ~@11, ~@11 c5@14 g3@16 ~@14 a3@2 ~@5 [a3,d5]@7 ~ a2@16 ~@16 bb2@2 ~@30 [bb2,d4,bb4]@7 ~ [f2,c4,a4]@9 ~@9 bb2@8 ~@56, ~@25 g4@9 e4@8 ~@28 [e3,e4,c5]@10 c4@21 [d4,f4]@8 ~@7 [c4,a4]@9 ~@34 g4@9 ~@56, ~@31 f4@3 c5@13 ~ a4@5 ~@26 [a3,a4]@7 ~@23 f3@2 ~@13 [a3,f4]@10 ~@90]/7", // Am F C Bm Dm F Abdim Bb …
})).s("gm_piano").gain(0.32)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<~@6 A@2 B C D E F ~ G H@2 I@3 J ~@2 K L@3 M N ~ O P Q R S T ~ U@2 ~ V W X@2>".pickRestart({
  A: "[~@5 [f3,a4]@5 a4@2 ~ f3@7 [f3,a4]@6 ~@9 [f4,d5]@6 ~@20 a4 ~@2, ~@5 c4@3 ~@4 a4@8 ~@7 g3@27 ~@10, ~@27 c4@11 ~@26]/2", // F Dm
  B: "~@7 a3@7 ~@8 b4@5 ~@5", C: "~@13 f3@2 ~@17", D: "~@12 f2@8 f3@3 ~@9, ~@11 f3@3 ~@18",
  E: "f3 ~@9 c3@6, ~@19 g3@8 ~@5", F: "~ f3@17 ~@14, [f2,a3]@9 ~@7", G: "~@29 b4@2 ~",
  H: "[~@36 d4@6 d4@7 d4 ~@8 e3@2 ~@4, ~@26 a4@23 ~@15]/2",
  I: "[~@4 [a3,a4]@6 ~@16 a4@2 ~ [db4,db5]@11 ~@4 a2@30 [g3,c4,e4]@11 ~@11, ~ a2@6 ~@17, ~@3 [a4,a5]@4 ~@17, ~@5 d4@2 ~@17, ~@23 a3@8 ~@65]/3", // A Db C A
  J: "~@4 f4@2 ~@7 d3 ~@2", K: "~@3 f2@9 ~@20",
  L: "[~@17 f3@22 ~ f4@6 [bb3,f4]@6 [bb3,f4]@6 bb3@5 f4@5 [bb3,f4]@6 [bb3,f4]@6 ~@5 f4@5 ~@6]/3", // Bb5
  M: "[bb3,f4]@5 ~@12 bb3@5 ~@5 bb3@5", N: "~@20 bb3@4 ~ bb3@5 ~@2", O: "~@29 e4 ~@2",
  P: "~@5 [c4,e4] ~@15 [c4,a4] ~ [f3,c4,a4]@9", Q: "~@10 g3@19 ~@3", R: "~@2 a3 ~ a3@6 ~@22",
  S: "~@12 f4 ~@2 [bb2,f3]@8 ~@9", T: "~@4 f2@3 [f2,f3]@3 ~@22",
  U: "[~@4 c4@2 ~@13 f3@6 ~ c3@22 d3 ~@6 d3@2 ~@7, ~@4 f3 ~@59]/2", V: "~@29 f2@3", W: "~@14 f3@5 ~@13",
  X: "[~@14 c4@7 ~ [f2,c3,f3,a3]@31 ~@11]/2", // F
})).s("gm_piano").gain(0.16)

stack(piano, piano_soft)

More by Chopin Frederic