Strudelify

A Woman Left Lonely

Janis Joplin

KeyD minorTempo120 bpm
0:00/0:00
// A Woman Left Lonely — Janis Joplin
// 120 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 102 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 · "(Janice Joplin)"
const piano = note("<A@6 B@4 C@5 D@8 E@5 F@8 G@5 H@5 I@3 J@3 K@7 L@3 M@7 N@5 O@6 P@7 Q@4 R@7 S@4>".pickRestart({
  A: "[~@36 [a3,d4]@17 ~ b3@8 [d4,g4]@20 ~ c4@7 ~@61 gb4@3 d4@8 ~ d4@19 a3 d2 ~@3 d4@4 g4, ~@29 d3@25 ~@37 gb4@46 d4@4 e4@42 e4@3 ~@6, ~@35 gb4@18 a3@9 ~@20 b3@8 c4@53 f4@40 ~ b3@8, ~@116 d1@46 a3@20 ~ bb3@9, ~@133 a3@21 d2@29 ~@9]/6", // D5 G5
  B: "[~@21 c4@8 ~@35 gb2@5 bb4@2 ~ a4@3 g4@3 ~@48 g4@2, d4@21 d3@36 a4 e2@11 ~@9 g2@40 g2@10, ~@18 d2@11 [c4,gb4]@20 ab4@20 ~@9 g4@6 g4@40 [c3,g3,c4,e4]@4, ~@43 d4@26 ~@9 [b3,d4]@27 ~@18 c2@5, ~@50 a4 [d2,c4]@18 ~@2 d2@3 ~@5 a4@49]/4", // Cdim C Bm D7
  C: "[e4@3 ~ g2@18 ~@3 g4@4 ~@26 g4@4 ~@23 e4@4 ~@23 [a1,c4,e4]@27 b3@6 ~@15 b3@3, ~@4 [g1,b3,d4]@25 a4@13 b1@13 [c2,c4,e4]@26 [b1,b2,g3,b3]@27 ~@34 b3@15 ~@3, ~@22 g4@3 ~@4 [a1,a2]@18 a4@11 ~ g4@23 ~@5 g4@62 e4@11, ~@23 g2@31 ~ c3@19 c3@34 ~ a2@20 ~@7 g2@24, ~@41 b2@13 g3@26 ~ d4@55 d4@17 d4@7]/5", // Am G C Em A
  D: "[~@3 e4 a3@7 [a3,d4]@5 ~ [a3,d4]@29 [e2,d4,g4,d5] b4 ~@50 gb4@4 ~@3 d1@12 ~ d4@8 ~@2 d4@3 ~@20 [a2,a3]@6 ~ c4@13 ~@6 a4@3 a4@3 ~@17 b4@3 ~ b4@3 ~@2 [g4,b4]@3 ~@2 d4@6 ~@7 g3@6 g2@13 g2@5 ~ [g2,g3,c4,e4]@4, ~ a2@46 ~@26 d4@6 b3@12 e4@11 gb4@15 gb4@40 ~@26 [d4,a4,c5]@12 [gb2,a4,c5]@13 g2@6 g4@6 [b3,d4]@13 [b3,d4]@23, ~@3 b3@44 ~@6 [a4,d5]@49 a3@10 ~@14 e4@12 a3@7 e4@13 ~@19 a2@7 b4@16 ~@3 d2@4 g1@48 ~, ~@3 gb3@13 gb3@31 ~@6 gb4@29 d4@23 d2@26 d1@27 ~@25 e2@25 d4@4 a4@44, ~@4 d2@43 ~@7 [d2,a2]@52 ~@26 d4@12 d4@13 [d2,gb3,d4]@27 ~@6 d5@17 ~ b3@4 e4@21 g3@7 ~@11 g4@4 ~]/8", // D5 Em7 A G C D7 Gbdim Bm …
  E: "[~@3 g2@19 a4@3 a4@3 ~ [g3,b3,d4]@12 ~@8 g4@4 ~@21 e4@6 ~ g4@7 ~@21 a2@13 a2@7 ~@3 d4@3 ~@20 [a2,b3]@5, ~@2 [g1,g3,g4]@27 [g1,g2,bb4]@25 c3 c4@26 [b3,d4]@14 ~ [g3,b3,d4]@11 a4@6 ~@16 b3@6 g2@7 d4@5 e4@13, ~@2 [b3,d4]@14 ~@12 a4@2 ~@11 [a1,a2]@13 e4@15 c3@12 ~@14 b2@7 b2@6 ~ [g3,c4,e4,g4]@26 [d4,e4] b3@13 g2@11, ~@46 a4@7 a4@18 g4@9 a4@7 ~ g4@16 g4@5 ~@20 a2@22 d4@8 ~, ~@48 b1@6 [c2,g3]@26 ~ b1@27 a1@27 [g1,g3]@25]/5", // G Asus2 G Gm Bm G Bm A …
  F: "[d4 a3@3 ~@36 b2@14 ~@118 a4@6 ~@19 c4@6 ~@19 g4@8 ~@3 d4@3 ~@17 [b3,d4,g4]@3, ~ [d2,gb4]@20 a2@13 g2@13 ~@7 d4@21 d4@12 d4@7 e4@12 [d2,a2]@49 e4@41 [d4,gb4,a4]@13 g1@27 [d4,g4]@12 g2@8, ~ d4@7 a2@7 d3@40 ~@26 b3@27 ~@31 a3@6 d4@7 a3@38 d5@24 ~ b4@15 b4@26, ~@4 a3@18 d4@32 a3@53 ~@25 d3@33 c4@6 gb4 d4@6 a4@6 [d2,b4]@25 [g2,b3,d4,g4]@13 ~@8 g4@3 a4@23, ~@9 d4@10 e4@9 d2@27 d2@45 [d4,gb4]@20 d4@25 gb4@12 d4@2 [gb2,gb3]@51 ~@10 d5@36]/8", // G D D5 D G5 G D Gb
  G: "[~@4 [g2,g3]@13 ~@3 bb4@3 ~@3 bb4@3 ~ bb4@2 ~@10 b2@7 ~@4 g2@2 ~@3 e4@2 ~@8 c3@8 ~@6 b2@14 ~@6 b4@6 ~ [g3,c4]@13 a2@6 g4@3 g4@3 ~ b4@7 ~@11 g4@4 [a1,g4]@3, ~@3 [b3,d4]@14 g3@13 b1@25 c2@26 a4@19 a4@8 [a2,e4]@13 ~@7 a2@7 ~@7 b4@18, ~@4 [g1,g4]@28 ~ bb4@22 [c3,g3]@13 ~@8 c3@34 ~@12 [g3,c4,e4]@13 g4@18 ~@7, ~@17 g2@6 bb4 g2@18 [g3,b3,d4]@13 [e4,a4] g4@6 g4@20 ~@26 [a1,a4]@27 g1@25, ~@18 b3@12 [b2,g3,b3,d4]@6 a4@13 [b2,g4]@7 c4@12 [g3,c4,e4]@14 [b1,g3,b3,d4]@27 g4@19 ~@6 [g2,g3,b3,d4]@14 [g2,g3,b3,d4]@12]/5", // G C5 A7 Bm A5 G C5 C …
  H: "[d1 ~@26 [g2,b3,d4,g4,b4]@6 g4@2 ~@12 [g2,gb4]@6 ~ d2@41 ~@12 [f4,bb4,d5]@11 ~@2 [a4,c5] ~@6 [g4,bb4,eb5]@11 e3 ~ f3@20, d2@33 [g2,b3,d4]@2 [g4,b4]@19 ~@106, a3@4 g4@3 d4@6 a3@40 [a2,a3]@41 ~@66, d4@2 e4@25 d4@53, [g4,b4] gb4@6 a4@46 ~@67 f5@3 ~@37]/5", // G Gmaj7 Bb Am Eb G A G
  I: "[[f3,bb3,d4]@12 [a3,c4,f4] ~@6 [g3,bb3,eb4]@11 ~ f2@18 f2@7 f2@6 f2@6 f2@6 ~@20 c2@2, ~@30 e2@4 ~@15 [f1,a3,c4,eb4,f4]@13 f4@24 f2@2 c5@3 [f2,bb4]@5, ~@31 f1 ~@2 f5@14, ~@37 [f1,g4,eb5]@11, ~@37 f2@3 d5@8]/3", // Bb F Eb F7 Bb5 Cm
  J: "[~ [f2,a4,c5]@12 ~@6 [f4,d5]@5 [g1,f4]@6 ~@12 c5@3 bb4@2 ~ [bb1,f2,bb2,bb4]@11 ~@10 a5@3 ~@12 [bb2,c5]@7 ~@3 bb4@2, ~ f4@7 ~@8 [a4,c5]@8 c5@15 bb4@6 ~@18 f5@11 ~@22, ~ f1@4 ~@8 f2@6 ~@5 g2@22 ~@14 bb2@14 ~@17 [bb2,c5]@5, ~@30 f4@16 ~@2 [f4,d5]@25 ~@23, ~@18 [a1,a2]@5 ~@10 bb5@3 [eb2,eb3,bb5]@12]/3", // F Dm G7 Bb5 Bbsus2 Am Bbsus2 Dm …
  K: "[~ bb2@2 ~@40 eb4@4 ~@2 [eb2,eb3,bb4] ~@6 eb5@5 ~@6 eb5@6 f5@3 ~@19 [g2,f5]@3 [c5,f5]@2 ~@4 eb5@6 ~@6 c5@6 [bb1,bb2]@12 ~@6 d5@5 ~ [f1,f2,c5]@7 ~@6 [f1,f2]@3 [f1,f2]@2 ~ f1@2 [f1,f2]@3 ~ [f1,f2]@6 [f1,f2]@7 ~@5 f2@3 f2@2 ~ f4@7 f4@6 [f3,f4]@6 [f3,f4]@6 [f3,f4]@4, ~ [f2,c5]@12 bb2@6 bb2@18 [d3,g4]@10 ~@2 [bb2,g4]@13 ~@11 a4@16 a4@9 [c2,c3]@24 ~@12 [bb1,bb2]@11 ~@39 [f1,f2]@5 f1@5 ~ [f1,f2,c5,eb5]@29, ~ bb1@5 ~ bb4@18 [eb2,eb3,bb4]@22 ~@39 [d2,d3]@13 ~@65 f2@3 ~@4 f4@15 f4@8 ~@30, ~@3 d5@11 ~@12 eb4@5 ab4@16 ~@9 g5@19 ~@17 eb5@7 ~@14 d5@9 ~@15 c5@8 ~@25 bb4@7 ~@47, ~@7 f4@9 f4@32 ~@13 c5@12 c5@24 ~ g4@12 [g4,eb5]@12 [f4,bb4]@23 ~ [f4,a4]@25 d5@24 ~@29]/7", // Eb5 G7 F5 Bb F5 F F5 G5 …
  L: "[~@2 [f3,f4]@4 ~@4 f1 ~@4 f1 f2 ~ a3@3 f3 f1@2 ~@5 f3@6 [f2,f3]@7 [f2,f3]@6 f3@7 f3@6 ~@5 f2@4 f2@3 f3@6 f3@7 f2@6 ~ a4@3, ~@8 [g3,g4]@5 ~ [a3,a4]@2 ~@2 a4@30 bb3@3 ~@22 a3@2 ~@21, ~@22 [f2,a3]@13 ~@13 [f1,d4]@25 [f1,c4]@23, ~@22 f3@7 ~@19 f2@12 ~ f2@5 ~@7 f2@13 ~@6 f2@4, ~@24 c4@11 [a3,c4]@14 ~@14 [f3,bb3]@10 ~@13 [f3,a3]@10]/3", // F G A F Dm F5 Am Bb5 …
  M: "[~@15 a2@4 ~@4 d5@3 ~@2 d5@2 ~@16 bb2@6 g3@7 ~ g3@5 ~@6 f2@5 ~ [bb2,bb3]@12 ~@6 bb2@6 c5@5 ~@13 c5@5 ~ eb1@12 [eb1,eb2]@6 [eb1,eb2]@6 ~ g4@4 ~@8 d2@6 ~@4 bb4@3 ~ c2@13 ~@7 c5@3 ~@3 d5@4 ~@13 bb4@3 bb4@2, ~@2 [g1,g2,c4]@17 g5 a2@6 [bb2,bb3]@10 db5@4 [bb2,f3,bb3]@2 bb4@61 ~@3 bb4@9 bb4@9 ~ [eb4,g4,bb4]@25 f4@26 g3@16 g3@8 f4@24, ~@2 a3@12 a1@12 f3@4 db5@3 d5@19 [eb2,bb3]@15 [g3,bb3]@9 ~ d4@24 ~@23 eb2@12 ~@13 d1@5 bb4@15 d5@8 ~@12 c2@11 [bb0,bb1,f3,bb3,d4]@13 [bb1,d4]@11, ~@2 f5@8 f5@16 bb1 f2@7 f3@4 c5@16 ~@23 bb1@3 ~@11 [f3,bb3]@9 ~ [d2,f3,bb3,d4]@12 [d2,f3,bb3,d4]@12 g3@19 ~@5 [a3,d4]@21 c5@4 ~ c5@21 ~@3 c5@2 ~@7 d5@16, ~@3 f3@12 [f3,a3]@11 d4@28 ~@11 eb2@12 f3@6 ~@6 bb2@5 db5@9 ~@9 c5@6 ~@32 d2@12 ~@6 d2@8 [c1,c4,eb4,g4]@25 ~@11 [bb0,f3,bb3]@12]/7", // Bb Eb C5 Bb Bb5 Eb Eb5 Gm …
  N: "[~ [f2,f3,a3,c4]@12 f2@6 f2@6 ~@7 f2@6 ~@7 f2@6 ~@19 f4@6 ~@11 a4@7 ~@8 [f1,f2]@12 f2@6 ~ f2@5 ~ [f2,f3]@13 f2@7 ~@3 g4@2 [f1,f2,f3,c4,eb4,f4]@8, ~ f1@37 f2@2 c5@12 ~@30 g4@21 ~@23 d4@23 a4@4 ~@7, ~ c5@24 [f2,d4] [f4,d5]@26 ~@24 f4@18 a4@53 f2@5 ~@8, ~ f4@12 [f3,a3]@12 [f3,bb3]@26 [f2,f3,a3,c4]@51 [f3,a3,c4]@25 f1@25 ~@8, ~@13 c4@38 ~@6 f1@45 ~@12 f1@12 bb3@13 ~ [f3,bb3]@13 ~@7]/5", // F F7 Dm F Bb5 F Bb5
  O: "[~@12 bb4@3 bb4@2 a2 ~@12 a1@6 ~ g5@5 ~@6 d5@3 d5@4 ~@7 bb2@7 f3@7 f3@6 f3@3 ~@3 [g3,bb3,eb4]@6 bb2@13 ~@8 bb4@4 eb5@5 ~@13 f5@6 ~@3 [g4,c5]@2 ~ eb4@8 ~@7 [eb1,eb2]@6 d2@12 d2@7 d2@3, ~@5 f2@12 [a3,c4,f4]@19 a1@33 bb1@25 bb1@26 ~@24 [eb1,eb2,g3,bb3]@14 ~@12 [d1,a3,d4]@22, ~@6 [f3,c4]@11 a1@2 ~@4 [f1,f2]@6 g2 g1@6 a2@6 bb1@15 c5@12 [bb2,bb3,d4]@13 [bb2,d4]@12 ~@13 bb2@6 bb2@7 ~@24 eb4@5 ~@9 [g3,bb3,eb4]@11 ~ f4@8 ~@14, ~@18 d5@24 [bb2,f3,bb3,d4]@13 [bb2,bb3,d4] f3@4 bb4@52 bb4@3 ~@4 [d2,eb3,ab3,c4]@12 [d2,eb3,ab3,c4,eb5]@13 ~@13 [eb1,eb2]@7 ~@28, ~@24 f5@18 ~@13 d5@16 ~@11 bb3@3 f3@9 [f3,bb3,d4]@16 [f3,bb3,d4]@11 ~@4 d5@18 [bb4,d5]@3 ~@3 bb4@43]/6", // Eb C5 Eb F Eb D5 F5 F …
  P: "[~@6 bb4@2 ~@11 c5@3 ~@3 c5@3 ~@16 d5@7 ~@16 [a3,c4]@12 ~ a3@13 [a3,c4]@12 ~@20 bb4@5 ~ d5@5 ~@14 d5@6 ~@3 bb4@2 ~@9 a3@12 ~@20 g3@4 f3@2 g3@4 ~@8 g3@4, ~@3 c4@13 c2@7 c2@5 d5@4 ~@3 bb4@19 f1@51 ~ [f1,f2,eb3,a3,c4]@51 [f2,f3,a3]@12 f2@8 ~@5 f1@12 g3@3 a3@9 f2@8 g3@4 f3@6, ~@3 c5@2 ~@4 c5@10 ~@3 c5@3 ~@3 [bb3,d4]@13 d5@3 ~@8 d5@3 c5@50 c5@22 ~@11 c5@18 c5@3 ~@3 c5@6 ~ c5@55, ~@4 [c1,eb4]@25 [bb1,f3]@13 [bb1,f3,bb3,d4]@12 f2@13 f4@39 ~@51 [f1,c4]@25 f2@3 bb3@3 a3@3 bb3@16 ~@5 f3@5 f2@7, ~@4 [c2,g3]@13 [g3,c4]@12 [bb0,f4]@27 ~@11 f2@6 ~@6 [f2,c4]@14 f2@7 ~@5 d5@2 ~@37 bb4@14 ~@7 bb4@17 f3@12 f2@6 f3@6 f1@18]/7", // Am F7 F Bb Cm Bb5 Bb F5 …
  Q: "[[f3,f5]@6 e5@5 ~@8 f2@4 ~@2 f2@5 ~@4 [g4,c5]@2 ~@9 [bb2,f3]@6 ~@18 f3@7 [f2,f3,d5]@6 ~@7 f3@7 f3@6 ~ f5@5 g3@7 g3@6 [d2,g3,bb3]@5 ~ d2, ~@6 [f1,c4]@25 bb1@14 bb3@37 d4@20 f3@6 [d4,d5]@20, ~@6 [f2,f3,a3]@13 [f3,a3]@13 d4@25 bb2@7 db5@18 [f3,d5]@4 ~@2 bb4@20 bb3@13 ~@7, ~@12 f5@20 f2@19 f3@6 bb1@8 d5@4 [bb2,c4,eb4]@14 [bb1,bb2,bb3]@13 [bb1,bb2,bb3]@12 d2@3 ~@17, ~@23 db5@7 [bb4,db5,d5]@2 [bb2,f3,bb3]@5 [f4,bb4]@47 ~ c5@24 ~@17 f5@2]/4", // F C5 Bb5 Dm Gm F5 D F …
  R: "[~ d5@4 ~ [g3,bb3]@14 eb2@6 eb2@6 ~ d2@13 ~@9 f4@3 ~ g3@5 ~@2 g3@6 c3@7 ~@12 g3@6 ~@7 [g3,bb4]@6 a3@7 a3@7 [f2,a3]@6 [f2,a3]@6 f3@7 f3@6 ~@7 f2@6 [f1,f2,a3,c4,f4]@49 ~@6 [f4,bb4,d5]@7, g3@5 bb4@53 c3@14 ~@7 c3@12 bb4@7 c3@12 f5@112 ~@2, ~@6 eb4@26 f3@6 ~@8 [d2,f3,bb3]@12 [c2,g4]@5 ~ bb4@15 bb4@5 g3 c5@25 f4@52 ~@62, ~@6 eb2@7 ~@7 [g3,bb3]@12 bb3@3 ~@17 g4 g2@6 eb4@25 [c4,eb4]@13 eb4@13 f1@26 [f1,d4]@26 ~@62, ~@33 d4@26 c4@13 [g3,c4]@12 g2@26 [f2,c4]@14 c4@12 [f2,bb3]@13 [f3,bb3]@13 ~@62]/7", // Gm F Bb C5 Gm Cm Dm C5 …
  S: "[~@5 [c5,f5] a4@2 ~@14 f2@3 f2@3 f2@2 f2@3 f2@3 f2@3 ~@5 [bb1,f2,bb2,d4,d5]@64 ~@20, ~@12 [g4,bb4,eb5]@28 ~@3 f4@64 ~@21, ~@43 bb4@3 ~@82]/4", // F5 Bb Eb
})).s("gm_piano").gain(0.31)

// chords · piano · "(Janice Joplin)" · soft notes
const piano_soft = note(`<
  ~ A@5 B@5 ~@2 C@5 D@2 E F@2 G H I ~@3 J@4 K@3 L ~@2 M ~ N@2 ~@6 O ~ P ~ Q ~ R S ~@6 T U ~ V ~@2 W@2 ~@11 X Y ~ Z ~ AA
  AB AC ~@2 AD ~ AE ~@7
>`.pickRestart({
  A: "[~@30 b3@20 ~@34 d2@38 gb4@29 ~@2 gb4@7, ~@59 a4@63 a3@8 ~@30]/5",
  B: "[~@20 b3@9 a4@20 ~@3 a4@5 ~@21 g3@13 g3@13 ~@8 g3@12 ~@36, ~@51 gb4@17 ~@36 d4@27 ~@29, ~@13 g3 ~@6, ~@105 b3@26 ~@29]/5",
  C: "[~@68 e4@43 ~@6 d4@20 ~@23, ~@13 g3@27 [g1,g3]@64 ~@56, ~@33 a2@32 ~@95]/5", // G
  D: "[~@16 a3@13 ~@6 d2@26 ~@3, ~@29 a3@13 ~@22]/2", E: "~@11 c4@13 ~@8, ~@10 a2@7 ~@15",
  F: "[~@3 d4@13 g3@12 g3@7 ~@13 g3@12 ~@4, ~@16 g4 ~@47]/2", G: "~@23 g2@6 ~@3, ~@16 d4@13 ~@3, ~@17 b3@12 ~@3",
  H: "~@17 b2@15, ~@5 [g3,b3,d4]@6 ~@5", I: "~@9 [b2,g3]@7",
  J: "[~@15 g2@6 ~@73 a3@13 ~@21, ~@21 a2@2 ~@13 d1@64 ~@28, ~@22 gb4@45 ~@7 d3@26 ~@28, ~@81 a3@13 ~@34, ~@87 gb4@26 ~@15]/4",
  K: "[~@19 c4@18 ~@6 c4@7 ~@12 [g2,d4]@12 ~@8 b3@11 ~@3, ~@31 b3@10 ~@7, ~@74 g2@13 ~@9]/3", L: "~@17 d4@13 ~@2",
  M: "b2@13 ~@19", N: "[~@21 gb4@26 ~@17]/2", O: "~@8 f4@9 ~@2 f2@7 ~@6", P: "~@5 ab5@5 ~@20 f2@2", Q: "~@21 gb5@9 ~@2",
  R: "~@2 c5@3 ~@3", S: "~@25 f2@6 ~", T: "~@7 f2@15 ~@10", U: "~@19 f3@8 ~@5", V: "~@8 g3@3 ~@5",
  W: "[~@46 d4@5 ~@13, ~@7 a3@18 ~@7]/2", X: "~@9 f2@6 ~@17", Y: "~@2 f2@3 ~@11", Z: "~@17 f2@5 ~@10, ~@5 f3@6 ~@5",
  AA: "~ f2@5 ~@26", AB: "~@19 bb2@6 ~@7", AC: "f3@5 ~@27", AD: "~@7 f3@7 ~@18", AE: "~ c4@6 ~@9, ~ g3@3 ~@12",
})).s("gm_piano").gain(0.15)

stack(piano, piano_soft)

More by Janis Joplin