Strudelify

Händel - Arioso: Dank sei Dir Herr for Flute and Cello

G. F. H?ndel

KeyD majorTempo72 bpm
0:00/0:00
// Händel - Arioso: Dank sei Dir Herr for Flute and Cello — G. F. H?ndel
// 72 bpm, 3/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 1 "바이올린, Violin" named as a string part, played on violin (its flute patch is not one); ch 5 "피아노 , Piano" named as a piano, played on piano (its orchestral harp patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/3632066; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 80 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(72/3)

// 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.

// other · violin · "바이올린, Violin"
const violin = note(`<
  A@4 B C@3 D E F G H F I J F ~@16 K L M N O@2 P Q K R S H ~@2 A@4 B C@3 T E F G U F I J F ~@8 E F G H K V W F
>`.pickRestart({
  A: "[d5@76 ~@4 f#5@11 ~ e5@4]/4", B: "e5@5 ~@3", C: "[e5@53 ~@3 g5@11 ~ f#5@4]/3", D: "f#5@5 ~@3",
  E: "a5@8 f#5@11 ~ e5@4", F: "d5@23 ~", G: "d5@8 b4@11 ~ a4@4", H: "a4@23 ~", I: "e5@11 ~ f#5@4 g5@8",
  J: "f#5@8 e5@11 ~ d5@4", K: "e5@2 d5 c#5 b4 a4", L: "f#5@15 ~ f#5@8", M: "f#5@2 f#5 e5 b4 c#5", N: "f#4 g#4 a#4",
  O: "[b4@30 ~@2 e5@11 ~ d#5@4]/2", P: "d#5@23 ~", Q: "e5@11 ~ d#5@4 e5@8", R: "a5@2 g#5 f#5 e5 d5",
  S: "c#5@8 b4@11 ~ a4@4", T: "f#5@23 ~", U: "a4@5 ~@3", V: "a5 d5 g5", W: "f#5@4 e5@4 e5@11 ~ d5@4",
})).s("gm_violin").gain(0.3)

// chords · piano · "피아노 , Piano"
const piano = note(`<
  A B C D E F G H I J K L M N O P Q R S@2 T U V@2 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 D AW AX AY H AZ BA BB BC BD AV BE BF BG B C D E F G H I J K L M BH BI BJ BK
>`.pickRestart({
  A: "~ [f#4,d5]@7 [d2,d3,d4,f#4,d5]@8 [d2,d3,d4,f#4,d5]@8, [d2,d3,d4] ~@2", // D
  B: "~ [g4,d5]@7 [e2,e3,d4,g4,d5]@8 [e2,e3,d4,g4,d5]@8, [e2,e3,d4] ~@2", // G5 Em7 E7
  C: "~ [a4,d5]@7 [f#2,f#3,d4,a4,d5]@8 [f#2,f#3,d4,a4,d5]@8, [f#2,f#3,d4] ~@2", D: "[g2,g3,d4,b4,d5]!3",
  E: "~ [a4,c#5]@7 [a2,a3,e4,a4,c#5]@8 [a2,a3,e4,a4,c#5]@8, [a2,a3,e4] ~@2", // A A5
  F: "~ [a4,d5]@7 [b2,b3,e4,a4,d5]@8 [b2,b3,e4,a4,d5]@8, [b2,b3,e4] ~@2", // D5 Bm7 E5
  G: "~ [a4,e5]@7 [c#3,c#4,e4,a4,e5]@8 [c#3,c#4,e4,a4,e5]@8, [c#3,c#4,e4] ~@2", // A5 A C#m
  H: "[a2,a3,e4,c#5,e5] [a2,a3,g4,a4,c#5,e5]!2", // A A7
  I: "~ f#5@3 [d3,d4,f#4,a4,d5]@4 [d3,d4,f#4,a4,d5]@4, [d3,d4,f#4] ~@2, ~ [a4,d5]@7 ~@16", // D D5
  J: "[c#3,c#4,e4,a4,e5] [a2,a3,f#4,a4,c#5]!2", // A F#m
  K: "~ [f#4,b4]@7 [b2,b3,d4,f#4,b4]@8 [b2,b3,d4,f#4,b4]@8, [b2,b3,d4] ~@2", L: "[b1,b2,d4,g4,b4] [c#2,c#3,e4,a4]!2",
  M: "~ [f#4,a4]@7 [d2,d3,d4,f#4,a4]@8 [d2,d3,d4,f#4,a4]@8, [d2,d3,d4] ~@2", // F#m D
  N: "~ [d4,a4]@7 [f#2,f#3,a3,d4,a4]@8 [f#2,f#3,a3,d4,a4]@8, [f#2,f#3,a3] ~@2", // D5 D F#m
  O: "[g2,g3,b3,e4] [g2,g3,b3,e4,b4] [e2,e3,e4,b4,e5]", P: "[a2,a3,f#4,a4,d5] [a1,a2,g4,a4,c#5]!2",
  Q: "~ f#4@7 [d2,d3,d4,f#4]@8 [d2,d3,d4,f#4]@8, d5, [d2,d3,d4] ~@2", R: "[e2,e3,d4,g4]!3, d5",
  S: "[[f#2,f#3,d4,a4]@2 [f#2,f#3,d4,a4]@2 [f#2,f#3,d4,a4]@2 [g2,g3,d4,b4]@2 [g2,g3,d4,b4]@2 ~ e5, d5@8 f#5@3 ~, ~@5 [g2,g3,d4,b4]]/2", // D G
  T: "[a2,a3,e4,a4,c#5]!3, e5", U: "[b2,b3,e4,a4,d5]!3, e5",
  V: "[[c#3,c#4,e4,a4]@2 [c#3,c#4,e4,a4]@2 [c#3,c#4,e4,a4]@2 [a2,a3,e4,c#5]@2 [a2,a3,g4,a4,c#5]@2 ~ f#5, e5@2 g5, ~@5 [a2,a3,g4,a4,c#5]]/2", // A A7
  W: "[d2,d3,f#4,a4,d5]!3, f#5", X: "[d2,d3,a4,c#5,a5]@2 [d2,d3,a4,c#5]@2 c#5 e5, ~ f#5@2, ~@2 [d2,d3,a4]",
  Y: "[g2,g3,f#4,b4]!2 [g2,g3,g4,b4], d5", Z: "[f#2,f#3,d4,a4,d5]@2 [g2,g3,d4,g4]@2 ~ a4, ~ b4@2, ~@2 [e2,e3,c#4,g4]",
  AA: "[d2,d3,d4,f#4]!3, a4", AB: "[d3,d4,e5,g#5,b5]@2 a5 g#5 [e5,f#5] e5, ~ [d3,d4,e5] [d3,d4]",
  AC: "[c#3,c#4,e5,a5,e6] [d3,d4,f#5,a5] [b2,b3,f#5,a5,b5]", // A D B7
  AD: "b5@2 c#6@2 d6 e6 d6 e6 d6@2 c#6@2, [e3,e4,a5] [e2,e3,e5,g#5]!2", AE: "[a1,a2,e5,a5] [a1,a2,e4,a4,c#5]!2, c#6",
  AF: "[g3,e4,a4,c#5] [g3,e4,a4,d5] [g3,e4,a4,e5]", AG: "[f#3,c#4,e4,a#4] [f#3,e4,a#4,c#5]!2",
  AH: "[d3,b3,f#4,b4] [e3,b3,g4,b4] [c#3,b3,g4,b4,e5]", // Bm Em C#m7b5
  AI: "[f#2,f#3,f#4,a#4,e5] [g#2,g#3,f#4,b4,e5] [a#2,a#3,f#4,c#5,e5]", // F#7 E F#7
  AJ: "[b2,b3,f#4,b4,d5] [c#3,b3,f#4,d5] [d3,b3,f#4,d5]", AK: "[e3,b3,d5] [e3,b3,c#5] [e3,b3,e4,g4,b4], g4@2 ~",
  AL: "[f#2,f#3,d#4,f#4,b4] [b2,b3,d#4,f#4,b4] [a2,a3,d#4,f#4,b4]", AM: "[g#2,g#3,e4,b4]!3",
  AN: "[g2,g3,e4,a4,c#5] [g2,g3,e4,a4,d5] [g2,g3,e4,a4,e5]", // A7 Gsus2 A7
  AO: "[f#2,f#3,a4,d5]@2 [b1,b2,f#5]@2 [c#2,c#3,e5] [d2,d3,d5], ~ a4@2", // D B5 C#m D
  AP: "[e2,e3,c#4,a4,c#5] [e1,e2,d4,a4] [e1,e2,d4,g#4], ~ b4@2", AQ: "[a1,a2,c#4,e4,a4]",
  AR: "[a4,c#5,a5] [c#4,c#5] [d2,d3,a4]@2 ~ [a3,a4], [c#2,c#3]@2 [b3,b4]@3 ~, ~@2 [e2,e3,d4,g#4]", // A C# D5 A C# B E7
  AS: "[a2,e3,a3,c#4,a4]", AT: "[d2,d3,d4,f#4,d5]!3", AU: "[e2,e3,d4,g4,d5]!3", AV: "[f#2,f#3,d4,a4,d5]!3",
  AW: "[a2,a3,e4,a4,c#5]!3", AX: "[b2,b3,e4,a4,d5]!3", AY: "[c#3,c#4,e4,a4,e5]!3",
  AZ: "[d3,d4,f#4,a4,d5] [d2,d3,f#4,d5]!2", BA: "[c#2,c#3,e4,a4,e5] [a1,a2,f#4,a4,c#5] [a1,a2,g4,a4,c#5]",
  BB: "[b1,b2,f#4,b4,d5]!3", BC: "[b1,b2,d4,g4,d5] [c#2,c#3,d4,g4] [c#2,c#3,e4,g4]", BD: "[d2,d3,d4,f#4]!3",
  BE: "[g2,g3,e4,b4,d5]!3", BF: "[a2,a3,f#4,a4,d5] [a1,a2,a4,c#5] [a1,a2,g4,c#5]", BG: "[d2,d3,d4,f#4]!3, d5",
  BH: "[c#3,c#4] [d3,d4] [g2,c#3,e3,c#4,e4], [g2,a3,a4]@2 ~", BI: "[f#3,d4,f#4,a4,d5] [g3,d4,a4,b4,d5] [e2,e3,b4,d5]",
  BJ: "[f#2,f#3] [g2,g3] [a2,a3,a4,d5]@2 [a1,a2,e4,a4,c#5]@2, [a4,d5] ~@2", BK: "[d2,d3,f#4,a4,d5]",
})).s("gm_piano").gain(0.3)

stack(violin, piano)