Strudelify
Please Mister Postman cover art

1963 · With The Beatles

Please Mister Postman

The Beatles

KeyA majorTempo129 bpm
0:00/0:00
// Please Mister Postman — The Beatles
// 129 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(129/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, A@4 for four bars: edit a riff to change every repeat.

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@13 A@4 B@2 C@2 D@2 E@2 F@2 G@2 ~@8 H@2 I@5 J K@2 L@2 F@2 M@2 ~@8 N@2 O@2 P@2 Q R S@2 E@2 T@2 Q R S@2 L@2 U@2 Q R V
  W@2
>`.pickRestart({
  A: "[[a3,c#4,e4]@31 [a3,c#4,f#4]@31 ~@2]/4", B: "[[d4,f#4], a3@15 ~]/2", C: "[[g#3,b3]@29 ~@3, e4@31 ~]/2",
  D: "[[a3,c#4,a4]@6 [a4,c#5] [g#4,b4], e4@17 ~@15]/2", E: "[[c#4,f#4,a4]@27 ~ [e4,g#4]@4]/2",
  F: "[[a3,d4,f#4]@15 ~]/2", G: "[[b3,e4,g#4]@25 ~@7]/2", H: "[[a3,c#4,e4,a4]@31 ~]/2",
  I: "[c#4@16 d4@23 ~, [f#4,a4]@79 ~, f#3 ~@4]/5", J: "[b3,e4], [g#4,b4]@7 ~", K: "[[e4,a4,c#5]@7 [g#4,b4]]/2",
  L: "[[c#4,f#4,a4]@7 [e4,g#4]]/2", M: "[[b3,e4,g#4]@15 ~]/2",
  N: "[[a4,c#5]@23 ~ [a4,c#5]@4 [g#4,b4]@4, e4@3 ~, c#4@3 ~@13]/2", // A G#m
  O: "[[c#4,f#4]@23 ~ [f#4,a4]@3 ~ [e4,g#4]@4, a4@21 ~@11]/2", P: "[a3,d4,f#4]/2", Q: "[d4,f#4,a4]@15 ~",
  R: "[e4,g#4,b4]@15 ~", S: "[[a4,c#5]@23 ~ [a4,c#5]@4 [g#4,b4]@4, e4@3 ~]/2", T: "[~ a3@3, [d4,f#4]@31 ~]/2",
  U: "[[d4,f#4]@31 ~]/2", V: "[e4,a4,c#5]@3 ~@3 [f#4,d5]@3 ~ [e4,c#5] ~ [d4,b4]@3 ~",
  W: "[[c#4,e4,a4]@3 ~ [c#4,a4]@8 ~@4]/2", // A F#m
})).s("gm_string_ensemble_1").gain(0.32)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~ A ~ B C D E F G H I J K D L F G M N O P D E Q R M I J S D E F G H I J S D T U G M V W X Y T F Z H I J S D E F G H AA
  AB AC Y T F G H I J AD Y AE F AF H I AG AH Y AI F G M AJ AK AL AM AN@2
>`.pickRestart({
  A: "a1@5 ~@11", B: "f#1@5 ~@11", C: "~@5 c#3 c3 b2, ~@12 c#3 ~@3", D: "a2@5 ~ a2@2 e2@5 ~ e2 ~",
  E: "a2@5 ~ a2@2 e2 ~ e2 ~ a2@2 g#2 ~", F: "f#2@5 ~ f#2@2 c#2@5 ~ c#2@2", G: "f#2@5 ~ f#2@2 c#2 ~ c#2@2 f#2@2 e2@2",
  H: "d2@5 ~ d2@2 a1@5 ~ a1@2", I: "d2@5 ~ d2@2 a1 ~ a1@2 d2@2 d#2 ~", J: "e2@5 ~ e2@2 b1@5 ~ b1@2",
  K: "e2@5 ~ e2@2 e2 ~ e2 ~ f#2@2 g#2@2", L: "a2@5 ~ a2@2 e2 ~ e2 ~ a2@2 g#2@2", M: "d2@5 ~ d2@2 a1 ~ a1@3 ~ a1@2",
  N: "d2 ~ d2@3 ~@3 a1 ~ a1@2 d2@2 d#2 ~, ~@3 d2@2 ~@3", O: "e2@5 ~ e2@2 b1 ~ b1@3 ~ b1@2",
  P: "e2@5 ~ e2 ~ e2 ~ e2 ~ f#2 ~ g#2 ~", Q: "f#2@5 ~ f#2@2 c#2@4 ~@2 c#2 ~", R: "f#2@5 ~ f#2@2 c#2 ~ c#2 ~ f#2@2 e2@2",
  S: "e2@6 b1@2 e2 ~ e2 ~ f#2 ~ g#2 ~", T: "a2@5 ~ a2@2 e2 ~ e2@2 a2@2 g#2 ~", U: "f#2@5 ~ f#2@2 c#2 ~ c#2@3 ~ c#2@2",
  V: "d2 ~ d2@3 ~ d2@2 a1 ~ a1@2 d2@2 d#2 ~", W: "e2@5 ~ e2@2 ~@2 b1@3 ~ b1@2",
  X: "e2 ~ e2@3 ~ e2 ~ e2 ~ e2@2 f#2 ~ g#2 ~", Y: "a2@5 ~ a2@2 e2@5 ~ e2@2", Z: "f#2@6 c#2@2 f#2 ~ f#2@2 e2 ~ e2@2",
  AA: "d2@4 ~@2 d2@2 a1 ~ a1@2 d2@2 d#2@2", AB: "e2 ~@3", AC: "e1@10 e2@2 f#2@2 g#2 ~",
  AD: "e2 ~ e2@3 ~ e2 ~ e2 ~ e2@2 f#2@2 g#2 ~", AE: "a2@6 e2@2 a2 ~ a2@2 g#2@4", AF: "f#2@6 c#2@2 f#2 ~ f#2@2 e2@4",
  AG: "e2@5 ~ e2 ~ e2 ~ e2@3 ~ e2 ~", AH: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2@2 f#2@2 g#2@2",
  AI: "a2@6 e2@2 a2 ~ a2@2 g#2@2 g#2@2", AJ: "d2@5 ~ d2@2 a1 ~ a1@2 d2 ~ d2 ~",
  AK: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~", AL: "e2 ~ e2 ~ e2 ~ b1 ~ e1 ~ e1 ~ e1 ~ e1@2",
  AM: "a1 ~ a1 d2@2 c#2 b1@2", AN: "[a1@3 ~@5 a1@11 ~@13]/2",
})).s("gm_acoustic_bass").gain(0.72)

// other · tenor sax
const tenor_sax = note(`<
  ~ A ~ B C D E F G H I J K L M N G H I O P D E N G H Q O P D E R S H Q T U V W X Y Z AA AB AC AD ~ AE AF AG AH AI P AJ
  AK AL AF AG AH AM AN AO AK AL AF AG AP AQ AR AO AS AL AT AG AH AQ AR AJ AS AL AF AU AV AW AR AX AY@2
>`.pickRestart({
  A: "a3 ~@3", B: "f#3@3 ~@13", C: "~@5 c#4 c4 b3", D: "a3@3 ~@3 a3 ~ e3@3 ~@3 e3@2",
  E: "a3@3 ~@3 a3@2 e3 ~ e3 ~ a3@2 g#3@2", F: "f#3@2 ~@4 f#3@2 c#3@3 ~@3 c#3@2",
  G: "f#3@2 ~@4 f#3 ~ c#3 ~ c#3 ~ f#3@2 e3@2", H: "d3@3 ~@3 d3@2 a2@3 ~@3 a2@2",
  I: "d3@3 ~@3 d3 ~ a2 ~ a2 ~ d3@2 d#3 ~", J: "e3@3 ~@3 e3 ~ b2@3 ~@3 b2@2", K: "e3@3 ~@3 e3 ~ e3 ~ e3@2 f#3 ~ g#3 ~",
  L: "a3@2 ~@4 a3 ~ e3@2 ~@4 e3 ~", M: "a3@2 ~@4 a3 ~ e3 ~ e3 ~ a3@2 g#3@2", N: "f#3@3 ~@3 f#3 ~ c#3@2 ~@4 c#3@2",
  O: "e3@4 ~@2 e3@2 b2@2 ~@4 b2 ~", P: "e3@5 ~ e3 ~ e3 ~ e3@2 f#3 ~ g#3@2", Q: "d3@3 ~@3 d3@2 a2 ~ a2 ~ d3 ~ d#3 ~",
  R: "f#3@3 ~@3 f#3 ~ c#3@3 ~@3 c#3 ~", S: "f#3@3 ~@3 f#3 ~ c#3 ~ c#3 ~ f#3@2 e3@2", T: "e3@3 ~@3 e3@2 b2@3 ~@5",
  U: "~@5 e5 f#5 e5", V: "a5@3 ~ c5@2 a4 ~ b4@2 a4@2 f#4@2 a4@2", W: "c5 ~ a4 c5 c#5 [d5,e5] f#5 ~ a5@5 ~@3",
  X: "c#5@2 e5@2 c#5 ~ b4 ~ c#5@2 b4@2 a4 ~ f#4 ~, ~@8 b4 ~@7", Y: "a4@2 b4@2 c#5 ~ f#4@6 ~@2 a4 ~",
  Z: "b4@2 ~@2 a4@2 b4@2 d5@2 e5@2 f#5 ~ a5 ~", AA: "d6@3 ~ f#5 d5@2 ~", AB: "a5@2 d6@2 a5 ~ f#5 ~ e5@4 d5@3 ~",
  AC: "~@2 g#5 a5 b5 a5 ~ g#5 ~ f#5 e5 ~ d5 c#5 ~ b4", AD: "a4@3 ~@5", AE: "~@8 c#3@4 ~@2 c#3 ~",
  AF: "f#3@5 ~ f#3@2 c#3 ~ c#3 ~ f#3@2 e3@2", AG: "d3@4 ~@2 d3 ~ a2@4 ~@2 a2 ~", AH: "d3@5 ~ d3@2 a2 ~ a2 ~ d3 ~ d#3 ~",
  AI: "e3@2 ~ e3 b2@2 ~ b2", AJ: "a3@2 ~ a3 e3@2 ~ e3", AK: "a3@5 ~ a3@2 e3 ~ e3@2 a3@2 g#3@2",
  AL: "f#3@5 ~ f#3@2 c#3@4 ~@2 c#3 ~", AM: "e3 ~@3", AN: "e3@7 ~", AO: "a3@4 ~@2 a3 ~ e3@4 ~@2 e3 ~",
  AP: "d3@3 ~@3 d3 ~ a2@4 ~@2 d3 ~", AQ: "e3@4 ~@2 e3 ~ e3 ~ e3 ~ e3 ~ e3 ~",
  AR: "e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3@2 f#3@2 g#3 ~", AS: "a3@4 ~@2 a3@2 e3 ~ e3 ~ a3@2 g#3 ~",
  AT: "f#3@4 ~@2 f#3@2 c#3 ~ c#3 ~ f#3@2 e3 ~", AU: "d3@4 ~@2 d3 ~ d3@4 ~@2 d3 ~",
  AV: "d3 ~ d3 ~@3 d3 ~ d3 ~ d3@3 ~ d3 ~", AW: "e3@5 ~ e3 ~ e3@5 ~ e3 ~", AX: "a3@2 ~@2 a3@2 d4@3 ~ c#4@2 b3@2 ~@2",
  AY: "[a3@3 ~@5 a4@11 ~@13]/2",
})).s("gm_tenor_sax").gain(0.47)

// chords · piano · "A.PIANO 2"
const piano = note(`<
  ~@5 A B C D E F G H ~@16 A I C J E F G K ~@16 A B C J L M G N O@2 P@2 Q@2 R S T@2 U@2 V@3 W T@2 P@2 X@3 Y@2 ~@2
>`.pickRestart({
  A: "~@4 [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4]@5 ~", // A
  B: "[a3,c#4,e4]@3 ~ [a3,c#4,f#4] ~ [a3,c#4,e4]@7 ~@3", // A F#m A
  C: "~@2 [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~", // F#m
  D: "[a3,c#4,f#4] ~ [a3,c#4,g#4]@3 ~ [a3,c#4,f#4]@7 ~@3", // F#m Amaj7 F#m
  E: "~@2 [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~", // D
  F: "[a3,d4,f#4] ~ [a3,d4,g#4]@3 ~ [a3,d4,f#4]@8 ~@2", // D
  G: "~@4 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2 [b3,e4,g#4] ~ [b3,e4,g#4] ~", // E
  H: "[b3,e4,g#4] ~ [b3,e4,a4]@3 ~ [b3,e4,g#4]@8 ~@2", I: "[a3,c#4,e4]@3 ~ [a3,c#4,f#4] ~ [a3,c#4,e4]@8 ~@2",
  J: "[a3,c#4,f#4] ~ [a3,c#4,g#4]@3 ~ [a3,c#4,f#4]@9 ~", K: "[b3,e4,g#4] ~ [b3,e4,a4]@3 ~ [b3,e4,g#4]@7 ~@3",
  L: "~@2 [a3,d4,f#4] ~ [a3,d4,f#4] ~@3 [a3,d4,f#4] ~ [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] ~", // D
  M: "[a3,d4,f#4] ~ [a3,d4,g#4]@3 ~ [a3,d4,f#4]@7 ~@3", N: "[b3,e4,g#4] ~ [b3,e4,a4]@2 ~@2 [b3,e4,g#4]@6 ~@4",
  O: "[[c#4,e4,a4]@23 ~ [e4,c#5]@4 b4@4, ~@14 d4 ~, ~@28 c#5 ~@3]/2", P: "[[c#4,f#4,a4]@15 ~]/2",
  Q: "[[d4,f#4,a4]@31 ~]/2", R: "[d4,f#4,a4]@15 ~", S: "[g#4,b4]@15 ~, e4@13 ~@3",
  T: "[[c#4,e4,a4]@24 [a4,c#5]@4 [g#4,b4]@3 ~]/2", U: "[[c#4,f#4,a4]@31 ~]/2", V: "[[d4,f#4,a4]@47 ~]/3",
  W: "[e4,g#4,b4]@15 ~", X: "[~@16 d5@31 ~, [d4,f#4,a4]@31 ~@17]/3",
  Y: "[[g#4,e5]@14 ~@2 [a3,a4,c#5]@3 ~@13, e4@19 ~@13, b4 ~]/2", // C#m A
})).s("gm_piano").gain(0.52)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A ~ B ~ C@2 D@2 E F G@2 C H D@2 F@2 I G J K L D M N G@2 H@2 D@2 F@2 G@2 C@2 D L N@2 F G C@2 D@2 F O P G C@2 D@2 Q R
  S T C U D@2 F@3 V C@2 D@2 F@3 G C@2 D W F@2 R X Y Z@2
>`.pickRestart({
  A: "[a3,e4,a4,c#5,e5]@3 ~@13", B: "[c#4,f#4,a4,c#5,f#5]@3 ~@13",
  C: "~@4 [a3,e4,a4,c#5,e5] ~ [a3,e4,a4,c#5,e5]@2 ~@4 [a3,e4,a4,c#5,e5]@2 ~@2", // A
  D: "~@4 [c#4,f#4,a4,c#5,f#5] ~ [c#4,f#4,a4,c#5,f#5]@2 ~@4 [c#4,f#4,a4,c#5,f#5]@2 ~@2", // F#m
  E: "~@4 [d4,a4,d5,f#5] ~ [d4,e4,a4,d5,f#5]@2 ~@4 [a3,d4,a4,d5,f#5]@3 ~", // D
  F: "~@4 [a3,d4,a4,d5,f#5] ~ [a3,d4,a4,d5,f#5]@2 ~@4 [a3,d4,a4,d5,f#5]@2 ~@2", // D
  G: "~@4 [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5]@2 ~@4 [b3,e4,g#4,b4,e5]@3 ~", // E
  H: "~@4 [a3,e4,a4,c#5,e5] ~ [a3,e4,a4,c#5,e5]@2 ~@4 [a3,e4,a4,c#5,e5]@3 ~", // A
  I: "~@4 [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5] ~@5 [b3,e4,g#4,b4,e5]@4", // E
  J: "~@4 [a3,d4,e4,a4,c#5,e5] ~ [a3,e4,a4,c#5,e5] ~@5 [a3,e4,a4,c#5,e5]@2 ~@2", // A
  K: "~@2 e4 ~ [a3,e4,a4,c#5,e5] ~ [a3,e4,a4,c#5,e5]@2 ~@4 [a3,e4,a4,c#5,e5]@3 ~", // A
  L: "~@4 [c#4,f#4,a4,c#5,f#5] ~ [c#4,f#4,a4,c#5,f#5]@2 ~@4 [c#4,f#4,a4,c#5,f#5]@3 ~", // F#m
  M: "~@4 [d4,a4,d5,f#5] ~ [d4,a4,d5,f#5]@2 ~@4 [a3,d4,a4,d5,f#5]@3 ~", // D
  N: "~@4 [a3,d4,a4,d5,f#5] ~ [a3,d4,a4,d5,f#5]@2 ~@4 [a3,d4,a4,d5,f#5]@3 ~", // D
  O: "~@4 [a3,d4,a4,d5,f#5] ~ [a3,d4,a4,d5,f#5] ~@5 [a3,d4,a4,d5,f#5]@3 ~", // D
  P: "~@4 [b3,c#4,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5]@2 ~@4 [b3,e4,g#4,b4,e5]@3 ~", // C#m7 E
  Q: "~@4 [d4,a4,d5,f#5] ~ [d4,a4,d5,f#5] ~@5 [a3,d4,a4,d5,f#5]@2 ~@2", // D
  R: "~@4 [a3,d4,a4,d5,f#5] ~ [a3,d4,a4,d5,f#5] ~@5 [a3,d4,a4,d5,f#5] ~@3", S: "[b3,e4,g#4,b4,e5]@7 ~@9",
  T: "[b3,e4,g#4,b4,e5]@15 ~", U: "~@4 [a3,e4,a4,c#5,e5] ~ [a3,e4,a4,c#5,e5] ~@5 [a3,e4,a4,c#5,e5]@2 ~@2",
  V: "~@4 [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5]@2 ~@4 [b3,e4,g#4,b4,e5]@2 ~@2", // E
  W: "~@2 f#4 ~ [c#4,f#4,a4,c#5,f#5] ~ [c#4,f#4,a4,c#5,f#5] ~@5 [c#4,f#4,a4,c#5,f#5]@2 ~@2", // F#m
  X: "~@4 [b3,e4,g#4,b4,e5] ~ [b3,e4,g#4,b4,e5]@2 ~@4 [b3,c#4,e4,g#4,b4,e5] ~@3", // E C#m7
  Y: "[a3,e4,a4,c#5,e5]@2 ~@2 [a3,e4,a4,c#5,e5] ~ [d4,a4,d5,f#5]@2 ~@2 [c#4,a4,e5] ~ [b3,a4,d5]@2 ~@2", // A D A Bm7
  Z: "[[a3,e4,a4,c#5]@3 ~@5 [a3,e4,a4,c#5]@14 ~@10]/2", // A
})).s("gm_acoustic_guitar_steel").gain(0.42)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~ A ~ B C D E F@2 G@2 H I J D K F G@2 L M N O P Q R@2 S T N@2 U@2 R@2 S@2 N@2 U@2 R@2 V W N@2 X@2 Y Z AA T N@2 AB U
  V@2 ~@3 AC AD AE AF AG AH@2 AI AC AJ@2 AK@2 ~ AL AM AN AO AP AQ ~ AR@2 AS AT@2
>`.pickRestart({
  A: "[a3,e4,a4] ~@3", B: "[f#3,c#4,f#4]@5 ~@11", C: "~@10 c#5@2 c5@2 b4 ~",
  D: "~@2 a4 c#5 e5@2 a5@2 ~@2 e5 ~ c#5 ~ e5 ~", E: "~@2 a4 c#5 e5 ~ a5@2 ~@2 e5 ~ c#5 ~@3",
  F: "~@2 f#4 a4 c#5 ~ f#5 ~@3 c#5 ~ a4 ~ c#5 ~", G: "~@2 f#4 a4 d5 ~ f#5 ~@3 d5 ~ a4 ~ d5 ~",
  H: "~@2 e4 g#4 b4@2 e5 ~@3 b4 ~ g#4 ~ b4 ~", I: "~@8 b4 c#5 [d#5,e5] ~ f#5@2 e5@2", J: "a5 ~@3",
  K: "~@2 f#4 a4 c#5 ~ f#5@2 ~@2 c#5 ~ a4 ~ c#5 ~", L: "~@2 e4 g#4 b4 ~ e5@2 ~@2 b4 ~ g#4 ~ b4 ~",
  M: "~@2 e4 ~ b4@2 e5@4 b4 ~ g#4@2 b4 ~, ~@3 g#4@3 ~@10", N: "~@2 a4 c#5 e5@2 a5@4 e5@2 c#5@2 e5 ~",
  O: "~@2 a4 c#5 e5@2 a5@3 ~ e5@2 ~@4", P: "~@2 f#4 a4 c#5 ~ f#5@4 c#5 ~ a4 ~ c#5 ~",
  Q: "~@2 f#4 a4 c#5 ~ f#5@4 c#5@2 a4@2 c#5 ~", R: "~@2 f#4 a4 d5@2 f#5@4 d5@2 a4@2 d5 ~",
  S: "~@2 e4 g#4 b4@2 e5@4 b4@2 g#4@2 b4 ~", T: "~@2 e4 g#4 b4@2 e5@4 b4@2 e5@2 ~@2",
  U: "~@2 f#4 a4 c#5@2 f#5@4 c#5@2 a4@2 c#5 ~", V: "~@2 d4 a4 d5@2 f#5@4 d5@2 a4@2 d5 ~",
  W: "~@2 e4 g#4 b4@2 e5@4 b4@2 g#4@2 ~@2", X: "~@2 f#4 c#5 f#5@2 a5@4 f#5@2 c#5@2 f#5 ~",
  Y: "~@2 a4 d5 f#5@2 a5@4 f#5@2 d5 ~ f#5 ~", Z: "~@2 a4 d5 f#5@2 a5@4 f#5@2 d5@2 f#5 ~",
  AA: "~@2 g#4 b4 e5@2 g#5@4 e5@2 b4@2 e5 ~", AB: "~@2 f#4 a4 c#5@2 f#5@4 c#5@2 a4@2 c#5@2",
  AC: "~@2 e5@2 c#6 ~ d5@2 b5 ~@3 a5@4, ~@10 c#5@5 ~", AD: "[c#5,f#5]@7 ~",
  AE: "~@12 a4@3 ~, ~ f#4@5 ~@2, ~@2 a4@3 c#5@2 ~, ~@3 f#5@4 ~", AF: "[a4,d5]@15 ~",
  AG: "~@2 a4 b4 d5 ~ d5@4 b4 ~ d5@2 b4 ~", AH: "[e5@18 ~@8 e6@5 ~, ~@24 g#5@7 ~]/2", AI: "[a5,c#6]",
  AJ: "[~@6 c#5@4 ~@4 f#5@13 ~@5, f#5@12 c#5@15 ~@5, a4@9 ~ a4@17 ~@5]/2",
  AK: "[a4@4 b4@2 ~@2 d5@13 ~@11, d5@3 a4@7 ~@6]/2", AL: "~@2 g#5@2 ~@2 [g#5,e6] ~@2 e6 ~@6, ~@8 [f#5,d6]@7 ~",
  AM: "~@2 c#6@13 ~, e5", AN: "~ e5 c#6 [c5,d5] b5 ~ a5@2, ~@10 c#5@5 ~", AO: "~@2 c#5@11 ~@3, f#5, a4@13 ~@3",
  AP: "~@6 f#5@3 ~ f#5@2 e5@2 d5@2, ~@9 a5@2 ~@5", AQ: "e5 f#5@5 ~@2", AR: "[~@8 e6@7 ~, ~@14 g#5@15 ~@3]/2",
  AS: "[a5,c#6]@4 ~@2 [f#5,d6]@3 ~ [e5,c#6] ~ [d5,b5]@3 ~", AT: "[[c#5,a5]@5 ~@3 [a4,c#5]@14 ~@10]/2",
})).s("gm_electric_guitar_muted").gain(0.33)

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

// drums · snare
const snare = s("sd").struct("<~@5 [~ x ~ x]!54 ~@2 [~ x ~ x]!15 [~@2 x ~@3 x!2] [~ x ~ x]!8 ~@3>").gain(0.56)

// drums · clap
const clap = s("cp").struct("<~ [~@2 x!2 ~@2 x ~]!4 ~@54 [~@2 x!2 ~@2 x ~]!26 ~@3>").gain(0.64)

// drums · low tom
const low_tom = s("lt").struct("<A ~@3 B ~@7 A ~@15 A ~@7 A ~@7 A ~@7 C ~@7 A ~@7 D ~@7 C ~@8 A E ~>".pickRestart({
  A: "~@7 x", B: "~@12 x!3 ~", C: "~@5 x!3", D: "~@14 x!2", E: "~ x",
})).gain(0.72)

// drums · hihat
const hihat = s("hh").struct("<~ [~ x ~ x]!4 [x!8]!54 [~ x ~ x]!2 [x!8]!24 [x ~ x!2 ~ x!2 ~] [x!2] ~>").gain(0.56)

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

// drums · high tom
const high_tom = s("ht").struct("<A ~@3 B ~@7 C ~@15 D ~@7 E ~@7 E ~@7 B ~@7 C ~@7 D ~@7 F ~@8 G H ~>".pickRestart({
  A: "~@10 x!2 ~@4", B: "~ x ~@6", C: "~@2 x!3 ~ x ~ x ~@7", D: "~ x ~ x!2 ~@3", E: "~@6 x!3 ~@7", F: "x!3 ~ x ~@11",
  G: "~@2 x!2 ~@4", H: "~@3 x ~@4",
})).gain(0.8)

// drums · crash
const crash = s("cr").struct("<~ A ~ A ~ A ~@7 A ~@15 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A ~@7 A B ~>".pickRestart({
  A: "x", B: "x!2",
})).gain(0.72)

stack(
  string_ensemble_1, bass, tenor_sax, piano, acoustic_guitar_steel, electric_guitar_muted, kick, snare, clap, low_tom,
  hihat, mid_tom, high_tom, crash
)

More by The Beatles