Strudelify

Sylvia: Pizzicato

Leo Delibes

KeyE♭ majorTempo120 bpm
0:00/0:00
// Sylvia: Pizzicato — Delibes Leo
// 120 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 65 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@2 B@2 C@3 D E F G H I@2 J K L M N O P Q R S T U V W X Y Z AA@2 AB@3 AC@4 AD@8 AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ@2 AR@3
>`.pickRestart({
  A: "[~@4 eb5@3 ~, eb4@7 ~, ab4@19 ~@13]/2", B: "[~@29 e5@30 ~@5, [g3,db4,a4]@29 ~@3]/2",
  C: "[~@37 bb5@49 ~@10, [f3,bb3,d4,ab4,bb4]@2 ~]/3", D: "~@4 eb3@2 ~@7 bb3 ~@6 bb2 ~@6 bb3 ~@2 g4 ~, ~@3 eb2@2 ~@27",
  E: "~ bb4 ~@3 f4 ~@2 [bb3,ab4] ~@2 eb4 ~@2 [bb2,g4] ~@2 bb4 ~@2 [bb3,c5] ~@2 eb5 ~@2 f2 [f3,d5] ~@4", // Bb7 Eb Bbsus2 Dm
  F: "~@2 [bb3,ab4,bb4,f5] ~@7 bb4 ab4@2 bb5@2 ~@10 c5 ~@3 [f3,eb5] ~@2", // Bb7 F7
  G: "bb4 ~@2 [bb3,d5] ~@2 ab4 ~@2 [bb2,c5] ~@3 d5 ~ [d4,f5] [ab3,bb3] ~ ab5 ~@2 eb2 [eb3,g5] ~@5 bb4 [bb3,eb4,eb5,g5] ~@2", // Bb Bbsus2 Dm Absus2 Eb
  H: "~@4 bb4 g4 bb5@3 ~@9 g4 ~@2 bb4 eb3 ~@2 f4 ~@2 ab4@2 ~ eb4, ~@28 bb3 ~@3",
  I: "[~@2 [bb2,g4] ~ bb4@2 ~ eb4 [g3,bb3,c5] ~@2 [gb2,eb5] ~@2 [gb3,d5]@2 ~@5 [gb4,c5,d5,a5] ~@5 d5 ~ [a5,d6]@5 ~@6 d5 ~@2 g5 ~@2 bb4 ~@3 [bb3,c5] ~ eb5 ~@3 [d3,d5] ~@2 g4 ~@2 [gb3,c4,a4] ~, ~@27 gb4@2 ~@35, ~@14 c5 ~@17]/2", // Eb C7 Ebm D D7 D5 Bbsus2 D …
  J: "bb4 ~@2 g4 g2 ~@2 bb4 ~@2 [bb3,a4] ~@2 bb4 ~@3 g4 ~@4 bb4 ~@3 ab4 ~@5, ~@5 d3 ~@10", // Bbmaj7
  K: "~@4 bb4 ~@3 f4 ~@2 ab4 bb3 ~ eb4 ~@2 bb2 g4 ~ bb4 ~@2 c5 [g3,bb3] ~@2 eb5 f2 ~ [f3,d5] ~", // Gm Dm
  L: "~@4 ab4 f5 ~@5 bb4 ~@2 bb5@4 ~@8 c5 ~@3 [f3,eb5] ~, ~@2 bb3 ~@13", // F7
  M: "~ bb4 ~@2 [bb3,d5] ~@2 ab4 ~@2 [bb2,c5] ~@2 d5 ~@2 [ab3,bb3,d4,f5] ~@2 ab5 ~ eb2 ~ g5 eb3 ~@4 bb4 [eb4,g4,eb5] ~, ~@15 bb5", // Bb Bbsus2 Bb7 Eb
  N: "~@5 bb4 ~@2 eb6@2 ~@8 bb4 ~@3 [g3,eb5] ~@2 bb4 ~@3 eb4@3, ~@29 db5 ~@2", // Cm
  O: "c5 ~@2 f5 ~@2 c5 ~@2 f4@3 d5 ~@2 [b3,g5] ~@2 d5 ~@2 g4@3 d5 ~@2 [c4,eb5] ~@2 f5 ~, ~@9 eb5 ~@11 f5 ~@10", // Em Cm
  P: "eb4 g5 ~ ab5 ~@2 [bb2,bb5] ~@2 g5 ~@2 [g3,eb4] bb3 ~ a5 ~@2 [bb2,bb5] ~ b5 ~@2 [ab3,bb3,d4,f4,c6] ~@2 d6 ~@2 [eb3,eb6] ~@2, ~@6 ab5 ~@9", // Bb Cm Bb Bb7 Eb
  Q: "~@2 [bb3,bb4] [f4,d5,f5] ~@3 eb3 [bb3,eb5] ~@2 eb6@6 ~@9 eb5 ~@3 d5 ~, ~@3 bb5@2 ~@4 g4@7 ~@16, ~@10 [g5,bb5]@7 ~@15", // Bb Dm Eb5 Gm
  R: "~ a4 ~@3 bb4 ~@2 c5 ~@2 [d3,d5] ~@2 a4 ~ bb4 c4 ~ c5 ~@2 d5@2 ~@4 [g4,d5] bb5 ~@2, ~@5 d4@5 ~@12 g2 ~@9", // D G5
  S: "~@2 bb3@4 d6@2 ~@7 g5 ~@2 [a2,f5] ~@2 c5 ~@2 d5 ~@2 eb5 ~@3 [f3,f5], ~@3 f4", // Dm F
  T: "~@2 c5 ~ [a3,d5] eb4 ~ eb5 ~@2 [bb2,f5] ~@3 g5 ~@2 [ab4,f5]@3 c5 ~@2 eb5 ~@2 f5 ~ eb5 ~@2 bb4, ~@15 bb3@6 ~@11", // D5 Bb5 Db
  U: "~@3 d5 ~@2 eb5 ~@2 d5 ~@3 ab4 ~@2 c5 ~@3 d5 ~@4 c5@2 ~@5",
  V: "~@2 bb4 ~@4 f4 ~@2 ab4 bb3 ~@2 eb4 ~@2 [bb2,g4] ~@2 bb4 ~@2 [g3,bb3,c5] ~@2 eb5 f2 ~ d5 f3 ~", // Eb C7
  W: "~@4 bb4 [bb3,f5] ~@7 ab4@2 bb5@3 ~@8 c5 ~@2 eb5 ~@2, ~@13 bb4 ~@18", // Bb5
  X: "~ bb4 ~@2 [bb3,d5] ~ ab4 ~@2 bb2 c5 ~@2 d5 ~ ab3 [bb3,d4,f5] ~@2 ab5 ~@3 [eb3,g5]@2 ~@2 bb4 ~ bb5@2 ~", // Bb Eb
  Y: "~@7 eb6@4 ~@6 bb4 ~@3 [g3,eb5] ~@2 bb4 ~@2 eb4@2 ~ c5 ~, ~@5 bb4@2 ~@20 db5 ~@4, ~@6 bb5@5 ~@21", // Cm
  Z: "~ f5 a3 ~ c5 ~@2 eb5 f4@2 d5 ~@2 [b3,g5] ~@2 d5 ~@2 [g4,f5] ~@2 d5 ~@2 [c4,eb5] ~ f5 ~@2 [eb4,g5] ~", // Em G7 Cm Eb
  AA: "[~ ab5 ~@2 [bb2,bb5] ~ g5 ~@2 [g3,bb3,eb4,ab5] ~@2 a5 ~ bb5 bb2 ~ b5 ~@2 [ab3,bb3,d4,f4,c6] ~@2 d6 ~@2 [eb3,eb4,eb6] ~@4 bb4 [bb3,d5,f5] ~@5 eb2 [bb2,eb3] ~ [g5,bb5,eb6]@11 ~@12, ~@31 bb2@3 ~@30, ~@16 [f3,bb5] ~@3 eb5@6 ~@6]/2", // Bb Eb Bb7 Eb Bb Eb5 Eb Bb5
  AB: "[~@35 f4@3 ~ ab1@2 ~ ab2 ~@22 g4@2 ~@2 ab2 ~@8 eb5@3 ~@9 c5@3 c5@3, ~@11 [ab2,c5]@28 ~@9 eb3@20 ~@7 [eb3,f5]@5 ~@7 [eb3,eb5]@6 ~@3, ~@19 eb5@19 ~@3 c5@18 db5@9 ~ c5@11 ~@4 f5@9 ~@3, ~@13 eb6@6 ~@8 eb6@7 ~@14, ~@31 db5@7 g4@3 ~@6 eb5@15 f4@6 ~@4 db5@8 ~ g5@12 ~@3]/3", // Ab Ebsus2 Eb
  AC: "[db5@3 ~ f4@3 c5@4 ~@9 eb4@8 ~@26 f4@4 ~ ab1@3 ~ ab2 ~@22 f4@4 [ab1,g4]@3 ~@11 eb5@3 ~@10 db5@4 bb4@3 ~@4, ~@11 bb4@16 ~@2 c5@29 g4@4 ~@20 db5@8 ~@8 db5@9 ab5@12 ~@9, ~@37 eb5@21 ~@12 eb5@20 ~@11 [eb3,f5]@7 ~@6 [eb3,c5]@6 ~@8, ~@45 eb6@14 ~@18 eb6@13 ~@20 eb5@9 ~@9, ~@50 db5@9 ~@3 c5@28 ~@4 [ab2,c5]@13 ~@21]/4", // Abmaj7 Ebsus2 Cm Ab
  AD: "[bb4@4 ~ c5@5 ab4@10 ~@5 c5@5 ~@28 g5@3 ~@28 g5@5 ~ ab2@3 ~@8 eb6@3 ~@9 c6@3 ~@10 c6@4 ~@10 eb5@5 ~@14 eb3@4 ~@15 g5@4 ~@31 ab1@3 ~ ab2@2 ~@22 db6@4 ~ bb5@5, ~@20 eb5@8 ~@2 c6@31 c5@34 ~@4 db6@10 ~@3 f6@9 ~@3 db6@11 ~@20 c6@21 ~@4 f5@7 c5@25 [eb3,f5]@4 g5@5 ~@5 db6@17 c6@6 ~@7, ~@40 eb3@15 [db4,f5]@7 ~@9 eb3@10 db6@4 [eb3,db4,f5]@10 ~@8 eb3@8 ~@4 [eb3,eb6]@6 ~@6 eb3@8 ~@21 ab2@19 ~@4 eb3@8 ~@3 [ab2,c6]@31 ~@12 eb6@3 ab6@13 ~@7, ~@46 eb4@16 ~@16 eb4@17 ~@7 f6@6 ~ g6@12 ~@7 f5@8 ~@14 c5@24 ~ db6@12 ~@17 eb4@17 ~@8 f6@20 ~@7, ~@51 db6@11 ~ c6@31 c6@15 ~@12 c6@10 ~@4 bb5@15 ~@21 eb4@16 ~@10 eb3@11 db6@13 c6@19 eb6@10 ~@6]/8", // Ebsus2 Db Eb Ab
  AE: "~@2 bb5@5 c6@6 ab5@16 ~@3", AF: "~@11 bb4@2 ~@3 f4 ~@2 ab4 bb3 ~@2 eb4 ~@2 [bb2,g4] ~@2 bb4 ~@2",
  AG: "[g3,bb3,c5] ~@2 eb5 ~ f2 ~ d5 ~@6 bb4 [bb3,ab4,f5] ~@5 bb4 ab4 ~ bb5@2 ~@6", // C7 Bb7
  AH: "~@3 c5 ~@2 eb5 f3 ~@2 bb4 ~@2 [bb3,d5] ~@2 ab4 ~@2 [bb2,c5] ~@2 d5 ~@2 [ab3,f5] ~@2 ab5 ~@3", // Bb Bbsus2 Db
  AI: "[eb3,g5] ~@5 [bb3,eb5] [eb4,g5] ~@5 bb4 g4 ~ bb5@2 ~@11 bb4 ~@2, ~@5 bb4@2 ~@25", // Eb Eb5 Eb
  AJ: "f4 ~@2 ab4 bb3 ~ eb4 ~@2 [bb2,g4] ~@2 bb4@2 ~ [g3,bb3,eb4,c5] ~ eb5 ~@3 d5@2 ~@3 d5 [d4,gb4,c5,a5] ~@4, ~@21 gb3 ~@10", // Eb Cm7 D7
  AK: "~ [gb4,d5] [c5,a5] d6 ~@8 d5 ~@3 [g3,g5] ~@2 bb4 ~@2 [bb3,d4,c5] ~@2 eb5 ~ d3 d5 ~@2 g4", // D F G Bb
  AL: "~@2 [gb3,c4,a4] ~@2 bb4 ~@2 [g2,g4] ~@2 bb4 ~@2 [bb3,a4] ~@3 bb4 ~@3 g4 ~@4 bb4 ~@4", // Gbdim G Bbmaj7
  AM: "~@3 g4 ~@2 bb4 ~@6 [bb3,ab4] ~@3 eb4 ~@2 [bb2,g4] ~@2 bb4 ~@2 [bb3,c5] ~@2 eb5 ~ f2", // Bb7 Eb Bbsus2
  AN: "~ [f3,d5] ~@6 [ab4,bb4,f5] ~@6 bb4 ~@2 bb5@5 ~@9", // Dm Bb7
  AO: "~ eb5 f3 ~@2 bb4 ~@2 [bb3,d5] ~@2 ab4 ~@2 [bb2,c5] ~@3 d5 ~@2 [ab3,f5] ~@2 ab5 ~@4 eb3 ~@2, ~@14 g5 ~", // Bb Bbsus2 Db
  AP: "~@2 bb4 ~ bb5@3 ~@5 bb4 ~ bb5@2 ~@12 bb4 ~@3",
  AQ: "[[g3,eb5] ~@3 bb4 ~@2 eb4@4 c5 ~@2 [a3,f5] ~@2 c5 ~@2 eb5 ~@2 d5 ~@2 b3 ~ d5 ~@2 f5 ~@2 d5 ~@2 [c4,eb5] ~ f5 ~@2 [eb4,g5] ~ ab5 ~@2 bb5@2 ~ g5 ~ [bb3,eb4,g4,ab5] ~ a5 ~@2 bb5@2 b5 ~@2 [ab3,bb3,d4,f4,c6] ~, ~@7 db5 ~@12 f4@5 g5@2 ~@4 g4@5 ~@11 bb2 ~@9 bb2 ~@6]/2", // Cm Dm Cm Eb Bb7
  AR: "[d6 ~@2 [eb3,eb4,eb6] ~@5 [bb2,f3,bb3,bb4,d5,f5,bb5]@3 ~@3 eb3 [eb2,bb2,g5]@64 ~@16, ~@9 d3 ~@5 [eb5,bb5,eb6]@64 ~@17, ~@16 g2 ~@79]/3", // Eb Bb Eb Eb5
})).s("gm_piano").gain(0.26)

// chords · piano · soft notes
const piano_soft = note(`<
  A@2 B@2 ~@4 C D ~ E F G H I J ~ K L M N O P Q R S T U V ~@3 W@3 X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO ~
  AP AQ AR AS AT ~@5
>`.pickRestart({
  A: "[[ab3,c4]@7 ~]/2", B: "[~ e4@58 ~@5]/2", C: "~@2 eb3 ~@17 g3 ~@11", D: "~@3 d4 ~@6 f4@2 f5@2 ~@18, ~@9 d4@2 ~@21",
  E: "~@4 eb4@2 eb5 ~@25", F: "~@21 d4@2 ~@9", G: "~@12 g3 ~@5 d4 ~@13", H: "~@10 g3 ~@20 g4", I: "~@4 eb3 ~@27",
  J: "~@4 bb4 d4 ~@4 d4@2 f4@2 f5 ~@17, ~@12 ab4 ~@19", K: "~@5 eb5 bb5 ~@25, ~@5 g4@3 ~@24", L: "~@3 a3 ~@28",
  M: "~@29 eb4 ~@2", N: "~@30 gb2 ~", O: "~@17 gb3 ~@10 g3 g5 ~@2, ~@14 d4 ~",
  P: "~@3 d5 ~ g5@2 ~@25, ~@3 d4@4 ~@25, ~@2 g4 ~@13", Q: "~@17 d4@4 ~@11", R: "~@31 eb2, ~@15 g4", S: "~ eb3 ~@14",
  T: "~@5 [d4,ab4] ~@8 f5@2 ~@14 f3 ~, ~@3 d4 ~@4, ~@13 f4@2 ~@17", U: "~@21 eb2 ~@7 [eb4,g4,eb5] ~@2",
  V: "~@4 g4@3 ~@25, ~@4 eb5 ~@27",
  W: "[~@8 ab1@2 ~@17 [g3,db4,eb4]@12 ~@16 [g3,db4,eb4]@12 ab1@3 ~@11 [c4,eb4]@2 ~@10 ab2@2 ~, ~@20 eb3@19 ~@42 ab3@12 ~@3]/3", // Eb7 Cm
  X: "~@4 eb3@2 ~@13 eb3@7 ab1@2 ~@2 ab2@2, ~@11 [g3,db4]@17 ~@4", // Gdim
  Y: "~@13 [g3,db4]@14 ~@5, ~@5 eb3@22 ~@5, ~@6 eb4@7 ~@3", Z: "~@13 [g3,db4,eb4]@13 ~@6, ~@3 eb3@10 ~@3",
  AA: "~@12 c4@2 ~@11 eb2 ~@6, ~@11 [ab3,eb4]@3 ~@18", // Ab5
  AB: "eb3 db4@2 ~@7 [c4,eb4]@3 ~@14 ab1@5, eb4 ~@15, ~ g3 ~@8 ab3@11 ~@11", AC: "~@23 eb3@6 ab1@3, ab2@15 ~",
  AD: "ab2@2 ~@25 ab1@5", AE: "~@13 [ab3,c4]@12 ab2@2 ~@5, ~@13 eb4@2 ~@17",
  AF: "~@17 eb3@6 ab1@2 ~@7, ~@7 eb4@15 ~@10, ~@8 [g3,db4]@15 ~@9", AG: "~@8 eb3@6 ~@5 db4@6 ab1@5 ~@2",
  AH: "~@20 db4@9 ~@3", AI: "~@19 eb3@6 ~ eb2@2 ~@4, ~@6 eb3@13 ~@13, ~@12 [ab3,c4,eb4]@13 ~@7",
  AJ: "~@2 [eb3,g3,db4]@3 ~@8 [ab3,eb5]@16 ~@3, ~@2 eb5@6 ~@5 c4@5 ~@14", AK: "~@6 g4 ~@4 eb3 ~@20",
  AL: "~@7 f3 ~@7 d4 ~@6 f4 f5 ~@8, ~@21 d4@3 ~@8", AM: "~@25 [bb3,d4] ~@4 eb2 ~",
  AN: "~@14 eb5 ~@11 g4 ~@2 eb3 ~@2, ~@13 eb4@3 ~@16", AO: "~@19 gb2 ~@12", AP: "~@15 [d3,g3] ~@15 ab4",
  AQ: "~@7 eb3 ~@2 f4 ~@16 g3 ~@4", AR: "~@8 [bb3,d4] ~@7 [f4,ab4]@2 f5@2 ~@9 c5 ~@2, ~@15 d4@4 ~@13",
  AS: "~@21 d4 ~@5 eb2 ~@4", AT: "~@4 [g4,eb5] ~@7 eb5 ~@3 eb6@4 ~@12, ~@4 eb4@2 ~@5 g4@3 ~@18",
})).s("gm_piano").gain(0.15)

stack(piano, piano_soft)

More by Leo Delibes