Strudelify

Paganini - Centone di Sonate (Sonata III: Larghetto Cantabile) for Flute & Piano

Niccolo Paganini

KeyC majorTempo80 bpm
0:00/0:00
// Paganini - Centone di Sonate (Sonata III: Larghetto Cantabile) for Flute & Piano — Niccolo Paganini
// 80 bpm, 12/8, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/8 at bar 1, 12/8 at bar 2) are rendered on a constant 12/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5683808; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 46 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/6)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// 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@2 C D E F G A B@2 C D E F G H I H C J K L M H I H C J K L N O P Q N O P Q R@2 S T U V
>`.pickRestart({
  A: "e4 g4 c5 e5 c5 g4 e4 g4 c5 e5 c5 g4 c4 g4 c5 e5 c5 g4 e4 g4 c5 e5 c5 g4, c3@2 ~ e3@2 ~ c3@2 ~ e3@2 ~",
  B: "g3 g4 b4 f5 b4 g4 d4 g4 b4 f5 b4 g4 b3 g4 b4 f5 b4 g4 d4 g4 b4 f5 b4 g4, g2@2 ~ d3@2 ~ b2@2 ~ d3@2 ~",
  C: "c4 g4 c5 e5 c5 g4 e4 g4 c5 e5 c5 g4 c4 g4 c5 e5 c5 g4 e4 g4 c5 e5 c5 g4, c3@2 ~ e3@2 ~ c3@2 ~ e3@2 ~",
  D: "a3 a4 c#5 g5 c#5 a4 e4 a4 c#5 g5 c#5 a4 d4 a4 d5 f5 d5 a4 d4 ~@5, a2@2 ~ e3@2 ~ d3@2 ~@4",
  E: "g3 g4 b4 f5 b4 g4 d4 g4 b4 f5 b4 g4 c4 g4 c5 e5 c5 g4 c4@2 ~@4, g2@2 ~ d3@2 ~ c3@2 ~@4",
  F: "b3 g4 b4 g5 ~@2 c4 a4 c5 e5 ~@2 d4 g4 b4 g5 ~@2 d4 a4 c5 f#5 ~@2, b2@2 ~ c3@2 ~ d3@2 ~ d3@2 ~",
  G: "g3@2 g4@2 b4@2 g5 ~@5 b4@4 d5@4 g5@4 g3@4 ~@20, g2 ~@5",
  H: "[b2,g4,d5,f5]@2 [g4,d5,f5] ~@3 [b2,g4,d5,f5]@2 [g4,d5,f5] ~@3 [b2,g4,d5,f5]@2 [g4,d5,f5] ~@3 [b2,g4,d5,f5]@2 [g4,d5,f5] ~@3, ~ b2 ~@2 b2 ~@2 b2 ~@2 b2 ~", // G7
  I: "c4 g4 c5 e5 c5 g4 e4 g4 c5 e5 c5 g4 c4 g4 c5 e5 c5 g4 e4@2 [g4,c5,e5] ~@3, c3@2 ~ e3@2 ~ c3@2 ~@4", // C
  J: "a3 a4 c#5 g5 c#5 a4 e4 a4 c#5 g5 c#5 a4 d4 a4 d5 f5 d5 a4 d4@3 ~@3, a2@2 ~ e3@2 ~ d3@2 ~@4",
  K: "g3 g4 b4 f5 b4 g4 b3 g4 b4 f5 b4 g4 c4 g4 c5 e5 c5 g4 e4@3 ~@3, g2@2 ~ b2@2 ~ c3@2 ~@4",
  L: "f3 a4 c5 f5 c5 a4 f4@2 [a4,c5,f5] ~@3 g3@2 [g4,c5,e5] ~@3 g3@2 [g4,b4,f5] ~@3, f2@2 ~ f3@2 ~ g2@2 ~ g2@2 ~", // F C G7
  M: "c4 g4 b4 f5 b4 g4 g3 g4 b4 f5 b4 g4 c4 g4 c5 e5 c5 g4 e4@3 ~@3, c3@2 ~ g2@2 ~ c3@2 ~@4",
  N: "c4 c5 e5 c5 g4 c5 e5 c5 e4 c5 e5 c5 c4 c5 e5 c5 g4 c5 e5 c5 e4 c5 e5 c5 c4 c5 e5 c5 g4 c5 e5 c5 e4 c5 e5 c5 c4 c5 e5 c5 g4 c5 e5 c5 e4 c5 e5 c5, c3 g3 e3 c3 g3 e3 c3 g3 e3 c3 g3 e3",
  O: "c4 c5 e5 c5 a#4 c5 e5 c5 e4 c5 e5 c5 c4 c5 e5 c5 a#4!2 e5 c5 e4 c5 e5 c5 c4 c5 e5 c5 a#4 c5 e5 c5 e4 c5 e5 c5 c4 c5 e5 c5 a#4 c5 e5 c5 e4 c5 e5 c5, c3 a#3 e3 c3 a#3 e3 c3 a#3 e3 c3 a#3 e3",
  P: "f3 c5 f5 c5 a4 c5 f5 c5 f4 c5 f5 c5 f3 c5 f5 c5 a4 c5 f5 c5 f4 c5 f5 c5 f3@4 [a4,c5,f5]@4 ~@16, f2 a3 f3 f2 a3 f3 f2@2 ~@4", // F
  Q: "[e2,e3] [e3,g4,c5,e5] ~ [f2,f3] [f3,a4,d5,f5] ~ [g2,g3] [e3,g4,c5,e5] ~ [g2,g3] [d3,g4,b4,f5] ~", // E C F Dm G C G G7
  R: "c4 g4 c5 g4 e4 g4 c5 g4 e4 g4 c5 g4 c4 g4 c5 g4 e4 g4 c5 g4 e4 g4 c5 g4 c4 g#4 b4 g#4 f4 g#4 b4 g#4 f4 g#4 b4 g#4 c4 g#4 b4 g#4 f4 g#4 b4 g#4 f4 g#4 b4 g#4, c3 e3!2 c3 e3!2 c3 f3!2 c3 f3!2",
  S: "c4 [e4,g4,c5]!2 [c3,e4,g4,c5] ~@2 c4 [e4,g4,c5]!2 [c3,e4,g4,c5] ~@2, c3 ~@2 c3 ~@2", // C
  T: "[c3,e4,g4,c5] ~@2 [c3,e4,g4,c5] ~@2 [c3,g4,c5,e5] ~ [g2,g4,b4,f5] [c3,g4,c5,e5] ~ [g2,g4,b4,f5]", // C G7 C G7
  U: "[c3,g4,c5,e5] ~ [g2,g4,b4,f5] [c3,g4,c5,e5] ~ [g2,g4,b4,f5] [c3,g4,c5,e5] ~@2 [g2,b2,d3,g4,b4,f5] ~@2", // C G7 C G7 C G7
  V: "[c3,e3,g3,c5,e5] ~@5", // C
})).s("gm_piano").gain(0.45)

stack(piano)

More by Niccolo Paganini