Strudelify

Let's Make the Water Turn Black

Zappa

KeyA minorTempo120 bpm
0:00/0:00
// Let's Make the Water Turn Black — Zappa
// 120 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 64 bars on a 16-step grid, each part at one level. 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.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · piano
const piano = note(`<
  A@3 B C D E F C G H I C D E F C G J K L M N O L P Q R C D E F C G S T U V W X U Y W Z L AA N AB L P Q R C AC AD AE C D
  S AF S AF AG AH
>`.pickRestart({
  A: "~ d4 g4 c5 d5 g5 c6 d6 g5 c6 c6@6", B: "~ d4 g4 c5 d5 g5 c6 d6 g5 c6 c6@2 g4@2 g4@2", C: "g5 e5!2 d5 e5 b4!2 g4",
  D: "a4!2 b4 g4 a4@4", E: "a4!3 c5 [e4,g4,b4]@2 ~ b4, [d4,f4]!2 ~ [e4,g4]",
  F: "c5!3 d#5 [g4,b4,d5]@2 g4!2, [f4,a4]!2 ~@2", G: "a4@2 b4 g4 a4@4", H: "[d4,f4,a#4]@2 d5 f5 [g4,a#4,d#5]@2 g5@2",
  I: "[c5,d#5,g#5] g#5 d#5 c5 [b4,d5,g5]@2 ~@2", J: "[d4,f4,a#4] a#4 d5 f5 [a4,c#5,e5] e5 d5 e5",
  K: "[a4,d5,f#5]@3 d4 d4@2 ~@2", L: "[b3,d4,g4]@2 d4 g4 [c4,f4,a4]@2 g4 a4", M: "[g4,b4,d5] d5 b4 g4 [a3,c4,f4]@4",
  N: "[b3,d4,g4] g4!2 b4 [c4,e4,a4] a4 g4 a4", O: "[d4,f#4,c5] b4 a4 g4 f#4 d4 ~ d4",
  P: "[d#4,g4,a#4]@2 a4 g4 [d4,f#4,d5]@4", Q: "[f4,g#4,c5] g#4!2 f4 g#4 f4 g#4 c5", R: "[b3,d4,g4] ~@3",
  S: "[c4,f4,a4]@2 [c4,f4,a4] c5 [d4,g4,b4] a4 [d4,g4]@2", T: "~@2 [c4,e4]@4 ~ d#5, a4@3 ~", U: "e5 b4!2 g4 b4@2 g4 b4",
  V: "a4@2 b4 e5 c#5@2 ~ d#5", W: "e5 b4!2 g4 b4!2 g4 b4", X: "a4@2 ~@5 d#5", Y: "c5!2 e5 g5 f#5@2 ~ d#5",
  Z: "[f#4,a4,d5] ~@3", AA: "[g4,b4,d5] d5 b4 g4 [a3,c4,f4]@2 ~@2", AB: "[d4,f#4,c5] b4 a4 g4 f#4 d4 ~@2",
  AC: "a4!2 b4 g4 a4@2 ~@2", AD: "[d4,f4,a4]@2 [d4,f4,a4] c5 [e4,g4,b4]@2 ~ b4, ~@3 [e4,g4]",
  AE: "c5!3 d#5 [g4,b4,d5]@2 ~@2, [f4,g#4]!2 ~@2", AF: "~ [c4,e4]@2 ~, a4@3 ~",
  AG: "[c5,f5,a5]@2 [c5,f5,a5] c6 [d5,g5,b5] a5 [d5,g5]@2", AH: "[c#5,e5,a5]",
})).s("gm_piano").gain(0.41).pan(0.8)

// chords · piano
const piano_2 = note(`<
  A ~ A@2 B C D E B F G H B C D E B F I J K L@2 M N O P Q B C D E B F R S T U T V T W X Y K L@2 Z N O P Q B C AA AB B F
  AC S AC S AC AD
>`.pickRestart({
  A: "[c2,g2,c3,d3]", B: "[c3,e3,g3,c4]!2 [b2,e3,g3,b3]!2", C: "[a2,c3,e3,a3]!4", D: "d2@3 d2 e2@3 e2",
  E: "f2@3 f2 g2@2 g2@2", F: "[a2,c3,e3,a3]@3 [a2,c3,e3,a3] [a2,c3,e3,a3]@2 [a2,c3,e3,a3]@2",
  G: "[a#2,d3,f3,a#3]@3 [a#2,d3,f3,a#3] [d#3,g3,a#3]@3 [d#3,g3,a#3]", H: "[g#2,d#3,g#3]@3 [g#2,d#3,g#3] [d3,g3]@2 g2@2",
  I: "[a#2,d3,g3,a#3]@3 [a#2,d3,g3,a#3] [a2,c#3,e3,a3]@3 [a2,c#3,e3,a3]", J: "[d2,a2,d3]@3 d3 d3@2 [d2,d3]@2",
  K: "g2!2 f2!2", L: "g2!2 a2!2", M: "b2!2 c3 d3", N: "[g2,g3]!2 [f2,f3]!2", O: "[d#2,d#3]!2 [d2,d3]!2",
  P: "[c2,c3]@3 [c2,c3] [c2,c3]@2 [d#2,d#3]@2", Q: "[d2,d3]@4 [g2,g3]!2 ~ [g2,g3] [g2,g3]@4 [g1,g2]@4", R: "f2!2 g2!2",
  S: "[a2,e3,a3]@8 [a2,e3]@3 [a2,e3] [a2,e3]@2 ~@2", T: "e2@2 ~ [g3,b3,e4] [g3,b3,e4]@2 ~ e3",
  U: "a2@2 ~ [a3,c#4,e4] [a3,c#4,e4]@2 a2@2", V: "a2@4 [a3,c#4,e4]!2 ~ [a3,c#4,e4] [a3,c#4,e4]@4 a2@4",
  W: "[c3,e3,g3]@3 [c3,e3,g3] [b2,d#3,f#3]@2 [b2,d#3,f#3]@2", X: "e2@2 ~ [g3,b3,e4] [g3,b3,e4]@2 [b2,e3,b3]@2",
  Y: "[d3,a3,d4]@4 [d3,d4]!2 ~ [d3,d4] [d3,d4]@4 [e2,d3]@4", Z: "b2!2 c3!2", AA: "[d2,d3]@3 [d2,d3] [e2,e3]@3 [e2,e3]",
  AB: "[f2,f3]@3 [f2,f3] [g2,g3]@2 [g2,g3]@2", AC: "[f2,c3,f3]!2 [g2,d3,g3]!2", AD: "[a2,e3,a3]",
})).s("gm_piano").gain(0.41).pan(0.3)

stack(piano, piano_2)

More by Zappa