Strudelify

Concerto for 2 Violins in A minor RV 522

Antonio Lucio Vivaldi

KeyD majorTempo40 bpm
0:00/0:00
// Concerto for 2 Violins in A minor RV 522 — Antonio Lucio Vivaldi
// 40 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: metre changes (4/4 at bar 1, 3/4 at bar 6, 4/4 at bar 13) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 7 "Flute" named as a pipe, played on flute (its tremolo strings patch is not one); ch 11 "Oboe" named as a reed, played on oboe (its tremolo strings patch is not one); ch 9 "Bassoon" named as a reed, played on bassoon (its pizzicato strings patch is not one); ch 8 "Violins I" named as a string part, played on violin (its harpsichord patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5870406; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 29 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(40/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.

// other · flute
const flute = note("<A B@2 C D E ~@23>".pickRestart({
  A: "~@22 f#5@7 ~@2 a5, ~@15 g#5",
  B: "[g#5@2 f5@2 d#5 c#5@2 ~@3 f#5@6 ~ a5@2 b5 c#6@5 c#5@2 ~@3 f#5@6 e5 d5@2 d5@7 ~@3 c#6@6 b5 a5 g#5 f#5 f5@4 d5, ~@2 f#5 ~@14 g#5 ~@21 c#5 ~@24]/2",
  C: "c#5@2 ~@3 a5@6 ~ f#5@2 e5 d#5@2 c#5 b4 ~ f#5@2 e5 d#5 ~ a5@2 g#5 a5 ~ b5 a5, ~@12 g5 ~@19",
  D: "g#5 f#5 g#5@6 ~ f#5 e5@2 c#5@2 ~ b4 a4 e5@2 ~ d5 c#5 g5@2 ~ f#5 g5 a5 g5 ~ f#5 e5, ~@12 d5 ~@19",
  E: "f#5@4 e5 d5@2 ~@25",
})).s("gm_flute").gain(0.3)

// other · oboe
const oboe = note("<[~@11 f#5 ~@4] ~@28>").s("gm_oboe").gain(0.3)

// chords · cello · "Violin"
const cello = note("<A B C D E F G@2 H I@2 J K L M N@2 O P Q R S T U V W X Y Z>".pickRestart({
  A: "~@22 f#2@2 ~@3 f#2@2 ~@3", B: "c#3@2 ~@3 c#3@2 ~@3 f#3@2 ~@3 f#3@2 ~@3 f#2@2 ~@3 f#2@2 ~@3 b2@2",
  C: "~@2 b2@2 ~@3 c3@2 ~@3 c3@2 ~@3 c#3@2 ~@3 c#3@2 ~@3 c#3@2 ~@3",
  D: "c#3@2 ~@3 f#3@2 ~@3 f#3@2 ~@3 b2@2 ~@3 b2@2 ~@3 b2@2 ~@3 b2@2",
  E: "~@2 e3@2 ~@3 e3@2 ~@3 a2@2 ~@3 a2@2 ~@3 a2@2 ~@3 a2@2 ~@3", F: "d3@2 ~@3 d3@2 ~@19 a2@2 ~@4",
  G: "[~ a2@2 ~@6 e3@2 ~@5 g#3@2 ~@5 g#3@2 ~@6 g#2@2 ~@5 a2@2 ~@6 a2@2 ~@5 e3@2 ~@5 e2@2 ~@2]/2",
  H: "~@4 a2@2 ~@5 c#3@2 ~@5 d3@2 ~@6 a3@2 ~@4",
  I: "[~ a2@2 ~@6 a2@2 ~@5 d3@2 ~@5 f#3@2 ~@6 g3@2 ~@5 g2@2 ~@6 f#3@2 ~@5 d3@2 ~@5 g3@2 ~@2]/2",
  J: "~@4 g2@2 ~@5 g2@2 ~@5 c3@2 ~@6 g3@2 ~@4", K: "~ g2@2 ~@6 c3 ~@22",
  L: "a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] g4 [c#5,e5] e5 [g4,c#5] g4 [c#5,e5] e5 [g4,c#5] g4 [c#5,e5] e5 [g4,c#5] g4 [c#5,e5] e5 [g4,c#5], d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~ a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~", // Dm D5 Dm D5 Dm D5 Dm D5 …
  M: "a4 [c#5,e5] e5 [a4,c#5] a4 [c#5,e5] e5 [a4,c#5] a4 [c#5,e5] e5 [a4,c#5] a4 [c#5,e5] e5 [a4,c#5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5], a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~ d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~", // C#m A C#m A C#m A C#m A …
  N: "e4 [c#5,g5] g5 [e4,c#5] e4 [c#5,g5] g5 [e4,c#5] e4 [c#5,g5] g5 [e4,c#5] e4 [c#5,g5] g5 [e4,c#5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5], c#3@3 ~ c#3@3 ~ c#3@3 ~ c#3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~", // C#dim C#m C#dim C#m C#dim C#m C#dim C#m …
  O: "e4 [d5,g5] g5 [e4,d5] e4 [d5,g5] g5 [e4,d5] e4 [d5,g5] g5 [e4,d5] e4 [d5,g5] g5 [e4,d5] e4 [c5,a5] a5 [e4,c5] e4 [c5,a5] a5 [e4,c5] e4 [c5,a5] a5 [e4,c5] e4 [c5,a5] a5 [e4,c5], e3@3 ~ e3@3 ~ e3@3 ~ e3@3 ~ a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~", // G5 E7 G5 E7 G5 E7 G5 E7 …
  P: "e4 [d5,g#5] g#5 [e4,d5] e4 [d5,g#5] g#5 [e4,d5] e4 [d5,g#5] g#5 [e4,d5] e4 [d5,g#5] g#5 [e4,d5] e4 [c5,a5] a5 [e4,c5] e4 [c5,a5] a5 [e4,c5] e4 [b4,g#5] g#5 [e4,b4] e4 [b4,g#5] g#5 [e4,b4], e3@3 ~ e3@3 ~ e3@3 ~ e3@3 ~ a2@3 ~ a2@3 ~ e3@3 ~ e3@3 ~", // Ddim E7 Ddim E7 Ddim E7 Ddim E7 …
  Q: "e4 [c5,a5] a5 [e4,c5] e4 [c5,a5] a5 [e4,c5] e4 [c#5,a5] a5 [e4,c#5] e4 [c#5,a5] a5 [e4,c#5] f#4 [d5,a5] a5 [f#4,d5] f#4 [d5,a5] a5 [f#4,d5] f#4 [d5,a5] a5 [f#4,d5] f#4 [d5,a5] a5 [f#4,d5], a3@3 ~ a3@3 ~ g3@3 ~ g3@3 ~ f#3@3 ~ f#3@3 ~ f#3@3 ~ f#3@3 ~", // F C F C F#m C#m F#m C#m …
  R: "g4 [d5,a#5] a#5 [g4,d5] g4 [d5,a#5] a#5 [g4,d5] g4 [d5,a#5] a#5 [g4,d5] g4 [d5,a#5] a#5 [g4,d5] d#4 [c5,g5] g5 [d#4,c5] d#4 [c5,g5] g5 [d#4,c5] d#4 [c5,g5] g5 [d#4,c5] d#4 [c5,g5] g5 [d#4,c5], g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~ c3@3 ~ c3@3 ~ c3@3 ~ c3@3 ~", // Gm G5 Gm G5 Gm G5 Gm G5 …
  S: "d4 [c5,f#5] f#5 [d4,c5] d4 [c5,f#5] f#5 [d4,c5] d4 [c5,f#5] f#5 [d4,c5] d4 [c5,f#5] f#5 [d4,c5] d4 [a#4,g5] g5 [d4,a#4] d4 [a#4,g5] g5 [d4,a#4] d4 [a4,f#5] f#5 [d4,a4] d4 [a4,f#5] f#5 [d4,a4], d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~ g2@3 ~ g2@3 ~ d3@3 ~ d3@3 ~", // Cdim D7 Cdim D7 Cdim D7 Cdim D7 …
  T: "d4 [a#4,g5] g5 [d4,a#4] d4 [a#4,g5] g5 [d4,a#4] d4 [a#4,g5] g5 [d4,a#4] d4 [a#4,g5] g5 [d4,a#4] a4 [c#5,g5] g5 [a4,c#5] a4 [c#5,g5] g5 [a4,c#5] a4 [c#5,g5] g5 [a4,c#5] a4 [c#5,g5] g5 [a4,c#5], g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~", // D# Gm D# Gm D# Gm D# Gm …
  U: "a4 [c#5,g5] g5 [a4,c#5] a4 [c#5,g5] g5 [a4,c#5] a4 [c#5,g5] g5 [a4,c#5] a4 [c#5,g5] g5 [a4,c#5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5], a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~ d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~", // C#dim A C#dim A C#dim A C#dim A …
  V: "d4 [a#4,g5] g5 [d4,a#4] d4 [a#4,g5] g5 [d4,a#4] d4 [a#4,g5] g5 [d4,a#4] d4 [a#4,g5] g5 [d4,a#4] e4 [c#5,g5] g5 [e4,c#5] e4 [c#5,g5] g5 [e4,c#5] e4 [c#5,g5] g5 [e4,c#5] e4 [c#5,g5] g5 [e4,c#5], g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~", // D# Gm D# Gm D# Gm D# Gm …
  W: "a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [c#5,e5] e5 [a4,c#5] a4 [c#5,e5] e5 [a4,c#5] e4 [d5,g#5] g#5 [e4,d5] e4 [d5,g#5] g#5 [e4,d5] e4 [d5,g#5] g#5 [e4,d5] e4 [d5,g#5] g#5 [e4,d5], d3@3 ~ d3@3 ~ g2@3 ~ g2@3 ~ e3@3 ~ e3@3 ~ e3@3 ~ e3@3 ~", // Dm D5 Dm D5 C#m A C#m A …
  X: "e4 [c#5,g5] g5 [e4,c#5] e4 [c#5,g5] g5 [e4,c#5] e4 [c#5,g5] g5 [e4,c#5] e4 [c#5,g5] g5 [e4,c#5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [c#5,e5] e5 [a4,c#5] a4 [c#5,e5] e5 [a4,c#5], a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~ d3@3 ~ d3@3 ~ a2@3 ~ a2@3 ~", // C#dim C#m C#dim C#m C#dim C#m C#dim C#m …
  Y: "a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,e5] e5 [a4,d5] a4 [d5,e5] e5 [a4,d5] a4 [d5,e5] e5 [a4,d5] a4 [d5,e5] e5 [a4,d5], d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~ a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~", // Dm D5 Dm D5 Dm D5 Dm D5 …
  Z: "a4 [c#5,e5] e5 [a4,c#5] a4 [c#5,e5] e5 [a4,c#5] a4 [c#5,e5] e5 [a4,c#5] a4 [c#5,e5] e5 [a4,c#5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5] a4 [d5,f5] f5 [a4,d5], a2@3 ~ a2@3 ~ a2@3 ~ a2@3 ~ d3@16", // C#m A C#m A C#m A C#m A …
})).s("gm_cello").gain(0.25)

// other · tremolo strings · "Violin I"
const tremolo_strings = note("<~@5 A B C D E F G H ~@16>".pickRestart({
  A: "~@26 [a3,c6] a5 [a5,c6] c6 [a5,c6]!2", // Am
  B: "a5 [a5,c6]!2 c6 [a5,c6] a5 [a5,c6]!2 c6 [g#5,b5]!2 g#5 [g#5,b5] b5 [g#5,b5]!2 e5 [e5,b5]!2 b5 [e5,b5] e5 [e5,b5] [d5,b5] b5 [d5,b5]!2 d5 [d5,b5] b5 [d5,b5] [d5,e5]", // Am G#m E5 G Dsus2
  C: "d5 [d5,e5]!2 e5 [d5,e5] d5 [c5,e5]!2 e5 [c5,e5]!2 c5 [c5,e5] e5 [c5,a5]!2 c5 [c5,a5]!2 a5 [c5,a5] b4 [b4,a5]!2 a5 [b4,a5]!2 b4 [b4,a5] g5 [b4,g5]!2", // Dsus2 C F B7 Em
  D: "b4 [b4,g5]!2 g5 [c#5,g5] c#5 [c#5,g5]!2 g5 [c#5,g5]!2 a4 [a4,g5] g5 [a4,g5]!2 a4 [a4,g5] [d5,g5] f5 [d5,f5] d5 [d5,f5]!2 f5 [d5,f5] [d5,e5] d5 [d5,e5] e5 [d5,e5]!2", // Em C#dim A7 G5 Dm Dsus2
  E: "d5 [c5,e5]!2 e5 [c5,e5] c5 [c5,e5]!2 e5 [c5,a5]!2 c5 [c5,a5] a5 [c5,a5]!2 c5 [c5,f#5]!2 f#5 [c5,f#5] c5 [c5,f#5]!2 a5 [c5,a5]!2 c5 [c5,a5] a5 [c5,a5] [a#4,a5]", // C F Cdim F A#maj7
  F: "a#4 [a#4,a5]!2 a5 [a#4,a5] a#4 [a#4,a5] [a#4,g5] g5 [a#4,g5]!2 a#4 [a#4,g5] g5 [a4,c6]!2 a4 [a4,c6]!2 c6 [a4,c6] f#5 [f#5,c6]!2 c6 [f#5,c6]!2 f#5 [g5,c6] c6 [g5,c6]!2", // A#maj7 D# Am F#dim C5
  G: "g5 [g5,c6]!2 c6 [g5,b5] g5 [g5,b5]!2 b5 [g5,b5]!2 f5 [f5,b5] b5 [f5,b5]!2 f5 [f5,b5] [e5,b5] c6 [e5,c6] e5 [e5,c6]!2 c6 [e5,c6] [d5,c6] d5 [d5,c6] c6 [d5,c6]!2", // C5 G Fdim E5 C D7
  H: "d5 [d5,c6] [d5,b5] b5 [d5,b5] d5 [d5,b5]!2 b5 c6 ~@22", // D7 G
})).s("gm_tremolo_strings").gain(0.3)

// other · tremolo strings
const tremolo_strings_2 = note("<~@5 A B@2 C D@4 ~@16>".pickRestart({
  A: "~@13 a3 ~@2",
  B: "[~ c5@2 ~ a5@3 c6 ~ d5@9 b5 ~ g#5 a5 b5 d5@7 ~ b5@2 g#5@2 f5 e5@2 c5@4 b4 a4@2 ~ c5@2 e5@4 a5 b4@9 e5!2, ~@33 a5 ~@4 d5 ~@25]/2",
  C: "g5!2 b4 ~ a4 c#5!2 e5 ~ e5 g5 g5@4 a5 f5 e5 f5@4 e5 d5@2 ~@7",
  D: "[~ a4@2 ~ c5@2 e5@2 ~ a5@7 c5@2 f#5@2 ~ a5@2 c6@4 d5 f#5 ~ a5 d6@3 c6 ~ a#5 a5 a#5@7 ~@8 d5@2 f#5@2 ~ a5@2 c6@7 ~ b4@2 d5@2 ~ g5@2 b5@2 a5 ~ f5 e5 d5 e5 ~ c5 e5 g5 c6 ~ g5 a5@2 f5@2 e5 d5@2 [b4,c5] g5 ~ [g5,a5] [f5,g5] [d5,e5] g5 ~ e5 ~@22, ~@78 g5@2 ~@12 g5 ~@35]/4", // Cmaj7 Gsus2 Fsus2 Dsus2
})).s("gm_tremolo_strings").gain(0.4)

// chords · contrabass
const contrabass = note("<A B C D E F G@2 H I@2 J K L M N O P Q R S T U V W X Y Z AA>".pickRestart({
  A: "~@22 f#1@2 ~@3 f#1@2 ~@3", B: "c#2@2 ~@3 c#2@2 ~@3 f#2@2 ~@3 f#2@2 ~@3 f#1@2 ~@3 f#1@2 ~@3 b1@2",
  C: "~@2 b1@2 ~@3 c2@2 ~@3 c2@2 ~@3 c#2@2 ~@3 c#2@2 ~@3 c#2@2 ~@3",
  D: "c#2@2 ~@3 f#2@2 ~@3 f#2@2 ~@3 b1@2 ~@3 b1@2 ~@3 b1@2 ~@3 b1@2",
  E: "~@2 e2@2 ~@3 e2@2 ~@3 a1@2 ~@3 a1@2 ~@3 a1@2 ~@3 a1@2 ~@3", F: "d2@2 ~@3 d2@2 ~@19 a1@2 ~@4",
  G: "[~ a1@2 ~@6 e2@2 ~@5 g#2@2 ~@5 g#2@2 ~@6 g#1@2 ~@5 a1@2 ~@6 a1@2 ~@5 e2@2 ~@5 e1@2 ~@2]/2",
  H: "~@4 a1@2 ~@5 c#2@2 ~@5 d2@2 ~@6 a2@2 ~@4",
  I: "[~ a1@2 ~@6 a1@2 ~@5 d2@2 ~@5 f#2@2 ~@6 g2@2 ~@5 g1@2 ~@6 f#2@2 ~@5 d2@2 ~@5 g2@2 ~@2]/2",
  J: "~@4 g1@2 ~@5 g1@2 ~@5 c2@2 ~@6 g2@2 ~@4", K: "~ g1@2 ~@6 c2 ~@22",
  L: "d5 f5 a5 f5 d5 a4 f4 d4 a3 d4 f4 a4 d5 f5 a5 f5 e5 a4 c#5 e5 g5 e5 c#5 a4 a3 c#4 e4 a4 c#5 e5 g5 e5, d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~",
  M: "c#5 a4 c#5 e5 g5 e5 c#5 a4 a3 c#4 e4 a4 c#5 e5 a5 c#5 d5 a4 d5 f5 a5 f5 d5 a4 a3 d4 f4 a4 d5 f5 a5 d5, a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~",
  N: "c#5 e5 g5 a#5 g5 e5 c#5 a4 c#4 e4 a4 c#5 e5 g5 a#5 g5 f5 a4 d5 f5 a5 f5 d5 a4 a3 d4 f4 a4 d5 f5 a5 f5, c#2@3 ~ c#2@3 ~ c#2@3 ~ c#2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~",
  O: "e5!2 g5 a#5 g5 e5 c#5 a4 c#4 e4 a4 c#5 e5 g5 a#5 g5 f5 a4 d5 f5 a5 f5 d5 a4 a3 d4 f4 a4 d5 f5 a5 f5, c#2@3 ~ c#2@3 ~ c#2@3 ~ c#2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~",
  P: "e5 b4 e5 g#5 b5 g#5 e5 b4 e4 g#4 b4 d5 g#5 b5 g#5 d5 c5 a4 c5 e5 a5 e5 c5 a4 e4 a4 c5 e5 a5 e5 c5 a5, e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~",
  Q: "g#5 b4 e5 g#5 b5 g#5 e5 b4 e4 g#4 b4 e5 g#5 b5 g#5 d5 c5 a4 c5 e5 a5 e5 c5 a4 b4 e5 g#5 b5 g#5 e5 b4 g#5, e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~ a1@3 ~ a1@3 ~ e2@3 ~ e2@3 ~",
  R: "~@4 a2@3 ~ g2@3 ~ g2@3 ~ d5 b4 d5 f#5 a5 f#5 d5 a4 d4 f#4 a4 d5 f#5 a5 f#5 a4, [e4,c5] ~@3, a2@3 ~@13 f#2@3 ~ f#2@3 ~ f#2@3 ~ f#2@3 ~, ~ a5@7 ~@24", // C
  S: "a#4 g4 a#4 d5 g5 a#5 g5 d5 a#4 d4 g4 a#4 d5 g5 a#5 d5 d#5 g4 c5 d#5 g5 d#5 c5 g4 d#4 g4 c5 d#5 g5 d#5 c5 g4, g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~",
  T: "f#4 a4 d5 f#5 a5 f#5 d5 a4 d4 f#4 a4 d5 f#5 a5 f#5 a4 a#4 g4 a#4 d5 g5 a#5 g5 a#4 a4 f#4 a4 d5 f#5 a5 f#5 a4, d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ g1@3 ~ g1@3 ~ d2@3 ~ d2@3 ~",
  U: "a#4 g4 a#4 d5 g5 a#5 g5 d5 a#4 g4 a#4 d5 g5 a#5 g5 d5 c#5 a4 c#5 e5 a5 e5 c#5 a4 a3 c#4 e4 a4 c#5 e5 g5 e5, g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~",
  V: "c#5 a4 c#5 e5 a5 e5 c#5 a4 a3 c#4 e4 a4 c#5 e5 g5 e5 f5 a4 d5 f5 a5 f5 d5 a4 d4 f4 a4 d5 f5 a5 f5 d5, a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~",
  W: "d5 g4 a#4 d5 g5 a#5 g5 d5!2 g4 a#4 d5 g5 a#5 g5 d5 e5 a4 c#5 e5 g5 e5 c#5 a4 a3 c#4 e4 a4 c#5 e5 g5 e5, g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~",
  X: "f5 a4 d5 f5 a5 f5 d5 a4 c#5 a4 c#5 e5 a5 e5 c#5 a4 g#5 b4 d5 g#5 b5 g#5 d5 b4 e4 g#4 b4 d5 g#5 b5 g#5 d5, d2@3 ~ d2@3 ~ g1@3 ~ g1@3 ~ e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~",
  Y: "e5 a4 c#5 e5 g5 e5 c#5 a4 a3 c#4 e4 a4 c#5 e5 g5 e5 d5 a4 d5 f5 a5 f5 d5 a4 c#5 a4 c#5 e5 a5 e5 c#5 a4, a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ d2@3 ~ d2@3 ~ a1@3 ~ a1@3 ~",
  Z: "f5 a4 d5 f5 a5 f5 d5 a4 a3 d4 f4 a4 d5 f5 a5 d5 e5 a4 d5 e5 a5 e5 d5 a4 a3 d4 e4 a4 d5 e5 a5 d5, d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~",
  AA: "c#5 a4 c#5 e5 a5 e5 c#5 a4 a3 e4 a4 c#5 e5 a5 e5 c#5 ~ f5@15, a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ [d2,a4,d5]@16", // D5
})).s("gm_contrabass").gain(0.3)

// other · string ensemble 1 · "Violin III"
const string_ensemble_1 = note("<~@13 A B C D E F G H I J K L M N O ~>".pickRestart({
  A: "d5@5 a5 f5 d5 c#5@5 a4 c#5 e5", B: "g5@10 a#5@2 a5 g5 f5 e5 f5@2 e5@2 d5@4 ~@4 a5@4",
  C: "e5@4 g5@4 a4@4 g5@4 f5@3 g5 a5@4 ~@4 a5@4", D: "e5@2 g5@2 a4@2 g5@2 f5 g5 a5@2 ~@2 a5@2",
  E: "g#5@2 b5@3 d5 c5 b4 c5@2 a5@3 c5 b4 a4", F: "g#5@4 b5@6 d5@2 c5@2 b4@2 c5@4 d5@2 a5@2 [b4,c5]!6 a4@2",
  G: "a4@2 ~ a4 d5 f#5 a5 c6", H: "a#5@5 d6 a#5 g5 d#5@5 g5 d#5 c5",
  I: "f#5@10 a5 g5 f#5 e5 d5 c5 a#4@2 d5@2 a#5@2 g5@2 [f#5,g5]!6 g5@2", J: "g5@4 ~ d5 g5 a#5 c#5@5 e5 c#5 a4",
  K: "g4 c#5 e5 g5 a#5 g5 f5 e5 f5@5 a5 f5 d5", L: "a#4@5 d5 g5 a#5 c#5 a4 c#5 e5 g5 e5 g5 a5",
  M: "f5@4 e5@2 d5@2 [c#5,d5]!6 d5@2 d5@10 g#5@2 a5@2 b5@2", // Dmaj7
  N: "c#5@2 a4@2 g4@6 e5@2 a#5@2 g5@2 f5@4 e5@2 d5@2 [c#5,d5]!6 d5@2", O: "d5 ~@3",
})).s("gm_string_ensemble_1").gain(0.4)

// other · string ensemble 1 · "Violin III" · soft notes
const string_ensemble_1_soft = note("<~@5 A B@2 C D E F G ~@16>".pickRestart({
  A: "~@26 a3 e5!2 ~ e5!2", B: "e5!3 ~ e5!4 ~ e5!4 ~ e5!5 ~ e5!4 ~ e5!4 ~ e5!2",
  C: "e5!3 ~ e5!4 ~ e5!4 ~ e5!4 a4 ~ a4!4 ~ a4!4 ~ a4!2", D: "a4!3 ~ a4!4 ~ a4!4 ~ a4!5 ~ a4!4 ~ a4!4 ~ a4 d4",
  E: "d4!3 ~ d4!4 ~ d4!4 ~ d4!5 ~ d4!4 ~ d4!4 ~ d4!2", F: "d4!3 ~ d4!4 ~ d4!2 g3!2 ~ g3!5 ~ g3!4 ~ g3!4 ~ g3!2",
  G: "g3!3 ~ g3!4 ~ c4 ~@22",
})).s("gm_string_ensemble_1").gain(0.2)

// other · viola · "Violin" · F#5 C#5 F#5 C#m D D7 F#sus2 C# …
const viola = note(`<
  [~@22 f#4 [c#5,f#5] f#5 [c#5,f#5] f#4!2 [c#5,f#5] f#5 [c#5,f#5] f#4]
  [f4 [c#5,g#5] g#5 c#5 f4!2 [c#5,g#5] g#5 c#5 f4 [f#4,c#5] a5!2 c#5 f#4 [f#4,c#5] a5!2 [f#4,c#5] f#4 [e4,c#5] a#5!2 [e4,c#5] e4 [e4,c#5] a#5!2 [e4,c#5] e4 [f#4,d5] b5]
  [b5 [f#4,d5] f#4 d5 b5!2 [f#4,d5] f#4 d5 c6 [d5,c6] f#4!2 d5 c6 [d5,c6] f#4 [f#4,g#4] [f5,c#6] c#6 [f5,c#6] g#4!2 [f5,c#6] c#6 [f5,c#6] g#4!2 [f5,b5] b5 [f5,b5] g#4]
  [g#4 [f5,b5] b5 f5 g#4 f#4 [c#5,a5] a5 c#5 f#4 [f#4,c#5] a5!2 c#5 f#4 [f#4,d#5] b5!2 [f#4,d#5] f#4 [f#4,d#5] b5!2 [f#4,d#5] f#4 [f#4,d#5] a5!2 [f#4,d#5] f#4 [f#4,d#5] a5]
  [a5 [f#4,d#5] [e4,f#4] b4 g#5!2 [e4,b4] e4 b4 g#5 [b4,g#5] e4!2 b4 a5 [b4,a5] e4!2 [b4,a5] a5 [b4,a5] e4!2 [c#5,g5] g5 [c#5,g5] e4!2 [c#5,g5] g5 [c#5,g5] e4]
  [d4 [a4,f#5] f#5 a4 d4!2 [a4,f#5] f#5 a4 d4 ~@16 a3@2 ~@4]
  ~@23
>`).s("gm_viola").gain(0.3)

// other · bassoon
const bassoon = note(`<
  [~@22 f#2 f#3 ~ a3 f#3 ~ f#3 ~ a3 f#3]
  [~ c#3 f3 ~ c#3 ~ c#3 f3 ~ c#3 ~ f#3 a3 ~ f#3 ~ f#3 a3 f#3 ~@2 f#3 a#3 f#3 ~@2 f#3 a#3 f#3 ~@2 b2]
  [d3 b2 ~@2 b2 d3 b2 ~@2 c3 c4 c3 ~@2 c3 c4 c3 ~ c#3 ~ f3 c#3 ~ c#3 ~ f3 c#3 ~ c#3 ~ f3 c#3]
  [~ c#3 f3 ~ c#3 ~ f#3 a3 ~ f#3 ~ f#3 a3 ~ f#3 ~ b2 d#3 b2 ~@2 b2 d#3 b2 ~@2 b2 d#3 b2 ~@2 b2]
  [d#3 b2 ~@2 e3 g#3 e3 ~@2 e3 g#3 e3 ~@2 a2 c#3 a2 ~ a2 ~ c#3 a2 ~ a2 ~ c#3 a2 ~ a2 ~ c#3 a2]
  [~ d3 f#3 ~ d3 ~ d3 f#3 ~ d3 ~@22]
  ~@23
>`).s("gm_bassoon").gain(0.3)

stack(
  flute, oboe, cello, tremolo_strings, tremolo_strings_2, contrabass, string_ensemble_1, string_ensemble_1_soft, viola,
  bassoon
)

More by Antonio Lucio Vivaldi