Strudelify

La fille aux cheveux de lin

Debussy

KeyD♭ majorTempo67 bpm
0:00/0:00
// La fille aux cheveux de lin — Debussy
// 67 bpm, 3/4, key Db 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/5287753; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 39 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(67/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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.

// other · trombone
const trombone = note("<~ A B@2 C D@2 E F G@2 H I J K L M N O P Q@2 R S T S T U@8 V@4>".pickRestart({
  A: "~@5 gb3", B: "[f3@5 ~]/2", C: "c4@3 c4 db4@2", D: "[c4 a3 d4@2 ~@2]/2", E: "ab3@2 bb3", F: "ab3@2 bb3@2 ab3 gb3",
  G: "[ab3 f3@4 ~]/2", H: "eb3@2 eb4", I: "f4@2 ab3", J: "bb3@3 c4 bb3@3 ab3 gb3@3 f3", K: "eb3", L: "db4 bb3@2",
  M: "eb4 c4@2", N: "db3 eb3@2", O: "~@2 f2 g2 bb2 c3 d3 f3 g3@2 bb3 g3", P: "bb3 ~ d3@2 eb3@2",
  Q: "[d3@2 f3 g3 bb3 c4 d4 f4 db4@6 c4@2 bb3 ~ g3@6]/2", R: "gb3@2 eb3@2 db3 ~ bb2@4 db4 eb4",
  S: "f4@3 db4 f4@2 ab4@2 bb4@2 db5@2", T: "bb4 ab4 f4@2 eb4@2",
  U: "[~@9 bb3@24 bb3@24 ab3@12 db4 eb4 f4@3 eb4 db4@3 c4 bb3@3 ab3 bb3@3 ab3 bb3@3 ab3 bb3@3 db3 eb3]/8",
  V: "[gb3@2 ab3@2 bb3@2 db4@2 eb4@2 db4@3 eb4@2 gb4@3 f4@24 f4@48 ~@6]/4",
})).s("gm_trombone").gain(0.2)

// other · trombone
const trombone_2 = note("<~ A B@2 C D@2 E F G H I J K L M N O E P Q@2 R S T U V W@4 X@2 Y Z@5>".pickRestart({
  A: "~@5 bb2", B: "[ab2@5 ~]/2", C: "eb3@3 c3 f3@2", D: "[eb3 f3 f3@2 ~@2]/2", E: "f3@2 g3", F: "f3@2 g3@2 f3 db3",
  G: "f3@4 ab3@5 gb3 f3 eb3", H: "db3@2 c3 bb2 ab2@8", I: "gb2 bb2@2", J: "ab3@2 f3", K: "gb3@3 ab3 gb3@3 f3 eb3@3 db3",
  L: "b2 gb3 ~", M: "bb3 gb3@2", N: "g3 eb3@2", O: "bb2 c3@2", P: "~@2 f2 g2 bb2 c3 d3 f3 g3@2 bb3 g3",
  Q: "[bb3@2 f2 g2 bb2 c3 d3 f3 gb3@6 eb3@2 db3 ~ bb2@6]/2", R: "db3@2 c3@2 bb2 ~ g2@4 ab3@2",
  S: "ab3@3 f3 db3@2 f3@2 ab3@2 c4@2", T: "ab3 f3 db3@2 eb3@2", U: "ab2@3 bb2 db3@2 f3@2 ab3@2 bb3@2",
  V: "db4 bb3 db3@2 eb3@2", W: "[~@9 db3@24 db3@8 eb3@4 db4@3]/4", X: "[~ c4@4 bb3@4 ab3@6 gb3@2 f3@2 eb3@2 gb3@3]/2",
  Y: "ab3 gb3@3 f3 eb3@3 db3 b2@3", Z: "[db3 eb3@3 db3 b2@3 db3 eb3@12 ab3@12 ab3@24 ~@3]/5",
})).s("gm_trombone").gain(0.2)

// bass · trombone · "Bass Trombone"
const bass = note("<~ A B@2 C D@2 E F G@2 H I J K L M N O P Q@2 R S T U V W@6 X Y Z@4>".pickRestart({
  A: "~@5 gb2", B: "[db2@5 ~]/2", C: "ab2@3 f2 bb2 db3", D: "[ab2 f2 bb2@2 ~@2]/2", E: "b2@2 db3",
  F: "b2@2 db3@2 db3 b2", G: "[db2@16 ab2@5 gb2 f2 eb2]/2", H: "db2@2 db3", I: "db3@2 db2",
  J: "db3@3 eb3 db3@3 c3 bb2@3 ab2", K: "gb2 b2@2", L: "gb2", M: "eb2 ab2@2", N: "eb2 f2!2", O: "bb1@2 f2",
  P: "db2@2 f2", Q: "[bb1@2 f2 g2 bb2 c3 d3 f3 gb2@6 ab2@2 bb2 ~ eb3@2 eb2@4]/2", R: "gb2@2 ab2@2 bb2 ~ eb2@4 ab2@2",
  S: "db3@3 bb2 gb2@2 bb2@2 db3@2 f3@2", T: "db3 bb2 gb2@2 ab2@2", U: "db2@3 f2 ab2@2 bb2@2 db3@2 f3@2",
  V: "ab3 f3 gb2@2 ab2@2", W: "[~@3 gb2@8 gb2@4 bb2@4 db3@4 db3]/6", X: "eb3 db3@3 c3 bb2@3 ab2 gb2@3",
  Y: "ab2 bb2@3 ab2 gb2@3 ab2 gb2 ab2 bb2", Z: "[db3 eb3 gb3 ab3 bb3 bb3@4 db3@12 db3@24 ~@3]/4",
})).s("gm_trombone").gain(0.2)

stack(trombone, trombone_2, bass)

More by Debussy