Strudelify
KeyA minorTempo75 bpm
0:00/0:00
// Sarabande — Bach Johann Sebastian
// 75 bpm, 3/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 6 "STRINGS" string ensemble 1 (copy of ch 4 "A.PIANO 1" piano)
// note: Full arrangement: all 56 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(75/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.

// bass · string ensemble 1 · "STRINGS"
const bass = note(`<
  A@2 B C D E F G H I J K L@2 B C D E F G H I J K M N O P Q R S T U V W X Y Z AA AB M N O P Q R S T U V W X Y Z AA AB
>`.pickRestart({
  A: "[a2@7 ~ d2@8 e2@7 f2@8 ~ e2@3 d2@4 ~ c2@3 ~ b1@4]/2", B: "c2 d2 e2", C: "a2@8 e2@8 a1@7 ~", D: "a2@8 a1@9 ~@7",
  E: "b2@8 b1@9 ~@7", F: "c2", G: "~ g2@6 ~ g2@4 f2@4 e2@4 d2@4", H: "c#2@5 ~@3 c#2@6 ~@10", I: "d2@8 ~@8 f#2@5 ~@3",
  J: "f2@3 ~ e2@4 d2@7 ~ g2@8", K: "c3@23 ~", L: "[a2@7 ~ d2@8 e2@7 f2@8 ~ e2@3 d2@4 ~ c2@4 b1@4]/2",
  M: "c2@3 ~ e2@4 g2@16", N: "c2@8 c3@3 ~ b2@4 a2@4 g2@4", O: "f#2 d#2 e2", P: "b2@3 ~ c#3@4 d#3@4 a2@4 g2@4 f#2@4",
  Q: "e2@8 e3@7 ~@5 e2@2 ~@2", R: "d#2@8 d#3@8 ~@4 d2 ~@3", S: "c2@7 ~ a1@7 ~ b1@8", T: "e2@8 g2@7 ~ b2@8",
  U: "e2 e3 g2", V: "a2 ~@2", W: "d2 d3 f2", X: "g2 ~@2", Y: "c3@4 b2@4 a2@4 g2@4 f2@4 e2@3 ~",
  Z: "d2@8 b1@7 ~ g#1@4 a1@4", AA: "f#2@7 ~ g#2@4 a2@3 ~ e2@8", AB: "a1@23 ~",
})).s("gm_string_ensemble_1").gain(0.24)

// other · piano · "A.PIANO 1"
const piano = note(`<
  A B C D E F G H I J K@2 L M N O P Q G H R S T@2 U V W X Y Z AA AB AC AD AE AF AG AH AI AJ U V W X Y Z AA AB AC AD AE
  AF AG AH AI AJ
>`.pickRestart({
  A: "[a3,e4]@8 [d4,f4]@8 [e3,d4]@7 ~", B: "[f3,c4]@2 [e3,c4] d3 c3 b2",
  C: "[c3,a3]@7 ~ c4@3 ~ b3@3 ~ a3@4 g#3@4, ~@8 d3@7 ~ e3@8", D: "a3@7 ~ e3@8 a2@7 ~", E: "a3@4 a2@3 ~@5",
  F: "b3@7 ~ b2@8 ~@8", G: "g3 f3 a3 g3 f3 e3, c3", H: "g3@3 ~ g3@2 f3@2 e3@2 d3@2", I: "c#3@6 ~@2 c#3@5 ~@11",
  J: "d3@7 ~@9 f#3@8", K: "[f3@3 ~ e3@4 d3@7 ~ g3@8 ~@4 d4@4 e4@15 ~, ~@4 f4@3 ~@5, ~@24 c4@23 ~]/2",
  L: "[a3,e4]@8 [d4,f4]@7 ~ [e3,d4]@7 ~", M: "[f3,c4]@7 ~ [e3,c4]@4 d3@4 c3@4 b2@4",
  N: "[c3,a3]@4 c4@2 b3 ~ a3@2 g#3@2, ~ d3 e3", O: "a3@8 e3@8 a2@7 ~", P: "a3@8 a2@7 ~@9", Q: "b3@8 b2@7 ~@9",
  R: "c#3@5 ~@3 c#3@5 ~@11", S: "d3@7 ~@9 f#3@5 ~@3",
  T: "[f3@4 e3@4 d3@7 ~ g3@8 ~@4 d4@4 e4@10 ~@6, ~@4 f4@3 ~@5, ~@4 c4@3 ~]/2", U: "c3 e3 g3@4",
  V: "c3@7 ~ c4@4 b3@4 a3@4 g3@4", W: "f#3 d#3 e3", X: "b3 c#4 d#4 a3 g3 f#3", Y: "e3@4 e4@3 ~@3 e3@2",
  Z: "d#3@7 ~ d#4@6 ~@6 d3@4", AA: "c3 a2 b2", AB: "e3 g3 b3", AC: "e3 e4 g3", AD: "a3@7 ~@17", AE: "d3 d4 f3",
  AF: "g3 ~@2", AG: "c4@3 ~ b3@4 a3@4 g3@4 f3@4 e3@4", AH: "d3@2 b2@2 g#2 a2", AI: "f#3@2 g#3 a3 e3@2", AJ: "a2@19 ~@5",
})).s("gm_piano").gain(0.36)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A B C D E F G H I J K@2 A B C D E F G L M N O@2 P@2 Q R S T U V W X Y Z AA ~@3 P@2 Q R S T U V W X Y Z AA ~@3
>`.pickRestart({
  A: "e4 f4 d4", B: "c4@7 ~ c4@16", C: "a3@2 c4 b3 a3 g#3", D: "a3", E: "[a3,c4]@15 ~ [a3,c4]@8",
  F: "[b3,d4]@15 ~ [b3,d4]@8", G: "[c4,e4]@8 f4@4 e4@4 d4@3 c4@4 ~", H: "g4@8 g3@15 ~",
  I: "g3@3 f3@4 g3@4 ~ e4@4 a#3@4 g3@3 ~", J: "f3@3 ~ e3@4 f3@4 f4@4 c4@4 ~@4", K: "[b3@4 c4@4 f3@20 d3@3 e3@16 ~]/2",
  L: "g4@7 ~ g3@15 ~", M: "g3@3 f3@4 ~ g3@4 e4@4 a#3@4 g3@3 ~", N: "f3 e3 f3 f4 c4 ~",
  O: "[b3@3 c4@4 ~ f3@20 d3@3 e3@16 ~]/2", P: "e4@7 ~ e4@4 d4@4 c4@4 b3@4",
  Q: "b3@2 ~@2 f#4@3 ~ e4@3 d#4@4 ~ e4 f#4 ~@2 g4@3 ~", R: "f#4@3 ~ b4 ~ a#4 ~ b4@8 d#4@8", S: "[e4,b4]@2 ~@3 [e4,b4]",
  T: "[d#4,b4]@7 ~@13 b4@4", U: "g4@4 e4@4 d4@4 c4@4 b3@4 a3@3 ~", V: "a3@4 b3@4 g3@15 ~",
  W: "a#3@4 ~ c#4@2 a#3@4 ~ a3@4 g3@4 f3@4", X: "e3@2 ~", Y: "d4@3 ~ e4@2 f4@2 d4@4 c4@4 b3@4 a3@4", Z: "g3@3 ~@5",
  AA: "c4 b3 a3 g3 f3 e3",
})).s("gm_string_ensemble_1").gain(0.24).pan(0.3)

stack(bass, piano, string_ensemble_1)

More by Bach Johann Sebastian