Strudelify

Tug of War

McCartney

KeyC majorTempo82 bpm
0:00/0:00
// Tug of War — McCartney
// 82 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 11, 4/4 at bar 12, 3/4 at bar 17, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 83 bars on a 32-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): DISTORTION.
setcpm(82/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 · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A@2 B C@6 D E F G H@2 I J@6 K@2 L M@6 I N O P Q R@2 S T@2 U V W@2 X Y Z AA@2 AB@2 AC@2 AD@7 AE@2 AF AG AH@2 AI@5 AJ@3
  ~@8
>`.pickRestart({
  A: "[[g3,b3]@4 [a3,c4]@4 ~ d4@7 [a3,c4]@7 ~@2 e4@3 ~ c3@3 [g3,c4,e4]@4 ~@8 [g3,c4,e4]@3 ~ [c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 ~@2 [c4,e4]@6 ~, ~@2 b3@2 ~@2 [c3,e3,g3,c4] [g3,c4,e4] ~ [g3,c4,e4]@2 ~@5, ~@29 e3@7 e3@11 ~@9 e3@8, ~@37 c3@10 ~@9 [c3,g3]@4 ~@4]/2", // G Am C C5
  B: "[b3,d4]@4 [a3,c4]@4 [g3,b3]@4 [f3,a3]@4 [g3,b3]@4 [a3,c4]@2 [g3,b3]@5 ~ a3@4, ~@27 f3@4 ~", // Bm Am G F G Am G
  C: "[[e3,g3]@4 [d3,f3]@4 ~ e3@7 [b2,d3]@7 ~@2 f4@3 ~ b2@3 [g3,b3,f4]@3 ~@9 [g3,b3,f4]@3 ~ [g2,b2,d3,g3,b3,f4]@4 [b2,d3,g3,b3,f4]@4 [b2,g3,b3,f4]@4 [b2,g3,b3,f4]@4 [b2,g3,b3]@4 b3@7 ~ [g2,b2,b3]@3 ~ [b2,g3,b3,f4]@4 [b2,g3,b3,f4]@4 [g3,b3,f4]@4 [g3,b3,f4]@4 [d3,g3,b3,f4]@4 [d3,g3,b3,f4]@7 ~ [d3,g3,b3,f4]@4 [d3,g3,b3,f4]@4 ~ b2@3 ~ f4@3 [b2,g3,b3]@3 ~ [b2,d3,g3,b3,f4]@3 ~ [g2,b2,d3,g3,b3]@8 [b2,d3,g3,b3]@4 [b2,d3,g3,b3,f4]@4 [g2,b2,d3,g3,b3,f4]@4 ~ f4@3 ~ b2@3 [g3,b3,f4]@4 ~@8 [g3,b3,f4]@3 ~ [g2,b2,d3,g3,b3,f4]@4 [b2,d3,g3,b3,f4]@4 [b2,g3,b3,f4]@4 [b2,g3,b3,f4]@3 ~, ~@8 c3@7 ~@9 g2@12 ~ [g2,b2]@10 ~@5 g2@7 ~ g2@15 ~@5 g2@27 ~ [g2,b2]@8 ~ g2@15 ~@8 g2@7 ~@5 g2@12 ~ [g2,b2]@10 ~@5 g2@7 ~@5, ~@24 [b2,d3,g3,b3]@4 [g3,b3,f4]@4 ~@4 [g3,b3,f4]@8 ~@76 [b2,g3,b3]@4 ~@28 [b2,d3,g3,b3]@4 [g3,b3,f4]@3 ~@5 [g3,b3,f4]@7 ~@21, ~@29 d3@7 d3@11 ~@9 d3@8 [d3,f4]@3 ~ [d3,g3,f4]@11 ~ d3@8 [b2,d3]@8 b2@12 ~@8 [d3,g3,b3,f4]@3 ~ d3@7 ~@5 f4@11 ~@14 d3@7 d3@11 ~@9 d3@8]/6", // Em Dm Bm G7 Em G G7 Em …
  D: "[b2,d3,g3,b3,f4]@7 ~@2 e4@3 ~ c3@3 ~ e4@3 ~@8 [g3,c4,e4]@3 ~, ~@2 [c3,e3,g3,c4] [g3,c4,e4] [g3,c4] [g3,c4,e4]@2 ~, ~@13 e3@7 e3@11 ~, ~@21 c3@10 ~", // G7 C C5 C
  E: "[c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 ~ [c3,g3,c4,e4]@4 [c3,g3,c4,e4]@4 [c3,g3,c4]@4 c4@7 ~ [c3,c4]@3 ~, ~@8 e3@8 [e3,e4]@3 ~ [e3,g3,e4]@12", // C C5 C E Em
  F: "[c3,g3,c4,e4]@4 [c3,g3,c4,e4]@4 ~ f4@3 ~ c3@3 [a3,c4,f4]@4 ~@8 [a3,c4,f4]@3 ~, e3@8 f2@12 ~ [f2,c3]@10 ~, ~@2 [c3,f3,a3,c4] [a3,c4,f4] ~ [a3,c4,f4]@2 ~, ~@13 f3@7 f3@11 ~", // C F F5 F
  G: "[f2,c3,f3,a3,c4,f4]@4 [c3,f3,a3,c4,f4]@4 [c3,a3,c4,f4]@4 [c3,a3,c4,f4]@4 [c3,a3,c4]@4 c4@7 ~ [f2,c3,c4]@3 ~, ~@4 f2@7 ~ f2@15 ~@5, ~@8 f3@8 [f3,f4]@3 ~ [f3,a3,f4]@11 ~", // F F5 F
  H: "[[c3,a3,c4,f4]@4 [c3,a3,c4,f4]@4 [a3,c4,f4]@4 [a3,c4,f4]@4 [f3,a3,c4,f4]@4 [f3,a3,c4,f4]@7 ~ [f3,a3,c4,f4]@4 [f3,a3,c4,f4]@4 ~ c3@3 ~ f4@3 [c3,a3,c4]@3 ~ [c3,f3,a3,c4,f4]@3 ~ [f2,c3,f3,a3,c4,f4]@3 ~@2 f4@6 ~, f2@27 ~ [f2,c3]@7 ~@2 f2@12 ~@7 [f2,c3,f3,a3,c4]@6 ~@2, f3@8 [c3,f3]@8 c3@12 ~@8 [f3,a3,c4,f4]@3 ~ f3@7 ~@17, ~@10 [c3,a3,c4] ~@5]/2", // F F5 F F5 F
  I: "~ e4@3 ~ c3@3 ~ e4@3 ~@8 [g3,c4,e4]@3 ~ [c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 ~, [c3,e3,g3,c4] [g3,c4,e4] [g3,c4] [g3,c4,e4]@2 ~@3, ~@5 e3@7 e3@11 ~@9, ~@13 c3@10 ~@9", // C C5 C
  J: "[[c3,g3,c4,e4]@4 [c3,g3,c4,e4]@3 ~ [c3,e3,g3,c4,e4]@7 ~@2 f4@3 ~ c3@3 [a3,c4,f4]@3 ~@9 [a3,c4,f4]@3 ~ [f2,c3,f3,a3,c4,f4]@4 [c3,f3,a3,c4,f4]@4 [c3,a3,c4,f4]@4 [c3,a3,c4,f4]@4 [c3,f3,a3,c4,f4]@4 [f3,a3,f4]@11 ~ [c3,a3]@4 [c3,a3,c4]@3 ~ [f3,f4]@4 [a3,c4,f4]@4 [f3,a3,c4,f4]@3 ~ [f3,a3,c4,f4]@7 ~ [f3,a3]@4 [c4,f4]@2 [c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@4 [c4,f4]@3 ~ [c4,f4]@4 [f3,a3,c4,f4]@3 ~@2 [c4,f4]@15 ~ e4@3 ~ c3@3 [g3,c4,e4]@4 ~@8 [g3,c4,e4]@3 ~ [c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 ~@2 [c4,e4]@6 ~ [g3,b3]@4 [a3,c4]@4, e3@8 ~@8 f2@12 ~ [f2,c3]@10 ~@5 f2@7 ~ f2@14 ~@6 f2@27 ~@58 c3@10 ~@9 [c3,g3]@5 ~@11, ~@16 [c3,f3,a3,c4]@4 [a3,c4,f4]@4 ~@4 [a3,c4,f4]@8 ~@24 c4@7 ~@13 [a3,c4]@3 ~@17 [c4,f4]@3 ~ a3@6 ~@6 a3@7 ~@5 [f3,a3]@16 ~@4 [g3,c4,e4]@4 ~@4 [g3,c4,e4]@8 ~@28, ~@21 f3@7 f3@11 ~@9 f3@8 ~@16 f3@7 ~ c3@8 c3@12 ~@6 f3@4 ~@2 f3@12 ~@3 c3@16 ~ [c3,e3,g3,c4]@4 ~ e3@7 e3@11 ~@9 e3@8 ~@8]/6", // C F F5 F F5 F F5 C …
  K: "[~ d4@7 [a3,c4]@7 ~@2 e4@3 ~ c3@3 [g3,c4,e4]@3 ~@9 [g3,c4,e4]@3 ~ [c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 ~@2 [c4,e4]@6 ~ [b3,d4]@4 [a3,c4]@4, b3@2 ~@2 [c3,e3,g3,c4] [g3,c4,e4] ~ [g3,c4,e4]@2 ~@7, ~@21 e3@7 e3@11 ~@9 e3@8 ~@8, ~@29 c3@10 ~@9 [c3,g3]@4 ~@12]/2", // Am C Bm Am C C5
  L: "[g3,b3]@4 [f3,a3]@4 [g3,b3]@4 [a3,c4]@3 ~@5 a3@4 [e3,g3]@4 [d3,f3]@4, ~@15 b3@4 f3@4 ~@9, ~@16 g3@5 ~@11", // G F G Am Em Dm
  M: "[~ e3@7 [b2,d3]@7 ~@2 f4@3 ~ b2@3 [g3,b3,f4]@4 ~@8 [g3,b3,f4]@3 ~ [g2,b2,d3,g3,b3,f4]@4 [b2,d3,g3,b3,f4]@3 ~ [b2,g3,b3,f4]@4 [b2,g3,b3,f4]@4 [d3,g3,b3,f4]@3 ~ b3@7 ~ [g2,b2,b3]@3 ~ [b2,g3,b3,f4]@4 [b2,g3,b3,f4]@4 [g3,b3,f4]@4 [g3,b3,f4]@3 ~ [d3,g3,b3,f4]@4 [d3,g3,b3,f4]@7 ~ [d3,g3,b3,f4]@4 [d3,g3,b3,f4]@4 ~ b2@3 ~ f4@3 [b2,g3,b3]@3 ~ [b2,d3,g3,b3,f4]@3 ~ [g2,b2,d3,g3,b3]@8 [b2,d3,g3,b3]@4 [b2,d3,g3,b3,f4]@4 [g2,b2,d3,g3,b3,f4]@4 ~ f4@3 ~ b2@3 [g3,b3,f4]@4 ~@8 [g3,b3,f4]@3 ~ [g2,b2,d3,g3,b3,f4]@4 [b2,d3,g3,b3,f4]@3 ~ [b2,g3,b3,f4]@4 [b2,g3,b3,f4]@4 [b2,d3,g3,b3,f4]@7 ~, c3@7 ~@9 g2@12 ~ [g2,b2]@10 ~@5 g2@7 ~ g2@15 ~@5 g2@27 ~ [g2,b2]@7 ~@2 g2@14 ~@9 g2@7 ~@5 g2@11 ~@2 [g2,b2]@10 ~@5 g2@7 ~@13, ~@4 [b2,d3,g3,b3] [g3,b3,f4] ~ [g3,b3,f4]@2 ~@19 [b2,g3,b3] ~@7 [b2,d3,g3,b3] [g3,b3,f4] ~ [g3,b3,f4]@2 ~@7, ~@21 d3@7 d3@11 ~@9 d3@8 b2@4 [d3,g3,f4]@11 ~ d3@8 [b2,d3]@8 b2@12 ~@8 [d3,g3,b3,f4]@3 ~ d3@7 ~@5 f4@12 ~@13 d3@7 d3@11 ~@9 d3@8 ~@8]/6", // Bm G7 G G7 Em G7 G G7 …
  N: "[c3,g3,b3,e4]@4 [c3,g3,b3,e4]@4 [c3,g3,b3]@4 b3@7 ~ [c3,b3]@3 ~ [c3,g3,b3,e4]@4 [c3,g3,b3,e4]@4, e3@8 [e3,e4]@3 ~ [e3,g3,e4]@11 ~ e3@8", // Cmaj7 E Em
  O: "~ f4@3 ~ c3@3 [a3,c4,f4]@4 ~@8 [a3,c4,f4]@4 [f2,c3,f3,a3,c4,f4]@4 [c3,f3,a3,c4,f4]@3 ~, f2@11 ~@2 [f2,c3]@10 ~@9, [c3,f3,a3,c4] [a3,c4,f4] ~ [a3,c4,f4]@2 ~@3, ~@5 f3@7 f3@11 ~@9", // F F5 F
  P: "~ e4@3 [c3,g3,c4,e4]@4 [c3,g3,c4]@4 c4@7 ~ [f2,c3,c4]@4 [c3,g3,c4,e4]@4 [c3,g3,c4,e4]@3 ~, e3@8 [e3,e4]@3 ~ [e3,g3,e4]@11 ~ e3@8, [c3,g3,c4]@4 f2@15 ~@13", // C C5 F5 C E Em C5
  Q: "~ e4@3 ~ c3@3 [g3,c4,e4]@3 ~@9 [g3,c4,e4]@4 [c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 ~, [c3,e3,g3,c4]@4 [g3,c4,e4]@3 ~@5 [g3,c4,e4]@8 ~@12, ~@5 e3@7 e3@11 ~@9, ~@13 c3@10 ~@9", // C
  R: "[~ f4@3 ~ c3@3 [a3,c4,f4]@4 ~@8 [a3,c4,f4]@3 ~ [f2,c3,f3,a3,c4,f4]@4 [c3,f3,a3,c4,f4]@3 ~ [c3,g#3,c4,f4]@4 [c3,g#3,c4,f4]@4 [c3,g#3,c4]@4 c4@7 ~ [f2,c3,c4]@3 ~ [c3,g#3,c4,f4]@4 [c3,g#3,c4,f4]@4, f2@11 ~@2 [f2,c3]@10 ~@5 f2@7 ~ f2@15 ~@5 [f2,f3]@8, [c3,f3,a3,c4]@4 [a3,c4,f4]@3 ~@5 [a3,c4,f4]@8 ~@44, ~@5 f3@7 f3@11 ~@9 f3@8 [f3,f4]@3 ~ [f3,g#3,f4]@11 ~@9]/2", // F Fm F5 Fm F5 F Fm
  S: "[g3,c4,e4]@4 [g3,c4,e4]@3 ~ [e3,g3,c4,e4]@3 ~ [e3,g3,c4,e4]@7 ~ [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 ~ c3@3, [c3,e3]@8 c3@12 c3@8 [e3,g3,c4,e4]@3 ~", // C
  T: "[~ e4@3 ~ c3@3 [a3,c4,e4]@3 ~@9 [a3,c4,e4]@4 [f2,c3,f3,a3,c4,e4]@4 [c3,f3,a3,c4,e4]@3 ~ [c3,g#3,c4,f4]@4 [c3,g#3,c4,f4]@4 [f3,g#3,c4,f4]@3 ~ c4@7 ~ [f2,c3,c4]@4 [c3,g#3,c4,f4]@4 [c3,g#3,c4,f4]@4, f2@12 ~ [f2,c3]@10 ~@5 f2@7 ~ f2@15 ~@5 [f2,f3]@8, [c3,f3,a3,c4]@4 [a3,c4,e4]@3 ~@5 [a3,c4,e4]@8 ~@24 [f3,g#3,f4]@11 ~@9, ~@5 f3@7 f3@11 ~@9 f3@8 c3@4 ~@20]/2", // Am Fmaj7 Fm F5 Fm F5 F Am …
  U: "[g3,c4,e4]@4 [g3,c4,e4]@4 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@7 ~ [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 ~ c3@3, [c3,e3]@8 c3@12 c3@8 [e3,g3,c4,e4]@3 ~", // C
  V: "~ e4@3 ~ c3@2 ~ [g3,c4,e4]@3 ~@9 [g3,c4,e4]@3 ~ [c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 ~, [c3,e3,g3,c4]@4 [g3,c4,e4]@3 ~@5 [g3,c4,e4]@8 ~@12, ~@5 e3@7 e3@11 ~@9, ~@13 c3@10 ~@9", // C
  W: "[~ f4@3 ~ c3@3 [a3,c4,f4]@3 ~@9 [a3,c4,f4]@3 ~ [f2,c3,f3,a3,c4,f4]@4 [c3,f3,a3,c4,f4]@4 [c3,g#3,c4,f4]@4 [c3,g#3,c4,f4]@4 [f3,g#3,f4]@3 ~ [f3,c4]@8 [f2,c3,c4]@4 [c3,g#3,c4,f4]@4 [c3,g#3,c4,f4]@4, f2@12 ~ [f2,c3]@10 ~@5 f2@7 ~ f2@15 ~@5 [f2,f3]@8, [c3,f3,a3,c4]@4 [a3,c4,f4]@3 ~@5 [a3,c4,f4]@8 ~@24 [g#3,f4]@12 ~@8, ~@5 f3@7 f3@11 ~@9 f3@7 ~ [c3,c4]@4 ~@20]/2", // F Fm F5 Fm F5 F C# C
  X: "[g3,c4,e4]@4 [g3,c4,e4]@4 [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@7 ~ [e3,g3,c4,e4]@4 [e3,g3,c4,e4]@4 ~ c3@3, [c3,e3]@7 ~ c3@12 c3@8 [e3,g3,c4,e4]@3 ~", // C
  Y: "~ e4@3 ~ c3@3 [g3,c4,e4]@3 ~@9 [g3,c4,e4]@3 ~ [c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 ~, [c3,e3,g3,c4] [g3,c4,e4] ~ [g3,c4,e4]@2 ~@3, ~@5 e3@7 e3@11 ~@9, ~@13 c3@10 ~@9", // C
  Z: "~ f4@3 ~ c3@3 [a3,c4,f4]@4 ~@8 [a3,c4,f4]@3 ~ [c3,f3,a3,c4,f4]@4 [c3,f3,a3,c4,f4]@3 ~, [c3,f3,a3,c4]@4 [a3,c4,f4]@3 ~@5 [a3,c4,f4]@8 ~@12, ~@5 f3@7 f3@11 ~@9, ~@13 c3@10 ~@9", // F
  AA: "[[c3,a3,c4,f4]@4 [c3,a3,c4,f4]@4 [c3,c4]@4 c4@7 ~ [c3,c4]@4 [a3,c4,f4]@4 [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@4 [a3,c4,f4]@4 [a3,c4,f4]@7 ~ [a3,c4,f4]@4 [a3,c4,f4]@4 [c3,a3,c4,f4]@3 ~, ~@8 [a3,f4]@3 ~ [a3,f4]@11 ~@8 c3@8 ~ c3@12 c3@7 ~@5]/2", // F C F Dm
  AB: "[[c3,a3,c4,f4]@3 ~ [c3,a3,c4]@3 ~ [c3,f3,a3,c4,f4]@3 ~ [f2,c3,f3,a3,c4,f4]@3 ~@2 f4@6 ~ [c3,e3,g3,c4,e4]@4 [c3,g3,c4,e4]@4 ~ e4@3 [g3,c4,e4]@8 [g3,c4,e4]@3 ~ [c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 ~ [c3,g3,c4,e4]@4 [c3,g3,c4,e4]@4, f3@7 ~@9 [g2,d3,g3,b3,d4]@6 ~@6 e3@7 ~ [c3,e3]@11 ~@17, ~@8 [g3,c4] ~@5 e3@2]/2", // F C G C C5
  AC: "[[c3,e3,g3,c4,e4]@7 ~ [c3,f3,a3,c4,f4]@4 [c3,a3,c4,f4]@4 [a3,c4,f4]@4 ~@8 [a3,c4,f4]@3 ~ [c3,f3,a3,c4,f4]@4 [c3,f3,a3,c4,f4]@3 ~ [c3,a3,c4,f4]@4 [c3,a3,c4,f4]@4 [c3,a3,c4]@4 [f3,a3,f4]@11 ~, ~@8 f2@11 ~ [a3,c4,f4]@8 ~@12 f3@8 [f3,f4]@3 ~ c4@7 ~@5, ~@12 f3@7 ~ [c3,f3]@11 ~@33, ~@21 f2@10 f2@4 ~ f2@7 ~ f2@15 ~@5]/2", // C F F5
  AD: "[[c3,a3]@4 [c3,a3,c4]@3 ~ [f3,f4]@4 [a3,c4,f4]@4 [f3,a3,c4,f4]@3 ~ [f3,a3,c4,f4]@7 ~ [a3,c4,f4]@3 ~ [c4,f4]@2 [c4,f4]@3 ~@3 [a3,c4,f4]@4 [c4,f4]@3 ~ [c4,f4]@4 [f3,a3,c4,f4]@3 ~@2 [d4,f4]@6 ~@2 [d4,f4]@7 [e3,g3,c4,e4]@7 ~@2 [c4,e4]@6 ~@2 [c4,f4]@3 [a3,c4,f4]@4 [a3,c4,f4]@2 [a3,c4]@4 [c4,f4]@2 [f3,a3,c4,f4]@3 ~ [c4,f4] f4 ~@2 [c4,f4]@4 [c4,f4]@3 ~ [f4,a4]@4 [f4,a4]@3 ~ [f4,a4]@4 [f4,a4]@3 ~ [e3,g3,c4,e4]@7 ~@2 [c4,e4]@6 ~@2 [c4,f4]@3 [a3,c4,f4]@4 [a3,c4,f4]@2 [a3,c4]@4 [c4,f4]@2 [f3,a3,c4,f4]@3 ~ [c4,f4] f4 ~@2 [c4,f4]@4 [c4,f4]@3 ~ [g3,b3,d4,g4]@7 ~ [a3,c4,f4]@7 ~@2 [c4,e4]@7 ~ [c4,e4]@4 [c4,e4]@3 ~ [e3,g3,c4,e4]@7, f3@7 c3@8 ~@16 a3@6 ~ [a3,c4,f4]@2 ~@4 a3@8 ~@4 [g3,b3]@7 ~ b3@7 ~@9 g3@6 ~@2 a3@3 ~@7 f4@3 ~@7 a3@2 c4@2 ~@16 c4@7 ~@27 f4@3 ~@9 c4@2 ~@48, ~@8 [a3,c4]@3 ~@17 f3@6 f3@4 ~ f3@12 ~@4 b2@7 ~ [b2,g3]@7 ~@2 c3@4 ~@3 e3@7 ~ f3@4 ~ f3@11 ~@4 f3@11 ~ g2@15 ~@2 c3@4 ~@3 e3@7 ~ f3@4 ~ f3@11 ~@4 f3@12 g2@15 ~ c3@8 ~ [c3,e3,g3]@8 c3@7 ~, ~@111 a3@8 ~ [a3,c4]@7 a3@8 ~@9 g3@7 ~ a3@3 ~@17 a3@3 a3@8 ~@8 f3@8 ~ [e3,g3]@8 ~@16]/7", // F F5 F F5 F Dm C F5 …
  AE: "[~ [g3,c4,e4]@7 ~ c4@6 ~ [g3,b3]@4 [a3,c4]@4 [b3,d4]@8 [a3,c4]@7 ~ [c3,e3,g3,c4,e4]@4 [c3,g3,c4,e4]@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@8 [g3,c4,e4]@3 ~, [c3,e3]@7 ~ [c3,e3,g3]@7 ~@29 e3@7 ~ [c3,e3]@11 ~, ~@9 e4@27 ~@28]/2", // C G Am Bm Am C
  AF: "[c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 ~@2 [c4,e4]@6 ~ [b3,d4]@4 [a3,c4]@4 [g3,b3]@4 [f3,a3]@4, ~ e3 ~@2, ~@2 [c3,g3] ~@5", // C Bm Am G F C5
  AG: "[g3,b3]@4 [a3,c4]@2 [g3,b3]@5 ~ a3@4 [e3,g3]@4 [d3,f3]@4 [c3,e3]@7 ~, ~@11 f3@4 ~@17", // G Am G Em Dm C
  AH: "[[b2,d3]@7 ~ [b2,d3,g3,b3,f4]@4 [b2,g3,b3,f4]@4 [g3,b3,f4]@4 ~@8 [g3,b3,f4]@3 ~ [b2,d3,g3,b3,f4]@4 [b2,d3,g3,b3,f4]@3 ~ [b2,g3,b3,f4]@4 [b2,g3,b3,f4]@4 [b2,g3,b3]@4 b3@7 ~ [g2,b2,b3]@3 ~, ~@8 g2@11 ~ [g3,b3,f4]@8 ~@36, ~@12 d3@7 ~ [b2,d3]@11 ~@9 d3@8 [d3,f4]@3 ~ [d3,g3,f4]@12, ~@21 g2@10 g2@4 ~ g2@7 ~ g2@15 ~@5]/2", // Bm G7 Em G G7 Bm Dm G7
  AI: "[[b2,g3,b3,f4]@4 [b2,g3,b3,f4]@3 ~ [g3,b3,f4]@4 [g3,b3,f4]@3 ~ [d3,g3,b3,f4]@4 [d3,g3,b3,f4]@7 ~ [d3,g3,b3,f4]@4 [d3,g3,b3,f4]@4 [b2,d3,g3,b3,f4]@4 [b2,g3,b3,f4]@3 ~ [b2,g3,b3]@3 ~ [b2,d3,g3,b3,f4]@3 ~ [b2,d3,g3,b3,f4]@8 [b2,d3,g3,b3]@4 [b2,d3,g3,b3,f4]@4 [g2,b2,d3,g3,b3,f4]@4 [b2,d3,g3,b3,f4]@4 [b2,g3,b3,f4]@4 [g3,b3,f4]@4 ~@8 [g3,b3,f4]@3 ~ [b2,d3,g3,b3,f4]@4 [b2,d3,g3,b3,f4]@4 [b2,g3,b3,f4]@4 [b2,g3,b3,f4]@4 [b2,d3,g3,b3,f4]@7 ~ [c3,e3,g3,c4,e4]@4 [c3,g3,c4,e4]@4 ~ e4@3 [g3,c4,e4]@8 [g3,c4,e4]@3 ~ [c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@3 ~ [c3,g3,b3,e4]@4 [c3,g3,b3,e4]@4, g2@27 ~ [g2,b2]@8 g2@15 ~ g2@7 ~ g2@8 ~@4 g2@11 ~@2 g2@10 g2@4 ~ g2@7 ~@53, d3@7 b2@8 ~ b2@12 ~@56 [b2,d3]@11 ~@9 d3@8 ~@12 e3@7 ~ [c3,e3]@11 ~@17, ~@8 d3@7 ~@25 d3@7 ~@29 d3@7 ~ [g3,b3,f4]@8 ~@36 [g3,c4]@4 ~@20 e3@8]/5", // G7 Em G7 G G7 C Cmaj7 G …
  AJ: "[[e3,b3,e4]@3 ~ b3@7 ~ [c3,b3]@4 [c3,g3,b3,e4]@4 [c3,g3,b3,e4]@4 [c3,f3,a3,c4,f4]@4 [c3,a3,c4,f4]@4 [a3,c4,f4]@4 ~@8 [a3,c4,f4]@3 ~ [c3,f3,a3,c4,f4]@4 [c3,f3,a3,c4,f4]@4 [c3,f3,a3,c4,f4]@31 ~@9, [c3,g3]@4 [e3,g3,e4]@11 ~ e3@8 f2@12 [a3,c4,f4]@8 ~@52, ~@28 f3@7 ~ [c3,f3]@11 ~@49, ~@37 f2@10 f2@4 ~ f2@35 ~@9]/3", // E5 Cmaj7 F C5 Em F F5
})).s("gm_acoustic_guitar_steel").gain(0.27).pan(0.6)

// bass · electric bass finger · "FINGERDBAS"
const bass = note("<~@35 A B C D E F G H I J K L M N O P@2 Q@3 R S T U@2 V@2 ~@21>".pickRestart({
  A: "c1@8 ~@4 c1 ~@3 c1@11 ~@5", B: "c1@9 ~@3 c1 ~@3 c1@11 ~@5", C: "c1@9 ~@3 c1 ~@3 c1@10 ~@6",
  D: "c1@9 ~@3 g1@3 ~ c1@14 ~@2", E: "f1@5 ~ f1 ~ f1@5 ~ f1 ~", F: "f1@15 ~ f1@10 ~@2 g1@3 ~",
  G: "c1@10 ~@2 g1@3 ~ c1@14 ~@2", H: "c1@11 ~ c1@2 ~@2 c1@16", I: "f1@10 ~@2 f1@3 ~ f1@15 ~", J: "f2@15 ~ f2@12 g1@4",
  K: "c1@11 ~ c1@3 ~ c1@9 ~@3 g1@2 a1@2", L: "c2@11 ~ g1@3 ~ c1@12 ~@4", M: "f1@5 ~ f1 ~ f1@6 ~@2",
  N: "f1@10 ~@2 f1@2 ~@2 f1@13 ~@3", O: "f1@11 ~ f1@3 ~ f1@9 ~ c1 ~ d1 ~ e1 ~",
  P: "[f1@14 ~@2 f1@6 ~@2 c1@11 ~ g1@4 c2@12 g1@4 c1@7 ~]/2",
  Q: "[e1@6 ~@2 f1@10 ~@2 f1@2 ~@2 f1@11 ~@5 f1@11 ~ f1@3 ~ f1@12 ~@4 f1@10 ~@2 f1 ~@3 f1@7 ~]/3",
  R: "e1@2 f1@3 ~ e1 ~ f1@12 ~@2 f1 ~ g1@7 ~", S: "g1@7 ~ c1@8 ~@8 f1@7 ~", T: "e1@2 f1@4 e1 ~ f1@15 ~ g1@7 ~",
  U: "[g1@8 c1@8 ~@8 f1@31 ~ g1@7 ~]/2", V: "[g1@7 ~ c1@31 ~@25]/2",
})).s("gm_electric_bass_finger").gain(0.49)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note("<~@35 A ~@2 B ~ C ~ D ~ C ~@38>".pickRestart({
  A: "~@25 g4@2 ~@5", B: "~@14 e4@3 ~ e4@5 ~@9", C: "~@5 g#3 ~@2", D: "~@16 [c4,e4,g4,c5]@7 ~@9",
})).s("gm_distortion_guitar").gain(0.17).pan(0.2)

// other · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@27 A@3 B@2 C D@2 ~@4 E@3 ~@6 F G ~@3 H I ~ J ~ J K L@2 M N ~@3 O P Q R@2 S T@2 ~@8
>`.pickRestart({
  A: "[~@28 a5@11 ~ a5@2 g5@6 f5@4 e5@4 f5@4 g5@2 f5@4 e5@5 ~ d5@4 c5@2 b4@5 a4@3 b4@2 c5@2 ~ b4@2 ~ a4@2]/3",
  B: "[g4@5 ~@3 f4@4 e4@3 ~ f4@8 g4@4 ~@4 b4@4 c5@4 ~@8 b4@4 c5@3 ~@9, ~@28 e4@15 ~@21]/2",
  C: "b4@4 c5@3 ~@9 b4@4 c5@3 ~@9", D: "[b4@4 c5@3 ~@9 b4@4 c5@29 ~@15]/2",
  E: "[~@16 [a4,c5]@12 d5@2 [g#4,c5]@17 ~@9 [f4,g#4]@7 ~ [e4,g4]@23 ~@9, ~@14 c5@9 ~]/3", // Am G# Fm Em
  F: "~@10 [e5,g5,c6]!3 [e5,g5,b5]@3", G: "[f5,a5,c6]@3 ~@13", H: "~@14 [e5,g5,c6]!2",
  I: "[e5,g5,c6]@2 [e5,g5,b5]@5 ~ [f5,a5,c6]@7 ~@17", J: "~@28 f5@3 ~", K: "f5 [f5,a5]@2 [a5,c6] [a5,c6]@2 ~@10",
  L: "[f5@8 g5@31 ~@25]/2", M: "~@12 c5@3 ~ d5@3 ~ e5@3 ~ g5@3 ~ c5@3 ~", N: "d5@3 ~ e5@3 ~ g4@3 ~@21", O: "~@5 a5@2 ~",
  P: "a5@4 g5@4 f5@4 e5@4 f5@4 g5@2 f5@4 e5@5 ~", Q: "d5@2 c5@4 b4@6 a4@2 b4@5 c5@2 b4@4 ~ a4@2 g4@4",
  R: "[f4@3 ~ e4@4 f4@8 g4@4 ~@4 b4@4 c5@3 ~@9 b4@4 c5@3 ~@9 b4@4 c5@3 ~, ~@10 e4@9 ~@13]/2",
  S: "~@8 b4@4 c5@3 ~@9 b4@4 c5@3 ~", T: "[~@4 b4@2 c5@13 ~@13]/2",
})).s("gm_rock_organ").gain(0.33).pan(0.4)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar_2 = note("<~@35 A B C D E F A G H I J K L@2 ~@34>".pickRestart({
  A: "[c3,g3,c4]@3 ~@3 [c3,g3,c4]@2 [c3,g3,c4]@2 ~@2 [c3,g3,c4]@2 ~@2", // C5
  B: "[c3,f3,c4]@8 ~@4 [c3,f3,c4]@4 ~ c4@3 ~@4 [c3,f3,c4]@4 ~@4, ~@4 [c3,f3] ~@3", // F5
  C: "[c3,f3,c4]@7 ~@5 [c3,f3,c4]@4 [c3,f3,c4]@4 ~@4 [c3,f3,c4]@4 ~@4", // F5
  D: "[c3,g3,c4]@8 ~@4 [c3,g3,c4]@4 [c3,g3,c4]@4 ~@4 [c3,g3,c4]@3 ~@5", // C5
  E: "[c3,f3,a3]@8 ~@4 [c3,f3,a3]@4 [c3,f3,a3]@4 ~@4 [c3,f3,a3]@4 ~ f2@2 ~", // F
  F: "[c3,f3,c4]@7 ~@5 [c3,f3,c4]@4 [c3,f3,c4]@4 ~@5 f3@3 ~@4, ~@24 f2@5 ~@3, ~@24 c3@3 ~@5", // F5
  G: "[c3,g3,c4]@7 ~@5 [c3,g3]@4 [c3,g3,c4]@4 ~@4 [c3,g3,c4]@4 ~@4", // C5
  H: "[f3,c4,f4]@6 ~ [e3,a#3,b3] ~@4 [f3,c4,f4]@4 [f3,c4,f4]@3 ~ [e3,b3,e4] [a3,d#4] ~@2 [f3,c4,f4]@4 ~@4", // F5 E F5 E5 Adim F5
  I: "[f3,c4,f4]@8 [e3,e4] ~@3 [f3,c4,f4]@4 [f3,c4,f4]@4 [a#3,b3] ~@3 [f3,c4,f4]@4 [f3,c4] ~@3", // F5 E F5 Bmaj7 F5
  J: "[c3,g3,c4]@7 f#3 ~@4 [c3,g3,c4]@4 [c3,g3,c4]@4 ~@4 [c3,g3,c4]@4 ~@4", // C5
  K: "[c3,g3,c4]@2 ~ [c3,g3,c4]!2 ~ [c3,g3,c4] ~", L: "[[c3,f3]@59 ~@5, f2@7 ~]/2",
})).s("gm_distortion_guitar").gain(0.22).pan(0.9)

// chords · tremolo strings · "TREMOLOSTR"
const tremolo_strings = note(`<
  ~@5 A B C D E@2 F@4 G@2 H@5 I J@3 K L M N O@2 P Q R ~@11 S T@5 U@4 V@7 ~@7 W@8 X@2 Y@3
>`.pickRestart({
  A: "~@6 [d3,f3] c3", B: "d3@4 c3@4 d3@4 c3@4 [d3,f3]@4 c3@4 d3@4 c3@3 ~", C: "d3 c3 [d3,f3] c3 d3 c3 d3 c3",
  D: "[d3,f3]@4 c3@4 d3@4 c3@4 [d3,f3]@3 ~ d3@4 c3@4 d3@4", E: "[~@4 [e3,g3]@27 ~, c3@63 ~]/2",
  F: "[~@18 f1@41 ~@5, ~@8 f4@119 ~, ~@4 c4@57 ~@3, ~@4 a3@55 ~@5]/4", G: "[[c1,g3,c4]@23 ~@9, e4@41 ~@23]/2",
  H: "[~@6 [c4,f4,a4]@28 ~@22 c1@19 ~@5, ~@12 f1@89 ~@59, ~@6 c7@25 ~@49]/5", I: "~@16 c2@11 ~ g2@4",
  J: "[e2@11 ~ g2@4 c2@56 ~@8 d3@3 ~ c3@4 d3@4 e3@4]/3", K: "d3@4 c3@3 ~ d3@4 c3@3 ~ d3@4 c3@3 ~ d3@4 e3@4",
  L: "d3@4 c3@4 d3@4 c3@3 ~ d3@4 c3@4 d3@4 e3@4", M: "d3@4 c3@4 d3@4 c3@4 d3@4 c3@4 d3@3 ~ e3@4",
  N: "d3@4 c3@4 d3@4 c3@3 ~ d3@4 c3@4 d3@3 ~ e3@4",
  O: "[d3@4 c3@4 d3@4 c3@4 d3@4 c3@4 d3@3 ~@5 c3@11 ~@5 [g3,e4]@14 ~@2, ~@14 e3@8 c1@9 ~]/2", // C
  P: "~@8 [g3,b3,e4]@7 ~, ~@6 c1@7 ~@3", Q: "~ [a3,f4], ~@6 f1@9 ~", R: "[g3,e4]@23 ~@9, c1@9 ~@7",
  S: "~@20 [a5,c6] ~ [a5,c6] ~ [a5,c6]@4 [g5,b5]@4", // Am G
  T: "[f5@105 ~@7 b5@7 ~ e5@29 ~@7 [a5,c6] ~ [a5,c6] ~, a5@51 ~@5 g5@18 ~@6]/5", // Am
  U: "[[a5,c6]@3 ~ [g5,b5]@4 [f5,a5]@102 ~@10 [g5,b5]@7 ~]/4", // Am G F G
  V: "[[g5,b5]@8 [e5,g5]@12 ~@4 f4@45 ~@3 [e4,g4]@15 ~ [f4,a4]@44 ~@16 g2@4 e3@7 ~ g2@8 c2@28 ~@28, ~@12 a4@21 ~@35 [e4,g4]@16 ~@28]/7", // G Em F Em
  W: "[~@24 c4@32 b3@31 ~ a3@44 ~@4 [a3,c4]@7 ~ [b3,d4]@8 [c4,e4]@42 ~@6 c4@3 ~ d4@4 b3@7 ~ [a3,c#4]@40, ~@6 e4@27 ~@31]/8", // Am Bm C A
  X: "[~@7 [a3,c#4]@8 ~ g3@7 ~ [f3,a3]@40, ~@15 b3@8 ~@41]/2", Y: "[~@9 [f3,a3]@7 [g3,b3]@9 [a3,c#4,e4]@63 ~@8]/3",
})).s("gm_tremolo_strings").gain(0.22).pan(0.7)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@5 A@5 ~ B@4 C@7 D@8 ~ E@2 F ~@12 G H@5 I@4 J@6 K@3 L@8 M@5 N@5>".pickRestart({
  A: "[~@24 g3@86 ~@10 c3@15 ~@25]/5", B: "[~@8 a3@115 ~@5, ~ c3@14 ~]/4",
  C: "[e3@46 ~@31 c3!10 ~ d3!8 e3!7 [e3,f3] f3!7 a3!11 ~@10 [c4,c5]@44 [e4,c5]@39 ~@9, ~@24 a3@29 ~@8 a3@26 ~@25, ~@88 c3@77 ~@11 [e3,g3]@36 ~@12, ~@132 [f4,a4]@41 ~@51]/7", // Fmaj7 C Em F
  D: "[~@8 e3@43 ~@37 a4@40, ~ c4@15]/8", E: "[c3@53 ~@11]/2", F: "a3@29 ~@3",
  G: "~@20 [c4,a4,c5] ~ [c4,a4,c5] ~ [c4,a4,c5]@4 [b3,g4,b4]@4", // F Em
  H: "[~@32 f1@30 ~@2 f2@48 [g2,b3,b4]@8 [c2,g3,e4]@31 ~@5 [c4,a4,c5] ~ [c4,a4,c5] ~, a4@107 ~@5 g4@40 ~@8, [c4,f4]@103 ~@17 c4@28 ~@12, a3@99 ~@61]/5", // G C F F5
  I: "[[c4,a4,c5]@4 [b3,g4,b4]@4 ~@32 f1@41 ~@7 f2@28 ~@4 [g2,b3,g4,b4]@7 ~, ~@8 a4@111 ~@9, ~@4 c4@53 ~@7, ~@8 f4@103 ~@17, ~@2 a3@25 ~@5]/4", // F Em G
  J: "[[g2,b4]@8 [c2,g3,c4,e4]@11 ~@5 [a3,f4,a4]@47 ~ [g3,c4,e4]@15 ~ [a3,c4,f4]@48 [c4,e4]@32 ~@24, g4@17 ~@175, b3@5 ~@19 c4@41 ~@127]/6", // G C Dm C F C
  K: "[~@8 c4@31 ~ b3@56, ~ [c3,e3]@11, ~@8 g3@81 ~@7]/3", // C
  L: "[~@8 f3@61 ~@3 f4@96 ~@16 c2@15 ~ c2@3 ~@29 c2@3 ~ c2@12 [f1,c4]@8, ~@8 d4@157 ~@19 e4@72, ~@8 g3@55 ~@9 g3@165 ~@19, ~@72 c4@127 ~@5 c2@27 ~@25, ~@54 b3@7 ~@3]/8", // F5
  M: "[~@8 f1@3 ~ f1@25 ~@3 f1@7 ~ g1@8 c2@43 ~@5 c2@8 b1@8 a1@40]/5",
  N: "[~@8 a1@8 g1@7 ~ f1@42 ~@6 f1@8 g1@8 a1@64 ~@8]/5",
})).s("gm_string_ensemble_1").gain(0.32).pan(0.3)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@5 A@4 B@2 ~@4 C@3 ~@2 D@2 E@3 F@6 G@4 ~@23 H@4 ~@5 I@8 ~@8>".pickRestart({
  A: "[~@12 [c4,f4]@49 ~@3, ~@3 d4@11 ~@2]/4", B: "[~ e3@7, ~@8 c2@51 ~@5]/2", C: "[g2@45 ~@3 c3@26 ~@22]/3",
  D: "[~@16 g2@37 ~@11]/2", E: "[~ c3@5]/3",
  F: "[~@20 f4@27 ~, ~@16 d4@169 ~@7, ~@16 d3@165 ~@11, ~@16 g2@151 ~@25, ~@17 g3@155 ~@20]/6",
  G: "[c4@30 ~@2 b3@26 ~@6 f3@29 ~@3 [c3,g3]@22 ~@10, e4@13 ~@3, [g3,g4]@56 ~@8 c4@49 ~@15]/4", // C5 G
  H: "[~@12 a4@23 ~ g4@16 ~@12]/4", I: "[~@4 g4@80 ~@8 [f3,a3]@23 ~@13]/8",
})).s("gm_string_ensemble_1").gain(0.16).pan(0.3)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@10 A@2 ~@31 B C D ~@16 E@6 F@8 G@7>".pickRestart({
  A: "[~@4 [c5,e5,g5,c6]@35 ~@25]/2", B: "~@5 [a4,c5] [a4,c5,e5] [a4,c5,f5]",
  C: "[g#4,c5,e5]@6 [g#4,c5,f5]@2 [c5,f5,g5]@16 [g#4,c5,f5]@7 ~", D: "[g4,c5,e5]",
  E: "[~@8 c4@16 g4@16 g3@4 b3@11 ~ g4@45 ~@3 a3@4 b3@10 ~@2 g4@14 ~ a3@4 ~ b3@10 ~ g4@15 ~@2 a3@4 b3@12 g4@8]/6",
  F: "[~@7 a3@5 b3@10 ~ g4@15 ~@2 a3@4 b3@7 c4@4 b3@4 a3@2 g3@14 ~ a3@6 b3@6 ~@12 g4@18 ~@14 g4@19 ~@13 g4@34 ~@4 a3@6 b3@7 ~ c4@40, ~@88 c4@29 ~@3 b3@32 a3@46 ~@58]/8",
  G: "[~@8 c4@3 ~ d4@4 b3@8 a3@42 ~@6 [a3,a4]@6 [b3,b4]@9 ~ [c4,c5]@42 ~@6 [c4,c5]@4 [d4,d5]@4 [b3,b4]@8 [a3,a4]@63 ~@9]/7", // A B C D B A
})).s("gm_string_ensemble_2").gain(0.38)

// other · trumpet
const trumpet = note("<~@54 A@2 B ~@14 C@2 D ~ E@2 F@2 G H@3>".pickRestart({
  A: "[~@12 c5 ~ c5 ~ c5 ~ c5 ~ a4 ~ f4 ~ g4 ~ a4 ~ f4@28 g4@3 ~ g4@3 ~]/2", B: "g4@3 ~ g4@3 ~ c4@11 ~@13",
  C: "~@8 e4@15 ~@9", D: "~@8 e4@23 ~", E: "[~@2 g4@7 ~@7]/2", F: "[~@8 a4@27 ~@29]/2", G: "~ g4@3",
  H: "[~@3 e4@8 ~]/3",
})).s("gm_trumpet").gain(0.38).pan(0.2)

// other · trumpet
const trumpet_2 = note("<~@55 [~@10 g4 ~ g4!3 ~ c5@6 d4 f4 ~@2 d4 ~ f4 ~ g4 ~] [f4 ~ d4 ~ c4@14 ~@14] ~@26>")
  .s("gm_trumpet").gain(0.49).pan(0.9)

// chords · trombone
const trombone = note("<~@3 A@6 B@2 ~ C@3 D@2 E@5 F@3 G@6 H I J K ~@12 L@5 M@4 N@6 O@3 P@7 Q@6 R@5>".pickRestart({
  A: "[~@24 f3@161 ~@7, ~@24 g1@157 ~@11]/6", B: "[~ [c2,c3,e3]@7]/2", C: "[~@2 f1@45 ~]/3",
  D: "[[c2,c3,e3]@43 ~@21]/2", E: "[~@6 [c3,f3]@50 [c2,c3,e3,g3]@19 ~@5, ~@12 [f1,a3]@97 ~@51]/5",
  F: "[~ [c2,c3,e3]@5]/3", G: "[~@16 [g3,d4]@161 ~@15, ~@2 g2@21 ~, ~@4 d3@41 ~@3]/6", H: "[c3,e3] [g3,c4,e4], c2@15 ~",
  I: "[c3,e3]@15 ~ [g3,b3,e4]@16, c2@27 ~@5", J: "c3@15 ~ [a3,c4,f4]@16, f2@31 ~", K: "[c2,e3,g3,e4]@23 ~@9",
  L: "[c3@13 ~ [g2,d3,b3] [c2,e3,g3]@5, a3@5 ~@3, f2@3 ~@2]/5", // G C
  M: "[~@8 [f2,a3]@108 ~@4 [g2,d3,b3]@7 ~, ~@4 c3@51 ~@9]/4", // F G
  N: "[[g2,d3,b3]@7 ~ [c2,e3,g3]@8 ~@8 [f2,c3]@47 ~ [c2,e3,g3]@16 [f2,c3,a3]@45 ~@3 [c2,e3,g3]@30 ~@26, ~@4 a3@7 ~@21]/6", // G C F5 C F C
  O: "[~@8 [c2,g2,e3,c4]@31 ~ [c2,g2,e3,b3]@56]/3", // C Cmaj7
  P: "[~@8 g3@169 ~@7 [g3,c4,e4]@13 ~@3 [g3,c4,e4]@16 c2@8, ~@8 g2@165 ~@11 c2@30 ~@10, ~@8 d4@161 ~@55, ~@8 d3@151 ~@65]/7", // C
  Q: "[~@7 [g3,b3,e4]@16 ~@17 [f3,a3,e4]@30 ~@18 [c2,g2,g3,e4]@41 ~@24 [a2,e3,c#4]@39, ~@8 f2@15 ~@41]/6", // Em Fmaj7 C A
  R: "[~@8 [a2,e3,c#4]@7 ~ [g2,d3,b3]@8 ~@16 e4@30 ~@3 f2@6 ~ [g2,d3,b3]@8 [a2,e3,c#4]@63 ~@9, ~@24 [f2,c3,a3]@46 ~@2 [c3,a3]@7 ~@81]/5", // A G A F
})).s("gm_trombone").gain(0.27)

// chords · french horn · "FR.HORN"
const french_horn = note("<~@16 A@2 ~@13 B C D@2 ~@36 E F G@3 H@2 ~ I@4>".pickRestart({
  A: "[~@4 [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [e4,g4,b4]@4 [c4,f4]@26 ~@24, ~@14 a4@23 ~@27]/2", // C Em F5
  B: "~@16 [g3,c4,e4]@15 ~", C: "~@16 [g3,b3,e4]@15 ~", D: "[~@16 [a3,f4]@15 ~ [g3,e4]@22 ~@10, ~@16 c4@33 ~@15]/2",
  E: "~@8 [g3,c4,e4]@15 ~@9", F: "~@4 [g3,b3,e4]@7 ~@5", G: "[~@4 [f3,a3,e4]@15 ~@9 e4@7 ~ g4@12]/3",
  H: "[~@24 e4@15 ~ a4@24]/2", I: "[~@4 g4@15 ~@9 a4@32 ~@4]/4",
})).s("gm_french_horn").gain(0.27).pan(0.7)

// drums · kick
const kick = s("bd").struct("<~@35 A@4 B@4 A@3 C A@3 D E F@3 G E@4 ~@23>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@3 x ~@2 x", C: "x!2", D: "x ~ x!2", E: "~ x ~ x", F: "~@2 x ~@2 x!2 ~", G: "~@11 x ~@4",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct("<~@35 A@11 B A C D E F@3 G E H I J K L ~@22>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@5 x!6", C: "~@4 x ~@7 x ~@2 x", D: "~@2 x ~@2 x ~@2", E: "~ x ~@2", F: "x!2",
// … 38 more lines

More by McCartney