Strudelify

3 Minuets BWV 841-843

Johann S. Bach

KeyG majorTempo120 bpm
0:00/0:00
// 3 Minuets BWV 841-843 — Johann S. Bach
// 120 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3468406; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · orchestral harp · "피아노"
const orchestral_harp = note(`<
  A@2 B@2 C@2 D E F G H@2 I@2 J K L M N O P Q R S ~@4 T U V ~ W X Y Z AA AB AC Z AD AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ AR AS ~@2 AT AU AV AW AX AY A@2 B@2 C@2 D E F G H@2 I@2 J K L M N O P Q R S ~@4 T U V ~
>`.pickRestart({
  A: "[[g3,b3]@11 [a3,c4,f#4]@5 b3@16, d4@27 ~@5, ~@16 g4@11 ~@5]/2", B: "[[c4,e4] b3, g4@27 ~@5, ~@16 d4@11 ~@5]/2",
  C: "[g4@11 f#4@5 [b3,g4]@11 ~@5, [a3,c4] g3, ~@11 d4@16 ~@5]/2", D: "[d4,f#4]@5 [b3,g4]@5 ~ [g3,b4]@5, ~@5 d4@11",
  E: "d4@5 d3@3 c4@3 b3@2 a3@3, [f#4,a4]@11 ~@5", F: "b3@11 [a3,c4,f#4]@5, d4", G: "[g3,d4,g4]@5 b3@5 ~ g3@5",
  H: "[[c4,e4]@16 [b3,d4]@5 c4@3 b3@3 a3@2 g3@3, g4@21 ~@11]/2", // C Bm
  I: "[[a3,g4]@11 [f#3,f#4]@5 [g3,b3,g4]@11 b3@5, c4 ~, ~@11 d4@16 ~@5]/2", J: "[c4,e4]@5 [b3,d4]@5 ~ [d3,c4,d4]@5",
  K: "[g3,b3,d4]@11 g2@5", L: "[d4,g4,b4,d5]@5 ~@11, g3", M: "[d4,a4,d5]@5 ~@11, f#3",
  N: "e3@5 b4@3 a4@3 g4@2 b4@3, ~@5 e4@11, ~@5 g3@5 ~ e3@5", O: "e4@5 d4@3 e4@3 [a2,c#4]@5, a4, a3@11 ~@5",
  P: "c#4@3 d4@2 e4@3 f#4@3 g4@2 a4@3, a3", Q: "~@3 [d4,g4]@2 d4@3 [d4,a4]@3 ~@2 [e4,a4]@3, b3@5 ~@6 c#4@5",
  R: "a4@3 d5@2 f#5@3 a5@3 g5@2 e5@3, d4@5 f#3@5 ~ a3@5", S: "~@5 d3@5 ~ c4@5, [d4,f#4,d5]",
  T: "d4@3 c#4@2 d4@3 e4@3 f#4@2 g4@3, d3, ~@11 f#3@5",
  U: "~@3 [c4,g4]@2 ~@3 [d4,g4]@3 ~@2 [d4,a4]@3, e3@5 g3@5 ~ f#3@5", // C5 G5 D5
  V: "g4@3 b4@2 [d4,d5]@3 ~@3 [c4,d4]@3 ~@2, g3@5 b2@5 ~ d3@5", W: "d5@11 a#4@5, g3", X: "d5@11 a4@5, f3",
  Y: "a#4@11 g4@2 a4@3, d#3", Z: "d3@5 d4@3 c4@3 a#3@2 a3@3, f#4", AA: "[g3,a#3,a#4]@11 [a3,f4]@5",
  AB: "[a#3,g4]@11 [g3,g4]@5", AC: "a3@5 f#3@5 ~ g3@5, f#4@3 ~@2 a4@3 ~@3 g4@3 ~@2", AD: "g4@11 a#4@5, g3",
  AE: "f4@11 a4@5, f3", AF: "[d#3,a#4]", AG: "d3@5 d4@3 c4@3 b3@2 a3@3, a4", AH: "[b3,d4,g4]@11 [g3,g4]@5",
  AI: "c4@5 a3@5 ~ [f3,a4]@5, a4@11 ~@5", AJ: "a#3@5 d#3@5 ~ [f3,a3,a4]@5, a#4@11 ~@5", AK: "a#3@5 a#2@11, f4",
  AL: "a#4@11 a#4@2 c5@3, a#3", AM: "[a3,c5]@5 [g3,a#4]@5 ~ [f3,c5]@5", AN: "g3@5 e3@5 ~ [c3,c5]@5, d5@11 ~@5",
  AO: "[f3,c5]@11 a4@5", AP: "a3@5 g3@5 ~ [f3,a4]@5, f4@11 ~@5", AQ: "g3@5 f3@5 ~ [d#3,a4]@5, a#4@11 ~@5",
  AR: "d3@5 d#3@5 ~ [f3,f4]@5, a#4@11 ~@5", AS: "a#2@5 d4@5 ~ c4@5, f4", AT: "a#3@5 a3@5 ~ g3@5",
  AU: "d4@5 a3@3 g3@3 f#3@2 e3@3", AV: "[d3,a3]@11 c4@5", AW: "d#3@5 d3@5 ~ [c3,d#4]@5, d#4@11 ~@5",
  AX: "a#2@5 c3@5 ~ d3@5, g4@3 ~@2 d4@3 ~@3 d4@3 ~@2", AY: "~@5 g2@11, g3",
})).s("gm_orchestral_harp").gain(0.3)

// chords · orchestral harp · "피아노" · soft notes
const orchestral_harp_soft = note("<~@24 A B C D ~@3 E ~@24 F G H I ~@3 J ~@24 A B C D ~@3 E>".pickRestart({
  A: "d4@5 ~@6 b3@5, [g4,d5], b3@11 ~@5, ~@5 d4@11", B: "e4@5 ~@6 c4@5, [g4,e5], c4@11 ~@5, ~@5 e4@11",
  C: "[d4,g4]@3 ~@2 [d4,a4]@3 ~@3 [d4,b4]@3 ~@2, b3@5 a3@5 ~ g3@5", // G5 D5 G
  D: "[f#4,a4]@3 [e4,g4]@2 f#4@3 [e4,g4]@3 [f#4,a4]@5, d4@5 d4@5 ~@6", E: "g3@5 d3@5 ~ g2@5, [b3,d4]", F: "[b3,d4,g4]",
  G: "[c4,g4]", H: "~@3 [g4,d5]@3 ~@2 [a4,c5]@3 ~@2 [g4,a#4]@3", I: "f#4", J: "d4",
})).s("gm_orchestral_harp").gain(0.2)

stack(orchestral_harp, orchestral_harp_soft)

More by Johann S. Bach