Strudelify

Musette BWV Anh

Bach Johann Sebastian

KeyA majorTempo120 bpm
0:00/0:00
// Musette BWV Anh — Bach Johann Sebastian
// 120 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 30 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · piano · "A.PIANO 1"
const piano = note("<A B C D E F G@2 H@2 I J K L M@2 N@2 O P Q@3 R@2 S T U V@2>".pickRestart({
  A: "d2 ~@3 d3 ~@4 d2 f#5@2 e5 d3 d5 ~@2 d2 ~@3 d3 ~@3 g5@2 f#5@2 [d3,e5] d5 ~, a5@9 g5@2 ~@5 a5@9 d2 ~@6", // Dsus2
  B: "~ [f#3,f#4]@2 g4@2 a4@2 ~@2 [g3,g4] ~@3 [f#3,f#4] ~@4 e4@2 ~@2 [a3,a4] ~@2 [f#3,f#4] ~@3 [d3,d4] ~@2, ~@3 g3 ~ a3 ~@11 e3@2 ~@13", // F# G F# A F# D
  C: "~@2 d2 ~@3 d3 ~@3 g5@2 f#5@2 [d3,e5] d5 ~@2 d2 ~@3 d3 ~@3 g5@2 f#5@2 [d3,e5] d5, ~@2 a5@8 d2 ~@7 a5@8 d2 ~@5", // Dsus2
  D: "~@2 f#4@2 g4@2 a4@2 ~@2 [g3,g4] ~@3 [f#3,f#4] ~@3 [e3,e4] ~@3 [a3,a4] ~@4 [d3,d4] ~@4, ~@2 f#3 ~ g3 ~ a3 ~@25", // G F# E A D
  E: "~@3 d2 ~@3 d3 ~@3 g5 ~@5 d5 ~ d2 ~@3 d3 ~@3 g5@2 f#5@2 [d3,e5], ~@3 a5@9 ~@7 a5@8 d2 ~@4", // Dsus2
  F: "~ d5 ~ [f#3,f#4]@2 g4@2 a4@2 ~@6 f#3 ~@3 [e3,e4] ~@4 a3 ~@3 f#3 ~@2 d3, ~@7 a3 ~@24", // F# E
  G: "[d4 ~@3 d2 ~@3 d3 ~@3 g5@2 f#5@2 e5 ~ d5 ~@5 d3 ~@4 g5@2 f#5@2 ~ d5@2 ~ [f#3,f#4]@2 g4@2 [a3,a4] ~@3 [g3,g4] ~@3 f#3 ~@3 [e3,e4] ~@3 a3 ~@6, ~@4 a5@8 d2 ~@8 a5@9 ~@9 g3 ~@24]/2", // F# A G E
  H: "[~@7 c#5@2 d5@2 [a3,e5] ~@3 c#5@2 d5 ~ e5 ~@3 a5@4 e5 ~@7 a3 ~@4 a2 ~@3 e5 ~@3 a5@4 [a3,e5] ~@3 d5@2 c#5@2 [a3,b4] ~ a4 ~, ~@7 a2 ~@7 a2 ~@7 a2 ~@7 e5@8 a5@5 ~@4 a2 ~@7 a2 ~@7]/2", // A5 Asus2
  I: "b4@3 ~@2 e3 ~@3 e5@4 d#5@3 ~ [e2,e4] ~@4 e3 ~@3 e2 ~@3 e3 ~, e2 ~@8 e2 ~@3 e3 ~@7 d5@7 ~ c#5@2 ~", // E
  J: "~@2 a5@2 ~@2 g#5 ~@3 e5@4 d#5@3 ~ [e2,e4] ~@3 d5@4 e2 ~@5, ~@2 e2 ~@29", // E
  K: "~@2 a5@3 ~ g#5@2 ~@2 [e2,e5] d#5 ~ c#5@2 d#5 ~@2 e2 d#5@2 e3 d#5@2 ~ e5@2 ~@2 [e3,g#4]@3, ~@17 e5@2 ~@2 c#5@2 ~@2 e2 ~@6", // E
  L: "c#3 a4 ~@3 d3 ~@4 d5@2 e5@4 ~ [a2,a4] ~@3 [d3,d4] ~@3 [c#3,c#4]@2 [d3,d4]@2 [e3,e4]@2 ~, ~@4 d5@2 ~@3 e3@8 ~@15, ~@9 c#5@3 ~@20", // A D C# D E
  M: "[~@2 [a2,a3]@10 ~ d2@2 ~@2 d3 ~@3 d2 f#5@2 ~ d3 d5@2 d2 ~@4 d3 ~@3 d2 f#5@2 [d3,e5] ~ d5 ~ [f#3,f#4]@2 [g3,g4]@2 [a3,a4] ~@3 [g3,g4] ~@3 [f#3,f#4] ~@3 [e3,e4]@2 ~@2, ~@12 a5@9 g5@3 e5@2 ~@2 a5@9 g5@2 ~@25]/2", // A Dsus2 F# G A G F# E
  N: "[a4@2 ~@2 f#4@2 ~@2 [d3,d4] ~@4 d2 ~@2 d3 ~@4 [d2,g5] f#5 ~ e5 ~ d5 ~ d2 ~@3 d3 ~@2 d2 g5@2 ~ [d3,e5] ~ d5@2 [f#3,f#4]@2 [g3,g4]@2 a4@2 ~@2 [g3,g4] ~@3 [f#3,f#4] ~@3 [e3,e4] ~@3 a4, a3 ~@3 f#3 ~@7 a5@8 ~@8 a5@8 ~@2 f#5@2 ~@7 a3 ~@16]/2", // D G5 Dsus2 F# G F# E
  O: "~@3 d4@10 ~ c#5@2 d5 e5 ~@3 c#5@2 d5@2 e5@2 ~@2 a5@2 ~, ~@14 a2 ~@6 a2 ~@3 a3 ~@3 a2 ~@2",
  P: "~ e5 ~@4 e5@7 ~ a5@4 e5 ~@3 a5@3 ~ e5 ~@4 a2, ~@6 a2 ~@7 a2@2 ~@6 a2 ~@7 d5@2",
  Q: "[c#5@2 b4@2 a4 ~ b4@4 e4 e3 ~@3 e2 ~@3 d#5@3 ~ e4@2 ~@2 e3 ~@3 e2 ~@3 c#5@3 ~ a5@4 [e3,g#5]@3 ~ e5@4 [e3,d#5]@3 ~ e4@2 ~@6 e2 ~@3 c#5@3 ~ a5@4 g#5@3 ~ e5@2 d#5@2 c#5@2 d#5@2 e2 d#5@2 c#5@2 d#5@2 e5@2, ~@6 e2 ~@7 e5@5 e3 ~@3 e2 ~@3 d5@8 e3 ~@3 e2 ~@15 e2 ~@3 d5@8 ~@12 e2 ~@3 e3 ~@3 e5@2 ~ e3 ~@3 e2 ~]/3", // E Emaj7
  R: "[~@2 [e3,g#4]@4 [c#3,a4] ~@3 [d3,d5] ~@4 c#5@2 d5@2 e5@4 a4@2 ~@2 d4@2 ~@2 [c#3,c#4]@2 [d3,d4]@2 [e3,e4]@2 ~@3 [a2,a3]@12 d2@2 ~@3 d3 ~@2 g5@2 f#5@2, ~@15 e3@8 a2 ~@3 d3 ~@24 a5@8 d2 ~@3]/2", // E F#m D C# D E A
  S: "e5@2 d5 ~ d2 ~@3 d3 ~@3 g5@2 f#5@2 [d3,e5] d5@3 [f#3,f#4]@2 [g3,g4]@2 a4@2 ~@2 [g3,g4] ~@3, d3 ~@3 a5@8 d2 ~@11 a3 ~@7", // Dsus2 F# G
  T: "f#4@2 ~@2 e4@2 ~@2 [a3,a4] ~@3 f#4@2 ~ d3 d4 ~@3 d2 ~@3 d3 ~@3 [d2,g5] ~ f#5 ~, f#3 ~@3 e3 ~@7 f#3 ~@7 a5@9 ~@3", // A G5
  U: "~ d5 ~ d2 a5@7 g5@2 f#5@2 e5 ~ d5@3 f#3 g4@2 [a3,a4] ~@4 [g3,g4] ~@3, ~@10 f#4 ~@5, ~@21 g3 ~@10", // A G
  V: "[f#4@2 ~@2 [e3,e4] ~@5 [a3,a4] ~@6 [d3,d4]@25 ~@22, f#3 ~@63]/2", // E A D
})).s("gm_piano").gain(0.32)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<~@4 A B C D@2 E F G H ~@3 I J K L M N O ~@4 P ~@2>".pickRestart({
  A: "~@11 d2 ~ f#5@2 [d3,e5] ~@16", B: "~@6 g3 ~@5 [g3,g4] ~@2 f#4 ~@8 a4 ~@3 f#4 ~@3", C: "~@16 d3 ~@3 d2 ~@8 d2 ~@2",
  D: "[~ [d3,e5] ~@15 f#4 ~@7 a4 ~@4 d4@6 ~@15 a3 ~@7 a3 ~@3 a2, ~@15 d3 ~@16]/2", E: "~@12 a3 ~@19", F: "~@5 e4 ~@26",
  G: "~@6 e3 ~@3 e2 ~@3 e3 ~@7 e3 ~@7 c#5@2, ~@30 e3 ~", H: "~@2 e2 ~@3 e3 ~@7 e3 ~@17", I: "~@25 d3 ~@6", J: "~@31 a3",
  K: "~@4 d3@10 ~@4 a3 ~@13", L: "~@2 a3 ~@7 a3 ~@7 a3 ~@7 a3 ~@5", M: "~@3 a3 ~@28", N: "~@15 e2 ~@12 e3@2 ~@2",
  O: "~@4 e3 ~@3 e2 ~@3 e3@3 ~@17", P: "[d3,e5] ~@7 d3 ~@3 d2 ~@2 d3 ~@16",
})).s("gm_piano").gain(0.24)

stack(piano, piano_soft)

More by Bach Johann Sebastian