Strudelify

You Know My Name (Look Up the Number)

The Beatles

KeyD majorTempo128 bpm
0:00/0:00
// You Know My Name (Look Up the Number) — The Beatles
// 128 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 121 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/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 · piano · "pr"
const piano = note(`<
  A@4 B@2 C@2 D@4 E@4 F@4 G@3 ~@2 H I J I J K L M N O P Q R S R S K L M N O P Q R S R S K L M N O P Q R S R S R S R S ~
  T U T U V W X Y Z AA AB AC U AC U T AD AE AF ~ AG AH AI@2 AJ AK AL@2 AM@6 AN AO AP AQ@7 AR AS@4 AT@3 ~
>`.pickRestart({
  A: "[~@31 [g3,b3,d4]@39 [a3,c#4,e4]@39 ~ d3@4 d3@5 [a3,d4,f#4]@9, ~@31 d3@79 ~@18]/4", // G A D
  B: "[~ f#2@5 f#2@5 [a3,c#4,f#4]@10 g2@5 g2@5 [b3,d4,g4]@10 a2@5 a2@4 [c#4,e4,a4]@10 d3@4]/2", // F#m G A
  C: "[~ d3@5 [a3,d4,f#4]@10 f#2@5 f#2@5 [a3,c#4,f#4]@10 g2@5 g2@5 [b3,d4,g4]@9 a2@5 a2@4]/2", // D F#m G
  D: "[~ [c#4,e4,a4]@10 g2@5 g2@5 [b3,d4,g4]@10 g2@5 g2@5 [b3,d4,g4]@9 a#2@5 a#2@5 [a#3,d4,f#4]@10 a#2@5 a#2@5 [a#3,d4,f#4]@10 b2@5 b2@5 [b3,d4,f#4]@10 b2@4 b2@5 [b3,d4,f#4]@9, ~@11 [b3,d4,g4]@10 ~@10 [b3,d4,g4]@10 ~@9 [a#3,d4,f#4]@10 ~@10 [a#3,d4,f#4]@10 ~@10 [b3,d4,f#4]@10 ~@10 [b3,d4,f#4]@9 ~@9]/4", // A G A#aug Bm G A#aug Bm
  E: "[~ e2@5 e2@5 [b3,d4,f#4]@10 e2@5 e2@5 [b3,d4,f#4]@10 g2@5 g2@4 [b3,d4,g4]@10 d3@5 d3@5 [a3,d4,f#4]@10 e2@5 e2@5 [g3,b3,e4]@10 e2@5 e2@5 [g3,b3,e4]@9 a2@5 a2@4, ~ [b3,d4,f#4]@10 ~@10 [b3,d4,f#4]@10 ~@10 [b3,d4,g4]@9 ~@10 [a3,d4,f#4]@10 ~@10 [g3,b3,e4]@10 ~@10 [g3,b3,e4]@10 ~@9 [g3,c#4,e4]@9]/4", // Bm G D Em Bm G D Em …
  F: "[~ [g3,c#4,e4]@10 a2@5 a2@5 [g3,c#4,e4]@10 d3@5 d3@5 [a3,d4,f#4]@9 f#2@5 f#2@5 [a3,c#4,f#4]@10 g2@5 g2@5 [b3,d4,g4]@10 a2@5 a2@5 [c#4,e4,a4]@10 d3@4 d3@5 [a3,d4,f#4]@9, ~@11 [g3,c#4,e4]@10 ~@10 [a3,d4,f#4]@10 ~@9 [a3,c#4,f#4]@10 ~@10 [b3,d4,g4]@10 ~@10 [c#4,e4,a4]@10 ~@10 [a3,d4,f#4]@9 ~@9]/4", // C#dim D F#m G A D C#dim D …
  G: "[~ f#2@5 f#2@5 [a3,c#4,f#4]@10 g2@5 g2@5 [b3,d4,g4]@10 a2@5 a2@4 [c#4,e4,a4]@10 [d3,a3,d4,f#4]@36, ~ [a3,c#4,f#4]@10 ~@10 [b3,d4,g4]@10 ~@10 [c#4,e4,a4]@9 ~@46]/3", // F#m G A D F#m G A
  H: "~@3 a3", I: "~@2 [a3,d4,f#4]!2 ~ [a3,d4,f#4]!3, d3@3 b3@3 ~@2",
  J: "~@2 [c#4,e4,g4]!2 ~ [c#4,e4,g4]!3, e3@3 b3@3 a3@2", K: "~@2 f#5 d5 b4@2 g4@2 b4@2 g4@2 b4@2 d5@2, g2@3 d3@3 d3@2",
  L: "~@2 f#5 d5 a#4@2 f#4@2 a#4@2 f#4@2 a#4@2 d5@2, f#2@3 d3@3 c#3@2",
  M: "~@2 b5 f#5 d5@2 b4@2 d5@2 b4@2 d5@2 f#5@2, b2@3 f#2@3 b2@2",
  N: "~@2 g#5 e5 b4@2 g#4@2 e4@2 g#4@2 b4@2 e5@2, e3@3 b3@3 e3@2",
  O: "~@2 g5 d5 b4@2 g4@2 a4@2 f#4@2 a4@2 d5@2, g3@3 d3@3 d3@2",
  P: "~@2 e5 b4 g4@2 e4@2 g4@2 e4@2 g4@2 b4@2, e3@3 b3@3 e3@2",
  Q: "~@2 a5 e5 c#5@2 a4@2 c#5@2 a4@2 c#5@2 e5@2, a3@3 e4@3 a3@2",
  R: "~@2 f#5 d5 a4@2 f#4@2 a4@2 f#4@2 a4@2 d5@2, d3@3 f#3@3 a3@2",
  S: "~@2 g5 e5 c#5@2 a4@2 a4@2 e4@2 a4@2 c#5@2, e3@3 b3@3 a3@2", T: "d3 [a3,d4,f#4] f#3 [d4,f#4,a4]",
  U: "g3 [b3,d4,g4] a3 [c#4,e4,g4,a4]", V: "[g2,b3,d4,g4] ~@3", W: "[f#2,d4,f#4,a4] ~@3", X: "[b2,b3,d4,f#4] ~@3",
  Y: "[e2,g#3,b3,d4,e4] ~@3", Z: "[g2,b3,d4,g4] ~ [d3,a3,d4,f#4] ~", AA: "[e3,b3,e4,g4] ~@3",
  AB: "[a2,c#4,e4,g4,a4] ~@2 [a2,c#4,e4,a4]", AC: "d3 [a3,d4,f#4] f#3 [a3,d4,f#4]", AD: "g3 [b3,d4,g4] g#3 [b3,d4,g#4]",
  AE: "[a3,c#4,e4,g4,a4] [a3,c#4,e4,g4,a4]@2 [a3,c#4,e4,g4,a4]@3 ~@2", AF: "~@3 [d3,d4,f#4,a4,b4]",
  AG: "~@2 [d4,a#4] [d4,f#4,b4] ~@4", AH: "~@4 c#5@4 d5@2 f#5@3 a5@2 d6@4 b5@4 ~@3 a5@4 ~@2",
  AI: "[~@2 g5@7 a5@3 e5 ~ f#5@3 d5@4 b4@4 a4@3 d3@8 ~@4 [f#4,a4,b4,d5]@3 ~@4 [f#4,a4,b4,d5]@4 ~@7 [g2,g4,b4,d5]@6, ~@28 b4@4 ~@11 f#2@8 ~@13]/2", // Bm7 G
  AJ: "~@9 [a2,e4,g4,a4,d5]@11 ~ [d3,f#4,a4,d5]@4 ~@7", // Asus4 D
  AK: "~@8 [c#5,f#5,a5]@2 [c#5,f#5,a5]@3 ~@2 [c#5,f#5,a5]@4 ~@4 [b4,d5,g5,a5]@4 ~@5, ~@8 f#2@8 ~@7 g2@8 ~", // F#m G
  AL: "[~@2 [c#5,d5,g5,a5]@4 ~@3 [c#5,d5,g5,a5]@4 ~@23 d3@8 ~@7 [a#2,a#3,d4,f#4]@13, ~@6 g2@8 ~@7 [g3,b3,d4]@30 ~@13]/2", // Dsus4 A#aug G
  AM: "[~@2 [f#2,a#3,d4,f#4]@4 [a2,a#3,d4,f#4]@7 b2@11 ~@12 [a3,d4,f#4]@7 [e2,g#3,d4,f#4]@30 ~@4 [b3,d4,g4]@11 ~@4 d3@8 ~@7 [g3,b3,e4]@15 ~@4 [g3,b3,e4]@8 ~@3 a3@8 g3@7 f#3@8 e3@8 d3@8 ~@3 [f#4,a4,b4,d5]@4 ~@3 [f#4,a4,b4,d5]@4 ~@2, ~@13 [b3,d4,f#4]@23 ~@41 g3@8 ~@3 [a3,d4,f#4]@15 ~@4 e3@8 ~@7 b2@8 ~@7 [c#4,e4,g4,a4]@30 ~@25, ~@32 f#2@8 ~@143 f#2@8 ~]/6", // F#aug D E7 G Em Bm7 Bm D …
  AN: "~@6 [g4,b4,d5]@4 ~@11 [a2,e4,g4,a4,d5]@11, ~@3 g2@4 ~@9", // G Asus4
  AO: "[d3,f#4,a4,d5]@4 ~@15 [c#5,f#5,a5]@2 [c#5,f#5,a5]@3 ~@2 [c#5,f#5,a5]@4 ~@2, ~@19 f#2@8 ~@5", // D F#m
  AP: "~@2 [b4,d5,g5,a5]@4 ~@7 [c#5,d5,g5,a5]@4 ~@4 [c#5,d5,g5,a5]@4 ~@7, ~@2 g2@8 ~@7 g2@8 ~@7", // G Dsus4
  AQ: "[~@15 d3@8 ~@7 [a#2,a#3,d4,f#4]@15 ~ f#2@3 [a2,a#3,d4,f#4]@7 b2@11 ~@12 [a3,d4,f#4]@7 [e2,g#3,d4,f#4]@30 ~@4 [b3,d4,g4]@11 ~@5 d3@8 ~@7 [g3,b3,e4]@15 ~@3 [g3,b3,e4]@8 ~@4 a3@7 g3@8 f#3@7 e3@8 [d3,a4,d5,f#5]@8 ~@5, [g3,b3,d4]@30 ~@15 [a#3,d4,f#4]@4 ~@7 [b3,d4,f#4]@23 ~@41 g3@8 ~@4 [a3,d4,f#4]@15 ~@4 e3@8 ~@7 b2@8 ~@7 [c#4,e4,g4,a4]@30 ~@13, ~@19 f#2@2 ~@35]/7", // A#aug D E7 G Em D G A#aug …
  AR: "~@2 [a4,c#5]@3 ~ [c#5,f#5]@4 ~@7 g2@8 ~@3 c#5 c#5@3, ~ f#5@4 a4@4 ~@4 [b4,d5,g5]@8 ~@7 [e5,a5]@4, ~ f#2@4 ~@11", // A F#5 G A5
  AS: "[~@4 [e5,a5]@4 ~@7 [a4,d5,f#5]@8 ~@7 [f#2,a4,d5,g5]@4 [a4,d5,f#5]@4 ~@8 g2@7 [b4,d5,g5]@7 ~@4 [c#5,e5,a5]@4 ~@7 [d3,f#4,a4,d5]@8 [f#4,a4,d5]@7 ~ f#2@7 [f#4,a4,c#5]@7 [g2,g4,b4,d5]@8 [g4,b4,d5]@3 ~ [g2,g#4,b4]@11, a2@8 ~@7 d3@4 ~@41 a2@8 ~@60, ~@3 c#5@4 ~@38 [b4,d5,g5]@8 ~@37 [f#4,a4,c#5]@8 ~@18 d5@11 ~]/4", // A5 D G A D F#m G F#m
  AT: "[[g2,g#4,b4,d5]@8 [a2,a4,c#5,e5]@7 [a2,a4,c#5,e5]@8 [a2,a4,c#5,e5]@7 [a2,a4,c#5,e5]@8 a2@3 b2@4 [c#3,a4,c#5,e5]@4 [d3,f#4,a4,b4,d5]@11 [d3,f#4,a4,b4,d5]@30 ~@6, ~@38 [a4,c#5,e5]@7 ~@51]/3", // G A Bm7 A
})).s("gm_piano").gain(0.4)

// chords · acoustic guitar steel · "g"
const acoustic_guitar_steel = note("<~@90 A@2 B C@3 D E@3 F G@3 H I@3 J K@3 L M@3 N O@3 ~>".pickRestart({
  A: "[~@28 [d3,f#3,a3,d4,f#4]@8 [d3,f#3,a3,d4,f#4]@7 [f#2,c#3,e3,a3,c#4,f#4]@8 [f#2,c#3,e3,a3,c#4,f#4]@7 [g2,d3,g3,b3,d4,g4]@6]/2", // D F#m7 G
  B: "~@2 [g2,d3,g3,b3,d4,g4]@7 [a2,e3,g3,c#4,g4]@8 [a2,e3,g3,c#4,g4]@7 [d3,f#3,a3,d4,f#4]@8", // G A7 D
  C: "[[d3,f#3,a3,d4,f#4]@8 [f#2,c#3,e3,a3,c#4,f#4]@7 [f#2,c#3,e3,a3,c#4,f#4]@8 [g2,d3,g3,b3,d4,g4]@7 [g2,d3,g3,b3,d4,g4]@8 [a2,e3,g3,c#4,g4]@7 [a2,e3,g3,c#4,g4]@8 [g3,b3,e4,g4]@7 [g3,b3,e4,g4]@8 [g3,b3,e4,g4]@7 [g3,b3,e4,g4]@8 [f#3,a#3,d4,f#4]@7 [f#3,a#3,d4,f#4]@6]/3", // D F#m7 G A7 Em F#aug
  D: "~@2 [f#3,a#3,d4,f#4]@7 [f#3,a#3,d4,f#4]@8 [b2,f#3,a3,d4,f#4]@7 [b2,f#3,a3,d4,f#4]@8", // F#aug Bm7
  E: "[[b2,f#3,a3,d4,f#4]@8 [b2,f#3,a3,d4,f#4]@7 [b2,f#3,b3,d4,f#4]@8 [b2,f#3,b3,d4,f#4]@7 [b2,f#3,b3,d4,f#4]@8 [b2,f#3,b3,d4,f#4]@7 [g2,d3,g3,b3,d4,g4]@8 [g2,d3,g3,b3,d4,g4]@7 [d3,a3,d4,f#4]@8 [d3,a3,d4,f#4]@7 [e2,b2,d3,g3,b3,e4]@8 [e2,b2,d3,g3,b3,e4]@7 [e2,b2,d3,g3,b3,e4]@6]/3", // Bm7 Bm G D Em7
  F: "~@2 [e2,b2,d3,g3,b3,e4]@7 [a2,e3,g3,c#4,e4]@8 [a2,e3,g3,c#4,e4]@7 [a2,e3,g3,c#4,e4]@8", // Em7 A7
  G: "[[a2,e3,g3,c#4,e4]@8 [d3,f#3,a3,d4,f#4]@7 [d3,f#3,a3,d4,f#4]@8 [f#2,c#3,e3,a3,c#4,f#4]@7 [f#2,c#3,e3,a3,c#4,f#4]@8 [g2,d3,g3,b3,d4,g4]@7 [g2,d3,g3,b3,d4,g4]@8 [a2,e3,g3,c#4,g4]@7 [a2,e3,g3,c#4,g4]@8 [d3,f#3,a3,d4,f#4]@7 [d3,f#3,a3,d4,f#4]@8 [f#2,c#3,e3,a3,c#4,f#4]@7 [f#2,c#3,e3,a3,c#4,f#4]@6]/3", // A7 D F#m7 G A7 D F#m7
  H: "~@2 [g2,d3,g3,b3,d4,g4]@7 [g2,d3,g3,b3,d4,g4]@8 [a2,e3,g3,c#4,g4]@7 [a2,e3,g3,c#4,g4]@8", // G A7
  I: "[[g3,b3,e4,g4]@8 [g3,b3,e4,g4]@7 [g3,b3,e4,g4]@8 [g3,b3,e4,g4]@7 [f#3,a#3,d4,f#4]@8 [f#3,a#3,d4,f#4]@7 [f#3,a#3,d4,f#4]@8 [f#3,a#3,d4,f#4]@7 [b2,f#3,a3,d4,f#4]@8 [b2,f#3,a3,d4,f#4]@7 [b2,f#3,a3,d4,f#4]@8 [b2,f#3,a3,d4,f#4]@7 [b2,f#3,b3,d4,f#4]@6]/3", // Em F#aug Bm7 Bm
  J: "~@2 [b2,f#3,b3,d4,f#4]@7 [b2,f#3,b3,d4,f#4]@8 [b2,f#3,b3,d4,f#4]@7 [g2,d3,g3,b3,d4,g4]@8", // Bm G
  K: "[[g2,d3,g3,b3,d4,g4]@8 [d3,a3,d4,f#4]@7 [d3,a3,d4,f#4]@8 [e2,b2,d3,g3,b3,e4]@7 [e2,b2,d3,g3,b3,e4]@8 [e2,b2,d3,g3,b3,e4]@7 [e2,b2,d3,g3,b3,e4]@8 [a2,e3,g3,c#4,e4]@7 [a2,e3,g3,c#4,e4]@8 [a2,e3,g3,c#4,e4]@7 [a2,e3,g3,c#4,e4]@8 [d3,f#3,a3,d4,f#4]@7 [d3,f#3,a3,d4,f#4]@6]/3", // G D Em7 A7 D
  L: "~@2 [f#2,c#3,e3,a3,c#4,f#4]@7 [f#2,c#3,e3,a3,c#4,f#4]@8 [g2,d3,g3,b3,d4,g4]@7 [g2,d3,g3,b3,d4,g4]@8", // F#m7 G
  M: "[[a2,e3,g3,c#4,g4]@8 [a2,e3,g3,c#4,g4]@7 [d3,f#3,a3,d4,f#4]@8 [d3,f#3,a3,d4,f#4]@7 [f#2,c#3,e3,a3,c#4,f#4]@8 [f#2,c#3,e3,a3,c#4,f#4]@7 [g2,d3,g3,b3,d4,g4]@8 [g2,d3,g3,b3,d4,g4]@7 [a2,e3,g3,c#4,g4]@8 [a2,e3,g3,c#4,g4]@7 [d3,a3,d4,f#4]@8 [d3,a3,d4,f#4]@7 [f#2,c#3,e3,a3,c#4,f#4]@6]/3", // A7 D F#m7 G A7 D F#m7
  N: "~@2 [f#2,c#3,e3,a3,c#4,f#4]@7 [g2,b2,d3,g3,d4,g4]@8 [g2,b2,d3,g3,d4,g4]@7 [f3,b3,d4,g#4]@8", // F#m7 G Fdim
  O: "[[f3,b3,d4,g#4]@8 [a2,e3,g3,c#4,e4,a4]@7 [a2,e3,g3,c#4,e4,a4]@8 [a2,e3,g3,c#4,e4,a4]@7 [a2,e3,g3,c#4,e4,a4]@8 [a2,e3,g3,c#4,e4,a4]@3 [a2,e3,g3,c#4,e4,a4]@4 [a2,e3,g3,c#4,e4,a4]@4 [a3,d4,f#4,b4]@11 [a3,d4,f#4,b4]@30 ~@6]/3", // Fdim A7 Bm7
})).s("gm_acoustic_guitar_steel").gain(0.14)

// other · tenor sax
const tenor_sax = note("<~@111 A@2 B@2 C@2 D@4>".pickRestart({
  A: "[~@19 d4@4 e4@3 f#4@4 a4@4 f#4@4 f#4@7 f#4@19]/2",
  B: "[e4@8 ~@7 d4@4 e4@4 f#4@3 a4@4 f#4@4 f#4@7 f#4@8 e4@4 f#4@4 e4@4 ~@3]/2",
  C: "[~@11 f#4@4 e5@4 ~@4 d5@4 ~@3 b4@4 ~@7 f5@4 e5@4 d5@4 b4@4 f5@3 e5@4]/2",
  D: "[d5@4 b4@4 f5@3 e5@4 d5@4 b4@4 f5@3 e5@4 d5@4 b4@4 d5@3 b4@4 b4@4 b4@11 b4@38 ~@30]/4",
})).s("gm_tenor_sax").gain(0.4)

// bass · electric bass finger · "b"
const bass = note(`<
  ~@3 A B C@2 D E@2 F@2 G@2 H@2 I@2 J@2 K L@2 ~@67 M@2 N O P Q R S@3 T U V W X Y@3 Z AA AB@2 AC@3 AD AE AF AG@2 ~
>`.pickRestart({
  A: "~@7 d2@5 ~@4", B: "~ f#1@10 ~@10 g1@10 ~", C: "[~@9 a1@5 a1@4 a1@5 ~@5 d2@10 ~@10 f#1@10 ~@6]/2",
  D: "~@4 g1@10 ~@9 a1@5 a1@4", E: "[~ a1@5 a1@5 g1@5 g1@5 g1@5 g1@5 g1@5 g1@5 g1@5 g1@4 a#1@5 a#1@5 a#1@4]/2",
  F: "[~ a#1@5 a#1@5 a#1@5 a#1@5 a#1@5 b1@5 b1@5 b1@5 b1@5 b1@4 b1@5 b1@5 b1@4]/2",
  G: "[~ e1@5 e1@5 d2@5 d2@5 c#2@5 c#2@5 b1@5 a1@5 g1@5 b1@4 d2@5 b1@5 d2@4]/2",
  H: "[~ a1@5 f#1@5 a1@5 e1@5 e1@5 g1@5 a1@5 e1@5 e1@5 g1@4 e1@5 a1@5 a1@4]/2",
  I: "[~ a1@5 a1@5 a1@5 g1@5 f#1@5 e1@5 d3@10 ~@9 f#2@10 ~@4]/2", J: "[~@6 g2@10 ~@10 a2@5 a2@5 a2@5 ~@5 d3@10 ~@8]/2",
  K: "~ f#2@10 ~@10 g2@10 ~", L: "[~@9 a2@5 a2@4 a2@5 ~@5 d3@20 ~@16]/2", M: "[~@28 d2@8 ~@7 f#2@8 ~@7 g2@6]/2",
  N: "~@9 a2@8 ~@7 d2@8", O: "~@8 f#2@8 ~@7 g2@8 ~", P: "~@2 a2@7 a2@4 a2@8 g2@8 ~@3", Q: "~@4 d2@8 ~@7 a#2@8 ~@5",
  R: "~@2 f#2@4 b2@11 b2@8 ~@7", S: "[f#2@8 ~@7 e2@8 e2@7 e2@8 e2@7 g1@8 ~@7 d2@8 ~@7 e1@8 ~@7 e1@6]/3",
  T: "~@9 a1@8 g1@7 f#1@8", U: "e1@8 d2@8 ~@7 f#2@8 ~", V: "~@6 g2@8 ~@7 a2@8 ~@3", W: "~@4 d2@8 ~@7 f#2@8 ~@5",
  X: "~@2 g2@8 ~@3 a2@8 a2@3 a2@8", Y: "[g2@8 ~@7 d2@8 ~@7 a#2@8 ~@7 f#2@4 b2@11 b2@8 ~@7 f#2@8 ~@7 e2@6]/3",
  Z: "~@2 e2@7 e2@8 e2@7 g1@8", AA: "~@8 d2@8 ~@7 e1@8 ~", AB: "[~@6 e1@8 ~@7 a1@7 g1@8 f#1@7 e1@8 d2@8 ~@5]/2",
  AC: "[~@2 f#2@8 ~@7 g2@8 ~@3 a2@8 a2@3 a2@8 d2@8 ~@7 f#2@8 ~@7 g2@8 ~@3 a2@8]/3", AD: "a2@4 a2@7 d2@8 d2@7 f#1@6",
  AE: "~@2 f#1@7 g1@8 g1@7 g#1@8", AF: "g#1@8 a1@3 a1@4 a1@4 a1@13", AG: "[~@6 a1@3 b1@4 c#2@4 d2@11 d2@30 ~@6]/2",
})).s("gm_electric_bass_finger").gain(0.25)

// bass · electric bass finger · "b" · soft notes
const bass_soft = note("<A@2 B@2 ~@117>".pickRestart({
  A: "[~@31 a3@5 a3@5 a3@5 a3@4 a3@5 a3@5 a3@4]/2", B: "[~ a3@5 a3@5 a3@5 a3@5 a3@5 a3@2 a3@2 ~ a3@5 a3@5 a3@5 ~@18]/2",
})).s("gm_electric_bass_finger").gain(0.16)

// other · blown bottle · "cuckow"
const blown_bottle = note(`<
  ~@68
  [a5 f#5 ~@6]
  ~@6
  [a5 f#5 a5 f#5 a5 f#5 a5 f#5]
  [a5 f#5 ~@6]
  ~@7
  [~@16 a5@3 f#5@2 a5@3 f#5@8]
  ~@36
>`).s("gm_blown_bottle").gain(0.25)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@3 A B C D E F G H I B C D E F G H I B C ~@68 J K L M N O P Q R K L S T U V Q R K L M N O P Q R W L S X ~ Y
>`.pickRestart({
  A: "~@23 x ~@8", B: "~@11 x ~@19 x", C: "~@9 x ~@6", D: "~@3 x ~@9 x ~@2", E: "~@7 x ~@8", F: "~ x ~@19 x ~@10",
  G: "~@9 x ~@18 x ~@3", H: "~ x", I: "~@4 x ~@18 x ~@8", J: "~@17 x ~@2 x ~@4 x ~@6", K: "~@4 x ~@14 x ~@12",
  L: "~@2 x ~@14 x ~@14", M: "x ~@14 x ~@15 x", N: "~@13 x ~@15 x ~@2", O: "~@11 x ~@15 x ~@4", P: "~@9 x ~@15 x ~@6",
  Q: "~@8 x ~@14 x ~@8", R: "~@6 x ~@14 x ~@10", S: "x ~@14 x ~@14 x ~", T: "~@7 x ~@6 x ~", U: "~@6 x ~@6 x ~@2",
  V: "~@5 x ~@6 x ~@3", W: "~ x ~@7 x ~@9 x ~@12", X: "~@17 x ~@14", Y: "x",
})).gain(0.25)

// drums · low tom
const low_tom = s("lt").struct("<~@118 [~@6 x ~@2 x ~@22] ~ [~ x ~@14]>").gain(0.25)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C D E F G H I J K D E F G H I J K D E F ~@69 L M N O P Q R S T U N O P Q V W L M N O P Q X Y Z U N ~@3
>`.pickRestart({
  A: "~@31 x", B: "~@4 x ~@4 x ~@4 x ~@3 x ~@4 x ~@4 x ~@3", C: "~ x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x ~@4 x",
  D: "~@4 x ~@4 x ~@8 x ~@4 x ~@4 x ~@3", E: "~@6 x ~@4 x ~@4 x ~@9 x ~@4 x", F: "~@4 x ~@9 x ~@3 x ~@4 x ~@8",
  G: "~ x ~@4 x ~@4 x ~@9 x ~@4 x ~@4 x", H: "~@9 x ~@4 x ~@3 x ~@9 x ~@3", I: "~ x ~@4 x ~@9 x ~@4 x ~@4 x ~@5",
  J: "~@4 x ~@4 x ~@4 x ~@8 x ~@4 x ~@3", K: "~ x ~@9 x ~@4 x ~@4 x ~@9 x", L: "~@7 x ~@15 x ~@8",
  M: "~@5 x ~@15 x ~@10", N: "~@4 x ~@14 x ~@12", O: "~@2 x ~@14 x ~@14", P: "x ~@14 x ~@14 x ~",
  Q: "~@13 x ~@14 x ~@3", R: "~@11 x ~@14 x ~@5", S: "~@5 x ~@6 x ~@3", T: "~@4 x ~@6 x ~@4", U: "~@6 x ~@14 x ~@10",
  V: "~@11 x ~@15 x ~@4", W: "~@9 x ~@15 x ~@6", X: "~@4 x ~@8 x ~@2", Y: "~@9 x ~@14 x ~@3 x ~@2 x",
  Z: "~@4 x ~ x ~@16 x ~@8",
})).gain(0.25)

// drums · open hat
const open_hat = s("oh").struct("<~@90 A B C D E F G H I B C D E F G H J B C D E F G H K L M N ~@3>".pickRestart({
  A: "~@7 x", B: "~@12 x ~@14 x ~@4", C: "~@10 x ~@14 x ~@6", D: "~@8 x ~@14 x ~@8", E: "~@6 x ~@14 x ~@10",
  F: "~@4 x ~@14 x ~@12", G: "~@2 x ~@14 x ~@14", H: "x ~@14 x ~@14 x ~", I: "~@13 x ~@15 x ~@2", J: "~@7 x ~@6 x ~",
  K: "~@13 x ~@18", L: "~@11 x ~@14 x ~@5", M: "~@9 x ~@14 x ~@7", N: "~@8 x ~@14 x ~@6 x ~",
})).gain(0.25)

// drums · mid tom
const mid_tom = s("mt").struct("<~@118 [~@13 x ~@18] [~@15 x] ~>").gain(0.25)

// drums · crash
const crash = s("cr").struct("<~@21 [~@7 x] ~@97 [~@13 x ~@2] ~>").gain(0.25)

// drums · congas
const congas = s("conga:18").struct("<~@22 A@25 ~ A@19 B C@4 D@2 E@11 ~@2 F G ~@32>".pickRestart({
  A: "~@6 x!2", B: "~@5 x!2 ~", C: "~@2 x!2 ~ x ~@2", D: "x!2", E: "~@3 x ~@2 x!2", F: "~@3 x!2 ~ x ~", G: "~@3 x ~@4",
})).gain(0.81)

// drums · congas
const congas_2 = s("conga:33").struct("<~@22 A B@24 C B@19 D E@4 F G H@11 I@2 H J ~@32>".pickRestart({
  A: "~@4 x!2 ~@2", B: "x ~ x!3 ~ x ~ x ~ x ~@5", C: "x!3 ~@5", D: "~@4 x ~@2 x", E: "x ~@5 x!2", F: "~ x ~@2",
  G: "~ x ~ x", H: "x ~ x ~@2 x ~@2", I: "x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2",
  J: "x!2 ~@2",
})).gain(0.81)

stack(
  piano, acoustic_guitar_steel, tenor_sax, bass, bass_soft, blown_bottle, kick, snare, low_tom, hihat, open_hat,
  mid_tom, crash, congas, congas_2
)

More by The Beatles