Strudelify

III. Pour que la nuit soit propice

Claude Debussy

Tempo120 bpm
0:00/0:00
// III. Pour que la nuit soit propice — Claude Debussy
// 120 bpm, 4/4, key unknown. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 78 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@3 B@3 C@6 D E@7 F@6 G@4 H@4 I@6 J@6 K@6 L@8 M N O P@3 Q@3 R@8 ~>".pickRestart({
  A: "[~@3 c#6@3 ~@6 c#6@3 ~@31 c#6@3 ~@5 c#6@3 ~@32 c#6@4 [g5,c#6]@3, c#7@19 [a4,a5]@64 ~@2 c#7@11, ~@6 c#6@6 ~@3 c#6@31 ~@11 c#6@31 ~@8, ~@3 c#5@14 c#5@15, ~@6 g5@15 [g4,g5]@10 ~]/3", // Gdim A G
  B: "[~@35 c#6@4 [g4,g5,c#6]@8 c#6@3 ~@4 c#7@30 ~@4 c#5@3 ~@2 c#4@3, c#5@7 c#5@25 c#7@15 g4@37 ~@12, ~@4 c#6@21 [g4,g5]@7 [f4,f6]@53 ~@11, ~@4 [a4,a5]@9 ~@5 [a4,a5]@64 ~@9 c#5@5, ~@5 [b4,b5]@20 c#6@17 ~@6]/3", // Gdim G F A B
  C: "[c#5@3 ~@42 c#5@3 ~@28 c#5@4 ~@8 c#5@3 c#5@3 ~@16 [g3,g4]@4 ~@11 c#5@4 ~@11 c#5@38 ~@14, ~@3 c#5@33 ~@6 c#4@39 [g3,g4]@14 [b3,b4]@19 a#1@64 ~@14, ~@6 g4@45 g3@21 [c#2,c#3]@31 [a3,a4]@13 ~@5 [f3,f4]@57 ~@14, ~@8 [a3,a4]@44 g4@21 c#6@8 c#5@3 c#4@31 ~@14 c#5 g4@3 c#4@45 ~@14, ~@32 [a#1,a#2]@56 [a3,a4]@7 c#6@26 c#6@15 c#5 [g3,g4]@41 ~@14]/6", // G B C# A F A A# A …
  D: "~@7 c4, ~@25 e3@6 ~",
  E: "[g4@2 ~@7 c4@14 ~@16 e3@4 ~@41 e3@3 ~@18 g4@4 f4@6 ~@11 e3@5 ~@15 f3@9 ~@60 c#5@3 [c#3,d#5]@6, ~@2 a4@41 g4@28 ~@9 a4@8 ~@7 c5@10 f4@3 ~ c4@12 ~ c4@11 ~@30 c4@14 c#3@6 a2@15 g#2@6 [c#2,b3]@4 d#3@2 f4 c#3@3 d#3@6 ~@4, ~@23 d2@22 ~@13 a2@13 ~@3 [a2,f4,g4]@14 ~@7 c4@4 e3@12 ~@9 e3@3 d3@8 ~@11 e3@17 ~@7 d#3@3 f4 c#3@3 d#3@4 [c5,f5]@42 ~@5, ~@31 [a2,f3]@14 ~@12 f3@10 c4@14 d3@6 d3@12 f4@3 [d3,c4,a4]@9 ~@5 [a2,f4]@17 ~@23 a2@19 d#5@15 c#3@7 f3@22 ~@5, ~@34 e3@3 [d3,c4]@9 ~@8 e3@17 ~@7 e3@6 ~@3 b4@11 b4@13 ~@4 g4@6 g4@10 g4@53 f4@2 d#3@4 c4@29 ~@5]/7", // C#sus2 C#7 Dm F5 Dm D7 Dm D7
  F: "[~@9 b3@6 ~ f3@2 ~@14 d#3@4 ~@17 [c#4,c#5]@5 ~@66 f3 ~@35 d#3@3 ~@16 c#5@13, ~ [g#2,f4]@14 a2@21 c5@22 [g#2,b3,f4,b4]@14 c#3@3 d#3@4 c#3@8 g#2@16 [a4,c5,a5]@20 a5@20 [f4,f5]@20 d#5@2 ~@27, ~@4 d#3@12 ~@8 [c#4,c#5]@15 ~@4 [g4,g5]@16 ~@6 [c#4,c#5]@6 c#4@15 [b3,b4]@11 [f4,f5]@9 ~@4 a2@13 [c4,g5]@3 ~@10 f5 [a2,g4,c5,g5]@7 c#2@20 ~@28, ~@8 c#3@8 ~@7 c#2@13 [c#3,f4,f5]@13 ~ [c#2,c#3,d#4,a4,d#5]@9 ~@5 c#2@26 [d#3,c#4,c#5]@10 g5@6 ~@7 d#3@4 [c#3,g4,f5,g5]@7 [c#3,a4]@22 ~@8 d#3@3 [c#3,d#4,g#4,d#5]@7 ~@28, ~@26 d#3@3 [c#3,d#4,d#5]@9 ~@9 [d#3,f4,f5]@12 ~@9 d#3@4 c#5@14 f4@7 [c#3,d#4,d#5]@9 c#2@18 d#3@5 ~@6 c#2@11 d#5@3 ~@11 c#5@8 f5@28]/6", // C# Fdim Am F C# G C# B …
  G: "[~@3 c#5@3 ~@21 f3@13 ~@40 b3@3 b3@3 b3@7 ~@35, ~@6 d#5@45 ~@77, ~@48 d#4@61 ~@19]/4",
  H: "[~@17 b3 ~@2 b3 ~@2 b3 ~@13 b3@2 ~ b3@3 ~@2 [d4,f#4]@2 ~@9 b3@3 ~ b3@3 b3@3 ~@21 b3@5 ~@2 b3@3 b3@3 b3@3 b3@3 ~ b3@8 ~ d5@6 [d5,f#5]@6, ~@11 g4@6 ~@26 b3@4 ~@47 f#4@34, ~@13 a4@21 c#5@5 [c#5,f5]@7 ~@48 a#4@22 a#4@12, ~@14 f4@33 [d#4,g4]@41 ~@4 [e4,g#4]@14 ~@9 b3@3 ~@10]/4", // D C# D# E
  I: "[~@2 b3@6 ~@3 b3@3 b3@3 b3@3 b3@7 b3@2 ~@3 b3@3 ~@43 [d5,f#5]@3 b3@7 b3@3 ~@4 b3@2 b3@4 ~ b3@7 b3@2 b3@2 ~ b3@3 ~@10 b3@3 ~@6 b3@2 ~ b3@6 b3@2 ~ b3@2 ~ b3@3 ~ d5 ~ b3@7 b3@3 ~@3 b3@2 b3@4 ~@9 b3@3 b3@3 ~, [e4,g#4]@3 ~@35 [e5,g#5]@2 [f4,a4,a5]@19 g#5@2 ~@10 d#5@2 [e4,g#4]@3 b3@5 [a3,g4,d#5,g5]@39 [f4,a5]@18 e5@2 ~@14 b3@2 g5@36, ~ [f4,a4]@38 f5@18 b3@3 [f5,a5]@21 d#4 ~@20 f1@19 ~@11 b3 [e4,g#4,e5,g#5]@7 ~@10 [g#4,d#5,g5,g#5]@5 f#5@4 ~@33, ~@53 [d#5,g5]@7 e5@2 ~@8 b3@2 [e5,g5,g#5]@10 ~@37 [e5,g#5]@3 ~@10 [d#5,g5]@8 ~@11 [e4,e5]@5 d#5@3 ~@33, ~@54 [e4,g#4,e5,g#5]@7 [f4,a4]@21 ~@35 b3@4 [a4,f5]@18 [f4,a4,f5,a5]@18 [a3,d#4,g4]@35]/6", // D E F E Am7b5 F E G#maj7 …
  J: "[~@3 b3@6 ~@7 d4@2 ~ d4@3 g4@3 ~@6 b3@3 b3@2 ~ [b3,e4,g4,c5]@3 [f#4,a4]@3 ~@3 b3@3 b3@3 ~ b3@3 ~@3 [g5,g6]@7 ~@8 b3@3 b3@3 ~ e5 c5@2 ~@3 b3@3 ~@9 b3@3 ~ b3@6 [d4,a4]@2 ~ b3@3 ~ b3@2 b3@3 ~ [b4,d#5] ~@2 b3@3 ~@11 b3@4 b3@7 ~@3 b3@3 b3@4 b3@4 b3@7 b3@3 b3@3 ~ b3 ~@2 b3@4 b3@6 [f#3,a3,b3,d4], ~@9 c4@9 b3@4 [e4,b4,e5]@9 [b4,e5]@9 d5@6 g4@6 g4@4 b3@3 [b5,d6]@7 [e5,g5,c6,e6,g6,c7] c5@14 [a5,c6]@9 b3@9 ~@10 [f4,d5,f5,a5,d6]@12 ~ [g#4,g#5,b5]@14 [g#4,g#5]@14 ~@14 [a3,c4,e4,a4]@15 ~@13, ~@10 [e4,c5]@13 ~@5 [f#4,a4]@3 [e4,g4]@3 [d4,f#4,a4,d5]@6 d4@31 b4@9 ~@2 b4@28 ~@12 [d#6,g#6]@43 ~@27, ~@12 b3@4 a4@7 ~@5 f#5@13 ~@5 e5@6 [b4,g5] d5@28 [e6,a6]@28 b3 ~@19 b3@10 ~@11 [c#4,f4,g#4,c#5,f5,g#5,c#6]@15 ~@12 [a#3,c#4,f#4]@15, ~@15 [f#4,d5]@8 ~@5 c5@8 c4@4 b3@6 e4@34 ~@2 a4@14 [f4,a4,c5,f5,a5,c6,f6]@14 ~@26 [e4,b4,e5,b5,e6]@29 ~@13 f#3@13 ~]/6", // Cmaj7 F#m G D5 B Bm7 E5 Bm …
  K: "[~@3 b3@3 b3@3 b3@3 b3@9 b3@3 b3@3 b3@2 ~@2 b3@3 b3@7 ~ b3@2 ~@2 b3@3 b3@3 b3@5 ~ b3@9 b3@3 b3@3 b3@3 b3@4 b3@8 ~@3 b3@3 b3@4 ~@18 b3@4 ~@56 a#5@16, d3@12 [g2,d3,f3,a3]@15 [f#2,c#3,e3,g#3]@14 d#3@16 ~@45 b3@10 ~@62 a5@4 ~@14, ~@42 [f2,c3,g3]@15 ~ [c2,g2,c3,e3]@45 [c3,f3,a3]@64 ~@25]/6", // Dm C#m Fsus2 C F
  L: "[~@24 g#2@4 ~@55 g#5@10 ~@33 g#2@10 b3@3 ~@37 g#5@9 [b4,d5]@12 ~@39 g#5@16 ~@4, ~@4 g#5@27 [g5,g#5]@8 a#5 [f3,g#3,b3,d#4]@55 ~@20 [c4,g#4,c5]@21 [d4,g4,b4,d5]@22 [d4,b4,d5,a#5]@28 ~@11 [g#1,f5]@56 ~@3, ~@12 g4@64 ~@17 [e4,e5]@44 ~@20 a5@2 g4@16 g5@10 ~@24 a5@43 ~@4, ~@12 a5@23 g#2@30 a#5@30 ~@21 [c#2,f4]@21 ~@10 [a#1,a#2,f4,g#4,c#5,f5]@16 ~@9 a4@14 ~@11 [f4,c#5]@28 a4@27 ~@4, ~@13 a#5@25 a5@19 g#5@26 ~@22 [g4,g5]@20 [c#4,c#5]@11 g#3@26 ~@9 c#5@14 ~@25 [d5,a#5]@43 ~@3]/8", // Bm G#maj7 Fm7b5 Fm G C# E C# …
  M: "~@17 d3@15, ~@5 f2@18 ~@9", N: "~@9 a2@18 ~@5", O: "~@19 a2@13",
  P: "[~@91 f4@5, ~@8 c#4@18 ~@12 d#4@26 c#4@7 [f1,f2]@13 [d#1,d#2]@2 d#4@10, ~@16 d#4@11 ~@4 g4@51 c#4@14, ~@23 f4@11 ~ f4@43 b3@18, ~@42 c#4@5 [f1,f2,b3]@8 c#4@4 [g1,g2]@37]/3", // F D# Fdim G
  Q: "[~@3 g5@2 ~@15 g5@8 ~@38 d#5@6 ~@18 [g#3,c#4,g#4,d#5]@6, ~@3 [c#1,c#2]@39 [f4,f5] g4@31 [f3,a#3]@8 g#2@7 c#5@7, ~@3 [g#4,c#5,g#5]@17 g4@8 g5@7 c#3@61, ~@12 [g#2,c#3,g#3]@16 g#5@21 [f3,a#3] [d#4,f4,a#4,d#5,f5]@8 g#2@7 [g#4,c#5] [g#3,c#4]@6 d#5 [d#4,f4,a#4,f5]@23, ~@19 [f4,f5]@9 [g#4,c#5]@7 [g#2,g#3]@7 g5@54]/3", // G#sus4 C# F A#5 C#5 A#5 D#sus2 C#5 …
  R: "[~@3 g6@2 g#6@2 ~ g#6@2 ~@3 g#6@2 ~ g#6@2 ~@17 g5@6 ~@14 a#6@2 ~@12 g5@6 ~@28 g5@6 ~@38 [g#5,g#6]@13 ~ g#5@95, ~@7 g6@3 g6@2 g6@2 ~ g6@3 g6@8 g6 f6@2 d#6 c#6 c6 [f3,a#3]@14 a#5@2 c5@10 a#6@9 a#5 d#4@14 c6 c#5@10 g#6@3 f6 d#6 c#6@2 f3@9 [g#2,f5]@2 g5@2 g#5@2 a#5@2 [c5,c6] [c#5,c#6] d#5 [f5,d#6] f6 g5 g6 g#6@6 ~@6 f3@11 g6@64 ~@45, ~@11 g#6@2 ~@6 g#6@6 g#6@8 a#5 d#4@14 c6 c#5@10 g#6@8 a#3@13 a#5@2 c5@10 a#6@9 a#5 g#5 d#4@21 g#5@2 a6@3 ~@8 a#3@23 g#6@96, ~@21 a#6@3 a#6@10 g#5@7 g#2@11 [f5,f6] [g5,g6] g#6@3 c#7@11 g#5@7 g#2@10 d#6 [f5,f6] [g5,g6] g#6@2 a#6 c#7@34 a5@13 d#4@64 ~@54, ~@22 c#7@19 f5@2 g5@2 g#5@4 c#6 d#6 d#5@10 g6 f6 d#6 c#6 c6 f3@9 f5@2 g5@2 g#5@4 c#6 d#5@11 g6@5 c6 a#3@26 [a#5,a#6]@19 g5@64 ~@46]/8", // G# A#5 C# C C# F7 F G …
})).s("gm_piano").gain(0.2)

// chords · piano · soft notes
const piano_soft = note(`<
  A@4 B@8 C@4 D@5 E F@2 G@6 H I J K L M N O P Q@2 ~ R ~ S ~@3 T U@8 V@6 W@3 ~@9 X@3
>`.pickRestart({
  A: "[~@49 c#6@5 ~@39 g4@16 ~@19, ~@18 g4@43 f5@48 ~@19, ~@43 c#4@64 ~@21, ~@44 c#7@41 ~@43, ~@62 f4@47 ~@19]/4",
  B: "[~@15 g5@37 ~@48 c#5@3 c#5@6 ~@85 g3@7 ~@10 c#6@31 ~@14, c#4@26 [c#2,c#3]@31 f3@32 ~ a#2@31 ~@7, ~@10 c#5@42 c#6@43 ~ c#6@41 ~@119, ~@70 g3@45 f4@64 ~@77, ~@112 c#5@28 ~@18 c#5@31 ~@67]/8", // C#
  C: "[~@31 e3@3 ~@21 c4@13 ~@45 c4@7 f4@2 ~@6, ~@12 d2@22 f3@14 ~ [a2,f3]@14 ~@13 d3@14 d3@12 ~@26, ~@12 c4@16 d3@7 d3@14 d3@20 ~@6 f3@14 ~@10 d2@21 ~@8, ~@22 [a2,f3]@13 ~@9 e3@22 ~@8 f4@3 ~@5 c4@17 ~@29]/4", // Dm
  D: "[~@6 a2@8 d2@22 f3@2 ~@12 a2@9 ~@8 c#2@27 c#2@14 ~@29 c#2@7 ~@16, ~@36 d3@14 d3@13 ~@97, ~@42 c4@21 ~@59 b4@22 ~@16, ~@59 f3@42 ~@59]/5",
  E: "~@12 a2@15 ~@5", F: "[~@15 c#2@4 ~@13]/2",
  G: "[~@22 g#2@14 ~@23 c#2@10 ~@71 b3@3 ~@15 b3@3 b3@3 b3@4 b3@5 b3@8 b3@4 b3@4 b3@3, ~@15 b4@21 [f4,b4]@34 b4@42 g#2@12 ~@3 g#2@24 ~@41, ~@36 b3@2 ~@6 c#2@15 ~@10 c#2@28 g#2@7 [c#2,f3]@11 ~@5 c#2@18 c#2@35 ~@19, ~@37 [c#3,f3]@33 d#4@40 c#4@5 ~@5 f3@32 ~@40, ~@52 [g#2,d#4,g#4,d#5]@18 g#2@7 f3@7 b3@28 b3@24 b3@4 ~@52]/6", // Fdim C# G#5
  H: "~ b3@5 b3@5 ~@2 b3@3 ~@11 b3@5, ~@11 d#4@5 ~@16", I: "~@2 a4@13 b3@7 b3@2 ~@8, ~@2 b3@3 ~@27",
  J: "~@3 b3@7 b3@3 b3@2 ~ b3@3 b3@2 ~@11", K: "~@22 b3@4 b3@3 b3@3", L: "~@8 b3@3 ~@18 b3@3",
  M: "~@3 b3@5 b3@4 ~@3 b3@4 b3@3 b3@3 ~@4 b3@3", N: "~@3 b3@2 ~@4 b3@3 ~@16 b3@3 ~", O: "~@6 f2@19 b3@6 ~",
  P: "~@2 b3@2 ~@6 g#5@3 ~@19",
  Q: "[~@7 b3@2 ~@7 b3@6 ~ b3@2 ~@6 b3@4 ~@7 g4@12 ~ b3@2 ~@3 b3@2 ~@2, ~@16 [f1,f2]@19 ~@7 b3@2 ~@20]/2", // F
  R: "f#6@17 ~@15", S: "~@22 b3@3 ~@7", T: "~@24 b3@3 ~@5",
  U: "[~@2 b3@4 ~@10 b3@4 ~@4 b3@5 ~ b3@17 b3@12 b3@21 ~@44 g#2@3 g#2@4 ~@47 [c#2,g5]@11 ~@13 g#2@20 ~@11 f3@23, ~@7 [f1,f2]@64 ~@9 e4@64 ~@8 g5@26 ~@11 g#4@22 ~@45, ~@80 [g#3,b3]@56 ~@25 a5@29 b3@42 ~@24, ~@81 f3@55 ~@53 [f3,g#3,b4]@43 ~@24, ~@92 g#2@7 g5 c#2@64 ~@5 g#2@23 ~@64]/8", // C#dim F G#m Fdim
  V: "[~@12 f4@13 ~ f3@11 ~@143 a1@12, ~@11 c#4@14 [g#3,b3,d4,g4]@12 [g#2,g#4]@56 ~@8 f3@18 ~@6 [b1,b2]@19 ~@6 [b1,b2]@41 ~, ~@50 [d4,g4,b4]@26 g5@17 ~@99, ~@65 [c#4,c#5]@23 [d2,d3]@17 ~@8 d2@16 ~@8 a1@18 ~@8 g2@27 ~@2, ~@66 f4@27 ~@71 g1@27 ~]/6", // G G# B G C# D
  W: "[~@12 [b1,b2]@12 ~@12 g1@23 ~@37, ~@3 [a1,a2]@8 ~, ~@35 g2@24 ~@37]/3", X: "[~@5 c#2@64 ~@27, ~ c#1@16 ~@7]/3",
})).s("gm_piano").gain(0.1)

stack(piano, piano_soft)

More by Claude Debussy