Strudelify

I Wish It Would Rain Down

Phil Collins

KeyA♭ majorTempo133 bpm
0:00/0:00
// I Wish It Would Rain Down — Phil Collins
// 133 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 102 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(133/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
const piano = note(`<
  A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J K@8 L@7 M@4 N@6 O@2 G@2 P@2 Q R@2 S@3 T@5 S@3 U V W X@5 Y@4 Z@6 AA@7 AB@8 AC@5
>`.pickRestart({
  A: "[[eb4,ab4,c5]@3 [ab4,c5,eb5]]/2", B: "[[eb4,g4,bb4]@3 [g4,bb4,eb5]]/2",
  C: "[[f4,ab4,c5,eb5]@3 [f4,ab4,c5,eb5]]/2", D: "[[f4,ab4,c5,eb5]@3 [g4,bb4,eb5]]/2",
  E: "[~@5 eb5!3 eb5!5 ~@2 c5, c5@13 c5@2 ~, [eb4,ab4]@3 eb4, ~@6 ab4!2]/2", // Ab5
  F: "[~@15 [ab4,c5] eb5@2 eb5@2 eb5@4 bb4@2 ab4@2 f4@2 bb4@2, [eb4,g4]@3 ~, ~@7 bb4@5 ~@4]/2", G: "[f4,ab4,eb5]/2",
  H: "[[f4,ab4,eb5]@3 [g4,bb4,eb5]]/2", I: "[~@6 eb5!2 eb5@2 eb5@2 eb5 c5 ab4 c5, [eb4,ab4,c5]@6 [eb4,ab4] ~]/2",
  J: "bb4@7 bb4, [eb4,g4]", // Eb
  K: "[eb5!2 bb4 ab4 f4 bb4 [f4,ab4,eb5]@16 ab4@12 ab4 bb4@3 [f4,ab4,db5]@8 db5@2 db5 c5 db5 c5 ~@2 eb4@2 eb4@2 ~@4 [eb4,g4,bb4]@2, ~@11 [f4,eb5]@8 ~@4 f4@4 ~@5, ~@23 ab4@3 ab4 ab4@4 ~, ~@53 bb4@9 ~@2]/8", // Fm7 Db Eb F7
  L: "[~@2 f4 ab4@2 ~ db5@8 db5@2 db5 c5 db5 c5 ~ c5 bb4@4 c5@2 ~@2 ab4@3 ab4@3 bb4 ~ db5@8 db5@2 db5 c5 db5 c5 ~ bb4 eb4 f4, ~@5 ab4@15 ab4@2 ~@6 eb5@5 ~@5 f4@16 ~@2, ~@6 f4@16 [eb4,ab4]@8 [eb4,bb4]@4 ~@3 ab4@15 ab4@2 ~@2]/7", // Ab5 Eb5
  M: "[ab4@2 db5@2 ~@10 eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 ~@4 c5@2 ~@15 [ab4,c5] eb5@2 eb5@2 eb5@4 bb4@2 ab4@2, ~@2 c5@13 c5@2 ~@8 bb4@5 ~@2, ~ [eb4,ab4]@6 eb4@2 [eb4,g4]@6 ~, ~@7 ab4 ab4 ~@7]/4", // Ab Ab5 Eb
  N: "[f4 bb4 [f4,ab4,eb5]@16 [f4,ab4,eb5]@12 [g4,bb4,eb5]@4 ~@6 eb5!2 eb5@2 eb5@2 eb5 c5, ~@17 [eb4,ab4,c5]@6 [eb4,ab4]]/6", // Fm7 Eb Ab Ab5
  O: "[ab4 c5 bb4@7 ~ eb5!2 bb4 ab4 f4 bb4, ~ [eb4,g4]@5 ~@2, ~@9 bb4@3 ~@4]/2", P: "[ab4@12 ab4 bb4@3, [f4,eb5]]/2",
  Q: "[f4,ab4,db5]", R: "[db5@2 db5 c5 db5 c5 ~@2 eb4@2 eb4@2 ~@4, f4 ~, ab4@3 ab4 ab4@4, ~@7 bb4@9]/2",
  S: "[[eb4,g4,bb4]@4 f4 ab4@2 ~ db5@8 db5@2 db5 c5 db5 c5 ~ c5, ~@7 ab4@15 ab4@2, ~ f4@2]/3", // Eb
  T: "[bb4@4 c5@2 ~@2 ab4@3 ab4@3 bb4 ~ db5@8 db5@2 db5 c5 db5 c5 ~@2 eb4@2 eb4@2 ~@4, [eb4,ab4]@8 [eb4,bb4]@4 ~@3 ab4@15 ab4@2 ab4@8, ~@6 eb5@5 ~@5 f4@16 ~@8, ~@31 bb4@9]/5", // Ab5 Eb5
  U: "[eb4,ab4,bb4]@4 c5 c5@3, ~ [db4,f4,ab4]", V: "[eb4,bb4,eb5]", W: "[c4,eb4,ab4] [ab3,eb4] [c4,eb4,ab4] ab3",
  X: "[[c4,eb4,ab4]@4 [ab3,eb4]@4 [c4,eb4,ab4]@4 ab4@2 ab4@2 ~@4 f5@4 f5@2 [d4,f4,bb4]@4 ab3@4 [d4,f4,bb4]@4 c4@4 [d4,f4,bb4]@4 [ab3,ab4]@4 [f4,ab4,db5]@4 ab5@2 ~@2 [f4,ab4,db5]@4 db4@4 f5 eb5 [f4,ab4,db5]@4 db4@4 [f4,ab4,db5,f5]@4, ~@7 ab3@2 [d4,f4]@2 ~@16 db4@2 ~@11, ~@8 bb4@2 ~@3 f5@4 ~@11 ab5@10 ~@2]/5", // Ab Ab5 Ab Bb Ab Db Dm
  Y: "[db4@4 [eb4,ab4,c5]@4 c4@4 [c5,f5]@2 ~@2 c4@4 [eb4,ab4,c5]@4 c4@4 c5@2 bb4@2 ~@2 bb4@2 [c4,eb4,ab4]@4 ab3@4 ab5 ab5@2 [ab3,bb5]@4 bb5@2 ab5@2 ab5@2 ~@4 bb5!2 [ab3,ab5], eb5@12 [eb4,ab4]@4 ~@12 c4@8 ~@8 [c4,eb4,ab4]@4 ~@3 [c4,eb4,ab4]@4 ab3@4 [c4,eb4,ab4]@4 ~, ~@14 c5@6 ~@8 ab4@4 ab4@4 ~@21 bb5@4 ~@3]/4", // Ab F5 Ab Absus2 Ab Ab5 Ab
  Z: "[ab5!2 ~ [d4,f4,bb4]@4 ab3@4 ~@2 ab5@2 c5@2 bb4@2 [d4,f4,bb4]@4 ab3@4 [db4,f4,bb4]@4 ab4@2 ab4@2 [f4,ab4,db5]@4 [db4,ab5]@4 [f4,ab4,db5]@4 db4@4 f5 eb5 db5@2 db4@4 [f4,ab4,db5,f5]@4 db4@4 [eb4,ab4,c5]@4 c4@4 [eb4,ab4,c5]@4 c4@4 [eb4,ab4,c5]@2 ab3@2 bb3@2 ab3@2 c4@2 eb4@2 f4, ~@2 ab5@11 ~@30 ab5@8 db5@2 ~@10 eb5@20 ~@13, ~@11 [d4,f4,bb4]@4 ab3@4 ~@12 ab3@4 ~@16 [f4,ab4]@4 ~@41]/6", // Bb Bbm Db Db5 Db Ab Bb Fm
  AA: "[~ eb4@2 [ab4,c5,eb5]@4 eb4@4 [ab4,c5,eb5]@4 f4@4 [ab4,c5,eb5]@4 eb4@4 [ab4,c5,eb5]@4 f4@4 [g4,bb4,eb5]@4 eb4@4 [g4,bb4,eb5]@4 eb4@4 [g4,bb4,eb5]@4 eb4@4 [g4,bb4,eb5]@8 [f4,ab4,c5]@4 c4@4 [f4,ab4,c5]@4 c4@4 [f4,ab4,c5]@4 c4@4 [f4,ab4,c5]@8 [f4,ab4,c5]@4 c4@4 [f4,ab4,c5]@4 c4]/7", // Ab Eb Fm
  AB: "[~@3 [f4,ab4,c5]@4 c4@4 [g4,bb4,eb5]@4 [g4,bb4,eb5]@4 [ab4,c5,eb5]@4 eb4@4 [ab4,c5,eb5]@4 f4@4 [ab4,c5,eb5]@4 eb4@4 [ab4,c5,eb5]@4 f4@4 [g4,bb4,eb5]@4 eb4@4 [g4,bb4,eb5]@4 eb4@4 [g4,bb4,eb5]@4 eb4@4 [g4,bb4,eb5]@8 [f4,ab4,c5]@4 c4@4 [f4,ab4,c5]@4 c4@4 [f4,ab4,c5]@4 c4@4 [f4,ab4,c5]@8 [f4,ab4,c5]@4 c4@4 [f4,ab4,c5]@4 c4]/8", // Fm Eb Ab Eb Fm
  AC: "[~@3 [f4,ab4,c5]@4 c4@4 [g4,bb4,eb5]@4 [g4,bb4,eb5]@4 [f4,ab4,c5]@4 c4@4 ~@4 eb4@4 f4@4 ab4@4 [eb4,ab4,c5,f5]@32 ~@5, ~@27 [c4,f4,ab4,c5]@8 ~@45]/5", // Fm Eb Fm Fm7 Fm
})).s("gm_piano").gain(0.36)

stack(piano)

More by Phil Collins