Strudelify

La fille aux cheveux de lin

Claude DEBUSSY Arrangé par Olivér Nagy

KeyA♭ majorTempo72 bpm
0:00/0:00
// La fille aux cheveux de lin — Claude DEBUSSY Arrangé par Olivér Nagy
// 72 bpm, 3/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5939783; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 42 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(72/3)

// 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 · "Pianoforte"
const piano = note("<~@2 A@3 B C@2 D@2 E@3 F G H I J K L M@4 N O P Q R@6 S@2 T@6>".pickRestart({
  A: "[~@44 [b2,eb3,gb3,b3]@9 [gb2,db3,gb3,bb3]@83 ~@8]/3", B: "~@7 [db3,ab3,db4,f4]@13 [bb2,bb3,db4,f4]@4",
  C: "[~ [eb3,bb3,eb4,gb4]@8 [gb3,bb3,db4,gb4]@9 [db3,ab3,db4,f4]@17 ~ [bb2,f3,bb3,d4,f4]@17 [eb2,bb2,g3,bb3,eb4,bb4]@34 ~@9]/2", // Ebm Gb Db Bb Eb
  D: "[~@27 [e3,gb3,bb3,db4]@35 [gb3,ab3,c4,eb4]@17 [e3,gb3,bb3,db4]@17]/2", // Gb7 Ab7 Gb7
  E: "[~ [gb3,ab3,c4,eb4]@17 [bb3,db4]@8 ~ [db2,ab3,b3]@9 ~@17 db4@22 b3@4 ~@5 ab3@4 gb3@9 ~ f3@4 eb3@5 ~@24 b2@5 bb2@4 ab2@4, ~@18 gb4@18 bb3@43 bb3@9 [bb3,db4]@36 ~@20, ~@18 eb3@17 ~ gb2@104 ~@4, ~@36 db3@71 db3@32 ~@5, ~@9 gb3@13 ~@14]/3", // Ab7 Bbm Db7 Bbm
  F: "~ db3@11, [gb1,ab3], ~ [db2,b3]@47, ~@2 [gb2,db4]@45 ~", G: "[gb1,db3,gb3,bb3,db4,gb4,bb4]@30 ~@2 gb1@15 ~",
  H: "[gb3,b3,eb4]@3 [ab3,db4,f4] [gb3,b3,eb4]@3 [f3,bb3,db4] [eb3,ab3,b3]@3 [db3,gb3,bb3]", I: "~ gb1@2, [b2,e3,ab3]",
  J: "b1 b1@44 ~@3, [gb3,b3,eb4,gb4,b4,eb5]@23 ~", K: "[ab3,eb4,gb4,b4]@8 [db3,ab3,b3,f4]@15 ~",
  L: "[ab2,eb3,gb3,b3] ~ bb2, ~ [bb1,f3,eb4]@2, ~@2 db3 ~@3, ~@17 ab3@31, ~@19 bb3@29", // Abm7 Bbsus4
  M: "[~@11 c3@4 eb3@3 f3@4 g3@4 ~@4 [f3,ab3]@14 bb3@7 ~ bb2@3 [c3,c4]@4 eb3@4 [f3,f4]@3 [g3,g4]@4 ~@4 [eb3,c4,f4,ab4]@14 ~ [bb3,eb4,bb4,eb5]@7 ~@4 [c4,c5]@3 [eb4,eb5]@4 [f4,f5]@4 ~@3 [bb4,bb5]@3 ~ [b3,eb4,gb4,b4,eb5,gb5,b5]@22 [db4,f4,ab4,db5,f5,ab5]@7 ~ [eb4,gb4,bb4,eb5,gb5]@7 ~@7 ab2@14 ~ [b2,gb3,b3,eb4,gb4,b4]@7 ~ [db3,ab3,db4,f4,ab4]@7, eb2@42 ~@2 eb2@42 ~@10 bb3@7 ~@89, [bb3,eb4]@28 ~@16 g3@22 ~@23 eb3@14 ~@52 [eb3,ab3,c4,eb4,ab4,c5,eb5]@22 ~@15, g3@22 ~@4 bb3@18 eb4@15 eb4@13 ~@17 g4@22 [g4,g5]@6 ~@75, ~@7 bb2@35 ~@10 bb3@18 [bb3,bb4]@18 ~@8 bb4@18 ~@78]/4", // Fm C F G Fm7 Eb5 C Eb …
  N: "[eb3,bb3,eb4,gb4]@8 [ab3,c4,eb4,ab4]@16 ~ gb4@4 f4@4 [gb2,bb3,eb4]@12 [eb2,bb2,gb3,db4]@3, ~@25 db3@20 ~@3, ~@25 b3@8 ~@15", // Ebm Ab Ebm Ebm7
  O: "~ [db2,gb2,eb3,bb3]@8 [eb2,bb2,gb3,db4]@8 [gb2,db3,bb3,eb4]@8 [bb2,eb3,db4,gb4]@8 [gb2,db3,bb3,eb4]@8 [eb2,bb2,gb3,db4]@7", // Ebm7
  P: "~ [b1,gb2,eb3,bb3]@16 [db2,ab2,b3]@15 ~ [gb2,db3,bb3,eb4]@12 [bb2,eb3,gb3,db4]@3", // Bmaj7 Db7 Ebm7
  Q: "~ [db3,gb3,bb3,eb4]@8 [eb3,bb3,db4,gb4]@8 [gb3,db4,eb4,bb4]@8 [bb3,eb4,gb4,db5]@8 [db4,gb4,bb4,eb5]@9 [bb3,eb4,gb4,db5]@6", // Ebm7
  R: "[~@2 [ab2,eb3,gb3,b3,bb4]@17 ~ [db3,f3,ab3,db4]@17 [gb2,b2,gb3,b3,eb4,gb4]@91 ~@5 gb4@32 ab4@16 [eb2,bb2,gb3,bb3,eb4,gb4,bb4]@48 [gb2,db3,bb3,db4,gb4]@46 ~@2 [gb3,b3,eb4]@11, ~@37 b1@137 ~@114, ~@133 [gb3,b3,eb4]@46 ~@109]/6", // Abm7 Db B Ebm Gb B
  S: "[~@4 [ab3,db4,f4]@4 [gb3,b3,eb4]@14 ~ [f3,bb3,db4]@5 [eb3,ab3,b3]@14 [db3,gb3,bb3]@5 [b2,f3,ab3]@14 [db3,gb3,bb3]@5 [eb3,ab3,b3]@14 [db3,gb3,bb3]@5 [b2,f3,ab3]@11]/2", // Db B Bbm Abm Gb Fdim Gb Abm …
  T: "[~@4 [db3,gb3,bb3]@4 ~@5 db4@2 ~@3 eb4@2 ~@3 gb4@2 ~@3 ab4@2 ~@2 b4@2 ~@3 db5@2 ~@3 eb5@2 ~@3 gb5@3 ~@3 ab5@3 ~@4 b5@3 ~@6 db5@55 ~ db5@56 ~@2 gb6@18 ~@38 [bb5,db6]@19 ~@30, ~@8 [eb3,ab3,b3]@55 ~@3 [bb5,db6]@167 ~@55, ~@66 gb3@58 db4@57 [gb3,db4,gb4,bb4,db5]@76 ~@31, ~@66 [gb5,gb6] db4 bb4@113 gb5@19 ~@88, ~@67 gb4@114 ~@107]/6", // Gb Bbm Abm Bbm Gb
})).s("gm_piano").gain(0.2)

stack(piano)