Strudelify
You're Sixteen cover art

Ringo

You're Sixteen

Ringo Starr

KeyC majorTempo132 bpm
0:00/0:00
// You're Sixteen — Ringo Starr
// 132 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 6 "R & R SHERMAN" muted trumpet (copy of ch 7 synth choir)
// note: Full arrangement: all 79 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(132/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 · "BASS"
const bass = note(`<
  ~ A B C D E F G H I D J K A L M N O K P Q R S T U V W X Y A L M N O K A Z E L AA AB AC AD AE AF AG AH AI AJ V AK AL AM
  N L AA N AC AD AN AO AC K AP AQ AC AD AP AQ AC K AP AQ O AR AS AT ~@2
>`.pickRestart({
  A: "c2 ~@3 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2@2 c2@2 c2 ~ c2 ~",
  B: "c2@2 ~@2 c2 ~ c2@2 ~@2 d2 ~ f2@2 ~@2 f2 ~ f2@2 ~@2 f1 ~",
  C: "c2 ~@3 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2@2 c2@2 a2 ~ c2 ~",
  D: "g2 ~@3 g2 ~ g2@2 ~@2 g2 ~ g2@2 ~@2 g2@2 g2@2 b1 ~ g1 ~",
  E: "c2 ~@3 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2@2 c2@2 f#2 ~ f2 ~",
  F: "e2 ~@3 e2 ~ e2@2 ~@2 e2 ~ e2@2 ~@2 e2@2 e2@2 g2 ~ e2 ~",
  G: "f2 ~@3 f2 ~ f2@2 ~@2 f2 ~ f2@2 ~@2 f2@2 f2@2 e2 ~ d2 ~",
  H: "c2 ~@3 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2@2 c2@2 f2 ~ e2 ~",
  I: "d2 ~@3 d2 ~ d2@2 ~@2 d2 ~ d2@2 ~@2 d2@2 d2@2 e2 ~ a2 ~",
  J: "c2 ~@3 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2@2 c2@2 b2 ~ a2 ~",
  K: "g2 ~@3 g2 ~ g2@2 ~@2 g2 ~ g2@2 ~@2 g2 ~ g2@2 ~@2 g2 ~",
  L: "e2 ~@3 e2 ~ e2@2 ~@2 e2 ~ e2@2 ~@2 e2 ~ e2@2 ~@2 e2 ~",
  M: "f2 ~@3 f2 ~ f2@2 ~@2 f2 ~ f2@2 ~@2 f2 ~ f2@2 ~@2 f2 ~",
  N: "c2 ~@3 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~",
  O: "d2 ~@3 d2 ~ d2@2 ~@2 d2 ~ d2@2 ~@2 d2@2 d2@2 d2 ~ d2 ~",
  P: "c2@2 ~@2 c2 ~ c2 ~@3 c2@2 c2@2 ~@2 c2 ~ c2@2 g1@2 a1@2", Q: "c2@2 ~@2 c2 ~ c2@2 ~@2 c2@2 c2 ~@3 c2 ~ c2 ~@3 c2 ~",
  R: "e2@3 ~ e2 ~@5 b1@2 e2@3 ~ e2 ~@5 b1@2", S: "e2@4 e2 ~@5 b1@2 e2@3 ~ e2@2 ~@2 e2 ~ e2 ~",
  T: "a1@4 a1 ~@5 e1@2 a1@2 ~@2 a1@2 ~@4 e1@2", U: "a1@3 ~ a1 ~@5 e1@2 a1@4 b1@2 a1@3 ~ b1 ~",
  V: "d2@4 d2 ~@5 a1@2 d2@2 ~@2 d2@2 ~@4 a1@2", W: "d2@3 ~ d2 ~@5 a1@2 d2@4 e2@2 d2@3 ~ f#2 ~",
  X: "g2@3 ~ g2 ~@5 d2@2 g2@4 g2 ~@5 d2@2", Y: "g2@3 ~ g2 ~@5 d2@2 g2@2 ~@2 g2@2 g2@2 ~@2 g2 ~",
  Z: "g2 ~@3 g2 ~ g2@2 ~@2 g2 ~ g2@2 ~@2 g2@2 g2@2 e2 ~ b1 ~",
  AA: "f2 ~@3 f2 ~ f2@2 ~@2 f2 ~ f2@2 ~@2 f2@2 f2@2 f2 ~ f2 ~",
  AB: "c2 ~@3 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2@2 c2@2 c2 ~ c#2 ~",
  AC: "d2 ~@3 d2 ~ d2@2 ~@2 d2 ~ d2@2 ~@2 d2 ~ d2@2 ~@2 d2 ~",
  AD: "g2 ~@3 g2 ~ g2@2 ~@2 g2 ~ g2@2 ~@2 g2@2 g2@2 g2 ~ g2 ~",
  AE: "c2@2 ~@2 c2@2 c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~",
  AF: "c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2 ~ f#2 ~ f2 ~", AG: "e2@3 ~ e2 ~@5 b1@2 e2@4 e2 ~@5 b1@2",
  AH: "e2@3 ~ e2 ~@5 b1@2 e2@2 ~@2 e2@2 e2@2 ~@2 e2 ~", AI: "a1@3 ~ a1 ~@5 e1@2 a1@3 ~ a1 ~@5 e1@2",
  AJ: "a1@4 a1 ~@5 e1@2 a1@3 ~ a1@2 ~@2 a1 ~ a1 ~", AK: "d2@3 ~ d2 ~@5 a1@2 d2@4 e2@2 d2@3 ~ e2 ~",
  AL: "g2@3 ~ g2 ~@5 d2@2 g2@3 ~ g2 ~@5 d2@2", AM: "g2@4 g2 ~@5 d2@2 g2@3 ~ g2@2 ~@2 g1 ~ g2 ~",
  AN: "c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2@2 g1@2 a1@2",
  AO: "c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2 ~ c2 ~ c2 ~ e2 ~",
  AP: "c2@2 ~@2 c2 ~ c2 ~@3 c2 ~ c2 ~@3 c2 ~ c2 ~@3 c2 ~", AQ: "c2 ~@3 c2 ~ c2 ~@3 c2 ~ c2 ~@3 c2 ~ c2 ~@3 c#2 ~",
  AR: "g2 ~@3 g2 ~ g2@2 ~@2 g2 ~ g2@2 ~@2 g2@2 g2@2 e2 ~ d2 ~",
  AS: "c2 ~@3 c2 ~ c2 ~@3 c2 ~ c2 ~@3 c2 ~ c2 ~ g1 ~ a1 ~", AT: "c2@2 ~@2 g1 ~ c2@3 ~ c2@7 ~@7",
})).s("gm_electric_bass_finger").gain(0.43)

// chords · piano
const piano = note(`<
  A B C D@2 E F G H I J K@3 L@2 M N O P@2 Q@5 R@2 S T U V@4 W@3 X Y Z AA AB@8 AC@3 AD@5 AE AF@4 AG@4 AH@8 AI@4
>`.pickRestart({
  A: "~@15 e3@2 ~ [c3,e3] ~@2 f#3 ~@2, ~@15 c2@7 ~@2, ~@15 d#3 ~@2 f3@3 ~@3", // C
  B: "g3@6 ~ [e3,g3] g3 [e3,g3]!2 e3 [e3,g3]!2 g3 [e3,g3]!2 e3 [e3,g3]!3 e3 g3 [e3,g3]", // Em
  C: "e3 [e3,g3]!2 g3 [e3,g3] e3 [e3,g3]!2 g3 e3 [e3,g3] ~ [d3,f3]!2 f3 d3 [d3,f3]!2 f3 [d3,f3] d3 f3!2 c3", // Em Dm
  D: "[e3 [c3,e3] c3 [c3,e3] e3 [c3,e3] c3 e3 [c3,e3] c3 [c3,e3] e3 c3 [c3,e3] e3 c3 [c3,e3] ~ c3!3 ~@7 [g3,b3]@2 [g2,d3,g3,b3]@3 ~ [g2,d3]@2 [g2,d3,g3,b3]@4 [g2,g3,b3]@2 [g2,g3,b3]@4 [g2,g3,b3]@2, ~@17 e3@2 e3@12 ~@2 [g3,b3]@2 ~@13, ~@21 c3@9 ~@10 d3@7 ~]/2", // C G G5 G
  E: "~@3 c4@2 [g3,c4]@3 ~@3 e3, ~ c2@23, ~@2 g3@3 e4@7, ~@2 [g3,c4,g4]", // C5
  F: "e3@4 ~@3 e3@3 [e3,g#3]@6 ~@6 f3@2, e2@23 ~, b3@2 [e3,g#3,b3], g#3@5 d4@7, ~@4 b2@19 ~", // E
  G: "~@9 c3@2 g3, f2, a3@2 a3, f3@6 ~@4 [f3,c4]@13 ~, ~@4 c3@9 ~@11", // F5
  H: "~@6 g3@4 [g3,c4]@6 ~@5 d3@2 ~, c2, e4@2 [g3,c4,e4], c4@5 g4@7, g3@4 g2@9 ~@5 g2@5 ~", // C5 C
  I: "~@6 d3@4 [d3,f#3,c4]@5 ~@6 g3@3, [d2,a3], f#3@10 ~@5 [f#3,c4]@8 ~, d3@3 ~@5 d3@4, ~ a2@3 ~@2 a2@2", // D7 D5 F#dim
  J: "~@6 g3@4 g3@6 ~@5 c3@2 ~, g2@23 ~, b3@16 [g3,b3]@7 ~, g3@6 ~@4 d4@13 ~, ~@4 d3@9 ~@5 d3@5 ~", // G
  K: "[~@6 c3@4 ~@12 g3@5 [g3,b3,d4] ~@2 [g3,b3,d4]@3 [g3,b3,d4]@2 [g3,b3,d4]@4 ~@6 g3@2 g3@5 ~ g3@4 ~ [g3,c4]@6 ~@6 e3@2, c2@28 ~@13 d3@6 ~@5 g2@9 ~@5 g2@6, e3@12 g2@4 e3@12 ~@11 [b3,d4]@8 e4@17 [g3,c4,e4]@8, g3@10 c3@18 ~@11 g3@5 ~@3 c4@10 ~ g4@14, c3@3 g2@7 g3@8 g2@9 g2@20 c2@25]/3", // G C5 Bm C
  L: "[~@6 e3@4 e3@6 ~@6 g#3 ~@7 f3@4 f3@5 ~@6 g3@2 ~, [e2,g#3]@21 f3@9 ~@4 c4@14, d4@10 d4@13 a3@16 a3@3 c3@6, e3@6 ~@10 [e3,b3]@8 ~@3 c3@13 f3@8, ~@4 b2@9 ~@5 b2@5 ~ f2@24]/2", // E E5
  M: "g3@4 ~ g3@4 ~ [g3,c4]@5 ~@6 d3@3, c2, e4@5 [g3,c4,e4]@3, c4@5 g4@7, ~@2 g2@4 ~@3 g2@3", // C5 C
  N: "[d3,a#3] ~@5 d3@4 d3@6 ~@5 g3@3, [d2,c4], f#3@2 [d3,f#3], ~@4 a2@9 ~@5 a2@5 ~, ~@5 a3@7", // Gm D7 D
  O: "~@6 g3@3 ~ g3@5 ~@6 g3@3, g2, b3@15 b3@8 ~, g3@6 ~@3 d4@14 ~, ~@3 d3@9 ~@4 g3@2 d3@6",
  P: "[~@6 g3@4 g3@5 ~@19 c4@6 ~@6 e3@2, e4@5 ~, c2@21 g3@6 g2@15 ~ g2@5, c4@5 c4@10 g3@5 [g3,c4,e4]@4, g3@4 g2@11 g3@3 g2@6 c2@24]/2", // C
  Q: "[~@6 e3@4 ~@20 e3@4 e3@6 ~@5 a3@2 ~@7 a3@4 ~@11 a3@2 ~@7 a3@4 ~@20 d3@4 d3@6 ~@5 d3@2 ~, [e2,g#3]@22 e3@8 ~@4 [g#3,d4]@13 c4@10 ~ d4@32 e3@3 d3@9 ~@10 a3@8, e3@6 ~@4 d4@14 ~@18 b2@6 a2@16 a3@2 e3@6 c4@16 c4@7 d2@24 ~, ~@4 b2@9 b2@3 e3@3 b2@5 e2@24 ~@4 e3@8 e3@4 c4@8 [a2,g4]@23 f#3@6 ~@5 [f#3,c4]@14, ~@10 e3@6 b3@8 ~@4 b2@9 ~@3 [e3,b3]@8 a3@6 ~@4 [a3,c4,e4]@6 e4@8 a3@3 e3@7 [a3,e4]@14 ~@3 a2@9 ~@4 d3@2 a2@6]/5", // E G#dim A7 F#dim E5 Am A5
  R: "[~@6 d3@4 d3@5 ~@2 a2@4 a#3 ~@8 g3@4 g3@5 ~@6 g3@3, d2@11 ~@10 d3@3, f#3@15 f#3@7 ~@5 d3@10 ~@2 g3@6 ~@3, d3@6 ~@4 a3@13 ~@11 d4@7 ~@7, ~@3 a2@9 ~@10 [g2,b3]@26]/2", // G
  S: "[g3,b3,f4]@2 ~@19 g3@2 ~, g2, ~ f4@5, ~@4 b3@8 d3@3 g3@2 d3@7, ~@4 g3@2 d3@3 [g3,d4]@6 [b3,d4]@9", // G7 G5 Bm
  T: "~@3 g3@2 [g3,c4]@3 ~@3 e3, c2, e4@2 [g3,c4,e4], c4@5 g4@7, g3@4 g2@8 ~@7 g2@5", // C5 C
  U: "~@3 e3@2 [e3,g#3,d4]@3 ~@3 f3, e2@23 ~, [g#3,d4]@5 ~@7, e3@3 ~@5 [e3,g#3,d4]@4, ~@2 b2@4 ~@3 b2@3", // E7 G#dim E7
  V: "[~@6 f3@4 f3@6 ~@4 g3@3 ~@7 g3@4 [g3,c4]@5 ~@15 d3@3 ~ d3@5 ~@6 g3@2 ~@7 g3@4 [g3,d4]@5 ~@6 g3@3, a3@15 ~ [f3,a3]@7 g3@5 g2@8 ~@6 g2@5 f#3@6 ~@4 [f#3,c4]@6 ~@8 b3@16 [b3,d4]@9, c4@9 ~ c4@13 c4@10 ~ g4@14 ~@3 a2@15 a2@6 g2@24, f3@4 c3@9 ~@5 c3@6 e4@15 [g3,c4,e4]@6 d3@9 ~@9 [d3,f#3,c4]@9 d4@10 ~@7 d3@7, ~ f2@23 c2@23 d2@25 g3@4 d3@8 ~@3 g3@6 ~@3]/4", // C5 G5 F F#dim Bm C D7
  W: "[~@6 g3@4 g3@6 ~@8 g2@3 [g3,b3,d4] ~ [g3,b3,d4]@4 [g3,b3,d4]@2 [g3,b3,d4]@3 ~@7 g3@2 ~@7 g3@4 [g3,c4]@6 ~@6 e3@2, c2@28 ~@19 c4@11 g4@14, c4@16 c4@12 ~@11 [b3,d4]@8 g3@5 g2@8 ~@7 g2@5, e4@10 e4@18 ~@11 g3@6 ~@2 e4@17 [g3,c4,e4]@8, g3@4 g2@8 ~@4 g3@2 g2@3 g3@6 g2@8 g2@6 g2@7 c2@24]/3", // G C5 Bm C
  X: "~@6 e3@4 [e3,g#3,d4]@6 ~@5 f3@2 ~, e2, g#3@5 ~@3 [e3,g#3,d4]@4, ~@2 b2@4 ~@3 b2@3", // E7
  Y: "~@6 f3@4 ~@11 g3@3, f2, a3@15 a3@8 ~, c4@5 [f3,c4]@7, ~@2 c3@7 c3@3", // F5
  Z: "~@6 g3@4 [g3,c4]@6 ~@5 d3@3, c2, e4@2 [g3,c4,e4], c4@5 g4@7, ~@2 g2@7 g2@3", // C5 C
  AA: "~@3 d3@2 [d3,f#3,c4]@3 ~ a2@2 a#3, [d2,a3], f#3@5 ~@3 [d3,f#3,c4]@4, ~@2 a2@7 ~@3", // D7 D5 D7
  AB: "[~@6 g3@4 [g3,d4]@6 ~@14 g3@4 [g3,c4]@5 ~@15 g3@4 [g3,c4]@6 ~@14 e3@4 e3@6 ~@14 e3@4 e3@5 ~@39 a3@3 ~ [a3,c4]@6 ~@14 d3@4 d3@6 ~@5 f#3@2 d3, g2@24 c2@15 g3@3 g2@4 g3@2 c2@22 e3@8 ~@4 g#3 ~@5 b3@6 e3@8 ~@9 [e3,b3]@6 a3@8 ~ a3@10 a3@6 a3@8 ~@10 [a3,c4]@8 ~@10 c4@14, b3@16 [b3,d4]@8 e4@15 e4@24 ~ [g3,c4,e4]@9 ~@3 b2@12 e3@2 b2@6 ~@4 b2@14 b2@6 a2@24 [a2,a4]@24 d2@24, g3@6 ~@10 g3@6 g3@6 g2@8 ~@3 c4@12 g2@9 ~@6 g2@6 e2@24 e2@24 ~@10 c4@24 ~@12 d3@8 ~@4 f#3@8 a2@6, ~@4 d3@9 ~@5 d3@6 c4@10 g4@38 g#3@10 d4@14 ~@10 d4@14 ~@4 e3@9 e3@5 e3@10 e3@14 e3@6 ~@4 a2@12 [d3,a3]@8]/8", // G5 C5 Am E5 Am Bm C A …
  AC: "[~@5 d3@4 [d3,f#3,c4]@6 ~@15 g3@4 [g3,b3]@5 ~@6 g3@3 [g3,b3,f4]@4 ~@5 [g3,b3]@6 ~@6 g3@3, d2@24 ~@18 d3@12 d3@9 g3@2 d3@7, f#3@9 ~@6 [d3,f#3,c4]@9 ~@3 d3@9 ~@3 g3@6 ~@7 [g3,b3,f4]@5 ~@6 [b3,d4]@9, ~@3 a2@14 a2@6 ~ g2@24 g2@24, ~@7 g3@3 ~@3 b3@3 ~@3 f4@5]/3", // D7 G G7 G D7 G7 Bm
  AD: "[~@6 g3@4 [g3,c4]@6 ~@14 e3@4 [e3,g#3,d4]@6 ~@14 f3@4 f3@5 ~@15 g3@4 [g3,c4]@5 ~@15 d3@4 [d3,f#3,c4]@6 ~@5 g3@3, c2@22 e3@8 ~@10 [e3,g#3,d4]@8 a3@16 a3@5 g3@9 ~@9 [g3,c4,e4]@6 d3@9 ~@10 [d3,f#3,c4]@8, e4@2 [g3,c4,e4] e2@3 f2@3 c2@3 [d2,a3]@3, c4@10 g4@15 ~@20 f3@7 ~@6 c4@14 c4@10 g4@14 ~@4 a2@9 ~@5 a2@6, g3@4 g2@15 g2@6 ~@3 b2@14 b2@7 ~@2 c3@9 ~@6 c3@6 ~@4 g2@14 g2@6 f#3@10 ~@14]/5", // C5 E7 C5 D7 E7 C D7 C …
  AE: "~@6 g3@4 ~@11 g3@3, g2, b3@13 d3@3 b3@8, ~@4 d3@6 g3@5 g3@3 d3@6, ~@5 d4@7",
  AF: "[~@6 g3@4 g3@6 ~@8 g2@4 [g3,b3,d4]@2 [g3,b3,d4]@4 [g3,b3,d4]@2 [g3,b3,d4]@3 ~@16 d3@3 d3@5 ~@15 g3@4 g3@5 ~@6 g3@2 ~, c2@25 ~@3 g2@8 g2@5 g2@23 [d3,a3]@8 ~@3 d3@14 ~ d3@6, c4@16 c4@9 ~@14 [b3,d4]@27 a2@6 g2@23 ~, e4@10 e4@15 ~@23 d2@21 g3@7 ~@12 b3@8, ~@3 g2@8 ~@5 g3@2 g2@3 g3@6 ~@12 g3@6 g3@3 [d3,f#3]@4 a2@6 [f#3,c4]@13 ~ b3@7 ~@3 d4@13 ~]/4", // G D5 Bm D F#dim
  AG: "[[g3,e4]@4 ~@2 g3@4 [g3,c4]@6 ~@29 d3@2 d3@5 ~@2 d3@4 d3@6 ~@2 a2@4 ~@8 g3@4 g3@6 ~@5 g3@3, c2@16 g3@2 g2@4 g3@2 c2@17 g2@6 f#2@24 ~ g2@24, c4@10 g4@37 f#3@11 [f#3,c4]@14 b3@15 ~ b3@8, ~@4 g2@8 ~@4 e4@32 ~@16 [d3,a3]@8 ~@4 d3@9 ~@5 d3@6, ~@16 c4@11 g2@3 g3@3 c4@6 g3@9 ~@4 a2@14 ~@4 g3@6 ~@6 d4@14]/4", // C C5 F#dim D5
  AH: "[~@6 g3@4 [g3,c4]@6 g3@5 ~@33 d3@4 d3@6 ~@14 g3@4 g3@5 ~@15 g3@4 [g3,c4]@6 ~@14 g3@4 g3@5 ~@15 d3@4 d3@6 ~@14 g3@4 ~@11 g3@3, c2@21 g3@3 c2@15 g3@2 g2@4 d3@8 ~@11 [d3,a3]@6 g3@7 ~@11 b3@6 g3@7 ~@11 e4@23 g3@2 g2@4 d3@7 a2@15 a2@6 ~@3 d3@9 ~@2 b3@9, c4@10 g4@37 f#3@11 [f#3,c4]@14 b3@6 ~@4 d4@14 c4@10 g4@38 ~@16 [d3,a3]@6 g3@7 ~@5 g3@7 d3@7, ~@4 g2@9 ~@3 e4@32 ~@4 a2@15 a2@5 ~ g2@23 c2@16 g3@2 g2@4 g3@2 c2@24 d2@24 g2@23 ~, ~@16 c4@11 g2@3 g3@4 c4@14 d2@24 ~@4 d3@14 d3@6 ~@4 g2@8 ~@4 c4@11 g2@7 c4@14 f#3@10 [f#3,c4]@14 b3@6 ~@4 d4@14]/8", // C5 D5 F#dim D5 F#dim
  AI: "[~@6 g3@4 ~@12 g3@2 g3@6 g3@3 ~ [g3,c4]@38 ~@24, c2@12 [c2,c4,g4]@5 c2@20 ~@11, c4@2 c4 ~@9, e4@5 e4@12 e4@18 ~@13, g3@3 g2@7 g3@8 g2@16 ~@62]/4", // C5
})).s("gm_piano").gain(0.37)

// chords · piano · soft notes
const piano_soft = note(`<
  A ~ B ~ C ~@2 D E F G ~ H E I ~ J K L ~@3 I ~ M N O P ~ J Q R S T U J ~ V W X Y Z G S E AA ~@5 U ~@3 AB ~ F Y AC ~@2
  AD S ~@2 AE AF@2 ~ AG J S ~ AH S ~@3
>`.pickRestart({
  A: "~@19 c3 ~@4", B: "~@21 d3 ~@2", C: "~@2 d3 ~@9", D: "~@6 f3@4 ~@3 c3@5 ~@6", E: "~@13 g2@5 ~@6",
  F: "~@13 a2@5 ~@6", G: "~@13 d3@5 ~@6", H: "b3 ~@7", I: "~@13 b2@5 ~@6", J: "~@2 g2 ~", K: "~ d3@5 ~@7 a2@5 ~@6",
  L: "~@2 d3 ~", M: "~@13 e3@5 ~@6", N: "~@5 f#3@4 ~@3 a2@6 ~@6, a3@2 ~", O: "~@15 d3@7 ~@2, ~@13 a2@4 ~@7",
  P: "~@13 d3@4 d4@7", Q: "~@2 b2 ~", R: "~@13 c3@5 ~@6", S: "~@12 g2@5 ~@7", T: "~@5 f#3@4 ~@15, a3",
  U: "~@12 d3@5 ~@7", V: "~@13 g2@6 ~@5", W: "e3 ~ b2 ~", X: "f3 ~@3", Y: "g3 ~@3", Z: "d3@3 ~@8 [g3,c#4]", AA: "~ g#3",
  AB: "~@15 f3@8 ~, ~@2 c3 ~", AC: "g3 ~ g2 ~", AD: "~@15 g3@5 ~@4", AE: "~@16 g3@5 ~@3, ~@13 d3@5 ~@6",
  AF: "[~@13 g2@5 g2@9 ~@21]/2", AG: "~@5 g3@2 ~", AH: "~@13 d3@4 ~@7",
})).s("gm_piano").gain(0.19)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@3 B A C@2 A@6 D A D A@3 B A@7 B A@3 C@2 D A E A@2 C A C A C F A@7 G A@2 C@2 A C@2 B A@3 E A@6 C B A H I J ~@2
>`.pickRestart({
  A: "x ~@4 x!2 ~@5", B: "x", C: "x ~@4 x!2 ~@4 x", D: "x ~@4 x!2 ~ x ~@3", E: "x ~@2 x ~ x ~@2 x ~@2 x",
  F: "x ~@4 x!2 ~@3 x ~", G: "~@9 x!2 ~", H: "x!2 ~ x ~@2", I: "x ~@4 x!2 ~@3 x!2", J: "~@5 x ~@6",
})).gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  ~ A@3 B A@7 C A@7 B A@7 B A@7 D A@7 E A@7 F A@7 B A@3 D A@3 E A@3 G A H A I ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "x ~ x!3 ~@6 x", C: "~@3 x ~@3 x!5", D: "~ x!2 ~@3 x!2 ~ x!2 ~", E: "~@3 x ~@3 x!3 ~ x", F: "~@11 x",
  G: "~ x!4 ~ x!2 ~ x!2 ~", H: "~ x ~ x ~ x ~ x!5", I: "x",
})).gain(0.64)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@4 A ~@9 B ~ B ~@3 A ~@7 A ~@5 B ~@25 A ~@18>".pickRestart({
  A: "~@6 x!2 ~ x!2 ~", B: "~@7 x ~@4",
})).gain(0.16)

// drums · low tom
const low_tom = s("lt").struct("<~@4 A ~@15 A ~@7 A ~@23 B ~@7 A ~@11 C ~@6>".pickRestart({
  A: "~@2 x", B: "~@3 x!2 ~", C: "~@11 x",
})).gain(0.72)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@4 A ~@15 A ~@7 A ~@23 B ~@7 A ~@11 C ~@6>".pickRestart({
  A: "~@5 x ~@6", B: "~@2 x!2 ~@2", C: "x ~ x",
})).gain(0.72)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@6 A@2 ~@3 B C ~@4 B ~@12 B ~ A@2 ~@5 A ~ A B A ~@10 B A@2 ~ A@2 ~@11 A ~@4 C ~@2
>`.pickRestart({
  A: "~@5 x ~@6", B: "~@11 x", C: "~ x ~@2",
})).gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<~@52 [x!3 ~ x ~@7] ~@19 [~@5 x ~@6] ~@6>").gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@3 A ~@7 A ~@7 A ~@7 A ~@7 A ~@6 B A ~@7 A ~@7 A ~@3 A ~@2 B A ~@3 A C A D ~@2
>`.pickRestart({
  A: "x", B: "~ x ~@2", C: "~ x ~ x ~ x ~@6", D: "~@5 x ~@6",
})).gain(0.56)

// drums · ride
const ride = s("rd").struct("<~@21 A@4 B A B ~@17 A B A@5 ~@27>".pickRestart({
  A: "x ~ x!2 ~ x!2 ~ x!2 ~ x", B: "x!4 ~ x!2 ~ x!2 ~ x",
})).gain(0.64)

// drums · tambourine
const tambourine = s("tb").struct("<~@21 [~@3 x]!7 ~@17 [~@3 x]!7 ~@27>").gain(0.8)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@21 [x!12]!7 ~@17 [x!12]!7 ~@27>").gain(1.62)

// drums · shaker
const shaker = s("sh").struct("<~@21 [x ~ x!2 ~ x!2 ~ x!2 ~ x]!7 ~@17 [x ~ x!2 ~ x!2 ~ x!2 ~ x]!7 ~@27>").gain(0.56)

stack(
  bass, piano, piano_soft, kick, snare, snare_soft, low_tom, hihat, mid_tom, open_hat, high_tom, crash, ride,
  tambourine, cabasa, shaker
)

More by Ringo Starr