Strudelify

Nun komm der Heiden Heiland BWV 661

Johann Sebastian Bach

KeyF majorTempo112 bpm
0:00/0:00
// Nun komm der Heiden Heiland BWV 661 — Johann Sebastian Bach
// 112 bpm, 2/2, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 1 "Orgel" slap bass 1 (copy of ch 2 "Orgel" synth brass 1); ch 6 "Orgel" slap bass 1 (copy of ch 7 "Orgel" synth brass 1); ch 3 "Orgel" synth choir (copy of ch 2 "Orgel" synth brass 1); ch 8 "Orgel" synth choir (copy of ch 7 "Orgel" synth brass 1); ch 5 "Orgel" shanai (copy of ch 4 "Orgel" woodblock)
// note: Transcription provider: pdmx. https://musescore.com/score/6177584; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 94 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(112/4)

// 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 · synth brass 1 · "Orgel"
const synth_brass_1 = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE@2 AF@8 AG AH AI AJ AK AL AM AN@2 AO AP AQ AR AS AT
  AU AV AW@3 AX AY AZ@2 BA BB BC BD BE BF BG BH BI@2 BJ@2 BK BL@3 BM BN BO@2 BP BQ AC AD BR@6
>`.pickRestart({
  A: "g4 gb4 g4 d4 d5 a4 bb4 g4", B: "gb4 e4 gb4 d4 d5 a4 bb4 g4", C: "eb5 a4 bb4 g4 gb4 d5 a4 c5",
  D: "d4 c4 d4 g3 g4 e4 f4 d4, bb4 d5 db5 d5", E: "db4 b3 [db4,a5] a3 a4 e4 [f4,d5] d4, e5 ~ db5 ~",
  F: "bb4 e4 [f4,a5] [d4,bb5] [db4,a5] [a4,f5] [e4,g5] [g4,e5], g5 ~@3", // F Gm Gbm Dm Em C
  G: "d5 e5 [d5,f5] g5 [d4,f5] eb5 d5 c5, f4 ~@2 f4", H: "g4 a4 [b4,g5] c5 [g4,b4] a4 g4 f4, b4 ~@2 b4",
  I: "c5 d5 [c5,eb5] f5 [c4,eb5] d5 c5 bb4, eb4 ~@2 eb4", J: "f4 g4 [a4,f5] bb4 [f4,a4] g4 f4 eb4, a4 ~@2 a4",
  K: "bb4 c5 [bb4,d5] eb5 [bb3,d5] c5 bb4 a4, d4 ~@2 d4", L: "g4 bb4 c5 d5 c5 bb4 a4 g4, eb4 a3 bb3 c4",
  M: "d4 e4 [gb4,d5] g4 [d4,gb4] e4 d4 c4, gb4 ~@2 gb4", N: "bb3 d4 [g4,eb5] a4 [g4,a4] gb4 [e4,d5] gb4, g4 ~@3",
  O: "g4@2 d4 g4 [gb4,a4]@2 [g4,d5]@2, bb4 ~", P: "[a4,c5]@4 d5@3 ~ gb4@4 [g4,bb4]@3 ~",
  Q: "[gb4,c5]@2 d5 eb5 d5 bb4 [c5,gb5] a4", R: "g5 a5 bb5 c6 bb5 a5 [d4,g5] f5, d4 ~@3",
  S: "[g4,eb5]@4 c6@3 ~ c5@3 ~ [g4,e5]@4", T: "f5 g5 a5 bb5 a5 g5 [c4,f5] eb5, c5 ~@3",
  U: "[f4,d5]@4 bb5@3 ~ bb4@3 ~ [f4,d5]@4", V: "[bb4,eb5]@4 g5@3 ~ c5@3 ~ [bb4,e5]@4",
  W: "[c5,f5]@4 a5@3 ~ d5@3 ~ [c5,gb5]@4", X: "d5 c5 d5 g4 g5 d5 eb5 c5, g5 ~",
  Y: "[bb4,d5] [a4,c5] [bb4,d5] [g4,eb5] d5 bb4 c5 a4, ~@2 a4 d4", Z: "~ gb4 g4 d4 d5 a4 [bb4,eb5] g4, g4 bb4 c5 ~",
  AA: "eb5 a4 bb4 g4 gb4 d5 a4 c5, gb4 ~@3", AB: "d5 c5 d5 g4 g5 d5 eb5 c5, bb4 ~@3", AC: "b4 a4 b4 g4 g5 d5 eb5 c5",
  AD: "ab5 d5 eb5 c5 b4 g5 d5 f5",
  AE: "[~@2 b4@2 c5@2 d5@2 c5@2 bb4@2 a4@2 g4@2 a4@4 [a4,c5]@3 ~ [f4,a4]@3 ~ [a4,c5]@4, eb5@5 ~@3]/2", // Am F Am
  AF: "[bb4@2 a4@2 bb4@2 c5@2 bb4@2 a4@2 g4@2 gb4@2 g4@4 [g4,bb4]@3 ~ [eb4,g4]@3 ~ bb4@4 ~@4 gb4@2 e4@2 gb4@4 g4@4 a4@2 g4@2 gb4@2 e4@2 ~@2 a4@2 bb4@2 c5@2 bb4@2 [c4,a4]@2 [bb3,g4]@2 [a3,gb4]@2 g4@2 d4@2 eb4@2 f4@2 ~@2 d4@2 c4@2 b3@2 ~@2 g4@2 f4@2 eb4@2 d4@4 [bb3,e4]@2 [a3,gb4]@2 g4@10 a4@2 bb4@2 a4@2 bb4@2 c5@2 d5@2 bb4@2, d5@10 ~@4 g4@4 ~@10 d4@5 ~@3 bb3@2 b3@3 ~@3 c4@6 ~@2 g3@2 ~@10, ~@16 c5@13 ~@11 eb4@5 ~@19]/8", // Gm Eb F Eb D Bbdim D
  AG: "[g4,eb5] [c4,g5] [d4,f5] [bb3,eb5] [a3,d5] [f4,c5] [c4,bb4] [eb4,a4]", // Cm C5 Dm Eb5 D5 F5 C7 Ebdim
  AH: "bb4 a4 bb4 f4 f5 c5 d5 bb4, d4@2 eb4 d4", AI: "a4 g4 a4 f4 f5 c5 [d4,d5] bb4, eb4@3 ~",
  AJ: "g5 c5 [bb4,d5] bb4 a4 f5 c5 eb5, a4 ~@2 a4", AK: "bb4 c5 bb4 f5 f4 a4 g4 bb4, d5 f4 eb4 d4",
  AL: "c5 d5 [a3,c5] f5 f4 bb4 a4 c5, c4 ~ d4 c4", AM: "e4 bb4 a4 [a3,c5] [bb3,d5] [c4,f4] [d4,bb4] [e4,g4], bb3@3 ~@5",
  AN: "[[f4,a4] [d5,f5] [eb5,g5] f5 eb5 ~ g5 [bb4,f5], ~@3 bb4@2 bb4@2 ~]/2", // F Dm Eb Bb5
  AO: "c5@2 bb4 a4 bb4 d5 c5 eb5, eb5@11 ~ a4@4", AP: "f5 eb5 d5 c5 d5 e5 f5 g5, bb4@7 ~@5 e4@4",
  AQ: "f4 bb3 [a3,c5] g3 [a3,c6] bb3 c4 d4, a5 ~@2 a5", AR: "g5 f5 [g3,eb5] d5 [g4,eb5] f5 g5 a5, eb4 ~@2 eb4",
  AS: "[d4,bb5] [c4,a5] [bb3,g5] [a3,gb5] [bb3,g5] [c4,bb5] [d4,a5] [e4,g5]", AT: "f5 eb5 d5 c5 b4 ab4 g4 f4, f4 ~@3",
  AU: "~ d5 c5 bb4 a4 g4 f4 eb4, eb4 ~@3", AV: "d4@2 d5@2 eb5 d5 eb5 c5, ~@2 a4 ~",
  AW: "[[f4,f5] [g4,eb5] [f4,f5] [bb4,d5] d5 c5 d5 bb4 ~ gb5 ~ bb4 ~ a5 gb5@2 g5@2 bb4 a4 [g4,eb5]@2 d5@2, ~@4 g5@5 ~ g5@3 ~@11, ~@4 a4 ~ c5@3 d5 ~@2]/3", // F Cm F Bb Cm
  AX: "eb4 f4 [eb4,g4] g4 g3 c4 [bb3,d5] d4, c5 ~ eb5 ~", // Eb Bb
  AY: "gb3 c4 [bb3,g4] [d4,gb4] [eb4,g4] [g3,bb4] [c4,a4] [a3,c5], a4 ~@3", // Eb D Eb Gm F Am
  AZ: "[bb3@4 g4@3 ~ bb4@4 a4@4 g4@4 d4@3 ~ bb4@4 a4@3 ~, d5@23 ~@9]/2", BA: "e4@2 d4 db4 d4 f4 e4 g4",
  BB: "a4@4 a3@3 ~ f4@3 ~ d4@4", BC: "db4 b3 a3 b3 db4 d4 e4 f4", BD: "g4 f4 e4 f4 g4 a4 bb4 db4",
  BE: "d5 e5 d5 a5 a4 db5 [d4,b4] [b3,d5], d4@2 db4 ~", BF: "e5 f5 e5 a5 [d4,a4] d5 db5 e5, db4@2 ~ g3",
  BG: "f5 g5 f5 a5 a4 e5 d5 f5, a3 d4 db4 d4", BH: "[e4,db5] g5 f5 a5 bb5 d5 g5 e5, ~ d4@2 db4",
  BI: "[d4 bb4 a4 g4 f4 eb4 d4 c4 ~ eb5 d5 eb5 f5 g5 a5 b5, f5@9 ~@7, ~@4 b3 a3 g3 f3]/2",
  BJ: "[c6 ab5 g5 f5 eb5 d5 c5 bb4 a4 [d3,bb4] [c3,c5] [d3,bb4] [eb3,a4] [f3,g4] [g3,f4] [a3,eb4], eb3@9 ~@7]/2", // Gm C Gm Ebdim Fsus2 G7 Adim
  BK: "d4@4 bb4@3 ~ bb3@3 ~ [f3,d4]@4, bb3@7 ~@9", // Dm
  BL: "[eb4 f4 g4 ab4 g4 f4 eb4 d4 ~ bb3 a3 g3 a3 bb3 c4@3 c4 d4 eb4 d4 c4 bb3 a3, bb3@2 ~@4 bb3@3 ~@15, ~@4 c4 ~@7]/3",
  BM: "g4 a4 g4 d5 d4 gb4 e4 g4, bb3 d4 c4 bb3", BN: "a4 bb4 a4 d5 d4 g4 gb4 a4, a3@7 ~ c4@8",
  BO: "[[bb3,d4]@4 [d4,d5]@3 ~ [gb4,c5]@4 bb4@4 c5@4 d5@2 eb5@2 d5@2 bb4@2 c5@2 a4@2, ~@3 g4@3 ~ gb4]/2", // Bb D Gbdim
  BP: "[g4,bb4] [b4,f5] [c5,eb5] [f4,d5]", BQ: "[eb4,c5] b4 c5 g4 g5 d5 eb5 c5",
  BR: "[g4@2 f4@2 g4@2 c4@2 c5@2 a4@2 bb4@2 g4@2 gb4@2 [e4,db5]@2 gb4@2 d4@2 d5@2 [a4,gb5]@2 bb4@2 g4@2 eb5@2 ~ [a4,gb5]@2 [bb4,g5]@2 [g4,bb4]@2 ~ c5@2 ~ a5@2 ~ a4@2 ~ c5@3 ~ [g4,b4]@34 ~@7, eb5@18 ~@2 d5@4 ~@4 g5@6 ~@8 gb4@13 ~@41]/6", // Dbm D Eb Gm G
})).s("gm_synth_brass_1").gain(0.3)

// other · woodblock · "Orgel"
const woodblock = note("<~@23 A B C D E@3 ~@8 F G H I@3 ~@12 J K L E@3 ~@18 A B C D M@8 ~@2>".pickRestart({
  A: "g2@15 ~", B: "g2 gb2", C: "bb2@2 a2 g2", D: "a2", E: "g2/3", F: "g2 bb2", G: "c3 bb2", H: "c3 d3", I: "bb2/3",
  J: "bb2 c3", K: "d3 bb2", L: "c3 bb2 a2@2", M: "g2/8",
})).s("gm_woodblock").gain(0.48)

stack(synth_brass_1, woodblock)

More by Johann Sebastian Bach