Strudelify

Here's That Rainy Day

Stan Kenton

KeyC minorTempo120 bpm
0:00/0:00
// Here's That Rainy Day — Stan Kenton
// 120 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: 210 stray notes after a silence of more than 6 bars (from bar 85) are dropped
// note: Full arrangement: all 75 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
const piano = note("<A@3 B@6 C@7 D@8 E@4 F@5 G@5 H I@8 ~@28>".pickRestart({
  A: "[~@16 d4@6 ~@18 a5@4 ~@47 bb4@4 d3, ~@15 [d3,gb3]@12 d3@4 b3@2 d4@6 ab5@6 b5 gb6@2 a6 b6 d7@21 d4@5 ~ [a3,d4]@7 a3@12, ~@15 g2@7 d4@8 a3@44 f2@22, ~@16 [a3,b3]@12 gb3@48 ~ [f3,bb3]@19, ~@24 g2@52 ~@5 d3@3 [d4,f4]@3 d3@3 [d4,f4]@6]/3", // D D5 Asus2 Bb5 Dm
  B: "[~@171 a2@4 ~@14 [c4,eb4,gb4,a4]@3, ~@4 d3@10 d4@10 eb2@6 eb3@2 d4@2 eb3@3 g3@2 bb3@3 [c4,c5]@2 bb3@3 [b3,b4]@5 g2@3 ~ c2@33 c5@14 bb3@4 b3@2 c4@3 db4@2 d4@12 a3@14 g5@6 g6@2 a6@19 d4@7 ~@6 a2@12, ~@9 d5@5 [bb4,d5]@39 c5@18 eb3@6 c4@4 eb4@36 ~@3 e3@55 [d2,a3]@17, ~@12 eb2@3 g4@12 bb2@26 g4@14 c4@2 c3@15 g4@33 ~@6 g3@6 d4@3 g3@43 [gb3,c4,d4]@8 [gb3,d4]@9, ~@18 eb1@35 c4@6 eb2@58 a2@19 a4@39 ~@8 [c4,gb4]@3 d3@6]/6", // Cdim C B Bb D5 D7 D Cdim
  C: "[~@106 eb5@7 [g4,bb4,eb5]@3 ~@13 [c4,eb4]@4 ~@5 e3@3 ~@24 gb4@4 ~@48 bb4@6 [b4,c5], gb3@6 gb3@4 b4@33 e3@38 g4@9 c3@3 eb4@2 c3@5 g3@15 ~@8 [e4,g4]@18 [a4,d5]@17 a3@3 [bb3,d4,f4]@8 eb2@32 gb4@4 g4@5 ab4@4 a4@6 ~@4, ~@3 [c4,a4,c5]@6 gb4@10 gb3@32 d4@4 e4@26 eb4@6 eb5@11 eb3@17 ~@3 c3@11 [gb3,ab4]@4 f3@2 [c4,eb4,a4]@6 f4@11 bb2@17 g4@29 eb3@26, ~@9 d4@7 d3@13 gb4@10 d3@21 gb4@13 b4@3 d5@3 g2@5 c2@17 bb3@2 eb4 g4 bb4@8 eb4@10 c4@3 g3@15 d4@7 d4@7 f3@14 d4@8 eb3@5 g3@5 d4@37, ~@10 b3@3 g2@9 b3@3 d4@11 g2@11 b3@34 [bb4,eb5]@5 g2@28 ~@2 f2@26 ~@3 bb1@24 g3@5 bb2@50]/7", // Eb Cm Cmaj7 Em D5 Bb F Gbsus2 …
  D: "[~@19 c5@3 c5@4 ~@15 c5@3 ~@2 gb3@2 ~@8 c4@5 ~@62 gb5@2 ~@8 gb4@2 ~@35 eb3@3 ~@19 gb3@4 ~@5 d3@3 ~@50 f2@2, ~@2 c5@11 c4@21 e3@4 g3@11 ~@3 gb3@42 d4@16 gb3@3 gb5 b5@2 d6@2 gb6@3 b5@4 gb5@3 d5@2 b4@5 gb4@3 d4@2 bb3 a2@2 eb3@4 ~ f4@2 eb4@11 ab3@3 gb3@2 f3@2 e3@5 d2@24 d4@7 g2@12 g2@14 b4@22 d4@4, ~@4 a2@11 e4@34 ~@7 e4@38 b4@14 d3@36 g3@3 gb4@27 ~@14 a3@16 b3@9 [b3,d4]@13 d4 gb4@29, ~@8 e3@8 g4@28 c5@4 c4@8 ~@5 c4@6 f4@30 ~@8 g2@40 g4@6 d4@2 db4@2 c4 b3@2 bb3@2 a3@14 ~@4 a2@28 ~@3 d3@10 d3@37, ~@10 g3@16 c5@5 a2@17 [d3,c5]@48 ~@2 g1@22 d6@25 f3@4 e4@25 ~@10 gb3@7 ~@5 bb3@9 [a3,d4]@8 [gb3,a3]@9 a3@34]/8", // Bm D7 D5 Gbm
  E: "[~@35 eb2@3 ~@8 eb2@4 ~@69 a2@3 ~@3 [g3,c4,d4]@3, ~ [f3,a3,bb3]@38 ~@3 eb1@18 eb3@3 [g3,c5] c4@2 bb3@3 [b3,b4]@4 g2@4 c2@15 eb3@4 g3@3 c4@10 g3@4 eb3@9 a1@6, ~ d4@8 [d4,f4]@8 [f4,bb4]@22 ~@13 eb2@5 eb3 d4@16 [g4,c5]@49 ~@5, ~@5 d3@7 ~ d3@9 d3@11 d5@5 d4@12 d4@5 bb2@19 c4@16 c3@33 ~@5, ~@17 d4@13 d4@8 [g4,bb4,d5]@38 ~@4 eb2@43 ~@5]/4", // Gsus4 Bbmaj7 C5 B Dm Bb5 C5 Gm
  F: "[~@16 a3@4 ~@3 a2@3 ~@118 b4@2 ~@12 g2@2, ~ a2@6 a2@16 ~@4 [d2,a3,d4]@47 b4@28 d3@8 eb4@3 ab4@3 b4@2 eb5@2 ab5@4 eb6 ab6@7 ab7@15 ~ c1@12, ~@3 d4@10 g3@7 [g3,a3,c4,d4]@7 gb3@16 [c4,e4,gb4,a4]@4 gb3@4 [c4,gb4,c5] a4@22 g4@10 f3@13 b3@2 g2@45 g4@16, ~@4 c4@16 ~@7 c4@8 [c4,e4,gb4]@4 d3@35 [b3,e4]@6 d3@14 g4@10 f3@40 c2@11 ~ c2@4, ~@4 g3@6 e3@16 ~@5 a2@27 gb3@15 g2@14 b3@3 e4@17 b3@37 [e4,e5]@8 e5@8]/5", // D5 Gsus4 Gbm7b5 Cdim Gbm7b5 E5 E
  G: "[c3@3 ~@9 e5@4 ~@2 [a4,c5,e5]@3 ~@23 [b2,c3]@3 ~@22 g4@8 ~@30 eb4@11 ~@10 c4@22 ~@7 a2@3, ~@3 c3@6 e4 g4 b4@5 d2@2 e4@29 [d4,gb4]@11 b3@8 a3@7 ~@4 [a2,gb4]@41 a1@42, ~@5 e3@12 e2@2 ~@2 d1@27 ~@7 a3@7 [d4,gb4]@16 a4@41 ~@9 d4@25 d4@7, ~@6 g3@13 ~@5 d2@5 d4@2 gb3@3 [d4,gb4,b4]@3 a3@3 [d4,c5] gb4@6 [b2,d5]@31 ~@13 g3@5 e4@22 ~ [a3,c4,d4]@9 a3@32, ~@7 b3@12 ~@9 gb4 a4@19 ~@3 gb3@27 ~@8 f4@33 ~@4 a2@9 ~@18 c4@10]/5", // Am Cmaj7 D Bm D7 Bm D7
  H: "~@13 gb3@3, ~ d2@10 [gb3,c4,gb4]@5 d3@5 [c4,eb4,gb4,a4]@11, ~ a3@15, ~@2 [gb3,c4,d4]@9 d4@21, ~@7 a2@25", // Gbdim Cdim D7
  I: "[~@52 b4@103 ~@101, ~@2 a3@10 g2@7 b3 d4 gb4 b3@32 ~@74, ~@6 [c4,eb4,gb4,b4]@18 gb4@11 gb3@15 g4@206, ~@22 d3@3 a4@21 d4@210, ~@25 d4@6 d3@17 gb4@208]/8", // Cdim
})).s("gm_piano").gain(0.26)

// chords · piano · soft notes
const piano_soft = note(`<
  ~ A@2 ~ B@3 C@2 ~ D E ~@3 F@2 ~ G@3 H@3 ~@2 I@2 ~@3 J@3 ~ K@2 L ~ M@2 ~ N O P Q R@8 ~@12 S@8 ~
>`.pickRestart({
  A: "[~@10 b5@2 ~@2 gb5@31 ~@19, ~ gb4@21 ~@10, ~ a4@10 ~@5, ~@3 gb5@3 a5@16 ~@10, ~@5 d6@17 ~@10]/2",
  B: "[~@42 g3@20 g3@23 ~@11, ~@30 g2@55 ~@11]/3",
  C: "[~@12 d7@11 ~@9, ~@9 d5@37 ~@18, ~@7 a5@16 ~@9, ~@15 d6@31 ~@18]/2", D: "~@4 e4@19 ~@9, b3@15 ~@17",
  E: "~@4 g4@13 ~@15", F: "[~@28 a4@9 ~@27, g3@37 ~@27, ~@28 b4@3 ~@33]/2",
  G: "[~@10 [d4,gb4]@5 b3@5 b3@21 ~@7, ~@8 c4@22 gb4@5 ~@61]/3", // D
  H: "[~@36 gb3@8 gb3@9 ~@30 d6@13, ~@12 d3@28 ~@21 gb3@12 gb5@3 a5@20, ~@2 b3, ~@35 a4@13, ~@3 d5]/3",
  I: "[~@40 eb4@19 ~@5, ~@20 g2@39 ~@5]/2", J: "[~@13 b5@12 ~@3 [e4,b4]@9 ~@11]/3",
  K: "[~@9 a3@5 ~@24 g3@17 g3@9, ~@14 db4@41 ~@9, ~@18 e3@37 ~@9]/2", L: "~ g3, g3 ~, ~@4 a2@25 ~@3, ~@9 d3@23",
  M: "[~@25 b3@13 ~@26]/2", N: "~@5 c-1!3", O: "~@27 b4@5, ~ eb4@31, ~@6 c-1@15 c-1@11, ~@11 a4@21",
  P: "~@5 c-1@5 ~@16 eb4@5 gb5, f5, ~@10 c-1@11 c-1@11, ~ d3", Q: "~@4 c-1@5 c-1@10 ~@5 e5@8, ~@19 c-1@13",
  R: "[~ c-1@5 ~@19 c-1@9 c-1@9 ~@48 gb4@165, ~@6 c-1@9 c-1@10 ~@18 c-1@22 eb4@4 d2@13 eb5@174, ~@11 ab5@245, ~@5 b5@59, ~@3 f3@13]/8",
  S: "[~ eb4@15]/8",
})).s("gm_piano").gain(0.1)

stack(piano, piano_soft)

More by Stan Kenton