Strudelify

ANTICA PASTORALE

Antonio Lotti

KeyG majorTempo120 bpm
0:00/0:00
// ANTICA PASTORALE — Antonio Lotti
// 120 bpm, 12/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/2775456; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 93 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/6)

// 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 · cello · "Violoncello"
const cello = note(`<
  A B C D E F G H I J K J L M N O P Q R S T S T U V@2 W X W Y Z AA Z AB AC AD AE AF AG AH@5 AI AJ AK AL AM@2 AN AO AP AQ
  AR AS@2 AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI@2 BJ F G F BK BL BK BL BM BN BO BN BP BQ BR BS BT BU BV
>`.pickRestart({
  A: "~@3 g5@2 d5 e5@2 d5 e5@2 f#5", B: "~@3 b4@2 b4 c5@2 b4 c5@2 a4", C: "b4@3 g4@2 d4 e4@2 d4 e4@2 f#4",
  D: "g4@2 d4 g4@2 d4 e4@2 d4 e4@2 f#4", E: "g4 [g3,b3] [g3,c4] [g3,a3]", F: "[g3,b3]!2 [g3,a3] [f#3,d4]",
  G: "[g3,d4] [g3,b3] [g3,c4] [g3,a3]", H: "[g3,b3]!2 [g3,a3] [f#3,a3]", I: "[g3,b3]@3 d3 g3 d3 e3 g3 e3 c3 e3 c3",
  J: "d3@3 d3 g3 b2 c3 a3 c3 a2 b2 c3", K: "b2@3 d3 g3 d3 e3 g3 e3 c3 e3 c3",
  L: "g2@3 [g3,b3]@3 [g3,c4]@3 e4 d4 c4, ~@3 g3", M: "[g3,b3]@3 [g3,b3]@3 [g3,e4]@3 c4 b3 a3, ~@3 g3",
  N: "[g3,d4]@3 [g3,b3]@3 [g3,c4]@3 e4 d4 c4, ~@3 g3", O: "[g3,b3]@3 [g3,b3]@3 [g3,c4]@3 c4 b3 a3, ~@3 g3",
  P: "[g3,b3]@2 ~ [g3,c4]@2 ~ [g3,b3]@2 ~ [g3,e4]@2 ~", Q: "[g3,d4]@2 ~ [g3,c4]@2 ~ [g3,b3]@2 ~ [g3,e4]@2 ~",
  R: "[g3,d4]@2 ~ [g3,c4]@2 ~ [g3,b3]@2 ~ [g3,c4]@2 ~", S: "g3 b3 d4 ~@3 g3 c4 e4 ~@3", T: "g3 b3 d4 ~@3 g3 a3 c4 ~@3",
  U: "[g3,d4] e4 [g3,b3] c#4", V: "[d3@3 e3@3 f#3@3 e3@3 f#3@3 ~@2 [f#3,d4] [g3,d4]@3 ~@2 [e3,d4], d4@5 ~@3]/2",
  W: "[f#3,d4]@3 ~@2 [d3,c#4] [e3,d4]@3 ~@2 [e3,d4]", X: "[f#3,d4]@3 ~@2 [f#3,d4] [g3,d4]@3 ~@2 [e3,d4]",
  Y: "[d3,d4]@3 d3 f#3 a3 d3 g3 b3 d3 f#3 a3", Z: "d3 g3 b3 d3 f#3 a3 d3 g3 b3 d3 e3 g3",
  AA: "[d3,f#3]@3 d3 f#3 a3 d3 g3 b3 d3 f#3 a3", AB: "[d3,f#3]@6 ~@4 f#3@2 g3@2 f#3 e3 d3@2 ~@4 f#3@2",
  AC: "g3@2 f#3 e3 d3@2 ~@4 f#3@2 g3@2 f#3 e3 d3@2 g3@4 e3@2", AD: "[d3,f#3] [f#3,a3] [g3,b3] [f#3,a3]",
  AE: "[g3,b3] [f#3,a3] [g3,b3] [g3,d4]", AF: "[f#3,a3]@6 d4 c#4 b3 a3 g3 f#3 b3 a3 g3 f#3 e3 d3 d4 c#4 b3 a3 g3 f#3",
  AG: "b3 a3 g3 f#3 e3 d3 d4 c#4 b3 a3 g3 f#3 b3 a3 g3 f#3 e3 d3 b3@4 c#4@2",
  AH: "[d4@3 ~@5 f#4 ~@5 e4 ~@5 d4 ~@5 c#4 ~@5 f#4 ~@5 e4 ~@5 d4 e4@5 c#4 d4@2 e4 f#4@2 g#4 a4@2 b4, ~@6 d3@3 g4@5 ~ f#4@5 ~ e4@5 ~ d4@5 ~ g4@5 ~ f#4@5 ~@16, ~@4 d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~@5]/5",
  AI: "c#5@2 d5 c#5@2 f#4 e4@2 d4 c#4@2 b3", AJ: "a3@3 c#4@2 c#4 d4 f#4 d4 b3 c#4 d4",
  AK: "c#4@2 e4 c#4@2 e4 a4@2 e4 d4@3", AL: "c#4 [a3,c#4] [a3,d4] [a3,b3]", AM: "[a3,c#4] [a3,f#4] [a3,e4] [a3,d4]",
  AN: "[a3,c#4]!2 [a3,d4]!2", AO: "[a3,c#4]!2 [a3,b3]!2",
  AP: "a3@2 a3 b3 c#4 d4 e4@2 a3@2 e4@2 ~@2 d4 e4 f#4 g4 a4@2 d4@2 a4@2",
  AQ: "~@2 a3 b3 c#4 d4 e4@2 a3@2 e4@2 ~@2 g#3 a3 b3 c#4 d4@2 g#3@2 e4@2",
  AR: "a3@2 c#4 [a3,d4]@3 [a3,c#4]@3 [a3,b3]@3", AS: "[a3,c#4] [a3,d4] [a3,c#4] [a3,b3]",
  AT: "[a3,c#4]@3 [a3,c#4]@3 [a3,c#4]@2 d4 e4@2 f#4", AU: "e4 d#4 e4 d#4", AV: "e4@3 c4 b3 a3 g3@3 a3@3",
  AW: "g3 f#3 e3 a3", AX: "g#3 f#3 e3 ~", AY: "[e3,g#3]@3 ~@3 g#3@2 a3 b3 a3 g#3", AZ: "a3@3 ~@3 [a3,c#4]@2 ~@4",
  BA: "e4@2 d4 e4 d4 c#4 f#4 e4 d4 e4 d4 c#4, a3 ~ a3 ~", BB: "d4@2 e4 f#4@2 f#4 g4@2 g4 f#4@2 e4",
  BC: "f#4 e4 d4 g4 f#4 e4 f#4 e4 d4 g4 f#4 e4", BD: "f#4 e4 d4 e4 d4 c#4 d4@3 ~@2 a3",
  BE: "b3@2 b3 a3@2 g3 a3 g3 f#3 b3 a3 g3", BF: "a3 g3 f#3 b3 a3 g3 a3 g3 f#3 g3 f#3 e3",
  BG: "f#3@2 g3 a3@2 ~@6 [f#3,d4]", BH: "[g3,d4]@2 c4 [g3,b3]@2 [g3,b3] [g3,c4]@2 b3 c4 b3 a3",
  BI: "[g3,b3] [g3,e4] [g3,d4] [g3,c4]", BJ: "[g3,b3]!2 [g3,c4] [g3,a3]", BK: "[g3,b3]@3 ~@2 [g3,b3] [g3,c4]@3 b3@2 a3",
  BL: "[g3,b3]@2 c4 [g3,d4]@2 d4 [g3,e4]@2 e4 [g3,d4]@2 c4", // G G5 C G5
  BM: "[g3,b3]@6 d3 g3 d3 g3 d3 g3 e3 g3 e3 g3 e3 g3 d3 g3 d3 g3 c3 g3", // G
  BN: "d3 g3 d3 g3 c3 g3 b2 g3 b2 g3 b2 g3 c3 g3 c3 g3 c3 g3 b2 g3 b2 g3 a2 g3",
  BO: "g2@6 d3 g3 d3 g3 d3 g3 e3 g3 e3 g3 e3 g3 d3 g3 d3 g3 c3 g3", BP: "g2 [g3,b3] [g3,c4] [g3,b3]",
  BQ: "[g3,c4]@3 [g3,b3]@3 [g3,c4]@3 c4 b3 a3", BR: "[g3,b3]@6 [g3,b3]@6 g4 f#4 e4 d4 c4 b3 ~@6",
  BS: "g4 f#4 e4 d4 c4 b3 ~@6 g4 f#4 e4 d4 c4 b3 c4@2 b3@2 a3@2", BT: "b3@3 c4 b3 a3 [g3,b3]@2 ~ c4 b3 a3",
  BU: "b3@2 c4 b3@2 a3 b3@2 c4 b3@2 a3", BV: "[g2,g3,b3]",
})).s("gm_cello").gain(0.48).pan(1)

stack(cello)