Strudelify

"General Lavine" - excentric

Claude Debussy

KeyD minorTempo120 bpm
0:00/0:00
// "General Lavine" - excentric — Claude Debussy
// 120 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 73 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@4 C D E@3 F G@2 H@2 I J@3 K L@5 M N@2 O@2 P Q@3 R S@7 T@5 U@3 V W X@3 Y@2 Z AA AB@5 ~ AC AD AE AF AG AH AI AJ
>`.pickRestart({
  A: "~@2 g4 ~ g4 c5 ~@16 [eb4,gb4,bb4] ~@4 [g4,b4,d5] ~@4, ~@6 c4@21 ~@5", // Ebm G
  B: "[[bb4,db5,f5] ~@4 [b4,d5] ~@4 gb4 ~@4 g4!2 c5 ~@17 [eb4,gb4,bb4] ~@4 [g4,d5] b4 ~@4 [bb4,db5,f5] ~@4 [g4,b4,d5] ~@4 [eb4,gb4,bb4] ~@3 g4!2 c5 ~@10 [db4,f4,ab4] ~@7 g4 ~ g4 c5 ~@11 [bb3,db4,f4] ~@7 g4 ~ g4 c5 ~@15 [db4,f4] ~@4, ~@18 c4@22 ~@23 c4@19 ~@3 c4@20 ~@3 c4@18 ~@2, ~@123 ab4@2 ~@3]/4", // Bbm Bm Ebm G5 Bbm G Ebm Db …
  C: "~ [bb3,d4,f4] ~@4 [g3,d4] ~@4 [eb3,gb3,bb3] ~@4 [c3,e3] g3 ~@4 [ab2,b2,eb3] ~@6 c3 ~@2", D: "c2 ~@21 c1 ~@9",
  E: "[~@31 f1@2 ~@3 db4@3 ~@2 c2 ~@5 d2 ~@6 g2@2 a2 ~ g2 ~@2 f2 ~@4 d2 ~@4 f1 ~@4 db4@2 ~@3 c2@2 ~@3 d2 ~@4 f2@2 g2@3, ~@18 d4@17 ~@13, ~@51 f2@5 ~@20 [c3,d3,a3,d4]@20]/3", // D7
  F: "~ c3 ~@2 d3 ~@4 f3 ~@4 g3@5 [c4,d4] ~@2 f3 ~ d3@4 [c4,d4] ~ f3 ~, a2@2 ~@22 c2 ~@7", // Csus2
  G: "[~ [f1,f2] ~@3 d4 c4 ~ f3 ~ [c1,c2] ~@4 [c4,d4] a3 ~@2 ab3 ~@5 g4@2 ~@3 c4@8 ~@2 d4@4 ~ g3!2 c4 ~ c3 ~ g2 ~ c3 ~@2 c2 ~@2 f1@5, ~ g3@4 ~@5 d3@5 ~@4 b3@20 c4@5 ~@20, ~@19 d4@19 [g3,bb3]@6 ~@20, ~@19 c4@10 c5@15 ~@20, ~@27 g4@17 ~@20]/2", // F C Csus2 Gm
  H: "[db4@4 ~ c2 ~@4 d2 ~@4 f2@2 g2@2 ~ a2@2 g2 ~ f2 ~@5 d2 ~@9 db4@5 c2 ~@4 d2 ~@4 f2@2 g2@2 a2 ~ c3 ~ d3, [c3,d3,d4]@35 f1@8 ~@21, a3@16 ~@4 [c3,d3,a3,d4]@9 ~@3]/2", // Csus2 D7
  I: "~@4 f3 ~@5 [d1,d2] ~ a3 ~ [c4,f4,a4] ~ d4 ~ [g1,g2,e4] ~@5 [f4,g4] ~@4 [a1,a2] ~@2, ~@9 g3@2 ~@13 d4@8, ~@12 b4 ~@3", // D F C Fsus2 A
  J: "[~@2 [c4,e4,g4] ~ b3@2 ~ [b1,b2] ~@3 [eb4,gb4] b3 ~@3 [ab1,ab2] ~@4 [c4,eb4] ~ g3@2 [d2,d3] ~@4 [a3,c4,d4] ~@4 [ab1,ab2] ~@4 c4 ~ g3@2 [d2,d3,gb3] ~ gb3 ~@2 [a3,c4,d4] ~ ab3 ~@2 [ab1,ab2] ~@4 eb4@2 ~@3 [d2,d3] ~@4 a3 ~@3 [ab1,ab2] ~@4 [ab3,c4,eb4] ~@2 g3 gb3 [d2,d3] gb3@2 ~ [a3,c4,d4] ~ ab3 ~@2 g3 ~ gb3 ~, ~@6 a3@14 ~ ab3@2 ~@2 gb3@14 [ab3,eb4]@2 ~@18 ab3 ~@3 gb3@15 ~@18]/3", // C B Ebm Ab Cm D D7 Ab …
  K: "ab3 ~@2 g3 ~ gb3 ~ f3 ~ g3 ~ gb3 ~@2 f3 ~ e3 ~ gb3 ~ f3 ~@2 e3 ~ eb3 ~ f3@2 e3 ~@2",
  L: "[~@20 c3@6 ~@5 [a3,gb4]@10 ~@21 c6@26 bb2 ~@2 ab2 ~ gb2 ~ f1@6 [c3,db4]@5 c2 ~@4 d2 ~@4 f2@2 g2@2 ~ a2@2 g2 ~ f2 ~@5 d2 ~@8 db4@4 ~ c2 ~@5 d2 ~@3 f2@2 g2@2 ~, c3@20 ~@21 c3@24 ~@36 a3@22 ~@13 f1@7 ~@17, ~@10 [eb4,gb4,b4,gb5,b5]@14 ~@7 [b4,gb5,b5]@35 ~@35 d4@33 ~@6 [a3,d4]@17 ~@3, ~@11 a3@13 ~@27 [a5,d6]@16 ~@93]/5", // D Dbmaj7 B B5 D5
  M: "a2 ~ c3 ~ d3 ~@5 f3 ~@4 [eb1,eb2] ~@6 f4 ~ [ab1,ab2] ~@4 c4 ~ f4, ~@15 g4@6 ~@4 d4@7", // Eb Ab
  N: "[~@2 [eb1,eb2] ~@3 [g3,db4] ~@2 f4 ~ [ab1,ab2] ~@4 c4 ~ bb4 ~@2 [f1,f2] ~@3 eb4 a3 ~ f4@2 [bb1,bb2] ~@3 ab3 c4 ~ f4 ~ [a1,a2] ~@4 [g3,db4]@2 f4@2 [d2,d3] ~@4 [gb3,c4]@2 bb4 ~@6 c5 ~, ~@2 g4@7 ~@2 d4@5 ~@5 g4@7 ~@2 d4@8 ~ g4@5 ~@4 d4@5 ~@11]/2", // Eb Gdim Ab F Bb A Gdim D …
  O: "[c5 ~ f4@5 ~@13 c4 c4@2 ~ f3 ~ f2 ~ c3 ~@2 c2@2 [f1,f2]@2 ~@29, ~ f5@3 ~@3 [bb3,db4,g4]@16 f4@2 ~@39, ~@17 [b3,d4,ab4]@7 ~@40]/2", // F Gdim Abdim
  P: "bb4@7 [g4,d5]@6 [bb4,f5]@7 d5@12, ~@13 db5@3 ~@16", // G5 Bb5
  Q: "[~@17 gb4@2 ~@22 eb6@11 ~@6 [f4,bb4]@2 ~@24 [f5,f6]@9 ~@3, ~@8 [c4,g4]@45 ~@7 bb4@4 ab4@5 [ab4,bb4]@24 ~@3, ~@16 ab4@2 ~ [gb4,ab4]@4 [gb4,ab4]@4 gb4@25 [d4,a4]@41 ~@3, ~@21 [gb3,ab3]@4 ab3@4 ab3@24 ~@9 [ab3,bb3]@4 ~ [ab3,bb3]@5 [ab3,bb3]@21 ~@3]/3", // Bb5 F C5 Absus2 Gbsus2 D5 Gbsus2 Absus2
  R: "~@2 [b4,eb5,gb5] ~ [b4,eb5] ~ [ab4,c5]@2 [ab4,c5,eb5] ~ [b4,eb5,gb5] ~ [b4,eb5] ~ [db5,f5,ab5] ~@4 [b4,eb5] ~@3 [g4,b4,d5] ~@4 [bb4,db5,f5] ~@3, ~@4 gb5@2 eb5 ~@5 gb5@2 ~@5 gb5@2 ~@11", // B Ab B Db B G Bbm
  S: "[[f4,a4,c5] ~@4 [eb4,gb4,bb4] ~@3 [bb3,d4,f4] ~@3 [db4,e4,ab4] ~@4 [g3,b3,d4] ~@3 [bb3,db4,f4] ~@4 ab1@2 ~@7 [g3,b3,d4]@5 [bb3,db4,f4]@3 ~@6 d3@4 ~@5 d3@4 ab1@9 ~@38 [db4,gb4]@7 ~@2 g4@10 ~ ab3 ~@3 [gb3,ab3]@4 ~@21 [gb4,a4]@3 ~@3 [ab4,bb4]@2 ~@4 [ab4,bb4]@4 ~@14 f5@9 ~@4 [b4,eb5,gb5] ~ [b4,eb5,gb5]@2 [ab4,c5] ~ [ab4,c5] ~ [b4,eb5,gb5] ~ [b4,gb5]@2 [db5,ab5] ~@4 [b4,eb5] ~@3 [g4,b4,d5], ~@31 d3@12 ~@2 ab1@9 ab1@9 ~@20 ab1@34 ~@52 [ab3,bb3]@4 ~@4 bb3@20 ~@27, ~@89 gb4@6 [g4,b4,d5]@5 [eb4,bb4,db5,f5]@5 [d4,g4,b4,d5]@12 ~ c4@41 d4@39 ~@26, ~@89 bb4@6 e4@14 [eb4,bb4]@7 ~@3 e4 ~@47 ab4@4 ~@4 ab4@23 ~@14 eb5 ~ f5@2 ~@3 gb5@2 ~@3, ~@90 f4@27 ~@48 f4@23 f6@9 ~@27]/7", // F Ebm Bb Dbm G Bbm G Bbm …
  T: "[~@3 bb4 [db5,f5] ~@17 [db4,db5,db6]@3 ~ gb5 [gb4,a4] ~@14 [db4,db5,db6]@6 [eb1,eb2]@2 ~@32 db4@15 ~@8 f4@33 ~@22, ~@8 [gb4,a4,gb5,a5]@16 ~@8 [f5,f6]@16 ~@27 [eb4,eb5,eb6]@22 ~@63, ~@13 [e5,e6]@11 ~@3 a5@21 ~@33 [db5,db6]@16 ~@63, ~@18 e4@7 ~@12 f4@11 ~@11 [db4,db6]@22 ~@79, ~@20 [eb4,eb5,eb6]@4 ~@15 [eb4,eb5,eb6]@9 ~@11 [g3,bb3,f4,f5,bb5,f6]@38 ~@63]/5", // Db Gbm Db Eb Gbm F Eb E …
  U: "[~@27 c2 ~@4 d2 ~@4 f2@2 ~@28 c2 ~@9 f2@2 ~@2 a2 ~ c3 ~@2 d3 ~@4 f3 ~@4, ~@21 db4@4 ~@37 d4@16 ~@18, ~@11 c3@17 ~@20]/3",
  V: "g3@5 d4 ~ f3 ~ [c1,c2] ~@4 [c4,d4] ~ f3 ~@2 [f1,f2] ~@4 [c4,d4] f3 ~@2 [c1,c2] ~@3, f1 ~@8 d3@4 ~@5 g3@5 ~@5 d3@4", // C Csus2 F Csus2 C
  W: "[c4,d4] ~ a3 ~@2 [ab3,b3,c4] ~@6 g4@2 ~@2 c4@10 [g3,bb3,c4,d4]@3 ~@2 g3, ~@5 d4@21 ~@6, ~@14 g4@15 ~@3, ~@15 c5@14 ~@3", // Csus2 Ab Gm
  X: "[~ c4 ~ c3 ~ g2 ~ c3 ~@2 c2 ~@2 f1@5 db4@3 ~@2 c2 ~@4 d2 ~@4 f2@2 g2 ~@2 a2 ~ g2 ~ f2 ~@9 f1@5 ~@5 c2 ~@4 d2 ~@4 f2@2 g2@2 a2 ~ c3 ~@2 d3 ~@4 f3 ~@3 [d1,g3] d2 ~ a3 ~ [c4,f4,a4], g3@2 ~@16 d4@34 ~@5 [a3,d4]@17 ~@22, ~@18 [c3,a3]@31 ~@8 db4@2 ~@37, ~@58 c3@17 ~@21]/3", // G5 F D5 F
  Y: "[~ d4 ~ [g2,e4] g1 ~@4 [f4,g4] ~@4 [a1,a2] ~@5 e4@2 b3 ~@6 b3 ~@4 [ab1,ab2] ~@4 [ab3,c4,eb4] ~ g3 ~@2 [d2,d3] ~@4 [a3,d4] ~@3 [ab1,ab2] ~@4 [ab3,c4,eb4] ~ g3 ~@2 [d2,d3,gb3], ~@9 d4@11 ~@44, ~@9 b4@2 ~@8 [c4,g4]@3 ~@2 a3@14 ~@5 gb3@14 ~@7]/2", // C Fsus2 A Ab D D5 Ab D …
  Z: "~ gb3 ~ [a3,c4,d4] ~ ab3 ~@2 [ab1,ab2] ~@4 [ab3,eb4] ~@2 g3 ~ [d2,d3,gb3] ~@4 [a3,c4,d4] ~@4 [ab1,ab2] ~@3", // D7 Ab Ab5 D D7 Ab
  AA: "~ [ab3,c4,eb4] ~ g3 ~ [d2,d3,gb3] ~ gb3@2 ~ [a3,c4,d4] ~ ab3 ~ g3 ~ gb3 ~@2 ab3 ~ g3 ~ gb3 ~@2 f3 ~ g3 ~ gb3 ~", // Ab D D7
  AB: "[f3 ~ e3 ~ gb3 ~@2 f3 ~ e3 ~ eb3 ~ f3 ~ e3 ~@12 [a3,b3,eb4,gb4,b4,gb5,b5]@10 ~@12 [a3,b3,eb4]@11 ~@22 [c5,c6]@33 bb2@2 ~ ab2 ~@2 gb1@14 ~@2 db2 ~@16 bb2 ~@2 ab2 ~, ~@18 c3@20 c3@22 ~ c3@28 ~@71, ~@49 b5@39 ~@72, ~@49 [gb4,b4,gb5]@14 ~@8 [a5,d6]@17 ~@72, ~@9 d5@2 ~@9]/5", // B7 C B5 D5
  AC: "~@3 a2@29", AD: "~@29 ab2@2 bb2",
  AE: "~ db3 ~ eb3 ~@4 gb3@2 ~@2 ab3 ~@4 bb3 ~@3 db4 ~@3 [gb4,bb4] f4 ~@3 [g4,b4,d5] ~, ~@15 e4", // Gb G
  AF: "~@2 [eb4,f5]@3 ~@2 d4@3 ~ [db4,eb4,gb4,bb4]@2 ~@2 [f4,ab4,c5,eb5]@3 ~ [e4,b4,gb5]@3 ~ [eb4,ab4,eb5]@3 ~@2 [e4,g4]@3 ~, ~@2 [bb4,db5] ~@3 [b4,d5]@4 ~@9 d5 ~@3 c5 ~@8, ~@7 g4 ~@19 [d4,b4]@3 ~@2", // Ebsus2 Ebm7 Fm7 Esus2 Ab5 Em Bbm Bm …
  AG: "[bb1,bb2] ~@9 f4@3 ~@4 [c2,c3] ~@6 g4 ~@2 c4@3 ~@2, ~@4 [db4,a4,a5]@9 ~@9 [bb3,d4,e4]@8 ~@2, ~@4 [f4,f5]@5 f5@4 ~@13 [g4,c5]@4 ~@2, ~@5 g3@9 ~@18, ~@7 c5@6 ~@8 [a4,e5,a5]@9 ~@2", // Bb C Gbm Em7b5 F C5 A5
  AH: "~@3 bb1 ~@5 c5 ~@2 f4@3 ~@4 [c2,c3] ~@6 g4 ~@2 [c4,c5]@3, ~@3 bb2@12 ~@17, ~@7 [db4,a4,a5]@8 ~@9 [bb3,d4,e4]@8, ~@7 [f4,f5]@4 f5@4 ~@13 g4@4, ~@10 c5@5 ~@8 [a4,e5,a5]@9", // C Gbm Em7b5 F A5
  AI: "~@10 c4 ~ c4 f4 f3 ~ f2 ~ c3 ~ c2 ~ f1@2 ~@8, ~@22 f2 ~@9", AJ: "~@9 [f1,f2,f3] ~@22",
})).s("gm_piano").gain(0.48)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  ~ A ~@3 B ~@2 C@2 D E@2 F ~@3 G H ~ I@3 J K L M ~@3 N@4 ~@3 O@5 ~@4 P@4 Q ~ R@3 S ~ T ~@3 U@2 V@2 W@2 ~ X Y Z ~@2
>`.pickRestart({
  A: "~@5 g4 ~@5 [eb4,bb4] ~@20", B: "~@6 b3 ~@20 g2 ~ g2 ~@2",
  C: "[~@9 c3@27 ~@9 ab3@2 ~@17, ~@4 d3@33 ~@27, ~@5 a3@32 ~@27]/2", D: "~@14 f2@2 ~@4 a3 ~@3 c1 ~@7",
  E: "[~@6 a3 ~@24 b4@13 ~@20]/2", F: "~ ab3@3 ~@28", G: "~@27 c4 ~ g3@2 ~", H: "~@5 [c4,d4] ~@26",
  I: "[~@11 b3@13 ~@8 eb4@9 ~@22 e4@25 ~@8, ~@31 b3@9 ~@11 [bb3,c4]@37 ~@8, ~@17 [a4,d5]@5 ~@10, ~@26 f4@7 ~@15, ~@31 [g4,c5,g5]@13 ~@4]/3", // Bbsus2 D5 C5
  J: "~@5 d3@10 ~@17", K: "~@13 [c3,d3]@16 ~@3", L: "~@19 g3 db4 ~@7 gb3@2 ~@2", M: "~@16 gb3 ~@15",
  N: "[[eb4,gb4]@7 b4@4 ~@19 [eb4,gb4,bb4]@11 e4@3 ~@30 [eb4,eb5]@10 ~@8 ab4@4 ~ bb4@4 ~@15 f4@9 ~@3, ~@20 [g4,b4]@14 ~@7 ab1@44 ab1@41 ~@2, ~@49 eb4@25 ~@10 gb4@3 ~@5 f4@24 ~@12, ~@57 gb3@5 gb3@23 ~@43, ~@59 ab4@26 ~@43]/4", // Ebm Eb G
  O: "[~@4 d3@4 ~@6 d3@39 ~@11 gb4 ~ gb3 ~ [gb4,ab4] ~@16 [eb4,eb5,eb6]@10 ab1@3 ~@5 bb4@4 ~@18 f4@9 ~@9 eb5!2 ~@15, ~@8 ab1@10 ~@36 ab1@9 eb4@22 ~@75, ~@62 [gb4,ab4]@3 ~@7 [gb4,ab4]@23 ~@16 bb4@23 ~@26, ~@74 [gb3,ab3]@21 ~@14 [ab3,bb3]@5 ab3@20 ~@26]/5", // Gbsus2 Eb Gbsus2 Absus2
  P: "[~@71 g2 ~@2 a2 ~ g2 ~@2 f2 ~@4 d2 ~@4 f1@5 ~@10 d2 ~@6 g2 ~@16, ~@5 e4@26 ~@16 f1@10 ~@71, ~@26 d4@27 ~ [d3,d4]@36 ~@5 [c3,d3,a3]@17 ~@16, ~@54 a3@33 ~@7 db4@5 ~@29]/4", // D D7
  Q: "f2 ~@4 c4 ~@8 a3 ~@9 a3 ~@7", R: "[~@48 d2 ~@8 d3@17 ~@22, ~@6 d3@11 ~@15]/3",
  S: "~@24 [b1,b2] ~@4 [eb4,gb4] ~@2", T: "~@14 c4 ~@4 gb3@13",
  U: "[~@10 e4@17 ~@5, ~@7 a4@17 ~@40, ~@4 [bb3,c4]@23 ~@5, ~ f4@2 ~@5, ~@19 [g4,g5]@35 ~@10]/2", // Bbsus2 G
  V: "[~@16 eb2 ~@5 gb2@2 ab2@2 ~@8 gb2@2 ~@8 eb2@14 ~@6, ~@3 d4@5 ~@56, ~@2 [db3,eb3,eb4]@27 ~@3, ~@5 bb3@53 ~@6]/2", // Dbsus2
  W: "[~@3 d1@28 ~@10 d4@6 db2 ~@5 eb2 ~@4 gb2@4 ~@2, ~@2 gb2@29 gb1@16 ~@17, ~@41 [db3,eb3,bb3,eb4]@22 ~]/2", // Eb7
  X: "~@21 d5 ~@10", Y: "~@15 eb2 ~@16", Z: "~@7 [g3,a3]@8 ~@17",
})).s("gm_piano").gain(0.24)

stack(piano, piano_soft)

More by Claude Debussy