Strudelify

V. Pour l'Egyptienne

Claude Debussy

KeyB♭ minorTempo120 bpm
0:00/0:00
// V. Pour l'Egyptienne — Claude Debussy
// 120 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 79 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
const piano = note("<A B@7 C D@8 E@4 F@7 G@3 H@4 I@8 J K L M@2 N@3 O P@8 Q@3 R@3 S@8 T@5>".pickRestart({
  A: "bb2@3 bb2@4 bb2",
  B: "[~@79 bb2@15 bb2@16 ~@16 bb2@16 ~@48 bb2@16 bb2@16 ~@2, ~@21 gb3@49 [gb4,bb4,c5]@107 ~@5 f5@42, ~@62 bb2@17 ~@145]/7", // Cm7b5
  C: "~@23 c6@9, ~ gb5, ~@19 bb5@13",
  D: "[~@40 bb2@17 ~@173 bb2@17 ~@7 bb5@2, ~@11 [gb4,bb4,c5]@64 gb5@43 gb5@3 f5@34 bb5@36 bb2@16 f5@2 bb2@5 gb5@2 f5 e5@2 c5@11 e5@17 bb2@2 f5@3 gb5@4, ~@12 [c4,d4]@64 ~@2 bb5@38 bb5@26 c4@19 e5@2 db5@2 c5@7 db5@26 gb4@58, ~@24 bb2@16 ~@42 c6@6 db6@53 c5@16 gb5@17 e5@24 c5@12 gb5@2 bb5@16 db5@28, ~@32 f5@59 c6@61 gb5@2 bb2@6 f5@39 bb4@57]/8", // Cm7b5 Csus2
  E: "[eb2@2 ~@50 gb5@21 ~@42 a4@13, ~@2 c6@14 c6@58 ~@14 [bb2,eb5]@3 c5@2 b4@2 bb4@3 gb4@19 ~@11, ~@12 db6@61 d4@33 bb2@17 ~@5, ~@23 c5@51 ~@9 f5@33 ~@12, ~@36 bb2@9 bb5@29 ~@12 e5@30 ~@12]/4", // Eb5
  F: "[~@83 eb4@3 c4@8 ~@28 e4@2 ~@10 bb2@18 ~@24 e4@2 ~ d4 ~@6 d4 ~@3 e4@4 ~@11 c4@19, ~@4 [gb3,c4,d4]@14 bb2@3 c5@3 b4@2 bb4@3 gb4@29 bb2@8 eb2@50 bb2@13 ~ d4@10 ~@12 bb2@11 gb3@61, ~@13 f5@26 bb2@9 a4@28 bb4@2 gb4@2 f4@2 e4@6 ~@6 d4@10 gb3@48 db4@2 d4@3 eb4@2 e4@3 db4@3 d4@2 eb4@2 e4@2 bb2@11 e4@2 db4@2 ~@2 eb4@6 c4@8 d4@9 ~@13, ~@16 e5@55 c5@5 bb2@20 bb2@13 ~@6 db4@5 eb4@4 eb2@47 db4 d4@2 eb4@4 db4@2 ~ eb4@4 bb2@21 ~@18, ~@18 eb5@56 b4@14 ~@7 c4@23 d4@6 c4@9 c4@45 eb2@46]/7", // D7
  G: "[~@17 bb2@9 ~@17 db5@5, bb2@17 ~@31, ~@13 [c6,d6,bb6,c7]@64 ~@19]/3", // Gm
  H: "[~@42 bb2@6 db4@3 ~@16 bb2@7 ~@20 bb2@4 ~@22 bb2@6 gb4@2, bb2@15 bb2@14 bb2@13 ~@6 [gb3,ab3,eb4,ab4,db5]@27 [eb2,gb4]@31 bb2@7 [ab3,ab4]@15, ~@7 [eb4,bb4,eb5]@28 ~@39 [db4,c5]@54, ~@7 f4@15 [c4,gb4,c5,f5]@27 ~@12 [bb3,c4,f4,gb4,c5,f5]@14 eb4@7 bb2@6 [a3,a4]@28 ~@12, ~@22 [bb3,f4]@13 [ab3,bb3,eb4,f4,bb4,eb5]@15 ~@4 bb2@13 ~@7 gb3@26 f4 f3@15 ~@12]/4", // Gbsus2 Ebm Ab Eb5 Dbmaj7 F Bbsus2 A …
  I: "[~@88 gb4@7 ~@7 [bb2,bb4,c5]@9 ~@10 bb2@14 ~@72 db5@38 ~ bb2@7 gb3@3, ~@4 bb2@16 bb2@13 [eb4,ab5]@26 [bb3,gb4]@6 c5@11 ab4@6 [gb3,ab3,eb4,db5,ab5,db6]@30 ~@23 bb2@9 db6@8 bb2@30 d6@16 b4@48 ~@10, ~@13 a4@20 [ab3,db5]@7 [gb4,ab4]@7 [ab3,bb3,f4,eb5,bb5,eb6]@6 [bb2,ab4,bb4]@5 f6@13 bb3@41 ~@32 [ab3,b3,d4,e4,db5]@34 e6@11 f5@56 ~@11, ~@25 eb2@40 [bb2,bb4]@5 [f4,eb5,bb5,eb6]@25 [c4,gb4,f5,c6,f6]@16 [b3,d4,e4,ab5]@33 ab5@28 db6@15 ab5@58 ~@11, ~@32 db6@27 [c4,f5,c6]@12 ab3@5 [bb2,bb4]@12 ab4@23 [ab4,d5,e5]@53 eb2@21 b5@60 ~@11]/8", // Bbsus2 Ab5 Ebm Gbsus2 Db5 Gbsus2 Absus2 Bb7 …
  J: "~@5 [eb2,bb2]@7 [b2,gb3]@2 ~ [b2,gb3] ~@3 [gb2,db3]@8 [eb3,bb3]@5", // Eb5 B5 Gb5 Eb5
  K: "~@2 [bb2,f3]@7 [gb3,db4]@5 ~@2 bb2@7 [gb3,db4] ~@2 db4 gb3 ~@2 [bb2,f3] ~", // Bb5 Gb5 Bb5
  L: "~ [eb3,bb3]@2 ~@2 [gb2,db3]@2 ~ gb3@2 ~@2 [eb2,bb2] ~@6 [b2,gb3] ~@3 [b2,gb3] ~@3 [db2,ab2]@5, ~@8 b2 ~@23", // Eb5 Gb5 Eb5 B5 Db5
  M: "[~@2 [a2,e3] ~@2 [a2,e3] ~@3 [f2,c3]@7 [d3,a3]@3 ~@5 bb2@7 gb3@5 ~@9 [a2,e3] ~@2 e3@2 ~@10 d3@4, ~@24 eb2 ~@23 a2 ~@3 gb2@12, ~@59 g2@5]/2", // A5 F5 D5 A5
  N: "[~@2 f4 ~ gb4 ~@26 b2@3 ~@3 bb4 ~@14 bb4 ~@22 gb3@3 [gb3,db4,eb4,eb5]@2 gb4 ~@5 eb3@3 [gb2,db3]@2 ~@2 [b2,gb3,eb4,eb5]@2 f4, ~@5 bb4@15 f4@3 bb2@13 gb4@2 [gb2,db3]@11 eb5 f4@13 [eb4,eb5]@4 f3@14 ~ f3@8 ~@6, ~@7 f5@15 bb4@14 f4@12 eb4@5 [bb2,f3,f5]@13 gb4@2 [bb2,f5]@14 bb2@2 ~@12, ~@16 b2@8 f5@15 f5@12 gb4@2 ~@8 db4@6 bb4@2 ~@5 db4@4 ~@5 f5@7 ~@6, ~@18 [eb4,eb5]@15 ~ [eb4,eb5]@5 ~@7 [eb3,bb3]@8 ~@6 gb3@5 f4@15 ~ bb4@15]/3", // Ebm7 Gb5 B Gb5 Eb Bb5 Eb Eb5
  O: "gb4 ~@13 [eb4,eb5]@4 ~ [db2,ab2,f5]@3 ~@4 [a2,e3,e4,a4,e5]@4 e3@2, bb4 [eb2,f5]@8 ~@7, ~ bb2@17 ~@14, ~@5 gb3@4 f4@7, ~@11 b2@8 bb4@13", // Eb Db A5 Ebsus2
  P: "[~@2 [f2,c3]@2 ~@7 f4@2 ~@11 b2@3 [gb3,eb4,eb5]@3 ~ [db2,ab2]@3 ~@4 [a2,e3]@4 e3@4 ~ b1@3 ~@4 d3@4 [e4,b4]@3 bb2@3 ~@34 a2@5 ~@23 [a2,b2]@7 ~@7 [a2,b2]@7 ~@12 a2@3 ~@22 [a2,b2]@6 ~ bb2@4 ~@31 a2@13 ~@9 [bb2,d4]@8, ~ [d4,g4,d5]@12 f4@3 ~@7 gb3@4 ~@4 [f4,bb4,f5]@15 [db4,db5]@14 ~@9 [a3,b3]@7 [f1,f2]@27 ~@2 bb1@14 bb1@14 ~ bb1@14 [bb1,bb2]@15 ~@14 [eb2,eb3]@13 ~ bb1@14 [bb1,bb2]@14 [bb1,bb2]@20 ~@17, ~@8 [d3,a3,c4]@6 gb4@2 ~ f5@13 ~@8 e5@8 ~ gb4@14 ~@11 a2@10 [a3,b3]@15 [a3,b3]@6 ~@9 a3@21 ~@22 [a3,b3]@8 ~@20 [a3,b3]@6 ~@9 [a3,b3]@41 d4@9 ~@8, ~@11 c5@4 [eb2,bb2,bb4]@15 ~@16 gb2@4 ~@11 bb1@21 ~@8 [eb2,eb3]@13 ~@15 bb2@14 ~ bb2@14 ~@23 [a2,b2,a3,b3]@14 ~@18 a2@10 b2@14 ~@17 f4@12 ~, ~@73 b2@10 ~@21 bb2@4 ~@7 [a2,b2]@11 ~@36 [f1,f2]@27 ~@67]/8", // F5 Ebm Db5 A5 E5 Asus2 Bb G5 …
  Q: "[~@8 bb2@7 bb2@3 ~@5 bb2@8 bb2@9 bb2@8 bb2@8 bb2@8 bb2@8 bb2@7 ~ d3@3 ~@5 [bb2,db3]@8, [bb1,ab3,b3,eb4]@15 [g3,bb3,c4]@16 [bb1,gb3,db4]@17 bb3@19 ~@12 gb3@17, ~@64 b3@15 bb2@4 eb3@13]/3", // Bbm Abm C7 Gb
  R: "[~@9 bb2@8 ~@10 bb2@8 ~@9 bb2@8 bb2@4 ~@5 bb2@9 ~@26, [bb1,c3,ab3]@9 ab3@17 [d4,f4,ab4,bb4]@22, bb2@4 ~@13 bb2@6 ~@12 bb2@8 ~@53, ~ [eb3,gb3]@18 [b3,d4,e4]@34 ~@43, ~@9 bb1@9 bb1@8 ~@22]/3", // Fm Bb7 Ebm E7
  S: "[~ bb2@15 ~@38 bb2@12 ~@20 c6@23 bb2@14 ~@100 b5@2 ~@22 bb5@5 gb5@4, ~ [bb4,c5]@64 ~@15 gb5@31 ~@12 bb2@32 ~@24 bb5@26 bb2@8 bb5@2 gb5@3 bb2@37 ~, ~@23 f5@64 ~@22 [c4,d4,gb4,bb4,c5]@64 ~@4 gb5@32 b5@9 f5@8 b5 bb5@2 gb5 f5@4 bb5@2 b5@3 c6@14 ~@3, ~@83 bb5@28 ~@19 f5@61 db6@52 b5@9 ~@4, ~@182 c6@12 c6@26 gb5 bb5@4 c6@7 gb5@20 ~@4]/8", // Bbsus2 Daug
  T: "[~@10 b5@12 ~@71 bb6@42 ~@25, ~ bb5@10 [gb5,bb5,c6]@32 ~@37, ~@23 [c4,c5]@64 ~@73, ~@41 [bb2,bb4]@64 ~@55]/5", // Cm7b5 C Bb
})).s("gm_piano").gain(0.15)

// chords · piano · soft notes
const piano_soft = note(`<
  A@3 B@6 C@8 D@7 ~@3 E F@5 ~ G@4 ~@3 H@3 I ~ J@2 K@2 L ~ M N ~ O@3 P Q R@2 S ~ T U V@8 W@4 X
>`.pickRestart({
  A: "[~@45 bb2@17 bb2@16 ~ bb2@15 ~@2, eb2]/3",
  B: "[~@46 bb2@16 ~@16 bb2@15 ~@18 bb2@15 ~@32 bb2@14 ~ bb2@19, ~@7 gb3@182 ~@3, ~@7 [c4,d4]@105 ~@80, ~@93 bb2@14 ~@85, ~@17 eb2@15]/6", // Csus2
  C: "[bb2@11 ~@46 bb2@16 bb2@18 ~ bb2@16 ~@66 bb2@17 ~@8 [c4,d4]@3 ~@54, ~@11 gb3@122 ~@8 [gb4,bb4]@57 ~@58, ~@11 bb2@12 ~@85 bb2@22 bb2@24 ~@44 [eb2,gb3]@58, ~@12 eb2@122 ~@8 [eb2,d4]@57 ~@57, ~@113 b5@64 ~@79]/8", // Csus2 Gb Ebm Ebmaj7
  D: "[~@74 c4@42 ~@17 eb2@61 ~@30, ~@12 [gb3,d4]@61 gb3@4 ~@147, ~@23 [gb4,bb4]@51 eb2@59 ~@91, ~@40 b5@33 ~@151, ~@61 bb2@27 ~@35 bb2@23 ~@78]/7", // D Gb
  E: "~@7 bb2@9",
  F: "[~@52 bb2@20 ~ bb2@5 ~@9 [ab3,eb4]@16 ab3@28 ~@29, ~@13 gb6@64 ~@10 [gb3,db4,ab4]@57 ~@16, ~@23 [gb3,c4,d4]@55 eb2@64 ~@18, ~@103 bb3@15 ~@42]/5", // Ab5 Gbsus2 D7
  G: "[~@4 eb4@22 ~@81 db5@7 ~@14, ~ bb2@4 ~@8 eb4@19 ~@32, ~@30 gb3@35 ~ gb3@48 ~@14, ~@45 a3@64 ~@19]/4",
  H: "[~@30 g4@23 ~ eb2@8 b2@6 ~@28]/3", I: "~@16 f3@7 ~@9", J: "[~@31 b2@3 ~@4 [db2,ab2]@8 ~@6 b1@12]/2",
  K: "[~@31 gb3@3 [b2,gb3]@4 ~@26, ~@6 [eb2,bb2]@18 eb2@15 ~@25, ~@15 gb3@15 ~@34, ~@21 gb4@15 ~@28, ~@6 f4@3 ~@7]/2", // B5 Eb5
  L: "~@16 f4 ~@15", M: "~@28 b2@3 ~", N: "~@10 a2@4 ~@12 b3@3 ~@3, ~@7 [e4,a4]@8 ~@8 g2@6 ~@3",
  O: "[~@2 [b2,ab3]@6 ~@8 b3@21 ~@26 b2@4 ~@29]/3", P: "~@9 b2@11 a2@12",
  Q: "~@2 b2@13 [bb1,a3,c4]@17, ~@15 bb2@4 ~@13", // F
  R: "[bb2@3 ~@12 bb1@16 a3@16 ~ f3@16, ~@47 ab3@17, ~@48 bb1@5 ~@11]/2", S: "[bb1,e3,g3]@15 bb1@17",
  T: "~@20 bb1@5 ~@7", U: "~ bb2, ~@3 bb2@5 ~@8, ~@7 bb1@25",
  V: "[~@16 bb2@38 ~@12 bb2@43 ~@46 bb2@11 bb2@39 ~@51, ~ [eb2,gb3]@90 ~@18 [eb2,gb3]@147, ~ [c4,d4,gb4]@64 ~@191]/8", // Ebm D7
  W: "[~@55 eb2@64 ~@9, ~@11 gb3@32 ~@21, ~@23 [d4,d5]@64 ~@41, ~@41 ab4@64 ~@23]/4", X: "~@2 eb1@5 ~@25",
})).s("gm_piano").gain(0.1)

stack(piano, piano_soft)

More by Claude Debussy