Strudelify

Herz und Mund und Tat und Leben BWV 147

Johan Sebastian Bach

KeyG majorTempo65 bpm
0:00/0:00
// Herz und Mund und Tat und Leben BWV 147 — Johan Sebastian Bach
// 65 bpm, 3/4, key G major. 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/5918616; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 73 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(65/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.

// chords · piano
const piano = 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 R M N O P Q B C D E F G S T U V W X Y Z AA AB AC AD AE N AF AG AH
  M N O P AI AJ@3 AK B C D E F AL@4
>`.pickRestart({
  A: "~@5 g4@5 ~ a4@5 b4@5 d5@5 ~ c5@5 c5@5 e5@5 ~ d5@5, g2@15 ~ g3@15 ~ e3@15 ~",
  B: "d5@5 g5@5 ~ f#5@5 g5@5 d5@5 ~ b4@5 g4@5 a4@5 ~ b4@5, b2@15 ~ e3@15 ~ e2@15 ~",
  C: "c5@5 d5@5 ~ e5@5 d5@5 c5@5 ~ b4@5 a4@5 b4@5 ~ g4@5, a2@15 ~ b2@15 ~ c3@15 ~",
  D: "f#4@5 g4@5 ~ a4@5 d4@5 f#4@5 ~ a4@5 c5@5 b4@5 ~ a4@5, d3@15 ~ f#3@15 ~ d3@15 ~",
  E: "b4@5 g4@5 ~ a4@5 b4@5 d5@5 ~ c5@5 c5@5 e5@5 ~ d5@5, g3@15 ~ e3@15 ~ c3@15 ~",
  F: "d5@5 g5@5 ~ f#5@5 g5@5 d5@5 ~ b4@5 g4@5 a4@5 ~ b4@5, b2@15 ~ e3@15 ~ d3@15 ~",
  G: "e4@5 d5@5 ~ c5@5 b4@5 a4@5 ~ g4@5 d4@5 g4@5 ~ f#4@5, c3@15 ~ c#3@15 ~ d3@15 ~",
  H: "g4@5 b4@5 ~ d5@5 g5@5 d5@5 ~ [g3,b4]@5 g4@5 b4@5 ~ [b2,d5]@5, g2@25 ~@7 d3@10 ~@6", // G Bm
  I: "g3@15 ~ f#3@15 ~ [e3,c4]@15 ~, b3@5 ~@3", J: "f#3@15 ~ e3@15 ~ [d3,d4]@15 ~, d4@5 ~@3",
  K: "e3@15 ~ f#3@15 ~ [g3,b3]@15 ~, c4@5 ~@3", // G
  L: "a3@5 d4@5 ~ e4@5 f#4@5 a4@5 ~ [d3,g4]@5 a4@5 c5@5 ~ [d3,b4]@5, d3@25 ~@7 d3@10 ~@6", // G5 G
  M: "c5@5 a4@5 ~ f#4@5 d4@5 f#4@5 ~ [d3,a4]@5 c5@5 b4@5 ~ [d3,a4]@5, d2@25 ~@7 d3@10 ~@6", // D5
  N: "b4@5 g4@5 ~ a4@5 b4@5 d5@5 ~ c5@5 c5@5 e5@5 ~ d5@5, g3@15 ~ f#3@15 ~ e3@15 ~",
  O: "d5@5 g5@5 ~ f#5@5 g5@5 d5@5 ~ b4@5 g4@5 a4@5 ~ b4@5, b3@15 ~ b2@15 ~ e3@15 ~",
  P: "e4@5 ~@3 b3@3 ~ c4@4 b4@5 a4@5 ~ g4@5 d4@5 g4@5 ~ f#4@5, a3@8 ~@8 b3@15 ~ a3@15 ~, ~@5 d5@5 ~ c5@5 ~@32",
  Q: "g4@5 b4@5 ~ a4@5 b4@5 d5@5 ~ c5@5 c5@5 e5@5 ~ d5@5, g3@30 ~@2 c3@15 ~",
  R: "~@5 d4@5 ~ e4@5 f#4@5 a4@5 ~ [d3,g4]@5 a4@5 c5@5 ~ [d3,b4]@5, d3@25 ~@7 d3@10 ~@6", // G5 G
  S: "g4@5 b4@5 ~ d5@5 g5@5 d5@5 ~ [g3,b4]@5 g4@5 b4@5 ~ [e3,c#5]@5, g2@25 ~@7 f#3@10 ~@6", // G C#m
  T: "d5@5 d4@5 ~ e4@5 f#4@5 a4@5 ~ g#4@5 g#4@5 b4@5 ~ a4@5, d3@15 ~ c3@15 ~ b2@15 ~",
  U: "a4@5 c5@5 ~ b4@5 c5@5 ~@6 e4@5 c4@5 ~@6 e4@5, a2@15 ~ a3@8 g3@8 f3@8 e3@8, ~@21 a4@5 ~@11 d4@5 ~@6",
  V: "f4@5 d5@5 ~ c5@5 d5@5 ~@3 c4@3 ~ d4@4 e4@5 f#4@5 ~ g#4@5, b3@15 ~ b3@8 ~@8 b3@15 ~, ~@21 b4@5 ~ g#4@5 ~@16",
  W: "a4@5 c5@5 ~ b4@5 c5@5 e5@5 ~ d5@5 d5@5 f5@5 ~ e5@5, a2@15 ~ a2@15 ~ f2@15 ~",
  X: "e5@5 a5@5 ~ g#5@5 a5@5 e5@5 ~ c5@5 a4@5 b4@5 ~ c5@5, c3@15 ~ f3@15 ~ e3@15 ~",
  Y: "f5@5 e5@5 ~ d5@5 c5@5 b4@5 ~ a4@5 e4@5 a4@5 ~ g#4@5, d3@15 ~ d#3@15 ~ e3@15 ~",
  Z: "a4@5 c5@5 ~ e5@5 a2@15 ~ b3@15 ~, a3@15 ~ a5@8 ~@24",
  AA: "~@5 c5@5 ~ d5@5 e5@5 g5@5 ~ f5@5 g5@5 a#5@5 ~ a5@5, c4@15 ~ a3@15 ~ e3@15 ~",
  AB: "a5@5 c6@5 ~ b5@5 c6@5 ~@3 e4@3 ~ f4@4 d5@5 e5@5 ~ f5@5, d4@21 a5@5 ~ f5@5 d4@15 ~",
  AC: "e5@5 g5@5 ~ f5@5 g5@5 e5@5 ~ c5@5 g4@5 a4@5 ~ a#4@5, e3@30 ~@2 c3@15 ~",
  AD: "a4@5 c5@5 ~ b4@5 c5@5 a4@5 ~ f4@5 d4@5 e4@5 ~ f4@5, f3@15 ~ d3@15 ~ g3@15 ~",
  AE: "e4@5 c4@5 ~ d4@5 e4@5 g4@5 ~ [c3,f#4]@5 g4@5 b4@5 ~ [d3,a4]@5, c3@25 ~@7 b2@10 ~@6", // Cdim D5
  AF: "d5@5 g5@5 ~ f#5@5 g5@5 d5@5 ~ b4@5 g4@5 a4@5 ~ b4@5, b3@15 ~ b2@15 ~ b3@15 ~",
  AG: "c5@5 d5@5 ~ e5@5 d5@5 c5@5 ~ b4@5 a4@5 b4@5 ~ g4@5, c4@15 ~ g3@15 ~ e3@15 ~",
  AH: "f#4@5 d4@5 ~ e4@5 f#4@5 a4@5 ~ g4@5 a4@5 c5@5 ~ b4@5, d3@15 ~ d3@15 ~ d3@15 ~",
  AI: "g4@5 b4@5 ~ d5@5 g5@5 d5@5 ~ b4@5 g4@5 b4@5 ~ d5@5, g3@23 ~",
  AJ: "[f5@5 d5@5 ~ b4@5 g4@5 b4@5 ~ d5@5 e5@5 c5@5 ~ a4@5 f#4@5 a4@5 ~ c5@5 d5@5 b4@5 ~ g4@5 e4@5 g4@5 ~ b4@5 c5@5 a4@5 ~ f#4@5 d4@5 f#4@5 ~ a4@5 c5@5 b4@5 ~ a4@5, [g1,g2]@61 ~@3 [g1,g2]@76 ~@4]/3", // G
  AK: "b4@5 g4@5 ~ a4@5 b4@5 d5@5 ~ c5@5 c5@5 e5@5 ~ d5@5, g2@15 ~ g3@15 ~ e3@15 ~",
  AL: "[e4@5 ~ d5@5 ~ c5@5 b4@7 a4@7 g4@7 d4@11 g4@11 ~ f#4@11 [g2,d3,b3,d4,g4]@96 ~@24, c3@16 ~ c#3@20 ~ d3@32 ~@122]/4", // G
})).s("gm_piano").gain(0.28)

// bass · acoustic bass
const bass = note(`<
  A B C D E F G H I J K L M I N O P B C D E F G I J K L M I N Q P B C D E F G R S T U V W X Y Z AA AB AA AC I AD AE AF M
  I N Q AG AH@3 A B C D E F AI@4
>`.pickRestart({
  A: "g1 g2 e2", B: "b1 e2 e1", C: "a1 b1 c2", D: "d2 f#2 d2", E: "g2 e2 c2", F: "b1 e2 d2", G: "c2 c#2 d2",
  H: "g1@27 g2@5 d2@11 b1@5", I: "g2 f#2 e2", J: "f#2 e2 d2", K: "e2 f#2 g2", L: "d2@27 d2@5 d2@11 d2@5",
  M: "d1@27 d2@5 d2@11 d2@5", N: "b2 b1 e2", O: "e2@2 d2", P: "g2@2 c2", Q: "e2 d2@2", R: "g1@27 g2@5 f#2@11 e2@5",
  S: "d2 c2 b1", T: "c3@2 c3", U: "d2 b1 e2", V: "a1!2 f1", W: "c2 f2 e2", X: "d2 d#2 e2", Y: "a2 a1 b2", Z: "c3 a2 e2",
  AA: "f2 d2 g2", AB: "e2@2 c2", AC: "c2@27 c2@5 b1@11 d2@5", AD: "b2 b1 b2", AE: "c3 g2 e2", AF: "d2!3", AG: "g2",
  AH: "[g1@4 g1@5]/3", AI: "[c2@17 c#2@21 d2@33 ~ g1@101 ~@19]/4",
})).s("gm_acoustic_bass").gain(0.15)

stack(piano, bass)

More by Johan Sebastian Bach