Strudelify

Etude No. 24 in C minor "Ocean", Op. 25 No. 12

Chopin Frederic

KeyA♭ majorTempo120 bpm
0:00/0:00
// Etude No. 24 in C minor "Ocean", Op. 25 No. 12 — Chopin Frederic
// 120 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 26 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 · "Track-1"
const piano = note("<A@3 B@8 C@2 D@2 E@7 F@4>".pickRestart({
  A: "[~@21 [eb3,eb5]@2 ~ ab2@2 ~@13 eb3@2 [ab2,c5]@2 ~@4 [eb3,ab4]@2 [ab2,f4]@3 ~@4 [eb3,eb5]@2 g4@3 ~@4 g4@2 ab4@2 ~@6 eb3@2 ~ ab2@3 ~@13 [eb3,eb5]@2, ab4@11 ab4@7 g4 ab2@4 ~@9 [db4,f4]@4 ab2 g4@4 ~@4 [c4,eb4]@4 ~@5 [db4,g4]@4 ~@4 db4@5 ~@6 c4@5 ~@5 c4@6 [eb3,bb4]@2 g4 ab2@4, ~@8 [c4,eb4]@15 ~@5 [c4,eb4]@11 eb5@4 ~@18 f5@7 ~@6 eb4@3 ~@5 eb4@13 ~, ~@14 [db4,f4]@9 c5@2 ~@5 ab4@10 ~@23 eb5@5 ~ bb4@8 ab4@7 ~ ab4@11, ~@16 [eb3,bb4]@7 ~@3 [eb3,ab4]@4 eb3@4 [eb3,bb4]@6 ~@3 [eb3,ab4]@4 ~@5 [eb3,bb4]@6 ab2 ~@11 eb3@5 ~@10 eb3@2 [db4,f4]@8 ~]/3", // Eb Ab Ab5 Db Eb Db Cm Dbdim …
  B: "[~@15 [eb3,eb5]@2 [ab2,c5]@2 ~@4 [eb3,ab4]@3 [ab2,f4]@2 ~@4 [eb3,eb5]@2 ~ [ab2,g4]@2 ~@5 g4@2 [ab2,ab4]@2 ~@6 bb4@3 ~ c5@2 ~@6 [g3,g5]@2 [ab4,c5]@2 c4 ~@4 f5@2 c3 ~@6 [c4,g5]@2 [ab4,c5]@2 ~@5 [c4,f5]@3 ~@8 [b3,f5]@2 ~@2 c4 ~@3 [c4,eb5]@3 ~@2 bb3 ~@4 [bb3,db5]@3 ab2@3 ~@5 [ab3,ab4]@3 ~@15 f4 [ab4,c5]@2 [c4,f5]@2 c3@2 ~@5 [c4,g5]@2 [ab4,c5]@3 ~@8 c5@4 ~@16 [d5,f5]@3 ~ eb2@3 ~@12 [bb4,db5]@4 ~@2 db4@8 ~@18 [eb3,eb5]@3 c4@2 ~@5 eb3, c5@10 eb3 bb4@2 [ab2,g4]@4 ~@2 [eb3,ab4]@4 ~@5 eb3@4 ~@5 [eb3,f5]@7 ~@3 [eb3,bb4]@5 ~@3 [c3,bb4]@4 ~@13 c4@2 ~@4 c4@4 ~@2 f3@10 [d3,ab5]@11 ~@3 [eb4,d5]@5 ~@4 [eb4,eb5]@6 ~@5 c5@9 ~ db5@7 f3@9 ~@5 [e4,bb4]@6 ~ c4@2 c5@2 f5 c4@6 ~ [f3,c6]@11 [f5,ab5]@2 ab4@6 g4@4 db5@12 ~@4 e4@10 ~@6 eb4@7 eb3@3 [ab2,g4]@6 ~@2 eb3@4 ~, ~@2 [eb3,ab4]@4 ab4@11 ~@11 bb4@7 ~@15 ab4@6 ~@2 db5@8 ~@2 ab5@7 ~@2 db5@7 ~@2 ab5@8 ~@10 eb5@6 ~@13 b4@12 bb4@5 [e4,bb4]@5 [ab4,c5]@3 c4@2 ~@4 [bb4,c5]@4 c5@5 ~@5 [f4,ab4]@9 ~@4 bb4@3 [bb3,g5,bb5]@14 ~@9 [g3,c5,eb5]@12 ~@11 eb3@6 ~@2 [db4,f4]@10 ~@4 [ab2,eb4]@4, ~@4 [c4,eb4]@13 ~@4 [c4,eb4]@5 ~@23 c4@6 ~@6 [e4,bb4,c5]@6 ~@3 [f4,ab4,c5]@5 [bb4,c5]@4 [bb4,c5]@5 ~@4 [f4,c5]@6 ~@3 [b3,ab4]@7 eb3@9 [eb3,f5]@10 ~@3 eb3@9 ~@3 c4@2 c5@3 [c4,g5]@7 ~@6 c4@5 ~@2 f3@11 bb2@12 ab4 d4@11 ~@6 g4@6 g4@9 ~@8 ab4@9 ab4@12 ~@2 ab4@4 ab4@2, ~@6 eb3@2 [db4,f4]@9 ~@13 [db4,g4]@4 ~@6 [db4,eb5]@4 ~@7 eb3@4 ~@4 g3@5 ~@2 f3@9 ~@5 e4@5 ~ c4@3 ab4@5 ~@5 [f4,g5]@5 ~@2 ab4@8 ~ g4@8 ~@3 ab4@2 c4@6 c3@13 ab5@7 ~@3 db5@8 ~ ab5@11 ~ ab5@4 ab3@16 ~@3 [bb2,f5]@18 ~@14 ab2@7 bb4@8 c5@8]/8", // Eb Ab Ab5 Db Eb Abmaj7 Ab G …
  C: "[~ db4@2 ~@4 [eb3,eb5]@3 c4@2 ~@4 ab4@2 db4@2 ~@5 eb5@2 [db4,g4]@2 ~@4 [eb3,g4]@3 ab4@2 ~@4 [eb3,eb4]@3 ~ c4 ~@3 [ab2,eb4]@4 f4 db4 ~@5 eb3@2 [c4,c5], f4@9 ~@9 f4@9 ~@9 c4 ~@3 ab4@4 ~ ab4@7 ~@6 g4@5 ~, ~@3 bb4@7 c5@8 ~@13 eb5@4 ~@3 bb4@6 ~@12 bb4@7 ~, ~@3 eb3@4 ~@5 [eb3,ab4]@4 eb3 ~@4 [eb3,bb4]@6 ~@2 [eb3,f5]@6 ~@4 eb3@3 ~@15 eb3@4 ~@3, ~@5 [ab2,g4]@5 ~@4 [ab2,eb4]@4 ~@5 [ab2,g4]@4 ~@5 ab2@4 ~@5 ab2@3 ~@16 eb5@3 ~]/2", // Eb Dbdim Eb Ab5 C Ab5 Eb5 Ebsus2 …
  D: "[~@5 ab4@3 ~@7 [f3,f5]@3 ~@2 f3 [bb2,f4]@2 bb4 f3 ~@9 eb4@2 ~@4 [g3,c5]@2 gb4@2 ~@5 [ab3,ab5]@2 db3@2 ab3@3 ~@2 ab5@2 db3@2 a4@2, ~ [eb3,ab4]@4 eb3 ~@2 [eb4,gb4]@10 [db4,db5]@3 ~@5 [f4,ab4]@7 g3@2 ~@2 g3@3 ~@4 ab3@5 ~@7 [f4,ab4]@4 ~@4, ~@3 [ab2,eb4]@4 ~@3 f3@5 ~@13 [g3,d5]@4 g5@2 eb5@7 ~@4 eb5@7 ~ db5@7 ~@4, ~@11 c5@8 bb4@4 ~@7 g4@4 ~@2 c5@3 ~@3 a4@9 f5@8 ~ f5@4, ~@13 [a2,f4]@5 ~@13 b2@4 ~@3 [c3,g4]@4 ~@5 [c3,ab4]@4 ~@6 ab3@3 ~@2 a3 ~]/2", // F Bb5 C5 Ab Ab5 Ebm Db Fm …
  E: "[~@2 [a3,a5]@2 db3@2 ~@4 [bb3,bb5]@3 d3@2 ~@4 b5@2 eb3@2 ~@4 [eb4,c6]@3 ~@6 [eb4,c6]@2 f3@2 ~@14 [d4,d6]@2 eb3@2 ~@15 [eb4,e6]@2 eb3@2 ~@19 eb3@2 ~@14 [d4,bb5]@3 eb3@3 ~@18 c6@5 ab5@7 ~@12 eb6@3 ~@15 eb6@2 ab2@2 ~@4 ab5@4 e5@12 c6 ~@5 ab5@4 e5@12, [f4,db5]@4 f5@9 f5@8 ab5@8 ~@9 ab5@6 [db4,db6]@5 [b3,d5]@2 ab5 ab4@4 ~@3 [c4,eb5]@9 [c4,eb5]@7 ~@2 [c4,eb5]@10 [eb3,c6]@9 bb5@10 [eb3,ab5]@4 [ab4,f5]@5 ~@6 ab4@2 db6@19 ~@11 [db4,f5]@9 ~@6 eb3@3 [db4,f5]@2 [eb3,bb5]@2 g5 ab2 eb3@3 ~@2 [eb3,ab5]@4 ~@38, ~@6 bb4@7 ~@6 b3 ~@3 [c4,c5]@6 ~@3 [c4,c5]@6 ~@2 db4@3 ab4@4 [e3,b5]@9 ~@8 [eb4,eb6]@11 ~@5 [a4,a5]@9 [c4,eb5]@5 [eb4,eb6]@4 ~ bb3@2 ab5@2 d6@12 ab5@11 ~ g5@15 ~@8 ab5@7 ab2 g5@4 ~@3 ab5@4 ab5@11 ~@4 eb5@6 ~@15 eb5@7 ~@12, ~@6 bb3@4 ~@5 [ab3,b4]@6 ~@9 [gb3,a5]@8 ~@4 f5@14 c6@10 [eb3,c6]@9 ~@8 f6@14 ~@4 ab4@2 d4@5 [bb3,bb4]@8 ~@2 [bb3,db5]@9 ~@2 [bb3,db5]@12 ~@7 [c4,eb5]@14 ~@5 [c4,eb5]@13 ~@10 db4@2 ~@32, ~@8 [f4,db5]@6 ~@3 [f4,d5]@4 ~@4 [ab4,eb5]@4 ~@5 [a4,eb5]@4 ~@2 db5@16 ~@5 [ab4,ab5]@9 ~ [ab4,ab5]@4 c6@8 eb4@8 a5@6 ~ d5@17 ~@5 f5@6 eb3@3 ~@3 eb5@9 ~@9 eb3@5 bb5@7 ~ c6@17 c6@10 ~@13 ab5@5 ~@16]/7", // A Bb Cm D Emaj7 Gm Db Bm …
  F: "[c6 ~@33 ab5@25 ~@5, ~@2 ab5@4 eb3@5 ~@5 eb6@19 eb6@16 eb5@9 ~@6 eb4@52 ~@10, ~@4 [c4,eb5]@9 eb5@10 ~@9 eb5@7 ab5@4 ab5@2 c5@20 c5@53 ~@10, ~@9 [eb4,c5]@19 ~@9 [ab2,c6]@16 eb6@22 ~@53, ~@41 [c4,eb5]@7 ab5@10 ~@5 ab5@5 ~@60]/4", // Cm Ab Cm
})).s("gm_piano").gain(0.26)

// chords · piano · "Track-1" · soft notes
const piano_soft = note("<A B C D E ~@4 F@2 G H ~@4 I J K L M N@4>".pickRestart({
  A: "~@6 eb3@5 eb3@5 ~@16, ~ ab2@18 ~@13", B: "~@7 eb3", C: "~@2 eb3 ~ ab2@2 ~@2 ab4@5 ~@4 eb3@4 ~@11", D: "ab2 ~@15",
  E: "~@11 eb3@2 ~@19",
  F: "[~@22 c4@5 ~@4 [g4,bb4]@4 ~@9 eb3@4 ~@16, ~@13 eb3@14 ~@37, ~@18 bb3@8 ~ bb3@8 c4@21 ~@8]/2", G: "~@25 eb3@2 ~@5",
  H: "~@16 eb3@4 ~ ab4@2 ~@4 ab2@5, ~@21 eb3 ~@10", I: "~@7 a4", J: "~@28 db4@3 ~",
  K: "~@9 db4@5 ab2@3 eb3@5 ~@5 eb3@5, ~@5 g4@8 ~@19", L: "eb3 ab2 eb3@2 ~@9 eb3@2 ~, ~@12 c4@3 ~",
  M: "~@7 [eb3,eb6]@2 ab2@2 ~@4 eb3@5 db4@3 ~@6 [eb3,eb6]@3, ~ eb3@4 g5@4 ~@4 c4@7 ~@7 [ab2,g5]@5, ~@2 bb5@7 ~@15 bb5@8, ~@4 ab2@5 ~@2 eb3@4 ~@9 eb3@5 ~@3", // Eb Abmaj7
  N: "[ab2@2 eb3@4 ab5@5 ~@24 eb3@5 eb3@4 ~@18 eb3@6 ~@13 [ab2,ab6]@37 ~@10, ~@12 ab5@7 [ab2,c6]@18 ~@7 eb3@4 eb3@5 eb3@3 ab2@19 [eb3,eb6]@43 ~@10, ~@12 eb3@4 eb3@5 [eb3,ab5]@4 [eb3,ab5]@5 ab5@9 ~@17 c6@62 ~@10, ~@14 c4@9 [c4,eb5]@8 eb3@2 c4@8 ~@10 c4@7 [eb3,ab5]@2 [c4,eb5]@11 eb5@47 ~@10, ~@28 [eb4,c5]@18 eb4@20 ~@2 eb3@4 c4@47 ~@9]/4", // Ab Eb Ab5 Cm Ab5 Cm
})).s("gm_piano").gain(0.15)

stack(piano, piano_soft)

More by Chopin Frederic