Strudelify

Prelude and Fugue in C minor BWV 847

J. S. Bach

KeyE♭ majorTempo80 bpm
0:00/0:00
// Prelude and Fugue in C minor BWV 847 — J.S. Bach
// 80 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5927159; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 31 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(80/4)

// 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("<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 AD AE>".pickRestart({
  A: "~@2 c5 b4 c5 ~ g4 ~ ab4 ~ c5 b4 c5 ~ d5 ~", B: "g4 ~ c5 b4 c5 ~ d5 ~ f4 g4 ab4@4 g4 f4",
  C: "eb4 c5 b4 a4 g4 f4 eb4 d4 c4 ~ eb5 ~ d5 ~ c5 ~", D: "bb4 ~ a4 ~ bb4 ~ c5 ~ gb4 ~ g4 ~ a4 ~ gb4 ~",
  E: "g4@2 ~@3 c4 d4 eb4 f4 g4 ab4@3 d4 eb4 f4", F: "g4 a4 bb4@3 eb4 f4 g4 ab4 g4 f4 eb4 d4 ~ c5 b4",
  G: "c5@2 ~@8 f5 ~ eb5 ~ d5 ~", H: "~@2 ab4 ~ g4 ~ f4 ~ g4 ~ f4 eb4 f4 ~ d4 ~",
  I: "g4@2 ~@4 b4 ~ c5 ~ c5 b4 c5 ~ g4 ~", J: "ab4@2 ~@4 a4 ~ bb4 ~ bb4 a4 bb4 ~ f4 ~",
  K: "g4@2 ~@4 g4 ~ ab4 ~ ab4 ~ g4 ~ f4 ~", L: "~@2 ab3 ~ bb3 ~ c4 ~@3 ab3 g3 ab3 ~ f3 ~",
  M: "bb3 ~ c4 ~ bb3 ~ ab3 ~ bb3 ~ g3 ~ f3 ~ eb3 ~", N: "f3 ~ db4 ~ c4 ~ bb3 ~ c4 ~ ab3 ~ g3 ~ f3 ~",
  O: "g3 ~ g4 gb4 g4 ~ c4 ~ eb4 ~ g4 gb4 g4 ~ a4 ~", P: "d4 ~ g4 gb4 g4 ~ a4 ~ c4 d4 eb4@2 ~@2 d4 c4",
  Q: "bb3 ~@4 d4 e4 gb4 g4 a4 bb4@3 e4 f4 g4", R: "a4 bb4 c5@3 gb4 g4 a4 bb4 ~ eb4 d4 eb4 ~ g3 ~",
  S: "ab3 ~ f4 eb4 f4 ~ a3 ~ bb3 ~ g4 f4 g4 ~ b3 ~", T: "c4 f4 eb4 d4 c4 bb3 ab3 g3 f3@2 ab4@2 g4@2 f4@2",
  U: "eb4 d4 eb4 f4 b3 c4 d4 b3", V: "c4@4 ~@2 e4@2 f4@2 f4 e4 f4@2 c4@2",
  W: "d4@4 ~@2 d4@2 eb4@2 [eb4,f4] [d4,eb4] eb4@2 bb3@2", X: "c4@8 c4@2 d4 eb4 f4 eb4 f4 d4", Y: "b3 ~@2 b3 c4 ~@2 eb4",
  Z: "d4 ~@2 f4!2 ~@2 f4", AA: "eb4 ~ ab4 ~ g4 ~ f4 ~ eb4 ~ d4 ~ eb4 ~ f4 ~", AB: "b3 c4 d4 b3@2 c4 ~ c4",
  AC: "f4 d4 eb4 c4@3 b3@2 c4@4 ~@4", AD: "f4@2 ~@4 [f4,a4]@2 f4 ~ eb4 d4 eb4 ~ [f4,a4]@2",
  AE: "[b3,d4] ~ [b3,d4] ~ g3@4", // Bm
})).s("gm_viola").gain(0.3)

// other · cello · "Violoncello"
const cello = note("<~@6 A B C D E F G H I J K L M N O P Q R S T U V W@3>".pickRestart({
  A: "~@2 c4 b3 c4 ~ g3 ~ ab3 ~ c4 b3 c4 ~ d4 ~", B: "g3 ~ c4 b3 c4 ~ d4 ~ f3 g3 ab3@4 g3 f3",
  C: "eb3 c4 b3 a3 g3 f3 eb3 d3 c3 d3 eb3 d3 c3 bb2 ab2 g2", D: "f2 bb3 ab3 g3 f3 eb3 d3 c3 bb2 c3 d3 c3 bb2 ab2 g2 f2",
  E: "eb2 ab3 g3 f3 eb3 db3 c3 bb2 ab2 ~ c4 ~ bb3 ~ ab3 ~", F: "g3 ~ f3 ~ g3 ~ ab3 ~ d3 ~ eb3 ~ f3 ~ d3 ~",
  G: "eb3 ~ ab3 ~ g3 ~ f3 ~ g3 ~ eb3 ~ d3 ~ c3 ~", H: "d3 ~ bb3 ~ ab3 ~ g3 ~ ab3 ~ f3 ~ eb3 ~ d3 ~",
  I: "eb3 ~@9 c3 ~ bb2 ~ a2 ~", J: "~@2 eb3 ~ d3 ~ c3 ~ d3 ~ c3 bb2 c3 ~ d3 ~",
  K: "g2 ~ bb3 a3 bb3 ~ d3 ~ eb3 ~ c4 bb3 c4 ~ e3 ~", L: "f3 ~ d4 c4 d4 ~ gb3 ~ g3@4 ~ g2 a2 b2",
  M: "c3 d3 eb3@3 a2 bb2 c3 d3 eb3 f3@3 b2 c3 d3", N: "eb3@2 ~@4 e3@2 f3@2 f2 ~ eb2 ~ d2 ~",
  O: "~@2 ab2 ~ g2 ~ f2 ~ g2 ~ f2 eb2 f2 ~ g2 ~", P: "c3 d3 eb3 d3 c3 bb2 ab2 g2 f2 bb3 ab3 g3 f3 eb3 d3 c3",
  Q: "bb2 c3 d3 c3 bb2 ab2 g2 f2 eb2 ab3 g3 f3 eb3 d3 c3 bb2",
  R: "ab2 bb2 c3 bb2 ab2 g2 f2 eb2 d2 g3 f3 eb3 d3 c3 b2 a2", S: "g2@4 ~@5 g2 a2 b2 c3 d3 eb3 f3",
  T: "g3 f3 ab3 g3 f3 eb3 d3 c3 b2 ~ c3 b2 c3 ~ g2 ~", U: "ab2 ~ c3 b2 c3 ~ d3 ~ g2 ~ c3 b2 c3 ~ d3 ~",
  V: "f2 g2 ab2@4 g2 f2 eb2@4 ~@2 eb3@2", W: "[d3 c3 g3 g2 [c2,c3]@20]/3",
})).s("gm_cello").gain(0.3)

stack(viola, cello)

More by J. S. Bach