Strudelify

Good Night

The Beatles

KeyG majorTempo144 bpm
0:00/0:00
// Good Night — The Beatles
// 144 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Lead Organ 3" named as an organ, played on drawbar organ (its acoustic guitar steel patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 91 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(144/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 · "Lead Gtr Muted"
const acoustic_guitar_steel = note("<~@10 A B ~@10 C D ~@18 E F ~@2 G@2 H@8 ~@18 I ~@5 J K@3 L@7>".pickRestart({
  A: "~@2 c3@5 b2", B: "c3 c#3 d3@3 ~@3", C: "~@4 c3@3 b2@3 a2@3 g2@3 ~@3 b2@3 c3@2", D: "~ c#3@3 d3@9 ~@11",
  E: "~@5 b2 c3 c#3", F: "d3 ~@3", G: "[g2@9 g2@3 a#2@3 c3@3 a#2@3 d3@26 ~, ~@21 c3 ~@26]/2",
  H: "[~@2 f3@2 ~ d3@2 ~ c3@2 ~ f3@2 ~ d3@2 ~ d3 c3 a#2 g2@3 g2@24 g2@9 g2@3 a#2@3 c3@3 a#2@3 d3@26 ~@2 d3@2 ~ c3@2 ~ f3@2 ~ d3@2 ~ c3@2 ~ f3@2 d3 c3 a#2 g2@3 g2@15 g2@3 a2@3 b2@3 c3@14 b2@3 c3@3 c#3@3 d3@9 ~@17, c3@2 ~@2 c3@2 ~@4 d3@3 c3@2 ~@53 c3 ~@26 c3@2 ~@4 d3@3 c3@2 ~@4 d3@3 ~@79, ~ d3@3 ~@3 f3@2 ~@7 f3@2 ~@80 f3@2 ~@7 f3@2 ~@83]/8",
  I: "~@10 b2@3 c3@3 c#3@3 d3@5", J: "~@7 c4, ~@3 g4",
  K: "[~@23 c4, a3!2 a3!2 a3!2, ~ c4@2 c4@2 c4@2 c4@2 c4@2 c4@2 c4@2 c4@2 c4@2 c4@2 c4@2 ~, ~ f4@4 f4@4 f4@3, ~@3 g4@4 g4@4 g4]/3",
  L: "[~@55 c4@24 ~@5, a3@11 a3@12 a3@12 a3@12 a3@12 a3@12 a3@12 a3@12 a3@12 a3@48 ~@13, ~ c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 ~@29, ~@5 f4@24 f4@24 f4@24 f4@24 f4@48 ~@19, ~@17 g4@24 g4@24 g4@24 g4@48 ~@31]/7",
})).s("gm_acoustic_guitar_steel").gain(0.64).pan(0.3)

// chords · acoustic guitar steel · "Rythm 1 Muted Gtr"
const acoustic_guitar_steel_2 = note(`<
  A@3 B C D E F G H I J K L M N@2 O P Q R S T U V W X Y Z X AA@7 AB AC@2 AD AE AF AG@3 ~@9 AH@2 AI@8 AJ@7 AK@2 AL AM AN
  AO AP@2 AQ ~@10
>`.pickRestart({
  A: "[[d3,g3,c4,g4]@49 ~@6 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [c3,e3,g3,d4,g4]@2]/3", // Csus2 G5 C
  B: "~@4 [d3,g3,d4,g4]@9 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@5", // G5
  C: "~ [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [f3,a3,c4,f4]@6 [f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 ~@3 [f3,a3,c4,f4]@2", // G5 F
  D: "~@4 [f3,a3,c4,f4]@3 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@2", // F G5
  E: "~ [d3,g3,d4,g4] [d3,g3,d4,g4]@2 [d3,g3,d4,g4]!2 ~ [c3,e3,g3,d4,g4]", // G5 C
  F: "~ [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@2 [d3,g3,d4,g4]@2", G: "[d3,g3,d4,g4]!2 [f3,a3,c4,f4]!4 ~ [f3,a3,c4,f4]",
  H: "~ [f3,a3,c4,f4] [d3,g3,d4,g4]@2 [d3,g3,d4,g4]!2 ~ [d3,g3,d4,g4]", I: "~ [d3,g3,d4,g4] ~@6",
  J: "~@5 [d3,a3,d4,a4]@2 [d3,a3,d4,a4]", // D5
  K: "~@2 [d3,a3,d4]@3 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [c3,e3,g3,d4,g4]@3 ~", // D5 G5 C
  L: "~@2 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@3 ~", // G5
  M: "~@2 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [c3,e3,g3,d4,g4]@3 ~", // G5 C
  N: "[~@2 [d3,g3,d4,g4]@9 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [f3,a3,c4,f4]@6 [f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 ~@3 [f3,a3,c4,f4]@3 ~]/2", // G5 F
  O: "~@2 [f3,a3,c4,f4]@3 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@3 ~", // F G5
  P: "~ [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [c3,e3,g3,d4,g4]@3 ~@2", // G5 C
  Q: "~ [d3,g3,d4,g4]@9 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@2", // G5
  R: "~ [d3,g3,d4,g4]@3 [f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 ~@3 [f3,a3,c4,f4]@3 ~@2", // G5 F
  S: "~ [f3,a3,c4,f4]@3 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@3 ~@2", // F G5
  T: "~ [d3,g3,d4,g4]@3 ~@20", U: "~@13 [d3,a3,d4,a4]@6 [d3,a3,d4,a4]@3 ~@2",
  V: "[d3,a3,d4] [d3,g3,d4,g4]@2 [d3,g3,d4,g4]!2 ~ [c3,e3,g3,d4,g4] ~", // D5 G5 C
  W: "[d3,g3,d4,g4]@2 [d3,g3,d4,g4]!3 ~ [d3,g3,d4,g4] ~", // G5
  X: "[b2,f#3,b3,d4,f#4]@3 [b2,f#3,b3,d4,f#4]@2 [b2,f#3,b3,d4,f#4]!2 ~", // Bm
  Y: "[e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@2 [e2,b2,e3,g3,b3,e4]!3", // Em
  Z: "[b2,f#3,b3,d4,f#4]@3 [b2,f#3,b3,d4,f#4]!2 ~ [b2,f#3,b3,d4,f#4] ~", // Bm
  AA: "[[g2,d3,g3,b3,d4,g4]@8 [g2,d3,g3,b3,d4,g4]@9 [g2,d3,g3,b3,d4,g4]@3 ~@3 [e2,b2,e3,g3,b3,e4]@9 [e2,b2,e3,g3,b3,e4]@6 [e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@3 [c3,e3,a#3,g4]@6 [c3,e3,a#3,g4]@3 [c3,e3,a#3,g4]@3 ~@3 [c3,e3,a#3,g4]@3 ~@3 [c3,e3,a#3,g4]@3 [d3,a3,c4,f#4]@6 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [c3,e3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@9 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@5 [f3,a3,c4,f4]@6 [f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 ~@3 [f3,a3,c4,f4]@3 ~@3 [f3,a3,c4,f4]@2]/7", // G Em C7 D7 G5 C G5 F
  AB: "~ [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@2", // G5
  AC: "[~ [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@6 ~@3 [c3,e3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@9 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@2]/2", // G5 C G5
  AD: "~ [f3,a3,c4,f4]@6 [f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 ~@3 [f3,a3,c4,f4]@3 ~@5", // F
  AE: "~ [d3,g3,d4,g4]@9 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@3 ~@5", AF: "[c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]!2 ~@4",
  AG: "[~@2 [d3,a3,d4,a4]!2 ~ [d3,a3,d4,a4] ~ [d3,g3,d4,g4]@2 ~ [d3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 ~ [d3,g3,d4,g4]@3 [d3,g3,d4,g4] [d3,g3,d4,g4]@2 [d3,g3,d4,g4]!3]/3", // D5 G5 C G5
  AH: "[~@7 [d3,a3,d4,a4]@6 [d3,a3,d4,a4]@3 ~@3 [d3,a3,d4]@3 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [c3,e3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@5]/2", // D5 G5 C G5
  AI: "[~ [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@3 ~@3 [b2,f#3,b3,d4,f#4]@9 [b2,f#3,b3,d4,f#4]@6 [b2,f#3,b3,d4,f#4]@3 [b2,f#3,b3,d4,f#4]@3 ~@3 [e2,b2,e3,g3,b3,e4]@9 [e2,b2,e3,g3,b3,e4]@6 [e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@3 [b2,f#3,b3,d4,f#4]@8 [b2,f#3,b3,d4,f#4]@3 [b2,f#3,b3,d4,f#4]@3 ~@3 [b2,f#3,b3,d4,f#4]@3 ~@3 [b2,f#3,b3,d4,f#4]@9 [b2,f#3,b3,d4,f#4]@6 [b2,f#3,b3,d4,f#4]@3 [b2,f#3,b3,d4,f#4]@3 ~@3 [g2,d3,g3,b3,d4,g4]@9 [g2,d3,g3,b3,d4,g4]@9 [g2,d3,g3,b3,d4,g4]@3 ~@3 [e2,b2,e3,g3,b3,e4]@9 [e2,b2,e3,g3,b3,e4]@6 [e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@3 [c3,e3,a#3,g4]@6 [c3,e3,a#3,g4]@3 [c3,e3,a#3,g4]@3 ~@3 [c3,e3,a#3,g4]@3 ~@3 [c3,e3,a#3,g4]@3 [d3,a3,c4,f#4]@3]/8", // G5 Bm Em Bm G Em C7 D7
  AJ: "[~@3 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,a3,c4,f#4]@3 [d3,g3,d4,g4]@5 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [c3,e3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@9 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@6 [f3,a3,c4,f4]@6 [f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 ~@3 [f3,a3,c4,f4]@3 ~@3 [f3,a3,c4,f4]@3 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@6 ~@3 [c3,e3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@9 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [f3,a3,c4,f4]@4]/7", // D7 G5 C G5 F G5 C G5 …
  AK: "[~ [f3,a3,c4,f4]@3 [f3,a3,c4,f4]@3 ~@3 [f3,a3,c4,f4]@3 ~@6 [d3,g3,d4,g4]@9 [d3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@3 ~@6 [c3,e3,g3,c4,e4]@5]/2", // F G5 C
  AL: "~ [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4]@3 ~@17", // C
  AM: "~ [d3,a3,d4,a4]@3 [d3,a3,d4,a4]@3 ~@3 [d3,a3,d4,a4]@3 ~@3 [d3,g3,d4,g4]@6 ~@2", // D5 G5
  AN: "~ [d3,g3,d4,g4]@6 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 ~@3 [d3,g3,d4,g4]@8", // G5 C G5
  AO: "~ [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@6 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]@5", // G5
  AP: "[d3,g3,d4,g4]!2 [c3,e3,g3,d4,g4] [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4] [d3,g3,d4,g4]@2", // G5 C G5
  AQ: "[d3,g3,d4,g4]!2 [c3,e3,g3,d4,g4] [c3,e3,g3,d4,g4]@2 ~@3", // G5 C
})).s("gm_acoustic_guitar_steel").gain(0.31).pan(0.3)

// chords · acoustic guitar nylon · "Rythm 2 Nylon Bk32"
const acoustic_guitar_nylon = note(`<
  A@3 B C D E F G H I J K@7 L@2 M@4 N@5 O@8 P@2 Q R S T U@2 V@2 W@5 X@8 Y@4 Z@7 AA AB@3 AC AD AE AF AG@2 AH@7 ~@2
>`.pickRestart({
  A: "[[g2,d3,g3,c4,d4,g4]@49 ~@6 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [d4,g4]@3 [d4,g4]@2, ~@61 [g2,b2,d3]@6 [c3,e3,g3]@5]/3", // Gsus4 G G5 G C
  B: "~ [c3,e3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@9 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@2, ~@19 [g2,b2,d3]@5", // C G G5 G
  C: "~ [g2,b2,d3,g3,d4,g4]@3 [f2,c3,f3,a3,c4,f4]@9 [f2,c3,f3,a3,c4,f4]@6 [a3,c4,f4]@3 [a3,c4,f4]@2, ~@19 [f2,c3,f3]@5", // G F F5
  D: "~ [f2,c3,f3,a3,c4,f4]@3 [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@2, ~@4 [g2,b2,d3]@9 ~@6 [g2,b2,d3]@5", // F G5 G G5 G
  E: "[g3,d4,g4]!2 [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@2 [d4,g4]!2, [g2,b2,d3] ~@2 [c3,e3,g3]", // G5 G G5 G C
  F: "[c3,e3,g3,d4,g4] [g3,d4,g4]@2 [g3,d4,g4] [g2,b2,d3,g3,d4,g4]@2 [g3,d4,g4]!2, ~ [g2,b2,d3]@3 ~@2 [g2,b2,d3]@2", // C G5 G G5 G
  G: "[g3,d4,g4]!2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [a3,c4,f4]!2, [g2,b2,d3] ~@2 [f2,c3,f3]", // G5 F G F5
  H: "[f2,c3,f3,a3,c4,f4] [g3,d4,g4]@2 [g3,d4,g4] [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@2, ~ [g2,b2,d3]@3 ~@4", // F G5 G
  I: "[g2,b2,d3,g3,d4,g4]@2 [c4,e4]@2 [c4,e4] [c4,e4]@2 [c4,e4], ~@2 [c3,e3,g3]@3 [c3,e3,g3]@3", // G C
  J: "[c4,e4]!2 [d4,f#4]@2 [d4,f#4] [d4,f#4]@2 [d4,f#4], [c3,e3,g3]@2 [d3,a3]@3 [d3,a3]@3", // C D C D5
  K: "[[d4,f#4]@2 [d4,f#4]@3 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [d4,g4]@3 [d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [d4,g4]@3 [d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@9 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@3 [f2,c3,f3,a3,c4,f4]@9 [f2,c3,f3,a3,c4,f4]@6 [a3,c4,f4]@3 [a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@2 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [d4,g4]@3 [d4,g4]@3 [c3,e3,g3,d4,g4]@2, [d3,a3]@6 ~@11 [c3,e3,g3]@6 ~@3 [g2,b2,d3]@9 ~@6 [g2,b2,d3]@6 [g2,b2,d3]@6 ~@6 [g2,b2,d3]@6 [c3,e3,g3]@6 ~@18 [g2,b2,d3]@6 ~@18 [f2,c3,f3]@6 ~@3 [g2,b2,d3]@9 ~@6 [g2,b2,d3]@6 [g2,b2,d3]@5 ~@12 [c3,e3,g3]@6 ~@2]/7", // D G G5 C G5 G G5 G …
  L: "[~ [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@3 [f2,c3,f3,a3,c4,f4]@6 [f2,c3,f3,a3,c4,f4]@6 [a3,c4,f4]@3 [a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@2, ~ [g2,b2,d3]@9 ~@6 [g2,b2,d3]@6 [g2,b2,d3]@6 ~@12 [f2,c3,f3]@6 ~@2]/2", // G5 G G5 F G F5
  M: "[~ [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [c4,e4]@6 [c4,e4]@3 [c4,e4]@6 [c4,e4]@3 [c4,e4]@3 [c4,e4]@3 [d4,f#4]@6 [d4,f#4]@3 [d4,f#4]@6 [d4,f#4]@3 [d4,f#4]@2 [d4,f#4]@3 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [d4,g4]@3 [d4,g4]@3 [c3,e3,g3,d4,g4]@3, ~ [g2,b2,d3]@9 ~@18 [c3,e3,g3]@9 [c3,e3,g3]@9 [c3,e3,g3]@6 [d3,a3]@9 [d3,a3]@9 [d3,a3]@6 ~@11 [c3,e3,g3]@6 ~@3]/4", // G5 G C D G G5 C G …
  N: "[[g3,d4,g4]@2 [g3,d4,g4] [g2,b2,d3,g3,d4,g4]@2 [g3,d4,g4]!3 [g3,d4,g4] [b3,d4,f#4]!3 [b3,d4,f#4]@2 [b3,d4,f#4]!2 [b3,d4,f#4] [g3,b3,e4]!3 [g3,b3,e4]@2 [g3,b3,e4]!2 [g3,b3,e4] [b3,d4,f#4]!3 [b3,d4,f#4]@2 [b3,d4,f#4]!2 [b3,d4,f#4]!4 [b3,d4,f#4]@2 [b3,d4,f#4] [b2,f#3,b3,d4,f#4], [g2,b2,d3]@3 ~@2 [g2,b2,d3]@2 [g2,b2,d3]@2 [b2,f#3]@3 [b2,f#3]@3 [b2,f#3]@2 [e2,b2,e3]@3 [e2,b2,e3]@3 [e2,b2,e3]@2 [b2,f#3]@3 [b2,f#3]@3 [b2,f#3]@2 [b2,f#3]@3 [b2,f#3]@3 ~]/5", // G5 G G5 Bm Em Bm G B5 …
  O: "[[b3,d4,f#4]@2 [g3,b3,g4]@3 [g3,b3,g4]@3 [g3,b3,g4]@3 [g3,b3,g4]@6 [g3,b3,g4]@3 [g3,b3,g4]@3 [g3,b3,g4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@6 [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3 [a#3,c4,e4]@3 [a#3,c4,e4]@3 [a#3,c4,e4]@3 [a#3,c4,e4]@6 [a#3,c4,e4]@3 [a#3,c4,e4]@3 [a#3,c4,e4]@3 [a3,c4,f#4]@3 [a3,c4,f#4]@3 [a3,c4,f#4]@3 [a3,c4,f#4]@6 [a3,c4,f#4]@3 [a3,c4,f#4]@3 [a3,c4,f#4]@3 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [d4,g4]@3 [d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@5 [f2,c3,f3,a3,c4,f4]@6 [f2,c3,f3,a3,c4,f4]@6 [a3,c4,f4]@3 [a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@5, ~@2 [g2,b2,d3]@9 [g2,b2,d3]@9 [g2,b2,d3]@6 [e2,b2,e3]@9 [e2,b2,e3]@9 [e2,b2,e3]@6 [c3,e3]@9 [c3,e3]@9 [c3,e3]@6 d3@9 d3@9 d3@6 ~@12 [c3,e3,g3]@6 ~@3 [g2,b2,d3]@9 ~@6 [g2,b2,d3]@6 ~@17 [f2,c3,f3]@6 ~@3 [g2,b2,d3]@9 ~@17]/8", // Bm G Em C7 F#dim G G5 C …
  P: "[~ [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [d4,g4]@3 [d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@2, ~@13 [c3,e3,g3]@6 ~@3 [g2,b2,d3]@9 ~@6 [g2,b2,d3]@6 [g2,b2,d3]@5]/2", // G G5 C G5 G G5 C G
  Q: "~ [f2,c3,f3,a3,c4,f4]@6 [f2,c3,f3,a3,c4,f4]@6 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2, ~@13 [f2,c3,f3]@6 [f2,c3,f3]@5", // F F5
  R: "~ [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@2, ~@13 [g2,b2,d3]@6 [g2,b2,d3]@5", // G G5 G
  S: "[c4,e4]@2 [c4,e4] [c4,e4]@2 [c4,e4]!3, [c3,e3,g3]@3 [c3,e3,g3]@3 [c3,e3,g3]@2", // C
  T: "[d4,f#4]@2 [d4,f#4] [d4,f#4]@2 [d4,f#4]!3, [d3,a3]@3 [d3,a3]@3 [d3,a3]@2", // D D5
  U: "[[g3,d4,g4]!2 [g2,b2,d3,g3,d4,g4]@2 [d4,g4]!2 [c3,e3,g3,d4,g4] [g3,d4,g4]@2 [g3,d4,g4]!7, [g2,b2,d3]@2 ~@2 [c3,e3,g3]@2 ~ [g2,b2,d3]@3 [g2,b2,d3]@2 [g2,b2,d3]@2 [g2,b2,d3]@2]/2", // G5 G G5 C G5 G C G
  V: "[[g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@2 [d4,g4]!2 [c3,e3,g3,d4,g4] [g3,d4,g4]@2 [g3,d4,g4] [g2,b2,d3,g3,d4,g4]@2 [g3,d4,g4]!4, ~@4 [c3,e3,g3]@2 ~ [g2,b2,d3]@3 ~@2 [g2,b2,d3]@2 [g2,b2,d3]@2]/2", // G G5 C G5 G G5 C G
  W: "[[a3,c4,f4]@2 [a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@6 [a3,c4,f4]@3 [a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [d4,g4]@3 [d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [f2,c3,f3,a3,c4,f4]@6 [f2,c3,f3,a3,c4,f4]@6 [a3,c4,f4]@3 [a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [g2,b2,d3,g3,d4,g4]@4, [f2,c3,f3]@5 ~@6 [f2,c3,f3]@6 ~@3 [g2,b2,d3]@9 ~@30 [c3,e3,g3]@6 ~@3 [g2,b2,d3]@9 ~@30 [f2,c3,f3]@6 ~@7]/5", // F G5 G G5 C G5 G F …
  X: "[~@2 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [c4,e4]@5 [c4,e4]@3 [c4,e4]@6 [c4,e4]@3 [c4,e4]@3 [c4,e4]@3 [d4,f#4]@6 [d4,f#4]@3 [d4,f#4]@6 [d4,f#4]@3 [d4,f#4]@3 [d4,f#4]@3 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [d4,g4]@3 [d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@3 [b3,d4,f#4]@3 [b3,d4,f#4]@3 [b3,d4,f#4]@3 [b3,d4,f#4]@6 [b3,d4,f#4]@3 [b3,d4,f#4]@3 [b3,d4,f#4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@6 [g3,b3,e4]@3 [g3,b3,e4]@3 [g3,b3,e4]@3 [b3,d4,f#4]@2 [b3,d4,f#4]@3 [b3,d4,f#4]@3 [b3,d4,f#4]@6 [b3,d4,f#4]@3 [b3,d4,f#4]@3 [b3,d4,f#4]@3 [b2,f#3,b3,d4,f#4]@3, ~@23 [c3,e3,g3]@8 [c3,e3,g3]@9 [c3,e3,g3]@6 [d3,a3]@9 [d3,a3]@9 [d3,a3]@6 ~@12 [c3,e3,g3]@6 ~@3 [g2,b2,d3]@9 ~@6 [g2,b2,d3]@6 [g2,b2,d3]@6 [b2,f#3]@9 [b2,f#3]@9 [b2,f#3]@6 [e2,b2,e3]@9 [e2,b2,e3]@9 [e2,b2,e3]@6 [b2,f#3]@8 [b2,f#3]@9 [b2,f#3]@6 ~@3]/8", // G5 G C D G G5 C G5 …
  Y: "[[b3,d4,f#4]!2 [b3,d4,f#4]@2 [b3,d4,f#4]!3 [g3,b3,g4] [g3,b3,g4]!2 [g3,b3,g4]@2 [g3,b3,g4]!3 [g3,b3,e4] [g3,b3,e4]!2 [g3,b3,e4]@2 [g3,b3,e4]!3 [a#3,c4,e4] [a#3,c4,e4]!2 [a#3,c4,e4]@2 [a#3,c4,e4]!3 [d3,a3,c4,f#4], ~@2 [b2,f#3]@3 [b2,f#3]@2 [g2,b2,d3]@3 [g2,b2,d3]@3 [g2,b2,d3]@2 [e2,b2,e3]@3 [e2,b2,e3]@3 [e2,b2,e3]@2 [c3,e3]@3 [c3,e3]@3 [c3,e3]@2 ~]/4", // Bm G Em C7 D7 B5 G E5 …
  Z: "[[a3,c4,f#4]@3 [a3,c4,f#4]@3 [a3,c4,f#4]@6 [a3,c4,f#4]@3 [a3,c4,f#4]@3 [a3,c4,f#4]@3 [g2,b2,d3,g3,d4,g4]@5 [g2,b2,d3,g3,d4,g4]@6 [d4,g4]@3 [d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [f2,c3,f3,a3,c4,f4]@6 [f2,c3,f3,a3,c4,f4]@6 [a3,c4,f4]@3 [a3,c4,f4]@3 [f2,c3,f3,a3,c4,f4]@3 [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@6 [d4,g4]@3 [d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g3,d4,g4]@6 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@3 [f2,c3,f3,a3,c4,f4]@4, ~@6 d3@9 d3@6 ~@11 [c3,e3,g3]@6 ~@3 [g2,b2,d3]@9 ~@6 [g2,b2,d3]@6 ~@18 [f2,c3,f3]@6 ~@3 [g2,b2,d3]@9 ~@30 [c3,e3,g3]@6 ~@3 [g2,b2,d3]@9 ~@6 [g2,b2,d3]@6 [g2,b2,d3]@6 ~@4]/7", // F#dim G G5 C G5 G G5 G …
  AA: "~ [f2,c3,f3,a3,c4,f4]@6 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@3 [g2,b2,d3,g3,d4,g4]@5, ~@7 [f2,c3,f3]@6 [f2,c3,f3]@6 ~@5", // F G F5
  AB: "[~ [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@3 [g3,d4,g4]@3 [c4,e4]@6 [c4,e4]@3 [c4,e4]@6 [c4,e4]@3 [c4,e4]@3 [c4,e4]@3 [d4,f#4]@6 [d4,f#4]@3 [d4,f#4]@6 [d4,f#4]@3 [d4,f#4]@3 [d4,f#4]@3 [g3,d4,g4]@3 [g3,d4,g4]@2, ~@7 [g2,b2,d3]@6 [g2,b2,d3]@6 [c3,e3,g3]@9 [c3,e3,g3]@9 [c3,e3,g3]@6 [d3,a3]@9 [d3,a3]@9 [d3,a3]@6 [g2,b2,d3]@5]/3", // G G5 C D G5 G C D5 …
  AC: "~ [g2,b2,d3,g3,d4,g4]@6 [d4,g4]@3 [d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g3,d4,g4]@6 [g3,d4,g4]@2, ~@7 [c3,e3,g3]@6 ~@3 [g2,b2,d3]@8", // G G5 C G5 C G
  AD: "~ [g2,b2,d3,g3,d4,g4]@6 [g3,d4,g4]@3 [g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@6 [g2,b2,d3,g3,d4,g4]@5, ~@7 [g2,b2,d3]@6 ~@11", // G G5 G
  AE: "[g2,b2,d3,g3,d4,g4]@2 [d4,g4]!2 [c3,e3,g3,d4,g4] [g3,d4,g4]@2 [g3,d4,g4], ~@2 [c3,e3,g3]@2 ~ [g2,b2,d3]@3", // G G5 C G5 C G
  AF: "[g2,b2,d3,g3,d4,g4]@2 [g3,d4,g4]!2 [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@2, ~ [g2,b2,d3] ~@2", // G G5 G
  AG: "[[g2,b2,d3,g3,d4,g4]@2 [d4,g4]!4 [f3,a3,d4,g4]@10, ~ [c3,e3,g3]!2 ~@5]/2", // G G5 Dm C
  AH: "[~@18 [g2,b2,d3,g3,d4,g4]@143 ~@7]/7", // G
})).s("gm_acoustic_guitar_nylon").gain(0.28).pan(0.8)

// bass · fretless bass · "Fretless E. Bass"
const bass = note(`<
  A@3 B C D E F G H I J K@2 L@8 M N@8 O P Q R S T U V U T U W X Y Z Y AA AB@8 AC@8 AD AE@2 AF AG S AH AF AI AJ AK AL AM
  AN AO@2 AP@8 ~@3
>`.pickRestart({
  A: "[d2@49 ~@6 g1@5 ~ g1@5 ~ c2@5]/3", B: "~ c2@5 ~ g1@5 ~ g1@5 ~ g1@5", C: "~ g1@5 ~ f1@5 ~ f1@5 ~ f1@3 f1@2",
  D: "~ f1@5 ~ g1@5 ~ g1@5 ~ g1@5", E: "g1@5 ~ g1@5 ~ g1@5 ~ c2@5 ~", F: "c2@5 ~ g1@5 ~ g1@5 ~ g1@5 ~",
  G: "g1@5 ~ f1@5 ~ f1@5 ~ f1@3 f1@3", H: "f1@5 ~ g1@5 ~ g1@5 ~ g1@5 ~", I: "g1@5 ~ c2@5 ~ c2@5 ~ c2@3 ~@3",
  J: "c2@3 c2@3 d2@5 ~ d2@5 ~ d2@5 ~", K: "[d2@5 g1@5 ~ g1@5 ~ c2@5 ~ c2@5 ~ g1@5 ~ d2@3 d2@3 d2@3 d2@3 d2]/2",
  L: "[~@2 d2@3 g1@5 ~ g1@5 ~ c2@5 ~ c2@5 ~ g1@5 ~ g1@5 ~ g1@5 ~ g1@5 ~ f1@5 ~ f1@5 ~ f1@3 f1@3 f1@5 ~ g1@5 ~ g1@5 ~ g1@5 ~ g1@5 g1@5 ~ g1@5 ~ c2@5 ~ c2@5 ~ g1@5 ~ g1@5 ~ g1@5 ~ g1@5 ~ f1@5 ~ f1@5 ~ f1@3 f1@3 f1@5 ~ g1@5 ~ g1@5 ~ g1@5 ~ g1@2]/8",
  M: "~@4 c2@5 ~ c2@5 ~ c2@3 ~@3 c2@2",
  N: "[~ c2@3 d2@5 ~ d2@5 ~ d2@5 ~ d2@5 g1@5 ~ g1@5 ~ c2@5 ~ c2@5 ~ g1@5 ~ g1@5 ~ g1@5 ~ g1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ e1@5 ~ e1@5 ~ e1@5 ~ e1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ b1@5 g1@5 ~ g1@5 ~ g1@5 ~ g1@4]/8",
  O: "~@2 e1@5 ~ e1@5 ~ e1@5 ~ e1@4", P: "~@2 c2@5 ~ c2@5 ~ c2@5 ~ c2@4", Q: "~@2 d2@5 ~ d2@5 ~ d2@5 ~ d2@4",
  R: "~@2 g1@5 ~ g1@5 ~ c2@5 ~ c2@4", S: "~@2 g1@5 ~ g1@5 ~ g1@5 ~ g1@4", T: "~ f1@5 ~ f1@5 ~ f1@3 f1@3 f1@5",
  U: "~ g1@5 ~ g1@5 ~ g1@5 ~ g1@5", V: "~ g1@5 ~ g1@5 ~ c2@5 ~ c2@5", W: "c2@5 ~ c2@5 ~ c2@3 ~@3 c2@3 c2@3",
  X: "d2@5 ~ d2@5 ~ d2@5 ~ d2@5 ~", Y: "g1@5 ~ g1@5 ~ c2@5 ~ c2@5 ~", Z: "g1@5 ~ d2@3 d2@3 d2@3 d2@3 d2@3 d2@3",
  AA: "g1@5 ~ g1@5 ~ g1@5 ~ g1@5 ~",
  AB: "[f1@5 f1@5 ~ f1@3 f1@3 f1@5 ~ g1@5 ~ g1@5 ~ d2@3 ~ d2@3 ~ d2@3 ~ g1@5 ~ g1@5 ~ c2@5 ~ c2@5 ~ g1@5 ~ g1@5 ~ g1@3 g1@3 g1@5 ~ f1@5 ~ f1@5 ~ f1@5 ~ f1@3 f1@3 g1@5 ~ g1@5 ~ g1@3 g1@3 a1@3 b1@3 c2@5 c2@5 ~ c2@3 ~@3 c2@3 c2@3 d2@5 ~ d2@5 ~ d2@5 ~ d2@5 ~ g1@2]/8",
  AC: "[~@4 g1@5 ~ c2@5 ~ c2@5 ~ g1@5 ~ g1@5 ~ g1@5 ~ g1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ e1@5 ~ e1@5 ~ e1@5 ~ e1@5 ~ b1@5 b1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~ g1@5 ~ g1@5 ~ g1@5 ~ g1@3 g1@3 e1@5 ~ e1@5 ~ e1@5 ~ e1@5 ~ c2@3]/8",
  AD: "~ c2!6 d2", AE: "[d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 g1@5 g1@5 ~ c2@5 ~ c2@5 ~ g1@4]/2",
  AF: "~@2 g1@5 ~ g1@5 ~ g1@5 ~ f1@4", AG: "~@2 f1@5 ~ f1@3 f1@3 f1@5 ~ g1@4", AH: "~@2 g1@5 ~ c2@5 ~ c2@5 ~ g1@4",
  AI: "~ f1@5 ~ f1@3 f1@3 f1@5 ~ g1@5", AJ: "~ g1@5 ~ g1@5 ~ g1@5 ~ c2@5", AK: "~ c2@5 ~ c2@3 ~@3 c2@3 c2@3 d2@5",
  AL: "~ d2@5 ~ d2@5 ~ d2@5 ~ g1@5", AM: "~ g1@5 ~ c2@5 ~ c2@5 ~ g1@5", AN: "~ g1@5 ~ d2@3 ~ d2@3 ~ d2@3 ~ g1@5",
  AO: "g1@5 ~ c2@5 ~ c2@5 ~ g1@5 ~", AP: "[g1@5 ~ c2@5 ~ c2@5 ~ d2@174]/8",
})).s("gm_fretless_bass").gain(0.48).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A B A B C D C D C D E@3 F E F G H G H G H I J I@2 J I K L M N M@2 O@3 P O P Q R@3 S R T U V U V U W X W X@2 W Y Z
  Y Z AA AB AC@2 AD@3 AC AE AF AE AF@3 AG@3 ~@10
>`.pickRestart({
  A: "~@7 x ~@11 x ~@2 x ~", B: "~@4 x ~@2 x ~@11 x ~@2 x ~", C: "~@2 x ~@3 x!2", D: "~ x!2 ~@3 x!2",
  E: "~@5 x ~@11 x ~@2 x ~@3", F: "~@2 x ~@2 x ~@11 x ~@2 x ~@3", G: "~@4 x ~@11 x ~@2 x ~@4",
  H: "~ x ~@2 x ~@11 x ~@2 x ~@4", I: "~ x ~@3 x!2 ~", J: "x!2 ~@3 x!2 ~", K: "x ~ x ~@11 x ~@2 x ~@6",
  L: "~@2 x ~@11 x ~@2 x ~@5 x", M: "~@2 x ~@11 x ~@2 x ~@6", N: "~@2 x ~@8 x ~@12", O: "~ x ~@11 x ~@2 x ~@5 x ~",
  P: "~ x ~@11 x ~@2 x ~@7", Q: "x ~@2 x!3 ~ x", R: "x ~@3 x!2 ~@2", S: "x ~@3 x!2 ~ x",
  T: "x ~@10 x ~@2 x ~@5 x ~@2 x", U: "~@11 x ~@2 x ~@8 x", V: "~@11 x ~@2 x ~@5 x ~@2 x",
  W: "~@10 x ~@2 x ~@5 x ~@2 x ~", X: "~@10 x ~@2 x ~@8 x ~", Y: "~@3 x!2 ~@2 x", Z: "~@3 x!2 ~ x!2", AA: "~ x!7",
  AB: "x!8", AC: "~@8 x ~@2 x ~@8 x ~@3", AD: "~@8 x ~@2 x ~@5 x ~@2 x ~@3", AE: "~@7 x ~@2 x ~@5 x ~@2 x ~@4",
  AF: "~@7 x ~@2 x ~@8 x ~@4", AG: "~@2 x!2 ~@2 x ~",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A B@3 C D@3 E F G H@5 I@2 J I K I L@2 M L@2 N O@2 P Q R P S T@4 U V@3 W V X Y Z Y AA Y AB AC@3 AD AC@2 AE AF AE@2
  AG AH AI@3 AJ AI AK B@2 AL AM B@2 D@3 ~@10
>`.pickRestart({
  A: "~@13 x ~@10", B: "~ x ~@11 x ~@10", C: "x ~@2 x ~ x ~@6 x ~@11", D: "x!2", E: "x ~@2 x!2 ~@7 x ~@11",
  F: "x!2 ~@10 x ~@11", G: "x ~@10 x ~@11 x", H: "~@11 x ~@11 x", I: "~@5 x ~@5 x", J: "~ x ~ x ~@6 x ~@11 x ~",
  K: "~ x!2 ~@7 x ~@11 x!2", L: "~@3 x ~@3 x", M: "x ~ x ~@6 x ~@2 x ~@8 x ~@2", N: "x ~@2 x ~@3 x",
  O: "~@8 x ~@2 x ~@8 x ~@3", P: "~@8 x ~@11 x ~@2 x", Q: "x ~@7 x ~@11 x ~@2 x", R: "x ~ x ~@2 x",
  S: "x ~@6 x ~@11 x ~@4", T: "~@7 x ~@11 x ~@4", U: "~@7 x ~@11 x ~@2 x!2", V: "~ x ~ x",
  W: "~@6 x ~@2 x ~@8 x ~@2 x!2 ~", X: "~@2 x!2 ~@2 x!2", Y: "~@5 x ~@11 x ~@6", Z: "~@5 x ~@11 x ~@2 x ~ x ~",
  AA: "~@5 x ~@2 x ~@8 x ~@6", AB: "~@5 x ~@11 x ~@2 x!2 ~@2", AC: "~ x ~@2 x ~", AD: "~@4 x ~@11 x ~@2 x!2 ~@3",
  AE: "~ x ~@3 x ~@2", AF: "~@3 x ~@11 x ~ x ~@6", AG: "~@3 x ~@11 x ~@2 x!2 ~@4",
  AH: "~@3 x ~@2 x ~@5 x ~@2 x ~@2 x!2 ~@4", AI: "~ x ~@5 x ~@4", AJ: "~@2 x ~@2 x ~@8 x ~@9",
  AK: "~@2 x ~@11 x ~@2 x!2 ~@5", AL: "~ x ~@2 x ~@8 x ~@10", AM: "~ x ~@2 x ~@8 x ~@2 x!2 ~@6",
})).gain(0.45)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@2 A B@3 C D@3 E@2 F G@4 H B@4 I J K D@4 L M G N O N P Q B@4 R S@2 D@4 F T G@3 U V W B@3 X D Y D Y@2 Z AA G@5 B@3 AB
  B@2 D@2 AC ~@10
>`.pickRestart({
  A: "~@7 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", B: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  C: "~ x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2", D: "x!8", E: "x!2 ~ x!5",
  F: "x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", G: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  H: "~@2 x ~@2 x ~@2 x ~ x ~@3 x ~@2 x ~@2 x ~ x ~", I: "~ x ~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  J: "~ x ~@5 x ~ x ~@3 x ~@2 x ~@2 x ~@2 x ~", K: "x ~ x!6", L: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@3",
  M: "x ~ x ~@2 x ~@3 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x", N: "~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  O: "~@5 x ~@2 x ~@5 x ~@2 x ~@2 x ~@2 x", P: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@3 x",
  Q: "~ x ~@2 x ~@3 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~", R: "~ x ~@2 x ~ x ~@3 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  S: "~ x!2 ~ x!4", T: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@3",
  U: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@3 x ~@3", V: "~ x ~@3 x ~@4 x ~@2 x ~@2 x ~@2 x ~@4",
  W: "~ x ~@2 x ~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~", X: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@3 x ~@2 x ~", Y: "x!7 ~",
  Z: "x!2 ~ x!2 ~ x!2", AA: "x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  AB: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@5 x ~", AC: "x!6 ~@2",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct(`<
  ~@10 A@2 ~@10 B@2 C ~@7 D E D ~@7 F@2 ~@5 G ~@3 G H I ~@5 J ~ J@2 K ~@9 L ~@4 M ~@10
>`.pickRestart({
  A: "~ x ~@2", B: "~ x ~@4", C: "~ x ~@6", D: "~ x ~@10", E: "~@2 x ~@8 x ~@12", F: "x ~@2 x ~@4", G: "~@23 x",
  H: "~@7 x ~@14 x ~", I: "~@7 x ~@16", J: "~@7 x", K: "~@2 x ~@2 x ~@2", L: "~@19 x ~@4", M: "~@3 x",
})).gain(0.4)

// drums · ride bell
const ride_bell = s("rd").struct("<~@26 A@4 B@4 ~@23 C D@2 A@3 E ~@27>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~@2 x ~@2 x ~@2 x ~", C: "~@11 x", D: "~@2 x ~@2 x ~@2 x ~@2 x", E: "~ x ~ x ~ x ~@2",
})).gain(0.4)

stack(
// … 2 more lines

More by The Beatles