Strudelify

Herz und Mund und Tat und Leben BWV 147

Johann Sebastian Bach

KeyG majorTempo120 bpm
0:00/0:00
// Herz und Mund und Tat und Leben BWV 147 — Johann Sebastian Bach
// 120 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/55615; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 71 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

// 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 · violin
const violin = note(`<
  A B C D E F G H I J K L M N O P Q B C D E F G I J K L M N O P R B C D E F G H S T U V W X Y Z AA AB AC AD N AE AF AG M
  N O AH AI AJ@2 AK AL B C D E F G AM
>`.pickRestart({
  A: "~@8 g4@5 f#4@3 g4@5 a4@3", B: "b4@5 a4@3 b4@5 g4@3 e4@5 d4@3", C: "e4@5 f#4@3 g4@5 d4@3 e4@5 b3@3",
  D: "a3@5 d4@3 a4@5 g4@3 a4@5 f#4@3", E: "d4@5 f#4@3 g4@5 f#4@3 g4@5 a4@3", F: "b4@5 a4@3 b4@5 g4@3 e4@5 g4@3",
  G: "a4@5 f#4@3 g4@5 e4@3 a3@5 c4@3", H: "b3@5 g4@3 b4@5 d5@3 g5@8", I: "[d4,b4]@2 g4", J: "a4 g4 f#4", K: "g4 d4@2",
  L: "[d4,a4]@8 [d4,a4]@8 f#4@5 g4@3", M: "a4@5 c5@3 a4@5 f#4@3 d4@5 f#4@3", N: "b4@2 c5", O: "d5@2 b4",
  P: "a4@2 b4 c5 b4@4 a4@4", Q: "g4@16 g4@5 a4@3", R: "g4@13 f#4@3 g4@5 a4@3", S: "[d4,a4]@2 [d4,b4]", T: "c5@2 c5",
  U: "b4@6 c5 d5 b4@4", V: "a4@8 a4@8 a4@5 b4@3", W: "c5@5 b4@3 c5@5 a4@3 f4@5 a4@3",
  X: "a4@5 g#4@3 a4@5 f#4@3 b3@5 d4@3", Y: "c5@2 d5", Z: "e5@2 e5", AA: "d5@6 e5 f5 d5@4",
  AB: "c5@8 c5@5 g4@3 e4@5 d4@3", AC: "c4@5 e4@3 f4@5 a4@3 b4@5 d5@3", AD: "c5@5 g4@3 c5@5 a4@3 d5@5 f#4@3",
  AE: "d5@2 d5", AF: "c5 b4@2", AG: "a4@16 f#4@5 g4@3", AH: "a4@2 b4 c5 a4@8", AI: "g4@13 d4@3 g4@5 b4@3",
  AJ: "[d5@5 g4@3 b4@5 b4@3 c5@13 a4@3 b4@13 g4@3]/2", AK: "a4@13 f#4@3 d4@5 f#4@3",
  AL: "g4@5 d4@3 g4@5 f#4@3 g4@5 a4@3", AM: "b3",
})).s("gm_violin").gain(0.3)

// other · violin
const violin_2 = note(`<
  A B C D E F G H I J K L ~ M N O P B C D E F G I J K L ~ M N O P B C D E F G H Q R S T U V W X Y Z AA AB M@2 AC AD ~ M
  N O AE AF@4 B C D E F G AG
>`.pickRestart({
  A: "g3 g4 e4", B: "b3 e4!2", C: "a3 b3 c4", D: "d4 f#4 d4", E: "g4 e4 c4", F: "b3 e4 d4", G: "c4 c#4 d4", H: "g3 ~@2",
  I: "g4@2 e4", J: "a3@2 b3", K: "b3 a3 g3", L: "f#4!2 ~", M: "g4@2 g4", N: "g4 d4 g4", O: "e4@2 f#4 e4 f#4@2",
  P: "b3@2 e4", Q: "f#4@2 g#4", R: "[e4,a4]@2 [f4,a4]", S: "[f4,a4]@2 [e4,g#4]", T: "c4!2 d4", U: "c4 f4 e4",
  V: "d4 d#4 e4", W: "e4@2 g4", X: "g4 c5 g4", Y: "a4@2 b4", Z: "c5!2 c4", AA: "f4 d4 g4", AB: "c4 ~@2",
  AC: "g4 f#4 ~@2 e4@2, ~ g4@2", AD: "f#4@2 ~", AE: "g4@2 ~", AF: "[g3@10 g4 e4]/4", AG: "g3",
})).s("gm_violin").gain(0.3)

// other · cello · "Violoncello"
const cello = note(`<
  A B C D E F G H I J K L M N O P A B C D E F G I J K L M N O P A B C D E F G Q R S T U V W X Y Z AA Z AB A B C L M N O
  P AC AD@4 B C D E F G AC
>`.pickRestart({
  A: "g2 g3 e3", B: "b2 e3 e2", C: "a2 b2 c3", D: "d3 f#3 d3", E: "g3 e3 c3", F: "b2 e3 d3", G: "c3 c#3 d3",
  H: "g2@8 ~@5 g3@3 d3@5 b2@3", I: "g2 f#3 e3", J: "f#3 e3 d3", K: "e3 f#3 g3", L: "d3@8 ~@5 d3@3 d3@5 d3@3",
  M: "d2@8 ~@5 d3@3 d3@5 d3@3", N: "g3 f#3 e3", O: "b3 b2 e3", P: "c3 d3 d2", Q: "g2@8 ~@5 g3@3 f#3@5 e3@3",
  R: "d3 c3 b2", S: "a2@2 a3 g3 f3 e3", T: "d3 b2 e3", U: "a2 f3 d3", V: "c3 f3 e3", W: "d3 d#3 e3", X: "a2 a3 b3",
  Y: "c4 a3 e3", Z: "f3 d3 g3", AA: "c3 e3 c3", AB: "c3@8 ~@5 c3@3 b2@5 d3@3", AC: "g2", AD: "[g2@10 g3 e3]/4",
})).s("gm_cello").gain(0.3)

stack(violin, violin_2, cello)

More by Johann Sebastian Bach