Strudelify

La Rejouissance

G.F. Handel

KeyE majorTempo105 bpm
0:00/0:00
// La Rejouissance — G.F. Handel
// 105 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/8 at bar 1, 4/4 at bar 2, 7/8 at bar 9, 1/8 at bar 9, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/2226136; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 29 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(105/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 · trumpet · "B♭ Trumpet 1"
const trumpet = note("<A B C D E F G H I J K L M N O P Q R S T@4 U V@2 W X@2>".pickRestart({
  A: "~@7 a4", B: "d5@2 d5@2 d5@2 [a4,d5]@2 d5 e5 f#5 e5 d5@2 d5 e5, ~@4 a4@2 ~ a4",
  C: "[d5,f#5]@2 [d5,f#5]@2 [d5,f#5]@2 [d5,f#5]@2 [d5,f#5] [e5,g5] [f#5,a5] [e5,g5] [d5,f#5]@2 [d5,f#5] [e5,g5]", // D Em F#m Em D Em
  D: "[f#5,a5]!4 [f#5,a5]@3 [a5,d6]", E: "[f#5,a5] [d5,f#5] ~ [a5,d6] [f#5,a5] [d5,f#5] ~ [f#5,a5]",
  F: "[f#5,a5]@2 [g5,b5] [f#5,a5] [e5,g5]@2 [d5,f#5]@2 [c#5,e5]@6 [f#5,a5]@2", // F#m G F#m Em D C#m F#m
  G: "[f#5,a5]@2 [g5,b5] [f#5,a5] [e5,g5]@2 [d5,f#5]@2 e5@3 f#5 e5@3 [d5,f#5], ~@8 a5@7 ~", // F#m G F#m Em D
  H: "[c#5,e5] [d5,f#5] [c#5,e5] [d5,f#5] [c#5,e5] [d5,f#5] [c#5,e5] [d5,f#5] [c#5,e5]@6 [c#5,e5]@2", // C#m D C#m D C#m D C#m D …
  I: "f#5 g#5 a5 b5 [g#5,a5] g#5 [g#5,a5] a5 [e5,a5]@6 e5@2, d5 f#5 e5!2 ~@4", // Amaj7 A5
  J: "[c#5,e5]@2 [d5,f#5] [e5,g5] [f#5,a5]@2 [d5,f#5]@2 c#5@2 a4@2 a4@2 d5 f#5, ~@4 e5@3 a4", // C#m D Em F#m D
  K: "c#5@2 a4@2 a4@2 d5 f#5 [a4,e5]@6 [c#5,a5]@2, e5@3 a4 ~@4", // A5 F#m
  L: "a5@2 b5 c#6 d6@2 g5 e5 [f#5,a5]@6 [e5,g5] [g5,b5], f#5@3 b5 ~@4", // F#m Em G
  M: "[f#5,a5]@6 [e5,g5] [g5,b5] [f#5,a5]@6 [f#5,a5]@2", // F#m Em G F#m
  N: "[g5,b5]@2 [g5,b5]@3 [f#5,a5] [e5,g5] [g5,b5] [f#5,a5]@2 [f#5,a5]@3 [e5,g5] [d5,f#5] [f#5,a5]", // G F#m Em G F#m Em D F#m
  O: "[e5,g5]@2 [e5,g5]@3 [d5,f#5] [c#5,e5] [e5,g5] d5@2 a4@2 a4@2 ~ f#5, ~@4 f#5@3 d5", // Em D C#m Em
  P: "~@2 a4@2 a4@2 e5@2 [d5,f#5]@2 [a4,d5]@2 [a4,d5]@2 e5 f#5, e5@2 ~@5 d5", // D D5
  Q: "[e5,g5]@2 [a4,e5]@2 [a4,e5]@2 f#5 g5 [f#5,a5]@2 [d5,f#5]@2 [d5,f#5]@2 [e5,g5] [f#5,a5], ~@3 e5 ~@4", // Em A5 F#m D Em F#m
  R: "[g5,b5]@3 [e5,g5] [f#5,a5]@3 [d5,f#5] [e5,g5]@2 f#5 e5 [e5,a5]@2 [c#5,g5]@2, ~@5 d5 ~@2", // G Em F#m D Em A5 C#dim
  S: "[d5,f#5]@3 e5 [e5,f#5] e5 [e5,f#5] d5 [a4,d5]@6 [c#5,e5]@2, ~@2 a4!2 ~@4", // D Esus2 D5 C#m
  T: "[[d5,f#5] [e5,g5] [f#5,a5]@2 [d5,f#5]@2 c#5@2 a4@2 a4@2 d5 f#5 c#5@2 a4@2 a4@2 d5 f#5 [a4,e5]@6 [c#5,a5]@2 a5@2 b5 c#6 d6@2 g5 e5 [f#5,a5]@6 [e5,g5] [g5,b5] [f#5,a5]@6 [e5,g5] [g5,b5] [f#5,a5]@6 [f#5,a5]@2 [g5,b5]@2, ~@3 e5@3 a4 e5@3 a4 ~@4 f#5@3 b5 ~@13]/4", // D Em F#m D A5 F#m Em G …
  U: "[g5,b5]@3 [f#5,a5] [e5,g5] [g5,b5] [f#5,a5]@2 [f#5,a5]@3 [e5,g5] [d5,f#5] [f#5,a5] [e5,g5]@2", // G F#m Em G F#m Em D F#m …
  V: "[[e5,g5]@3 [d5,f#5] [c#5,e5] [e5,g5] d5@2 a4@2 a4@2 ~ f#5 ~@2 a4@2 a4@2 e5@2 [d5,f#5]@2 [a4,d5]@2 [a4,d5]@2 e5 f#5 [e5,g5]@2, ~@3 f#5@3 d5 e5@2 ~@5 d5 ~]/2", // Em D C#m Em D D5 Em
  W: "[a4,e5]@2 [a4,e5]@2 f#5 g5 [f#5,a5]@2 [d5,f#5]@2 [d5,f#5]@2 [e5,g5] [f#5,a5] [g5,b5]@2, ~@2 e5 ~@5", // A5 F#m D Em F#m G
  X: "[~ [e5,g5] [f#5,a5]@3 [d5,f#5] [e5,g5]@2 f#5 e5 [e5,a5]@2 [c#5,g5]@2 [d5,f#5]@3 e5 [e5,f#5] e5 [e5,f#5] d5 [a4,d5]@6 ~@4, ~@4 d5 ~@4 a4!2 ~@5]/2", // Em F#m D Em A5 C#dim D Esus2 …
})).s("gm_trumpet").gain(0.3)

// other · french horn · "Horn in F"
const french_horn = note("<~ A@2 B C D E F G H I J K L M N O P Q@2 R S ~ T U V W X Y>".pickRestart({
  A: "~@3 d4 d4@2 ~@2", B: "~@4 d4 a4 f#4 d4", C: "d4@5 a4 f#4 d4", D: "d4 ~@3 e4 f#4 e4 d4",
  E: "d4@2 ~@6 c#4@3 d4 c#4@3 d4", F: "[e4,f#4]!6 [d4,e4] ~ a3@2 e4@2 c#4@2 a3@2", G: "a3@2 e4@2 e4@3 d4 c#4@6 ~@2",
  H: "a3@4 ~@2 d3@2 a3@2 a3 b3 c#4@2 d4@2", I: "a3@2 ~@6 a3@2 a3 b3 c#4@2 a3@2", J: "d4 ~@4 d4 b3 g3", K: "a3 ~@7",
  L: "~ d4@3", M: "e4@2 f#4 g4 a4@2 a3@2 d4@2 ~@4 d4@2", N: "c#4 d4 c#4 d4 c#4@2 a3@2 a3@2 d4@2 d4@2 a3@2",
  O: "b3 c#4!2 b3 d4!2 a4!2", P: "g4 ~@3 e4 d4 c#4 a3",
  Q: "[d4@2 b3@2 c#4@3 g4 f#4@6 a3@4 ~@2 d3@2 a3@2 a3 b3 c#4@2 d4@2 a3@2]/2", R: "~@6 a3@2 a3 b3 c#4@2 a3@2 d4@2",
  S: "~@4 d4 b3 g3 a3", T: "~ d4@6 e4", U: "f#4 g4 a4@2 a3@2 d4@2 ~@4 d4@2 c#4 d4",
  V: "c#4 d4 c#4@2 a3@2 a3@2 d4@2 d4@2 a3@2 b3@2", W: "c#4!2 b3 d4!2 a4!2 g4", X: "~@3 e4 d4 c#4 a3 d4",
  Y: "b3@2 c#4@3 g4 f#4@6 ~@4",
})).s("gm_french_horn").gain(0.42)

// bass · tuba
const bass = note("<~ A@2 B C D E F G H@2 I@2 J K L M N O P Q R S T U V W X@2>".pickRestart({
  A: "~@3 d3 d2@2 ~@2", B: "~@4 d3 ~@3", C: "d3 ~@3 d3 ~@3", D: "d2 ~@3 a2 ~@3", E: "d3 ~@3 a2 ~ a2 ~",
  F: "a2 ~@3 a2 ~@2 a2", G: "d3 b2 e3 e2 a2@3 ~", H: "a2 ~@3 a2 ~@3", I: "d3 ~ b2 g2 d2 ~@3",
  J: "g2 d3 b2 c#3 d3 d2 ~@2", K: "e2 ~@3 d2 ~@3", L: "a2 ~@3 d3 ~@3", M: "e3 ~ a2 ~ f#2 ~ d2 ~",
  N: "g2 ~ d2 ~ e2 ~ c#3 ~", O: "a2@4 d2@3 a2", P: "~@3 a2 ~@3 a2", Q: "~@3 a2 ~@3 d3", R: "~ b2 g2 d2 ~@3 d3",
  S: "~ b2 g2 d2 ~@3 g2", T: "d3 b2 c#3 d3 d2 ~@2 e2", U: "~@3 d2 ~@3 a2", V: "~@3 d3 ~@3 e3",
  W: "~ a2 ~ f#2 ~ d2 ~ g2", X: "[~ d2 ~ e2 ~ c#3 ~ a2@4 d2@3 ~@2]/2",
})).s("gm_tuba").gain(0.3)

stack(trumpet, french_horn, bass)

More by G.F. Handel