Strudelify

Too Close for Comfort

George Shearing

KeyA minorTempo100 bpm
0:00/0:00
// Too Close for Comfort — Shearing George
// 100 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 113 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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@6 B@2 C@7 D@7 E@6 F@5 G@4 H@8 I@8 J@5 K@6 L@3 M@3 N O@8 P@4 Q@7 R@4 S@7 T@5 U@6 ~>".pickRestart({
  A: "[~@39 b4@6 ~@13 [e4,e5]@14 ~@16 c5@6 ~ e2@12 f4@13 ~@16 d5@6 [d2,e5]@12 [g5,g#5]@2 a5@12 ~@18 f5@6, ~@20 a2@25 c5@26 ~@12 f4@11 b4@26 ~@11 e4@11 ~@50, ~@35 a4@11 f#2@26 [b2,d5]@24 ~@24 a2@22 ~@26 [g2,g5]@24, ~@57 [a3,c4]@14 ~@11 [a3,d4]@13 ~@35 [g3,c4]@12 ~@50, ~@66 c5@5 ~@25]/6", // E Dsus2 G#maj7 Bm G Am D5 C5
  B: "[~@11 d4@13 ~@33 c6@7, e5@26 ~@9 [c3,a3]@11 [a3,c4,f4]@18, ~ c3@23 f2@23 ~@17, ~@39 f5@8 ~ a5@16, ~@44 g5@5 ~@7 e4@8]/2", // F
  C: "[~@19 a5@7 ~@22 b5@8 a2@10 ~@6 g5@7 ~@20 a5@7 ~@17 f5@7 ~@12 [c3,e3,a#3]@13 ~@7 g5@5 f5 ~@8 e5@5 d#5 ~@28 d5@14, ~ [b5,c6]@2 b5@24 g#5@30 ~@49 g5@24 c2@25 ~@38 [f#3,a3,d#4]@15 e2@16, ~@2 b2@24 e2@31 ~@22 [d2,f#5]@28 g2@24 ~@24 f2@13 ~ f5@13 e5@2 ~@17 b4@10 ~@13, ~@12 [a3,d#4]@14 ~@30 a5@23 ~@51 e5@38 g5@2 ~@13 d#5@26 ~@15, ~@13 f#3@14 ~@39 [d#3,g3,c#4]@13 ~@10 [d3,f#3,c4]@18 ~@10 [c#3,f3,b3]@14 ~@36 a3@15 b2@27 ~@15]/7", // C7 Cmaj7 D#dim D Adim D#7 D7 C#7
  D: "[[a3,c#5]@6 ~@18 b3@7 ~@20 e5@2 f5@2 ~@12 b4@11 ~@7 c5@3 ~@3 b4@3 ~@4 e4@3 ~@13 f4@4 ~@5 d4@4 ~@24 b4@3 ~@20 e5@8 ~@17 c5@7 b4@18, ~@6 c5@25 a2@24 e5@2 d#5@6 f5@4 ~@13 b4@8 g#4@4 ~@2 a4@7 f4@10 d5@17 ~@11 [e3,c4]@15 c5@28 ~@42, ~@18 g#4@14 ~ a4@23 a2@10 ~@12 a2@12 [e3,c4]@12 a2@11 [f3,b3]@15 a2@28 ~@11 [e3,a3,c4]@16 ~@10 [a3,d4,f4]@13 ~@18, ~@42 [e3,c4]@15 ~@2 b5@6 d#5@25 ~@18 b4@5 d4@8 f4@7 ~@10 a3@10 a4@8 ~@68, ~@62 a5@4 ~@17 d5@7 ~@16 g#4@10 ~@2 e4@9 e4@28 f#2@27 [b2,d5]@24 e2@14 ~@4]/7", // A C Fdim Am Dm C Bm
  E: "[~@23 d5@6 ~@14 a5@13 ~@19 f5@7 [c3,e5]@22 ~@33 c6@6 b5 ~@28 g#5@18 b5@2, ~@7 a2@23 ~@12 g#5@3 ~@69 a3@8 f5@4 g5@18 ~ b5@26 ~@21, ~@17 [g3,c4,e4]@12 [d2,e5]@15 ~@12 [g2,g5]@26 ~@22 f2@21 c4@19 b2@26 ~ e2@21, ~@19 c5@10 ~@12 g5@3 ~@23 [f3,b3]@15 ~@32 c3@13 ~@8 e4@9 ~@13 [f#3,a3,d#4]@14 ~@21, ~@119 c5@8 ~@4 a5@13 c6@2 ~@19 a5@9 ~@18]/6", // C Dsus2 G Fdim D#dim
  F: "[~@22 g5@6 ~@22 a5@7 ~@16 f5@7 ~@13 [c3,e3,a#3]@13 ~@6 g5@6 f5 ~@7 e5@4 ~ e5@2 ~@21 b4@6, ~@4 a2@11 [d#3,g3,c#4]@13 [d2,f#5]@29 [g2,g5]@23 e5@38 a3@13 b2@29, ~@6 a5@23 ~@10 [d3,f#3,c4]@18 ~@10 [c#3,f3,b3]@14 c2@25 f2@13 g5@2 ~@9 d#5@2 ~ d#5@27, ~@60 f5@6 ~@5 [f#3,a3,d#4]@9]/5", // C7 D#7 D G D7 C#7 D#dim
  G: "[~@18 a3@5 ~@12 g#4@11 ~@21 e5@2 ~@2 f#5 ~@22 g#4@3 ~@29 f4@2, ~ e2@16 c#5@6 g#3@23 [a2,a4]@23 g5@2 ~@2 f5@8 d#4@13 a2@11 e3@12 a2@11, ~@2 d5@22 ~@10 b3@13 ~@10 c4@13 a2@10 [f3,b3]@9 d5@3 c5@4 ~@5 a4@17 g#4@10, ~@12 f3@35 ~@11 e3@13 ~@6 d#5@19 ~@8 [a3,c4]@11 f4@4 ~ b4@8, ~@12 [a#3,d4]@12 [d4,c5]@23 ~@18 d#5@5 ~@5 e5@7 ~@4 b4@9 ~@2 b4@8 ~@7 e4@6 ~@5 d5@5]/4", // A Fdim Am A# D7
  H: "[~@34 b4@4 ~@17 e5@6 ~@17 [e4,e5]@6 ~@15 c5@6 ~@16 [c4,a4]@4 ~@5 e4@6 ~@6 g#4@7 ~@15 [d4,f4,d5]@6 ~@5 f4@6 ~@8 b4@7 ~@35 g3@5 ~@19 f#3, f3@15 ~@11 g3@12 ~@11 [a#3,c#4,g4]@13 ~@6 a3@37 [g2,b4]@21 ~@10 f4@13 [c3,g4]@22 ~@10 [c4,g4]@16 a4@12 c5@3 c4 d5@3 b3@6 ~@3 c4@2 c6@11 ~@13 a5@5, b3@11 c#4@4 c#4@23 ~@23 d3@23 ~@10 a4@10 ~@13 g4@9 b4@12 ~@22 c4@10 e4@12 ~@14 f#2@21 e5@20 ~@9 d#3@8 g#2@2, ~ e4@11 b3@4 ~@15 a4@7 ~@2 c#5@22 f5@22 ~@5 g4@15 ~@11 b3@10 d4@12 f5@13 e5@20 c5@28 ~@9 a3@12 ~@2 a3@15 [b2,f#3,b5]@20, ~@6 d4@8 a2@23 ~ a2@24 ~@11 d4@11 [f4,d5]@21 ~@6 g3@39 ~@5 g3@43 ~@4 e3@35 ~@4 e3@14 ~]/8", // E F Dm Gdim G C5 B5 Dm
  I: "[~@4 b3@6 ~@7 c#6@5 ~@17 g#5@4 ~@18 b5@7 ~@64 a3@6 ~@10 b3@8 g#3@11 ~ [d4,g#4]@14 ~ [e3,c4]@15 ~@42 e5@5 ~ d5@10, g#5@10 [c#3,g#3]@12 f#2@16 a3@5 b2@11 e4@5 d#4@9 [e2,g#5]@22 a4@11 c4@5 d4@6 d#4@26 e3@30 ~@14 a2@34 ~@12 [a3,c4,e4]@18 ~@10, ~@16 f3@6 ~ c#3@21 [f#3,f#5]@25 ~@5 e3@39 a4@13 b3@13 [a3,d4]@18 ~@10 f3@16 ~@32 f#2@31 ~@10, ~@24 a5@21 ~@5 c#4@19 ~@10 c4@10 a3@7 b3@19 ~@5 c4@20 f4@28 ~@15 a4@25 ~ a4@7 c5@30 ~@10, ~@29 f#3@5 g#3@11 b3@24 ~@5 b3@9 ~ b3@7 f5@24 f5@26 e5@27 ~@44 b4@5 ~@28 b2@11]/8", // Ddim C C#5 E Am F# D5
  J: "[~@8 c5@6 ~ e2@25 ~@16 d5@5 ~@13 a5@13 ~@24 a5@4 ~ c3@24 ~@18 f5@2, ~@14 b4@26 a2@21 d2@11 [f3,c4,e4]@16 g2@27 e5@25 f2@20, ~@51 [c4,e4,c5]@11 e5@13 ~@12 g5@30 ~@33 [c3,a3]@10, ~@31 c5]/5", // Fmaj7 C F
  K: "[~@12 c6@9 ~@38 [g#3,d4]@11 ~@17 g5@6 ~@17 a5@8 ~@38 [c3,e3,a#3]@12 ~@6 g5@5 ~ f5 g5 ~@6 e5@4, [a3,c4,f4]@21 b5@2 b5@23 e2@25 ~@9 d#3@14 ~@10 d3@15 ~@10 [c#3,f3,b3]@15 ~ e5@36 ~ f5@10, ~@2 g5@20 ~@10 [f#3,a3]@8 a5@9 ~@21 a2@11 [g3,c#4]@14 ~@48 c2@25 ~@24, ~@6 a5@16 c6@2 ~@9 d#4@15 g#5@34 a5@12 ~@42 f5@10 ~@33 a3@13, ~@10 e4@12 b2@26 ~@10 f3@13 ~@4 b5@8 ~@10 [d2,f#5]@25 [g2,g5]@26 ~@24 f2@13 ~@11]/6", // G#dim C7 F C#7 F#m Gdim D G
  L: "[~@2 d#5 e5 ~@41 a3@6 ~ c5@11 g#4@12 ~ a4@20, ~@3 b2@25 e2@16 c#5@7 g#3@25 ~@20, ~@4 d#5@26 d5@21 d4@13 ~@32, ~@14 f#3@8 b4@9 ~@8 [a#3,d4]@13 ~@23 a2@21, ~@15 a3@15 ~@9 f3@37 ~@20]/3", // A#
  M: "[~@4 e5 ~@5 e5@2 ~@8 a4@2 ~@16 a3@5 b5 c6@2 ~@15 e5@2 ~@2 d5@2 ~ d5 ~@14 a3@5 ~@6 c6@2, ~@4 a2@10 ~@4 c5@4 g#4@2 ~ b4@7 e3@13 ~@3 g#5@4 b5@4 ~ e5@2 e5@2 ~@3 e5@3 e5@2 e5@6 e5@14 ~@3 b5@4, ~@5 f5@2 d5@4 ~ d5@2 b4@5 b4@4 [a2,a4]@5 e5@16 ~@2 b5@4 b5 d6@3 [d4,g#5]@14 ~@3 c5@6 a3@5 ~@6 a2@8, ~@6 e5@3 f5@4 c5@2 d5@2 d5@6 ~@3 c5@7 c4@12 ~@2 a5@2 a5@6 ~ f5@2 f5@2 f5@3 f5@5 ~@2 d5@3 d5@5 c4@11 ~@7, ~@8 a5@5 ~@3 f5@8 ~@3 d5@6 ~@11 a2@11 ~@12 a2@10 e3@12 ~@7]/3", // A Ddim
  N: "~@13 c6@2 ~@2 e5@2 ~@10 a4@2 g#4, f3@8 a5@2 b5@5 a2@7 e3@10, d6@2 [d4,f5]@13 f5@4 f5@4 c5@2 ~ c5@6, ~ b3@15 ~@5 d5@3 [c4,d5]@8, ~@5 g#5@11 ~@4 e5@4 ~@3 b4@5", // Dm Csus2
  O: "[~@54 b4@2 ~@2 a4@2 ~ a4@2 ~@4 e5@2 ~@9 g#4@2 ~@4 g#5@2 ~@4 d5@2 ~@2 c5@2 ~@2 b4@2 ~@13 c5@2 ~@2 c5@2 ~@12 c5@2 ~@67 [b2,e5]@2 ~@29 f5@2 ~@7 c#5@2 ~@7 a#5@2 ~@4 g5, ~ a4@2 ~ d5@11 g#6@5 g#5@2 f5 d5 b4@2 a1@13 b2@5 c3@13 b4@3 d2@12 d5 c5@2 b4 [c3,a4]@5 d5@6 g#5@2 f5@11 ~ g#4@14 e5@2 ~@2 e5@4 e5@8 d3@13 e5 f3 d5 e5@2 d5 g2@8 a#5 a5 g5 [a#3,c4,e4,f5] e5 d5@2 c5 a#4 c3 a4@2 f2@11 a4 g3@6 ~@2 d5 e5 f5@2 [c4,d5]@2 e5 f5 e5@2 f#3@7 f#5@3 a5@2 b5 c6 d6 a3 c6 b5@2 g#3@9 b5@10 [a2,e3]@7 f#5 g5@2 a5@3 c#6 [g3,a#5]@4, ~@2 [a2,b4]@14 f6@2 d6@7 c5@5 a5@4 a4@8 e2@6 ~ a4 a2 c5@2 e3@7 [a2,g#4]@3 d3@17 e2@10 [g#3,b3,d4]@2 e5@8 a4@2 ~ a4@13 e3@10 c6 a5@2 f5@2 g2@7 b5@2 a5@11 c5@4 g5@2 c6@15 ~ c5@4 a5@8 c3@14 f5@2 ~ d#5@16 e3@7 b5 d6@3 g#5 b3@3 e5 f5@2 e5@4 ~@2 d5@12 a5@2, ~@6 f5@5 f6 g#6 [b3,d4,b6]@14 ~ a4@5 [e2,c5]@10 ~@4 e4@9 c5@6 ~ b4@7 e5@10 b4@2 ~ f5@3 b5@14 ~@4 b4@2 [e2,c5] d5 c3 e5 c5 e5 d3@3 a2@18 g3@8 g5@2 f5@9 e3@17 g4@2 a4@7 f5@9 ~ c5@13 ~@3 e5@14 a5@2 ~@3 a5@14 d5@3 a3@16, ~@7 g#5@2 b5 d6 f3@8 b5@8 ~@2 e5@2 e5@5 a2@7 ~@3 d4@16 ~@2 c5@2 d5@3 f5@11 ~ b2@12 d5@3 b4 c5@2 ~ a1@16 ~@5 c5@3 a3@6 d5@4 b4@19 ~ e5 c2@17 ~@3 f5 c3@4 [f3,c5]@7 a3@15 ~ b3@6 g#5@11 g#5@5 e2@15 ~@4 e5@12]/8", // E5 F A#sus2 Csus2 A5 Gm Asus2 Amaj7 …
  P: "[~@5 b5@2 ~@9 d5@2 c5@2 ~@12 b5@2 ~@9 g5@2 ~@3 a#5@2 ~@4 g5@2 ~ g5@2 ~@8 e5 ~@7 [b2,c5]@2 ~ f#5@2 ~@24 f4@2 ~@21 c4, d3@10 a5 g5 a3 f#5@5 [g2,d3]@8 e5@2 f5 g5@2 g#5 f3@2 g#5 b5 g#5@2 f5@2 e5@7 a5@2 ~@2 a#5@6 ~@4 f6@5 f5@2 e3@9 d#3@13 d#5@2 b4 a#4@3 d3@7 a#4@5 e4@5 a#4 g4 e4@4 c4@7 [e2,d#4]@2, ~ f#3@13 e5@5 ~ b4@17 c3@8 g5@3 ~@5 a5@3 a5@2 ~ f5@5 a5@4 ~ c5@5 e5@2 ~ d#5@6 d#5@3 b2@8 e2@17 a#4 c#5@5 c3@11, ~ f#5@2 ~ a5@3 c6@12 ~@4 c5@2 d5@12 g5@2 ~@3 f5@4 c3@10 [f2,c3]@4 ~@3 c6@5 ~@3 g5@2 g5@3 ~@5 f#5@3 b4@5 f#5@7 ~ f4@5 d5@4 c#3@14 d#4@2 f#4 a4@5, ~@2 g5@6 b5@11 ~@2 g3@18 e3@11 [g3,c6]@8 ~ f3@10 ~@3 c6@4 ~@4 b5@16 ~@2 a#4@2 d5 f5@7 ~ g4@5 e2@10 f#4@4]/4", // Cmaj7 G5 Emaj7 F5 C5
  Q: "[~@3 b3@2 ~@7 f5@2 g#5@2 b5@3 ~@5 b4@2 ~@8 d5@2 e5@2 f5@3 ~@6 b4@2 ~@9 d4@4 ~@17 a4@5 ~@22 f4@11 ~@25 b4@4 ~@23 e5@6 ~@22 c5@5 ~ e2@21, ~ g#2@8 b4@2 d5@5 ~@3 a5@7 a4@2 g#4@10 ~@3 a4@5 a4@5 ~ d5@11 ~@5 c5@6 ~@10 g#4@14 d5@19 ~@30 c5@29 ~@26 b4@22, ~@5 d4@9 a1@8 c5@5 ~@3 a4@3 c5@4 ~@12 [f3,b3,c5]@14 ~@8 [e3,a3,c4]@14 ~@12 [f3,b3,d4]@21 ~@28 f#2@30 ~@48, ~@6 f4@9 ~ a2@11 [e3,c4]@11 a2@11 d4@7 e4@6 [a2,e4]@11 ~@12 a2@32 [a2,e4]@31 ~@28 b2@28 ~@20, ~@8 g#4@8 ~@5 e5@6 ~@4 b4@6 ~@6 g#4@7 ~@3 f4@9 ~@11 b4@12 ~@6 b4@26 ~@23 a4@8 ~@27 d5@28 ~@21]/7", // F Am Bdim C A5
  R: "[~@23 d5@6 [d2,e5]@13 ~@2 a5@16 ~@21 f5@5 ~@14 e3@14 ~@9 c3@5, ~@7 a2@23 ~@30 [g2,g5]@28 ~@26 f2@14, ~@18 e4@12 ~@13 g#5@2 ~@42 c3@26 ~@15, ~@19 c5@11 ~@12 g5@2 ~@42 e5@30 ~@12]/4", // Dsus2 G
  S: "[~@19 [e4,c6]@12 b5 ~@22 a5@7 ~@48 g5@7 ~@19 a5@8 ~@20 f5@7 ~@13 [c3,e3]@15 ~@8 g5@7 [f5,g5]@2 f5@9, f5@10 a5@22 b5@28 ~@12 [f3,g#3,d4]@20 a2@25 ~@26 g2@27 c2@28 ~ f2@15 ~@10, ~@5 g5@6 ~@20 c6@2 ~@53 b5@9 ~@21 d2@27 ~@27 e5@43 ~@11, ~@7 a3@24 b2@29 ~ [e2,g#5]@32 a5@24 f#5@27 g5@27 ~@53]/7", // C Fsus2 Ddim E
  T: "[~ e5@6 d#5 e5 ~@28 b4@7 ~@40 b3@18 ~@28 a5@3 ~@22 f5@3 d5@2, ~@8 b2@36 [e2,d5]@25 c5@14 g#4@21 a4@29 ~@5 d6@7 [f3,b3,d4]@15, ~@10 d#5@35 ~@17 [a3,c#5]@8 g#3@32 a2@31 [a2,c6]@13 ~@6 e5@7 ~, ~@117 [e3,c4]@17 ~@7 g#5@5 f5@9 ~@5, ~@127 e5@7 ~ b5@8 b5@4 ~@2 g#5@11]/5", // E7 Bdim A Am C
  U: "[~@8 a5@4 ~@11 g#4@4 ~@14 f4@4 ~@13 e4@7 ~@8 d4@22 ~@8 b3@8 ~@32 a1@49, a2@12 [e3,c4,b4]@15 [a2,b4]@15 ~@12 d4@13 ~@28 a2@64 ~@33, ~@2 e5@11 ~@4 a4@11 ~@6 f4@5 [f3,b3]@57 e3@64 ~@32, ~@5 c5@8 ~ c5@14 ~@2 d5@12 ~@8 e4@8 ~@7 f4@32 c#4@7 ~@7 c#4@64 ~@17, ~@20 e5@8 ~@9 e4@5 ~@3 g#4@52 ~ a4@64 ~@30]/6", // Cmaj7 Asus2 Fdim
})).s("gm_piano").gain(0.32)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  ~ A ~ B C@2 D ~@2 E ~@3 F G@2 ~ H ~@3 I@2 J K@3 L@2 ~@2 M@2 ~@18 N ~ O@2 ~ P@2 ~@3 Q ~ R@2 S@3 T@2 ~@17 U@4 V W X@2 Y
  ~ Z AA@7 ~@8
>`.pickRestart({
  A: "~ c4@6 ~@9, ~ [e3,a3]@13 ~@18", B: "~@11 [g#3,d4]@13 ~@8",
  C: "[~@25 [c4,e4]@16 ~@11 [f3,b3,d#4]@12, ~@24 f3@17 ~@23]/2", D: "~@12 [e3,a#3]@13 ~@7", E: "~@6 [f3,g#3,d4]@19 ~@7",
  F: "~@3 c3@8 ~@5", G: "[~@26 [a#3,d4]@12 d4@11 d4@15, ~@13 f3@19, ~@19 g#3@13]/2", H: "~ [f3,b3,d#4]@12 ~@3",
  I: "[~@13 [g#3,d4]@7 ~@12, ~@25 f4@14 ~@25]/2", J: "~@7 [f3,c4,e4]@18 ~@7",
  K: "[~@3 d#4@15 ~@10 [e3,a#3,d4]@13 ~@20 [a3,f4]@20 ~@15]/3", L: "[~@24 d4@13 ~@27, ~@23 [f3,g#3]@13 ~@28]/2",
  M: "[~@5 c3@4 ~@7]/2", N: "~@3 [e3,a3,c4]@9 ~@4", O: "[~@2 [a3,d4,f4]@14 ~@12 [g#3,d4,f4]@13 ~@9 g3@12 ~@2]/2",
  P: "[~@3 [f3,b3,d#4]@18 ~@10 [e3,a#3,d4]@13 ~@20]/2", Q: "~@8 [f#3,c4]@15 ~@9", R: "[~@19 c3@16 ~@12 d#4@15 ~@2]/2",
  S: "[~@31 b3@13 ~@11 [e3,c4]@14 ~@8 [f3,b3,d4]@11 ~@8]/3", T: "[~@21 [f3,b3]@15 ~@28]/2",
  U: "[~ c4@19 ~@12 e3@16 ~@11 [a3,d4,f4]@17 ~@12 [g#3,d4,f4]@15 ~@11 [g3,c4]@12 ~@2, [e3,a3]@19 ~@12 [a3,c4]@17 ~@80]/4", // Dm Ddim C5 A5 Am
  V: "~@9 [f3,c4,e4]@19 ~@4", W: "~@8 [f3,b3,d#4]@15 ~@9", X: "[~@4 [a#3,d4]@14 ~@10 a3@11 ~ [c4,f4]@24]/2",
  Y: "~@10 [f#3,a3,d#4]@19 ~@3", Z: "~@7 [d#3,g3,c#4]@14 ~@11",
  AA: "[[d3,f#3,c4]@16 ~@11 [c#3,f3,b3]@16 ~@12 a#3@15 ~@14 a3@21 ~@12 [f#3,a3,d#4]@23 ~@12 f3@47 ~@25, ~@83 c3@21 ~@48 d4@34 ~@38, ~@76 a#3@7 ~@29]/7", // D7 C#7 D#dim
})).s("gm_piano").gain(0.24)

stack(piano, piano_soft)

More by George Shearing