Strudelify

Gloria in D major RV 589

Vivaldi

KeyD majorTempo100 bpm
0:00/0:00
// Gloria in D major RV 589 — Vivaldi
// 100 bpm, 3/8, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/929006; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 150 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/1.5)

// 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 B C D@2 E F G H I J K L M N O P Q O R S T U V W X Y ~ Z@3 AA AB AC AD AE@2 AF AG@2 AH AI AJ AK AL AM AN AO AP AQ AR
  AE AS AT AU AV AW AX AY AZ BA@2 BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV@2 BW BX BY BZ CA CB CC
  CD CE CF CG@2 CH ~ Z@3 AA CI AC AD CJ CK CL CM CN@2 CO CP AE AS CQ CR CS CT CU AE@3 CV CW CX CY CZ DA@2 DB DC DD DE K
  DF DG DH O DI Q O R S T U V W X DJ
>`.pickRestart({
  A: "[d4,f#5]@5 [f#4,d5]@5 ~ [f#3,a#4,c#5]@5, g2@5 ~@3", B: "[d4,f#4,b4]@5 [d4,f#4]@5 ~ [f#3,a#3,c#4,e4]@5, b2@5 ~@3",
  C: "d4@3 c#4@2 b3@5 ~ [a#2,f#3,a#3]@5, b2@5 ~@3, b3@5 ~@11", D: "[b2,b3]@3 [c#3,c#4]@2 [d3,d4]@5 ~ [c#3,c#4]@5",
  E: "[b2,b3]@3 [c#3,c#4]@2 [d3,d4]@5 ~ [e3,e4]@5", F: "[f#3,a#3,c#4,f#4]@15 ~",
  G: "[b3,d#4]@3 [c#4,e4]@2 [d#4,f#4]@5 ~ [b3,d#4]@5, f#5@5 b5@10 ~", // B C#m D#m B
  H: "g5@3 a5@2 [b4,g5]@3 f#5@3 [g4,e5]@2 d5@3, e3@5 ~@3, b3@5 ~@11", // Em C
  I: "[a3,c#4]@3 [b3,d4]@2 [c#4,e4]@5 ~ [a3,c#4]@5, c#5@5 a5@10 ~", // A Bm C#m A
  J: "f#5@3 g5@2 [a4,f#5]@3 e5@3 [f#4,d5]@2 c#5@3, d3@5 ~@3, a3@5 ~@11", // D
  K: "[g3,d4]@3 [a3,c#4]@2 [b3,d4]@5 ~ [g3,b3]@5, b4@5 g5@10 ~", L: "e5@3 f#5@2 e5@3 d5@3 c#5@2 c5@3, [c#3,a#3]@5 ~@3",
  M: "[f#3,c#5,a#5]@3 [g#3,b4]@2 [a#3,c#5,f#5]@5 ~ [f#3,a#4]@5", // F# G#m F#
  N: "[d3,f#5,b5]@3 [c#3,e5]@2 [b2,d5,f#5]@5 ~ [d3,b4]@5", O: "[e3,b4,g5]@5 [d3,b4,f#5]@10 ~",
  P: "d3@3 c#3@2 [b2,d4,b4]@5 ~ [d3,f#4]@5, [b4,b5]@5 ~@11", Q: "[e3,g4,c5]@5 [d3,f#4,b4]@10 ~",
  R: "f#3@3 g3@2 f#3@3 e3@3 d3@2 c#3@3, c#5@5 ~@3, a#5@5 f#5@5 ~ [f#5,b5]@5", // B5
  S: "[b2,f#4]@3 [e3,g4]@2 [f#3,a#3]@5 ~ [f#2,a#4]@5, d5@5 c#5@10 ~", T: "[b3,b4]@5 [a3,a4]@5 ~ [g3,g4]@5",
  U: "[f#3,f#4]@5 [e3,e4]@5 ~ [d3,d4]@5", V: "[g3,g4]@5 [f#3,f#4]@5 ~ [e3,e4]@5",
  W: "[d3,d4]@5 [c#3,c#4]@5 ~ [b2,b3]@5", X: "[d3,d4]@3 [e3,e4]@2 [f#3,b3,c#4,f#4]@5 ~ [f#2,a#3,c#4,f#4]@5",
  Y: "[b2,b3,d4,f#4]@5 ~@3", Z: "[b3,d4]@3 [c#4,e4]@2 [d4,f#4]@5 ~ [c#4,e4]@5", AA: "[b2,b3,d4]@10 ~ [a#2,c#4,f#4]@5",
  AB: "[b2,d4,f#4]@5 [e4,a4]@5 ~ e4@5, ~@5 c#3@10 ~", AC: "d3@3 c#3@2 b2@5 ~ [a#2,c#4,f#4]@5, [d4,f#4]@5 ~@3",
  AD: "[b2,d4,f#4]@15 ~", AE: "[b2,d4]@3 [c#3,e4]@2 [d3,f#4]@5 ~ [c#3,e4]@5", AF: "[b2,d4]@5 ~@3",
  AG: "[e3,g4]@3 [f#3,a4]@2 [g3,b4]@5 ~ [f#3,a4]@5", AH: "[a2,e4,g4,c#5]@5 ~@3", AI: "[a2,c#4,e4,g4]@5 ~@3",
  AJ: "[d4,f#4]@3 [e4,g4]@2 [f#4,a4]@5 ~ [e4,g4]@5, d3@5 ~@3", AK: "[d4,f#4]@3 [e4,g4]@2 [f#4,a4]@5 ~ [e4,g4]@5",
  AL: "[g2,d4,f#4,b4]@5 ~@3", AM: "[g3,b3,d4,f#4]@5 ~@3", AN: "[e4,g4]@3 [f#4,a4]@2 [g4,b4]@5 ~ [f#4,a4]@5, g3@5 ~@3",
  AO: "[e4,g4]@3 [f#4,a4]@2 [g4,b4]@5 ~ [e4,g4]@5", AP: "[e4,a#4,c#5]@5 ~@11, f#3@5 ~@3", AQ: "[f#3,a#3,c#4,e4]@5 ~@3",
  AR: "[b2,f#3,b3,d4]@5 ~@3", AS: "[b2,d4]@3 [c#3,e4]@2 [d3,f#4]@5 ~ [b2,d4]@5",
  AT: "c#3@5 d#3@5 ~ [f3,b3,c#4,g#4]@5, [b3,f4,g#4]@5 ~@3", // C#7 Fdim
  AU: "f#3@3 g#3@2 a3@5 ~ [b3,d4,f#4]@5, [c#4,f#4]@5 ~@3, a3@5 ~@11", // Bm F#5
  AV: "[c#4,e4]@8 b3@3 [a3,c#4]@2 [g#3,b3]@3, ~@11 f#4@5", // C#m A G#m
  AW: "[f#3,a3,c#4,f#4]@5 [c#4,f#4]@5 ~ [c#3,f4]@5, ~@5 g#4@10 ~", // F#m F#5 C#
  AX: "[a4,c#6]@5 [c#5,a5]@5 ~ [c#4,f5,g#5]@5, f#3@5 ~@3", AY: "f#5@5 c#5@5 ~ [c#4,b4]@5, e3@5 ~@3",
  AZ: "a4@3 g#4@2 f#4@5 ~ [c#3,f4]@5, f#3@5 ~@3", BA: "[f#3,f#4]@3 [g#3,g#4]@2 [a3,a4]@5 ~ [g#3,g#4]@5",
  BB: "[f#3,f#4]@3 [g#3,g#4]@2 [a3,a4]@5 ~ [b3,b4]@5", BC: "[c#4,f4,g#4,c#5]@15 ~",
  BD: "[f3,g#3,c#4]@3 [f#3,a3]@2 [g#3,b3]@5 ~ [f#3,a3]@5", BE: "f3@5 d#3@5 ~ [c#3,b3,f4]@5, [g#3,c#4]@5 ~@3",
  BF: "[f#3,a3,f#4]@15 ~", BG: "[f3,g#3,c#4]@3 [f#3,a3]@2 [g#3,b3]@5 ~ [f3,g#3]@5",
  BH: "[f#4,a4]@3 [g#4,b4]@2 [a4,c#5]@5 ~ [g#4,b4]@5, f#3@15 ~", BI: "[f#4,a4]@3 [g#4,b4]@2 [a4,c#5]@5 ~ [g4,b4]@5",
  BJ: "f#3@3 g#3@2 a3@5 ~ f#3@5, [c#4,f#4,a4]@15 ~", BK: "d#3@3 e3@2 f#3@5 ~ d#3@5, [b3,f#4,a4]@15 ~",
  BL: "[b2,a#3,d4,f#4]@15 ~", BM: "[g3,b3,e4]@3 [a3,f#4]@2 [b3,e4,g4]@5 ~ [g3,b3,e4]@5", BN: "[e3,b3,g4]@15 ~",
  BO: "[a3,c#4]@3 [b3,d4]@2 [c4,e4]@5 ~ [b3,d4]@5, a4@15 ~", BP: "[a3,c4,e4]@15 ~",
  BQ: "~@3 a3@2 g3@3 f#3@3 e3@2 d#3@3, [b3,d#4]@5 e4@5 ~ f#4@5", BR: "e3@3 a3@2 b3@5 ~ b2@5, g4@5 [d#4,f#4]@10 ~",
  BS: "[g4,b5]@5 [b4,g5]@5 ~ [b3,d#5,f#5]@5, e3@5 ~@3", BT: "[g4,b4,e5]@5 [g4,b4]@5 ~ [b3,d#4,a4]@5, e3@5 ~@3",
  BU: "g4@3 f#4@2 e4@5 ~ [b2,b3,d#4]@5, e3@5 ~@3", BV: "[e3,e4]@3 [f#3,f#4]@2 [g3,g4]@5 ~ [f#3,f#4]@5",
  BW: "[e3,g3,b3,e4]@10 ~ [f#3,a3,d#4]@5", BX: "[g3,b3,e4]@10 ~ [g#3,b3,e4]@5", BY: "[a3,c#4,e4]@10 ~ [d3,a3,e4]@5",
  BZ: "c#3@3 d3@2 e3@5 ~ [c#3,a3,e4]@5, [a3,e4]@5 ~@3", CA: "[d3,a3,f#4]@5 ~@3", CB: "[d3,b3,d4,f#4]@5 ~@3",
  CC: "[d3,f#4,a4,d5]@5 [a3,e4,a4,d5]@5 ~ [a2,c#5]@5", CD: "[f#4,a5]@5 [a4,f#5]@5 ~ [a3,c#5,e5]@5, d3@5 ~@3",
  CE: "[f#4,a4,d5]@5 [f#4,a4]@5 ~ [a3,c#4,g4]@5, d3@5 ~@3", CF: "f#4@3 e4@2 d4@5 ~ [a2,a3,c#4]@5, d3@5 ~@3",
  CG: "[d3,d4]@3 [e3,e4]@2 [f#3,f#4]@5 ~ [e3,e4]@5", CH: "[d3,a3,d4,f#4]@5 ~@3",
  CI: "[b2,d4,f#4]@5 [e4,a4]@5 ~ g4@5, ~@5 c#3@10 ~", CJ: "b2@3 c#3@2 d3@5 ~ b2@5, [d4,f#4]@15 ~",
  CK: "e3@3 f#3@2 ~@6 f#3@5, e4@15 ~, g3@5 g3@10 ~", CL: "[e3,b3,g4]@5 ~@3", CM: "[d3,b3,e4,g#4]@5 ~@3",
  CN: "[[a2,c#4]@3 [b2,d4]@2 [c#3,e4]@5 ~ [b2,d4]@5 [a2,c#4]@10 ~@6, a4@25 ~@7]/2", // A Bm C#m Bm A
  CO: "[f#3,a#3,c#4]@10 ~ [e3,a#3,f#4]@5", CP: "b2@3 c#3@2 d3@5 ~ c#3@5, [b3,d4,f#4]@5 ~@3", CQ: "[e3,g3,b3]@10 ~ b3@5",
  CR: "e4@10 ~ b3@5", CS: "e4@10 ~ e4@5", CT: "f#4@8 e4@3 d4@2 c#4@3", CU: "b3@3 e4@2 f#4@5 ~ e4@5",
  CV: "b2@3 c#3@2 d3@5 ~ c#3@5, d4@5 [b4,d5]@10 ~", CW: "[e3,g4,e5]@5 [b2,f#4,d5]@10 ~",
  CX: "b2@3 c#3@2 d3@5 ~ b2@5, [d5,f#5]@5 [f#4,b4]@10 ~", CY: "[e3,e4,g4,c5]@5 [b2,d4,f#4,b4]@10 ~",
  CZ: "[g4,b4]@10 ~ [b3,g4]@5, e3@15 ~", // G Em
  DA: "[[f#3,a#3,f#4]@8 e3@3 [d3,f#4]@5 [e3,g4]@5 f#3@5 ~ f#2@5, ~@11 b3@10 [a#3,c#4,f#4]@10 ~]/2", // F# D Em F#
  DB: "[b2,f#5]@3 [c#3,e5]@2 [d3,f#5,b5]@5 ~ [b2,d#5]@5", // B5 C#m Bm B
  DC: "g5@3 a5@2 g5@3 f#5@3 e5@2 d5@3, e3@5 ~@3, b4@5 b4@5 ~ g4@5",
  DD: "[a3,e4]@3 [b3,d4]@2 [c#4,e4]@5 ~ [a3,c#4]@5, c#5@5 a5@10 ~", // A5 Bm C#m A
  DE: "f#5@3 g5@2 f#5@3 e5@3 d5@2 c#5@3, d3@5 ~@3, a3@5 a4@5 ~ f#4@5",
  DF: "e5@3 f#5@2 e5@3 d5@3 c#5@2 b4@3, [c#3,a#3]@5 ~@3", // F#
  DG: "[f#3,c#5]@3 [g#3,b4]@2 [a#3,c#5]@5 ~ [f#3,a#4]@5, a#5@5 f#5@10 ~", // F#5 G#m A#m F#
  DH: "[d3,f#5]@3 [c#3,e5]@2 [b2,d5]@5 ~ [d3,b4]@5, b5@5 f#5@10 ~", // D C#m Bm G
  DI: "d3@3 c#3@2 [b2,d4]@5 ~ [d3,f#4]@5, [b4,b5]@5 b4@10 ~", DJ: "[b2,f#3,b3,d4]@15 ~",
})).s("gm_piano").gain(0.3)

stack(piano)

More by Vivaldi