Strudelify

Jesus Alegria dos homens

J. S. Bach

KeyG majorTempo60 bpm
0:00/0:00
// Jesus Alegria dos homens — JS Bach
// 60 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/5908885; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 132 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/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 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 AM AN@3
>`.pickRestart({
  A: "~@16 g4@11 f#4@5 g4@11 a4@5", B: "b4@11 a4@5 b4@11 g4@5 e4@11 d4@5", C: "e4@11 f#4@5 g4@11 d4@5 e4@11 b3@5",
  D: "a3@11 d4@5 a4@11 g4@5 a4@11 f#4@5", E: "d4@11 f#4@5 g4@11 f#4@5 g4@11 a4@5",
  F: "b4@11 a4@5 b4@11 g4@5 e4@11 g4@5", G: "a4@11 f#4@5 g4@11 e4@5 a3@11 c4@5", H: "b3@11 g4@5 b4@11 d5@5 g5@16",
  I: "[d4,b4]@2 g4", J: "a4 g4 f#4", K: "g4 d4@2", L: "[d4,a4]@16 [d4,a4]@16 f#4@11 g4@5",
  M: "a4@11 c5@5 a4@11 f#4@5 d4@11 f#4@5", N: "b4@2 c5", O: "d5@2 b4", P: "a4@2 b4 c5 b4@4 a4@4", Q: "g4@32 g4@11 a4@5",
  R: "g4@27 f#4@5 g4@11 a4@5", S: "[d4,a4]@2 [d4,b4]", T: "c5@2 c5", U: "b4@6 c5 d5 b4@4", V: "a4@16 a4@16 a4@11 b4@5",
  W: "c5@11 b4@5 c5@11 a4@5 f4@11 a4@5", X: "a4@11 g#4@5 a4@11 f#4@5 b3@11 d4@5", Y: "c5@2 d5", Z: "e5@2 e5",
  AA: "d5@6 e5 f5 d5@4", AB: "c5@16 c5@11 g4@5 e4@11 d4@5", AC: "c4@11 e4@5 f4@11 a4@5 b4@11 d5@5",
  AD: "c5@11 g4@5 c5@11 a4@5 d5@11 f#4@5", AE: "d5@2 d5", AF: "c5 b4@2", AG: "a4@32 f#4@11 g4@5", AH: "a4@2 b4 c5 a4@8",
  AI: "g4@27 d4@5 g4@11 b4@5", AJ: "[d5@11 g4@5 b4@11 b4@5 c5@27 a4@5 b4@27 g4@5]/2", AK: "a4@27 f#4@5 d4@11 f#4@5",
  AL: "g4@11 d4@5 g4@11 f#4@5 g4@11 a4@5", AM: "a4@10 f#4@5 g4@11 ~ e4@6 a3@15", AN: "[c4@5 b3@48 ~@19]/3",
})).s("gm_violin").gain(0.25)

// other · viola
const viola = 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 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 AG@4
>`.pickRestart({
  A: "g3 g4 e4", B: "b3 e4 e3", 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#3!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: "[c4@15 c#4@17 ~ d4@25 g3@96 ~@38]/4",
})).s("gm_viola").gain(0.4)

// 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 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 AE@4
>`.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@16 ~@11 g3@5 d3@11 b2@5", I: "g2 f#3 e3", J: "f#3 e3 d3", K: "e3 f#3 g3", L: "d3@16 ~@11 d3@5 d3@11 d3@5",
  M: "d2@16 ~@11 d3@5 d3@11 d3@5", N: "g3 f#3 e3", O: "b3 b2 e3", P: "c3 d3 d2", Q: "g2@16 ~@11 g3@5 f#3@11 e3@5",
  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@16 ~@11 c3@5 b2@11 d3@5", AC: "g2", AD: "[g2@10 g3 e3]/4",
  AE: "[c3@15 c#3@17 ~ d3@25 g2@96 ~@38]/4",
})).s("gm_cello").gain(0.26)

stack(violin, viola, cello)

More by J. S. Bach