Strudelify

The little negro (Le petit Negre)

Claude Debussy

KeyC majorTempo120 bpm
0:00/0:00
// The little negro (Le petit Negre) — Claude Debussy
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 47 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@5 F G@3 H I J K L@2 M N O P Q@3 R@4 S T@2 U V W@2 X@2 Y ~ Z@3>".pickRestart({
  A: "e5@2 g5@2 ~@2 e5@2 g5 ~@3 e5 ~@3 c5@2 e5@3 ~ c5@2 e5 ~@3 c5 ~@3",
  B: "[[d4,f4] ~@3 [d#4,f#4] ~ a4@2 [e4,g4] ~@3 [d#4,f#4] ~ c5 f4 d4 ~@2 [d#4,f#4] ~@3 [d4,f4] ~@3 [c#4,e4] ~@3 [c4,d#4] ~@3 [b3,d4] ~@2 e4 [a#3,c#4] ~@2 a3 c4 ~@2 [g#3,b3] ~ f4@2 [g3,a#3] ~ e4 ~ [f#3,a3] ~@3 [f3,g#3] ~@3 [e3,g3] ~@2 d#3 f#3 c4 ~ [d3,f3,g3] ~@3 [d#3,f#3] ~ b3 ~ d3 ~@3 g2 ~@3 [c#3,f3] ~@3 g2 ~@3 c3 g3@3 c4 ~@2 g3@2 ~@2 [e3,b3] ~@3 [a2,c3] ~ e3@4 c3@2 e3@2 ~@2 [c3,g3] ~@3 [f2,a2] ~ c3@2, a4@2 c5@4 ~@2 c5@2 ~@2 a4@2 ~ a4@12 ~@4 g4@2 a4@4 g4@2 ~@3 g4@2 ~@2 e4@2 ~@6 c4@4 ~@4 c4@2 ~@13 g3@10 ~@6 e3@2 ~@4 e3@2 ~@27, ~@63 d4@4 ~@33 b2 ~@15 g2 ~@11]/4", // Dm D#m Em D#m Dm C#m Cm Bm …
  C: "f3 ~@2 c3 e2 ~@3 a2 c3@2 d2 ~@3 d3 ~@3 f2 ~@3 f3 ~@3 g2@2 a2@3, ~@11 a2@10 ~@11",
  D: "~ c3 ~ d3@2 ~@2 e3@2 ~@2 g3@2 a3@4 c4 ~ d4@2 ~@2 e4 g4 ~@3 c5@4, ~@27 a4@3 ~@2",
  E: "[d5@2 e5 ~@3 [d5,f5] a5 ~@2 [c5,g5]@9 ~@12 a#4@18 ~@73 c5@16 ~@12 d4@4 [e3,e4]@6, ~@6 g5@2 ~ [e5,c6]@10 ~@7 c4@83 ~@51]/5", // Dm C5 E C
  F: "~ [d3,d4]@8 c4@12 ~@4 a#2@3 [d3,d4]@4, ~@6 a#3 ~", // D
  G: "[[f3,f4]@3 [g3,g4]@4 [a#3,a#4]@4 [d4,d5]@3 [f4,f5]@4 [d4,d5]@4 ~@4 [c#4,f#4] ~@6 [c#4,f#4] ~@17 b4@4 ~@13 a4@4 ~@15 f4 e4@8, ~@22 [a#3,a#4]@30 ~@4 c5@16 f4@15 ~@9, ~@84 d4@5 ~@7]/3", // F G A# D F D F#5 A#
  H: "~@6 [a#2,a#3] [d3,d4]", // A# D
  I: "[f3,f4]@3 [g3,g4]@4 [a#3,a#4]@4 [d4,d5]@4 [f4,f5] ~@3 d4@3 ~ f4@2 ~ d5@4 f5@2, ~@18 d5@3 ~ f5@2 ~@2 d4@2 ~@2 f4 ~", // F G A# D F
  J: "~@2 [d#4,d#5]@3 f5@2 ~@2 [d#4,d#5]@3 ~ [f4,f5]@2 ~ [d#4,d#5]@4 [f#4,f#5]@2 ~@2 [d#4,d#5]@4 f#5@4, ~@5 f4 ~@22 f#4@2 ~@2", // D# F D# F# D#
  K: "b4@2 ~@2 e5@2 g5@3 ~@2 g5 ~@3 e5 ~@3 c5@2 e5 ~@4 g4@4 c5 ~, ~@4 c5@6 e5@2 b4@6 ~ a4@6 c5@2 ~@5, ~@26 e5 ~@5",
  L: "[~ f4 d4 c5 ~ f#4 d#4 a4 ~ [e4,g4,c5] ~@3 [d#4,f#4,a4] c5 ~ f4 d4 ~@2 [d#4,f#4] ~@3 [d4,f4] ~@2 [c#4,e4] ~@3 [c4,d#4] ~@3 [b3,d4] g4@2 [a#3,e4] c#4 ~@2 [a3,c4,g4] ~@3 [g#3,b3] ~ f4@2 [g3,a#3] e4@2 [f#3,a3] ~@3 g#3 ~@3 [e3,g3] d4@2, ~@2 a4@2 ~@12 a4@12 ~@3 g4@2 a4@4 ~@9 e4@2 ~@5 c4@4 ~@3 c4@2 ~@2]/2", // C D#dim D#m Dm C#m Cm Bm A#dim …
  M: "[d#3,f#3] ~ c4 ~ [d3,f3,g3] ~@2 [d#3,f#3] ~@3 [d3,f3] ~@3 g2 ~@3 [c#3,f3] ~@3 g2 ~@3 e3@2 ~ c4 ~, ~@27 c3 ~ g3@3", // D#m G7 D#m Dm C#
  N: "e3@2 g3@2 ~@2 [e3,b3] ~@3 a2 e3@2 a3 ~ c3@2 [g2,e3] ~@3 [c3,g3] ~@3 [f2,a2] c3@2 f3 ~ a2 ~, ~@2 b2 ~@7 c3@2 ~@20", // E5 C C5 F
  O: "[e2,c3] ~@3 [a2,e3] c3@2 ~ d2 ~@2 d3 ~@3 f2 ~@3 f3 ~@3 g2@2 a2@3 ~ c3 d3@2, ~@8 a2@11 ~@13", // C A5
  P: "~@2 e3@2 ~@2 g3@2 a3@4 c4 ~ d4@3 ~@2 g4@2 ~@2 c5@4 ~@2 e5 ~@2, ~@9 e4 ~ a4 ~@2 d5 ~",
  Q: "[~ [d5,f5] a5@2 ~ [g5,c6]@8 ~@28 a4@3 ~@13 d4@4 ~@4 g4@4 [d3,d4]@8 ~@15 [a#2,a#3]@4, ~ g5@2 ~@2 [c5,e5] ~@24 [c4,c5]@14 f4@17 [e3,e4]@9 ~@26]/3", // Dm C5 D A# C E
  R: "[[d3,d4]@4 [f3,f4]@3 ~ g3@3 [a#3,a#4]@4 [d4,d5]@4 [f4,f5]@4 [d4,d5]@3 ~@4 [c#4,f#4] ~@7 [c#4,f#4] ~@17 b4@3 d5@2 ~@11 a4@4 f4@7 ~@4 d4@5 e4@9 ~@19 a3@4 [a#2,a#3]@4, ~@7 g4@4 ~@15 [a#3,a#4]@31 ~@4 c5@14 ~@45 a2@3 ~@5]/4", // D F A# D F D F#5 A#
  S: "[d3,d4]@3 [f3,f4]@4 [g3,g4]@3 [a#3,a#4]@4 [d4,d5]@4 [f4,f5] ~@3 d4@3 [f4,f5] ~@3 [d4,d5]@3, ~@21 d5@4 ~@7", // D F G A# D F D
  T: "[~ [f4,f5] ~@3 d#4@3 f5@2 ~@2 [d#4,d#5]@3 f5@2 ~@2 [d#4,d#5]@4 [f#4,f#5]@2 ~ [d#4,d#5]@4 f#5@4 b4@3 ~@2 g5@2 ~@4 g5 ~@3 e5 ~@3 c5@2 e5 ~@3 c5 g4@4, ~@4 d#5@4 f4 ~@6 f4 ~@14 f#4@2 ~@6 c5@7 b4@7 ~ a4@7 ~@4, ~@38 e5@2 ~@4 e5@2 ~@14 e5 ~@3]/2", // F D# F# D#
  U: "c5 ~@2 f4 d4 ~@2 [d#4,f#4] ~ a4@2 [e4,g4,c5] ~@2 [d#4,f#4] ~ c5@2 [d4,f4] ~@3 [d#4,f#4] ~@2 [d4,f4] ~@3 [c#4,e4] ~@2, ~@3 a4@2 c5@4 ~@5 a4@2 ~@2 a4@11 ~@3", // D#m C D#m Dm D#m Dm C#m
  V: "~ [c4,d#4] ~@2 d4 b3 ~ g4 [a#3,c#4,e4] ~@3 [a3,c4,g4] ~@2 g#3 b3 ~@2 [g3,a#3] ~ e4@2 [f#3,a3] ~@2 g#3 f3 ~@2 [e3,g3] ~, ~ g4@2 a4@4 ~@8 e4@2 f4@4 ~@2 c4@3 ~@4 c4@2", // Cm A#dim Am7 Gm F#m Em
  W: "[~@2 [d#3,f#3] ~ c4 [f3,g3] d3 ~@2 [d#3,f#3,g3] ~@3 [d3,f3] ~@3 g2 ~@3 [c#3,f3] ~@3 g2 ~@3 c3 ~@2 c4 ~ e3@2 g3@2 ~@2 [e3,b3] ~@3 [a2,c3] e3@4 c3@2 e3@2 ~@2 [c3,g3] ~@3 [f2,a2] c3@2 f3 ~, d4@4 ~@9 g3@12 ~@4 e3@2 ~@5 b2 ~@14 g2 ~@12, ~@15 g3@2 ~@15]/2", // D#m Fsus2 D# Dm C# E5 Am C5 …
  X: "[a2 ~ [e2,c3] ~@3 [a2,e3] c3@2 d2 ~@3 d3 ~@3 f2 ~@2 f3 ~@3 g2@2 a2@3 ~@2 d3@2 ~@2 e3@2 ~@2 g3@2 a3@4 c4@2 d4@3 ~ e4@2 g4 ~ a4@2 ~@2 d5@2 e5@2 ~, ~@9 a2@10 ~@11 c3@2 ~@25 c5@4 ~@3]/2", // C A5
  Y: "~ [d5,f5] ~ a5@2 [g5,c6]@4 ~@5 [c4,e4,g4] ~@17, ~ g5@2 ~@2 e5@2 ~@25, ~@5 c5 ~@8 c5@4 ~@14", // Dm C5 C
  Z: "[~@9 a2@3 ~ c3 ~ d3@2 ~@2 e3@2 ~@2 g3@2 a3@4 c4@2 d4@3 ~@2 g4 ~ a4@2 c5@4 d5@2 e5 ~@3 [d5,f5] a5 ~ [c5,e5,g5] ~@8 [c4,e4,c5]@5 ~@29, ~@35 e4@2 ~@13 g5@2 ~ c6@2 ~@7 g4 ~@33]/3", // Dm C
})).s("gm_piano").gain(0.48)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<~@3 A B C ~@2 D@5 ~ E@2 F ~@4 G H ~@3 I J K ~ L@3 ~@5 M N ~@7>".pickRestart({
  A: "~@9 g3 ~@3 f3 ~@18", B: "~@16 a3 ~@15", C: "~@2 a2 ~@5 e3 ~@23",
  D: "[~@59 a#4@27 [b3,b4]@4 ~@12 [a3,a4]@4 ~@12 d3@5 ~@3 [b3,g4]@4 ~@3 [b3,f4,g4]@4 ~@4 [e4,g4]@8 [a2,a3]@4 ~@7, ~@12 d4@65 ~@13 c4@16 [f3,f4]@17 ~@14 c3@12 ~@11, ~@17 a#4@18 ~ a#4@23 ~@35 a#4@12 ~@54, ~@30 f4@57 ~@8 e4@12 ~@3 [c4,a4]@12 ~@38, ~@51 g4@36 ~@73]/5", // B A Em G7 Em A F
  E: "[~@9 [c#4,f#4]@11 b3@3 ~@13 a3@3 ~@13 d3@3 ~@5 [b3,g4]@4, ~@23 d5@2 ~@3 [e4,a#4]@11 ~@5 [c4,a4]@11 ~@9, ~@24 c4@15 ~ f3@15 ~ e3@8]/2", // F#5 Em Edim F
  F: "~@4 [b3,f4,g4]@4 ~@4 e4@8 ~ a2@3 ~@8, [d3,d4]@8 [c3,c4]@12 a3@5 ~@7, ~@6 g4@7 ~@3", G: "~@25 f3 ~@6",
  H: "~@8 g3 b3 ~ g3@10 ~@11", I: "~@26 b3@3 ~@3, ~@25 b4@5 ~@2",
  J: "~@2 [e4,a#4]@7 a3@2 ~@14 d3@5 ~@2, ~@13 f3@17 ~@2, ~@17 [c4,a4]@13 ~@2", // Edim F
  K: "~ b3@4 ~@4 [b3,f4,g4]@4 ~@4 [e4,g4]@8 [a2,a3]@4 ~@3, ~@13 [c3,c4]@13 ~@6", // G7 Em A C
  L: "[~@14 [c#4,f#4]@10 b3@4 ~@5 [e4,a#4]@7 a3@3 ~@21 [b3,g4]@4 ~@4 [b3,f4,g4]@4 ~@5 [e4,g4]@11 ~@4, ~@28 c4@14 ~@2 f3@15 f4@2 ~@35, ~@48 [c4,a4]@12 e3@9 ~@7 [c3,c4]@15 ~@5, ~@56 d3@5 ~@7 [d3,d4]@9 ~@19]/3", // F#5 Edim Em G7 Em F C D
  M: "~@11 b3 ~@20", N: "~@15 a3 ~@16",
})).s("gm_piano").gain(0.24)

stack(piano, piano_soft)

More by Claude Debussy