Strudelify

Vesperae solennes de confessore K.339

W. A. Mozart

KeyF majorTempo54 bpm
0:00/0:00
// Vesperae solennes de confessore K.339 — W. A. Mozart
// 54 bpm, 6/8, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/139339; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 72 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(54/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 · pizzicato strings · "Soprano"
const pizzicato_strings = note(`<
  ~@10 A B C D E F G H I J K@2 L M N O P Q R S T U V W X Y Z AA@2 AB AC AD ~@20 Q@2 AE AF AG AH AI ~@3
>`.pickRestart({
  A: "f4@4 g4 a4", B: "bb4@4 c5 d5", C: "c5@4 d5 bb4", D: "c5@8 [bb4,c5]!4 a4@8 ~@4", E: "f5@5 e5",
  F: "e5@8 [d5,e5]!4 c5@8 ~@4", G: "b4", H: "d5@4 c5@6 b4 a4", I: "g4@2 f4 f4@2 ~", J: "e4",
  K: "[d4@2 ~ d5@4 db5 d5 f5 e5 d5]/2", L: "c5@20 e5 d5 c5@2", M: "c5 ~", N: "c5@3 g4 g4@2 g4@4 a4@2",
  O: "a4 c5 bb4 bb4@3", P: "e5@20 f5 e5 d5 c5", Q: "f5", R: "f5!2 e5 d5@2 c5", S: "bb4@11 bb4 a4@12",
  T: "c5@8 bb4 a4 g4 a4", U: "g4 ~", V: "f4@4 c5 a4", W: "a4@2 g4@3 f4 f4@6", X: "f5@9 e5 d5 c5",
  Y: "c5@5 bb4 a4@4 ~@2", Z: "eb4", AA: "[d4@3 f5@4 db5 d5 f5 e5 d5]/2", AB: "c5@5 f4", AC: "f4@20 a4 g4 f4@2",
  AD: "f4 ~", AE: "f5 db5 d5 f5 db5 d5", AF: "g4 a4 b4 c5 d5 e5 f5 e5 g5 f5 e5 d5", AG: "c5@12 c5@6 d5 c5 bb4 a4 g4 f4",
  AH: "[g4,a4]!22 f4 g4", AI: "f4 ~@5",
})).s("gm_pizzicato_strings").gain(0.03)

// other · tremolo strings · "Soprano"
const tremolo_strings = note("<~@41 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@2 V AA AB ~>".pickRestart({
  A: "f4@3 f4 g4 a4", B: "bb4@4 c5 d5", C: "c5@3 c5 d5 bb4", D: "c5@2 bb4 a4 ~@2", E: "f5@4 f5@2 f5@4 e5 f5",
  F: "e5@2 d5 c5 ~@2", G: "b4", H: "bb4", I: "a4", J: "ab4@3 ab4@2 ab4", K: "c5@8 bb4 ab4 g4 ab4", L: "g4 ~@2",
  M: "f4@3 f4 c5 a4", N: "g4 f4", O: "f5@9 e5 d5 c5", P: "bb4@5 bb4 a4@4 ~@2", Q: "eb5", R: "d5", S: "f5@4 e5 d5",
  T: "c5@6 c5@2 bb4 a4 g4 f4", U: "f4@3 f4@2 g4", V: "f4 ~@5", W: "eb4", X: "d4", Y: "f4",
  Z: "[f4@28 e4@4 d4@4 [e4,f4]!10 d4 e4]/2", AA: "~@13 g4@11", AB: "~@3 f4@4 ~@17",
})).s("gm_tremolo_strings").gain(0.02)

// bass · choir aahs · "Bass"
const bass = note("<~@41 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@2 AA AB AC ~>".pickRestart({
  A: "f3 e3", B: "d3@4 d3!2 g2@6", C: "c3@3 c3@2 c3", D: "f3@2 f2!2 ~@2", E: "f3@4 f3@2 f3@4 f3!2", F: "f3@3 f3 ~@2",
  G: "d3", H: "e3", I: "f3", J: "b2@3 b2@2 b2", K: "c3@5 c3", L: "c3 ~@2", M: "a2@3 a2@2 a2", N: "bb2 a2", O: "a3@5 a3",
  P: "e3@5 e3 f3@4 ~@2", Q: "a3", R: "bb3", S: "b3", T: "c4", U: "c3@5 db3", V: "d3 ~@5", W: "c3", X: "bb2", Y: "b2",
  Z: "c3/2", AA: "f3 ~@5", AB: "~@13 c3@11", AC: "~@3 f2@4 ~@17",
})).s("gm_synth_bass_1").gain(0.08)

// other · string ensemble 1 · "Violins 2"
const string_ensemble_1 = note(`<
  A@3 B C D E F G H I ~@3 J K ~@7 L M N O P Q ~ R S T U T K ~@5 T@2 V W J K X Y ~@3 S Z ~@7 AA AB ~@5 AC AD AE@2
>`.pickRestart({
  A: "[f4@15 e4 ~ g4]/3", B: "g4@3 f4 ~@2", C: "a4", D: "bb4 a4", E: "ab4", F: "g4", G: "f4 g4", H: "a4@3 bb4@2 e4",
  I: "f4 ~@2", J: "a3", K: "bb3 a3", L: "e4 g3 c4 g3 d4 g3 e4 c4 f4 c4 d4 c4", M: "e4 g3 c4 e4 c4 g3 ~ g3 c4 e4 f4 c4",
  N: "~ c4 gb4 a4 g4 e4 ~ c4 e4 g4 e4 c4", O: "c4", P: "c4 eb4", Q: "d4 ~@5", R: "~ f4!2 ~ f4!2",
  S: "~ c4 e4 c4 f4 c4 g4 c4 f4 c4 e4 c4", T: "f3", U: "g3 f3", V: "f3 ~", W: "g3@3 f3 ~@2", X: "ab3", Y: "g3",
  Z: "~ c4 f4 a4 f4 c4 ~@6", AA: "f3@3 f3@2 bb3", AB: "f3 ~@2", AC: "~@7 g4 bb4 c5 bb4 g4",
  AD: "~@2 f4@2 a4@2 ~ c5@2 a4@2 f4@2 ~@11",
  AE: "[~@5 a3@2 c4@2 ~ f4@2 c4@2 a3@2 ~@3 a3@2 c4@2 f4@2 c4@2 ~ a3@2 ~@18]/2",
})).s("gm_string_ensemble_1").gain(0.02)

// other · string ensemble 1 · "Violoncellos"
const string_ensemble_1_2 = note(`<
  A B C D E F G H I J K ~@5 L M N M O@2 P Q R@2 S T U V E W X Y X Z AA B AB E AC AD AE AF AG AH AG AI H E AJ@2 W AK AL
  AM AN AO AP AQ R AR AS AT B AB E AC AU AV AW AX
>`.pickRestart({
  A: "~@2 c4 f4 c4 a3 ~ a3 c4 f4 c4 a3", B: "~ bb3 d4 f4 d4 bb3 ~ bb3 d4 f4 d4 bb3",
  C: "~ g3 c4 f4 c4 g3 ~ g3 c4 e4 c4 g3", D: "~ e3 c4 e4 c4 g3 ~ a3 c4 f4 c4 a3",
  E: "~ a3 c4 f4 c4 a3 ~ a3 c4 f4 c4 a3", F: "~ bb3 d4 f4 d4 bb3 ~ a3 c4 f4 c4 a3",
  G: "~ b3 d4 f4 d4 b3 ~ b3 d4 f4 d4 b3", H: "~ bb3 c4 g4 c4 bb3 ~ bb3 c4 g4 c4 bb3",
  I: "~ a3 c4 f4 c4 a3 ~ g3 d4 f4 d4 g3", J: "~ a3 c4 f4 c4 a3 ~ bb3 c4 g4 c4 bb3", K: "~ a3 c4 f4 c4 a3 ~@6",
  L: "~ g3 b3 d4 b3 g3 ~ g3 b3 d4 b3 g3", M: "~ g3 c4 e4 c4 g3 ~ a3 c4 e4 c4 a3",
  N: "~ a3 c4 d4 c4 a3 ~ g3 b3 d4 b3 g3", O: "~ a3 c4 d4 c4 a3 ~ a3 c4 d4 c4 a3",
  P: "~ g3 c4 e4 c4 g3 ~ g3 d4 f4 d4 g3", Q: "c3 ~@2", R: "c3 ~@2 c3 ~@2",
  S: "~ c4 e4 g4 e4 c4 ~ c4 e4 g4 e4 c4, bb3 ~@2 bb3 ~@2", T: "~ c4 f4 a4 f4 c4 ~ f4 a4 c5 a4 f4, a3 ~@2 a3 ~@2",
  U: "~ f4 d5 f4 d5 f4 ~ d4 bb4 d4 a4 d4, bb3 ~@2 bb3 ~@2", V: "~ bb3 d4 g4 d4 bb3 ~ a3 d4 f4 d4 a3", W: "c3 ~@5",
  X: "~ c4 f4 a4 f4 c4 ~ c4 f4 a4 f4 c4", Y: "~ c4 e4 g4 e4 c4 ~ c4 f4 a4 f4 c4",
  Z: "~ g3 c4 g4 c4 g3 ~ a3 c4 f4 c4 a3", AA: "~ c4 eb4 f4 eb4 c4 ~ c4 eb4 f4 eb4 c4",
  AB: "~ g3 d4 f4 d4 g3 ~ g3 d4 f4 d4 g3", AC: "~ g3 c4 f4 c4 g3 ~ bb3 c4 e4 c4 bb3", AD: "f3 ~@2 e3 ~@2",
  AE: "d3 ~@2 g2 ~@2", AF: "c3 ~@2 e3@2 g3, ~@3 c3 ~@2", AG: "f3 ~@2 f2 ~@2", AH: "f3 ~@2 f3 ~@2", AI: "d3 ~@2 d3 ~@2",
  AJ: "~ ab3 d4 f4 d4 ab3 ~ ab3 d4 f4 d4 ab3", AK: "f3", AL: "e3 f3", AM: "f3@3 f3 a3 c4", AN: "bb3 a3", AO: "eb3",
  AP: "d3", AQ: "b2 ~@2 b2 ~@2", AR: "c3 ~@2 c3@2 db3", AS: "d3@2 ~@5 a3 d4 f4 d4 a3",
  AT: "~ a3 c4 eb4 c4 a3 ~ a3 c4 eb4 c4 a3", AU: "~ a3 c4 f4 c4 a3 c4@2 ~@4", AV: "~@8 g3 bb3 c4 bb3",
  AW: "~ g3@2 ~@13 f3@4 ~@4", AX: "~@2 f2@3 ~@3",
})).s("gm_string_ensemble_1").gain(0.02)

// other · string ensemble 1 · "Contrabasses"
const string_ensemble_1_3 = note(`<
  A B C D E D F G H C A B C D E D E I B J E@2 K L@2 ~@4 M C ~ N O ~@2 N P Q C@2 R S T U@2 V W G E X Y ~ Z AA Z AB N AC Q
  C AD AE C P Q AF@2 AG AH AI AJ
>`.pickRestart({
  A: "f2 ~@2 e2 ~@2", B: "d2 ~@2 g1 ~@2", C: "c2 ~@2 c2 ~@2", D: "f2 ~@2 f1 ~@2", E: "f2 ~@2 f2 ~@2",
  F: "d2 ~@2 d2 ~@2", G: "e2 ~@2 e2 ~@2", H: "f2 ~@2 bb1 ~@2", I: "e2 ~@2 c2 ~@2", J: "c2 ~@2 a2 ~@2",
  K: "g1 ~@2 g1 ~@2", L: "[c2@2 ~]/2", M: "bb1 ~@2 b1 ~@2", N: "a1 ~@2 a1 ~@2", O: "bb1 ~@2 a1 ~@2",
  P: "bb1 ~@2 bb1 ~@2", Q: "b1 ~@2 b1 ~@2", R: "[f1,f2] ~@2 [e1,e2] ~@2", S: "[d1,d2] ~@2 g1 ~@2",
  T: "[c1,c2] ~@2 [c1,c2] ~@2", U: "[f1,f2] ~@2 [f1,f2] ~@2", V: "[f1,f2] ~@2 f1 ~@2", W: "[d1,d2] ~@2 [d1,d2] ~@2",
  X: "[b1,b2] ~@2 [b1,b2] ~@2", Y: "[c2,c3] ~@2 [c2,c3] ~@2", Z: "[a1,a2] ~@2 [a1,a2] ~@2",
  AA: "[bb1,bb2] ~@2 [a1,a2] ~@2", AB: "[e1,e2] ~@2 [f1,f2] ~@2", AC: "[bb0,bb1] ~@2 [bb0,bb1] ~@2",
  AD: "c2 ~@2 [c1,c2]@2 [db1,db2]", AE: "[d1,d2] ~@2 d2 ~@2", AF: "~ c2 ~@2 c2 ~", AG: "f2 ~@5",
  AH: "f2@4 ~@9 c2@4 ~@7", AI: "~@3 f1@4 ~@9 f2@4 ~@4", AJ: "~@2 f1@3 ~@3",
})).s("gm_string_ensemble_1").gain(0.02)

stack(pizzicato_strings, tremolo_strings, bass, string_ensemble_1, string_ensemble_1_2, string_ensemble_1_3)

More by W. A. Mozart