Strudelify

Jesu Joy of Man's Desiring

Johann Sebastian Bach

KeyG majorTempo100 bpm
0:00/0:00
// Jesu Joy of Man's Desiring — Johann Sebastian Bach
// 100 bpm, 9/8, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (9/8 at bar 1, 6/8 at bar 63) are rendered on a constant 9/8 grid of one bar per cycle
// note: duplicate parts dropped: ch 2 "Classical Guitar [Tablature]" acoustic guitar nylon (copy of ch 1 acoustic guitar nylon)
// note: Transcription provider: pdmx. https://musescore.com/score/4981804; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 64 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/4.5)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A B C D E F G H I J K L M I N O A B C D E F G H I J K L M I N O P Q R S T U V W X Y Z AA I AB AC AD AE I N AF AG AH AI
  AJ AK B C AL AK F G AM
>`.pickRestart({
  A: "~@5 g3@5 ~ a3@5 b3@5 d4@5 ~ c4@5 c4@5 e4@5 ~ d4@5, g2 g3 e3",
  B: "d4@5 g4@5 ~ f#4@5 g4@5 d4@5 ~ b3@5 g3@5 a3@5 ~ b3@5, b2 e3 e2",
  C: "c4@5 d4@5 ~ e4@5 d4@5 c4@5 ~ b3@5 a3@5 b3@5 ~ g3@5, a2 b2 c3",
  D: "f#3@5 g3@5 ~ a3@5 d3@5 f#3@5 ~ a3@5 c4@5 b3@5 ~ a3@5, d3 f#2 d3",
  E: "b3@5 g3@5 ~ a3@5 b3@5 d4@5 ~ c4@5 c4@5 e4@5 ~ d4@5, g2 e3 c3",
  F: "d4@5 g4@5 ~ f#4@5 g4@5 d4@5 ~ b3@5 g3@5 a3@5 ~ b3@5, b2 e3 d3",
  G: "e3@5 d4@5 ~ c4@5 b3@5 a3@5 ~ g3@5 ~@5 g3@5 ~ f#3@5, c3 c#3 d3",
  H: "g3@5 b3@5 ~ d4@5 g4@5 d4@5 ~ b3@5 g3@5 b3@5 ~ [b2,d4]@5, g2@16 b2@16 d3@11 ~@5", // Bm
  I: "g2 f#2 [e2,e3,g3,c4], [d3,g3,b3]@2 ~", J: "f#2 e2 [f#2,d3,a3,d4], [d3,a3,d4]@2 ~",
  K: "e2 f#2 [g2,d3,g3,b3], [e3,g3,c4]@2 ~", L: "a3@5 d3@5 ~ e3@5 f#3@5 a3@5 ~ g3@5 a3@5 c4@5 ~ b3@5, f#2 a2 d3",
  M: "c4@5 a3@5 ~ f#3@5 ~@5 f#3@5 ~ a3@5 c4@5 b3@5 ~ a3@5, d3!3", N: "b2 e2 [e3,g3,b3], [d3,g3,d4]@2 ~",
  O: "a3@11 b3@2 c4@3 [d3,b3]@16 [d3,a3]@16, c3 ~@2", P: "d3 c3 [b2,d3,g#3,b3], [f#3,d4]@2 ~",
  Q: "[a2,e3,a3,c4]@2 a3 g3 f3 e3, ~@2 c4", R: "d3@16 ~@11 c4@2 d4@3 [e3,g#3,b3]@11 ~@5, [a3,b3]@7 ~@9, ~ b2 ~",
  S: "a3@5 c4@5 ~ b3@5 c4@5 e4@5 ~ d4@5 d4@5 f4@5 ~ e4@5, a2 f3 d3",
  T: "e4@5 a4@5 ~ g#4@5 a4@5 e4@5 ~ c4@5 a3@5 b3@5 ~ c4@5, c3 f3 e3",
  U: "f4@5 e4@5 ~ d4@5 c4@5 b3@5 ~ a3@5 e3@5 a3@5 ~ g#3@5, d3 d#3 e2",
  V: "a2@5 c3@5 ~ e3@5 a3@16 [b2,d3,g3,d4]@16, [a3,c4] ~@2, e3@11 ~@37", W: "c3 a2 [e3,a#3,c4,e4], [g3,c4,e4]@2 ~",
  X: "f3@16 ~@11 e4@2 f4@3 [b2,f3,g3,d4]@16, [a3,d4]@7 ~@9, ~ d3 ~", // G7 D5
  Y: "[e3,g3,c4]@5 g4@5 ~ f4@5 g4@5 e4@5 ~ c4@5 g3@5 a3@5 ~ a#3@5, c3 e3 c3", // C
  Z: "a3@5 c4@5 ~ b3@5 c4@5 a3@5 ~ f3@5 d3@5 e3@5 ~ f3@5, f3 d3 g2",
  AA: "c3@5 c3@5 ~ d3@5 e3@5 g3@5 ~ f#3@5 g3@5 b3@5 ~ a3@5, e3 c3 b2", AB: "[b2,d3] e3 [e2,b2,g3,d4], [g3,d4]@2 ~",
  AC: "[a2,g3,c4] [b2,d3,g3,b3] c3", AD: "f#2@5 d3@5 ~ e3@5 f#3@5 a3@5 ~ g3@5 a3@5 c4@5 ~ b3@5, a3 a2 d3",
  AE: "c4@5 a3@5 ~@11 f#3@5 ~ a3@5 c4@5 b3@5 ~ a3@5, d3!3, ~@11 f#3@10 ~@27",
  AF: "a3@11 b3@2 c4@3 [d3,b3]@16 [c3,a3]@16, c3 ~@2", // G F
  AG: "g3@5 b3@5 ~ d4@5 g4@5 d4@5 ~ b3@5 g3@5 b3@5 ~ d4@5, g2 b2 g2",
  AH: "f4@5 d4@5 ~ b3@5 g3@5 b3@5 ~ d4@5 e4@5 c4@5 ~ a3@5, d3 b2 c3",
  AI: "f#3@5 a3@5 ~ c4@5 d4@5 b3@5 ~ g3@5 e3@5 g3@5 ~ b3@5, a2 b2 g2",
  AJ: "c4@5 a3@5 ~ f#3@5 d3@5 f#3@5 ~ a3@5 c4@5 b3@5 ~ a3@5, a2 f#2 d3",
  AK: "b3@5 g3@5 ~ a3@5 b3@5 d4@5 ~ c4@5 c4@5 e4@5 ~ d4@5, g2 e2 c3",
  AL: "f#3@5 g3@5 ~ a3@5 ~@5 f#3@5 ~ a3@5 c4@5 b3@5 ~ a3@5, d3!3", AM: "[g2,b2,d3,g3]@2 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.48)

stack(acoustic_guitar_nylon)

More by Johann Sebastian Bach