Strudelify
You Win Again cover art

E.S.P.

You Win Again

Bee Gees

KeyC majorTempo87 bpm
0:00/0:00
// You Win Again — Bee Gees
// 87 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 31, 4/4 at bar 32, 2/4 at bar 56, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 84 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(87/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
const bass = note(`<
  ~@16 A B C D E F G H I F G J K L M@2 N O P Q P R S T U V P W X Y Z AA AB AC Z AD AE AF AG AH AI AJ AK AL AM AJ AK AN
  AO AP AQ AR AS AT AU AR AV AW AX AQ AR AS AT AU AR AV AW AY
>`.pickRestart({
  A: "c2@2 c3 ~ c2@2 c3 ~ c2@2 c3 ~ c2 ~ d1@2", B: "e1@2 e2 ~ e1@2 e2 ~ e1@2 e2 ~ e1@2 e2 ~",
  C: "a1@2 a2 ~ a1@2 a2 ~ a1@2 c2 ~ d2 ~ e2 ~", D: "f2@2 f1@2 f2 ~ g1 ~ g#1@2 g#2 ~ g#1 ~ a#1 ~",
  E: "c2@2 c3 ~ c2@2 c3 ~ c2@2 c3 e1 f1@2 f2 ~", F: "g1@2 g2 ~ b1@2 ~ c3 c2@2 c3 ~ g1@2 g2 ~",
  G: "a1@2 a2 ~ a1@2 a2 ~ a1@2 a2 ~ a1@2 a2 ~", H: "f1@2 f2 ~ f1@2 f2 ~ g1@2 g2 ~ g1@2 b1 ~",
  I: "c2@2 c3 ~ c2@2 c3 ~ c2@2 c3 ~ f1@2 f2 ~", J: "d1 ~ d1 ~ d1 ~ f1 ~ f1 ~ f1 ~ f1 ~ g1 ~",
  K: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g2@2 g1 ~ g1 ~", L: "a2 ~ g2 ~ d2 ~ g1 ~ c2@2 c3 ~ c2@2 c3 ~",
  M: "[c2@2 c3 ~ a#1@2 a#2 ~ f1@2 f2 ~ f1@2 d2@4 c2@2 a1@2 g1 ~ c2@2 c3 ~ c2@2 c3 ~]/2",
  N: "c2@2 c3 ~ a#1@2 a#2 ~ f1@2 f2 ~ f1@2 f2 ~", O: "f1@2 f2 ~ f1@2 f2 ~ e1@2 e2 ~ e1@2 e2 ~",
  P: "e1@2 e2 ~ e1@2 e2 ~ a1@2 a2 ~ a1@2 a2 ~", Q: "a1@2 a2 ~ a1 ~ d1@2 e1@2 e2 ~ e1@2 e2 ~",
  R: "a1@2 a2 ~ a1@2 c2 ~ d2@2 d3@2 d2@2 d3@2", S: "d2@2 d3@2 d2@2 d3 ~ g2@2 g1@2 g2@2 g1@2",
  T: "f2 f1 f2 f1 e2 e1 e2 e1", U: "d2@2 d1 ~ d1@2 g2 ~ c2@2 c3 ~ c2@2 c3 ~",
  V: "c2@2 c3 ~ c2 ~ d1@2 e1@2 e2 ~ e1@2 e2 ~", W: "a1@2 c2 ~ d2 ~ e2 ~ f2@2 f1@2 f2 ~ g1 ~",
  X: "g#1@2 g#2 ~ g#1 ~ a#1 ~ c2@2 c3 ~ c2@2 c3 ~", Y: "c2@2 c3 e1 f1@2 f2 ~ g1@2 g2 ~ b1@2 ~ c3",
  Z: "c2@2 c3 ~ g1@2 g2 ~ a1@2 a2 ~ a1@2 a2 ~", AA: "a1@2 a2 ~ a1@2 a2 ~ f1@2 f2 ~ f1@2 f2 ~",
  AB: "g1@2 g2 ~ g1@2 b1 ~ c2@2 c3 ~ c2@2 c3 ~", AC: "c2@2 c3 ~ f1@2 f2 ~ g1@2 g2 ~ b1@2 ~ c3",
  AD: "a1@2 a2 ~ a1@2 a2 ~ d1 ~ d1 ~ d1 ~ f1 ~", AE: "f1 ~ f1 ~ f1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~",
  AF: "g1 ~ g2@2 g1 ~ g1 ~ a2 ~ g2 ~ d2 ~ g1 ~", AG: "c2@2 c3 ~ c2@2 c3 ~ c2@2 c3 ~ a#1@2 a#2 ~",
  AH: "f1@2 f2 ~ f1@2 d2@4 c2@2 a1@2 g1 ~", AI: "c#2@2 c#3 ~ c#2@2 c#3 ~ c#2@2 c#3 f1 f#1@2 f#2 ~",
  AJ: "g#1@2 g#2 ~ g#1@2 c2 ~ c#2@2 c#3 ~ g#1@2 g#2 ~", AK: "a#1@2 a#2 ~ a#1@2 a#2 ~ a#1@2 a#2 ~ a#1@2 a#2 ~",
  AL: "f#1@2 f#2 ~ f#1@2 f#2 ~ g#1@2 g#2 ~ g#1@2 c2 ~", AM: "c#2@2 c#3 ~ c#2@2 c#3 ~ c#2@2 c#3 ~ f#1@2 f#2 ~",
  AN: "d#1 ~ d#1 ~ d#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ g#1 ~", AO: "g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#2@2 g#1 ~ g#1 ~",
  AP: "a#2 ~ g#2 ~ d#2 ~ g#1 ~ c#2@2 c#3 ~ c#2@2 c#3 ~", AQ: "c#2@2 c#3 f1 f#1@2 f#2 ~ g#1@2 g#2 ~ c2@2 ~ c#3",
  AR: "c#2@2 c#3 ~ g#1@2 g#2 ~ a#1@2 a#2 ~ a#1@2 a#2 ~", AS: "a#1@2 a#2 ~ a#1@2 a#2 ~ f#1@2 f#2 ~ f#1@2 f#2 ~",
  AT: "g#1@2 g#2 ~ g#1@2 c2 ~ c#2@2 c#3 ~ c#2@2 c#3 ~", AU: "c#2@2 c#3 ~ f#1@2 f#2 ~ g#1@2 g#2 ~ c2@2 ~ c#3",
  AV: "a#1@2 a#2 ~ a#1@2 a#2 ~ d#1 ~ d#1 ~ d#1 ~ f#1 ~", AW: "f#1 ~ f#1 ~ f#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~",
  AX: "g#1 ~ g#2@2 g#1 ~ g#1 ~ c#2@2 c#3 ~ c#2@2 c#3 ~", AY: "g#1 ~ g#2@2 g#1 ~ g#1 ~ c#2 ~@7",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@4 A@2 B C D E F G H I J I D E F K L M F N L M F O P Q R S T U V W V X Y Z AA AB V AC AD AE AF AG AH AE AF AI AJ P D
  AK AL AM AN AO AL AM AN AP AQ AR AS AT AU AV AS AT AW AX AR AS AT AU AV AS AT AW AX AY
>`.pickRestart({
  A: "~@2 [e3,g3,c4]@4 [e3,g3,c4]@3 ~ [e3,g3,c4]@4 [e3,g3,c4]@2", // C
  B: "~@2 [f3,a3,d4]@4 [f3,a3,d4]@3 ~ [f3,a3,d4]@4 [f3,a3,d4]@2", // Dm
  C: "~@2 [g3,b3,d4]@4 [g3,b3,d4]@3 ~ [g3,b3,d4]@4 [g3,b3,d4]@2", // G
  D: "~@2 [g3,c4,e4]@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@4 [g3,c4,e4]@2", // C
  E: "~@2 [g3,b3,e4]@4 [g3,b3,e4]@3 ~ [g3,b3,e4]@4 [g3,b3,e4]@2", // Em
  F: "~@2 [a3,c4,e4]@4 [a3,c4,e4]@3 ~ [a3,c4,e4]@4 [a3,c4,e4]@2", // Am
  G: "~@2 [g3,b3,e4]@4 [g3,b3,e4]@3 ~ [a3,c4,f4]@3 ~ [b3,d4,f4]@2", // Em F Bdim
  H: "~@2 [f3,a3,c4]@4 [f3,a3,c4]@3 ~ [f3,a3,c4]@4 [f3,a3,c4]@2", // F
  I: "~@2 [d3,g3,b3]@4 [d3,g3,b3]@3 ~ [d3,g3,b3]@4 [d3,g3,b3]@2", // G
  J: "~@2 [d3,f3,a3]@4 [d3,f3,a3]@3 ~ [d3,f3,a3]@4 [d3,f3,a3]@2", // Dm
  K: "~@2 [a3,c4,f4]@4 [a3,c4,f4]@3 ~ [g#3,c4,f4]@4 [g#3,c4,f4]@2", // F Fm
  L: "~@2 [g3,c4,e4]@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [a3,c4,f4]@2", // C F
  M: "~@2 [g3,b3,d4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@4 [g3,c4,e4]@2", // G C
  N: "~@2 [f3,a3,c4]@4 [f3,a3,c4]@3 ~ [g3,b3,d4]@3 ~ [f3,a3,d4]@2", // F G Dm
  O: "~@2 [f3,a3,d4]@4 [f3,a3,d4]@3 ~ [f3,a3,d4]@3 ~ [f3,a3,d4]@2", // Dm
  P: "~@2 [a3,c4,f4]@4 [a3,c4,f4]@3 ~ [a3,c4,f4]@4 [a3,c4,f4]@2", // F
  Q: "~@2 [a3,c4,f4]@4 [a3,c4,f4]@3 ~ [g3,c4,e4]@4 [g3,c4,e4]@2", // F C
  R: "~@2 [g3,c4,e4]@4 [g3,c4,e4]@3 ~ [a3,c4,f4]@4 [a3,c4,f4]@2", // C F
  S: "~@2 [a3,c4,f4]@3 [a3,c4,f4] [a3,c4,f4]@3 ~ [g3,c4,e4]@4 [g3,c4,e4]@2", // F C
  T: "~@6 [f3,a#3,d4]@3 ~ [f3,a3,c4]@4 [f3,a3,c4]@2, ~@2 [g3,c4,e4]@7 ~@7", // A# F C
  U: "~@2 [f3,a3,c4]@3 f3 [f3,a3,c4]@3 ~ [g3,b3,e4]@4 [g3,b3,e4]@2", // F Em
  V: "~@2 [g3,b3,e4]@4 [g3,b3,e4]@3 ~ [a3,c4,e4]@4 [a3,c4,e4]@2", // Em Am
  W: "~@2 [a3,c4,e4]@3 a3 [a3,c4,e4]@3 ~ [g3,b3,e4]@4 [g3,b3,e4]@2", // Am Em
  X: "~@2 [a3,c4,e4]@3 a3 [a3,c4,e4]@3 ~ [d3,f#3,a3]@4 [d3,f#3,a3]@2", // Am D
  Y: "~@2 [d3,f#3,a3]@3 d3 [d3,f#3,a3]@3 ~ [d3,g3,b3]@4 [d3,g3,b3]@2", // D G
  Z: "~@2 [f3,a3,c4]@4 [f3,a3,c4]@3 ~ [g3,b3,d4]@4 [g3,b3,d4]@2", // F G
  AA: "~@2 [g3,b3,d4]@4 [g3,b3,d4]@3 ~ [g3,c4,e4]@4 [g3,c4,e4]@2", // G C
  AB: "~@2 [g3,c4,e4]@4 [g3,c4,e4]@3 ~ [g3,b3,e4]@4 [g3,b3,e4]@2", // C Em
  AC: "~@2 [a3,c4,e4]@4 [a3,c4,e4]@3 ~ [a3,c4,f4]@4 [a3,c4,f4]@2", // Am F
  AD: "~@2 [g#3,c4,f4]@4 [g#3,c4,f4]@3 ~ [g3,c4,e4]@4 [g3,c4,e4]@2", // Fm C
  AE: "~@2 [g3,c4,e4]@3 ~ [a3,c4,f4]@3 ~ [g3,b3,d4]@3 ~ [g3,c4,e4]@2", // C F G C
  AF: "~@2 [g3,c4,e4]@4 [g3,c4,e4]@3 ~ [a3,c4,e4]@4 [a3,c4,e4]@2", // C Am
  AG: "~@2 [a3,c4,e4]@4 [a3,c4,e4]@3 ~ [f3,a3,c4]@4 [f3,a3,c4]@2", // Am F
  AH: "~@2 [g3,b3,d4]@3 ~ [f3,a3,d4]@3 ~ [g3,c4,e4]@4 [g3,c4,e4]@2", // G Dm C
  AI: "~@2 [a3,c4,e4]@4 [a3,c4,e4]@3 ~ [f3,a3,d4]@4 [f3,a3,d4]@2", // Am Dm
  AJ: "~@2 [f3,a3,d4]@3 ~ [f3,a3,d4]@3 ~ [a3,c4,f4]@4 [a3,c4,f4]@2", // Dm F
  AK: "~@2 [a3,c4,f4]@4 [a3,c4,f4]@3 ~ [a3,c4,f4]@3 [a3,c4,f4] [a3,c4,f4]@2", // F
  AL: "~@2 [g#3,c#4,f4]@4 [g#3,c#4,f4]@3 ~ [g#3,c#4,f4]@3 ~ [a#3,c#4,f#4]@2", // C# F#
  AM: "~@2 [g#3,c4,d#4]@3 ~ [g#3,c#4,f4]@3 ~ [g#3,c#4,f4]@4 [g#3,c#4,f4]@2", // G# C#
  AN: "~@2 [a#3,c#4,f4]@4 [a#3,c#4,f4]@3 ~ [a#3,c#4,f4]@4 [a#3,c#4,f4]@2", // A#m
  AO: "~@2 [f#3,a#3,c#4]@4 [f#3,a#3,c#4]@3 ~ [g#3,c4,d#4]@3 ~ [f#3,a#3,d#4]@2", // F# G# D#m
  AP: "~@2 [f#3,a#3,d#4]@4 [f#3,a#3,d#4]@3 ~ [f#3,a#3,d#4]@3 ~ [f#3,a#3,d#4]@2", // D#m
  AQ: "~@2 [a#3,c#4,f#4]@4 [a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4]@4 [a#3,c#4,f#4]@2", // F#
  AR: "~@2 [a#3,c#4,f#4]@4 [a#3,c#4,f#4]@3 ~ [g#3,c#4,f4]@4 [g#3,c#4,f4]@2", // F# C#
  AS: "~@2 [g#3,c#4,f4]@3 ~ [a#3,c#4,f#4]@3 ~ [g#3,c4,d#4]@3 ~ [g#3,c#4,f4]@2", // C# F# G# C#
  AT: "~@2 [g#3,c#4,f4]@4 [g#3,c#4,f4]@3 ~ [a#3,c#4,f4]@4 [a#3,c#4,f4]@2", // C# A#m
  AU: "~@2 [a#3,c#4,f4]@4 [a#3,c#4,f4]@3 ~ [f#3,a#3,c#4]@4 [f#3,a#3,c#4]@2", // A#m F#
  AV: "~@2 [g#3,c4,d#4]@3 ~ [f#3,a#3,d#4]@3 ~ [g#3,c#4,f4]@4 [g#3,c#4,f4]@2", // G# D#m C#
  AW: "~@2 [a#3,c#4,f4]@4 [a#3,c#4,f4]@3 ~ [f#3,a#3,d#4]@4 [f#3,a#3,d#4]@2", // A#m D#m
  AX: "~@2 [f#3,a#3,d#4]@3 ~ [f#3,a#3,d#4]@3 ~ [a#3,c#4,f#4]@4 [a#3,c#4,f#4]@2", // D#m F#
  AY: "~ [a#3,c#4,f#4]@2 [a#3,c#4,f#4]@2 ~@3", // F#
})).s("gm_acoustic_guitar_steel").gain(0.18).pan(0.7)

// other · pizzicato strings
const pizzicato_strings = note(`<
  ~@20 A B ~@2 A B ~@18 C D E ~ C D E ~@14 F G H ~ F G H ~@2 F G H ~ F G H ~@3
>`.pickRestart({
  A: "c5 ~ d5 ~ c5 ~ g4!2 c5 ~@3 d4 ~@3", B: "g4 ~ d4 ~ d4 ~@2 g4 e4 ~ g4 ~@5", C: "~@8 c5 ~ d5 ~ c5 ~ g4!2",
  D: "c5 ~@3 d4 ~@3 g4 ~ d4 ~ d4 ~@2 g4", E: "e4 ~ g4 ~@13", F: "~@8 c#5 ~ d#5 ~ c#5 ~ g#4!2",
  G: "c#5 ~@3 d#4 ~@3 g#4 ~ d#4 ~ d#4 ~@2 g#4", H: "f4 ~ g#4 ~@13",
})).s("gm_pizzicato_strings").gain(0.2).pan(0.3)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@4 A@2 B C D@2 E F G H B C I J E K L M@2 N L M@2 O@7 P Q R S@2 T@6 U@3 V@6 W X Y Z@2 AA Y Z@2 AB@6 AC AD@8 AE@6
>`.pickRestart({
  A: "[c2,e3,g3]/2", B: "[d2,f3,a3]", C: "[g1,g3,b3]", D: "[c2 e2, [e3,g3]]/2", E: "[a2,a3,c4]",
  F: "[e2,g3,b3]@2 [f2,a3,c4] [g2,b3,d4]", G: "[c3,a3,c4]", H: "[b2,g3,b3]", I: "[c2,e3,g3]", J: "[e2,g3,b3]",
  K: "a3 g#3, [f2,c4]", L: "[g3,e4]@3 [a3,f4], c4", M: "[[b3,d4]@3 ~@5 a3@8, g3 ~, ~@3 [c4,e4]@13]/2",
  N: "[f3,a3,c4,f4] [g3,b3,d4]", // F G
  O: "[[a3,c4,f4]@40 [g3,c4,e4]@16 [a3,c4,f4]@16 [g3,c4,e4,g4]@16 [a3,c4,f4]@16 [b3,e4] ~ [b3,e4,g4] ~ [b3,e4,g4] ~ [b3,e4,g4]@2]/7", // F C F C F E5 Em
  P: "~@8 c4 ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~", Q: "~@8 b3 ~ [b3,e4,g4] ~ [b3,e4,g4] ~ [b3,e4,g4] ~",
  R: "~@8 [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~", S: "[~ [a3,d4,f#4]@2 [d4,g4,b4]]/2",
  T: "[[f4,a4,c5] [e4,g4,b4,d5]@2 [c2,e3,g3]@2 [e2,g3,b3]@2 [a2,a3,c4]@2 a3 g#3 [g3,c4,e4], ~@9 [f2,c4]@2 ~]/6", // F Em7 C Em Am C F5
  U: "[~@2 [a3,f4]@2 [b3,d4]@3 ~@5 a3@8 [f3,a3,c4,f4]@4, ~ g3@2 ~@3, ~@7 [c4,e4]@13 ~@4]/3", // Dm Bm F C
  V: "[[g3,b3,d4]@4 [g3,e4]@6 [a3,f4]@2 [b3,d4]@3 ~@5 a3@8 [a3,c4,f4]@20, ~ c4@2 g3@2 ~@7, ~@15 [c4,e4]@13 ~@20]/6", // G C Dm Bm F C
  W: "[g3,c4,e4]", X: "[a3,c4,f4]", Y: "[g#3,f4]@3 [a#3,f#4], c#4",
  Z: "[[c4,d#4]@3 ~@5 a#3@8, g#3 ~, ~@3 [c#4,f4]@13]/2", AA: "[f#3,a#3,c#4,f#4] [g#3,c4,d#4]",
  AB: "[[a#3,c#4,f#4]@20 [g#3,f4]@6 [a#3,f#4]@2 [c4,d#4]@3 ~@5 a#3@8 [f#3,a#3,c#4,f#4]@4, ~@5 c#4@2 g#3@2 ~@3, ~@31 [c#4,f4]@13 ~@4]/6", // F# C# D#m Cm F# C#
  AC: "[g#3,c4,d#4] [g#3,c#4,f4]", // G# C#
  AD: "[~@2 [a#3,f#4]@2 [c4,d#4]@3 ~@5 a#3@8 [a#3,c#4,f#4]@8 [a#3,c#4,f#4]@8 [f3,g#3,f4]@6 [f#3,a#3]@2 [c4,d#4]@3 ~@5 a#3@8 [f#3,a#3,f#4]@4, ~@4 g#3@8 ~@30 f#4@5 c#4@17, ~@7 [c#4,f4]@13 ~@16 c#4@8 g#3@8 ~@12, ~@47 f4@13 ~@4]/8", // D#m Cm F# Fm F# Cm F# C#
  AE: "[[g#3,c4,d#4]@8 [g#3,f4]@12 [a#3,f#4]@4 [c4,d#4]@6 ~@10 a#3@16 [a#3,c#4,f#4]@16 [a#3,c#4,f#4]@16 [f3,g#3,c#4] ~@7, ~ c#4@2 g#3@2 ~@7, ~@15 [c#4,f4]@13 ~@20]/6", // G# C# D#m Cm F# C#
})).s("gm_synth_strings_1").gain(0.25).pan(0.2)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@20 A B C D A B C D E F ~@3 G H I J ~@7 K L M N O L M N P Q ~@2 R S T U R S T V W X Y Z AA AB Y Z AC AD AE Y Z AA AB
  Y Z AC AD AF
>`.pickRestart({
  A: "[c5,d5]!5 ~ g4!2 c5 ~@3 d4@4", B: "g4 ~ d4 ~ d4@2 g4 f4 e4 ~ g4@3 ~ d4 ~", C: "~ e4 ~ e4 ~ e4 ~ e4",
  D: "~@2 f4@2 ~@2 f4 ~@3 f4@2 ~@2 f4 ~", E: "g5 ~ g5 d5 g4 d5 g5 ~ g5 d5 g4 d5 g5 ~ g5 d5",
  F: "g4 d5 g5 ~ g5 d5 g4 ~@9", G: "~@10 [b3,e4,g4] ~ [b3,e4,g4] ~ [b3,e4,g4]@2",
  H: "~@10 [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~", I: "~@10 [b3,e4,g4] ~ [b3,e4,g4] ~ [b3,e4,g4] ~",
  J: "~@8 [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~", K: "~@8 [c5,d5]!5 ~ g4!2",
  L: "c5 ~@3 d4@4 g4 ~ d4 ~ d4@2 g4 f4", M: "e4 ~ g4@3 ~ d4 ~@3 e4@2 ~@2 e4@2",
  N: "~@2 e4@2 ~@2 e4@2 ~@2 f4@2 ~@2 f4 ~", O: "~@2 f4@2 ~@2 f4 ~ [c5,d5]!5 ~ g4!2",
  P: "~@2 f4@2 ~@2 f4 ~ g5 ~ g5 d5 g4 d5 g5 ~", Q: "g5 d5 g4 d5 g5 ~ g5 d5 g4 d5 g5 ~ g5 d5 g4 ~",
  R: "f5@4 g#4@8 c#4@3 ~", S: "d#5@3 g#5 f5@4", T: "[a#4,c#5]@15 ~",
  U: "[f#4,a#4] ~ [f#4,a#4] ~ [f#4,a#4] ~ [f#4,a#4] ~ [g#4,c5] ~ [g#4,c5] ~ [g#4,c5] ~ [g#4,c5] ~", // F# G#
  V: "~@2 f#4@2 ~@2 f#4 ~@3 f#4@2 ~@2 f#4 ~", W: "g#5 ~ g#5 d#5 g#4 d#5 g#5 ~ g#5 d#5 g#4 d#5 g#5 ~ g#5 d#5",
  X: "g#4 d#5 g#5 ~ g#5 d#5 g#4 ~ [c#5,d#5]!5 c#5@2 g#4, ~@13 d#5 ~@2", Y: "c#5 ~@3 d#4@4 g#4 ~ d#4 ~ d#4@2 g#4 f#4",
  Z: "f4 ~ g#4@3 ~ d#4 ~@3 f4@2 ~@2 f4@2", AA: "~@2 f4@2 ~@2 f4@2 ~@2 f#4@3 ~ f#4 ~",
  AB: "c5 ~ c5 ~ c5 ~@3 [c#5,d#5]!5 c#5@2 g#4, ~@13 d#5 ~@2", AC: "~@2 f4@2 ~@2 f4@2 ~@2 f#4@2 ~@2 f#4 ~",
  AD: "~@2 f#4@2 ~@2 f#4 ~ g#5 ~ g#5 d#5 g#4 d#5 g#5 ~",
  AE: "g#5 d#5 g#4 d#5 g#5 ~ g#5 d#5 [c#5,d#5]!5 c#5@2 g#4, ~@13 d#5 ~@2", AF: "g#5 d#5 g#4 d#5 g#5 ~ g#5 d#5 c#5 ~@7",
})).s("gm_string_ensemble_1").gain(0.25).pan(0.8)

// drums · rim
const rim = s("rim").struct("<~@3 A ~@11 A ~@3 A ~@24 B ~@38 C>".pickRestart({
  A: "~@5 x ~@2", B: "~ x ~@6", C: "~@3 x ~@4",
})).gain(0.44)

// drums · kick
const kick = s("bd").struct("<[x!4]!83 [x!3 ~]>").gain(0.44)

// drums · snare
const snare = s("sd").struct("<~@3 A ~@11 A ~@3 A ~@9 B ~@14 C ~@38 D>".pickRestart({
  A: "~@3 x", B: "~ x ~ x ~@4", C: "~ x ~@2", D: "~ x",
})).gain(0.38)

// drums · hihat
const hihat = s("hh").struct("<[x!8]!83 [x!4 ~@4]>").gain(0.38)

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

// drums · open hat
const open_hat = s("oh").struct("<~@83 [~ x]>").gain(0.38)

// drums · tambourine
const tambourine = s("tb").struct(`<
  A@20 B C D E@2 C F E G H A@14 I D J K L D L K J M A@2 B C D E@2 C F E G H A@7 N O A@7 N ~
>`.pickRestart({
  A: "~ x ~ x", B: "x!4 ~ x!3", C: "x!2 ~ x ~ x!3", D: "~ x!5 ~ x", E: "~ x ~ x ~ x!3", F: "~ x ~ x!3 ~ x", G: "~ x!7",
  H: "x!4 ~@2 x ~", I: "~@2 x ~ x!4", J: "~ x!3 ~ x!3", K: "x!2 ~ x ~ x ~ x", L: "~ x!3 ~ x ~ x", M: "x!8",
  N: "~ x ~@2", O: "~@3 x",
})).gain(0.44)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
  ~@20 A B C D@2 B E D F ~@16 C G H I C I H G ~@3 A B C D@2 B E D F ~@19
>`.pickRestart({
  A: "~ x", B: "~ x!2 ~", C: "x ~@2 x", D: "x!3 ~", E: "x!2 ~ x", F: "x", G: "x!2", H: "~ x!3", I: "x ~ x!2",
})).gain(0.27)

// drums · shaker
const shaker = s("sh").struct("<~@4 [x!8]!79 [x!4 ~@4]>").gain(0.33)

stack(
  bass, acoustic_guitar_steel, pizzicato_strings, synth_strings_1, string_ensemble_1, rim, kick, snare, hihat, low_tom,
  open_hat, tambourine, tambourine_soft, shaker
// … 1 more lines

More by Bee Gees