Strudelify

Flute Sonata in A minor HWV 374

G.F. Handel

KeyA minorTempo120 bpm
0:00/0:00
// Flute Sonata in A minor HWV 374 — G.F. Handel
// 120 bpm, 3/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/359361; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 44 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

// 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 C D E F G H I J K L M N O P Q R S 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
>`.pickRestart({
  A: "[a2,c5,e5,a5]@11 e5@2 a5 g5 [g5,a5], ~@11 [a3,a4,c5]@5", // Am Gsus2 Am
  B: "[a4,d5,f5]@4 e5 [f4,a4,d5]@5 ~ g4@2 a4 ~ b4, d3@11 [b2,d5,g5]@5", // Dm G
  C: "[g4,c5,e5]@4 d5 [e4,g4,c5]@5 ~ [a2,f4,c5,f5]@5, c3@11 ~@5", // C F
  D: "[g4,d5,f5]@4 e5 [f4,g4,d5]@5 ~ e5 d5 c5 ~ b4, b2@11 [g#2,e4,b4]@5", // G7 E
  E: "[a2,a4,c5,e5]@5 [a4,c5,f5]@5 ~ d5@2 e5 d5 [d5,e5], ~@5 f2@11, ~@11 [a4,b4]@5", // Am F Dsus2 Asus2
  F: "e5@3 [d5,e5] d5 e5@3 b4@3 [a4,c5]@2 [b4,d5]@3, g#4@11 ~@5, b4 ~, e2@5 b3@5 ~ [e3,e4]@5", // Dsus2 Am Bm E
  G: "[c4,a4,c5,e5]@4 [b3,d5] e5@3 d5 e5 ~ [d3,a4,d5,f5]@5, ~@5 [c4,a4,c5]@5 ~@6", // Am Bm Dm F
  H: "[b3,g4,d5,g5]@4 a3 f5@3 e5 d5 ~ [c3,g4,c5,e5]@5, ~@5 [b3,g4,d5]@5 ~@6", // G C G
  I: "[a3,f4,c5,f5]@4 g3 e5@3 d5 c5 ~ [b2,f4,g#4,d5]@5, ~@5 [a3,f4,c5]@5 ~@6", // F Bdim F
  J: "[g#3,e4,b4,e5]@4 f#3 [g#3,e4,b4,d5]@4 g#4 ~ c5@2 d5@3, ~@11 [e3,e4,a4]@5", // E E7 A5
  K: "f5 [e5,f5] e5 [e5,f5] f5 d5 e5 ~ g3@3 [f#3,a4,c5,f#5]@4 e3, a3@7 f5@4 ~@5, [a4,c5]@5 [a4,c5]@5 ~@6", // Fmaj7 F#dim Am
  L: "f#5@3 d#5@2 [b4,f#5,a5]@5 ~ b5@2 a5@3, d#3@11 [b2,d#5,f#5]@5, [a4,b4]@5 ~@11", // B7 B Asus2
  M: "[b4,e5,g5]@4 [d#5,f#5] ~@3 f#3@3 g3@2 a3@3, e3 ~, ~@5 [b4,e5,g5]@5 ~ [g4,b4,e5]@5", // Em D#m Em
  N: "[b3,e4,g4,b4]@5 b4@3 a4@3 [a3,a4,b4,f5]@5, ~@5 [b3,d#5]@5 ~@6", // Em Bm7b5 B
  O: "[g#3,e4,b4,e5]@4 d5 [g#4,b4,e5]@5 ~@6, ~@5 e3@11", P: "~@5 [a3,a4,c5,e5]@5 ~ [f#3,a4,c5,f#5]@5",
  Q: "~@5 [g3,b4,d5,g5]@5 ~ [e3,c5,e5,a5]@5", // G Am
  R: "~@5 b5 a5 [a5,b5] b5 [a5,b5] ~ [g5,a5] b5@4, ~@5 [f#3,c5,f#5]@5 ~ [d#3,b4,f#5]@5", // Asus2 Gsus2 F#dim B
  S: "g4 e4 ~ f4 g4 e5@3 d5@3 [e4,a4,c5]@5, [e3,b4,e5]@5 c3@11, ~@5 [e4,a4]@5 ~@6", // Am E5 A5
  T: "[b2,f#4,a4,d#5]@5 [b3,f#4,a4,b4]@5 ~ [b2,f#4,a4,d#5]@5", // B7
  U: "[c3,g4,c5,e5]@4 d3 g#4@3 e4@3 g#4@2 e4@3, ~@5 e3@11, ~@5 [b4,e5]@5 ~ [b4,d5]@5", // C E5 Bm
  V: "[f3,c4,f4,a4]@5 [c#4,g4,c#5]@5 ~ [g4,a4,c#5]@5, ~@5 e3@11", // F C#dim A7
  W: "[f3,f4,a4,d5]@5 [g4,b4,d5]@5 ~ [f4,g4,b4]@5, ~@5 g3@11", // Dm G G7
  X: "[c3,e4,g4,b4]@5 [f4,a4,c5]@5 ~ [g4,c5,f5]@5, ~@5 f3@11", // Cmaj7 F Csus4
  Y: "[b2,d#4,a4,b4]@5 [e4,g#4,b4]@5 ~ [e4,b4,d5]@5, ~@5 e3@11", // B7 E E7
  Z: "[e4,a4,c#5]@5 [g4,a4,c#5]@5 ~ [c#3,g4,a4,e5]@5, a3@11 ~@5", // A A7
  AA: "[f#4,a4,d5]@5 [f#4,a4,f#5]@5 ~ [f#2,a4,c5,d5]@5, d3@11 ~@5", // D F#m D7
  AB: "[g4,b4,d5]@5 b4@5 ~ g4@2 ~ g4 f4, g2@11 b2@5, ~@5 d5@11, ~@5 f4@8 f4@2 ~", // G
  AC: "[e4,g4,c5]@5 ~@3 d3@3 [e3,c5,e5]@2 [f3,d5,f5]@3, c3 ~, ~@5 [f4,a4,c5]@5 ~@6", // C Dm F
  AD: "d5@3 b4 a4 b4@3 g4@3 e5 d5 c5 ~ b4, [g3,c5]@11 [g#3,e4,b4]@5, g4 ~", // C5 E
  AE: "[a3,a4,b4,e5]@5 [a2,e4,a4,c5]@4 b2 ~ [c3,c4,e4,a4]@4 d3", // Asus2 Am
  AF: "[e3,e4,a4,c5]@4 [b4,d5] [e4,g#4,b4]@5 ~ b4@2 g#4@3, ~@5 e2@11, ~@11 [e4,d5]@5", // Am Bm E E7
  AG: "[d4,a4,d5]@4 e4 [d4,f4,a4]@11, f2", AH: "[e2,d4,e4,g#4,b4]@5 [d4,e4,g#4,b4]@11",
  AI: "[e3,d4,e4,g#4,b4]@5 [d4,e4,g#4,b4]@11", // E7
  AJ: "[g#2,b4,d5,e5]@3 [a2,a4,c5,e5]@2 [g#4,b4,e5]@5 ~ [e4,g#4,b4]@2 [d4,g#4,b4]@3, ~@5 e3@11", // E7 Am E G#dim
  AK: "[f#4,a4,b4,d#5]@5 d#5@3 c5@3 ~@2 a4@3, d#3, ~@5 f#4@11, ~@5 a4@8 ~@3, ~@5 b4@5 ~ b4@5", // B7
  AL: "g#4@3 e4@2 g#4@3 e4@3 g#4@2 e4@3, d3, [b4,e5]@5 [d5,e5]@5 ~ [b4,e5]@5", // E5 Dsus2 E5
  AM: "e5 d5 ~ c5 [d3,b4] [e4,c5]@3 b4 a4 ~ e4@2 d4@3, [c3,a4]@5 [e3,a4]@5 ~ [e2,g#4,b4]@5, e4@3 ~@13", // G C F A5 E
  AN: "a4@3 f4@2 e4@3 d4@3 c4@2 d4@3, [a2,c4,e4]@5 ~@6 [a2,f4,a4]@5", // Am Dm
  AO: "b4@3 f4@2 e4@3 d4@3 a4@2 b4 ~ c5, [g#2,b3,e4]@5 ~@6 [c3,c4,e4]@5", // E C
  AP: "d5@3 b4@2 [g#4,b4,e5]@5 ~ [a2,a4,c5,e5]@5, [b2,e4,g#4]@5 ~@11", // E Am E
  AQ: "f4@3 a4@2 [e3,e4,g#4,d5]@5 ~ [e2,d4,e4,b4]@5, [d3,a#4,f5]@5 ~@11", AR: "[a2,c4,e4,a4]@5 ~@11",
})).s("gm_piano").gain(0.3)

stack(piano)

More by G.F. Handel