Strudelify

Clair de lune

Debussy

KeyA majorTempo90 bpm
0:00/0:00
// Clair de lune — Debussy
// 90 bpm, 9/8, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5988308; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(90/4.5)

// 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@4 B C D E@3 F G H I J K L M@2 N O P Q R S T U V W X Y@2 Z AA AB@2 AC AD AE AF AG AH AI AJ@2 AK AL@2 AM@2 AN@4 AO@4
  AP@2 AQ AR AS AT AU AV AW AX AY AZ BA BB ~
>`.pickRestart({
  A: "[~@5 e4, ~@5 [c#4,e4]@43 [d4,f4]@48 [c#4,e4]@48 [b3,d4]@48, ~@11 c#5@37 ~@5 g#4@11 g#4@43 g#4@37 ~@5 e4@11 ~@32, ~@32 a4@27 a4@37 ~@5 f#4@11 f#4@43 f#4@37]/4", // C#m Dm C#m Bm
  B: "[b3,d4]@2 [g#3,b3,d4], a3", C: "b3@2 [f3,g#3,b3], [f#3,a3]", D: "~@2 d3, [e3,f#3,a3]",
  E: "[e3@32 ~@64 a2@5 [a2,d3,f#3,a3,d4,f#4]@43, [c#3,f#3]@48 ~@11 [c#4,e4]@21 a4@64, ~@2 [b2,d3,e3] a1@3 ~@3, ~@5 e2@7 d2@6, ~@4 c#5@2 ~@3]/3", // D F#5 C#m E7
  F: "~@5 e4@11 [a3,c#4,a4]@16 [e3,a3,c#4,a4]@16, [c#2,a2], ~@5 c#3@43, ~@5 e3@27 ~@16, ~ e4@2", // A F#m
  G: "a2@5 [a2,d3,f#3,a3,d4,f#4]@43, d2", H: "~@5 g3@11 [g3,a3,c#4,c#5]@32, e2, ~@5 [c#3,e4]@43",
  I: "~ a3, f#2, ~@5 [c#3,f#3,b3,d4,f#4]@43", // Bm
  J: "~@8 [c#4,d4,f#4,c#5,f#5,c#6]@13 [b3,d4,f#4,b4,f#5,b5]@5 ~ [b3,d4,f#4,b4,f#5,b5]@5 [b3,d4,f#4,b4,f#5,b5]@5 [a3,d4,f#4,a4,f#5,a5]@5 ~ [a3,d4,f#4,a4,f#5,a5]@5, [b0,b1]@5 ~@3", // Dmaj7 Bm D B
  K: "[a3,d4,f#4,a4,f#5,a5]@5 [g#3,d4,f#4,g#4,d5,f#5,g#5]@5 ~ [g#3,d4,f#4,g#4,d5,f#5,g#5]@5 [g#3,d4,f#4,g#4,d5,f#5,g#5]@8 [a3,d4,f#4,a4,f#5,a5]@8 [d3,f#3,d4,f#4,d5,f#5]@16", // D G#m7b5 D
  L: "~@8 [c#4,d4,f#4,c#5,f#5,c#6]@13 [d4,f#4,b4,d5,f#5,d6]@5 ~ [c#4,d4,f#4,b4,f#5,c#6]@5 [b3,d4,f#4,b4,f#5,b5]@5 [c#4,d4,f#4,c#5,f#5,c#6]@5 ~ [c#4,d4,f#4,b4,f#5,b5]@5, [b0,b1,f#2]@5 ~@3", // Dmaj7 Bm Dmaj7 Bm B5
  M: "[[a3,d4,f#4,a4,f#5,a5]@5 [b3,d4,f#4,b4,f#5,b5]@5 ~ [a3,d4,f#4,a4,f#5,a5]@5 [g#3,d4,f#4,g#4,f#5,g#5]@8 b5 [a4,f#5,a5]@7 [f#3,b3,d4]@16 ~@16 g#3@8 ~@8 d4@8 [d3,d4]@8, ~@3 [a3,d4,f#4] f#5@6 [f#3,b3,f#4,d5]@2, ~@4 [f#4,d5]@3 d4 [e3,e4,b4]@4, ~ [e1,e2], ~@7 d3 b3 [g#3,g#4]@3]/2", // D Bm D G#m7b5 D Bm D Bm …
  N: "~@5 [d3,g#3,b3,d4,g#4,b4,d5]@5 ~ [d3,g#3,b3,d4,g#4,b4,d5]@5 [d3,g#3,b3,d4,g#4,b4,d5]@5 [d3,g#3,b3,d4,g#4,b4,d5]@5 ~ [e3,g#3,b3,e4,g#4,b4,e5]@5 [d3,g#3,b3,d4,g#4,b4,d5]@15 ~, [f1,f2]@5 ~@3", // G#dim E G#dim F
  O: "~@3 a3 d4 [d3,d4], [f#1,f#2], ~ d3@3 [f#3,a3,f#4,d5]@2, ~ [f#3,d4]@2 a4@3, ~ [a3,a4] [e3,e4]@4", // D F# D A E
  P: "~@5 [d3,g#3,b3,d4,g#4,b4,d5]@5 ~ [d3,g#3,b3,d4,g#4,b4,d5]@5 [d3,g#3,b3,d4,g#4,b4,d5]@5 [g#3,b3,g#4,b4]@5 ~ [g#3,b3,g#4,b4]@5 [d3,g#3,b3,d4,g#4,b4,d5]@16, [g#1,g#2], ~@21 [d3,d4,d5]@11 ~@16, ~@9 [e3,e4,e5]@7", // G#dim G#m G#dim G# D E
  Q: "~@5 [d3,f#4], [f#1,f#2], ~ [d3,f#4]@3 [f#3,b3,d4,a4,d5,f#5]@2, ~ [f#3,d4,a4]@2 [a3,b4]@3, ~ a3 [e3,e4]@4", // D F# D Bm7 D Asus2 E
  R: "~@5 [f#3,a3,d4,f#4,d5,f#5]@5 ~ [f#3,a3,d4,f#4,d5,f#5]@5 [f#3,a3,d4,f#4,d5,f#5]@5 ~@11 [a3,d4,f#4,f#5]@5 [a3,d4,f#4,f#5]@5 ~ [a3,d4,f#4,b4,f#5,b5]@5, [b1,b2], ~@21 [f#3,a3,d4,f#4,d5,f#5]@11 [f#3,d5]@16, ~@9 [g#3,b3,e4,g#4,e5,g#5]@7, ~@37 [a4,a5]@11", // D Bm7 B D E A
  S: "~@3 e6@13 ~@3 e6@5, c#4@4 e5 a5@27 ~@3 c5 e5 a5@11, ~ e4@31 c4@16, ~@2 a4@30 ~ e4@15, ~@3 c#5@29 ~@2 a4@14",
  T: "~@7 e6@25 ~@6 e5@10, b3@4 d5 e5 a5@26 ~@3 e4 g#4 b4@11, ~ e4@31 e3@16, ~@2 a4@30 ~ b3@15, ~@3 b4@29 ~@2 d4@14",
  U: "~@15 e4, a1@19 g#2@2 c#3@3 e3@3 g#3@2 c#4@3 [e2,g4]@3 c3@2 e3@3 g3@3 c4@5, c#4@8 c#3@3 e3@2 a3@35, ~@3 e2@13 c#2@32, ~@5 a2@43", // Em
  V: "~@15 c4, a1@19 g#2@2 c#3@3 e3@3 g#3@2 c#4@3 [e2,e4,g4]@3 c3@2 e3@3 g3@3 e4@5, e4@8 c#3@3 e3@2 a3@35, c#4@5 a2@43, ~@3 e2@13 c#2@32", // Em
  W: "~@15 e2, a1@35 c#3@2 a2@3 e2@3 [a2,a4]@5, c#4@8 c#3@3 [e3,e4]@2 a3@3 a4@11 e3@2 c#3@3 [e3,c#4]@16, ~ e2@6 c#4 a3@8, ~@5 a2@11 c#4@3 e4@29", // A E C#m
  X: "~@15 f#2, b4@21 [f#3,c#4]@3 d#3@3 [b2,a3]@2 f#2@3 [b1,a3]@3 f#2@2 b2@3 [d#3,f#3]@3 b2@5, b1@19 b3@29, ~@3 f#2@2 b2@3 d#3@3 [f#3,f#4]@2 b3@3 [d#4,f#4]@32, ~@5 a4@43", // F#5 B7 D#m F# D#m
  Y: "~@15 c#4, e2@21 d3@3 f#3@3 a3@2 d4@3 c#2@3 g#2@2 c#3@3 e3@3 [g#3,e4]@5, ~ b2@15, ~@5 d3@6 g#3@8 a2@29, ~@8 f#3@5 d4@3 d2@32", // C#m
  Z: "~@16 d4@3 ~@26 f#4@3, b1@11 f#3@2 b3@3 d5@3 d4@2 f#4@3 [c#4,c#5]@3 d4@2 f#4@3 [a#3,a#4]@3 d4@2 f#4@3 [b3,b4]@3 d4@5, ~ f#2@15, ~@5 b2@43, ~ d3@5", // C# A# B
  AA: "~@5 f#4@3 ~@13 f#4@3 ~@21 e5@3, a#3@27 d5@2 f#5@3 [e3,g#3,e5]@3 c4@2 e4@3 g#4@3 c5@5, f#5@11 d5@8 d4@29, ~@3 d4@10 f#5@11 f#4@24, ~ f#4 b3@4", // E
  AB: "~@15 e5, a2@21 c#4@3 e4@3 g#4@2 c#5@3 [e3,g3,e5]@3 c4@2 e4@3 g4@3 c5@5, c#5@16 e3@3 g#3@29, ~@3 e3@5 c#4@3 e4@2 a4@35, ~@5 a3@43", // Em
  AC: "~@15 a5, g3@37 a4@3 [c5,e5]@3 c6@5, a3 a4 a3@4, ~@3 c4@5 g4@5 c5@3 c4@5 g4@3 a4@3 a5@8 g4@13, ~@5 e4@6 e5@8 e4@5 c5@5 e5@3 [c4,e4]@16", // C
  AD: "~@15 f5, e4@37 a4@3 d5@3 a5@5, ~@3 f4@8 a5@5 d4@5 a4@6 a5@5 [c#4,d4]@16, ~@5 a4@8 f5@6 f4@5 d5@5 f5@6 f4@13, ~ e5@5", // Dmaj7
  AE: "~@15 a5, d6@32 [a3,c4,f6]@3 f4@2 a4@3 c5@3 a6@5, c4@21 a4@6 a5@2 f5@19, d4@5 a4@6 a5@5 [b3,d4]@32, ~@3 f4@5 d5@5 f5@6 f4@5 d5@24", // F Bm
  AF: "~@5 d4@3 ~@37 f5@3, [g3,d5]@27 a4@2 f4@3 [e3,f5]@3 a3@2 c4@3 f4@3 [c5,a5]@5, ~ b3@15, ~@8 d4@5 f4@6 a3@2 c4@3 d4@24, ~@11 a4@5 f3@32", // G5 Fmaj7 F
  AG: "~@15 d3, c6@16 [c5,e5]@3 d5@2 c5@3 [a4,d5,f5]@3 f4@2 d4@3 c4@3 d4@2 [c4,c5,e5]@3 a3@3 [f3,b4,d5]@5, d3@11 [f4,f5]@2 a4@3 g5@32, a5@5 b5@43, ~@3 a3@2 [c4,g5]@3 d4@3 a5@37", // C Dm C Bdim F C5
  AH: "~@15 a2, c5@16 [c4,e4]@3 a3@2 [f3,d4,f4]@3 d3@3 [c3,c4,e4]@2 a2@3 [d2,f3]@3 a2@2 [d2,b3,d4]@3 a2@3 [d2,a3,c4]@5, d2@11 [f3,f4]@2 a3@3 g4@32, a4@5 b4@43, ~@3 a2@2 [c3,g4]@3 d3@3 a4@37", // C Dm C Dm G D7 F C5
  AI: "~@15 b2, d3@27 e2@2 b2@3 [e2,g#3,b3,d4]@3 b2@2 e2@3 b2@3 [e2,b3,d4,f#4]@5, b3@16 e2@3 b2@2 e2@3 b2@3 a3@21, a3@11 e2@2 b2@3 f#3@32, e2@3 b2@2 e2@3 b2@3 e3@37", // E7 Bm
  AJ: "[~@15 b2 ~@15 b1, d3@27 e2@2 b2@3 [e2,g#3,b3,d4]@3 b2@2 e2@3 b2@3 [d4,f#4]@10 e4@6 [e2,d4,f#4]@2 b2@3 f#4@11 e3@2 b2@3 [e3,f#3,d4,e4]@3 b2@2 [e2,g#3]@3 b2@3 [e2,b3]@5, b3@16 e2@3 b2@2 e2@3 b2@3 a3@16 [e2,b3]@5 e2@5 [g#4,c#5]@43, a3@11 e2@2 b2@3 f#3@32 a3@5 e2@3 b2@3 b4@37, e2@3 b2@2 e2@3 b2@3 e3@37 ~@3 b1@13 [e3,a3,d4]@3 b2@2 [e3,f#3]@3 b3@3 a3@21]/2", // E7 D E E5 C#5 Dsus2 Esus2
  AK: "~@15 b2, a3@5 e2@3 b2@3 [e2,b4]@5 [e3,a3,d4]@3 b2@2 [e3,f#3]@3 b3@3 [e3,a3]@2 b2@3 [e3,f#3,d4,e4]@3 b2@2 [e3,g#3]@3 b2@3 [e3,b3]@5, [d4,f#4]@5 e4@6 [d4,f#4]@2 b2@3 f#4@32, e2@5 [g#4,c#5]@43, ~ b1@15", // E5 Dsus2 Esus2 A5 D E E5 D …
  AL: "~@15 b4, d3@27 d4@2 b3@3 [g#3,d5]@3 b3@2 d4@3 f#4@3 [g#4,f#5]@5, b4@19 b3@2 d4@3 f#4@3 a3@21, a3@11 d4@2 b3@3 f#3@32, ~@3 b3@2 d4@3 f#4@3 e3@37", // G#dim G#7
  AM: "[~@15 f#5 ~@15 f5, b5@67 f4@5 b4@5 g5@8 a4@3 b4@3 d5@5, d4@8 b4@8 d4@5 a4@6 d5@5 d4@5 a4@3 b4@3 d5@5 ~@3 f4@8 d5@5 d4@5 a4@6 d5@5 [d4,b5]@16, ~@3 f#4@8 d5@8 f#4@5 b4@5 g#5@19 ~@5 a4@8 f5@22 f4@13, ~@5 a4@8 f#5@22 f#4@13 d4@8 b4@8 a5@32]/2", // G
  AN: "[~@2 c#6@2 c#4@2 ~@4 c#4@2 ~@2 a5 ~@7 b3@2, c#4@11 e5@2 g#5@3 e6@16 c#6@21 [g#5,b5]@3 b4@5 f5@3 [g#5,b5]@37 [f#5,a5]@3 a4@5 e5@3 f#5@8 [a5,c#6]@8 c#4@8 [f#5,a5]@13 [e5,g#5]@3 g#4@5 d5@3 [e5,g#5]@32, ~@3 e4@45 c#4@11 [c#5,a5,c#6]@37 ~@5 f#4@43 ~@3 d4@45, ~@5 g#4@43 ~@3 f4@45 c#4@11 [c#5,g#5,b5]@37 ~@5 e4@43, ~@8 c#5@40 ~@5 g#4@43 ~@3 e4@45 b3@11 [b4,f#5,a5]@37]/4", // G#m F#m A F#m E F#m C#7 B7
  AO: "[~@10 [c#3,g#3,b3,f4]@2 ~@11 e2, a3@11 e5@2 b4@3 [d5,f#5]@5 b5@6 f#5@5 c#5@21 f#3@6 [b3,c#5]@2 d4@3 [f#4,b4,d5]@16 c#5@21 a3@6 b4@2 f#4@3 [a4,c#5]@5 f#5@6 c#5@5 [d3,a4,b4] f#3 a3 b3@2 c#5@6 b4@10 [f#4,a4]@3 a3@3 [c#4,g#4,b4]@2 e4@3 [f#4,a4]@16 [b2,d3,g#3,e4,g#4]@16, ~@3 b3@8 [a4,g#5]@21 [g#3,e5] b3 c#4 e4 g#4 f#5@6 e5@10 [b4,d5]@3 g#3@3 e5@37 ~@5 [a4,c#5]@3 c#4@40 ~@3 e3@45, ~@5 d4@43 g#2@48 ~@3 f#3@8 [e4,d5]@37 ~@5 f#3@43, ~@5 [d5,f#5]@3 f#4@40 ~@3 d3@45 e3@48 c#3@48]/4", // C#7 D Bsus2 Bm A Bm7 F#m C#7 …
  AP: "[~@48 a2@5 [a2,d3,f#3,a3,d4,f#4]@43, [a1,e2] a4@2, ~@5 c#3@43 [d2,c#5]@48, ~@11 [c#4,e4]@37 ~@48, ~ [g3,c#5]@2 ~@3]/2", // D A5 Dmaj7 C#m Gdim
  AQ: "~ [c#4,a4]!2, e2, ~@5 [c#3,e3]@43, ~@5 [a3,e4]@11 [g3,a3,e4]@32, ~@11 b3@37", // F#m C#m A5 A7
  AR: "~@5 [c#3,f#3]@11 ~@16 a3@16, f#2, ~@5 [b3,d4,f#4]@43, ~ [c#3,f#3]@2", // F#5 Bm F#5
  AS: "~ [a3,c#4] [e3,a3,c#4], c#2, ~@5 e3@27 ~@16, ~@5 a3@11 f#4@32, ~@11 b3@37", // A
  AT: "~ [d4,f#4] [a3,b3,d4,f#4], b1, ~@5 f#3@43, ~@5 a3@11 [b2,a4]@32, ~@5 d4@6 e4@37", // D Bm7 B7
  AU: "~@11 g#4@5 e4@16 [e3,g#3,d4,e4]@16, e2, ~@5 f#4@43, ~@5 [g#3,d4]@11 [g#4,c#5,e5]@32, ~ b2@5", // E7 G#dim C#m
  AV: "~@15 a3, a1@16 c#2@16 a1@3 e2@2 a2@3 c#3@3 e3@5, ~@3 e2@16 g#2@29, ~@5 a2@16 c#3@3 e3@3 g#3@21, ~@8 c#3@3 e3@2 a3@16 c#4@19",
  AW: "~@2 [c4,e4,a4], c#2@13 c#4@3 [e2,e4,g4]@3 c3@2 e3@3 g3@3 c4@2 d4@19, ~ g#2@15, ~@5 c#3@43, ~@8 e3@3 g#3@37", // Am Em
  AX: "~@15 a4, a2@19 g#3@13 a2@3 e3@2 a3@3 c#4@3 e4@5, ~ e3@6 c#4@2 g#4@7, ~@5 a3@19 e4@5 c#5@19, ~@8 c#4@3 e4@2 g#4@3 c#3@32",
  AY: "~@2 a5, c#3@11 g#4@2 c#5@3 [e3,e5,g5]@3 g3@2 c4@3 d4@3 g4@2 c5@19, ~ g#3@15, ~@5 c#4@43, ~ e4@5", // Em
  AZ: "~@2 [e2,c6], [e3,e5,g5]@11 g4@2 c5@3 a5@32, ~ g3@15, ~@5 c4@43, ~ d4@5", // C Em
  BA: "~@43 a5@5, [a1,c#6,e6]@11 e3@2 a3@3 c#4@5 e4@6 a4@5 c#5@5 e5@11, ~ e2@15, ~@5 a2@43, ~ c#3@5", // A
  BB: "~@7 e6@41, a3@4 e5 a5 c#6@42, ~ e4@47, ~ a4@23, ~ c#5@15",
})).s("gm_piano").gain(0.2)

stack(piano)

More by Debussy