Strudelify

Messiah: 44. Halleluja!

George Frideric Handel

KeyD majorTempo100 bpm
0:00/0:00
// Messiah: 44. Halleluja! — George Frideric Handel
// 100 bpm, 4/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: Full arrangement: all 96 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/4)

// 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@3 B@2 C@8 D@3 E@6 F@7 G@5 H@8 I J K L M@3 N O P Q R S Q R T U V W X Y Z AA AB AC AD AE AF AG@2 AH AI@2 AJ AK AL AM
  AN AO AP AQ AR AQ AS AT AU AV AW AX@2 AY AZ BA@2
>`.pickRestart({
  A: "[~@3 [d2,d3,f#4,a4]@4 [e2,e3,g4]@4 [f#2,f#3,a4]@4 [d2,d3,d5,f#5,a5]@4 [g2,g3,d5,g5,b5]@4 [d2,d3,f#5,a5]@4 [f#2,f#3]@4 [a2,a3]@4 [d2,d3]@4 [e2,e3]@4 [f#2,f#3]@4 [d2,d3,a4,d5,f#5]@4 [e2,e3,g4,c#5,g5]@4 [d2,d3,a4,d5,f#5]@4 ~@4 [f#2,f#3,d5,a5]@4 [e2,e3,c#5,g5]@4 [d2,d3,f#5]@4 e5 f#5 e5 f#5 e5 f#5 d5 e5 [f#4,a4,d5]@4 [f#4,a4]@4 [g4,b4]@4 [e4,c#5], ~@3 d5@12 ~@8 d5@8 ~@4 [d5,f#5,a5,d6]@12 ~@16 a4@8 [a4,d5]@8 ~@17, ~@75 [a2,a3]@4 [a1,a2,g4,a4,c#5]@4 [d2,d3]@8 ~@5]/3", // D Em F#m D G D F# A …
  B: "[~@3 [d2,d3]@4 [d2,d3]@4 [e2,e3]@4 [f#2,f#3]@4 [g2,g3,g4,b4]@4 [d2,d3,f#4,a4]@4 ~@4 [d4,f#4,a4]@4 [d2,d3,a3,d4,f#4]@4 [d2,d3,f#3,a3,d4]@4 [e2,e3]@4 [f#2,f#3]@4 [g2,g3,g5,b5]@4 [d2,d3,f#5,a5]@4 ~@4 [f#2,f#3,a4,d5,a5], ~@3 [f#4,a4,d5]@8 ~@8 [d4,d5]@12 ~@20 [d5,d6]@12 ~]/2", // D E F# G D E F# G …
  C: "[~ [f#2,f#3,a4,d5]@2 [g2,g3,g4,b4,d5]@4 [a4,d5,f#5]@2 [a4,d5,f#5]@2 [b4,d5,g5]@4 [f#2,f#3,a4,d5,f#5]@2 [f#2,f#3,a4,d5]@2 [g2,g3,g4,b4,d5]@4 [d5,f#5,a5]@2 [d5,f#5,a5]@2 [d5,g5,b5]@4 [f#2,f#3,a4,d5,f#5,a5]@4 [e2,e3,g4,c#5]@4 [d2,d3,f#4]@4 [a2,a3,e4]@4 [a1,a2,a4,c#5,e5]@4 [d2,d3,a4,d5,f#5]@4 [f#2,f#3,a4,d5,a5]@4 [e2,e3,c#5,g5]@4 [d2,d3,a4,d5,f#5]@4 [a4,c#5,e5]@8 ~@4 [c#3,c#4]@4 [d3,a3,d4,d5,f#5]@4 [a2,c#5,e5]@4 ~@4 [a4,c#5,e5]@4 [e4,a4,c#5]@8 ~@4 [c#3,c#4]@4 [d3,d4]@4 [a4,c#5,e5]@2 [a4,c#5,e5]@2 [a4,d5,f#5]@4 [c#3,c#4]@2 [c#3,c#4]@2 [d3,d4]@4 [e5,a5,c#6]@2 [e5,a5,c#6]@2 [f#5,a5,d6]@4 [c#3,c#4]@2 [c#3,c#4]@2 [d3,d4]@4 [e5,a5,c#6]@2 [e5,a5,c#6]@2 [f#5,a5,d6]@4 [c#3,c#4,e5,a5,c#6]@4 [d3,d4,a4,d5,f#5]@4 [c#3,c#4,a4,e5]@4 ~@4 g#5@4 [c#5,a5]@4 [a4,c#5,e5]@2 [a4,c#5,e5]@2 [a4,d5,f#5]@4 [a4,c#5,e5]@4 [a2,a3,a4]@16 [b2,b3,b4]@8 [c#3,c#4,c#5]@8 [d3,d4,d5]@4 [d2,d3,d4]@4 [d3,d4,d5]@12 [d3,d4,d5]@4 [c#3,c#4,c#5]@5, ~@7 [d2,d3]@4 ~@12 [d2,d3,a4]@4 ~@12 [a4,d5]@8 ~@20 [a2,a3]@12 ~@4 a4@12 ~@32 [a4,c#5,e5]@4 ~@12 [e5,a5,c#6]@4 ~@20 a5@8 ~@81, ~@87 a3@8 ~@4 [a2,a3]@12 ~@8 [a2,a3]@4 ~@12 [a2,a3]@4 ~@12 [a2,a3]@4 ~@16 [b2,b3,b4,d5]@8 [a2,a3]@8 ~@69]/8", // D G D G D G D G …
  D: "[~@3 [b2,b3,b4]@16 [a2,a3,a4]@8 ~@4 [c#3,c#4,e5,a5]@2 [c#3,c#4,e5,a5]@2 [d3,d4,f#5,a5,d6]@4 [a2,a3,e5,a5,c#6]@4 ~@4 [c#3,c#4,e5,a5]@2 [c#3,c#4,e5,a5]@2 [d3,d4,f#5,a5,d6]@4 [a2,a3,e5,a5,c#6]@4 ~@4 [c#3,c#4,e5,a5]@2 [c#3,c#4,e5,a5]@2 [d3,d4,f#5,a5,d6]@4 [e5,a5,c#6]@2 [e5,a5,c#6]@2 [e5,a5,c#6]@4 [c#3,c#4,e5,a5]@2 [c#3,c#4,e5,a5]@2 [d3,d4,f#5,a5,d6]@4 [a2,a3,e5,a5,c#6]@4 ~@5, ~@71 [a2,a3]@4 ~@21]/3", // B A D A D A D A …
  E: "[~@3 [d2,d3,d4]@16 [e2,e3,e4]@8 [f#2,f#3,f#4]@8 [g2,g3,g4]@4 [g1,g2,g3]@4 [g2,g3,g4]@12 [g2,g3,g4]@4 [f#2,f#3,f#4]@8 [e2,e3,e4]@16 [d2,d3,d4]@8 ~@4 [f#2,f#3,d5,a5]@2 [f#2,f#3,d5,a5]@2 [g2,g3,d5,g5,b5]@4 [d2,d3,d5,f#5,a5]@4 ~@4 [f#2,f#3,d5,a5,d6]@2 [f#2,f#3,d5,a5]@2 [g2,g3,d5,g5,b5]@4 [d2,d3,d5,f#5,a5]@4 ~@4 [f#2,f#3,d5,a5,d6]@2 [f#2,f#3,d5,a5]@2 [g2,g3,d5,g5,b5]@4 [d5,f#5,a5,d6]@2 [d5,f#5,a5,d6]@2 [d5,f#5,a5,d6]@4 [f#2,f#3,d5,a5,d6]@2 [f#2,f#3,d5,a5]@2 [g2,g3,d5,g5,b5]@4 [d2,d3,d5,f#5,a5]@4 [d2,d3,f#4,a4]@4 [d2,d3,f#3,a3]@2 [d2,d3,f#3,a3]@2 [d2,d3,d4,f#4]@8 ~@4 d4@2 d4@2 c#4@4 a4@2 a4@2 [f#4,f#5]@4 d4, ~@135 [d2,d3]@4 ~@24 d5@16 e5@8 ~@5, ~@183 a3@4 ~@5]/6", // D E F# G F# E D G …
  F: "[~ d4@2 [b3,g5]@4 d5@2 d5@2 ~@4 e4@2 e4@2 [c#4,e5]@4 [a3,a4]@4 ~@4 a4@2 a4@2 g4@4 e4@4 [c#4,a4]@4 [a2,a3,a4,c#5]@2 [a2,a3,a4,c#5]@2 [f#2,f#3,d5]@4 [f#5,a5]@2 [f#5,a5]@2 [d3,d4,d5,f#5]@4 d6@2 d6@2 c#6@4 [c#5,e5]@2 [c#5,e5]@2 ~@4 f#5@2 e5@2 d5@4 [g4,d5,g5]@2 [g4,f#5]@2 e5@4 a5@2 g5@2 [d3,d4,d5,f#5]@4 [f#5,a5]@2 [e5,g5]@2 [d5,f#5]@4 [b5,d6]@2 [a5,c#6]@2 [b4,g#5,b5]@4 [b4,e5]@2 f#5@2 [c#5,e5]@4 [c#5,f#5]@2 e5@2 d5@4 c#5@4 d5@4 e5@2 d5@2 [c#5,e5,a5]@4 [a4,c#5,e5]@2 [a4,c#5,e5]@2 [c#5,e5,a5]@4 [a2,a3]@2 [a2,a3]@2 [f#2,f#3]@4 [d5,f#5,a5]@2 [d5,f#5,a5]@2 [f#5,a5,d6]@4 [d3,d4]@2 [d3,d4]@2 [c#3,c#4]@4 [c#5,e5,a5]@2 [c#5,e5,a5]@2 [c#3,c#4,a4,e5,a5]@4 [a2,a3,a4,c#5,e5]@4 [d4,d5]@4 [d4,f#4,a4]@2 [f#4,a4]@2 [a4,d5,f#5]@4 [d3,d4,a4,d5,f#5]@2 [d3,d4,a4,f#5]@2 [c#3,c#4,a4,e5,a5]@4 [e5,a5,c#6]@2 [e5,a5,c#6]@2 [f#5,a5,d6]@4 [d3,d4,d5,f#5,a5], ~@7 [b3,g4]@4 g5@16 f#5@8 e5@16 a4@12 ~@8 a5@4 a4@12 ~@12 a4@8 ~@52 [a4,c#5,e5]@4 ~@12 [d5,f#5,a5]@4 ~@22 d4@6 ~@17, ~@11 b4@8 ~@8 d4@16 ~@12 [d2,d3]@4 ~@4 [d2,d3,d5,f#5]@4 [a2,a3]@16 [b2,b3]@8 [c#3,c#4,a4]@8 ~@4 [d2,d3]@4 [d3,d4]@16 [c#3,c#4]@8 [b2,b3]@16 [a2,a3]@8 ~@12 [d2,d3]@4 ~@12 [a2,a3]@4 ~@8 d3@12 ~@8 [a2,a3]@4 ~@5, ~@75 c#5@8 ~@28 f#5@4 ~@4 g#5@4 a5@16 g#5@8 ~@77]/7", // Em C#m A F#m A D F#m D …
  G: "[~ [d3,d4,d5,f#5]@2 [b2,b3,d5,g5]@4 [b4,d5]@2 [b4,d5]@2 [g4,b4,e5]@4 [e2,e3,g4]@2 [e2,e3,g4]@2 [a2,a3,c#4,e4]@4 [e5,a5,c#6]@2 [e5,a5,c#6]@2 [d5,f#5,d6]@4 [b2,b3]@2 [b2,b3]@2 [g2,g3,e5,b5,d6]@4 [e2,e3,g5,b5,d6]@4 [a2,a3,e5,a5,c#6]@6 [g2,g3,e5,a5,c#6]@2 [d5,a5,d6]@4 [d5,f#5,a5]@2 [d5,f#5,a5]@2 [a4,d5,f#5]@4 [d3,d4,a4,d5,f#5]@2 [d3,d4,a4,f#5]@2 [b2,b3,d5,g5]@4 [g2,g3,d5,g5,b5]@4 [b2,b3,d5,g5,b5]@4 [c#3,c#4,e5,g5,b5]@4 [d3,d4,a4,f#5,a5]@4 [d2,d3,a4,f#5,a5]@2 [d2,d3,a4,f#5,a5]@2 [d2,d3,a4,d5,f#5]@4 [d2,d3,f#4,a4,d5]@4 [b1,b2,g4,d5,g5]@4 [b1,b2,g4,d5,g5]@2 [b1,b2,g4,d5,g5]@2 ~ [g1,g2,d5,g5,b5]@4 [g1,g2,d5,g5,b5]@4 [d2,d3,d5,f#5,a5]@9 [d2,d3,d4,f#4,a4]@9 [c#2,c#3,a3,e4,a4]@9 [b1,b2,g4]@9 [a1,a2,a3,f#4]@8, ~@7 [g2,g3]@4 ~@4 e5@4 ~@4 [a2,a3]@4 ~@4 [d5,f#5,d6]@4 ~@16 [f#2,f#3]@8 ~@84 d4@17]/5", // D G Bm Em A D B Em7 …
  H: "[~ [g2,g3,a3,c#4,e4]@7 d4@2 [f#2,f#3,a3,d4]@26 [d2,d3,a3,f#4,a4]@9 [c#2,c#3,a3,e4,a4]@9 [b1,b2,g4]@9 f#4@9 [g3,c#4,e4]@7 [f#3,d4]@2 [d2,d3,f#3,a3,d4]@27 [d3,d4,a4,d5,f#5,a5]@8 [c#3,c#4,a4,e5,a5]@9 [b2,b3,b4,d5,g5]@9 [a2,a3,f#4,a4,d5,f#5]@9 [g2,g3,a4,c#5,e5]@7 d5@2 [f#2,f#3,d5]@13 [e2,e3,c#5,e5]@4 ~ [d2,d3,d5,f#5]@9 [b2,b3,b4,d5,g#5]@9 [a2,a3,c#5,e5,a5]@13 [f#2,f#3,a4,d5,a5]@4 [g2,g3,d5,g5,b5]@9 [e2,e3,e5,g5,c#6]@9 [d2,d3,f#5,a5,d6]@13 [a2,a3]@4 [d3,d4]@8 [f#2,f#3]@8, ~@54 d4@18 ~@80 a4@27 ~@77, ~@63 [a1,a2]@18 ~@175]/8", // A7 D A Em C#dim D A G …
  I: "[b2,b3]@2 [d2,d3]@2 [g2,g3]@2 [f#2,f#3] [e2,e3]", J: "[e2,e3]@2 [d2,d3] d4",
  K: "a4@2 ~ [a2,a3] [d3,d4] [d2,d3] ~ [f#2,f#3], ~ c#4 f#4 a3", // A D F#
  L: "[b2,b3]@2 [g#2,g#3]@2 c#4@2 b3@2 ~@2 [e2,e3]@2 [d2,d3,g#3,b3]@2 ~ a3, d4@2 [a2,a3]@2 [a3,c#4]@2 ~ [e2,e3]", // B G# E G#dim A E
  M: "[[c#2,c#3,a3]@2 [a2,a3]@2 [g2,g3]@2 [a2,a3]@2 ~@2 a3@2 ~@2 [f#2,f#3]@2 [g2,g3]@2 [d2,d3]@2 ~@2 b3@2 e4@2 c#4@2 f#4@2 [g2,g3,e4]@2 [a2,a3]@2 [a1,a2]@2 [c#4,e4]@2 ~ d4 [f#2,f#3]@2 [d2,d3,a4]@2 f#4@2 [d3,d4,f#4]@2, ~@2 a4@2 [f#2,f#3,d5]@2 d4@4 d4@2 ~@2 d4@4 ~ [a2,a3] ~@4, ~@3 f#4 b4 ~ g4 ~ f#4 ~ d4 d5]/3", // F#m A G A F# G D C …
  N: "[c#3,c#4] [a2,a3] a4 [c#3,c#4,e4] [d3,d4] [d2,d3] c#4 [f#2,f#3,a3], [a4,a5] c#5 [a4,f#5] a4", // C# A C#m D F#m A D
  O: "[b2,b3,f#4,b4]@2 [g#2,g#3,e4]@2 [a2,a3,e4,c#5]@2 [d2,d3,f#4,b4]@2 [e2,e3]@2 [e1,e2]@2 [g#4,b4]@2 ~ a4, d5 a4 e4@2, ~@4 [a4,c#5]@2 ~ [e2,e3]", // B5 C#m A Bm E G#m A E
  P: "[c#2,c#3,e4] [a1,a2,c#4] a4!2, [a3,a4] ~", // C#m A
  Q: "a4@3 [c#3,c#4,e5,a5] [d3,d4,f#5,a5,d6] [a2,a3,e5,a5,c#6] ~ [c#3,c#4,e5,a5]", // A D A
  R: "[d3,d4,f#5,a5,d6]@2 [a2,a3,e5,a5,c#6]@2 ~@2 [c#3,c#4,e5,a5]!2 [d3,d4,f#5,a5,d6]@2 [a2,a3,e5,a5,c#6]@2 ~@2 [c#3,c#4,e5,a5]!2", // D A D A
  S: "[d3,d4,f#5,a5,d6] [a2,a3,e5,a5,c#6] a4@2 a4@2 a4@2", // D A
  T: "[d3,d4,f#5,a5,d6]@2 [a2,a3,e5,a5,c#6]@2 [a4,a5] [g4,g5] [f#4,f#5] [e4,e5] [d4,d5]@4 [d4,d5]@4", // D A G F# E D
  U: "[d4,d5]@3 [f#2,f#3,d5,a5] [g2,g3,d5,g5,b5] [d2,d3,d5,f#5,a5] [f#5,a5,d6] [f#2,f#3,d5,a5]", // D G D
  V: "[g2,g3,d5,g5,b5]@2 [d2,d3,d5,f#5,a5]@2 ~@2 [f#2,f#3,d5,a5]!2 [g2,g3,d5,g5,b5]@2 [d2,d3,d5,f#5,a5]@2 ~@2 [f#2,f#3,d5,a5]!2", // G D G D
  W: "[g2,g3,d5,g5,b5] [d2,d3,d5,f#5,a5] d5@2 e5@2 e5@2", // G D
  X: "e5@3 [g#2,g#3,e5,b5] [a2,a3,e5,a5,c#6] [e2,e3,e5,g#5,b5] [g#4,b4,e5] [g#2,g#3,e5,b5]", // E A E
  Y: "[a2,a3,e5,a5,c#6]@2 [e2,e3,e5,g#5,b5]@2 [g#4,b4,e5]@2 [g#2,g#3,e5,b5]!2 [a2,a3,e5,a5,c#6]@2 [e2,e3,e5,g#5,b5]@2 ~@2 [g#2,g#3,e5,b5]!2", // A E A E
  Z: "[a2,a3,e5,a5,c#6] [e2,e3,e5,g#5,b5] ~@2 [f#4,f#5]@2 [f#4,f#5]@2", // A E F#
  AA: "[f#4,f#5]@3 [a#2,a#3,f#5,c#6] [b2,b3,f#5,b5,d6] [f#2,f#3,f#5,a#5,c#6] [a#4,c#5,f#5] [a#2,a#3,f#5,c#6]", // F# Bm F#
  AB: "[b2,b3,f#5,b5,d6]@2 [f#2,f#3,f#5,a#5,c#6]@2 [a#4,c#5,f#5]@2 [a#2,a#3,f#5,c#6]!2 [b2,b3,f#5,b5,d6]@2 [f#2,f#3,f#5,a#5,c#6]@2 ~@2 [a#2,a#3,f#5,c#6]!2", // Bm F# Bm F#
  AC: "[b2,b3,f#5,b5,d6]@2 [f#4,d5,f#5] [f#3,f#4] [g4,g5]@2 [g4,g5]@2, ~ [b1,b2] ~@2", // Bm D F# G B
  AD: "[g4,g5]@2 [b2,b3,d5,g5,d6]!2", // G
  AE: "[e5,g5,a5] [a4,e5]!2 [c#3,c#4,a4,e5,g5] [a4,d5,f#5] [a4,c#5,e5] [a4,d5,f#5] [a4,e5,g5], [c#3,c#4]@3 ~ [d3,d4]@2 [d2,d3]@2", // A7 A5 A7 D A D A7 C# …
  AF: "[a2,a3]@3 [a1,a2] ~ c#5 d5 e5, [a4,c#5,e5]@2 [a2,a3] [c#2,c#3]", // A C#
  AG: "[a4@2 a4@2 b4@2 c#5@2 f#4@2 [a4,f#5]@2 g#5@2 a5@2 d5@2 c#5@2 d5@2 e5 d5 [a1,a2]@2 e4@2 ~@2 g4@2, [f#2,f#3] a2 [d2,d3] a4@2 g#4 [a4,c#5] [a4,a5], ~@3 [c#2,c#3] b2@2 ~@2]/2", // D A F# D A C#
  AH: "~ a3 d4 [c#4,e4] [b3,d4] [d2,d3] [g2,g3,b4] [f#2,f#3,a4], f#4@3 ~ [b4,b5]@2 [d4,d5]@2, [d5,d6] f#5 ~@2", // C#m Bm D G F#m B D
  AI: "[d5@2 c#5@2 [f#2,f#3,a4,f#5]@2 [g2,g3,b4,e5]@2 [a2,a3,d5,f#5]@4 [g2,g3,c#5,e5]@2 ~ d5 [f#2,f#3]@4 [d2,d3]@4 d4@4 d4@4, [e2,e3,g4,g5] d5 a4@4 ~@2, ~@7 [a2,a3] [d4,f#4,d5]@4 ~@4]/2", // F#m Em D C#dim F# D Em A …
  AJ: "d4@3 [f#2,f#3,d5,a5] [g2,g3,d5,g5,b5] [d2,d3,d5,f#5,a5] ~ [f#2,f#3,d5,a5]", // D G D
  AK: "[g2,g3,d5,g5,b5] [d2,d3,d5,f#5,a5] ~ d4 d4@2 d4@2", // G D
  AL: "d4@6 [f#2,f#3,d5,a5]!2 [g2,g3,d5,g5,b5]@2 [d2,d3,d5,f#5,a5]@2 ~@2 [f#2,f#3,d5,a5]!2", // D G D
  AM: "[g2,g3,d5,g5,b5]@2 [d2,d3,d5,f#5,a5]@2 [d4,f#4]@2 [d3,d4,f#4,a4]@2 f#5 e5 f#5 g5 a5 g5 f#5 e5, ~@2 [d3,d4,a4] [f#2,f#3,a4,d5]", // G D D5 D
  AN: "d5 c#5 d5 e5 [a4,d5] c#5 b4 a4 [g4,b4] a4 b4 g4 [f#2,f#3,a4]@2 [f#2,f#3,a4,d5]@2, [b2,b3,f#4,b4]@2 [d2,d3,f#5]@2 d5@3 ~, ~@2 [g2,g3] ~, ~@4 a5 ~@3", // D5 G F#m D B5 D G
  AO: "[e2,e3,e5,g5,c#6]@2 [d2,d3,f#5,a5,d6] [d2,d3,e5,a5,d6] d6@2 c#6@2, ~ [a2,a3,e5,a5]", // C#dim D Dsus2 A5
  AP: "[f#5,d6] e5 [d5,f#5] [e5,g5] [f#5,a5] [e5,g5] [d5,f#5] [c#5,e5] [d5,f#5]@2 d5 e5 [d5,f#5]@2 [d5,f#5] [e5,g5], [d2,d3] ~ [d2,d3,a4]!2", // D Em F#m Em D C#m D Em …
  AQ: "[a4,d5,f#5,a5]@2 [d5,f#5] [e5,g5] [f#5,a5]@2 [g5,b5] [e5,c#6] [f#5,a5,d6]@2 d5 e5 [d5,f#5]@2 [d5,f#5] [e5,g5], [d3,d4]@2 ~ [d2,d3] [d2,d3]@2 [d2,d3,a4]@2, ~@5 a4 ~@2", // D Em F#m G C#m D Em D …
  AR: "[a4,d5,f#5,a5]@2 [d5,f#5] [e5,g5] [f#5,a5]@2 [g5,b5] [e5,c#6] [f#5,a5,d6]@2 d5 e5 [d5,f#5]@2 [d5,f#5] [e5,g5], [d3,d4] ~ [d2,d3] [d2,d3,a4], ~@5 a4 ~@2", // D Em F#m G C#m D Em D …
  AS: "[d5,f#5,a5]@2 [d5,f#5] [e5,g5] [f#5,a5]@2 [g5,b5] [e5,c#6] [f#5,d6]@2 f#5 g5 a5 g5 f#5 e5, [d3,d4,a4]@2 ~ [d2,d3] [d3,d4]@2 [f#2,f#3,a4,d5]@2", // D Em F#m G C#m D D5 D
  AT: "d5 c#5 d5 e5 [a4,d5] c#5 b4 a4 [g4,b4] a4 b4 g4 [f#2,f#3,a4]@2 [f#2,f#3,a4,d5,a5]@2, [b2,b3,f#4]@2 [d2,d3,f#5]@2 d5@3 ~, ~@2 [g2,g3] ~", // D5 G F#m D B5 D G
  AU: "[e2,e3,c#5,g5]@4 f#5@2 e5@2 ~@2 a4!2 [a4,c#5]@2 a4@2, ~@2 [a4,d5]@3 ~@3, ~ [d2,d3] [a2,a3,e5]@2", // C#dim A D5 D A5
  AV: "f#4@2 d4!2 f#4@2 [f#2,f#3,a4,d5,a5]@2 [g2,g3,d5,g5,b5]@2 [d2,d3,d5,f#5,a5]@2 ~@2 [f#2,f#3,d5,a5]@2, [d2,d3,a4,d5] ~@3", // D G D D5
  AW: "[g2,g3,d5,g5,b5] [d2,d3,d5,f#5,a5] ~ [f#2,f#3,d5,a5] [g2,g3,d5,g5,b5] [d2,d3,d5,f#5,a5] ~ [f#2,f#3,d5,a5]", // G D G D
  AX: "[g2,g3,d5,g5,b5]@2 [d5,f#5,a5]!2 [f#5,a5,d6]@2 [f#2,f#3,d5,a5]!2 [g2,g3,d5,g5,b5]@2 [d5,f#5,a5]!2 [f#5,a5,d6]@2 [f#2,f#3,d5,a5]!2, ~ [d2,d3] ~@3 [d2,d3] ~@2", // G D G D
  AY: "[g2,g3,d5,g5,b5] [d2,d3,d5,f#5,a5] ~@4 [d2,d3,a4,d5,f#5,a5]@2", AZ: "~ [g1,g2,b4,d5,g5,b5]@15",
  BA: "[[g1,g2,b4,d5,g5,b5]@5 [d2,d3,a4,d5,f#5,a5]@20 ~@7]/2", // G D
})).s("gm_piano").gain(0.2)

// chords · piano · "* Hallelujah  *"
const piano_2 = note(`<
  ~@3 A B@3 C D@3 E@5 F@5 G H@6 I@3 J@3 K@8 L M N O P Q R S T U V@2 W X@3 Y Z AA AB@3 AC@3 AD@2 AE AF AG AH AI AJ AK AL
  AM AN AO AP AQ AR AS AR AT AU AV AW AX AY AZ BA BB BC@2
>`.pickRestart({
  A: "~@3 [d3,a4,d5,f#5]@12 [f#3,a4,d5]@4 [g3,g4,b4,d5]@4 [d3,f#4,a4,d5]@4 ~@5", // D G D
  B: "[~@3 [d3,a4,d5,f#5]@12 [f#3,a4,d5]@4 [g3,g4,b4,d5]@4 [d3,f#4,a4,d5]@4 ~@4 [f#3,a4,d5]@2 [f#3,a4,d5]@2 [g3,b4,d5,g5]@4 [d3,a4,d5,f#5]@4 ~@4 [f#3,a4,d5]@2 [f#3,a4,d5]@2 [g3,b4,d5,g5]@4 [d3,a4,d5,f#5]@4 ~@4 [f#3,a4,d5]@4 [e3,g4,c#5,e5]@4 [d3,f#4]@4 [a3,e4]@4 [a3,e4,a4,c#5]@4 [d3,f#4,a4,d5]@8 ~@5, ~@71 [a4,d5]@8 ~@17]/3", // D G D G D G D C#dim …
  C: "~@3 [a3,a4,c#5,e5]@12 [c#4,a4,e5]@4 [d4,a4,d5,f#5]@4 [a3,a4,c#5,e5]@4 ~@5", // A D A
  D: "[~@3 [a3,a4,c#5,e5]@12 [c#4,a4,e5]@4 [d4,a4,d5,f#5]@4 [a3,a4,c#5,e5]@4 ~@4 [c#4,a4,e5]@2 [c#4,a4,e5]@2 [d4,a4,d5,f#5]@4 [a3,a4,c#5,e5]@4 ~@4 [c#4,a4,e5]@2 [c#4,a4,e5]@2 [d4,a4,d5,f#5]@4 [a3,a4,c#5,e5]@4 ~@4 [c#4,a4,e5]@4 [d4,d5,f#5]@4 [c#4,e5]@4 [d5,f#5]@4 [g#4,d5]@4 [a3,a4,c#5,e5]@8 ~@5, ~@67 a4@12 ~@17, ~@75 b3@8 ~@13]/3", // A D A D A D A D …
  E: "[~@3 [a3,a4]@16 [b3,b4]@8 [c#4,c#5]@8 [d4,d5]@4 [d3,d4]@4 [d4,d5]@12 [d4,d5]@4 [c#4,c#5]@8 [b3,b4]@16 [a3,a4]@8 ~@4 [c#4,a4,e5]@2 [c#4,a4,e5]@2 [d4,a4,d5,f#5]@4 [a3,a4,c#5,e5]@4 ~@4 [c#4,a4,e5]@2 [c#4,a4,e5]@2 [d4,a4,d5,f#5]@4 [a3,a4,c#5,e5]@4 ~@4 [c#4,a4,e5]@2 [c#4,a4,e5]@2 [d4,a4,d5,f#5]@4 [a3,a4,c#5,e5]@4 ~@4 [c#4,a4,e5]@2 [c#4,a4,e5]@2 [d4,a4,d5,f#5]@4 [a3,a4,c#5,e5]@4 ~@5]/5", // A B C# D C# B A D …
  F: "[~@3 [d3,d4,d5]@16 [e3,e4,e5]@8 [f#3,f#4,f#5]@8 [g3,g4,g5]@4 [g2,g3,g4]@4 [g3,g4]@12 [g3,g4]@4 [f#3,f#4]@8 [e3,e4]@16 [d3,d4]@8 ~@4 [f#3,a4,d5]@2 [f#3,a4,d5]@2 [g3,b4,d5,g5]@4 [d3,a4,d5,f#5]@4 ~@4 [f#3,a4,d5]@2 [f#3,a4,d5]@2 [g3,b4,d5,g5]@4 [d3,a4,d5,f#5]@4 ~@4 [f#3,a4,d5]@2 [f#3,a4,d5]@2 [g3,b4,d5,g5]@4 [d3,a4,d5,f#5]@4 ~@4 [f#3,a4,d5]@2 [f#3,a4,d5]@2 [g3,b4,d5,g5]@4 [d3,a4,d5,f#5]@4 ~@5]/5", // D E F# G F# E D G …
  G: "~@3 d5@12 d5@2 d5@2 c#5@4 a4@4 f#5@4 d5, ~@19 e5@8 ~@5",
  H: "[~ d5@2 [b4,g5]@4 [g4,b4]@4 ~@4 e5@2 e5@2 c#5@4 [a4,g5]@4 ~@4 a4@2 a4@2 g4@4 e4@2 e4@2 a4@4 a3@2 a3@2 [f#3,a4]@4 [a4,f#5]@2 [a4,f#5]@2 [f#4,a5]@4 d5@2 d5@2 [a4,c#5]@4 e4@2 e4@2 c#4@4 c#5@2 c#5@2 d5@4 [g4,d5]@2 [f#4,d5]@2 [e4,e5]@4 a4@2 g4@2 [d4,d5]@4 [d3,d4]@4 d5@4 [b4,d5]@2 [a4,c#5]@2 [g#4,b4]@4 [d4,e4,b4,d5]@4 ~@4 e5@4 d5@4 c#5@4 d5@4 e5@2 d5@2 c#5@4 [c#5,e5]@2 [c#5,e5]@2 [c#5,e5]@4 [a3,e4]@2 [a3,e4]@2 [f#3,a4]@4 [a4,d5]@2 [a4,d5]@2 [d5,f#5]@4 [d4,f#4]@2 [d4,f#4]@2 [c#4,e4]@4 [c#5,e5]@2 [c#5,e5]@2 [c#5,e5]@4 [a4,c#5], ~@11 g5@12 ~@4 [d5,f#5]@8 e5@16 ~@20 a4@4 ~@20 e5@4 ~@32 a4@8 g#4@8 ~@12 [a4,c#5]@4 ~@12 [a4,d5]@4 ~@13, ~@35 d5@8 c#5@8 d5@8 ~@4 [d4,f#5]@4 a3@12 a3@4 [b3,b4]@8 [c#4,c#5]@8 [f#4,a4]@8 d4@12 ~@4 [c#4,a4,c#5]@8 [b3,b4]@16 [a3,a4]@8 ~@28 [a3,c#4]@4 ~@5, ~@47 a4@4 ~@4 d3@4 ~@108 [d3,f#4]@4 ~@21]/6", // Em G A7 F#m D F#m A G5 …
  I: "[~@7 a4@2 a4@2 f#5@4 d4@2 d4@2 c#4@4 c#5@2 c#5@2 d5@4 d4@2 d4@2 [b3,g4,g5]@4 b4@2 b4@2 e5@4 e3@2 e3@2 a3@4 c#5@2 c#5@2 d5@4 [b3,d5]@2 [b3,d5]@2 g3@4 e3@2 e3@2 [a3,c#5]@6 g3@2 d4@4 a4@2 a4@2 [f#4,d5]@4 [d4,f#5], ~@3 [d4,d5]@12 d5@4 [e4,e5]@8 [f#4,f#5]@8 ~@4 [g3,g4]@4 ~@4 e5@4 ~@16 d5@8 ~@21, ~@23 a3@4 ~@4 a4@4 ~@8 [g4,g5]@12 [a3,g4,g5]@4 [f#4,f#5]@8 [e4,e5]@16 [f#3,d5]@8 ~@5]/3", // Em Bm A D E F# G A7 …
  J: "[~ d4@2 b3@4 g3@2 g3@2 [b3,b4]@4 [c#4,b4,g5]@4 [d4,a4,d5,f#5]@16 ~@26 [d3,f#4,a4,d5]@9 [c#3,e4,a4]@9 [b2,d4,g4]@9 [a2,d4,f#4,a4]@8, ~ g5@4 ~@27, ~@3 d5@8 d5@8 ~@77, ~@7 b4@4 ~@85]/3", // B C#m7b5 D A G D
  K: "[~@5 a4@3 [f#3,d4]@2 [f#3,d4,a4]@35 ~@18 [f#4,a4]@9 ~@4 a2@3 [d4,f#4]@2 [d3,d4,f#4]@27 [d4,a4,d5,f#5]@8 [c#4,a4,e5]@9 [b3,d4,d5,g5]@9 [a3,f#4,d5]@9 ~@7 [f#3,d4]@2 [f#3,d4,a4,d5]@13 [e3,e4,g4,c#5]@4 ~ [d3,f#4,a4,d5]@9 [b3,g#4,d5]@9 [a3,a4,c#5,e5]@13 [f#3,a4,d5]@4 [g3,g4,b4,d5]@9 [e3,g4,c#5,e5]@9 d3@13 a3@4 d4@8 f#3@8, ~ [g3,c#4,e4]@9 ~@44 d4@18 [c#4,e4,g4]@9 ~@53 a4@13 ~ a4@4 ~@71 [a4,d5,f#5]@17 ~@16, ~@63 a2@13 ~@67 [g3,e4,c#5]@9 ~@104]/8", // D F#m D A G D C#dim D …
  L: "b3@2 d3@2 g3@2 f#3 e3", M: "e3@2 d3 d5", N: "a5@2 ~ a3 d4 d3 ~ f#3, ~ c#5 f#5 a4",
  O: "b3@2 g#3@2 c#5@2 b4@2 ~@2 e3@2 [d3,b4]@2 ~ a4, d5@2 a3@2 c#5@2 ~ e3", // G
  P: "c#3 a3 g3 a3 ~ a4 d5 [f#3,d5], a4!2 [f#3,d5] f#4", Q: "g3 d3 ~ b4 e5 c#5 [f#4,d5] [g3,e4,d5], [b4,d5] d4 g4 ~",
  R: "a3@2 a2@2 ~@3 d4 [f#3,d4]@2 [d3,a4]@2 f#4@2 d4@2, [f#4,d5] [e4,c#5] d5!2, ~@3 a3 ~@4", // D D5 D C#m
  S: "c#4 [a3,e4] a4 [c#4,e4] d4 [d3,d5] [a4,c#5] [f#3,c#4,a4], a5 c#5 f#5 ~", // A5 C#m D A F#m
  T: "[b3,d4,f#5]@2 [g#3,b4]@2 [a3,c#5]@2 [d3,b4,f#5]@2 [e3,e5]@2 [e3,e5]@2 ~@3 a4, d5 a4@2 [g#4,b4], ~ e5@2 ~ c#5@2 ~ [e3,e5]", // Bm G#m A Bm E G#m E
  U: "[c#3,e5] [a2,e4,c#5] a4!2, a4 ~", // C#m A
  V: "[~@6 [c#4,e5]@2 [d4,f#5]@2 [a3,e5]@2 ~@2 [c#4,e5]@2 [d4,f#5]@2 [a3,e5]@2 ~@2 [c#4,e5]!2 [d4,f#5]@2 [a3,e5]@2 ~@2 [c#4,e5]!2, a4]/2", // C#m D A5 C#m D A5 C#m D …
  W: "[d4,f#5] [a3,e5] a4@2 a4@2 a4@2", // D A5
  X: "[~@6 [c#4,e5]@2 [d4,f#5]@2 [a3,e5]@2 ~@2 [c#4,e5]@2 [d4,f#5]@2 [a3,e5]@2 ~@2 [c#4,e5]!2 [d4,f#5]@2 [a3,e5]@2 ~@2 [c#4,e5]!2 [d4,f#5]@2 [a3,e5]@2 ~@4 d5@4 d5@4, a4@5 ~]/3", // C#m D A5 C#m D A5 C#m D …
  Y: "d5@3 [f#3,a4,d5] [g3,b4,g5] [d3,a4,f#5] ~ [f#3,a4,d5]", // D G D
  Z: "[g3,b4,g5]@2 [d3,a4,f#5]@2 ~@2 [f#3,a4,d5]!2 [g3,b4,g5]@2 [d3,a4,f#5]@2 ~@2 [f#3,a4,d5]!2", // G D G D
  AA: "[g3,b4,g5] [d3,a4,f#5] d5@2 e5@2 e5@2", // G D
  AB: "[~@6 [g#3,e4,b4]@2 [a3,a4,c#5]@2 [e3,g#4,b4]@2 ~@2 [g#3,e4,b4]@2 [a3,a4,c#5]@2 [e3,g#4,b4]@2 ~@2 [g#3,e4,b4]!2 [a3,a4,c#5]@2 [e3,g#4,b4]@2 ~@2 [g#3,e4,b4]!2 [a3,a4,c#5]@2 [e3,g#4,b4]@2 ~@4 f#5@4 f#5@4, e5@5 ~]/3", // E A E A E A E A …
  AC: "[~@6 [a#3,f#4,c#5]@2 [b3,b4,d5]@2 [f#3,a#4,c#5]@2 ~@2 [a#3,f#4,c#5]@2 [b3,b4,d5]@2 [f#3,a#4,c#5]@2 ~@2 [a#3,f#4,c#5]!2 [b3,b4,d5]@2 [f#3,a#4,c#5]@2 ~@2 [a#3,f#4,c#5]!2 [b3,b4,d5]@4 ~@2 f#5@2 g5@4 g5@4, f#5@19 ~@5, ~@9 [b2,f#4,d5] ~@2]/3", // F# Bm F# Bm F# Bm F# Bm
  AD: "[~@4 [b3,b4,d5]@2 [b3,b4,d5]@2 [c#4,a4,e5]@3 [c#4,a4,e5,g5] [d5,f#5] [c#5,e5] [d5,f#5] [e5,g5], g5@11 ~ [d4,a4]@2 [d3,a4]@2]/2", // Bm A A7 D C#m D Em D5
  AE: "a3@3 a2 ~ c#5 d5 e5, [a4,c#5,e5]@2 a3 c#3", AF: "a4!2 b4 c#5 f#4 [f#4,a4] [c#3,g#4,a4] [c#3,a4], f#3 a2 d3 ~",
  AG: "d4@2 c#4@2 d4@2 e4 d4 c#4@2 e4@2 ~@2 g4@2, b2@2 [a2,a4] ~, ~ g#4 ~ a4", // A
  AH: "~ a4 d5 [e4,c#5] ~ d3 [g3,d4] [f#3,d4,a4], [f#4,d5]@2 f#4@2 b4@3 ~, ~@2 d4 ~", // C#m G5 D
  AI: "d4@2 c#4@2 [f#3,d4,f#4,a4]@2 [g3,d4,e4,b4]@2 [a3,d4,f#4]@4 g3@2 ~ d4, [e3,g4] ~ a4@2, ~@3 [c#4,e4], ~@7 a3", // D Em7 D Em C#m
  AJ: "f#3 d3 [d4,d5]!2, [d4,a4] ~", AK: "d5@3 [f#3,a4,d5] [g3,b4,g5] [d3,a4,f#5] ~ [f#3,a4,d5], d4 ~@3",
  AL: "[g3,b4,g5] [d3,a4,f#5] ~ [d4,d5] [d4,d5]@2 [d4,d5]@2", // G D
  AM: "d5@6 [f#3,a4,d5]!2 [g3,b4,g5]@2 [d3,a4,f#5]@2 ~@2 [f#3,a4,d5]!2, d4 ~@3", // D G D
  AN: "[g3,b4,g5] [d3,a4,f#5] ~ [d3,a4,f#5] [d4,a4,f#5]@2 [f#3,a4,d5]@2", // G D
  AO: "[b3,d5,f#5]@2 [d3,f#4,d5]@2 [g3,b4,d5]@2 [f#3,a4]!2, ~@3 d4", // Bm D G F#m
  AP: "[e3,g4,c#5]@2 [d3,f#4,a4,d5] [d3,e4,a4,d5] d5@2 c#5@2, ~ [a3,e4,a4]", // C#dim D Dsus2 A5
  AQ: "[d3,f#4,a4,d5]@4 ~@4 [d3,f#4,a4,d5]@4 [d3,f#4,a4,d5]@3 [g4,e5]", // D C
  AR: "[d4,a4,d5,f#5]@4 ~@2 [d3,f#4,a4,d5]@2 [d3,f#4,a4,d5]@4 [d3,f#4,a4,d5]@3 [g4,e5]", // D C
  AS: "[d4,a4,d5,f#5] ~ [d3,f#4,a4,d5]!2", AT: "[d4,a4,d5,f#5]@2 ~ d3 d4@2 [f#3,f#4,a4,d5]@2",
  AU: "[b3,f#4,d5]@2 [d3,f#4,a4,f#5]@2 [g3,d4,b4]@2 f#3!2, ~@3 [a4,d5]", // Bm D G D5
  AV: "[e3,e4,c#5,g5]@2 [d3,a4,d5,f#5] [d3,a4,d5,e5] d5@2 c#5@2, ~ [a3,a4,e5]", // C#dim D Dsus2 A5
  AW: "[d3,a4,d5,f#5]@2 ~ [f#3,a4,d5] [g3,b4,g5] [d3,a4,f#5] d5 [f#3,a4,d5], ~@2 d5 ~", // D G D
  AX: "[g3,b4,g5] [d3,a4,f#5] ~ [f#3,a4,d5] [g3,b4,g5] [d3,a4,f#5] d5 [f#3,a4,d5], d5 ~ d5 ~", // G D G D
  AY: "[g3,b4,g5]@2 [d3,a4,f#5]@2 ~@2 [f#3,a4,d5]!2 [g3,b4,d5,g5]@2 [d3,a4,d5,f#5]@2 ~@2 [f#3,a4,d5]!2, d5 ~@3", // G D G D
  AZ: "[g3,b4,d5,g5]@2 [d3,a4,d5,f#5]@2 ~@2 [f#3,a4,d5]!2 [g3,b4,d5,g5]@2 [d3,a4,d5,f#5]@2 ~@2 [f#3,a4,d5]!2", // G D G D
  BA: "[g3,b4,d5,g5] [d3,a4,d5,f#5] ~@4 [d3,f#4,a4,d5]@2", BB: "~ [g3,g4,b4,d5]@15",
  BC: "[[g3,g4,b4,d5]@5 [d3,f#4,a4,d5]@20 ~@7]/2", // G D
})).s("gm_piano").gain(0.26)

stack(piano, piano_2)

More by George Frideric Handel