Strudelify

Jimbo's Lullaby

Claude Debussy

KeyB♭ majorTempo120 bpm
0:00/0:00
// Jimbo's Lullaby — Claude Debussy
// 120 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 96 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@6 B@3 C D@3 E@8 ~ F G@2 H@6 I@6 J@4 K@3 L@5 M@7 N@2 O@7 P@5 Q@7 R@6 S@4 T@8 ~>".pickRestart({
  A: "[f2@11 ~@19 f2@5 g2@5 c2@5 d2@6 ~@22 d2@5 c2@5 c2@5 d2@3 ~@3 d2@11 c2@10 f2@11 ~@10 [f3,g3]@2 ~@3 g3@2 ~@39 [f2,g2]@3 ~@7, ~@11 d2@23 ~@17 f2@26 ~@50 d2@65, ~@141 f3 ~@50]/6", // Fsus2
  B: "[~@3 c2@6 a1@5 ~@5 f1@6 g1@20 a1@6 c2@5 g1@11 ~@20 a1@9, ~@14 g1@11 ~@42 d2@14 ~@15, ~@77 c2@13 ~@6]/3",
  C: "~ g1@5 ~@5 g1@11 a1@10, ~@3 f1@4 ~@9", D: "[c2@13 ~@26 f3@25 [f3,g4]@32, ~@13 [g1,g5]@64 ~@19]/3",
  E: "[~@173 g2@2 ~@3 g2@2 ~@27 [f2,g2] ~@48, ~ eb4@64 ~@10 eb4@21 eb4@63 ~@97, ~@12 [f3,g3,f4,g4]@37 [f3,g3]@36 [f3,g3,f4,g4]@41 ~@28 eb2@45 ~@57, ~@39 db4@64 ~@12 db4@44 ~@14 f2 ~@4 f2 ~@19 db2@55 ~@3]/8", // Fsus2
  F: "~@10 [f1,g2]@5 ~@17", G: "[~@26 [f3,g3,f4,g4]@10 ~@9 f2@19, ~@9 d3@7, ~@36 d4@19 ~@9]/2",
  H: "[~@10 c3@30 [g3,f4]@11 ~@62 c4@4 ~@6 d4@5 ~@10 f2@9 ~@10 f3@5 ~@24 c5@5 a4, g3@40 ~@35 g4@42 c4@19 ~ c4@12 ~@8 d4@35, [f4,g4]@19 ~@52 f4@9 c4@29 d4@11 ~@8 [c3,d4]@12 ~@52, ~ f3@39 f3@5 ~@6 d3@33 d4@6 f4@30 ~@27 f4@13 ~@32, ~@10 d4@20 ~@21 d4@29 [f3,g3]@38 [f3,g3]@22 ~@52]/6", // G7 Fsus2 Csus2 Fsus2
  I: "[~@37 c5@5 ~ f3@3 ~@34 g4@5 f4@5 ~@9 a4@9 ~@29 f2@18 ~@10 ab2@2 ~@19 bb2@2 ~@4, ~@4 f3@28 a4@10 g4@21 f2@17 f3@10 g4@19 ~@67 g2@16, ~@4 g4@9 g4@10 f2@20 ~@19 c5@10 bb1@12 ~@71 ab1@33 ~@4, ~@8 f4@35 g3@28 a4@9 [c4,d4]@38 [f3,g4]@38 ~@9 bb2 ~@4 [ab2,bb2]@11 ~@5 ab2 ~@5, ~@14 d3@30 ~@9 [d3,d5]@31 ~@24 c5@48 ~@36]/6", // Csus2 Fsus2 Absus2 D
  J: "[~@12 f2@5 f2@4 ~@9 c3@4 [ab3,bb3] ~@13 ab2@2 ~@2 ab2@5 g2@9 ab2@8 ~@10 [bb2,c3] ~@8 bb3@2 ~@16 ab2@9 [bb3,db4] ~@3 [bb3,db4,gb4]@2 ~@2, ~@3 ab1@23 [ab2,bb2]@10 ~@11 bb2@2 ~@3 bb2@14 ~@9 f2@27 ~@18 bb2@8, ~@21 eb2@14 ~@4 ab1@58 ~@5 ab1@18 ~@8, ~@93 c4 ~@26 gb4@2 ~@6]/4", // Absus2 Bbsus2 Bbm Gb Absus2
  K: "[~ [ab2,ab3,c4,f4]@9 [ab3,c4,f4]@9 ab2@9 [gb3,bb3] ~@3 [bb3,eb4]@2 ~@3 [ab2,ab3]@8 ~ [ab1,d4,f4]@8 ab2@9 [db4,gb4] ~@3 [bb3,db4,gb4] ~@4 [c4,f4] ~@3 [ab3,f4] ~@3 f4 ab3 ~@3 [ab3,c4]@4 ab2@7, ~@10 ab1@12 ~@6 bb2@9 f3@2 ~@6 bb4@10 ~@8 bb3@2 ~@7 ab3@2 ~@11 f4 ~@10, ~@28 eb4@2 ~@2 gb3 ~@3 db4@10 b3@5 ~@12 bb2@9 ab2@9 ab1@10 ~@5]/3", // Fm Gb Eb5 Ab Ddim Gb5 Gb F5 …
  L: "[~ [bb3,eb4] ~@4 [gb3,bb3] ~@13 ab3@5 ~@30 ab1@10 ~@9 bb2@9 ab2@9 bb1@8 ~ a1 ~@3 a2 ~@3 b1 ~@4 b2 ~@4 a1 ~@3 a2 ~@3 b1 ~@3 b2 ~@3 eb3@5 a2 ~@3 b1 ~@3 b2 ~@3 a1 ~@3 a2 ~@3, ~ gb3@2 ~@3 eb4@2 ~@2 db4@10 [ab1,f3,eb4]@9 ab2@8 bb2@9 ab2@12 ~@7 ab2@18 ~@35 db3@17 a1 ~@24, ~@2 bb2@9 [ab2,gb3,bb3]@12 ~@5 bb3@54 ~@70 db3@8, ~@28 e3@39 ~@34 eb3@19 ~@24 eb3@10 ~@6, ~@29 g3@54 ~@18 g3@31 ~@3 g3@25]/5", // Eb5 Gb Fm7 Ebm
  M: "[~ b1 ~@3 b2@2 ~@2 a1 ~@3 a2 ~@3 b1 ~@3 b2 ~@3 db2 ~@3 db3 ~@3 eb2 ~@2 eb3@2 ~@2 f2 ~@3 f3 ~@4 eb2 ~@3 eb3 ~@3 db2 ~@3 db3 ~@3 b1 ~@3 b2@3 ~@5 a2 ~@4 b1 ~@3 b2 ~@3 a1 ~@4 a2 ~@2 b1 ~@3 b2 ~@4 a1@2 ~@2 a2@3 ~ b1 ~@3 b2 ~@3 a1 ~@3 a2 ~@8 b2@3 ~@2 a1 ~@3 a2 ~@3 b1 ~@2 b2 ~@3 db2 ~@3 db3 ~@3 eb2 ~@3 eb3 ~@3 f2 ~@3 f3 ~@3 g2 ~@3 g3@2 ~@2 a2@2 ~@2 a3 ~@3 b2 ~@3 b3 ~@13 [g3,b3] ~@3 [g3,b3] ~@3 [db3,gb3,bb3]@2, ~@9 g4@30 ~ db4@32 ~ g3@30 ~@3 g3@33 ~ [b4,g5,b5]@56 ~@14 db4@8 ~@6, ~@9 [g3,eb4]@26 ~@5 db5@26 ~@24 db3@17 ~@16 db3@16 ~@66 [db3,g3,b3]@8 ~@11, ~@41 a4@32 eb3@20 ~@13 eb3@8 eb3@10 ~@7 b1@8 ~@85]/7", // G Gb Em Cm Dbm7b5
  N: "[~@2 bb3@2 ~@3 gb3 ~@3 gb3 ~@3 [db3,f3,a3]@4 ~@4 [f3,a3] ~@3 a3@2 ~ db3@3 ~@6 [ab3,c4]@8 db3@4 ~@5 [a3,e4]@8, ~@2 db4@8 ~@9 db4@7 ~@9 db4@7 ~@10 db4@8 ~@4, ~@2 gb3 ~@3 bb3@2 ~@2 bb3@2 ~@15 f3 ~@2 [e3,ab3]@9 ~@8 [g3,b3]@10 ~@7]/2", // Dbaug F Ab A5 E G
  O: "[[b3,g4]@9 [a3,e4]@8 ~@18 db4@5 db3@6 ~@16 [e3,a3]@8 g3@4 ~@5 [a3,e4]@8 ~ db3@5 db4@13 a3@10 b3@8 ~@12 db3@4 ~ db3@4 ~@8 db3@4 gb2@4 db3@3 ~ gb2 ~@3 gb2 ~@2 f2 ~@3 f2 ~@3 db3@2 ~@2 f2 ~@7 db3@3 ~ [e2,bb3] ~@3 [e2,db3]@3 ~@5 db3@4 ~@4 db3@2 ~@2 gb2@4, ~@17 b3@18 ~@52 b3@20 ~@117, ~@18 g3@17 [g3,b3]@35 ~@18 g3@20 ~@21 db3@7 ~@9 db3@8 ~@16 db3@7 ~@36 bb2@8 ~@4, ~@22 db4@13 ~@23 db4@31 ~@35 db4@9 db4@16 db4@9 ~@7 db4@8 ~@23 db4@2 ~@26, ~@27 [e3,a3]@11 ~@15 db3@17 [db3,b3]@18 ~@36 gb2@32 ~@24 f2 ~@7 e2@7 ~@9 eb2@8 ~@12]/7", // Em A5 Edim Dbm G A5 Db7
  P: "[db3@3 ~ db4@4 gb2 ~@3 f2 ~@2 f2 ~@3 [f2,db3] ~@3 f2 ~@3 eb4@8 ~ eb4@3 eb4@3 ~ db4@2 ~@2 db4@2 ~@2 db4@2 ~ db4@5 gb3@8 ~ c4@2 ~ c4@4 ~@10 eb2@7 ~@18 bb4@4 ~@30 bb1@16, ~@4 gb2 ~@3 db3@7 ~@12 [bb2,bb3]@15 ~ [f3,bb3]@16 c4@5 ~@3 g3@8 b3@17 eb3@64 ~@4, ~@36 eb2@7 bb2@11 ~@5 [bb2,bb3]@17 [bb2,ab3]@16 bb3@44 eb2@16 ~@8, ~@51 eb2@9 ~@8 eb2@9 ~@7 gb4@8 eb4@27 eb2@8 db2@33, ~@92 bb2@9 eb2@9 bb2@50]/5", // Db Bb Bb5 Bb Bb7
  Q: "[~@61 bb3@3 ~@17 f5@13 ~@5 bb4 ~@3 a4 ~@4 a4@4 ~ a4@2 ~@2 [a4,g5]@5 g4@4 d5@4 ~ g4 ~@3 g4@4 ~@15 c5@5 ~@6 d5@4 bb4 ~@3 bb4 ~@4 a4 ~@3 a4 ~@4 f5@9 ~ g4@8 g4 ~@4 g4@2 ~@12, ~ bb3@45 eb2@16 ~@19 f2@63 ~@5 d5@10 [bb4,c5] bb1@64, ~ eb3@27 eb2@9 db2@25 ~@50 f5@10 ~@8 f5@39 d5@9 c5@9 a4 ~@8 d5@28, ~ eb4@23 bb4@32 b1@25 bb1@69 f2@70 ~@4, ~ bb2@8 eb2@10 bb4 bb2@42 ~@32 d5@20 ~@8 c5@8 ~@10 f4@30 ~@54]/7", // A7 Bbsus2
  R: "[~@5 a4@5 ~@31 c5@5 ~@41 f4@5 ~@43 bb1@4 a1 ~@4 a1 ~@3 a1 ~@4 a1 ~@4 ab1@7 ~@2 ab1 ~@3 ab1@2 ~@13 d2@5 f4, ~ [f2,c5]@9 [f3,g3,c4]@37 [f3,g3,g4]@27 [bb1,a4]@11 ~@16 a4@14 ~@62 g1@15, ~@10 g4@9 g4@9 f2@9 [bb1,a4]@10 ~@19 f2@19 ~@16 f2@21 [f2,g4]@66 ~@4, ~@15 f4@32 ~@18 c5@17 d4@106 ~@4, ~@20 c3@27 ~@9 [c3,d5]@26 [f3,g4]@10 g4@12 ~@6 c5@29 ~@53]/6", // F5 Fsus2 Bbmaj7 Fsus2 Csus2 Fsus2
  S: "[~@6 bb1@7 ~@3 bb1@2 ~@2 bb1@2 ~@2 a1@2 ~@3 a1@2 ~@3 a1 ~@4 a1 ~@4 ab1@6 ~@48 gb1@3 ~@17 d2@10, ~@6 [c4,d4,g4]@71 ~@32 f1@19, ~@3 f2@32 ~@9 [c3,d3]@20]/4", // Csus2
  T: "[~@13 gb1@3 ~@8 f1@10 d2@14 ~@20 gb1@17 ~@3 f1@18 ~@68 eb5@64 ~@18, ~@3 d3@45 ~@61 d1@39 ~@108, ~@3 c3@35 ~@10 [c3,d3]@73 ~@12 bb0@121 ~@2, ~@133 [f3,g3]@64 ~@59]/8", // Csus2 Fsus2
})).s("gm_piano").gain(0.24)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  ~@11 A B@2 C@2 D@2 ~@2 E@3 ~ F G@4 H@7 ~@3 I ~@3 J ~@7 K ~@6 L@2 ~ M@2 N ~ O@2 ~ P@3 Q@2 ~@2 R S@7 ~ T@2 ~@7 U@3
>`.pickRestart({
  A: "~ [f3,g3,f4,g4]@6 [g3,f4,g4]@25", B: "[[g3,f4]@11 ~@5]/2", C: "[~@17 [f4,g4]@36 ~@11]/2",
  D: "[~@30 [f3,g3,f4]@33 ~, ~@29 g4@34 ~]/2", E: "[~@74 [g1,f2]@5 ~@17, ~@6 bb1@7 ~@11, ~@44 gb1@35 ~@17]/3",
  F: "~@23 [bb1,c4,d4]@9, ~@3 c3@29, ~@4 c4@19 ~@9, ~@13 g4@19, ~@7 f4@9", // Bb
  G: "[~@30 [c4,d4]@13 ~@66 bb1@10 ~@9, ~@10 d3@32 ~@9 c3@39 [c3,d3]@29 ~@9, ~@10 c4@19 bb1@13 ~@29 bb1@38 ~@19, ~@20 [f2,g4]@23 ~@18 f2@38 f2@20 ~@9, ~@5 f4@5 ~@22]/4", // Csus2 Fsus2
  H: "[d3@12 ~@7 bb1@3 ~@7 g3@5 ~@24 bb1@10 ~@28 bb1@11 ~@37 g3@10 ~@56 bb1@10 ~@4, ~@39 [c3,d3]@30 ~@9 c3@30 ~@9 c3@31 ~@6 [c3,d3]@18 bb1@37 ~@15, ~@48 f2@20 [g3,c4,d4]@39 [c4,d4]@37 ~@20 f2@11 ~@7 [g3,c4,d4]@38 ~@4, ~@191 [c3,d3]@29 ~@4]/7", // Csus2 Gsus4 Csus2 Gsus4 Csus2
  I: "~ bb2@7 ~@8", J: "~@12 c4 ~@4 c4@2 ~@13", K: "~@9 a1@3 ~@20",
  L: "[~@5 db3@12 ~ db3@20 ~@8 db3@7 ~@11, db4@5 ~@27]/2", M: "[~@10 e3@9 ~ g3@8 bb3@33 ~@3, ~@10 db3@17 ~@37]/2",
  N: "~@5 bb3@2 ~@25", O: "[~@4 bb3@5 ~@18 eb3@15 ~@22]/2",
  P: "[~@48 bb3@4 ~@4 eb2@9 ~@31, ~@18 bb4@47 ~@31, ~ eb4 ~, ~@52 bb3@13 ~@31]/3",
  Q: "[~@23 bb3@6 ~@6 eb2@13 ~ bb4@13 bb4@2, ~@5 eb4@43 ~@16, ~@7 eb3@17 ~@8]/2", R: "~@31 a4",
  S: "[~@33 d4@9 ~@10 d3@27 [c4,d4]@36 g3@10 [c3,d3]@11 ~@7 bb1@19 bb1@4 ~@58, ~@24 f4@18 d4@37 ~@36 c4@105 ~@4]/7", // Csus2
  T: "[~@22 ab1@2 ~@4 ab1@17 g1@10 ~@9]/2", U: "[~@28 db5@63 bb0@4 ~]/3",
})).s("gm_piano").gain(0.08)

stack(piano, piano_soft)

More by Claude Debussy