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: edit a riff to change every repeat.

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  A B C@2 D E D E F B G@2 H@2 I E J E K B L M@3 N D E D E F B G@2 H@2 I E J E K B L M@3 O D E P@2 Q D E P@2 Q D E D E F
  B G@2 H@2 I E J E K B L R@3 S T E P@2 Q D E P@2 D E D E P@2 Q D E P@2 D E D E P@2 Q D E P@2 D E D E P@2 Q D E P@2 D E
  D E P@2 ~
>`.pickRestart({
  A: "~@2 [f4,ab4,c5] ~ [d4,g4,bb4] ~ [c4,f4,ab4]@9 ~", B: "~@2 [c4,f4,ab4] ~ [bb3,eb4,g4] ~ [ab3,c4,f4]@8 ~@2",
  C: "[[d4,f4,ab4]@23 ~@9]/2", D: "~@2 [f4,ab4,c5] ~ [d4,g4,bb4] ~ [c4,f4,ab4]@10",
  E: "~@2 [c4,f4,ab4] ~ [bb3,eb4,g4] ~ [ab3,c4,f4]@9 ~", F: "~@2 [f4,ab4,c5] ~ [d4,g4,bb4] ~ [c4,f4,ab4]@8 ~@2",
  G: "[[d4,f4,bb4]@31 ~]/2", H: "[[d4,f4,bb4]@15 ~]/2", I: "~ [c4,f4,ab4] ~ [ab3,c4,f4]@4 ~",
  J: "~@2 [f4,ab4,c5]@2 ~@2 [c4,f4,ab4]@9 ~", // Fm
  K: "~ [ab4,c5] ~ [d4,g4,bb4] ~ [c4,f4] ~ [bb3,eb4,g4], ~@2 f4 ~@7 ab4 ~@5", // Ab Gm F5 Eb
  L: "~ [f4,ab4,c5] ~ [d4,bb4] ~ [c4,f4] ~ [bb3,eb4,g4], ~@6 g4 ~@3 ab4 ~@5", M: "[f4 eb4 c4, ab3, c4@2 ~]/3",
  N: "[c3,bb3,eb4,g4]", O: "eb5@10 [eb5,g5]@2 c5 eb5@2 c5, [c3,bb3,g4]", P: "[~@2 bb4@29 ~, [bb3,d4,f4]@15 ~]/2",
  Q: "[d4,f4,bb4]", R: "[ab3,c4,f4]/3",
  S: "[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
  T: "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 I J K L M N O P Q R S T U V@3 W E X A Y E J Z AA AB AC AD AE Q AF AG AH Q V@3 AI E F C AJ AK E X C AL
  AK A F E AM A AN K AO Z AP AD AQ Q R S AH AR AS@3 W AT X C AU AV E F AW AX E X E X AY AZ BA E F BB BC E X E F BD BE BF
  E BG BB BH A F E X BD AZ AV E X BD BI E X E X BD ~@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: "eb2 f2@2 ~@4 f1 f1@3 ~@5",
  J: "c2 eb2 ~@4 bb1@2 c2@2 eb2@2 f2@2 ab2@2", K: "bb1@4 bb2@2 bb2 f2 bb1@4 bb1@2 bb1@2",
  L: "bb2@4 bb2@5 bb1 f1@2 ab1@2 a1@2", M: "bb1@3 ~ bb2@3 f2 bb1@7 ~", N: "bb2@4 bb2@5 f2 bb1@2 bb1 c2 eb2@2",
  O: "f2@2 ab2@2 ~@2 f2@2 f2@2 eb2@2 ~@2 c2 ~", P: "c2@3 ~@3 f2@2 f2@2 bb1@2 c2@2 eb2@2",
  Q: "f2@2 ab2@2 ~@2 f2 ~ f2@2 eb2@2 ~@2 c2@2", R: "f2@8 ~ f2 bb1@2 c2@2 eb2@2", S: "f2 ab2 ~ f2!2 eb2!2 c2",
  T: "c2@4 ~@2 f2@2 f2!2 bb1@2 c2@2 eb2@2", U: "f2@2 ab2 ~@3 f2 ~ f2@2 eb2 ~@3 c2@2", V: "f2/3",
  W: "c2@9 f1 g1@2 bb1@2 c2@2", X: "eb2 f2 ~@4 bb1@2 c2@2 eb2@2 f2@2 ab2 ~",
  Y: "eb2@2 ~@3 eb2 bb1@2 c2@2 eb2@2 f2@2 ab2@2", Z: "bb1@4 bb2 ~ bb2 f2 bb1@4 bb1@2 bb1@2",
  AA: "bb2@4 bb2@4 bb2 bb1 f1@2 ab1@2 a1@2", AB: "bb1@2 bb2 ~ bb2 ~ bb2 f2 bb1@6 ~ f2",
  AC: "bb2@2 bb2@2 bb2@3 bb2 ~ bb2 bb1 ~ bb1 c2 eb2@2", AD: "f2@2 ab2@2 ~@2 f2 ~ f2@2 eb2@2 ~@2 c2 ~",
  AE: "c2@3 ~@3 f2 ~ f2@2 bb1@2 c2@2 eb2 ~", AF: "f2@7 ~@2 f2 bb1@2 c2@2 eb2@2",
  AG: "f2@2 ab2@2 ~@2 f2 ~ f2@2 eb2 ~ eb2@2 c2@2", AH: "c2@4 ~@2 f2 ~ f2!2 bb1@2 c2@2 eb2@2",
  AI: "c2@9 f1 g1@2 bb1@2 c2 ~", AJ: "bb1@2 bb2@2 bb2 ~@4 bb1 f1@2 ab1@2 c2@2", AK: "bb1@2 bb2@2 ~@6 eb2@2 eb2@2 eb2 ~",
  AL: "bb1@2 bb2@2 bb2 ~@4 bb1 f1@2 ab1@2 c2 ~", AM: "eb2@2 ~@4 bb1@2 c2@2 eb2@2 f2@2 ab2 ~",
  AN: "eb2@3 ~@3 bb1@2 c2@2 eb2@2 f2@2 ab2@2", AO: "bb2@4 bb2@3 ~ bb2 bb1 f1@2 ab1@2 a1@2",
  AP: "bb2@4 bb2@5 f2 bb1@2 bb1 c2 eb2 ~", AQ: "c2@4 ~@2 f2 ~ f2@2 bb1@2 c2@2 eb2@2", AR: "f2 ab2 ~ f2!2 eb2 ~ c2",
  AS: "[f2@47 ~]/3", AT: "eb2 f2 ~@6 f1@3 ~@5", AU: "bb1@2 bb2@2 bb2@2 ~@3 bb1 f1@2 ab1@2 c2 ~",
  AV: "bb1@2 bb2 ~@7 eb2 ~ eb2 ~ eb2 ~", AW: "bb1@2 bb2 ~ bb2@2 ~@6 f2 ab2@2 f2",
  AX: "bb1@2 bb2@2 ~@2 ab2@2 ~@2 eb2!2 ~ eb2!2 ~", AY: "bb1@2 bb2 ~@5 bb1 ~@3 f2 ab2@2 f2",
  AZ: "bb1@2 bb2 ~@6 bb1 f1@2 ab1@2 c2@2", BA: "bb1@2 bb2 ~@7 eb2@2 eb2 ~ eb2 ~", BB: "bb1@2 bb2 ~@9 f2 ab2@2 f2",
  BC: "bb1@2 bb2@2 ~@4 ab2@2 ~@2 eb2 ~ eb2 ~", BD: "bb1@2 bb2@2 ~@8 f2 ab2@2 f2",
  BE: "bb1@2 bb2 ~@6 bb1 f1@2 ab1@2 c2 ~", BF: "bb1@2 bb2@2 ~@6 eb2 ~ eb2 ~ eb2 ~",
  BG: "eb2 f2@2 ~@3 bb1@2 c2@2 eb2@2 f2@2 ab2 ~", BH: "bb1@2 bb2@2 ~@2 ab2@2 ~@2 eb2@2 ~@2 eb2 ~",
  BI: "bb1@2 bb2@2 ~@2 ab2 ~@3 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
  S A E A E T U H A E V W A E A E X H W A E Y W A E A E L D Z A E Y D A E A AA 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: "~@7 ab3 ~ ab3 ~ f3 ab3 ~ f3 ~", T: "bb2@2 bb3 ~@9 ab3@2 f3 ~",
  U: "~@11 f3 ~@2 f3 ~", V: "bb2@2 bb3 ~@8 f3 ab3@2 f3 ~", W: "~@7 ab3 ~ ab3 ~@2 ab3@2 f3 ~",
  X: "bb2 ~ bb3 ~@6 ab3 ~@4 f3 ~", Y: "bb2@2 bb3 ~@6 ab3 ~@2 ab3@2 f3 ~", Z: "~@6 ab3 ~@3 ab3 ~ ab3@2 f3 ~",
  AA: "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
// … 36 more lines

More by Bee Gees