Strudelify

Partita in A minor BWV 827

J. S. Bach

KeyA minorTempo198 bpm
0:00/0:00
// Partita in A minor BWV 827 — J. S. Bach
// 198 bpm, 12/8, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/8 at bar 1, 12/8 at bar 2, 11/8 at bar 24, 1/8 at bar 25, ...) are rendered on a constant 12/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/1753076; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 101 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(198/6)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · viola
const viola = note(`<
  ~@2 A B C D E F G H I J K L M N O P Q@2 R S T U V ~ A B C D E F G H I J K L M N O P Q@2 R S T U V ~ W X Y Z AA AB AC
  AD AE AF AG@6 AH AI AJ AK AL AM AN AO AP ~ W X Y Z AA AB AC AD AE AF AG@6 AH AI AJ AK AL AM AN AO AP
>`.pickRestart({
  A: "~@22 a3 ~", B: "e3 g#3 b3 e4 d#4 e4 f#3 a3 b3 e4 d#4 e4", C: "g3 b3 d#4 e4 f#4 g4 a3 g4 e4 f4 a4 e4",
  D: "d#4@4 c#4 d#4 e4@4 b3 d4", E: "c#4@4 b3 c#4 d4@4 a3 c4", F: "b3@2 c4 b3@2 a3 g#3@2 b3 g#3@3",
  G: "a3@2 g#4 a4@5 g#4 b4@3", H: "b4 a4 b4 c5@4 a4 c#5 d5 f5 c5", I: "b4@6 ~ a4 e4 c4 e4 a4",
  J: "d4 ~@6 g4 d4 b3 d4 g4", K: "c4 ~@6 f#4 e4 d#4 e4 f#4", L: "b3 ~@5 g4@4 f#4 g4", M: "a4@4 b4 c5 b4@4 d#5 e5",
  N: "c5@7 b4 a4 b4 f#5 a4", O: "g4@7 a4 g4 a4 e5 g4", P: "f4@7 g4 f4 g4 d5 f4",
  Q: "[e4@8 a3 d4@4 f4 a4 g#4 b4 a4 b4@2 ~@4]/2", R: "~@3 e4@3 f4@2 e4 d4@3", S: "e4@2 b3 c4@2 e4 a3@3 d4@3",
  T: "d4 g#3 b3 e4 g#4 e4 a4@2 ~@4", U: "~ f3 a3 d4 f4 d4 g4@2 ~@4", V: "~@4 c5@2 b4@2 a4@5 c5 b4 a4 g#4 f#4 e4@4 ~@2",
  W: "~@22 e4 ~", X: "a4 e4 c4 a3 g#3 a3 g4 e4 c#4 a3 g#3 a3", Y: "f4 d4 a#3 a3 c#4 d4 a#3 g3 e3 c#3 a3 g3",
  Z: "f3 ~@6 f#3 g3 b3 d4 f3", AA: "e3 ~@6 e3 f3 a3 c4 e3", AB: "d3 ~@6 d3 e3 g#3 b3 d3",
  AC: "c3 e3 f3 a3 c4 e3 d3 f#3 g3 b3 d4 f3", AD: "e3 g#3 a3 c4 e4 g3 f3 a3 a#3 d4 f4 a3", AE: "g#3 a3@2 g#3",
  AF: "a3 ~@2 b3",
  AG: "[b3 c3 e3 a3 b3 c4 d4 a3 b3 f#3 g3 a3@2 b3 d3 g3 a3 b3 c4 g3 a3 e3 f#3 g3@2 a3 c3 f#3 g3 a3 b3 f#3 g3 d#3 e3 f#3@2 e4 b3 g3 f#3 g3 ~ e4 d4 c#4 b3 c#4@2 d4 a3 f#3 f3 f#3 ~ d4 c#4 b3 a#3 b3@2 c#4 a#3 e3 d#3 e3 e4 c#4 b3 a#3 g#3 a#3]/6",
  AH: "f#3 ~ b3 ~", AI: "b3@4 ~@18 b4 ~", AJ: "e5 b4 g4 e4 d#4 e4 d5 b4 g#4 e4 d#4 e4",
  AK: "c5 a4 f4 e4 g#4 a4 f4 d4 b3 g#3 e4 d4", AL: "c4@2 ~@6 b4@2 c5@2 [c#5,d5] c#5@7 b4@2 c#5@2",
  AM: "d5@4 e5 f5 e5@4 c#5 e5", AN: "a4@5 c#5 d5@5 a4", AO: "d5@2 d5 d5@2 b4 b4@2 g#4 g#4@2 g#4",
  AP: "a4@10 g#4@2 a4 f4 e4 d4 c#4 b3 a3@4 ~@2",
})).s("gm_viola").gain(0.3)

// other · cello · "Violoncello"
const cello = note(`<
  ~@7 A B C D E F G H I J K L M N O P Q R ~@6 A B C D E F G H I J K L M N O P Q S T U V W X@3 Y Z@2 AA AB AC AD AE AF AG
  AH AI AJ AK AL AM AN AO AP T U V W X@3 Y Z@2 AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AQ
>`.pickRestart({
  A: "~@11 e3", B: "a2 c3 e3 a3 g#3 a3 b2 d3 e3 a3 g#3 a3", C: "c3 e3 g#3 a3 b3 c4 d3 c4 a3 a#3 d4 a3",
  D: "g#3@2 b3 g#3@2 e3 a2 c3 e3 a3 c4 a3", E: "f#3 a3 d4 d3 f#3 a3 g2 b2 d3 g3 b3 g3",
  F: "e3 g3 c4 c3 e3 g3 f#2 a2 c3 f#3 a3 f#3", G: "d#3 f#3 b3 b2 d#3 f#3 e2 g2 b2 e3 d#3 e3",
  H: "f#2 a2 b2 e3 d#3 e3 g2 b2 d#3 e3 f#3 g3", I: "a2 g3 e3 f3 a3 e3 d#3@4 c#3 d#3",
  J: "e2 g2 b2 e3 g3 e3 c#3@4 b2 c#3", K: "d2 f2 a2 d3 f3 d3 b2@4 a2 b2", L: "c2 e2 g2 c3 e3 c3 f2 a2 c3 f3 a3 f3",
  M: "b2 d3 f3 b3 d4 b3 e3 g#3 b3 e4 g#4 d4", N: "c4@6 d4@2 c4 b3@3", O: "a3@5 g3 f3@6",
  P: "e3@2 ~@4 a2 c3 e3 a3 c4 a3", Q: "d3@2 ~@4 g2 b2 d3 g3 b3 g3", R: "c3@2 a2 f3@2 f2 e2 g#2 b2 e3@2 ~",
  S: "c3@4 a2@2 f3@4 f2@2 e2@2 g#2@2 b2@2 e3@4 b3 ~", T: "e4 b3 g#3 e3 d#3 e3 d4 b3 g#3 e3 d#3 e3",
  U: "c4 a3 f3 e3 g#3 a3 f3 d3 b2 g#2 e3 d3", V: "c3@4 b2 c3 c#3@4 b2 c#3", W: "d3@4 e3 f3 g2 ~@2 a2 ~@2",
  X: "[d2 ~ a3@2 f3@2 d3@2 a2@2 c3@2 b2@14 g3@2 e3@2 c3@2 g#2@2 b2@2 a2@14 f3@2 d3@2 b2@2 f#2@2 a2@2 g#2@8 e2@2 g#2@2]/3",
  Y: "a2@4 f2 a2 b2@4 g2 b2", Z: "[c3@4 a2 c#3 d3@9 c3@3 b2@3 e3@3]/2", AA: "a2 c3 d3 e3", AB: "a2 ~@3", AC: "g2 ~@3",
  AD: "f#2 ~@3", AE: "e2 g2 b2 e3 d#3 e3 a2 c#3 e3 a3 g#3 a3", AF: "d2 f#2 a2 d3 c#3 d3 g2 b2 d3 g3 f#3 g3",
  AG: "c#2 e2 g2 c#3 b2 c#3 f#2 a#2 c#3 f#3 f3 f#3", AH: "d3@4 c#3 d3 d#3@4 c#3 d#3", AI: "e3@4 f#3 g3 a3 ~@2 b3 ~@2",
  AJ: "e3 ~@11", AK: "~@22 e4 ~", AL: "a4 e4 c4 a3 g#3 a3 g4 e4 c#4 a3 g#3 a3",
  AM: "f4 d4 a#3 a3 c#4 d4 a#3 g3 e3 c#3 a3 g3", AN: "f3 a3 c#4 d4 a3 f3 d3 f3 g#3 a3 f3 d3",
  AO: "b2 d3 g#3 a2 d3 f3 g#2 b2 d3 f3 e3 d3", AP: "c3@2 b2@2 a2@2 e3@4 e2@2 a2@2 c#3@2 e3@2 a3@4 b3 ~",
  AQ: "c3 b2 a2 e3@2 e2 a2 c#3 e3 a3@2 ~",
})).s("gm_cello").gain(0.3)

stack(viola, cello)

More by J. S. Bach