Strudelify

The Little Shepherd

Claude Debussy

KeyE majorTempo120 bpm
0:00/0:00
// The Little Shepherd — Claude Debussy
// 120 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 62 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@4 B@8 C@4 D@8 E F@2 G@8 H@8 I@6 ~ J K L@5 M@5>".pickRestart({
  A: "[~@34 e5@4 ~@12 c#5@2 b4@7 b5@11 g#5@44 ~@14, g#5@41 ~@4 e5@8 ~@75, ~@29 f#5@9 d5@10 d5@5 ~@75]/4",
  B: "[~@16 d5@27 ~@40 f5@4 d5@56 ~@14 c#5@5 ~ c#5@5 d5 ~ e5@4 d5 ~ c#5@4 ~@7 c#5@4 d5@2 ~@2 f5@2 e5@2 d5 ~ c#5@2 b4 ~@9 d5@3 b4@40, ~@14 e5@7 ~@22 f5@4 ~@33 g5@9 ~@73 b4@2 ~@16 b4@2 g4@12 g#4@11 g4@34 ~@17, ~@45 d5@42 ~@70 g4@12 ~ g#4@16 b4@2 ~@17 c#5@9 ~@42, ~@181 f4@24 ~ e4@33 ~@17, ~@181 c#5@6 ~@6 e5@3 ~@60]/8",
  C: "[~@4 c#5@5 b4@2 c#5@4 d5@2 e5@5 ~ c#5@5 ~@2 c#5@5 ~@2 c#5@4 ~@6 f5@3 e5@3 ~@4 b4@3 c#5@9 ~@50 g#4@9, ~@22 d5@2 ~@4 b4@5 ~@2 b4@6 d5@8 ~@4 d5@6 ~@10 d5@4 ~@19 f#4@19 ~@2 a4@15, ~@44 e4@14 ~@2 d4@51 ~@17, ~@44 e5@5 ~@6 c#5@4 ~ f4@37 ~@10 e4@21, ~@71 b4@43 ~@14]/4",
  D: "[f#4@11 ~ e3@34 ~@24 c#3@4 ~@47 [c#6,e6]@55 ~@15 g#4@4 b4@4 c#5@21 ~@18 b4@4 g#4@7 f#5@7, ~@11 e4@63 ~@21 e2@64 ~@69 d#5@16 ~@12, ~@46 e3@28 [a2,e3,c#4,e4]@64 ~@82 e5@11 ~@4 c#5@9 ~@12]/8", // C#m A
  E: "~@17 b4@4 ~@11, ~@2 e5@17 ~@13, ~@3 d#5@2 ~@3, ~@15 c#5@5 ~@12",
  F: "[~@27 g#4@3 ~@14 c#4@20, ~@13 d#5@17 ~@6 d#4@28, ~@22 c#5@8 e4@11 ~@23, ~@25 b4@5 f#4@34]/2",
  G: "[~@18 a3@6 [g#3,b3,d#4]@6 e4@3 ~@40 e4@4 ~@9 d#4@3 ~@64 f#2@2 ~@57 [g#5,b5]@44, ~@3 d#5@13 g#4@2 ~@19 g#3@6 c#4@27 f#4@7 c#4@13 ~@65 b3@64 ~@37, ~@11 [d#4,c#5]@6 f#4@13 ~@6 [d#4,c#5]@5 g#4@4 ~@12 [c#3,a4]@22 ~@10 [d#3,b3]@64 ~@103, ~@14 b4@3 c#4@4 ~@9 [f#3,d#5]@13 f#4@24 g#4@10 ~@179, ~@39 b4@5 a3@34 [f#2,e3]@14 ~@58 g#2@5 ~ [e2,b2,g#3]@64 ~@36]/8", // G#m D#7 F#m G#m D#m F#7 E
  H: "[~@21 d5@2 ~@2 f#5@2 g#5@23 ~@18 f5@4 d5@3 b5@3 ~@6 f5@4 d5@27 ~@17 f5@6 ~ f5@4 f#5@2 ~@5 f#5@2 f5@5 ~@2 f5@4 d#5@2 f5@4 f#5@2 ~@4 g#5@2 ~@2 f5@2 d#5@2 ~@61 [g#4,c5]@4 ~@2 [f#4,a#4]@2 f#5@4, ~@23 f5@4 ~@23 a5@11 ~@3 f#5@8 ~@8 g#5@8 ~@44 c#4@52 f#4@29 ~@6 [d#4,f#4]@14 a#4@15 f5@5 ~@3, ~@58 g#5@14 ~@6 a5@10 ~@44 a#4@13 ~ a4@13 g#4@13 a4@11 c#5@7 d#5@3 ~@14 [f4,g#4]@16 ~@9 f5@8 d#5@10 ~@6, ~@82 f#5@6 ~@27 f#5@23 d#5@2 ~@5 g#5@7 ~@5 d#5@4 ~@10 g#5@3 a5@2 ~ f#5@4 ~@2 a#4@29 ~@11 c#5@9 c#5@18 ~@6, ~@191 c5@34 ~@3 d#5@7 ~@4 f#5@12 ~@5]/8", // G# F# D#m Fm
  I: "[~@23 a#5@7 c6@9 ~@24 f4@8 ~@2 d#4@28 ~@12 c#6@3 ~@36 d#4@31 ~@9, ~ [c#5,f5,g#5]@13 [c5,d#5]@19 ~@6 c#6@3 ~@59 c6@16 ~@75, ~@8 a#5@7 ~@3 g#5@12 c#5@42 ~@44 a#5@44 ~@32, ~@9 f#5@21 [a#3,f4]@33 [d#3,a#4]@40 ~@89, ~@40 a#5@31 g4@32 ~@89]/6", // C# Cm A#5 D#5
  J: "~@6 c#5@6 b4 c#5@5 d5@2 e5@7 c#5@5",
  K: "~@2 c#5@6 ~ c#5@5 d5@2 ~@2 e5@3 f5@3 e5@2 d5@2 ~ c#5@2 b4, ~ b4@3 ~@4 b4@2 ~@22, ~ f4@7 ~@8",
  L: "[~@63 g#4@8 ~@87 b2@2, ~ f4@35 ~@35 f#4@20 ~@39 e3@30, ~ c#5@13 ~@146, ~@8 d5@7 ~@145, ~@10 b4@61 ~@17 e4@64 ~@3 c#3@5]/5",
  M: "[~@71 e6@79 ~@10, ~ e3@32 ~@47, ~@17 e2@57 ~@6]/5",
})).s("gm_piano").gain(0.24)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<~@3 A@2 ~@3 B@2 ~ C@3 ~ D E@6 ~@2 F@5 G@3 H@3 ~@9 I@8 J@5 K@5>".pickRestart({
  A: "[~@13 d5@35 ~@16, ~@3 f#5@14 ~@47, ~@7 e5@10 ~@47]/2", B: "[~@30 f4@23 ~@11]/2",
  C: "[~@37 d4@12 ~@28 a3@18 ~, ~@10 [d#4,f#4]@32 ~@7 [a3,e4]@14 d4@19 ~@14, ~@36 f4@12 ~@14 f4@19 ~@15]/3", // D#m A5
  D: "~@11 c#4@21", E: "[~@9 g#4@3 ~@60 b2@2 ~@21 a1@69 ~@28, d4@71 ~@121, [b2,a3]@4 g#3@21 ~@39, ~@68 d3@7 ~@117]/6",
  F: "[~@19 g#4@27 ~@16 [a3,b3]@37 ~@10 b3@5 ~@19 b3@7 ~@20, ~@99 [a3,e4]@15 ~@12 a3@13 ~@21, ~@50 f#3@7 ~@23, ~@54 g#3@3 ~@23]/5", // Asus2 A5
  G: "[~@14 a3@11 b2@38 ~@21 a2@8 ~@4, ~@25 a3@64 ~@7, ~@63 b2@28 ~@5]/3", H: "[~@23 [e1,b1]@64 ~@9]/3",
  I: "[~@31 a#3@38 [a#3,f4]@37 ~@45 d#4@47 [d4,f4]@13 ~@6 d5@2 ~@7 d4@14 ~ [a3,e4]@15, ~@69 c#5@38 d#3@64 ~@85, ~@53 a#4@34 ~@41, ~@106 a#3@64 ~@42 [a3,e4]@15 ~@29, ~@106 f4@11 g4@64 ~@75]/8", // A#5 Dm A5
  J: "[~@32 f#4@16 ~@9 a4@14 ~@18 g#3@64 d3@7, ~ d4@47 [c#4,e4]@23 d4@68 ~@21, ~@71 [b2,a3]@18 e3@41 ~@30, ~@85 g#4@7 ~@68]/5", // C#m B7
  K: "[~@71 c#6@79 ~@10, ~ [a2,c#4,e4]@32 ~@47, ~@17 a1@59 ~@4]/5", // A
})).s("gm_piano").gain(0.08)

stack(piano, piano_soft)

More by Claude Debussy