Strudelify
Menuet (From Anna Magdelena) cover art

Licht Klassiek - De Puzzelaar

Menuet (From Anna Magdelena)

Bach Johann Sebastian

KeyG majorTempo132 bpm
0:00/0:00
// Menuet (From Anna Magdelena) — Bach Johann Sebastian
// 132 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 65 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(132/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, A@4 for four bars: edit a riff to change every repeat.

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A@2 B C D E F G@3 H@2 D I@2 J A@2 B C D E F G@3 H@2 D K L J 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 AC AD AE
>`.pickRestart({
  A: "[g2@22 ~ g2@4 ~@4 g3@2 ~@7 g2@3 ~@5]/2", B: "c3@23 ~", C: "b2@7 g3@2 ~@6 b2@2 ~@7", D: "a2@7 ~ f#2@4",
  E: "g2@15 ~ b2@5 ~@3", F: "d3@3 ~@5 b2@2 ~@6 g2@2 ~@6",
  G: "[d2@10 ~@2 c3@3 ~ b2@2 ~ a2@3 ~ g2@15 ~@2 a2@2 ~@5 b2@10 ~@7 b2@2 ~@6]/3",
  H: "[c3@14 ~@2 c3@7 b2@7 ~ g3@2 ~@6 g2@3 ~@6]/2", I: "[g2@14 ~ g2@5 ~@3 c3@8 ~ d3@3 ~@5 d2@4 ~@4]/2",
  J: "g2@7 ~ d2@3 ~@4 g1@6 ~@3", K: "g2@14 ~ g2@5 ~@4", L: "c3@8 d3@3 ~@5 d2@4 ~@4", M: "g2@23 ~", N: "f#2@11 ~",
  O: "e2@4 ~@4 g2@3 ~@5 e2@4 ~@4", P: "a2@19 ~@5", Q: "a2@11 ~", R: "b2@3 ~@5 d3@3 ~@5 c#3@3 ~@5",
  S: "d3@3 ~@5 f#2@2 ~@6 a2@3 ~@5", T: "d2@17 ~@7", U: "b2@11 ~", V: "c3@5 ~", W: "b2@3 ~@5 a2@3 ~@5 g2@3 ~@5",
  X: "d3@8 a2@3 ~@5 d2@3 ~@5", Y: "d2@15 ~ f#2@4 ~@4", Z: "e2@4 ~@4 g2@3 ~@5 f#2@3 ~@5",
  AA: "g2@2 ~@6 b1@4 ~@4 d2@3 ~@5", AB: "g2@3 ~@5 d2@3 ~@5 g1@4 ~@4", AC: "~ g2@3 ~@6 b1@4 ~@6 d2@4",
  AD: "~@6 g2@4 ~@7 d2@4 ~@3", AE: "~@2 g1@3 ~@7",
})).s("gm_string_ensemble_1").gain(0.28)

// other · piano · "A.PIANO 1"
const piano = note(`<
  A@2 B C D E F G H C I@4 J K A@2 B C D E F G H C B C D E L K M N O P Q R S T U B V W X Y Z K AA N O P@2 AB AC T U B V W
  X AD AE AF AG
>`.pickRestart({
  A: "[g3,b3]/2", B: "c4", C: "b3", D: "a3", E: "g3@7 ~", F: "d4@4 ~@4 b3@3 ~@5 g3@3 ~@5",
  G: "[d3,f#3]@6 ~@2 d3@4 c4@4 b3@3 ~ a3@4", H: "[g3,b3]@2 a3",
  I: "[[c4,e4]@23 [b3,d4]@8 [d4,g4]@2 ~@6 [g3,b3]@3 ~@5 [a3,c4]@15 ~ [f#3,a3]@7 ~@2 g3@14 ~ [e3,b3]@8 ~, ~@71 b3@14 ~@11]/4", // C Bm G5 G Am F#m E5
  J: "~@16 d3@3 ~@5", K: "g3 ~@3 d3 ~@3 g2 ~@3", L: "c4@3 ~@5 d4@3 ~@5 d3@2 ~@6", M: "g3@11 ~", N: "f#3@23 ~",
  O: "e3@4 ~@4 g3@3 ~@5 e3@3 ~@5", P: "a2@5 ~", Q: "a2@7 ~", R: "b2@5 ~@3 d3@3 ~@5 c#3@3 ~@5",
  S: "d3 ~@3 f#2 ~@3 a2 ~@3", T: "d3@17 ~@7", U: "[b3,d4]", V: "b3@3 ~@5 a3@3 ~@5 g3@2 ~@6", W: "d4",
  X: "d3@13 ~@3 f#3@3 ~@5", Y: "e3@3 ~@5 g3@2 ~@6 f#3@2 ~@6", Z: "g3 ~@3 b2 ~@3 d3 ~@3", AA: "g3",
  AB: "b2@3 ~@5 d3@3 ~@5 c#3@3 ~@5", AC: "d3@4 f#2 ~@3 a2 ~@3", AD: "e3@2 ~@6 g3@2 ~@7 f#3@2 ~@5",
  AE: "~ g3@3 ~@6 b2@2 ~@8 d3@2 ~@2", AF: "~@6 g3@3 ~@8 d3@2 ~@5", AG: "~ g2 ~@4",
})).s("gm_piano").gain(0.36)

// other · piano · "A.PIANO 1"
const piano_2 = note(`<
  A B C D E F G H A B C D E F I J A B C D E F G H A B C D E F I J K L M N O P Q R S T U V W X Y J Z AA M N O AB AC AD S
  AE U V W AF AG AH@2
>`.pickRestart({
  A: "d5@2 g4 a4 b4 c5", B: "d5@8 g4@5 ~@3 g4@8", C: "e5@7 ~ c5@4 d5@4 e5@4 f#5@4", D: "g5@8 g4@5 ~@3 g4@7 ~",
  E: "c5@2 d5 c5 b4 a4", F: "b4@2 c5 b4 a4 g4", G: "f#4@2 g4 a4 b4 g4", H: "a4@23 ~", I: "a4@8 b4@4 a4@3 ~ g4@4 f#4@4",
  J: "g4@3 ~", K: "b4@7 ~ g4@3 ~ a4@3 ~ b4@4 g4@3 ~", L: "a4@7 ~ d4@3 ~ e4@3 ~ f#4@3 ~ d4@2 ~@2",
  M: "g4@2 e4 f#4 g4 d4", N: "c#4@7 ~ b3@4 c#4@4 a3@6 ~@2", O: "a3 b3 c#4 d4 e4 f#4", P: "g4@4 ~@4 f#4@4 ~@4 e4@5 ~@3",
  Q: "f#4@8 a3@7 ~ c#4@3 ~@5", R: "d4@17 ~@7", S: "d5@2 g4 f#4 g4@2", T: "e5@7 ~ g4@4 f#4@4 g4@5 ~@3",
  U: "d5@3 ~@5 c5@3 ~@5 b4@3 ~@5", V: "a4@3 ~ g4@4 f#4@3 ~ g4@4 a4@8", W: "d4 e4 f#4 g4 a4 b4",
  X: "c5@3 ~@5 b4@3 ~@5 a4@3 ~@5", Y: "b4@4 d5@4 g4@3 ~@5 f#4@2 ~@6", Z: "b4@7 ~ g4@4 a4@4 b4@4 g4@4",
  AA: "a4@2 d4 e4 f#4 d4", AB: "g4@4 ~@4 f#4@2 ~@6 e4@3 ~@5", AC: "f#4@4 a3@2 ~@2 c#4 ~@3", AD: "d4@19 ~@5",
  AE: "e5@8 g4@4 f#4@4 g4@7 ~", AF: "c5@4 ~@4 b4@3 ~@6 a4@3 ~@4", AG: "~ b4@5 d5@4 g4@3 ~@7 f#4@3 ~",
  AH: "[~@7 g4@28 ~@13]/2",
})).s("gm_piano").gain(0.36)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
  A B C@5 D E@2 F G H I J@2 A B K@4 L D M N F G H I J@2 O@2 P Q@2 R@2 S T U V W X@3 Y O@2 P Z AA R@2 S T U V W AB AC AD
  AE@2
>`.pickRestart({
  A: "[g3,b3]", B: "~@7 [b3,d4]@2 ~@7 g3@2 ~@6, ~@15 b3@2 ~@7",
  C: "[[c4,e4]@22 ~ [b3,d4]@13 ~@3 [b3,d4]@2 ~@6 [a3,c4]@14 ~@2 [f#3,c4]@3 ~@5 [g3,b3]@13 ~@4 [g3,b3]@3 ~@4 [d3,a3]@8 ~ b3@2 ~@6 [b2,g3]@2 ~@6, ~@103 g3@2 ~@15]/5", // C Bm Am F#dim G D5 Em
  D: "[f#3,a3]@17 ~@7", E: "[[g3,b3]@14 ~ [a3,c4]@6 ~@2 [b3,d4]@7 ~ [g3,b3]@2 ~@7 g3@2 ~@6, ~@39 b3@2 ~@7]/2",
  F: "[c4,e4]@13 ~@2 [c4,e4]@7 ~@2", G: "[b3,d4]@7 [d4,g4]@2 ~@6 [g3,b3]@3 ~@6",
  H: "~ e3@13 ~@2 f#3@7 ~, c4@14 ~ d4@8 ~", I: "[g3,b3]@14 ~@2 [e3,b3]@7 ~",
  J: "[[a3,c4]@7 [b3,d4]@3 ~ [a3,c4]@3 ~ [g3,b3]@3 ~ f#3@4 ~ g3@21 ~@3, ~@19 a3@2 ~@2 b3@21 ~@4]/2", // Am Bm Am G
  K: "[[c4,e4]@22 ~ [b3,d4]@13 ~@3 [b3,d4]@2 ~@6 [a3,c4]@14 ~@2 [f#3,c4]@3 ~@5 [g3,b3]@13 ~@4 [g3,b3]@3 ~@5]/4", // C Bm Am F#dim G
  L: "[d3,a3]@7 ~ b3@2 ~@6 [b2,g3]@2 ~@6, ~@7 g3@2 ~@15", M: "[g3,b3]@14 ~ [a3,c4]@6 ~@3",
  N: "[b3,d4]@7 ~ g3@2 ~@6 [g3,b3]@2 ~@6, ~@7 b3@2 ~@15", // Bm G
  O: "[d4@7 b3@2 ~@2 c4@2 ~@2 d4@2 ~@2 b3@2 ~@2 d4@7 ~ f#3@2 ~@3 g3@2 ~ a3@2 ~@2 f#3@2 ~@3]/2",
  P: "b3@7 ~ g3@2 ~@2 a3@2 ~ b3@3 ~ g3@3 ~@2",
  Q: "[e3@7 ~ d3@2 ~@2 e3@2 ~@2 c#3@3 ~@4 c#3@3 ~ d3@3 ~ e3@3 ~ f#3@3 ~ g3@3 ~ a3@2 ~@3]/2",
  R: "[b3@2 ~@6 a3@2 ~@5 g3@2 ~@6 a3@3 ~ d4@3 ~ f#3@3 ~@6 g3@3 ~@5]/2", S: "f#3@19 ~@5",
  T: "g4@7 b3@3 ~ d4@3 ~ g3@3 ~@6", U: "g4@7 c4@4 e4@3 ~@2 g3@3 ~@5", V: "b4@3 ~@5 a4@3 ~@4 g4@3 ~@6",
  W: "f#4@3 e4@4 d4@3 ~ e4@4 f#4@3 ~@6",
  X: "[f#3@3 g3@4 a3@4 b3@3 ~ c4@4 d4@4 e4@2 ~@6 d4@3 ~@5 c4@3 ~@5 d4@4 g4@4 ~ b3@2 ~@6 c4@2 ~@6]/3", Y: "b3@11 ~",
  Z: "e3@7 ~ d3@2 ~@2 e3@2 ~@2 c#3@3 ~@5", AA: "c#3@3 d3@3 ~ e3@3 ~ f#3@3 ~ g3@3 ~ a3@2 ~@3",
  AB: "f#3@3 g3@4 a3@4 b3@3 ~ c4@4 d4@4 ~", AC: "e4@2 ~@6 d4@3 ~@5 c4@3 ~@5", AD: "d4@4 ~ g4@4 ~ b3@3 ~@6 c4@3 ~@2",
  AE: "[~ b3@5 ~@2]/2",
})).s("gm_string_ensemble_1").gain(0.28).pan(0.3)

// other · oboe
const oboe = note("<~@16 A B C D E F G H ~@4 I J K L ~@16 M N O P Q R S T U V W X Y Z AA AB@2>".pickRestart({
  A: "d5@7 ~ g4@4 a4@4 b4@3 ~ c5@4", B: "d5@7 ~ g4@2 ~@6 g4@2 ~@6", C: "e5@7 ~ c5@3 ~ d5@3 ~ e5@3 ~ f#5@3 ~",
  D: "g5@7 ~ g4@2 ~@5 g4@2 ~@7", E: "c5@8 d5@4 c5@4 b4@3 ~ a4@4", F: "b4@7 ~ c5@4 b4@4 a4@4 g4@4",
  G: "f#4@7 ~ g4@4 a4@4 b4@4 g4@4", H: "~ a4@21 ~@2", I: "e5@8 f#5@4 e5@4 d5@3 ~ c5@4", J: "d5@8 e5@4 d5@4 c5@4 ~ b4@3",
  K: "c5@7 ~ d5@4 c5@4 b4@4 a4@4", L: "b4@7 ~", M: "~ b4@9 g4@3 a4@3 b4@3 ~ g4@4", N: "a4@2 f#4 g4 a4 f#4",
  O: "g4@8 e4@3 ~ f#4@4 g4@4 e4@3 ~", P: "e4@8 d4@3 e4@4 ~ c#4@4 ~@4", Q: "c#4@3 ~ d4@3 e4@4 f#4@3 ~ g4@4 a4@4 ~",
  R: "b4@2 ~@6 a4@3 ~@5 g4@2 ~@6", S: "a4@4 d5@4 f#4@2 ~@6 g4@3 ~@5", T: "f#4@2 ~", U: "d5@8 g4@4 f#4@4 g4@5 ~@3",
  V: "e5@8 g4@3 f#4@4 ~ g4@4 ~@4", W: "d5@2 ~@6 c5@3 ~@5 b4@3 ~@5", X: "a4@4 g4@4 f#4@4 g4@4 a4@3 ~@5",
  Y: "d4@3 ~ e4@3 f#4@4 g4@4 a4@4 b4@4 ~", Z: "c5@3 ~@5 b4@3 ~@5 a4@3 ~@5", AA: "b4@5 d5@4 ~ g4@4 ~@6 f#4@3 ~",
  AB: "[~@6 g4@29 ~@13]/2",
})).s("gm_oboe").gain(0.24).pan(0.6)

// other · flute
const flute = note("<~@24 A B C D E F G H ~@16 I J K L M@2 N O@3 P Q R S T U@2>".pickRestart({
  A: "d6@8 g5@4 a5@3 ~ b5@4 c6@4", B: "d6@4 g5 ~@3 g5 ~@3", C: "e6@8 c6@4 d6@4 e6@4 f#6@3 ~", D: "g6@4 g5 ~@3 g5 ~@3",
  E: "c6@7 ~ d6@3 c6@4 ~ b5@3 a5@3 ~@2", F: "b5@8 c6@3 b5@5 a5@4 g5@4", G: "a5@7 ~ b5@4 a5@4 g5@4 f#5@4",
  H: "~ g5@20 ~@3", I: "d5@7 ~ b4@4 c5@4 d5@4 b4@4", J: "a4@3 ~ d5@2 e5@2 f#5@2 d5@2",
  K: "g5@7 ~ e5@3 f#5@4 g5@4 d5@4 ~", L: "c#5@7 ~ b4@4 c#5@4 a4@5 ~@3",
  M: "[a4@4 b4@4 c#5@3 d5@4 e5@4 f#5@3 ~ g5@3 ~@5 f#5@2 ~@6 e5@3 ~@6]/2", N: "f#5@2 ~@5 a4@3 ~@6 c#5@2 ~@6",
  O: "[d5@15 ~@8 g5@4 d5@4 b4@4 d5@4 ~ g4@5 ~@2 g5@5 e5@4 c5@4 e5@4 g4@4 ~@4]/3", P: "b5@2 ~@6 a5@2 ~@5 g5@3 ~@6",
  Q: "f#5@4 e5@4 d5@4 e5@4 f#5@3 ~@5", R: "f#4@3 ~ g4@4 a4@4 b4@3 c5@4 d5@4 ~", S: "e5 ~@3 d5 ~@3 c5 ~@3",
  T: "~ d5@4 g5@4 b4@3 ~@8 c5@3 ~", U: "[~@7 b4@29 ~@12]/2",
})).s("gm_flute").gain(0.24).pan(0.8)

// other · bassoon
const bassoon = note("<~@16 A@2 B C D E F G@3 H@2 I J K L ~@16 M N O P Q R S T U V W X Y Z AA AB AC>".pickRestart({
  A: "[g2@22 ~ g2@4 ~@4 g3@2 ~@7 g2@3 ~@5]/2", B: "c3@23 ~", C: "b2@7 g3@2 ~@7 b2@2 ~@6", D: "~ a2@14 ~ f#2@7 ~",
  E: "g2@15 ~ b2@5 ~@3", F: "d3@3 ~@5 b2@2 ~@6 g2@2 ~@6",
  G: "[d2@10 ~@2 c3@3 ~ b2@2 ~ a2@3 ~ g2@15 ~@2 a2@2 ~@5 b2@10 ~@7 b2@2 ~@6]/3",
  H: "[c3@14 ~@2 c3@7 b2@7 ~ g3@2 ~@6 g2@3 ~@6]/2", I: "a2@7 ~ f#2@4", J: "g2@14 ~ g2@5 ~@4",
  K: "c3@7 ~ d3@3 ~@5 d2@4 ~@4", L: "g2@7 ~ d2@3 ~ g2@6 ~@6", M: "g2@11 ~", N: "f#2@7 ~",
  O: "e2@4 ~@4 g2@3 ~@5 e2@4 ~@4", P: "a2@19 ~@5", Q: "a2@11 ~", R: "b2@3 ~@5 d3@3 ~@5 c#3@3 ~@5",
  S: "d3@3 ~@5 f#2@2 ~@6 a2@3 ~@5", T: "d2@17 ~@7", U: "b2@11 ~", V: "c3@5 ~", W: "b2@3 ~@5 a2@3 ~@5 g2@3 ~@5",
  X: "d3@8 a2@3 ~@5 d2@3 ~@5", Y: "d2@15 ~ f#2@4 ~@4", Z: "e2@4 ~@4 g2@3 ~@6 f#2@3 ~@4",
  AA: "~ g2@3 ~@6 b1@4 ~@6 d2@3 ~", AB: "~@6 g2@4 ~@7 d2@4 ~@3", AC: "~@2 g1@3 ~@7",
})).s("gm_bassoon").gain(0.28).pan(0.6)

stack(string_ensemble_1, piano, piano_2, string_ensemble_1_2, oboe, flute, bassoon)

More by Bach Johann Sebastian