Strudelify

Invention in A minor BWV 784

Johann Sebastian Bach

KeyA minorTempo115 bpm
0:00/0:00
// Invention in A minor BWV 784 — Johann Sebastian Bach
// 115 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5650629; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 27 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(115/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · piano
const piano = note("<A B C D@2 E@2 F G H I@2 J@4 K L M N O P Q R S@3>".pickRestart({
  A: "~@10 a2@3 ~@2 a3@10 ~ g#3@4 a3@2", B: "e3@2 ~ a3@2 c4@2 b3@2 ~ e3@2 b3@2 d4@2 ~ c4@2 ~@2 a3@2 ~@3 g#3@2 ~@2 e3@2",
  C: "~@2 a3@2 ~ e3@2 a3@2 c4@2 b3@2 e3@2 ~ b3@2 d4@2 c4@2 ~@2 a3@2 ~@3 c4@2 ~",
  D: "[~ a3@2 ~@2 d4@2 a3@2 f3@2 a3@2 d3@2 f3@2 a2@2 ~ c3@2 b2@2 ~@2 d3@2 ~@3 g3@2 ~@2 b3@6 ~ g3@2 e3@2 g3@2 c3@2 e3@2 g2@2 b2@2 ~ a2@2 ~@2 c3@2 ~]/2",
  E: "[~ d3@2 f3@2 ~ b2@2 d3@2 g2@2 ~@2 b2@2 ~@2 c3@2 e3@2 a2@2 c3@2 f2@2 ~@3 d2@2 ~@2 g2@2 g3@2 f3@2 g3@2 c3@2 g3@2 c4@2 ~@5 g3@2 d4@2 f4@2 e4@2 ~@2]/2",
  F: "c4@2 ~@2 b3@2 ~@2 g3@2 ~@3 c4@2 g3@2 c4@2 e4@2 d4@2 g3@2 ~ d4@2 f4@2 e4@2",
  G: "~@2 c4@2 ~@13 g4@2 e4@2 g4@2 c4@2 e4@2 ~ g3@2 b3@2", H: "a3 ~ c4 ~ e4 ~ g4 ~ f#4 a4 d4 f#4 a3 d4 f#3 a3",
  I: "[g3@2 ~@3 b3@2 ~@2 d4@2 ~@2 f#4@2 ~@2 e4@2 g4@2 c4@2 e4@2 g3@2 c4@2 e3@2 g3@2 f#3@2 ~@2 a3@2 ~@2 b3@2 ~@2 d#4@2 ~@5 e4@2 c4@2 e4@2 a3@2 c4@2 e4@2]/2",
  J: "[g4@2 f#4@2 d4@2 b3@2 d4@2 g3@2 b3@2 d4@2 f#4@2 e4@2 c4@2 a3@2 c4@2 f#3@2 a3@2 c4@6 b3@2 c4@2 a3@2 b3@2 ~@3 b2@2 ~@2 e3@2 e4@2 b3@2 g3@2 e3@2 b2@2 g2@2 b2@2 ~ e2@2 ~@2 e3@2 ~@2 g3@2 ~@2 a#3@2 ~@3 c#3@4 ~@6 g4@2 f4@2 e4@2 d4@2 ~@2 d3@2 ~@2 f3@2 ~@2 g#3@2 ~@2 b2@4 ~@7]/4",
  K: "f4 e4 d4 c4 ~ c3 ~ e3 ~ f#3 ~ a2@2 ~@3", L: "~ e4@2 d#4@2 c#4@2 b3@2 ~@2 b2@2 ~@2 d3@2 ~@2 f3@2 ~@2 g#2@4 ~@5",
  M: "~ d4@2 c4@2 b3@2 ~ c4@2 ~@2 a3@2 ~@2 g#3@2 ~@2 e3@2 ~@2 a3@2 e3@2 a3@2 c4@2",
  N: "b3 e3 b3 d4 c4 e4 a4 e4 c4 e4 a3 c4 f#3 a3 c4 a3",
  O: "f#3@2 a3@2 d#3@2 f#3@2 e3@2 ~@3 g#3@2 ~@2 b3@2 ~@2 g#3@2 ~@2 e3@2 ~@2 b2@2 ~",
  P: "~ g#2@2 ~@2 e2@2 ~@2 a2@2 ~@2 c3@2 ~@2 e3@2 ~@2 c3@2 ~@2 a2@2 ~@2 c3@2 ~",
  Q: "~ d#2@4 ~@7 b3@2 g#3@2 e3@2 d3@2 b3@2 g#3@2 d3@2 c3@2 ~@2 e3@2", R: "~ g#2 ~ e3 ~ a2 ~ f#3 ~ b2 ~ g#3 ~ c3 ~ a3",
  S: "[~@2 d3@2 ~@2 a#3@2 ~@2 g#3@2 ~@2 f3@2 ~@2 d3@2 ~@2 b2@2 ~@3 g#2@2 ~@2 a2@2 ~@2 d2@2 ~@2 e2@2 ~@2 f2@2 ~@2 d#2@2 ~@2 e2@2 ~@2 e3@2 ~@3 a2@18 ~@18]/3",
})).s("gm_piano").gain(0.3)

stack(piano)

More by Johann Sebastian Bach