Strudelify

Serenade Italienne by Ernest Chausson

Ernest Chausson

KeyG majorTempo110 bpm
0:00/0:00
// Serenade Italienne by Ernest Chausson — Ernest Chausson
// 110 bpm, 3/2, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1073366; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 36 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/6)

// 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 B C B D E F G H G I J K L M N O P Q R S@4 T U V W X Y Z AA AB@2 AC AD>".pickRestart({
  A: "b3@3 d4@2 g4@3 c4@3 e4@2 g4@3 b3@3 d4@2 g4@3 a3@3 c4@2 g4@3 b3@3 d4@2 g4@3 g3@3 b3@2 g4@3",
  B: "a3@3 c4@2 g4@3 a3@3 c4@2 g4@3 [f2,a3]@3 ~@2 g4@3 a3@3 c4@2 g4@3 a3@3 ~@2 g4@3 [c2,a3]@3 ~@2 g4@3, g1, d#2@16 ~@3 c4@3 ~@13 c4@3 ~@5 c4@3 ~@2, ~@5 d#2 d#2@3 d2 ~ d#2", // F
  C: "b3@3 d4@2 g4@3 c4@3 e4@2 g4@3 b3@3 d4@2 g4@3 a3@3 c4@2 g4@3 b3@3 d4@2 g4@3 g3@3 b3@2 g4@3, [g1,d2]", // G5
  D: "b3@3 d4@2 g4@3 a3@3 c4@2 g4@3 b3@3 d4@2 g4@3 a3@3 c4@2 g4@3 g#3@3 f4@2 g#4@3 c5@3 g#4@2 f4@3, g1, d2 d#2 d2 c#2 c2 f2",
  E: "d4@3 g4@2 b4@3 e4@3 g4@2 b4@3 d4@3 g4@2 b4@3 b3@3 d4@2 g4@3 g3@3 b3@2 d4@3 f3@3 b3@2 d4@3, [g1,g2]", // G
  F: "e3@3 b3@2 e4@3 g#4@3 d4@2 b3@3 g#3@3 b3@2 e4@3 g#4@3 b4@2 e5@3 g#5@8 ~@8, [g1,g2]@5 ~", // G
  G: "b3@3 d4@2 g4@3 c4@3 e4@2 g4@3 b3@3 d4@2 g4@3 a3@3 c4@2 g4@3 b3@3 d4@2 g4@3 g3@3 b3@2 g4@3, [g1,g2]", // G
  H: "b3@3 a#3@2 b3@3 g#3@3 g3@2 g#3@3 d#3@3 d3@2 d#3@3 b2@3 a#2@2 b2@3 g#2@3 g2@2 g#2@3 d#2@3 d2@2 d#2@3, [g#1,d#2,b2] ~@2, d#4 ~@3", // G#m
  I: "g3@3 d#4@2 e4@3 b3@3 a#3@2 b3@3 g3@3 f#3@2 g3@3 e3@3 d#3@2 e3@3 [g3,b3]@3 a#3@2 b3@3 e4@3 d#4@2 e4@3, [e2,b2], g4 ~@3", // G E5
  J: "e4@3 d#4@2 e4@3 b3@3 a#3@2 b3@3 g3@3 f#3@2 g3@3 e3@3 d#3@2 e3@3 [g3,b3]@3 a#3@2 b3@3 e4@3 d#4@2 e4@3, [d2,b2], g4 ~@3", // G
  K: "e4@3 d4@2 c#4@3 c#4@3 b3@2 a3@3 c#4@3 a#3@2 a3@3 a3@3 g3@2 f3@3 [e3,a#3]@3 a3@2 g3@3 g3@3 f3@2 e3@3, [c#2,a#2] ~@2, g4 ~ e4 ~ c#4 ~", // Edim F#
  L: "b3@3 a#3@2 g#3@3 g#3@3 f#3@2 f3@3 g#3@3 f#3@2 f3@3 f3@3 d#3@2 d3@3 [b2,f3]@3 d#3@2 d3@3 b2@3 a#2@2 g#2@3, [d2,g#2] ~@2, f4 ~ b3 ~ g#3 ~", // Bdim Ddim
  M: "f4@3 c#4@2 c4@3 c4@3 a#3@2 g#3@3 c4@3 a#3@2 g#3@3 g#3@3 g3@2 f#3@3 [f3,g#3]@3 g3@2 f3@3 c3@3 g#2@2 f2@3, [c2,g#2] ~@2, g#4 ~ f4 ~ c4 ~", // Fm
  N: "e4@3 d4@2 c4@3 c4@3 b3@2 a3@3 c4@3 b3@2 a3@3 a3@3 e3@2 a2@3 [d#3,a3]@3 f3@2 e3@3 e3@3 a2@2 e2@3, [a1,e2] ~@2, a4 ~ e4 ~ c4 ~", // D#dim A5
  O: "~@3 d#4@2 c4@3 g3@3 d#3@2 g2@3 ~@3 d#4@2 c4@3 g3@3 d#3@2 g2@3 ~@3 d#4@2 c4@3 g3@3 d#3@2 g2@3, [c2,g4] ~ [c2,g4] ~ [c2,g4] ~", // C5
  P: "~@3 d#4@2 c4@3 a3@3 d#3@2 a2@3 ~@3 d#4@2 c4@3 a3@3 d#3@2 a2@3 ~@3 d#4@2 c4@3 g#3@3 d#3@2 a2@3, [d#2,f#4] ~ [d#2,f#4] ~ [g#2,f#4] ~", // D#m G#7
  Q: "~@3 d#4@2 c4@3 g3@3 d#3@2 g2@3 ~@3 d#4@2 c4@3 g3@3 d#3@2 g2@3 ~@3 d#4@2 c4@3 g3@3 d#3@2 g2@3, [c2,g2,g4] ~ [c2,g4] ~ [c2,g4] ~", // C5
  R: "~@3 d#4@2 b3@3 a3@3 f#3@2 f#2@3 ~@3 d#4@2 b3@3 a3@3 f#3@2 f#2@3 ~@3 d#4@2 b3@3 a3@3 f#3@2 f#2@3, [b1,f#4] ~ [b1,f#4] ~ [b1,f#4] ~", // B5
  S: "~ b3 e4 g#4 b4 g#4 e4 b3!2 ~ e4 g#4 b4 g#4 e4 b3 c#4 ~ e4 g#4 c#5 g#4 e4 c#4, [e1,b1], ~@9 b3@6 ~@2 c#4@6 ~", // E5
  T: "~ b3 d#4 f#4 b4 f#4 d#4 a3 b3 ~ d#4 f#4 b4 f#4 d#4 a3 b3 ~ d#4 f#4 b4 f#4 d#4 a3, b1, ~@9 b3@7 ~ b3@7",
  U: "b3 ~ d#4 f#4 b4 f#4 d#4 a3 b3 ~ d#4 f#4 b4 f#4 d#4 a3 b3 ~ d#4 f#4 b4 f#4 d#4 a3, ~ b3@7 ~ b3@7 ~ b3@7",
  V: "b3 d4 g4 b4 c4 ~ e4 g4 b3 ~ d4 g4 a3 ~ c4 g4 b3 ~ d4 g4 g3 ~ b3 g4, [g1,d2], ~@5 c4@3 ~ b3@3 ~ a3@3 ~ b3@3 ~ g3@3", // G5
  W: "a3@3 c4@2 d#4@3 g4@3 d#4@2 c4@3 [f2,a3]@3 ~@2 d#4@3 g4@3 d#4@2 c4@3 a3@3 ~@2 d#4@3 [c2,g4]@3 ~@2 c4@3, g1, d#2@16 ~@3 c4@3 ~@13 c4@3 ~@5 d#4@3 ~@2, ~@5 d#2 d#2@3 d2 ~ d#2", // F C5
  X: "b3@3 d4@2 g4@3 c4@2 ~@2 e4@2 g4@2 b3@2 ~@2 d4@2 g4@2 a3@2 ~@2 c4@2 g4@2 b3@2 ~@2 d4@2 g4@2 g3@2 ~@2 b3@2 g4@2, [g1,d2], ~@5 c4@3 ~ b3@3 ~ a3@3 ~ b3@3 ~ g3@3", // G5
  Y: "b4@3 a#4@2 b4@3 g#4@3 g4@2 g#4@3 d#3@3 d3@2 d#3@3 b2@3 a#2@2 b2@3 g#2@3 g2@2 g#2@3 d#2@3 d2@2 d#2@3, [g#1,d#2,b2] ~@2, d#4 ~@3", // G#m
  Z: "d3@3 g3@2 b3@3 d4@3 b3@2 g3@3 d#3@3 g3@2 a#3@3 d#4@3 a#3@2 g3@3 d#3@3 g#3@2 c4@3 d#4@3 c4@2 g#3@3, d2 c#2 c2",
  AA: "a#1@16 ~@19 d#3@2 g#3@3 b3@3 d#4@2 b3@3, ~ a1@2",
  AB: "[g#3 ~@2 g6 [c4,e5] ~@2 e6 [a4,d5] ~@2 d6 [b4,d5] ~@2 b5 [g4,f#5] ~ b4 g5 e4 ~ g4 e5 d4 ~ g4 d5 b3 ~ d4 b4 g3 ~ b3 g4 e3 ~ g3 e4 d3 ~ g3 d4 b2 ~ d3 g3, [g1,d2], g5@8 ~@2 e5@6 ~@2 d5@6 ~@3 d#5@2 e5@3 ~@64, ~ b5 d6 ~@3 g5 ~@3 g5 ~@3 d5 ~@33, ~@3 f#3@2 a3@3 ~@3 d4@2 f#4@3 ~@3 c5@2 c#5@3 ~@2 b4@6 ~@2 g4@6 ~@2 e4@6 ~@2 d4@6 ~@2 b3@6 ~@2 g3@6 ~@2 e3@6 ~@2 d3@6 ~@2 b2@6]/2", // C D5 Bm Gmaj7 G5
  AC: "c3@3 d#3@2 f#3@3 g#3@3 b3@2 c4@3 d#4@3 f#4@2 g#4@3 b4@3 c5@2 d#5@3 f#5@3 g#5@2 b5@3 c6@3 d#6@2 f#6@3, [a1,a2]", // A
  AD: "[g1,g2,b5,g6,d7] ~@5", // G
})).s("gm_piano").gain(0.32)

stack(piano)