Strudelify

I Can't Get Started

Tommy Flanagan

KeyE minorTempo120 bpm
0:00/0:00
// I Can't Get Started — Tommy Flanagan
// 120 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 98 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@4 C@3 D E@6 F@8 G@6 H@6 I@3 J K@2 L@3 M@6 N@6 O@6 P@3 Q@4 R@8 S@4 T@5 U@5 V@2 W@4 ~
>`.pickRestart({
  A: "~@14 g4@5 ~@7 c5@6, c4@5 [c2,e3,d4,e4]@3, ~@10 e4@9 [g4,b4]@13", // C G
  B: "[~@15 f4@3 ~@7 [f3,a3,c4,e4]@8 ~@24 c5@3 ~@12 e5@4 ~@13 c5@4 ~@30 c4@4 ~, [a2,a4]@17 ~ d2@15 [g2,b3,e4]@27 ~ [b2,d4,f4]@15 [a2,e4,a4]@17 ~ d3@34, e4@12 e4@5 ~ g4@42 [g#3,g#4,d5]@16 ~@6 [g3,c4]@11 ~@35, ~@6 g3@11 ~@37 b4@6 ~@16 c5@13 ~@4 b4@35, ~@86 d5@7 ~@35]/4", // Fmaj7 A Em Bdim A5 G#dim C5
  C: "[~@15 a4@4 ~@11 c5@5 ~@12 f4@4 ~@13 g4@5 ~@24 d5@3, [g2,f3,a3,c4,e4]@19 [c2,d4,e4,g4,b4]@16 [g3,c4,a4]@16 ~@8 [f3,c4,e4]@10 ~@27, ~@12 g4@7 ~@8 e3@8 e4@8 e4@8 g4@13 ~@26 c5@5 ~, ~@12 a2@5 d2@6 [g2,f3,b3,d#4,g#4]@9]/3", // Fmaj7 Cmaj7 Am7 Fmaj7 Fm7b5
  D: "~@7 [c4,d4]@7 [a2,g3,f4,g4]@18, [g#3,e5]@7 ~@9, ~@3 g4@4 ~@9", // Csus2 Dm C#m
  E: "[a#4@7 f#3@6 d#4@6 ~@10 g#4@9 ~@16 c5@6 ~ e4@16 ~@2 f4@4 ~@5 f3@5 ~@4 [a2,d4]@5 ~@29 c5@4 ~@11 b3@3 ~@12 c5@5 [f#3,c4,b4]@26, ~@7 [d2,a#3,c4,f4]@12 g2@19 c2@22 a4@22 ~@45 b4@8 ~@10 e5@5 ~@7 d5@8 ~@27, ~@20 [f3,b3]@19 [e3,d4,e4]@22 [a2,g3,b3,c4]@22 [d2,e4,g4]@19 ~ [g2,g#3,b3,e4]@33 ~@6 f3@8 ~@4 g3@12 [d3,e4,f#4]@21 ~@5, ~@21 [d#4,f4]@18 b3@12 b3@10 ~@22 c4@9 ~ [f3,a3,c4]@10 ~@32 [g#2,f4,g#4,d5]@15 [a2,e4,a4]@16 ~@26, ~@22 a#4@17 ~ [g4,b4]@21 ~@16 e4@6 ~@66 c5@9 c4@8 ~@26]/6", // D5 B A# Fdim E7 Am7 Em7 E …
  F: "[~@19 g4@4 ~@11 c5@4 ~@13 f4@5 ~@12 g4@5 ~@23 d5@2 ~@21 [g3,b4]@5 ~@17 f4@7 ~@105 g4@3, ~@10 c4@13 [c2,e3,d4,e4,g4,b4]@16 [a2,c4,a4]@18 [d2,a3,c4,e4]@17 [g2,f3,b3,d#4,g#4]@25 ~@9 [a3,d4]@16 [f3,a#4]@24 c2@56 g4@18 f#3@5 g3@6 a3@6 b3@6 d4@5 f#4@6, ~@15 e4@7 ~@9 g3@8 e4@8 e4@9 g4@12 ~@25 c5@5 c5@16 ~ c5@10 ~@10 g4@14 b3@38 e4@24 [b3,d4,f#4,a4]@5 b2@40, ~@43 g3@13 ~@9 f3@9 ~@24 e3@27 ~@4 [g2,g#4]@21 d4@60 e2@46, ~@150 e3 g4@23 c4@24 e3@58]/8", // G Cmaj7 Am Fm7b5 D5 A#5 Bm7 G#maj7
  G: "[~ g3@12 ~@7 f#4@6 ~@18 e3@6 ~@12 f#3@12 ~@13 f#3@11 ~@2 e5@8 ~@7 e5@7 ~@13 g3@12 ~@13 a3@10 ~@3 a5@19, f#4@20 ~@18 e4@12 [d2,f#4]@24 [g2,b3,d4,f#4]@25 ~@9 e5@7 ~@8 [e3,b3,d4,g4,b4,e5]@24 ~@23 d3@22, ~ [e2,b2,b3,d4]@25 [a2,g3,a#3,c#4,f#4]@25 a4@48 [a4,c#5]@25 ~@11 d5@37 c#5@20, ~@51 [b3,c#4,e4]@23 ~@24 [f#2,e3,a3,e4]@26 ~@24 [d2,f3]@24 c#4@12 ~@8, ~@112 c#4@12 ~@47 [a#3,a4]@21]/6", // D Gmaj7 Em7 E7 F# A C#m7 F#m7 …
  H: "[~@25 g5@2 ~ d#5@2 e5@3 ~@59 b4@6 ~ [a2,g3,c4,e4,g4,b4]@12 ~ [e4,f#4]@12 c4@6 ~@12 g4@6 [b3,d#4,f#4,b4]@12 [e4,g4,c5]@12 g3@13 ~@3 e4@4, ~ d3@20 e4@2 e5@4 e4@24 b3 f#4@12 g3@23 g3@11 d5@13 ~@19 c4@18 [c2,e3]@24 ~@20, ~@2 a3@25 d5@2 ~@4 d5@18 g3 a4@47 ~@25 g4@18 ~@43 g3@7, ~@3 c4 e5@12 c4@12 b3@23 [b2,d4]@25 [a2,d#4,f#4]@23 ~@12 [d3,f#3,b4]@12 ~ g2@25 ~@23 [a2,a4]@20, ~@4 [a4,c5]@24 ~@21 e2@21 b3@29 ~@25 [f3,e4]@12 e4@12 ~@24 e4@16 ~@4]/6", // Am7 Esus2 B C Bm D#dim Bm A …
  I: "[f4@4 c4@12 [a3,f4,a4]@12 ~@21 b4@3 b3@12 ~@7 e5@4 ~@17 g4@3 a4, ~@4 [d2,f3,e4,g4]@23 ~ [g2,f3,a3,c4]@25 ~@43, ~@28 e4@15 e4@9 ~@12 b3@11 c4@13 ~@8, ~@40 g3@12 [g#2,f3,f4,g#4]@23 ~ g3@20, ~@46 g4@6 d5@15 d5@8 a4@20 ~]/3", // Dm Em7 F C#
  J: "~@4 d3@3 g2, ~@3 f#3@25 ~@4, ~ [c4,e4,f#4,b4]@6 ~", // Cmaj7
  K: "[~@12 g4@7 ~@13 c5@8 f4@12 ~@8 a4@4, ~@4 [a3,c4,e4]@15 ~@21 a4@20 ~@4, ~@5 f3@15 [c2,e3,d4,e4,g4,b4]@20 [a2,g3]@24, ~@5 c#4@2 c#4, ~@13 f4@3]/2", // Am Cmaj7 A7
  L: "[c#5@4 ~@12 f5@8 g3@16 ~@8 b4@4 d4@19 ~ [g#2,f3,b3,d4,f4]@5 c4@12 c4@7, ~@4 [d3,a3,c4,f4,a4,c5,e5]@20 [g2,c4,f4,d5]@28 ~@25 [a2,g3,e4,g4,a4]@19, ~@24 a4@20 a4@8 ~@19 b4@5 ~@20, ~@40 g3@12 [e3,a3,e4,g4,c5]@25 ~@19]/3", // G#dim Dm7 Gsus4 A7 Am7
  M: "[~ e5@4 ~ c4@11 [c4,g5]@8 ~@23 e5@5 e3@12 ~@7 c5@5 e5 ~@23 [e5,g5]@8 ~@5 c4@7 ~@4 [f3,f4,a4,c5]@11 ~ [f3,b3,e4,g#4,b4]@12 ~@18 d5@4 ~ c4@12 ~@4 d5@4, ~@5 d3@22 ~@2 f3@24 [c2,d4,g4,b4]@24 ~@8 c5@16 ~@8 [d5,f5]@16 ~@24 d5@15 e5@8 ~@12 c4@8, ~@5 g5@12 ~@8 b4@21 ~@38 a4@12 ~ a4@28 ~@35 d4@11 [g4,c5]@21, ~@6 [a3,a4,c5]@22 ~@13 b3@12 ~@12 e3@12 [a2,g3,e4,b4,d5]@24 [d3,a3,e4]@24 ~@12 g#2@35 ~@20, ~@6 [e4,e5]@19 g#4@28 ~@24 c4@13 c4@11 c4@13 ~@7 c4@16 ~@12 [f3,b3,f4,g#4,b4]@23 [g3,e4]@20]/6", // C5 Em F E G Dm C5 Am …
  N: "[c5@4 [d2,e4,f#4,b4]@23 ~@18 a4@8 ~@12 c5@8 ~@24 d3@4 ~@16 g4@8 [f3,b3,d#4,g#4]@11 [f2,d#3,c4,d#4,g#4]@12 ~ g3@12 ~@8 f4@4 ~@13 g3@6, ~@27 d#2@14 a3@12 ~@20 [a2,g3,e4,g4,a4]@28 g2@35 ~@13 [e2,b3,d4,e4,g4]@24 [g#2,f3,b3,g#4,b4]@11 ~ [a2,c4]@7, ~@28 f#3@25 [c2,e3,b3,d#4,f#4,b4]@21 ~@118, ~@29 [c4,d#4,f#4]@24 ~@32 c4@16 ~@8 [f3,c4,e4]@16 ~@36 g3@12 ~@8 [a4,c5]@11, ~@29 a3@8 g4@17 ~@56 a3@16 ~@51 f4@7 ~@8]/6", // Bm Fm7b5 Fm7 A7 Em7 Fdim Am Cdim …
  O: "[~ g4@5 ~@12 [d3,a3,c4]@12 ~ b3@11 ~@8 g4@4 e3@12 ~@7 c5@5 e4@12 ~@7 [d#5,d#6]@4 ~@17 [a5,c6]@7 b3@13 b3@12 [a3,d4,e4,a4,c#5,e5]@11 ~@8 b4@5 [g#3,c#4,f4,g#4,d#5]@11 ~ g3@4 d#3@2, ~@6 [c#3,a3,c#4,a#4,e5]@8 [d5,f5]@16 ~@12 b3@12 ~@12 e3@12 [a2,g3,c4,g4,b4]@23 [d3,a3,c4,e5,e6]@23 ~ [f3,e4,d5,g5,b5]@25 b2@25 ~@17, ~@10 f4@6 ~@14 g4@19 ~@29 d5@16 [d5,g5,d6]@7 e4@12 ~ e4@11 ~@36 [g#3,f4,a#4]@13 a#2@18, ~@13 a4@17 ~ [g2,f3,d4,e4]@23 [c2,d4,e4,g4,b4]@24 ~@12 e4@11 [a5,c6]@16 c5@7 ~@38 d4@13 ~@10 [f4,a4]@7, ~@110 [d5,b5,d6]@15 ~@41 e3@9 ~@17]/6", // D7 D# Am A C# A Dm Am7 …
  P: "[~ a#4@4 ~@9 c4@3 ~@8 a4@4 ~@9 f#4@3 ~@8 g#4@4 ~@20 d5@4 ~ c4@12 c4@6, ~@5 d5@12 [c4,g#4]@12 g#2@17 c#3@8 [c2,e3,d4,e4]@23 ~@19, ~@6 [a2,e4,g4,b4]@12 [f#3,e4]@12 c#5@24 ~@16 [g#4,b4]@7 ~@19, ~@10 g3@9 ~@3 d3@8 ~@3 [f#3,d#4]@8 [f3,d#4,g4]@12 ~@13 g3@11 ~ [g3,e4,g4]@18, ~@37 b3@16 a4@23 ~ c5@19]/3", // Fm C Em F#7 G#m D#m Cm C
  Q: "[~@2 e5@4 ~ e4@12 ~@7 f#5@5 [d3,c4,f4,a4,c5,f5]@10 ~@2 [e4,g#4,b4]@11 ~@12 a3@12 ~@20 f4@4 ~ e3@11 ~@7 a3@5 ~ [c4,e4], ~@6 d3@25 ~@10 g2@12 ~@2 [c2,e3,d4,e4,g4]@24 ~@7 g#4@16 ~@26, ~@7 [a3,c4,a4,c5,e5,g5]@25 ~@10 f3@12 ~@24 [g2,b3,d#4,a#4]@24 [c2,b3,d4,e4]@24 f2@2, ~@19 e4@12 ~@47 f3@12 ~ f3@11 a3@19 ~@7, ~@95 g4@8 ~@11 e3@12 ~@2]/4", // Dm7 E C Am7 D# Cmaj7
  R: "[~@42 d5@3 ~@18 b5@6 ~@18 e5@6 ~ [g3,b4]@12 ~ [c#4,g4,b4,c#5]@12 ~@18 a3@6 ~@18 f#5@6 ~@17 [e4,e5]@6 ~@4 [b4,e5]@4 ~@13 e4@4 ~@19 [a3,a4]@5 c#4@12 c#4@5, ~ c3@15 [a3,e5]@5 ~ e2@15 g4@2 b3 b4@6 ~@6 f#5@17 [d5,f#5,a5]@24 ~@62 a4@23 c#4 c#5@12 ~@7 e5@9 b4@3 g3@5 ~@3 g4@8 a3 e4@3 c4 f4@8 [d3,a#3,g4,a#4,c#5]@17, ~@5 a3@9 c5@8 ~@6 g3@18 [g3,c#4,g4,b4,c#5,e5]@24 ~@36 [g3,e5]@13 ~@6 c#3@18 ~@6 d3@11 a5@30 d5@8 b4@5 [d4,g4]@12 a4@8 f3@17 ~@16, ~@7 e4@3 ~ [e4,g4]@11 ~@3 b2@21 ~@24 [e2,b2,g3]@24 [a2,f#4,d#5,f#5]@25 [f#2,a4,c#5,e5,a5]@24 [g2,d4,f#4]@17 d3@7 f#3@23 [e3,g5]@25 d2@25 ~@16, ~@8 c4@5 c4@6 d5@12 b3@3 d4@12 ~@11 [b3,g5]@13 ~@12 b3@12 ~@37 d3@12 b3@12 b3@12 e5@5 b3@18 ~@4 b3@12 b3@9 f4@3 c4 a2@21 ~@16]/8", // G C#m7b5 E E5 A A5 D Gm …
  S: "[[a#4,c#5,e5,g5]@7 ~@18 f4@6 [a3,f4,a4,c5,e5]@12 [f2,a3,d4,g4,b4,d5]@12 ~ [e2,g3,a4,d5,f#5,a5]@22 ~@22 b4@5 [a3,e4,d5]@11 [a3,d5]@12, ~@7 d3@36 ~@35 a2@26 ~ [f#2,e3,f#4,a4]@23, ~@7 [a4,e5]@12 c4@24 ~@38 b4@19 ~@28, ~@7 c4 a3@23 ~@48 g3@13 ~ g3@12 ~@23, ~@8 e4@35 ~@37 [d#4,f#4]@25 ~@23]/4", // A#dim Fmaj7 G7 D Asus4 D5 F#m7 A5 …
  T: "[c4@12 ~@7 g4@4 ~@20 c5@5 ~@10 c3@2 ~@7 [d3,f4]@4 d#3 ~@12 d2@11 ~ b3@12 ~@7 c#5@4 ~ [b2,a3,d4,f4,a4]@12 [e2,g#3,d4,g4,c5,e5]@8 [g#3,f4,g#4,c5]@16 g3@4, [g2,f3,f4]@23 ~ [c2,e3,g4]@24 [a2,c4,e4,a4]@13 ~@34 [g2,e4]@17 c5@7 d5@12 ~@29, g4@19 ~@53 g4@47 ~@41, ~@12 c4@12 ~@11 g3@25 [c#3,g3,a#3,c#4,e4]@12 ~ e3@23 f3@23 ~@21 a#2@20, ~@15 e4@8 [d4,b4]@24 ~@25 [a3,c4,d4]@24 ~@12 b3@11 ~@41]/5", // Dm Bm7b5 C Fm G7 C Am C …
  U: "[~@3 a4@4 ~ [g3,c4,e4,b4]@12 [f#3,e4,f#4,b4,d5]@8 ~ [g#2,f#3,b3,d#4,b4]@15 [c4,f4] ~@7 [g4,g5]@4 ~@17 [c5,c6]@6 ~ f4@6 ~@13 c#5@5 ~@21 f5@6 ~@3 d5@12 ~@2 [f4,a4]@12, [c#4,f4,g4]@8 a2@20 g#4@15 ~ [g2,f3,a4,c5]@12 [c2,e3,b4,d5,g5,b5]@23 ~ c#5@19 ~@5 d3@27 g#2@16 [f3,c4]@13, ~@48 e5@8 ~@12 g3@11 ~ [g3,f5,a5]@25 c4@13 ~ c4@13 [f#3,c4]@16 ~@12, ~@80 [c#4,a4]@13 [c#4,a4]@13 [a4,c5,e5]@27 [f#4,a#4]@15 ~@12, ~@86 f4@19 a3@28 ~@13 g2@14]/5", // Cmaj7 Bm G#m7 F5 G C F Gm7b5 …
  V: "[~@3 b4@18 ~@11 [d4,a4]@3 ~@4 f4@3 ~@3 [a#3,g4]@4 ~@11 [a4,c5]@4, c3@21 [e2,c5]@16 ~@2 [c#4,a#4]@10 ~@3 [c4,d#5]@11 ~, ~ [a3,d#4,g4]@20 ~ d4@10 ~@3 c5@13 ~ d5@7 [b4,d5]@7 ~, ~@22 g4@7 g4@7 a4@3 g4@3 [f4,a4]@7 ~@3 c5@5 f4@7, ~@25 g#3@11 g3@13 [f#3,f5]@14 ~]/2", // D5 D# Am C F# Cm Am7b5 Bm …
  W: "[~@14 f4@10 ~@4 [d4,g4]@21 ~@4 g5 ~@3 g6 ~@6 e7@64, [g2,a#4]@24 c2@27 d5@9 d7 g7@64 ~@3, g4@10 [b3,g4]@15 g2@29 g5@8 d7@64 ~@2, ~@2 [f3,g#4]@11 e3@15 d6@32 ~@4, ~@26 a3@21 ~@2 [d4,g4]@9 g6@64 ~@6]/4", // G5 Gm Em Fm G5
})).s("gm_piano").gain(0.32)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  ~ A B ~ C ~ D@2 E@2 ~ F G@2 H@2 ~@2 I@4 ~ J ~ K ~ L@4 ~ M@2 N@2 ~ O@2 ~@5 P@2 ~ Q@2 R@2 ~ S ~ T ~ U@2 ~ V@2 W@2 ~ X@2
  Y@2 ~@3 Z ~@3 AA ~ AB ~ AC@2 AD AE ~@2 AF ~@3 AG@2 AH ~ AI@5
>`.pickRestart({
  A: "~ c4@17 ~@14", B: "~ f3@27 ~@4", C: "~@7 e4@25, ~@6 f#3@25 ~, ~@6 c4@21 ~@5", D: "[~@27 a3@10 ~@27]/2",
  E: "[~@6 c5@8 [c#4,c5]@25 ~@6 f#3@8 ~@11]/2", F: "~@19 a3@9 ~@4", G: "[~@7 f3@33 ~@24]/2",
  H: "[~@26 d#4@17 ~@21, ~@25 d#3@18 ~@21]/2", I: "[~@28 [b3,d#4]@25 ~@2 e4@36 ~@37, ~@53 [g2,a3]@62 ~@13]/4",
  J: "~@13 g3@12 ~@7", K: "~@11 f#3@12 ~@9", L: "[~@20 [c4,f4]@25 ~@11 c#4@11 f4@24 f3@24 ~@13, ~@19 a4@24 ~@85]/4",
  M: "[~@16 c4@12 ~@12 f3@13 ~@11, ~@7 a3@6 ~@3]/2", N: "[c4@3 [b3,c4]@6 a3@3 [c4,c5]@3 ~]/2",
  O: "[~@24 c4@11 ~@29, ~@11 [e4,c5]@24 ~@29, ~@3 a2@6 ~@7]/2", // C
  P: "[~@30 b3@11 ~@6 b4@6 ~@11, ~@25 e4@28 ~@11, ~@25 e5@23 ~@16, ~@29 g2@24 ~@11]/2", Q: "[~@29 g2@11 ~@24]/2",
  R: "[~@3 a2@6 [f#3,c4]@6 ~]/2", S: "~@9 c4@12 ~@11", T: "~@2 g#3@3 ~@3", U: "[~@31 g#3@23 ~@10]/2",
  V: "[~@29 b4@25 ~@10]/2", W: "[~@13 c#4@6 ~@13]/2", X: "[~@7 a2@12 ~@13]/2", Y: "[~@10 b3@12 c5@25 ~@17]/2",
  Z: "~@3 a4@12 ~", AA: "~@11 [c5,d5]@12 ~@9", AB: "~@7 c5@24 ~, ~@7 f4@18 ~@7",
  AC: "[~@4 b3@12 c#4@25 ~@11 e4@11 ~]/2", AD: "a3@23 ~@9", AE: "~@25 b2@3 ~@4", AF: "~@3 c#4@4 ~",
  AG: "[~@9 f4@28 ~@27]/2", AH: "f2@21 ~@11",
  AI: "[~@75 c1@64 ~@21, ~@27 b3@64 ~@69, ~@7 e4@16 ~@17, ~@47 a3@64 ~@49]/5",
})).s("gm_piano").gain(0.24)

stack(piano, piano_soft)