Strudelify
Stayin Alive cover art

1977

Stayin Alive

Bee Gees

KeyF minorTempo104 bpm
0:00/0:00
// Stayin Alive — Bee Gees
// 104 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 126 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): JAZZ GTR.
setcpm(104/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, A@4 for four bars: edit a riff to change every repeat.

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  A B C@2 A B A B D E F@4 G B H B I E I J@3 K A B A B D E F@4 G B H B I E I J@3 L A B M@2 N A B M@2 N A B A B D E F@4 G
  B H B I E I O@3 P Q B M@2 N A B M@2 A B A B M@2 N A B M@2 A B A B M@2 N A B M@2 A B A B M@2 N A B M@2 A B A B M@2 ~
>`.pickRestart({
  A: "~@2 [f4,ab4,c5] ~ [d4,g4,bb4] ~ [c4,f4,ab4]@10", B: "~@2 [c4,f4,ab4] ~ [bb3,eb4,g4] ~ [ab3,c4,f4]@9 ~",
  C: "[[d4,f4,ab4]@23 ~@9]/2", D: "~@2 [f4,ab4,c5] ~ [d4,g4,bb4] ~ [c4,f4,ab4]@8 ~@2",
  E: "~@2 [c4,f4,ab4] ~ [bb3,eb4,g4] ~ [ab3,c4,f4]@8 ~@2", F: "[[d4,f4,bb4]@31 ~]/2",
  G: "~ [c4,f4,ab4] ~ [ab3,c4,f4]@4 ~", H: "~@2 [f4,ab4,c5]@2 ~@2 [c4,f4,ab4]@9 ~",
  I: "~ [ab4,c5] ~ [d4,g4,bb4] ~ [c4,f4] ~ [bb3,eb4,g4], ~@2 f4 ~@7 ab4 ~@5", J: "[f4 eb4 c4, ab3, c4@2 ~]/3",
  K: "[c3,bb3,eb4,g4]", L: "eb5@10 [eb5,g5]@2 c5 eb5@2 c5, [c3,bb3,g4]", M: "[~@2 bb4@29 ~, [bb3,d4,f4]@15 ~]/2",
  N: "[d4,f4,bb4]", O: "[ab3,c4,f4]/3",
  P: "[c3,bb3,g4,eb5]@10 [b6,c7] [g6,a6] [e6,f6] [a5,b5,c6,d6] [e5,f5,g5] [a4,b4,c5,d5]", // Cm7 Cmaj7 Gsus2 Fmaj7 D7 Em D7
  Q: "g4 ~ [f4,ab4,c5] ~ [d4,g4,bb4] ~ [c4,f4,ab4]@10", // Fm Gm Fm
})).s("gm_epiano1").gain(0.38).pan(0.6)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A B C D E F G H G I J K L M N O N P Q R S T@3 U E V A W E I X Y Z AA AB AC N P Q AD N T@3 U E F C AE AF E V C AG AF E
  V E AH E AH J Y J M N O N P Q AD N AI@3 U AJ V C AG AF E V C AK E V E V AL AM AF E V AN AO E V E V AN AM AP E V AN AQ
  E F E V AN AM AP E V AN AQ E V E V AN ~@2
>`.pickRestart({
  A: "eb2 f2@2 ~@5 f1@2 ~@6", B: "eb2 f2@2 ~@3 bb1@2 c2@2 eb2@2 f2@2 ab2@2", C: "bb1@2 bb2@2 bb2@2 ~@6 f2 ab2@2 f2",
  D: "bb1@2 bb2@2 bb2@2 ~@4 eb2 ~ eb2 ~ eb2 ~", E: "eb2 f2 ~@6 f1@2 ~@6", F: "eb2 f2 ~@4 bb1@2 c2@2 eb2@2 f2@2 ab2@2",
  G: "eb2 f2 ~@5 f1 f1@2 ~@6", H: "eb2@2 ~ bb1 c2 eb2 f2 ab2", I: "c2 eb2 ~@4 bb1@2 c2@2 eb2@2 f2@2 ab2@2",
  J: "bb1@4 bb2@2 bb2 f2 bb1@4 bb1@2 bb1@2", K: "bb2@4 bb2@5 bb1 f1@2 ab1@2 a1@2", L: "bb1@3 ~ bb2@3 f2 bb1@7 ~",
  M: "bb2@4 bb2@5 f2 bb1@2 bb1 c2 eb2@2", N: "f2@2 ab2@2 ~@2 f2 ~ f2@2 eb2@2 ~@2 c2@2",
  O: "c2@3 ~@3 f2@2 f2@2 bb1@2 c2@2 eb2@2", P: "f2@8 ~ f2 bb1@2 c2@2 eb2@2", Q: "f2 ab2 ~ f2!2 eb2!2 c2",
  R: "c2@4 ~@2 f2@2 f2!2 bb1@2 c2@2 eb2@2", S: "f2@2 ab2 ~@3 f2 ~ f2@2 eb2 ~@3 c2@2", T: "f2/3",
  U: "c2@9 f1 g1@2 bb1@2 c2@2", V: "eb2 f2 ~@4 bb1@2 c2@2 eb2@2 f2@2 ab2 ~",
  W: "eb2@2 ~@3 eb2 bb1@2 c2@2 eb2@2 f2@2 ab2@2", X: "bb1@4 bb2 ~ bb2 f2 bb1@4 bb1@2 bb1@2",
  Y: "bb2@4 bb2@4 bb2 bb1 f1@2 ab1@2 a1@2", Z: "bb1@2 bb2 ~ bb2 ~ bb2 f2 bb1@6 ~ f2",
  AA: "bb2@2 bb2@2 bb2@3 bb2 ~ bb2 bb1 ~ bb1 c2 eb2@2", AB: "f2@2 ab2@2 ~@2 f2 ~ f2@2 eb2@2 ~@2 c2 ~",
  AC: "c2@3 ~@3 f2 ~ f2@2 bb1@2 c2@2 eb2 ~", AD: "c2@4 ~@2 f2 ~ f2!2 bb1@2 c2@2 eb2@2",
  AE: "bb1@2 bb2@2 bb2 ~@4 bb1 f1@2 ab1@2 c2@2", AF: "bb1@2 bb2@2 ~@6 eb2@2 eb2@2 eb2 ~",
  AG: "bb1@2 bb2@2 bb2 ~@4 bb1 f1@2 ab1@2 c2 ~", AH: "eb2@2 ~@4 bb1@2 c2@2 eb2@2 f2@2 ab2 ~", AI: "[f2@47 ~]/3",
  AJ: "eb2 f2 ~@6 f1@3 ~@5", AK: "bb1@2 bb2@2 ~@2 ab2@2 ~@2 eb2!2 ~ eb2!2 ~", AL: "bb1@2 bb2 ~@5 bb1 ~@3 f2 ab2@2 f2",
  AM: "bb1@2 bb2 ~@6 bb1 f1@2 ab1@2 c2@2", AN: "bb1@2 bb2@2 ~@8 f2 ab2@2 f2",
  AO: "bb1@2 bb2@2 ~@4 ab2@2 ~@2 eb2 ~ eb2 ~", AP: "bb1@2 bb2 ~@7 eb2 ~ eb2 ~ eb2 ~",
  AQ: "bb1@2 bb2@2 ~@2 ab2@2 ~@2 eb2@2 ~@2 eb2 ~",
})).s("gm_fretless_bass").gain(0.49)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V@2 ~ W E F G H I J K L M N O P Q R S T U V@2 ~ W A B C D X Y B C D X Z F G
  H I J K L M N O P Q R S T U V@2 ~ W A B C D X Y B C D AA A@2 B C D X Y B C D AA A@2 B C D X Y B C D AA A@2 B C D X Y B
  C D AA A@2 B C AB ~
>`.pickRestart({
  A: "[ab3,c4,f4] ~ [ab3,c4,f4]!6 [c4,f4]!2 [ab3,c4,f4]!4 [c4,f4] [ab3,c4,f4]", // Fm F5 Fm F5 Fm
  B: "[c4,f4]!2 [ab3,c4,f4] [c4,f4]!4 [ab3,c4,f4] [c4,f4]!2 [ab3,c4,f4]!2 ~ f4 [ab3,c4,f4] [d4,f4,bb4], ~@4 ab3@3 ~@5 [ab3,c4,f4]@2 ~@2", // F5 Fm F5 Fm F5 Fm Bb Fm
  C: "[f4,bb4] [d4,f4,bb4]!4 [f4,bb4] [d4,f4,bb4]!7 [f4,bb4] [d4,f4,bb4]!2", // Bb5 Bb Bb5 Bb Bb5 Bb
  D: "[d4,f4,bb4]!8 [f4,bb4] [d4,f4,bb4]!6 [ab3,c4,f4]", // Bb Bb5 Bb Fm
  E: "~ [c4,f4] [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!2 f4 [c4,f4] [ab3,c4,f4]!2 ~ f4 [ab3,c4,f4]!2, ~@6 [ab3,c4,f4] ~", // F5 Fm F5 Fm F5 Fm
  F: "f4 [c4,f4] [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!2 f4 [c4,f4] [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!2", // F5 Fm F5 Fm F5 Fm F5 Fm
  G: "[c4,f4]!2 [ab3,c4,f4]!4 [c4,f4] [ab3,c4,f4] f4 [c4,f4] [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4] [g3,bb3,eb4]", // F5 Fm F5 Fm F5 Fm F5 Fm …
  H: "eb4 [bb3,eb4] [g3,bb3,eb4]!4 [bb3,eb4] [ab3,c4,f4] f4!2 [ab3,c4,f4]!2 ~ f4 [ab3,c4,f4]!2, ~@6 [ab3,c4,f4] ~", // Eb5 Eb Eb5 Fm
  I: "[c4,f4] f4 [ab3,c4,f4] [c4,f4] [ab3,c4,f4]!4 [c4,f4]!2 [ab3,c4,f4]!2 ~ f4 [ab3,c4,f4] [bb3,eb4], ~@6 [ab3,c4,f4] ~", // F5 Fm F5 Fm F5 Fm Eb5 Fm
  J: "[g3,eb4] [bb3,eb4] [g3,bb3,eb4] [bb3,eb4] [g3,bb3,eb4] [g3,eb4] [g3,bb3,eb4] [ab3,c4,f4] f4 [c4,f4] [ab3,c4,f4]!2 [c4,f4]!3 [bb3,d4,f4], ~@12 ab3@3 ~", // Cm Eb5 Eb Eb5 Eb Cm Eb Fm …
  K: "[bb3,d4,f4] [d4,f4] [d4,f4,bb4] [bb3,d4,f4] [d4,f4,bb4]!9 [f4,bb4] [d4,f4,bb4]!2", // Bb Dm Bb Bb5 Bb
  L: "[d4,f4,bb4]!4 ~ bb4 [d4,f4,bb4]!10, ~@2 [d4,f4,bb4] ~@5", // Bb
  M: "[d4,f4,bb4] [f4,bb4] [d4,f4,bb4]!3 [f4,bb4] [d4,f4,bb4]!6 ~ bb4 [d4,f4,bb4]!2, ~@6 [d4,f4,bb4] ~", // Bb Bb5 Bb Bb5 Bb
  N: "[f4,bb4] [d4,f4,bb4]!4 [f4,bb4] [d4,f4,bb4]!9 [ab3,c4,f4]", // Bb5 Bb Bb5 Bb Fm
  O: "[c4,f4] [ab3,c4,f4]!5 [c4,f4] [ab3,c4,f4] [c4,f4]!2 [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!2", // F5 Fm F5 Fm F5 Fm F5 Fm
  P: "f4 [c4,f4] [ab3,c4,f4]!2 ~ f4 [c4,f4] [ab3,c4,f4] [c4,f4] [ab3,c4,f4]!3 ~ f4 [ab3,c4,f4]!2, ~@2 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~", // F5 Fm F5 Fm F5 Fm
  Q: "f4 [c4,f4] [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!2 [c4,f4]!2 [ab3,c4,f4] [c4,f4] ~ f4 [ab3,c4,f4]!2, ~@6 [ab3,c4,f4] ~", // F5 Fm F5 Fm F5 Fm F5 Fm
  R: "[ab3,c4,f4] [c4,f4] [ab3,c4,f4]!2 ~ f4 [ab3,c4,f4]!2 [c4,f4]!2 [ab3,c4,f4]!2 ~ f4 [ab3,c4,f4]!2, ~@2 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~", // Fm F5 Fm F5 Fm
  S: "[c4,f4]!2 [ab3,c4,f4]!2 ~ f4 [ab3,c4,f4]!2 [c4,f4]!2 [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!2, ~@2 [ab3,c4,f4] ~@5", // F5 Fm F5 Fm F5 Fm
  T: "[ab3,c4,f4] [c4,f4] [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!2", // Fm F5 Fm F5 Fm F5 Fm F5 …
  U: "[c4,f4]!2 [ab3,c4,f4]!2 ~ f4 [ab3,c4,f4]!2 f4 [c4,f4] [ab3,c4,f4]!2 f4!2 [c4,f4] ~, ~@4 [ab3,c4,f4]@2 ~@6 [ab3,c4]@3 ~", // F5 Fm F5 Fm F5 Fm Ab
  V: "[[ab3,c4,f4]@9 ~@7]/2", // Fm
  W: "g4!2 [bb3,eb4,g4] [eb4,g4]@2 [eb4,g4]@2 [eb4,g4] g4!2 [bb3,eb4,g4] [eb4,g4]@2 [eb4,g4]@2 [eb4,g4], g3!2, [bb3,eb4]@2 ~ bb3@5 [bb3,eb4]@2 ~ bb3@5", // Eb Eb5
  X: "~ [d4,f4,bb4]!4 [f4,bb4] [d4,f4,bb4]!7 [f4,bb4] [d4,f4,bb4]!2", // Bb Bb5 Bb Bb5 Bb
  Y: "[ab3,c4,d4,f4,bb4] ~ [ab3,c4,f4]!6 [c4,f4]!2 [ab3,c4,f4]!4 [c4,f4] [ab3,c4,f4]", // Bb7 Fm F5 Fm F5 Fm
  Z: "[d4,f4,bb4] [c4,f4] [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!2 f4 [c4,f4] [ab3,c4,f4]!2 ~ f4 [ab3,c4,f4]!2, ~@6 [ab3,c4,f4] ~", // Bb F5 Fm F5 Fm F5 Fm
  AA: "~ [c4,f4] [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!3 [c4,f4] [ab3,c4,f4]!2", AB: "d4 ~@15",
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.6)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A B C D A E A E A E F G H G ~@11 A I A B A E F G@2 J ~@11 A E K G@2 A E L M G A E A E A E N G O@2 ~@11 A E P O Q A E R
  D A E A E S T H A E U V A E A E W H V A E X V A E A E L D Y A E X D A E A Z D ~@2
>`.pickRestart({
  A: "eb3 f3 ~ ab3 ~@2 eb3 ~@3 c3 ~ bb2 c3 eb3 ~", B: "bb2 c3 ~ eb3 ~ eb3 bb2 ~ c3 ~ eb3 ~ f3 ~ ab3 ~",
  C: "~@8 f3 ab3 ~ f3 ab3@2 f3 ~", D: "~@7 ab3 ~ ab3 ~ f3 ab3@2 f3 ~",
  E: "bb2 c3 ~ eb3 ~ eb3 bb2 ~ c3 ~ eb3 ~ f3@2 ab3 ~", F: "~@11 f3 ab3@2 f3 ~", G: "~@9 ab3 ~ f3 ab3@2 f3 ~",
  H: "~@9 ab3 ~@2 ab3@2 f3 ~", I: "bb2 c3 ~ eb3 ~ eb3 bb2@2 c3 ~ eb3 ~ f3 ~ ab3 ~", J: "~@8 f3 ab3 ~ f3 ~@2 f3 ~",
  K: "bb2@2 bb3 ~@11 f3 ~", L: "bb2@2 bb3 ~@6 ab3 ~ f3 ab3@2 f3 ~", M: "~@6 ab3!2 ~ ab3 ~ f3 ~@2 f3 ~", N: "~@14 f3 ~",
  O: "~@8 f3 ~@2 f3 ab3@2 f3 ~", P: "bb2@2 bb3 ~@5 f3 ~@2 f3 ab3@2 f3 ~", Q: "~@8 f3 ~@3 ab3@2 f3 ~",
  R: "bb2 ~ bb3 ~@8 f3 ab3@2 f3 ~", S: "bb2@2 bb3 ~@9 ab3@2 f3 ~", T: "~@11 f3 ~@2 f3 ~",
  U: "bb2@2 bb3 ~@8 f3 ab3@2 f3 ~", V: "~@7 ab3 ~ ab3 ~@2 ab3@2 f3 ~", W: "bb2 ~ bb3 ~@6 ab3 ~@4 f3 ~",
  X: "bb2@2 bb3 ~@6 ab3 ~@2 ab3@2 f3 ~", Y: "~@6 ab3 ~@3 ab3 ~ ab3@2 f3 ~",
  Z: "bb2 c3 ~ eb3 ~ eb3 bb2 ~ c3 ab3 eb3 f3 [f3,ab3]@2 [f3,ab3] ~", // Fm
})).s("gm_electric_guitar_muted").gain(0.38).pan(0.4)

// other · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note(`<
  ~@10 A B C B ~@17 D ~@2 E ~@13 E ~ B ~@3 E B ~@6 F B G@2 ~@13 G@2 H ~@2 D I ~@4 J K L ~@2 D M ~@4 N C M ~@2 L M ~@5 I
  ~@3 O I ~@4 I ~@2
>`.pickRestart({
  A: "~@7 ab3 ~ ab3 ~@6", B: "~@7 ab3 ~@8", C: "~@7 ab3 ~@3 f3 ~@4", D: "~@8 f3 ab3 ~@6", E: "~@6 ab3 ~",
  F: "~@8 f3 ab3 ~ f3 ab3@2 ~@2", G: "~@9 ab3 ~@6", H: "~@9 ab3 ~ f3 ~@4", I: "~@6 ab3 ~@9", J: "~@8 f3 ab3 ~ f3 ~@4",
  K: "~@8 f3 ab3 ~@2 ab3@2 ~@2", L: "~@8 f3 ~@2 f3 ~@4", M: "~@6 ab3 ~@4 f3 ~@4", N: "~@11 f3 ab3@2 ~@2",
  O: "~@11 f3 ~@4",
})).s("gm_electric_guitar_muted").gain(0.27).pan(0.4)

// chords · electric guitar jazz · "JAZZ GTR" · Ab
const electric_guitar_jazz = note(`<
  ~@15
  [~@5 c5 ~@7 [ab4,c5] ~@2]
  [~@11 ab4 ~@4]
  [~@5 c5 ~@7 [ab4,c5] ~@2]
  ~
  [~@5 ab4@11]
  ~@106
>`).s("gm_electric_guitar_jazz").gain(0.14).pan(0.9)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~ A B@2 ~@6 C@4 ~@10 D ~@2 E F E G H@4 I J K L M N O P@3 D ~ Q R@2 S T U V@3 W@2 E F E G H@4 I J K L M X M P@3 D ~ A Y
  ~ Z AA A Y AB AC@2 AD AE Y AF@2 AA A AG@2 AC@2 AD AE Y ~ Z AA U Y AB AC@2 AD AE Y AF@2 AA A AG@2 AC@2 AD AE AH@2 ~
>`.pickRestart({
  A: "~@3 [f3,c4,ab4]", B: "[[bb2,d4,bb4]@7 ~]/2", C: "[bb3,d4,bb4]/4",
  D: "~@4 [bb3,c4,eb4] [c4,d4,eb4] [bb3,c4,d4] [bb3,c4,d4,eb4]!3 [bb3,c4,eb4] [bb3,c4,d4,eb4]!4 [bb3,d4], ~ c3@3", // Cm7 Cm Bb Cm7 Bb
  E: "[f3,f4,f5]", F: "[eb3,eb4,eb5] [c3,c4,c5]", G: "[eb3,eb4,eb5] [f3,f4,f5]", H: "[[bb2,d4,bb4]@63 ~]/4",
  I: "~@2 [ab4,ab5] ~ [g4,g5] ~ [f4,f5]@5 ~@3 [eb4,eb5] ~", J: "~@2 [f4,f5] ~ [eb4,eb5] ~ [c4,c5]@6 ~@2 [eb4,eb5] ~",
  K: "~@2 [ab4,ab5] ~ [g4,g5] ~ [f4,f5]@6 ~@2 [eb4,eb5] ~", L: "~@2 [c4,c5]!2 [eb4,eb5] ~ [c4,c5]@5 ~@3 [eb4,eb5] ~",
  M: "~@2 [f5,ab5,c6] ~@3 [d5,g5,bb5] ~@3 [c5,f5,ab5] ~@3 [bb4,eb5,g5] ~", N: "~@6 [f4,f5]@8 [eb4,eb5] [c4,c5]",
  O: "~@2 [f5,ab5,c6] ~@3 [d5,g5,bb5] ~@3 [c5,f5,ab5] ~@3 [g4,bb4,eb5] ~", P: "[f4,f5]/3", Q: "~@6 f4 [f3,c4,ab4]",
  R: "[[bb2,d4,bb4]@31 ~]/2", // Bb
  S: "[c4,c5] [ab3,ab4] [f3,f4] ~ [bb3,bb4] [g3,g4] [eb3,eb4] ~ [ab3,ab4] [f3,f4] [c3,c4] ~ [ab3,g4] ~ [eb3,eb4]@2", // C Ab F Bb G Eb Ab F …
  T: "f4, f3@7 ~", U: "~@7 [f3,c4,ab4]",
  V: "[[bb2,d4,bb4]@31 ~ [ab5,c6] [e5,g5,b5] [db5,d5,eb5,e5,f5,gb5,ab5,a5,bb5] ~ g5@2 [c5,db5,d5,eb5,e5,f5,gb5,g5,ab5,a5] ~ ab5 [b4,g5] [ab4,a4,bb4,f5,gb5] g4 ~@2 [eb3,eb4]@2, ~@31 f5@2 ~@2 d5@3 ~ c5@2 ~@7, ~@36 bb5 ~@3 f5@2 ~@6]/3", // Bb Ab Em Eb
  W: "[[f3,f4]@31 ~]/2", X: "~@2 [c5,ab5] ~ [bb4,g5] ~ [f4,f5]@8 [eb4,eb5] [c4,c5]", Y: "[bb2,d4,bb4]",
  Z: "[c4,c5] [ab3,ab4] [f3,f4] ~ [bb3,bb4] [g3,g4] [eb3,eb4] ~ [ab3,ab4] [f3,f4] [c3,c4] ~ [eb3,eb4]@2 [eb3,eb4]@2", // C Ab F Bb G Eb Ab F …
  AA: "[f3,f4]", AB: "~@6 [f3,f4] [eb3,eb4]",
  AC: "[~@2 [ab4,ab5] ~ [g4,g5] ~ [f4,f5]@4 ~@2 [bb3,bb4] [c4,c5] [eb4,eb5] ~@3 [f4,f5] ~ [eb4,eb5] ~ [c4,c5]@7 ~@3, f3@9 ~@7, f4@3 ~@13]/2", // Ab G F Bb C Eb F Eb …
  AD: "~@2 [ab4,ab5] ~ [g4,g5] ~ [f4,f5]@4 ~@2 [bb3,bb4] [c4,c5] [eb4,eb5] ~", // Ab G F Bb C Eb
  AE: "~@2 [f4,f5] ~ [eb4,eb5] ~ [c4,c5]@6 [f3,c4,ab4]@4", // F Eb C Fm
  AF: "[~@16 [ab5,c6] [e5,g5,b5] [db5,d5,eb5,e5,f5,gb5,ab5,a5,bb5] ~ g5@2 [c5,db5,d5,eb5,e5,f5,gb5,g5,ab5,a5] ~ ab5 [b4,g5] [ab4,a4,bb4,f5,gb5] g4 [eb3,eb4]@2 [eb3,eb4]@2, ~@15 f5@2 ~@2 d5@3 ~ c5@2 ~@7, ~@20 bb5 ~@3 f5@2 ~@6]/2", // Ab Em Eb
  AG: "[[bb2,d4,bb4]@19 ~@9 [f3,f4]@2 [eb3,eb4]@2]/2", AH: "[[bb2,d4,bb4]@15 f5@2 ~@15]/2",
})).s("gm_string_ensemble_1").gain(0.38).pan(0.7)

// chords · string ensemble 1 · "STRINGS" · soft notes · Cmaj7 Gbmaj7 Cmaj7 Gbmaj7 Cmaj7 Gbmaj7
const string_ensemble_1_soft = note(`<
  ~@55
  [~@2 [b4,c5,g5] [bb4,db5,f5,gb5] ~@2 [a4,bb4,b4] [gb4,g4,ab4,e5] ~ e5 [db5,d5,eb5] c5 ~@4]
  ~@36
  [~@2 [b4,c5,g5] [bb4,db5,f5,gb5] ~@2 [a4,bb4,b4] [gb4,g4,ab4,e5] ~ e5 [db5,d5,eb5] c5 ~@4]
  ~@21
  [~@2 [b4,c5,g5] [bb4,db5,f5,gb5] ~@2 [a4,bb4,b4] [gb4,g4,ab4,e5] ~ e5 [db5,d5,eb5] c5 ~@4]
  ~@11
>`).s("gm_string_ensemble_1").gain(0.16).pan(0.7)

// other · brass section · "BRASS 1"
const brass_section = note(`<
  ~@51 A B C ~@2 A B ~@24 A B C ~ A D E B ~@3 A B C ~ A D E B F ~@2 G B F ~ A D E B F ~@2 A B C ~ A D E B F ~@2
>`.pickRestart({
  A: "~@2 [ab3,ab4] ~ [f3,f4] ~@4 [ab3,ab4] ~ [ab3,ab4] [bb3,bb4] [c4,c5] [eb4,eb5] ~", // Ab F Ab Bb C Eb
  B: "~@2 [f4,f5] ~@2 [f4,f5] ~@10", C: "~@4 [d4,bb4] ~@11",
  D: "~@2 [f4,f5] ~@2 [f4,f5] ~@3 [c5,eb5,f5,ab5]@2 ~@2 [c5,f5,g5]@2 ~", // F Fm7 Csus4
  E: "~@5 [c4,c5] ~@4 [c4,c5] ~ [bb3,bb4] [c4,c5] [eb4,eb5] ~", F: "~@4 [d4,f4,bb4] ~@11",
  G: "~@2 [ab3,ab4] ~ [g3,g4] [f3,f4] ~@3 [ab3,ab4] ~ [ab3,ab4] [bb3,bb4] [c4,c5] [eb4,eb5] ~", // Ab G F Ab Bb C Eb
})).s("gm_brass_section").gain(0.44).pan(0.4)

// chords · pad new age · "FANTASIA"
const pad_new_age = note("<~@2 A@2 ~@122>".pickRestart({
  A: "[~ [d4,bb4]@7]/2", // Gm
})).s("gm_pad_new_age").gain(0.38).pan(0.9)

// drums · kick
const kick = s("bd").struct("<[x!2]!124 ~@2>").gain(0.49)

// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!124 ~@2>").gain(0.49)

// drums · hihat
const hihat = s("hh").struct(`<
  A@3 B A B A B A B A B A B A B A B A C A@4 ~ D B A B A B A B A B A B A B A B A@4 ~ D B A@2 C E B A@2 B E B A B A B A B
  A B A B A F A C A@4 ~ D B A B@2 E B A B E B A B A@2 B E B A B E B A B A@2 B E B A B E B A B A B@2 E B A B E B A B A G
  ~
>`.pickRestart({
  A: "x!8", B: "x!7 ~", C: "x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~@2", D: "~ x!7", E: "x!2 ~ x!5",
  F: "x ~ x ~ x ~ x ~ x ~ x!2 ~@4", G: "x",
})).gain(0.44)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@4 B ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@4 B ~ A ~@2 A ~ A ~@2 A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ C ~ A ~@4 B ~ A ~ A@2 ~ A ~ A ~ A ~ A ~@2 A ~ A ~ A ~ A ~ A ~@2 A ~ A ~ A ~ A ~ A ~ A@2 ~ A ~ A ~ A ~ A ~@3
// … 25 more lines

More by Bee Gees