Strudelify

La Puerta del Vino

Claude Debussy

KeyF minorTempo120 bpm
0:00/0:00
// La Puerta del Vino — Claude Debussy
// 120 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 95 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@3 B C@7 D@3 E@8 F@5 G@5 H I@4 J@6 K L@7 M@4 N@5 O@5 P@4 Q@3 R@7 S@2 T@4 U V@8 ~>".pickRestart({
  A: "[~@23 [a2,e3]@9 [d3,a3]@3 ~@8 d2 ~@16 a2@7 ~@2 e3 ~@6 ab2@2 ~@12 ab2@3 db2@2 ~, ~@3 ab2@29 ~@7 e3@2 ab2@2 ~@16 e3@8 a3@2 ~@9 db2@15 ~@3, ~@5 db2@31 ~@4 a2@2 db2@26 d3@3 ~@4 [a2,e3]@4 ~@17]/3", // A5 D5 A5
  B: "~@4 ab2@3 ~@6 db2@12 ab2@2 ~ db2@2 ~@2, ~@10 [a2,e3]@7 ~@15, ~@12 ab2@5 ~@15", // A5
  C: "[~@4 ab2@2 ~@17 ab2@3 db2 ~@7 ab2@4 ~@15 ab2@3 db2@2 ~@5 ab2@4 ~@15 ab2@4 db2@2 ~@5 ab2 ~@18 ab2@3 ~ db2 ~@6 ab2@2 ~@13 e4@5 ~@3 ab2@2 ~ db2 ~@7 ab2@3 ~@10 e4@4 ~@6 db2 ~@7 d4@8 ~@16 db2@7 ab2 ~@4, ~@12 b3@78 ~@25 d4@34 ~@8 d4@22 e4@10 ~@7 e4@15 e4@13, ~@42 f3@85 ~@5 [f3,b3]@33 db2@10 e4@2 ab2@4 ~@7 ab2 ~@19 [ab2,f4,ab4]@13 ~@3, ~@86 c4@33 ~@24 e4@5 e4@10 ~@7 b3@55 ~@4, ~@166 f3@55 ~@3]/7", // Fdim Db
  D: "[~@20 db2@2 ~@5 ab2@5 ~@35 eb4@2 ~ f3@3 ~@11 f4@2 e4@10, ~@4 f3@28 ~@4 [f3,b3]@16 f4 e4@16 ~@11 f4@3 ab4@3 ~@10, ~@17 ab2@5 ~@14 db2@12 f4 ab4 b4@8 ~@6 c4 b3@4 db2@16 ~@11, ~@20 e4@31 ab4@7 ~@5 eb4@3 c4@3 ~ [b3,e4]@17 ~@9, ~@48 ab2@10 ~@3 ab2@9 ~@11 ab4 b4@4 ~@10]/3", // Fdim E5
  E: "[~@3 b3@3 eb4@2 ~@55 eb4@3 ~@14 e3@4 ~@3 ab2@3 e3@8 eb3@9 ~@5 d3@5 ~@2 ab2@3 d3@10 db3@10 ~@47 db2 ~@5 ab2 ~@34 ab2@12 ~@9 ab2@3 ~@2, ~ c4@4 ~@3 f3@59 eb4@3 b3@2 ab3@2 db2@16 db2@3 ~@14 [db2,eb3]@15 db2@3 ~@81 [bb4,c5]@48 ~@2, ~@8 e4@57 ~ e4@9 f3@32 f3@35 ~@63 d5@49 ~@2, ~@30 ab2@19 ~ ab2@12 ab2@15 ~@8 e3@5 ~@27 d3@5 ~@20 db3@54 ~@9 [g3,bb3] [c4,d4] e4@47 ~@2, ~@39 db2@14 db2@16 c4@8 ~@127 e5@3 g4@12 ab2@3 db2@17 ~@17]/8", // Dbsus2 Bbsus2 Gm Csus2
  F: "[~@15 d3@7 db3@5 ab2@3 db2@2 ~@54 e4@7 ~ e4@5 e5@5 ~@20 d4@5 [d4,d5]@5 ~@20 d5@4 eb3@2, ~@15 f3@64 ~@2 bb3@31 ab2@6 f3@4 c5@2 f4@2 ~@9 [d4,d5]@2 ab2@3 [db2,d4,d5]@7 e5@3 ab2@10, ~@27 db3@54 e5@12 e5@6 ~@5 [e4,e5]@6 [f4,f5]@9 ab3@41, ~@83 d5@32 [e4,e5]@5 bb3@40, ~@84 [g4,bb4]@37 [c4,d5]@2 [ab4,bb4]@37]/5", // D Dmaj7 E F E Gm Csus2 Absus2
  G: "[~ ab3 bb3 ~@22 ab2@21 ~@4 b3@17 ~@53 b3@18 ~@11 ab2@2 ~ db2@3 ~@2 e3@3, [gb3,c5]@14 ab2@3 db2@17 ~@12 d3@22 bb4@3 c4@12 ab2@3 db2@8 ab2@9 db2@14 a4@23 ~@20, ~ bb4@46 a4@22 ab3@50 [a3,f4]@21 ~@20, ~@2 [eb4,gb4,ab4]@46 ~@19 [eb3,c5]@48 d3@24 ~@6 f3@12 ~@3, ~@3 c4@45 ~ [a3,d4,f4]@21 [bb3,eb4,gb4]@50 d4@5 ~@13 db2@14 ~@8]/5", // Gbdim Dm Ab7 Cm Dm Ebm
  H: "~@8 f3 ~@13 ab2@2 ~ db2@2 ~@2 e3@3, ~ ab2@6 db2@10 ~@15, ~ f3@3 ~ f3@8 ~@3, ~@5 g3@4 b3@23",
  I: "[f3@2 ~@2 g3@4 bb3@2 g3@2 ~@22 [d4,gb4]@4 ~ bb3@2 ~@12 db2@4 ~@8 [d4,gb4]@4 ~ [g3,c4,e4] ~@15 eb4@7 [ab2,gb3,b3,eb4,gb4]@6 ~ [a3,d4] ~@13 [db2,f3,bb3,d4,f4]@9 ~ db4@4, ab2 ~@7 [b3,eb4]@24 ab2@6 db2@8 ~@4 ab2@6 ~@7 ab2@6 ~@17 [db2,ab3,c4]@13 ~ db2@14 ~@14, ~@8 db2@8 ~@5 ab2@2 db2@6 [db4,f4]@11 ~@2 f3@27 ~@16 eb3@13 ~@13 ab2@12 [ab2,ab3,f4,ab4]@5, ~@12 f3@27 [b3,eb4]@16 ~@5 [db4,f4]@9 ~ g4@6 ~@4 gb5@19 ~ gb4@2 ~@7 [ab4,db5,f5,ab5]@14 ~@5, ~@23 [c4,e4]@17 ~ g3@2 ~@10 [c4,e4]@16 ~@11 gb4@13 ~@7 a4@5 [a4,d5,gb5,a5]@18 ~@5]/4", // D C Abm7 D5 Bb B Dbmaj7 Db …
  J: "[~@3 db2@6 ~@6 ab2@3 db2 ~@6 ab2@4 ~@18 ab2@2 db2 ~@9 [b3,e4,ab4,b4]@4 ~ db2@3 ~@10 ab2@3 [g4,b4,d5]@3 ~@6 [bb3,e4,g4,bb4]@4 ~ db2@3 ~@9 ab2@4 ab4 f4@2 ~@10 [a3,d4,gb4,a4]@7 ~@16 db2 ~@6 ab2 ~@23 [a2,e3]@8 ~ d3@2 ~@4, ~@3 [b3,e4,ab4,b4]@47 ~@4 [db4,bb4,db5]@9 [bb3,eb4,g4,bb4]@17 ~@5 [c4,f4,a4,c5]@8 ~ [a3,d4,gb4,a4]@17 ~@19 [ab3,ab4]@33 ~@22 a3@2 ~@5, ~@34 db2@15 [eb4,eb5]@14 ~@10 [c4,f4,a4,c5]@7 d4@13 ~@8 [b3,b4]@9 c4@21 db4@32 ~@29, ~@43 [db4,gb4,bb4,db5]@7 [ab4,b4]@7 ab2@7 ~@16 db2 ~@6 ab2@6 ~@17 [db2,c5]@3 ~@6 ab2@12 ~@30 ab2@2 ~@29, ~@55 gb4@9 ~@38 [e4,g4]@9 ~@5 [e4,g4,b4]@15 ~@31 db2@25 ~@5]/6", // E G Edim D A5 E Gb Eb …
  K: "~@2 ab2@2 ~@14 a2@6 ~ d3@5 ~ gb2, e3@3 ~@14 e3@7 a3@2 ~@4 d3@2, ~ a2@2 ~ db2@23 ~@5",
  L: "[f2@2 ~@56 f4@3 ~@19 [a4,a5]@4 ~@57 [a4,a5]@6 ~@29 a5@8 ~@2 f2 bb1@14 ~ bb1@6 ~@2 gb2@5 ~ f2 bb1@7, ~@2 bb1@21 f2@7 bb1@7 g5@5 f2@3 bb1@4 c6 c5@7 f3@12 f2@3 bb1@12 f3@43 f2@4 bb1@5 [c5,c6]@3 f2@8 [gb4,bb4,db5,gb5]@23 [c5,c6]@14 d3@17 ~@7 [db3,bb3]@3 ~@5 gb2@3 ~@5, ~@13 f3@25 g4@20 [bb3,d4,gb4,bb4,d5,gb5]@18 [c5,c6]@10 ~@11 f2@4 bb1@7 f2@8 bb1@7 g5 g4@24 ~@10 g5@27 gb2@3 ~@13 [f2,gb2,d3]@8 d3@2 ~@4 d3@9, ~@15 [gb4,gb5]@37 f2@7 ~@7 g4@20 [e4,gb4,bb4,db5]@62 [db4,e4]@38 ~@38, ~@16 [bb3,d4,f4,bb4,d5]@38 [a4,a5]@5 ~@6 g5@13 f2@7 [bb3,db4,gb5]@63 ~@17 bb1@21 ~@38]/7", // A C Gb C Gb Bbaug C D …
  M: "[~@6 [f2,gb2] bb1@6 ~@2 gb2@3 ~@15 e2@2 ~@2 eb2@7 ~ d2@7 ~@3 bb1@4 ~@28 gb2@2 ~@18 [bb3,e4]@19 [c4,gb4]@2, ~@5 d3@2 ~@6 bb3@8 [db3,a3]@3 ~@3 [db3,a3]@8 bb2@9 [a2,bb2]@10 f2@4 ~@31 bb1@22 ~@17, ~@14 [db3,d3]@3 ~@4 c3@10 b2@5 [b2,g3]@8 ~@8 d3@34 d3@25 ~@17, ~@22 f2@14 ~@17 gb2@4 ~@15 [e3,g3,a3]@17 ~@39, ~@32 [c3,ab3]@4 ~@8 gb3@3 ~@24 db4@18 ~@39]/4", // Gbmaj7 Bbdim Cdim Gbm Bbmaj7 Dmaj7 Em A7 …
  N: "[~@2 [d4,ab4]@18 ab4@7 ~@12 f4@4 ~@14 ab4@9 [ab4,e5]@10 ~@14 gb4@7 d5@10 ~@11 [c4,db4]@15 c4 ~ f3@6 ~@2 gb4@5 ~@8 [ab4,eb5]@4, ~ bb3@34 [c4,gb4]@4 d4@18 bb1@20 ~@65 ab4@2 ~@4 g4@2 [b3,f4]@10, ~ g4@3 ~@23 [f2,e5]@10 g4@3 ~@13 f2@14 ~@22 [gb5,d6]@13 ~@15 ab4@17 [b3,ab4]@9 ~@6 [ab4,eb5]@7 ~@4, ~@2 f4@4 ~@14 bb1@18 ab4@18 ~@20 eb5@26 ~@5 db5@27 db4@2 ~@6 a4@8 ~@10, ~@28 ab4@10 bb3@39 ~@6 [g5,eb6]@19 ~@39 e5@9 ~@10]/5", // Ddim Dbm Dbmaj7 Ab5 Cdim Bdim Fmaj7 D …
  O: "[~@2 e4@3 e4 [a3,eb4,gb4]@7 ~@25 d3@30 ab4@20 ~@25 ab3@10 ~ g3@3 ~@3 g3@5 g3@5 ~@10 ab3@10, ~ [bb3,f4,g4,d5]@4 db5@8 [ab3,f4,c5]@9 [f3,b3,db4,ab4]@18 ~@62 g3@4 [bb3,c4,e4]@19 ~@15 [bb3,e4]@20, ~@13 eb4@2 ~@6 c4@3 ~@13 [ab3,bb3,f4]@33 ~@19 a3@19 ~@15 f4@18 ~@19, ~@14 d4@10 ~@64 [db4,f4]@17 gb3@19 [a3,db4]@18 ~@18]/5", // Ebdim Gm7 Fm Db7 C7 Bbdim Bb7 Db …
  P: "[~@17 g3@5 bb3@21 ~@42 ab2@19 ~@20 ab2@4, ab2@17 ~ bb2@4 ~@10, [a3,db4,f4]@11 e4@27 ~@26]/4", // Aaug
  Q: "[~@19 db2@8 ~@19 ab2@3 db2@2 ~@6 ab2@20 ~@11 ab2@8, ~@16 ab2@10 ~ ab2@19 ~@3 c4@37 ~@10, ~@35 db2@14 ~@28 ab2@7 ~@12, ~@5 d4]/3",
  R: "[~@8 [e4,g4]@5 ~@2 ab2@4 [e4,g4]@8 [d4,f4]@8 ~@5 [e4,g4]@5 ~@2 ab2@3 [e4,g4]@7 [d4,f4]@9 g4@12 [f4,ab4]@2 ~@10 ab2@4 ~@18 ab2@2 db2 ~@7 ab2 ~@18 ab4@3 ~ ab4@2 ~@3 e4@8 ~@7 ab3@2 ~@6 e3@4 ~@2 ab2@3 e3@9 eb3@7 ~@5 d3@5 ~ ab2@4 d3@9 [ab2,db3]@2, ~ [f3,b3]@34 f3@32 ~@14 [f4,ab4]@4 ~@15 b3@26 ~@5 b3@19 g4@17 f3@57, ~ db2@17 ~ db2 ~@15 db2@15 db2 ~@6 ab2@2 ~@7 [db2,e4]@16 g4@32 g4@30 g4 db5@7 ~@8 e4 db4 c4@2 b3@3 db2@15 db2@2 ~@24 d3@5 db2@2 ~@9, ~@13 e4@6 ~@16 b3@47 db2 e4@31 e4@33 g4 [f4,ab4]@4 ~@6 ab2@10 ~@9 e3@5 ~@16 eb3@15 ~@11, ~@14 g4@5 ~@26 [e4,g4]@5 ~@30 b4@5 ~@56 f4@6 b4@6 ~@6 f4@9 ~@56]/7", // Em Dm Em Dm Fm Db5 Fdim Fm …
  S: "[~@21 db2@4 ~@39, ~@7 [db3,f3]@57]/2", // Db
  T: "[~@6 [c4,d4] ~@23 ab2@20 ~@12 ab2@11 ~@7 db3@5 ab2@3 ~ db2 ~@7 ab2@3 ~@21 db2@3 ~@4, ~@4 e5@14 ab2@3 db2@17 ~@35 d3@16 ~@39, ~@4 g3@2 [g4,bb4]@64 ~@15 db3@43, ~@5 [c5,d5]@64 ~@59, ~@5 bb3@2 e4@64 ~@2 f3@55]/4", // Csus2 Gm Csus2
  U: "~@19 gb5@7 gb5@6, ~@15 gb6@11 ~@6, ~@17 e5@15, ~@9 a5@7, ~@19 c6@13",
  V: "[~ gb6@6 ~@12 [gb5,gb6]@8 ~@4 e5@7 [e5,e6]@6 [e5,e6]@7 ~ e6@24 ~@25 ab2@3 db2@2 ~@6 ab2 ~@6 db2@11 ab2@2 db2 ~@7 ab2 ~@115, ~@7 [gb5,gb6]@12 ~@8 bb4@60 [f3,ab3,eb4]@169, ~@13 [g5,g6]@14 e6@11 ~@47 [db5,eb5]@2 f4@3 ~@166, ~@14 d6@29 ab4@2 ~@83, ~@15 [g5,bb5,c6]@29 db4@84]/8", // Gb E Gb Fm7 G Dbsus2 C7
})).s("gm_piano").gain(0.32)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  ~@4 A B C D E ~ F G H I@4 J K@3 L M N@3 O ~ P@4 ~@3 Q@2 ~@3 R@3 ~@5 S@2 ~@3 T@2 U@5 ~ V W@3 X@3 Y@5 ~ Z AA AB AC@2 AD
  AE@2 AF@2 AG AH@4 ~ AI@5
>`.pickRestart({
  A: "~@13 db2@13 ~@6", B: "~@5 db2@7 ~@4", C: "~@4 db2@7 ~@5", D: "~@3 db2@7 ~@6", E: "~@4 db2@17 ~@11",
  F: "~@4 db2@15 ~@11 [f3,b3]@2", G: "~@5 b3@27, ~@5 db2@15 ~@12", H: "~@21 db2@5 ~@6",
  I: "[~@17 ab2@4 db2@3 ~@8 eb4@5 c4@3 db2@4 ~@10 db2@16 ~@58, ~@15 ab2@5 b3@31 ~@13, ~@51 ab2@11 ~@66]/4",
  J: "~@3 ab2@4 ~@25",
  K: "[~@5 ab2@3 ~@19 ab2@3 db2 ~@6 ab2@5 ~@4 db2@2 ~@9 ab2@5 ~@34, ~@14 f3@63 ~@19, ~@5 db2@5 ~@22]/3",
  L: "~@15 db2@15 db2 ~", M: "~@15 db2@9 ~@8, ~@6 ab2@15 ~@11",
  N: "[~@31 db2@7 ~ ab2@9 ~@25 db2@18 ~@5, ~@6 ab2@21 ab2@11 ~@10 g3@42 ~@6, ~@15 db2@16 ~@19 c4@2 c5@38 ~@6, ~@17 d4@13 ~@2, ~@68 e4 ab2@11 ~@16]/3",
  O: "~@13 d4@3, ~@19 e4@13",
  P: "[~ db2@6 ~ g3@10 gb3 ~@24 g3@11 ~@10, ~@14 b4@23 ~ ab4@50 ~@40, ~@15 f3@22 ~@47 [f3,b4]@24 ~@20]/4", // Fdim
  Q: "[~@18 ab2@11 ~@35, ~@5 db2@17 ~@42, ~@11 g5@23 ~@30, ~@12 [g4,c5,e5]@23 ~@29, ~@17 [b4,eb5]@18 ~@29]/2", // C B
  R: "[~@20 b3@15 ~@12 ab2@3 ~@46, ~@35 f4@32 ~@29, ~@35 db2@15 ~@46]/3",
  S: "[~@34 f2@11 f2@12 ~@7, ~@10 [f3,bb3]@19 ~@3, ~@30 g4@27 ~@7]/2", // Bb5
  T: "[~@11 g3@5, ~@24 f2@23 ~@17, ~@43 c4@19 ~@2]/2",
  U: "[~@20 d4@17 b3@2 ~@28 f2@10 g4@2 ~@18 [d4,gb4]@10 db4@11 ~@2 [f3,b3]@14 ~@9 c4@7 ~@10, ~@2 ab3@37 ~ ab3@37 ab3@58 ~@25, ~@17 f2@10 ~@30 d4@20 b3@43 ~@40, ~@77 f4@25 ~@5 f4@27 ~@26]/5", // D Fdim
  V: "~@5 a3@3 ~@24", W: "[~@2 c4@2 ~ [b3,db4]@20 ~@51 [gb3,c4]@20, ~@4 f3@21 ab2@66 ~@5]/3",
  X: "[~@67 g2@8 ~@21, ~@7 gb3@18 ~@7, ~@22 c4@53 ~@21, ~@37 ab3@38 ~@21]/3",
  Y: "[~@4 db2@7 ~@7 ab2@3 db2 ~@15 db2@14 ~@47 db2@14 db2@4 ~@39 ab2@2 ~@3, ~@4 g4@129 ~@27, ~@4 f3@119 ~@37, ~@4 b3@79 ~@77]/5",
  Z: "~@8 g4 ~@7, ~@15 ab2@5 ~@12", AA: "~@2 f3@13 ~, ~@3 db2@15 ~@14",
  AB: "~@8 ab2@3 db2@2 ~@3, ~@3 [db2,f3]@21 ~@8, ~@16 b4@3 ~@13", AC: "[~@31 ab2@2 ~@5 db2@14 ~@12]/2",
  AD: "~@18 ab2@7 ~@5 ab2 ~, ~@7 db2@14 ~@11", AE: "[~@18 ab2@3 db2@2 ~@6 ab2@7 ~@28, ~@6 db2@15 ~@43]/2",
  AF: "[~@21 db2@20 db2@5 ~@18, ~@6 db2@15 ~@43, ~@9 ab2@6 ~@17]/2", AG: "~@21 ab2@4 ~@7, ~@10 db2@15 ~@7",
  AH: "[~ ab2@14 ~@2 d5@2 ~@7 gb6@7 gb5@6 c4@20 g4@2 ~@47 [e5,e6]@14 ~@6, ~@15 a4@45 ~@24 c4@38 ~@6, ~@16 c5@44 ~ [c5,d5]@61 ~@6, ~@21 e5@6 ~@5, ~@93 [gb5,gb6]@29 ~@6]/4", // E Csus2 Gb
  AI: "[~@87 [db1,db2]@61 ~@12, ~@19 db2@27 ~ db2@40 ~@73, ~@33 ab2@29 ab2@64 ~@34]/5", // Db
})).s("gm_piano").gain(0.16)

stack(piano, piano_soft)

More by Claude Debussy