Strudelify

bwv 972 concerto after vivaldi op 3 no 9 1 allegro duet

J. S. Bach

KeyB♭ majorTempo100 bpm
0:00/0:00
// bwv 972 concerto after vivaldi op 3 no 9 1 allegro duet — J.S.Bach
// 100 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Harpsichord, Cemb" named as a piano, played on harpsichord (its trumpet patch is not one); ch 4 "Harpsichord, Cemb" named as a piano, played on harpsichord (its alto sax patch is not one); ch 5 "Harpsichord, Cemb" named as a piano, played on harpsichord (its baritone sax patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/3709056; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 54 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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 · alto sax · "Alto Saxophone"
const alto_sax = note("<A B C D E F G H I J ~@6 K L M N ~@13 K L O P Q ~@9 R S ~ I T@3>".pickRestart({
  A: "~@15 d5", B: "d5@6 ~ d5 d5@2 f5 eb5 f5@2 f5@2", C: "bb4@6 ~ bb4 bb4@2 d5 c5 d5@2 d5@2",
  D: "g4@6 ~ g4 g4@2 bb4 a4 bb4@2 bb4@2", E: "bb4@2 a4@2 ~@2 f5@2 c5 bb4 c5 eb5 d5 c5 d5 f5",
  F: "eb5 d5 eb5 f5 eb5 g5 f5 eb5 d5 c5 d5 eb5 d5 f5 eb5 d5", G: "c5@2 f4@2 ~@2 f5@2 d5@2 f5 eb5 f5@2 f5@2",
  H: "~@2 f5 eb5 f5@2 f5@2 d5@2 f5 eb5 f5@2 f5@2", I: "~@2 f5 eb5 f5@2 f5@2 d5 f5 eb5 d5 c5 bb4 a4 g4",
  J: "f4 bb4 eb4 a4 ~@4", K: "~@5 f5 eb5 d5 c5 bb4 a4 c5 d5 eb5 d5 eb5",
  L: "c5 bb4 a4 c5 d5 eb5 d5 eb5 c5 bb4 a4 c5 d5 eb5 d5 eb5", M: "c5 f4 a3 e3!5", N: "e3!7 ~",
  O: "c5 f4 ~ a4 g4@2 ~ g4", P: "f4@2 ~ f4 eb4@2 ~ eb4", Q: "d4@2 ~ d4 c4@2 [c4,eb4]@2", R: "~@6 d5!2",
  S: "c5@2 c5 bb4 c5@2 c5@2 bb4@2 ~@6", T: "[f4@2 bb4@2 ~ eb4@2 a4@3 d4@32 ~@6]/3",
})).s("gm_alto_sax").gain(0.3)

// chords · harpsichord · "Harpsichord, Cemb"
const harpsichord = note(`<
  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 AA AB AC ~@4 Q R AD AE AF AG AH AI AJ AK@4 ~ AL AM AN AO AP@3
>`.pickRestart({
  A: "~@15 [f4,bb4]", B: "[f4,bb4]@6 ~ [f4,bb4] [f4,bb4]@4 [f4,a4]@2 [eb4,a4]@2",
  C: "[d4,g4]@6 ~ [d4,g4] [d4,g4]@4 [d4,f4]@2 [c4,f4]@2", // G5 Dm F5
  D: "[bb3,eb4]@6 ~ [bb3,eb4] bb3@2 c4@2 [d4,f4]@2 [d4,f4]@2, ~@2 eb4 ~", E: "[c4,f4] ~ [f3,c4] f3",
  F: "[g3,bb3]@2 [a3,c4]@2 ~ f3 bb3@2", G: "a3 ~@2 [c4,a4] [d3,f4]@2 ~@2", H: "[a3,c5] ~ [f3,bb4] ~",
  I: "[a3,c5] ~ [f3,f4] [g3,c4]", J: "[a3,c4] [f3,d4] [f3,c4]@2 f3@2 ~ a3, ~@4 d4 ~@3", K: "bb3@2 ~ f3 f3@2 bb3@2",
  L: "[f3,a3] [g3,bb3] [a3,c4] [f3,a3] bb3 d4 g4 g3", M: "a3 c4 f4 f3 g3 bb3 c4 e3", N: "f3 g3 a3 f3 ~ bb3 ~ c4",
  O: "~ [a3,c4] ~ [g3,c4] ~ [f3,a3] ~ [e3,a3]", P: "~ [d3,f3] ~ [f3,c4] ~ [d3,f3] ~@2",
  Q: "~ f3 g3 a3 bb3@2 bb3@2 a3@2 a3@2 bb3@2 bb3@2", R: "a3!2 bb3!2 a3!2 bb3!2",
  S: "a3@2 ~@3 c5 d5 c5 bb4 a4 g4 a4 bb4 c5 bb4 c5, ~@3 c4 g3!4",
  T: "bb4 a4 g4 a4 bb4 c5 bb4 c5 bb4 a4 g4 a4 bb4 c5 bb4 c5, g3!8",
  U: "a4 bb4 a4 g4 a3@2 bb3@2 c4 bb3 a3 g3 f3@2 a3@2, f3@2 g3@2 f4 ~@11",
  V: "c4 bb3 a3 g3 f3@2 a3@2 bb3@2 f3@2 bb3@2 f3@2", W: "bb3 a3 g3 f3 e3@2 g3@2 a3@2 e3@2 a3@2 e3@2",
  X: "a3 g3 gb3 e3 d3@2 gb3@2 g3@2 ~@4 gb3@2", Y: "g3 ~@2 gb3 g3@2 ~ [g3,bb4]",
  Z: "[eb3,bb4]@2 ~ [d3,a4] [d3,a4]@2 ~ [d3,g4]", AA: "eb3 c4 [d3,gb4]@2 ~@2 bb4 a4, g4 ~@3",
  AB: "eb4@2 eb3@2 ~ a3 bb3 c4 d4@2 d3@2 ~ g3 a3 bb3, g4@2 a4 g4 gb4@2 g4@2", AC: "c4 a3 d4 d3 ~@4, ~ gb4 ~@2",
  AD: "~@4 f5@2 [d5,f5]@2 [d5,f5]@2 eb5 d5 eb5@2 [c5,eb5]@2", // Dm Cm
  AE: "[c5,eb5]@2 d5 c5 d5@2 [bb4,d5]@2 [bb4,d5]@2 c5 bb4 c5@2 [a4,c5]@2", // Cm Bb Am
  AF: "[a4,c5]@2 bb4 a4 bb4@2 [g4,bb4]@2 [g4,bb4]@4 [f4,a4]@4", AG: "[d4,f4] ~@2 [bb4,d5] [a4,c5]@2 ~ [a4,c5]",
  AH: "[bb4,d5]@2 ~ [bb4,d5] [a4,c5]@2 ~ [a4,c5]", AI: "bb4@4 ~@4 f3 eb3 f3 ~ g3 f3 g3 ~",
  AJ: "~ a3 g3 a3 ~ a3 g3 a3 bb3 a3 bb3 f3 ~@4", AK: "[f3@52 ~ f3 g3 a3 bb3 d4 c4 bb3 a3 g3 f3 eb3]/4",
  AL: "~@6 [f4,bb4]!2", AM: "[g4,bb4]@2 [f4,a4] [eb4,a4] [d4,f4] ~@2 [bb4,d5]",
  AN: "[a4,c5]@2 ~ [f4,c5] [f4,bb4]@2 ~ [bb4,d5]", AO: "[a4,c5]@2 ~ [f4,c5] [f4,bb4] ~@3",
  AP: "[bb4@2 ~@5 a4@3 ~@2 f4@30 ~@6, d4@4 ~ c4@6 bb3@31 ~@6, ~@2 bb4@5 ~@41]/3",
})).s("gm_harpsichord").gain(0.3)

// other · harpsichord · "Harpsichord, Cemb"
const harpsichord_2 = note(`<
  A B C D E F G H I J K ~@2 L M N O P Q R S ~@2 T U V W ~ X Y Z AA AB AC P AD AE AF AG AH AI AJ AK@4 AL AM AN AO AP AQ@3
>`.pickRestart({
  A: "~@15 bb3", B: "bb3@6 ~ bb3 bb3@4 f3@4", C: "g3@6 ~ g3 g3@4 d3@4", D: "eb3@6 ~ eb3 eb3@4 bb2@4", E: "f3 ~ a2 bb2",
  F: "eb2@2 f2@2 bb2@3 bb2", G: "f3@2 f2 g2 a2@2 f2@2 bb2@4 ~@4", H: "f3 ~ bb2 ~", I: "f3 ~ bb2 eb3",
  J: "f3@2 d3 eb3 ~@2 f2@2 bb2@4 ~@2 f3@2", K: "bb2@2 ~ a2 bb2 c3 d3 bb2", L: "~@4 bb2 ~ c3 ~", M: "f3 e3 d3 c3",
  N: "bb2 a2 bb2 c3", O: "f2 ~@2 bb2 f3!2 bb2!2", P: "f3!2 bb2!2 f3!2 bb2!2",
  Q: "f3@2 f2 g2 a2@2 f2@2 c3@2 c3@2 c3@2 c3@2", R: "c3!8", S: "f2 ~@7", T: "~@5 g2 gb2 ~",
  U: "~@2 g2@2 gb2@2 ~@4 g2 a2 bb2@2 g2@2", V: "a2 g2 a2 gb2 g2 a2 bb2 g2",
  W: "c3@2 a2@2 ~@2 d2@2 g2 d3 e3 gb3 g3 bb3 c4 d4", X: "~@4 g3 g2 ~@2",
  Y: "g2 bb2 d3 g3 f2 b2 d3 g3 eb2 c3 bb2 c3 a2 bb2 g2 a2", Z: "f2 a2 c3 f3 f2 a2 c3 eb3 bb2 d3 c3 d3 bb2 c3 a2 bb2",
  AA: "g2 bb2 d3 g3 g2 bb2 d3 f3 c3 d3 eb3 d3 c3 d3 bb2 c3", AB: "a2 bb2 c3 bb2 a2 bb2 g2 a2 f2@4 ~@4",
  AC: "~@3 bb2 f3!2 bb2!2", AD: "f2 f3 eb3 f3 d3 eb3 c3 d3 bb2 d3 g2 bb2 c2 c3 bb2 c3",
  AE: "a3 c4 f3 a3 bb2 bb3 a3 bb3 g3 bb3 eb3 g3 a2 a3 g3 a3", AF: "f3 a3 d3 f3 g2 g3 f3 g3 eb3 g3 c3 eb3 f2 f3 eb3 f3",
  AG: "bb2@4 ~@2 f3 e3 f3@2 f2@2 ~@2 f3 e3", AH: "f3@2 bb2@2 ~@2 f3 e3 f3@2 f2@2 ~ f3 eb3 f3",
  AI: "bb2@2 f3@2 ~ f3 eb3 f3 a2@4 bb2@4", AJ: "c3@4 f3@4 ~@4 bb2 d3 c3 bb2", AK: "[~ f2@25 ~@6]/4",
  AL: "d3 g3 f3 eb3 d3 c3 bb2 a2 bb2 d3 c3 bb2 a2 g2 f2 eb2", AM: "d2 f2 g2 f2 eb2 d2 c3 bb2 f2 eb2 d2 c3 bb2!2 a2 bb2",
  AN: "eb2 eb3 d3 eb3 f2 f3 eb3 f3 bb2@4 ~@2 f3 e3", AO: "f3@2 f2@2 ~@2 bb3 a3 bb3@2 bb2@2 ~@2 f3 e3",
  AP: "f3@2 f2@2 ~@2 bb2 a2 bb2!2 c3 d2 eb2 f2 g2 a2",
  AQ: "[bb2 c3 d3 ~ eb3 f3 eb3 f3 ~@2 bb2@32 ~@6, ~@9 f2@2 ~@37]/3",
})).s("gm_harpsichord").gain(0.3)

stack(alto_sax, harpsichord, harpsichord_2)

More by J. S. Bach