Strudelify

More Than a Woman

Bee Gees

KeyE minorTempo110 bpm
0:00/0:00
// More Than a Woman — Bee Gees
// 110 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 86 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(110/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.

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B C D E F G@2 H I J K L M@2 N O@2 A B P Q D R@3 S@5 T B C D E F G@2 H I J K L M@2 N U@2 A B P Q D V@3 W@2 X Y Z AA@3
  AB@2 AC AD@3 AE AF@7 AG@2 AH AI AJ@3
>`.pickRestart({
  A: "~@5 c2@12 g2@7 ~ c3@7", B: "~ g2@4 c2@12 g2@8 c3@4 g2@3", C: "~ c2@4 b1@12 f#2@7 ~ b2@7",
  D: "~ f#2@4 b1@12 f#2@7 ~ b2@4 f#2@3", E: "~ b1@3 ~ e2@11 ~ e1@6 ~@2 e1@7", F: "~ b1@4 e2@12 e1@5 ~@3 e1@4 e2@3",
  G: "[~ e1@4 b1@9 ~@3 b1@8 f#1@4 b1@6 ~@2 b1@9 ~@3 b1@4 ~@2 b1@2 c#2@4 b1@3]/2", H: "~ c#2@4 e1@11 ~ e2@7 ~ b1@7",
  I: "~ e2@4 e1@11 ~ e2@6 b1@2 e2@4 e1@3", J: "~ e2@4 b1@9 ~@3 b1@7 ~ b1@7", K: "~ f#1@4 b1@9 ~@3 b1@6 f#1@2 b1@7",
  L: "~ b1@3 ~ g1@8 g2@4 g1@4 a1@10 ~", M: "[~ a1@2 ~@2 d2@12 c#2@4 b1@7 ~ b1@7 ~ g1@11 ~ g1@4 a1@11]/2",
  N: "~ a1@4 f#1@12 f#2@4 c#2@4 f#1@4 f#2@3",
  O: "[~ f#1@4 g1@8 g2@4 g1@4 a1@7 ~ a1@7 ~ d2@12 c#2@4 b1@6 ~@2 b1@3, ~@5 f#8 ~@58]/2", P: "~ c2@4 c2@12 g2@7 ~ c3@7",
  Q: "~ g2@4 b1@12 f#2@7 ~ b2@7, ~@5 c2 ~@26",
  R: "[~ b1@3 ~ c2@9 ~@3 c2@13 ~ c2@2 g1@4 c2@9 ~@3 c2@5 ~@3 c2@6 b1@2 a1@3 ~ g1@11 ~ g2@8 g1@7]/3",
  S: "[~ g2@3 ~ a1@9 ~@3 a1@3 ~@5 e1@4 a1@5 ~@3 c2@9 ~@3 c2@12 ~@2 c2@2 a1@2 g1@2 c2@8 ~@4 c2@4 ~@4 c2@6 b1@2 a1@3 ~ g1@10 ~@2 g2@8 d2@6 g1@5 ~ a1@7 ~@5 a1@6 ~@2 a1@7]/5",
  T: "~ e1@3 ~ c2@12 g2@7 ~ c3@7", U: "[~ f#1@4 g1@8 g2@4 g1@4 a1@7 ~ a1@7 ~ d2@12 c#2@4 b1@6 ~@2 b1@3]/2",
  V: "[~ b1@3 ~ c2@9 ~@3 c2@13 ~ c2@2 g1@4 c2@9 ~@3 c2@5 ~@3 c2@6 b1@2 a1@3 ~ g1@12 g2@8 g1@7]/3",
  W: "[~ g2@3 ~ a1@9 ~@4 a1@3 ~@5 e1@4 a1@5 ~@3 c2@9 ~@3 c2@12 ~@2]/2", X: "c2 a1 g1 c2@4 ~@2 c2@2 ~@2 c2@3",
  Y: "b1@2 a1@3 ~ g1@10 ~@2 g2@8 d2@6", Z: "~ g1@5 ~ a1@7 ~@5 a1@6 ~@2 a1@5",
  AA: "[~@3 e1@3 ~ c2@12 g2@7 ~ c3@8 g2@4 c2@12 g2@8 c3@4 g2@4 c2@4 c2@12 ~ g2@8 c3@4, ~@71 g2 ~@24]/3",
  AB: "[g2@4 c2@4 b1@12 f#2@7 ~ b2@7 ~ f#2@4 b1@12 f#2@7 ~ b2@4, ~@8 c2 ~@55]/2", AC: "f#2@4 b1@3 ~ c2@9 ~@3 c2@12",
  AD: "[~@3 c2@2 g1@4 c2@9 ~@3 c2@5 ~@3 c2@6 b1@2 a1@3 ~ g1@12 g2@8 g1@8 g2@3 ~ a1@9 ~@3 a1@3 ~@5 e1@3]/3",
  AE: "~ a1@5 ~@4 c2@9 ~@3 c2@10",
  AF: "[~@4 c2@2 a1@2 g1@2 c2@8 ~@4 c2@4 ~@4 c2@6 b1@2 a1@3 ~ g1@10 ~@2 g2@8 d2@6 g1@5 ~ a1@7 ~@6 a1@6 ~@2 a1@7 ~ e1@3 ~ c2@9 ~@3 c2@13 ~ c2@2 g1@4 c2@9 ~@3 c2@5 ~@3 c2@6 b1@2 a1@3 ~ g1@12 g2@8 g1@8 ~ g2@3 ~ a1@9 ~@3 a1@3 ~@5]/7",
  AG: "[e1@4 a1@5 ~@3 c2@9 ~@3 c2@12 ~@2 c2@2 a1@2 g1@2 c2@8 ~@4 c2@4 ~@4]/2", AH: "c2@6 b1@2 a1@3 ~ g1@10 ~@3 g2@7",
  AI: "~ d2@6 g1@5 ~ a1@7 ~@5 a1@6 ~", AJ: "[~ a1@7 ~ e1@3 ~ c2@66 ~@17]/3",
})).s("gm_electric_bass_finger").gain(0.36).pan(0.6)

// chords · epiano2 · "Piano"
const epiano2 = note("<A@2 B@2 C@8 D@6 A@2 E F@2 G@8 A@2 B@2 C@8 D@6 A@2 E F@2 H@8 I@5 J@8 K@8 L@3>".pickRestart({
  A: "[~@5 c4@22 ~@6 e4@4 ~@20 b4@7, ~@5 [c3,g3,b4,e5,g5]@32 [c3,b3]@27, ~@27 c4@10 ~@8 e4@19, ~@45 g3@8 g3@11, ~@49 g4@15]/2", // Cmaj7
  B: "[~@5 [c#4,e4,g#4]@12 ~@16 c#4@4 [b2,c#4,e4,b4]@12 [b2,a4,c#5,e5]@15, ~@5 b2@32 ~@27, ~@17 [e4,b4]@20 ~@27, ~@17 c#4@16 ~@31, ~@29 f#3@20 ~@15]/2", // C#m C#m7 A E5
  C: "[~@33 d#5@35 ~@41 g#5@8 a4@16 ~@28 e4@4 ~@20 b3@12 ~@32 b2@26 ~, ~@5 [e3,g#3,b3,d#4,g#4,b4]@63 ~ [b2,a3,c#4,e4]@48 ~@16 [e3,g#3,b3,g#4,b4]@33 ~@11 b3@8 ~@12 [a3,c#4,e4]@58 ~, ~@25 g#5@43 ~@21 c#6@28 ~@48 [e3,f#4]@32 b2@32 ~@27, ~@95 g#5@6 f#5@16 ~@16 d#4@24 d#4@9 ~@7 g#4@24 ~@59, ~@97 a5@20 ~@36 e2@13 ~@15 b4@16 ~@20 g#5@38 ~]/8", // Emaj7 A E A Esus2
  D: "[~@5 [g2,g3,b3,d4]@16 [a2,e3,a3,c#4,e4]@16 [a3,d4,f#4]@16 [b2,b3,d4,f#4]@16 [g2,g3,b3,d4]@16 [a2,e3,a3,c#4,e4]@16 a4@8 [e4,a4]@8 [c#4,f#4]@15 ~ [g2,g3,b3,d4]@16 [a2,e3,a3,c#4,e4]@16 [a3,d4,f#4]@8 [c#4,f#4]@8 [b2,b3,d4,f#4]@11, ~@101 [c#3,f#3,a3,c#4,f#4]@17 ~@74]/6", // G A D Bm G A A5 F#5 …
  E: "~@5 c4@22 c4@5, ~@5 [c3,g3,b4,e5,g5]@27", // Cmaj7
  F: "[~ e4@3 ~ [c#4,e4,g#4]@12 ~@16 c#4@4 [b2,c#4,e4,b4]@12 [b2,a4,c#5,e5]@15, ~@5 b2@32 ~@27, ~@17 [e4,b4]@20 ~@27, ~@17 c#4@16 ~@31, ~@29 f#3@20 ~@15]/2", // C#m C#m7 A E5
  G: "[~@5 [c3,g3,g4,b4]@31 ~ [b3,e4,g4]@12 g4@8 [g4,b4]@11 ~ [g2,g3,b3,d4]@31 ~ [g3,c4,e4]@3 ~@13 g4@16 b3@6 ~@22 e5@35 ~ [g3,b3,d4]@12 ~@6 g2@14 [a2,g3,c4,e4]@25 ~@2, ~@37 c3@31 ~@33 a2@8 [a2,e4,a4]@24 [c3,e3,g3,e4,g4]@63 ~@13 [g3,b3,d4]@20 ~@27, ~@49 e4@19 ~@85 b4@43 ~ g4@32 ~@27]/8", // Cmaj7 Em G C G Am7 A5 C …
  H: "[~@5 [c3,g3,g4,b4]@32 [b3,e4,g4]@12 g4@8 [g4,b4]@11 ~ [g2,g3,b3,d4]@31 ~ [g3,c4,e4]@3 ~@14 g4@16 b3@6 ~@22 e5@35 ~ [g3,b3,d4]@12 ~@6 g2@14 ~ [a2,g3,c4,e4]@25, ~@37 c3@32 ~@32 a2@8 [a2,e4,a4]@24 ~ [c3,e3,g3,e4,g4]@63 ~@13 [g3,b3,d4]@20 ~@26, ~@49 e4@20 ~@85 b4@43 ~ g4@32 ~@26]/8", // Cmaj7 Em G C G Am7 A5 C …
  I: "[~@7 c4@22 ~@6 e4@4 ~@20 b4@8 ~@25 b4@8 ~@4 [c#4,e4,g#4]@12 ~@16 c#4@4 [b2,c#4,e4,b4]@12 [b2,a4,c#5,e5]@12, ~@7 [c3,g3,b4,e5,g5]@32 [c3,b3]@28 ~@4 [c3,b3]@28 ~@5 b2@32 ~@24, ~@29 c4@11 ~@7 e4@20 ~@13 e4@20 ~@16 [e4,b4]@20 ~@24, ~@47 g3@8 g3@12 ~@13 g3@8 g3@12 ~@16 c#4@16 ~@28, ~@51 g4@16 ~@17 g4@16 ~@28 f#3@20 ~@12]/5", // C#m C#m7 A Cmaj7 E5
  J: "[~@8 [c3,g3,g4,b4]@32 ~ [b3,e4,g4]@12 g4@8 [g4,b4]@11 ~ [g2,g3,b3,d4]@31 ~ [g3,c4,e4]@3 ~@13 g4@16 ~ b3@6 ~@22 e5@35 ~ [g3,b3,d4]@12 ~@6 g2@14 [a2,g3,c4,e4]@22, ~@41 c3@32 ~@32 a2@8 [a2,e4,a4]@24 ~ [c3,e3,g3,e4,g4]@63 ~@13 [g3,b3,d4]@20 ~@22, ~@53 e4@20 ~@85 b4@43 ~ g4@32 ~@22]/8", // Cmaj7 Em G C G Am7 A5 C …
  K: "[~@11 [c3,g3,g4,b4]@32 [b3,e4,g4]@12 g4@8 [g4,b4]@11 ~ [g2,g3,b3,d4]@31 ~@2 [g3,c4,e4]@3 ~@13 g4@16 b3@6 ~@22 e5@35 ~ [g3,b3,d4]@12 ~@7 g2@14 [a2,g3,c4,e4]@19, ~@43 c3@32 ~@33 a2@8 [a2,e4,a4]@24 [c3,e3,g3,e4,g4]@63 ~@14 [g3,b3,d4]@20 ~@19, ~@55 e4@20 ~@85 b4@43 ~ g4@32 ~@20]/8", // Cmaj7 Em G C G Am7 A5 C …
  L: "[~@7 c3@32 ~@9, ~@13 [b3,e4,g4]@64 ~@19]/3", // Em
})).s("gm_epiano2").gain(0.32).pan(0.8)

// chords · electric guitar jazz · "Guitar"
const electric_guitar_jazz = note("<A@4 B@8 C@6 D@5 E@7 F@5 B@8 C@6 G@5 H I@7 J@3 K L M@7 N@5 O@5 ~@2>".pickRestart({
  A: "[~@5 b3@4 b3@4 [b3,e4]@4 b3@4 b3@4 b3@4 ~@8 b3@4 ~@8 b3@4 ~@4 [b3,g4]@4 [c3,b3,e4,g4]@8 [a3,c#4,e4]@12 [a3,c#4,e4]@8 [a3,e4]@2 [a3,c#4,e4]@2 a3@4 a3@4 a3@4 ~@20 [a3,c#4,e4]@3, ~@5 c3@26 c3@4 c3@8 c3@10 b3@4 ~@36 [c#4,e4]@8 [c#4,e4]@8 ~@19, ~@5 g4@12 ~@12 b3@4 b3@4 ~@4 b3@8 g4@6 c3@6 ~@46 b2@6 b2@8 b2@7, ~@5 e4@8 ~@4 [e4,g4]@20 [e4,g4]@12 e4@12 ~@44 a3@4 [a3,c#4,e4]@8 [a3,c#4,e4]@8 ~@3]/4", // E5 Em Cmaj7 A A5 A C#m Em …
  B: "[~@5 [g#3,b3,d#4,g#4]@12 ~@2 b3@4 ~@2 [d#4,g#4]@4 ~@8 [d#4,g#4]@8 [d#4,g#4]@10 ~@10 [d#4,g#4]@4 ~@4 [a3,c#4,e4]@4 a3@4 ~@2 b2@4 ~@22 a3@4 ~@2 b2@4 ~@2 [a3,c#4,e4]@4 [a3,c#4,e4]@8 d#4@8 d#4@4 ~@2 e3@4 ~@2 d#4@4 d#4@4 d#4@4 d#4@8 d#4@4 ~@2 d#4@4 ~@2 d#4@4 d#4@8 [a3,c#4,e4]@8 [a3,c#4,e4]@4 ~@2 b2@4 ~@2 [c#4,e4]@4 ~@8 [a3,c#4,e4]@8 [a3,c#4,e4]@4 ~@2 b2@4 ~@2 [a3,c#4,e4]@4 [a3,c#4,e4]@3, ~@5 e3@30 [e3,b3]@26 [e3,g#3,b3]@8 b2@14 ~@4 b2@6 b2@8 b2@14 ~@4 b2@14 e3@14 ~@4 [e3,g#3,b3]@6 [e3,g#3,b3]@8 [e3,g#3,b3]@12 [e3,g#3,b3]@6 [e3,g#3,b3]@14 b2@14 ~@4 b2@8 b2@4 b2@16 ~@4 b2@9, ~@17 [d#4,g#4]@6 b3@6 [d#4,g#4]@4 [d#4,g#4]@4 ~@20 [d#4,g#4]@8 ~@12 [c#4,e4]@20 ~@12 [c#4,e4]@12 ~@24 d#4@8 ~@56 [c#4,e4]@8 ~@4 [c#4,e4]@4 [c#4,e4]@4 ~@27, ~@19 g#3@16 g#3@20 g#3@6 ~@20 a3@8 a3@8 [a3,c#4,e4]@12 ~@4 a3@8 ~@12 [g#3,b3]@18 ~@58 a3@12 a3@8 ~@12 [a3,c#4,e4]@8 ~@7, ~@31 b3@4 ~@221]/8", // G#m G#5 A C#m A E5 E G#5 …
  C: "[~@5 [g3,b3]@4 ~@8 g2@4 a3@4 ~@2 e3@4 ~@2 [a3,c#4,e4]@4 d3@4 ~@2 d3@4 ~@2 [f#3,a3,d4]@4 b2@4 ~@8 [b3,d4,f#4]@4 ~@4 [g3,b3,d4]@8 [g3,b3,d4]@4 [a2,e3,a3,c#4,e4]@4 ~@2 [a2,e3]@4 ~@2 [a3,c#4,e4]@4 ~@4 f#3@4 ~@8 c#4@4 ~@2 c#4@4 ~@2 [c#4,f#4]@4 g2@4 ~@2 g2@4 ~@2 [g3,b3,d4]@4 [a2,e3]@4 ~@2 [a2,e3]@4 ~@2 [a3,c#4,e4]@4 ~@4 [d4,f#4]@4 ~@2 [d4,f#4]@6 [b2,b3,d4,f#4]@4 ~@2 b2@4 b2, ~@5 [g2,d4]@6 g2@6 ~@8 a3@6 e3@6 ~@4 [f#3,a3,d4]@8 ~@8 [b3,d4]@8 ~@4 g2@16 ~@10 [a2,e3]@6 ~@22 e4@10 ~@10 g2@7 ~@9 [a2,e3]@6 [d3,a3]@8 [d3,a3]@8 ~@11, ~@9 [g3,b3]@4 [g3,b3,d4]@8 [c#4,e4]@12 ~@14 d3@6 ~@4 f#4@4 f#4@4 ~@24 [a3,c#4,e4]@8 ~@12 [c#4,f#4]@8 f#4@12 ~@63, ~@59 b2@4 b2@7 ~@41 f#3@10 f#3@6 f#3@6 ~@4 [g3,b3,d4]@8 ~@8 [a3,c#4,e4]@8 ~@24 [b3,d4,f#4]@7]/6", // G A D Bm G A A5 A …
  D: "[~ [b3,d4,f#4]@2 ~@2 b3@4 b3@4 [b3,e4]@4 b3@4 b3@4 b3@4 ~@8 b3@4 ~@8 b3@4 ~@4 [b3,g4]@4 [c3,b3,e4,g4]@8 b3@4 b3@4 [b3,e4]@4 b3@4 b3@4 b3@4 ~@4 b3@2 c3@2 [a3,c#4,e4]@12 [a3,c#4,e4]@8 [a3,e4]@2 [a3,c#4,e4]@2 a3@4 a3@4 a3@4 ~@20 [a3,c#4,e4]@3, ~@5 c3@26 c3@4 c3@8 c3@10 b3@4 ~@12 e4@8 ~@4 [e4,g4]@18 ~@38 a3@4 [a3,c#4,e4]@8 [a3,c#4,e4]@8 ~@3, ~@5 g4@12 ~@12 b3@4 b3@4 ~@4 b3@8 g4@6 c3@6 ~@8 c3@26 c3@4 ~@40 b2@6 b2@8 b2@7, ~@5 e4@8 ~@4 [e4,g4]@20 [e4,g4]@12 e4@12 ~@8 g4@12 ~@12 b3@4 ~@28 [c#4,e4]@8 [c#4,e4]@8 ~@19]/5", // Bm E5 Em Cmaj7 E5 A A5 A …
  E: "[~@5 b3@4 ~@4 [b3,e4,g4]@4 ~@8 [e4,g4]@4 ~@4 [e4,g4]@4 [c3,b3,e4,g4]@6 ~@2 [b3,e4,g4]@4 ~@2 c3@4 ~@6 [b3,e4,g4]@8 [g3,b3,d4]@2 ~@6 [g3,b3,d4]@4 ~@4 g3@4 ~@4 [g3,b3,d4]@8 [g3,c4,e4]@3 ~@5 [g3,c4,e4]@4 [g3,c4,e4]@6 ~@6 a2@7 ~ b3@2 ~@6 [b3,e4]@4 [c3,b3,e4]@4 ~@4 [b3,e4]@4 ~@8 [b3,e4]@4 ~@4 [b3,e4]@4 ~@2 c3@4 ~@6 [b3,e4]@8 [g3,b3]@2 ~@6 [g3,b3,d4]@4 ~@12 [g3,b3,d4]@3, ~@5 [c3,e4,g4]@6 c3@8 c3@10 [e4,g4]@4 ~@16 g4@8 g4@4 ~@28 g3@4 ~@12 [g3,c4]@4 ~@12 [g3,c4,e4]@11 ~ e3@64 ~@6 g2@8 g2@4 g2@4 g2@5, ~@9 b3@4 ~@4 [b3,e4,g4]@8 b3@12 ~@12 [b3,e4]@12 ~@12 g3@4 ~@4 [g3,b3,d4]@4 [b3,d4]@8 ~@44 b3@4 ~@8 [b3,e4]@4 ~@4 [b3,e4]@4 [b3,e4]@4 ~@4 [b3,e4]@4 ~@4 [b3,e4]@8 [b3,e4]@4 ~@20 d4@12 ~@3, ~@31 c3@6 ~@6 c3@8 ~@4 c3@4 c3@10 g2@4 ~@2 g2@8 g2@8 g2@10 a2@4 ~@2 a2@12 a2@6 ~@8 [c3,g3,e4]@6 g3@58 ~@4 g3@4 ~@4 b3@8 b3@4 ~@3, ~@139 c3@6 ~@6 c3@8 c3@4 c3@8 c3@8 ~@4 c3@4 c3@10 [g2,d4]@8 ~@4 g3@4 g3@8 ~@3]/7", // Em Cmaj7 Em G C E5 Cmaj7 E5 …
  F: "[~ [g3,b3,d4]@4 g3@4 ~@10 a2@4 ~@10 [a3,c4,e4]@3 ~ b3@4 b3@4 [b3,e4]@4 b3@4 b3@4 b3@4 ~@8 b3@4 ~@8 b3@4 ~@4 [b3,g4]@4 [c3,b3,e4,g4]@8 [a3,c#4,e4]@12 [a3,c#4,e4]@8 [a3,e4]@2 [a3,c#4,e4]@2 a3@4 a3@4 a3@4 ~@20 [a3,c#4,e4]@3, ~@5 [a2,c4]@6 a2@4 a2@4 ~@4 a2@4 a2@4 a2@5 ~ c3@26 c3@4 c3@8 c3@10 b3@4 ~@36 [c#4,e4]@8 [c#4,e4]@8 ~@19, ~@5 e4@2 ~@2 g3@27 ~ e4@8 ~@4 [e4,g4]@20 [e4,g4]@12 e4@12 ~@44 a3@4 [a3,c#4,e4]@8 [a3,c#4,e4]@8 ~@3, ~@13 [a3,c4,e4]@4 [a3,c4,e4]@8 [a3,c4,e4]@4 [a3,c4,e4]@4 ~@4 g4@12 ~@12 b3@4 b3@4 ~@4 b3@8 g4@6 c3@6 ~@46 b2@6 b2@8 b2@7]/5", // G Am E5 Em Cmaj7 A A5 A …
  G: "[~ [b3,d4,f#4]@2 ~@2 b3@4 b3@4 [b3,e4]@4 b3@4 b3@4 b3@4 ~@8 b3@4 ~@8 b3@4 ~@4 [b3,g4]@4 [c3,b3,e4,g4]@8 b3@4 b3@4 [b3,e4]@4 b3@4 b3@4 b3@4 ~@4 b3@2 c3@2 [a3,c#4,e4]@12 [a3,c#4,e4]@8 [a3,e4]@2 [a3,c#4,e4]@2 a3@4 a3@4 a3@4 ~@20 [a3,c#4,e4]@3, ~@5 c3@26 c3@4 c3@8 c3@10 b3@4 ~@12 e4@8 ~@4 [e4,g4]@18 ~@38 a3@4 [a3,c#4,e4]@8 [a3,c#4,e4]@8 ~@3, ~@5 g4@12 ~@12 b3@4 b3@4 ~@4 b3@8 g4@6 c3@6 ~@8 c3@26 c3@4 ~@40 b2@6 b2@8 b2@7, ~@5 e4@8 ~@4 [e4,g4]@20 [e4,g4]@12 e4@12 ~@8 g4@12 ~@12 b3@4 ~@28 [c#4,e4]@8 [c#4,e4]@8 ~@19, ~@69 f#9 ~@90]/5", // Bm E5 Em Cmaj7 E5 A A5 A …
  H: "~@5 b3@4 ~@4 [b3,e4,g4]@4 ~@8 [e4,g4]@4 [e4,g4]@2 c3, ~@5 [c3,e4,g4]@6 c3@8 c3@12 ~, ~@9 b3@4 ~@4 [b3,e4,g4]@8 b3@7", // Em C Em
  I: "[~ [e4,g4]@4 [c3,b3,e4,g4]@6 ~@2 [b3,e4,g4]@4 ~@2 c3@4 ~@6 [b3,e4,g4]@8 [g3,b3,d4]@2 ~@6 [g3,b3,d4]@4 ~@4 g3@4 ~@4 [g3,b3,d4]@8 [g3,c4,e4]@3 ~@5 [g3,c4,e4]@4 ~ [g3,c4,e4]@6 ~@6 a2@8 b3@2 ~@6 [b3,e4]@4 [c3,b3,e4]@4 ~@4 [b3,e4]@4 ~@8 [b3,e4]@4 ~@4 [b3,e4]@4 ~@2 c3@4 ~@6 [b3,e4]@8 [g3,b3]@2 ~@6 [g3,b3,d4]@4 ~@8 b3@3 ~@2 [g3,b3,d4]@4 [g3,b3,d4]@4 g3@4 ~@10 a2@4 ~@4 a2@2 [a3,c4,e4], ~@11 c3@6 [b3,e4]@12 ~@12 g3@4 ~@4 [g3,b3,d4]@4 [b3,d4]@8 ~@45 b3@4 ~@8 [b3,e4]@4 ~@4 [b3,e4]@4 [b3,e4]@4 ~@4 [b3,e4]@4 ~@4 [b3,e4]@8 [b3,e4]@4 ~@20 d4@12 ~@9 e4@2 ~@6 [a3,c4,e4]@4 [a3,c4,e4]@8 [a3,c4,e4]@4 ~, ~@17 g4@6 c3@4 c3@10 g2@4 ~@2 g2@8 g2@8 g2@10 a2@4 ~@2 a2@12 ~ a2@6 ~@8 [c3,g3,e4]@6 g3@58 ~@4 g3@4 ~@4 b3@8 ~@19 a2@4 a2@4 ~@4 a2@4 ~@3, ~@25 g4@4 ~@28 g3@4 ~@12 [g3,c4]@4 ~@13 [g3,c4,e4]@12 e3@64 ~@6 g2@8 g2@4 g2@4 ~ g2@10 [a2,c4]@8 ~@17, ~@108 c3@6 ~@6 c3@8 c3@4 c3@8 c3@8 ~@4 c3@4 c3@10 [g2,d4]@8 ~@4 g3@4 g3@8 ~@13 g3@21]/7", // Em Cmaj7 Em G C E5 Cmaj7 E5 …
  J: "[~@3 [a3,c4,e4]@3 ~ b3@4 b3@4 [b3,e4]@4 b3@4 b3@4 b3@4 ~@8 b3@4 ~@8 b3@4 ~@4 [b3,g4]@4 [c3,b3,e4,g4]@8 b3@4 ~@9 b3@4 ~@4 [b3,g4]@4, ~ a2@5 ~ c3@26 c3@4 c3@8 c3@10 b3@4 ~@17 b3@8 g4@6 c3@6, ~@7 g4@12 ~@12 b3@4 b3@4 ~@4 b3@8 g4@6 c3@6 ~@15 c3@10 b3@4 ~@4, ~@7 e4@8 ~@4 [e4,g4]@20 [e4,g4]@12 e4@12 ~@8 [e4,g4]@12 ~ e4@12]/3", // Am E5 Em Cmaj7 Em
  K: "[c3,b3,e4,g4]@5 ~@3 [a3,c#4,e4]@12 [a3,c#4,e4]@8 [a3,e4]@2 [a3,c#4,e4]@2", // Cmaj7 A A5 A
  L: "a3!3 ~@4 b2, [c#4,e4]@4 [c#4,e4]@3 b2@3 b2@4 ~@2, ~@3 a3 [a3,c#4,e4]@2 [a3,c#4,e4]@2", // C#m A
  M: "[[a3,c#4,e4]@3 ~@5 b3@4 ~@4 [b3,e4,g4]@4 ~@9 [e4,g4]@4 ~@4 [e4,g4]@4 [c3,b3,e4,g4]@6 ~@2 [b3,e4,g4]@4 ~@2 c3@4 ~@6 [b3,e4,g4]@8 [g3,b3,d4]@2 ~@6 [g3,b3,d4]@4 ~@4 g3@4 ~@4 [g3,b3,d4]@8 [g3,c4,e4]@3 ~@5 [g3,c4,e4]@4 [g3,c4,e4]@6 ~@6 a2@8 ~ b3@2 ~@6 [b3,e4]@4 [c3,b3,e4]@4 ~@4 [b3,e4]@4 ~@8 [b3,e4]@4 ~@4 [b3,e4]@4 ~@2 c3@4 ~@6 [b3,e4]@8 [g3,b3]@2 ~@6 [g3,b3,d4]@4 ~@8 b3@2, ~@8 [c3,e4,g4]@6 c3@8 c3@11 [e4,g4]@4 ~@16 g4@8 g4@4 ~@28 g3@4 ~@12 [g3,c4]@4 ~@12 [g3,c4,e4]@12 ~ e3@64 ~@6 g2@8 g2@4 g2@4, ~@12 b3@4 ~@4 [b3,e4,g4]@8 ~ b3@12 ~@12 [b3,e4]@12 ~@12 g3@4 ~@4 [g3,b3,d4]@4 [b3,d4]@8 ~@45 b3@4 ~@8 [b3,e4]@4 ~@4 [b3,e4]@4 [b3,e4]@4 ~@4 [b3,e4]@4 ~@4 [b3,e4]@8 [b3,e4]@4 ~@20 [b3,d4]@10, ~@35 c3@6 ~@6 c3@8 ~@4 c3@4 c3@10 g2@4 ~@2 g2@8 g2@8 g2@10 a2@4 ~@2 a2@12 a2@6 ~@9 [c3,g3,e4]@6 g3@58 ~@4 g3@4 ~@4 g3@4 g3@6, ~@72 c3@3 ~@3 c3@4 c3@2 c3@4 c3@4 ~@2 c3@2 c3@5 [g2,d4]@4 ~@7]/7", // A Em Cmaj7 Em G C E5 Cmaj7 …
  N: "[~@2 [g3,b3,d4]@4 [g3,b3,d4]@4 g3@4 ~@4 [a3,c4,e4]@3 ~@4 a2@4 ~@10 [a3,c4,e4]@3 ~ b3@4 ~@4 [b3,e4,g4]@4 ~@8 [e4,g4]@4 ~@4 [e4,g4]@4 [c3,b3,e4,g4]@6 ~@2 [b3,e4,g4]@4 ~@2 c3@4 ~@6 [b3,e4,g4]@8 [g3,b3,d4]@2 ~@6 [g3,b3,d4]@4 ~@4 g3@4 ~@5 [g3,b3,d4]@8 [g3,c4,e4]@3 ~@5 [g3,c4,e4]@4 [g3,c4,e4]@6 a2@2, g2@10 [a2,c4]@6 a2@4 ~ a2@4 ~@4 a2@4 a2@4 a2@5 ~ [c3,e4,g4]@8 ~@6 c3@12 c3@6 ~@6 c3@8 ~@4 c3@4 c3@10 g2@4 ~@2 g2@8 g2@8 g2@10 ~ a2@4 ~@2 a2@12 ~@2, ~@10 e4@2 ~@2 g3@27 ~@8 c3@8 ~@10 [e4,g4]@4 ~@16 g4@8 g4@4 ~@28 g3@4 ~@13 [g3,c4]@4 ~@12, ~@23 [a3,c4,e4]@8 [a3,c4,e4]@4 [a3,c4,e4]@4 ~@8 b3@4 ~@4 [b3,e4,g4]@8 b3@12 ~@12 [b3,e4]@12 ~@12 g3@4 ~@4 [g3,b3,d4]@4 [b3,d4]@8 ~@29]/5", // G Am Em Cmaj7 Em G C Am …
  O: "[~@4 a2@8 b3@2 ~@6 [b3,e4]@4 [c3,b3,e4]@4 ~@4 [b3,e4]@4 ~@8 [b3,e4]@4 ~@4 [b3,e4]@4 ~@2 c3@4 ~@6 [b3,e4]@8 [g3,b3]@2 ~@6 [g3,b3,d4]@4 ~@13 [g3,b3,d4]@4 [g3,b3,d4]@4 g3@4 ~@10 a2@4 ~@10 [a3,c4,e4]@3 ~@2 [c3,b3,g4]@12 ~@6, [g3,c4,e4]@12 e3@64 ~@6 g2@8 ~ g2@4 g2@4 g2@10 [a2,c4]@8 ~@2 a2@4 ~@4 a2@4 a2@4 a2@5 ~@20, ~@12 [c3,g3,e4]@6 g3@58 ~@4 g3@4 ~@5 b3@8 b3@4 ~@14 a2@4 ~@41, ~@16 b3@4 ~@8 [b3,e4]@4 ~@4 [b3,e4]@4 [b3,e4]@4 ~@4 [b3,e4]@4 ~@4 [b3,e4]@8 [b3,e4]@4 ~@21 d4@12 ~@8 e4@2 ~@6 [a3,c4,e4]@4 [a3,c4,e4]@8 [a3,c4,e4]@4 [a3,c4,e4]@4 ~@4 e4@12 ~@7, ~@18 c3@6 ~@6 c3@8 c3@4 c3@8 c3@8 ~@4 c3@4 c3@10 [g2,d4]@8 ~@5 g3@4 g3@8 ~@12 g3@27 ~@20]/5", // E5 Cmaj7 E5 G Am Cmaj7 C Am …
})).s("gm_electric_guitar_jazz").gain(0.24).pan(0.3)

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  A@2 B C ~@8 D@6 ~@5 E@3 F G@3 F H@2 B C ~@8 I@6 J@8 K@4 L@7 M N@2 O P Q@3 R S@2 T U@3 V@3
>`.pickRestart({
  A: "[~@5 b5@39 ~ a5@4 b5@4 d6@7 ~ b5@3]/2", B: "~ a5@4 b5@27", C: "~@5 [b5,b6]@27",
  D: "[~@5 [g2,g3,b3,d4]@16 [a2,e3,a3,c#4,e4]@16 [d3,a3,c#4,f#4,a4]@15 ~ [b2,d4,f#4,a4]@15 ~ [g3,b3,d4,g4,b4]@16 [a3,e4,a4,c#5,e5]@16 [f#3,c#4,f#4,a4]@32 [g3,b3,d4]@16 [a2,e3,c#4,e4,a4]@16 [d3,a3,d4,f#4,a4]@16 [b3,d4,f#4,a4]@11, ~@69 c5@2 ~@121]/6", // G A Dmaj7 Bm7 G A F#m G …
  E: "[~@5 [c4,e4,g4,b4,d5]@21 ~@3 [e4,e5]@7 ~ [g4,g5]@8 [a4,a5]@7 ~ [b4,b5]@7 ~ [c5,c6]@8 [d5,d6]@26 ~]/3", // Cmaj7 E G A B C D
  F: "~@9 [g5,g6]@4 [e5,e6]@3 ~ [d5,d6]@3 ~@5 [b4,b5]@4 [a4,a5]@3", // G E D B A
  G: "[~ [g4,g5]@3 ~ [c4,e4,g4,b4,d5]@21 ~@3 [e4,e5]@7 ~ [g4,g5]@8 [a4,a5]@7 ~ [b4,b5]@7 ~ [c5,c6]@8 [d5,g5,b5,d6]@27]/3", // G Cmaj7 E G A B C G
  H: "[~ [g4,g5]@3 ~ b5@39 ~ a5@4 b5@4 d6@7 ~ b5@3]/2", // G
  I: "[~@5 [g2,g3,b3,d4]@16 [a2,e3,a3,c#4,e4]@16 [d3,a3,c#4,f#4,a4]@16 [b2,d4,f#4,a4]@15 ~ [g3,b3,d4,g4,b4]@16 [a3,e4,a4,c#5,e5]@16 [f#3,c#4,f#4,a4]@32 [g3,b3,d4]@16 [a2,e3,c#4,e4,a4]@16 [d3,a3,d4,f#4,a4]@16 [b3,d4,f#4,a4]@11, ~@69 c5@2 ~@121]/6", // G A Dmaj7 Bm7 G A F#m G …
  J: "[~@5 b5@60 ~@4 b5@92 ~@4 [c4,e4,g4,b4,d5]@21 ~@3 [e4,e5]@7 ~ [g4,g5]@8 [a4,a5]@7 ~ [b4,b5]@7 ~ [c5,c6]@8 [d5,d6]@26 ~]/8", // Cmaj7 E G A B C D
  K: "[~@9 [g5,g6]@4 [e5,e6]@3 ~@2 [d5,d6]@3 ~@5 [b4,b5]@4 [a4,a5]@4 [g4,g5]@3 ~ [c4,e4,g4,b4,d5]@21 ~@3 [e4,e5]@7 ~ [g4,g5]@8 [a4,a5]@7 ~ [b4,b5]@7 ~ [c5,c6]@8 [d5,g5,b5,d6]@26]/4", // G E D B A G Cmaj7 E …
  L: "[~@11 [g5,g6]@4 [e5,e6]@3 ~ [d5,d6]@3 ~@5 [b4,b5]@4 [a4,a5]@4 [g4,g5]@3 ~ [b4,b5]@40 [a4,a5]@4 [b4,b5]@4 [d5,d6]@5 ~ [b4,b5]@4 [a4,a5]@5 ~ [d5,d6]@5 ~@2 [b4,b5]@5 ~ [a4,a5]@4 [b4,b5]@77 ~@3 [c4,e4,g4,b4,d5]@21 ~@3]/7", // G E D B A G B A …
  M: "~ [e4,e5]@7 ~ [g4,g5]@8 [a4,a5]@7 ~ [b4,b5]@7", // E G A B
  N: "[~ [c5,c6]@8 [d5,d6]@26 ~@10 [g5,g6]@4 [e5,e6]@3 ~ [d5,d6]@3 ~@5 [b4,b5]@3]/2", // C D G E D B
  O: "~ [a4,a5]@4 [g4,g5]@3 ~@2 [c4,e4,g4,b4,d5]@21 ~", P: "~@2 [e4,e5]@7 ~ [g4,g5]@8 [a4,a5]@7 ~ [b4,b5]@6",
  Q: "[~@2 [c5,c6]@8 [d5,g5,b5,d6]@28 ~@8 [g5,g6]@4 [e5,e6]@3 ~@2 [d5,d6]@3 ~@5 [b4,b5]@4 [a4,a5]@4 [g4,g5]@3 ~ [c4,e4,g4,b4,d5]@21]/3", // C G E D B A G Cmaj7
  R: "~@3 [e4,e5]@7 ~ [g4,g5]@8 [a4,a5]@7 ~ [b4,b5]@5", // E G A B
  S: "[~@3 [c5,c6]@8 [d5,d6]@26 ~@11 [g5,g6]@4 [e5,e6]@3 ~ [d5,d6]@3 ~@5]/2", // C D G E D
  T: "[b4,b5]@4 [a4,a5]@4 [g4,g5]@3 ~ [c4,e4,g4,b4,d5]@20", // B A G Cmaj7
  U: "[~@4 [e4,e5]@7 ~ [g4,g5]@8 [a4,a5]@7 ~ [b4,b5]@7 ~ [c5,c6]@8 [d5,g5,b5,d6]@28 ~@9 [g5,g6]@4 [e5,e6]@3 ~ [d5,d6]@3 ~@4]/3", // E G A B C G E D
  V: "[~ [b4,b5]@4 [a4,a5]@4 [g4,g5]@3 ~ [c3,g3,e4,b4]@74 ~@9]/3", // B A G Cmaj7
})).s("gm_string_ensemble_1").gain(0.2)

// drums · kick
const kick = s("bd").struct("<A@57 B C@2 D E@3 F G@2 H I@3 J K@2 L M@3 N@3 O A P ~@2>".pickRestart({
  A: "~@5 x ~@7 x ~@7 x ~@7 x ~@2", B: "~@5 x ~@7 x ~@8 x ~@7 x ~", C: "~@3 x ~@3 x ~@3 x ~@3 x",
  D: "~@6 x ~@7 x ~@7 x ~@8 x", E: "~@7 x ~@7 x ~@7 x ~@7 x", F: "~ x!3", G: "x!4", H: "x ~@7 x ~@7 x ~@8 x ~@6",
  I: "~ x ~@7 x ~@7 x ~@7 x ~@6", J: "~ x ~@8 x ~@7 x ~@7 x ~@5", K: "~ x ~@3 x ~@3 x ~@3 x ~@2",
  L: "~@2 x ~@7 x ~@7 x ~@8 x ~@4", M: "~@3 x ~@7 x ~@7 x ~@7 x ~@4", N: "~ x ~ x ~ x ~ x",
  O: "~@4 x ~@7 x ~@7 x ~@8 x ~@2", P: "~@5 x ~@7 x ~@18",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  A B@22 A B@10 C A B@18 A B@2 D@3 E F G H I@3 J K@3 L M@2 N O P Q R@3 S T U ~@2
>`.pickRestart({
  A: "~ x ~ x ~@9 x ~@15 x ~@2", B: "~@13 x ~@15 x ~@2", C: "~@13 x ~@15 x ~ x", D: "~@7 x ~@7 x", E: "~@14 x ~@16 x",
  F: "~@15 x ~@15 x", G: "~ x ~ x ~ x ~@9 x ~@15 x", H: "~@15 x ~@16", I: "x!2", J: "x ~@3 x ~ x ~@10 x ~@14",
  K: "~ x ~@15 x ~@14", L: "~ x ~@16 x ~@13", M: "~ x ~@7 x ~@6", N: "~@2 x ~@16 x ~@12",
  O: "~@3 x ~@3 x ~ x ~@9 x ~@12", P: "~@3 x ~@15 x ~@12", Q: "~@3 x ~@16 x ~@11", R: "~ x ~@3 x ~@2",
  S: "~@4 x ~@16 x ~@10", T: "~@5 x ~@11 x ~@3 x ~@5 x ~@4", U: "~@3 x ~ x ~ x ~ x ~ x ~@20",
})).gain(0.4)

// drums · low tom
const low_tom = s("lt").struct("<~@83 [~ x ~@30] ~@2>").gain(0.4)

// drums · hihat
const hihat = s("hh").struct("<A@57 B C@2 D E@2 F G@3 H I@3 J K@2 L M@2 N O@3 P A Q ~@2>".pickRestart({
  A: "~@5 x ~@7 x ~@7 x ~@7 x ~@2", B: "~@5 x ~@8 x ~@7 x ~@7 x ~", C: "~@3 x ~@3 x ~@3 x ~@3 x",
  D: "~@6 x ~@8 x ~@7 x ~@7 x", E: "~@7 x ~@7 x ~@7 x ~@7 x", F: "~@7 x ~@7 x ~@7 x ~@8", G: "x!4",
  H: "x ~@7 x ~@8 x ~@7 x ~@6", I: "~ x ~@7 x ~@7 x ~@7 x ~@6", J: "~ x ~@8 x ~@7 x ~@7 x ~@5",
  K: "~ x ~@3 x ~@3 x ~@3 x ~@2", L: "~@2 x ~@8 x ~@7 x ~@7 x ~@4", M: "~@3 x ~@7 x ~@7 x ~@7 x ~@4",
  N: "~@3 x ~@7 x ~@8 x ~@7 x ~@3", O: "~ x ~ x ~ x ~ x", P: "~@4 x ~@7 x ~@8 x ~@7 x ~@2", Q: "~@5 x ~@26",
})).gain(0.4)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  A B@22 A B@30 A B@2 C D@3 E@3 F G@2 H I@3 J K@2 L M@3 N O@2 P B Q ~@2
>`.pickRestart({
  A: "~@9 x ~@7 x ~@7 x ~@6", B: "~ x ~@7 x ~@7 x ~@7 x ~@6", C: "~ x ~@7 x ~@8 x ~@7 x ~@5",
  D: "~ x ~@3 x ~@3 x ~@3 x ~@2", E: "~@3 x ~@7 x ~@7 x ~@7 x ~@4", F: "~@3 x ~@8 x ~@7 x ~@7 x ~@3",
  G: "~ x ~ x ~ x ~ x", H: "~@12 x ~@7 x ~@8 x ~@2", I: "~@5 x ~@7 x ~@7 x ~@7 x ~@2", J: "~@5 x ~@8 x ~@7 x ~@7 x ~",
  K: "~@3 x ~@3 x ~@3 x ~@3 x", L: "~@6 x ~@7 x ~@8 x ~@7 x", M: "~@7 x ~@7 x ~@7 x ~@7 x", N: "~ x!3", O: "x!4",
  P: "x ~@7 x ~@7 x ~@8 x ~@6", Q: "~ x ~@7 x ~@22",
})).gain(0.16)

// drums · mid tom
const mid_tom = s("mt").struct("<~@82 [~@29 x ~@2] ~@3>").gain(0.4)

// drums · open hat
const open_hat = s("oh").struct("<~@23 A ~@30 A ~@12 B ~@15 C ~@2>".pickRestart({
  A: "~ x ~@30", B: "~ x ~@6", C: "~@13 x ~@18",
})).gain(0.4)

// drums · high tom
const high_tom = s("ht").struct("<~@82 [~@23 x ~@8] ~@3>").gain(0.4)

// drums · crash
const crash = s("cr").struct("<A ~@17 A ~@4 A ~@7 A ~@11 A ~@5 A ~@4 A ~@7 B ~@4 C ~@7 D ~@10>".pickRestart({
  A: "~@5 x ~@26", B: "~@7 x ~@24", C: "~ x ~@2", D: "~@11 x ~@20",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct("<~@83 [~@13 x ~@18] ~@2>").gain(0.4)

// drums · congas
const congas = s("conga:13").struct("<A@22 ~ A@30 ~ A@3 B@4 C@3 D@2 ~ E F@2 G H@3 I@3 J K@3 L M ~@3>".pickRestart({
  A: "~@9 x ~@15 x ~@6", B: "~@5 x ~@7 x ~@2", C: "~@11 x ~@15 x ~@4", D: "~@3 x ~@3 x", E: "~@12 x ~@16 x ~@2",
  F: "~@13 x ~@15 x ~@2", G: "~@13 x ~@16 x ~", H: "~@7 x ~@7 x", I: "~@15 x ~@15 x", J: "~@15 x ~@16", K: "x!2",
  L: "x ~@16 x ~@14", M: "~ x ~@15 x ~@14",
})).gain(1.29)

// drums · congas
const congas_2 = s("conga:33").struct(`<
  A B@21 C A B@29 C A B@2 D@4 E@3 F G H I J@3 K L@2 M@3 N O@3 P Q R ~@2
>`.pickRestart({
  A: "~@17 x ~ x ~@12", B: "~ x ~@15 x ~ x ~@12", C: "~ x ~@30", D: "~ x ~@7 x!2 ~@5", E: "~@3 x ~@15 x ~ x ~@10",
  F: "~@3 x ~@16 x ~ x ~@9", G: "~@2 x ~@7 x!2 ~@4", H: "~ x ~@6", I: "~@10 x!2 ~@4", J: "~@5 x ~@15 x ~ x ~@8",
  K: "~@5 x ~@16 x ~ x ~@7", L: "~@3 x ~@7 x!2 ~@3", M: "~@7 x ~@15 x ~ x ~@6", N: "~@7 x ~@16 x!2 ~@6",
  O: "~@4 x ~@7 x!2 ~@2", P: "~@8 x ~@16 x ~ x ~@4", Q: "~@9 x ~@15 x ~ x ~@4", R: "~@9 x ~@22",
})).gain(1.29)

stack(
  bass, epiano2, electric_guitar_jazz, string_ensemble_1, kick, snare, low_tom, hihat, hihat_soft, mid_tom, open_hat,
  high_tom, crash, ride, congas, congas_2
)

More by Bee Gees