Strudelify

Flute Sonata in E-flat major BWV 1031

J. S. Bach

KeyA minorTempo50 bpm
0:00/0:00
// Flute Sonata in E-flat major BWV 1031 — J S Bach
// 50 bpm, 6/8, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 3 "Basson" named as a bass, played on electric bass finger (its bassoon patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/1838; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 37 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(50/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 · flute
const flute = note("<A B C D E F G H@2 I J K L M N O P Q R S T@2 U V W X Y Z AA AB AC AD AE AF AG AH AI>".pickRestart({
  A: "c5 b4 d5 c5 b4 a4 a4@2 g#4@2 ~@2", B: "e5 d5 f5 e5 d5 c5 c5@2 b4@2 ~@2", C: "c#5 d5 e5@5 d5 f5 e5 d5 c5",
  D: "b4 c5 d5@5 c5 e5 d5 c5 b4", E: "a4@14 g#4@2 b4@2 a4@2 g#4@2 a4 b4", F: "e4@7 g#4 a4 c5 b4 d5",
  G: "g#4 b4 d5 f5 e5 d5 c5 d5 d5@3 e5", H: "[e5@20 f5 ~@3]/2", I: "b4@4 c5@4 d5@4 e5 d5 c5@2 b4@6 c5@2",
  J: "c5 ~ a#4 ~@3 a4 g4 a#4 a4 g4 f4", K: "[c#5,d5]!8 d5@6 e5@2 [c#5,d5] c#5 [c#5,d5]!2 c#5 [c#5,d5] d5@2",
  L: "d5@6 c5 ~ b4 ~@3", M: "c5@2 b4 a4 d5@2 b4 a4 g4 a4 b4 c5", N: "d5@7 g4 a4 b4 c5 d5", O: "e5@7 a4 b4 c#5 d5 e5",
  P: "f5@6 g5 f#5 g5@2 ~@2", Q: "g5 f#5 a5 g5 f#5 e5 d#5@4 ~@2",
  R: "b4@2 a4@2 c5@2 b4@2 a4@2 g4@2 g4 [g4,a4]!3 f#4@4 ~@4, ~@16 a4 ~@7", S: "g5 f#5 a5 g5 f#5 e5 e5@2 d#5@2 ~@2",
  T: "[d5@3 f5 e5 d5 c5@9 e5 d5 c5 b4@6]/2", U: "~ a4 c5 b4 a4 g4 f#4@2 f#5@4",
  V: "~ a5 g5 f#5 e5 d#5 e5 f#5 g5 b5 a5 c6", W: "f#5@2 d#5@2 e5@3 f#5 d#5@3 e5",
  X: "e5 f#5 g#5 a5 b5 c6 d6@2 b5@2 g#5@2", Y: "f5@2 d5@2 b4@2 g#4 ~ g4 ~@3", Z: "f#4 ~ g#4 ~@3 a4@2 b4@2 g#4@2",
  AA: "a4 c#5 d5 c#5 b4 a4 d5 c#5 e5 d5 c#5 d5", AB: "e5 d5 f5 e5 d5 e5 f5@6", AC: "~ g4 a4 b4 c5 d5 e5@6",
  AD: "~ a4 g#4 a4 b4 c5 d5@6", AE: "~@2 c5@2 e5@2 d5@2 c5@2 b4@2 c5@2 a4@2 b4@4 g#4 [g#4,a4]!3",
  AF: "a4 a5 g5 e5 f5 d5 e5 g5 f5 d5 e5 c5", AG: "d5@3 e5 c5@3 b4 b4@3 a4",
  AH: "a4@6 b4@2 c5@6 d5@2 [d5,e5] d5 [d5,e5]!2 d5 [d5,e5] e5@2", AI: "e5",
})).s("gm_flute").gain(0.25)

// bass · electric bass finger · "Basson"
const bass = note("<A B C D E F@2 G H I J K L M N O P Q R S T U V W@2 X Y Z AA AB AC AD AE AF AG AH X>".pickRestart({
  A: "a3@2 a2@2 d3@2 e3@3 d3 c3 b2", B: "a2@2 a3@2 d4@2 e4@3 d4 c4 b3", C: "a3 c#3 ~ d3 d4 f3", D: "g3 b2 ~ c3 c4 e3",
  E: "f3@7 e3 d3 c3 b2 a2", F: "[g#2 e2 a2 g2 f2 e2 f2@2 f3@6 b2@2 g#2@2 a2@2 f2@4]/2",
  G: "e2 ~ d2 ~@3 c3 b2 d3 c3 b2 a2", H: "g#2 e2 a2 g2 f2 e2 g2 ~ f2 ~@3", I: "f3 e3 g3 f3 e3 d3 c3@2 g3@2 g2@2",
  J: "c3 ~ c#3 ~@3 f3@2 g3 a3 a#3@2", K: "e3 d3 f3 e3 d3 c3 a#2 g2 a2@2 a3@2", L: "d4 c4 e4 d4 c4 b3 a3 ~ e4 ~@3",
  M: "c4 d4 d3 g3@2 ~", N: "b2 a2 c3 b2 a2 g2 e3@4 d3@2", O: "c3 b2 d3 c3 b2 a2 f3@4 e3@2",
  P: "d3 c3 e3 d3 c3 b2 a2@2 e3@2 ~@2", Q: "c3@2 f#2@2 a2@2 b2 c3 b2 a2 g2 f#2", R: "e2@2 e3@2 a3@2 b3@3 a3 g3 f#3",
  S: "e3@2 e2@2 a2@2 b2@3 a2 g2 f#2", T: "e2 g#2 ~ a2 a3 c3", U: "d3 f#3 ~ g2 g3 b2",
  V: "c3@2 ~@2 c4@3 b3 a3 g3 f#3 e3", W: "[d#3 b2 e3 d3 c3 b2 c3@8 f#2@2 g2@2 a2@2 b2@2 b2@2]/2", X: "e2",
  Y: "~ f#2 g#2 a2 b2 c3 d3 ~ c#3 ~@3", Z: "c3 ~ b2 ~@3 a2@2 d2@2 e2@2", AA: "a2@2 g2@2 ~@2 f3 e3 g3 f3 e3 d3",
  AB: "c#3 b2 d3 c#3 b2 a2 d3@4 ~@2", AC: "g2@2 ~ c3@2 ~", AD: "f3@2 ~ b2@2 ~", AE: "e3 g#2 e2 a2 d2 e2", AF: "a2",
  AG: "~ a3 g#3 e3 a3 g3 f3 d3 e3@2 e2@2", AH: "a2@4 g2@2 f2 e2 f2@4",
})).s("gm_electric_bass_finger").gain(0.25)

stack(flute, bass)

More by J. S. Bach