Strudelify

Elegie

G. Fauré

KeyE♭ majorTempo120 bpm
0:00/0:00
// Elegie — G. Fauré
// 120 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 44, 4/4 at bar 44) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5902754; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 52 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · cello · "Violoncello"
const cello = note(`<
  A B C D E F G H I J K L M N O P Q R S H T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU
  AV AW AX@2
>`.pickRestart({
  A: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~", B: "c3 ~ c3 ~ d3 ~ d3 ~ eb3 ~ f3 ~ eb3 ~ d3 ~",
  C: "[c3,g3]!2 [c3,ab3]!2 [c3,bb3]!2 [bb2,g3]!2", // C5 Fm C7 Eb
  D: "[ab2,eb3] ~ [ab2,eb3] ~ [ab2,f3] ~ [ab2,f3] ~ g2 ~ g2 ~ gb2 ~ gb2 ~", // Ab5 Db
  E: "f2 ~ f2 ~ b2 ~ b2 ~ c3 ~ c3 ~ c3 ~ c3 ~", F: "c2!2 d2!2 eb2 f2 eb2 d2", G: "c2!2 ab2!2 eb2!4",
  H: "a2!2 ab2!2 g2!2 gb2!2", I: "f2!2 g2!2 c3 ab3 g3 eb3", J: "b2!2 c3!2 eb3 d3 eb3 g3", K: "f3!2 e3!2 eb3!2 c3!2",
  L: "bb2!2 a2!2 ab2 f2 g2 ab2", M: "db3 c3 bb2 ab2 eb3 g3 gb3 f3", N: "gb3!3 f3 e2 f2 g2 ab2",
  O: "b2!2 c3 db3 d3 eb3 f3 g3", P: "ab2@2 c3 g3 gb3@2 eb3 d3", Q: "[c3,ab3]@4 d3@2 g3 ~ g3 ~ g3 ~ g3 ~@3",
  R: "c3!2 d3!2 eb3 f3 eb3 d3", S: "c3!2 ab2!2 eb2!4", T: "f2!2 g2!2 ab2 bb2 ab2 eb2", U: "c3@2 g2@2 ab2 bb2 ab2 eb2",
  V: "ab2@4 bb2@4 ab2@4 eb2@4 eb3 c4 eb3 c4 eb3 c4 eb3 c4 eb3 c4 eb3 c4 eb3 c4 eb3 c4",
  W: "~@2 eb4@4 db4@4 eb4@2 c4 db4 ~ eb4 eb4@2 g3@4 ab3@4 g3@2 f3 c4 ~ f4",
  X: "f4@2 bb3@4 c4@2 db4 c4 ~ db4 d4 db4 ~ d4 eb4@6 bb3@2 db4@4 c4@4",
  Y: "~@2 a3@4 c4@2 a3 bb3 ~ c4 db4 eb4 ~ f4 f4@2 d4@4 f4@2 d4 eb4 ~ f4 g4 ab4 ~ c4",
  Z: "c4@2 a3@4 c4@2 a3 bb3 ~ c4 db4 eb4 ~ f4 f4@2 d4@4 f4@2 d4 eb4 ~ g4 ab4 c5 ~ c4",
  AA: "c4@2 a3@4 c4@2 a3 bb3 ~ d4 eb4 f4 ~ c4 c4@2 a3@4 c4@2 a3 bb3 ~ d4 eb4 g4 ~ g3",
  AB: "g3@2 e3@4 f3@2 a3 bb3 ~ d4 eb4 g4 ~ g3 g3@2 e3@4 f3@2 g3 ab3 ~ a3 bb3 c4 ~ db4",
  AC: "ab2 bb2 ab2 eb2 bb2 c3 bb2 a2", AD: "g2 a2 bb2 ab2 g2 eb2 ab2@2", AE: "db3 eb3 db3 eb2 c3 db3 c3 eb2",
  AF: "d3 db3 c3 eb2 d3 db3 c3 ab2", AG: "f2@2 [c3,f3] ~ d2@2 [gb3,c4] ~",
  AH: "g3 [g2,d3] d3 [d3,g3] ab3 [ab2,d3] d3 [d3,ab3] g3 [g2,d3] d3 [d3,g3] d3 [d2,g2] g2 [g2,d3] [g2,d3]@4 ~@12", // G5 Abdim Ddim G5
  AI: "e3 [bb2,e3] bb2 [bb2,e3] f3 [bb2,f3] bb2 [bb2,f3] e3 [bb2,e3] bb2 [bb2,e3] bb3 [bb2,f3] f3 [f3,bb3] [bb2,e3]@4 ~@12", // Bbdim Bb5 Bbdim Bb5 Bbdim
  AJ: "a2 [c2,a2] c2 [c2,a2] a2 [a2,c3] c3 [a2,c3] ab2@8 g2 [c2,g2] c2 [c2,g2] g2 [g2,c3] c3 [g2,c3] [gb2,c3]@4 ~@4", // F Am C5 Gbdim
  AK: "[g3,d4] ~@3 [c4,g4] ~@3", AL: "c3 ab3 g3 f3 d3 ab3 g3 f3 eb3 ab3 g3 f3 eb3 ab3 g3 f3",
  AM: "c3 f3 eb3 d3 c3 f3 eb3 d3 c3 f3 eb3 d3 bb2 f3 eb3 d3",
  AN: "ab2 d3 c3 bb2 ab2 d3 c3 bb2 g2 d3 c3 bb2 gb2 d3 c3 bb2",
  AO: "c3 db3 c3 ab2 db3 eb3 db3 ab2!2 f3 eb3 db3 eb3 f3 eb3 db3",
  AP: "f2 db3 c3 ab2 db3 eb3 db3 ab2!2 f3 eb3 db3 eb3 f3 eb3 db3",
  AQ: "eb2@2 db3@2 c3@2 g2@2 bb2@2 c3@2 bb2@2 f2@2 ~@2 c4@4 db4@4 c4@2 bb3 c4 ~ db4",
  AR: "db4@2 eb4@4 f4@2 f4 g4 ~ ab4 eb4 c4 ~ ab3 ~@2 bb3@4 b3@4 bb3@2 ab3 bb3 ~ b3",
  AS: "b3@2 db4@4 eb4@2 eb4 f4 ~ gb4 db4 bb3 ~ gb3 c3@4 c3@4 bb2@4 db3@4", AT: "c3 db3 c3 ab2 c2 f2 ab2 g2",
  AU: "c2 ab2 gb2 g2 c2 f2 ab2 g2", AV: "c2 ab2 gb2 g2 c2 ab2 gb2 g2", AW: "c2@2 ~@6 d4 eb4@2 c4@2 g3@2 f3",
  AX: "[d3 eb3 ~@4 [c3,g3]@4 [c2,g2]@2 [g2,eb3,c4]@4]/2", // C5 Cm
})).s("gm_cello").gain(0.2)

stack(cello)