Strudelify
Get Back cover art

Let It Be

Get Back

The Beatles

KeyD majorTempo125 bpm
0:00/0:00
// Get Back — The Beatles
// 125 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 79 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(125/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 J K E L M N O P Q R S T J U V W I X Y A@2 Z AA A@2 AB@3 AC AD AE AF AG AH AI M E F G H I J K E L M N
  O P Q R S T J U V W I X Y L M N O P Q AJ@4
>`.pickRestart({
  A: "a1!8", B: "a1 ~ a1@2 a1@2 a1 ~ a1 ~ a1@2 a1 ~ a1@2", C: "a1 ~ a1@2 a1@2 a1 ~ a1 ~ a1@2 a1@2 a1 ~",
  D: "a1@2 a1 ~ a1 ~ a1 ~ a1@2 a1@2 a1@2 a1@2", E: "a1@2 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2",
  F: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2 a1 ~", G: "d2@2 d2 ~ d2 ~ d2@2 d2@2 d2@2 d2 ~ d2 ~",
  H: "a1@2 a1@2 a1 ~ a1 ~ a1@2 a1@2 a1 ~ a1 ~", I: "a1@2 a1 ~ a1 ~ a1 ~ a1@2 a1 ~ a1 ~ a1 ~",
  J: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", K: "d2@2 d2 ~ d2@2 d2 ~ d2@2 d2 ~ d2 ~ d2@2",
  L: "a1@2 a1@2 a1@2 a1 ~ a1@2 a1@2 a1 ~ a1@2", M: "a1@2 a1@2 a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~",
  N: "d1@2 d1 ~ d1@2 d1 ~ d1@2 d1 ~ d1@2 d1@2", O: "a1@2 a1@2 a1 ~ a1@2 a1@2 a1@2 a1@4",
  P: "a1@3 ~ a1@2 a1@4 a1@2 a1@2 a1@2", Q: "a1@2 a1@2 a1 ~ a1@3 ~ a1@2 a1 ~ a1@2",
  R: "d1@2 d1 ~ d1@2 d1 ~ d1@2 d1 ~ d1 ~ d1 ~, e1 ~@15", S: "a1@2 a1@2 a1@2 a1 ~ a1 ~ a1 ~ a1@2 a1 ~",
  T: "a1@2 a1 ~ a1 ~ a1@2 a1@2 a1@2 a1@2 a1@2", U: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~", V: "a1!4 g2@2 d2@2",
  W: "a1@2 a1 ~ a1@2 a1 ~ a1@2 a1@2 a1@2 a1 ~", X: "d2@2 d2 ~ d2@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  Y: "a1 ~ a1 ~ a1 ~ a1 ~ a1@2 c2@2 d2@2 e1@2", Z: "d2!8", AA: "a1@2 a1@2 a1 ~ a1@2 a1@2 a1@2 a1 ~ a1@2",
  AB: "[a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ c2@2 d2@34]/3", AC: "a1 ~ a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1@2",
  AD: "a1@2 a1 ~ a1@2 a1@2 a1 ~ a1@2 a1@2 a1@2", AE: "d2@2 d2@2 d2@2 d2 ~ d2@2 d2 ~ d2 ~ d2 ~",
  AF: "a1 ~ a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 c2@2", AG: "a1@2 a1@2 a1@2 a1 ~ a1@2 a1 ~ a1@2 a1@2",
  AH: "a1@2 a1@2 a1@2 a1 ~ a1@2 a1@2 a1 ~ a1 ~", AI: "d2@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  AJ: "[a1 ~ a1@2 a1@2 a1@2 a1@2 a1@2 c2@2 d2@46 ~@4]/4",
})).s("gm_electric_bass_finger").gain(0.51)

// chords · epiano1 · "El. Piano"
const epiano1 = note(`<
  A@2 B C D E@2 F G H@3 I J@3 K L@3 M N@2 O P Q@3 R S@2 T U V@4 W X Y Z AA X AB AC D E@2 F G H@3 I J@3 K L@3 M N@2 O P
  Q@3 I J@3 AD AE@5
>`.pickRestart({
  A: "[a2 a3 a2 a3 a2 a3 a2 a3 a2 a3 a2 ~ a2 a3 a2 a3, ~@10 [g4,g5]@9 ~@3 a3@2 ~@8, ~@23 [g4,g5]@8 ~]/2", // G
  B: "a2@2 a3@2 [a2,a4]@2 a3@2 ~@2 a3 ~ a2@2 a3 [e3,a4], a4@2 ~@2 a2 ~@3, ~@9 a4@2 ~ a4 ~@3", // A A5
  C: "[a2,a4,a5]@2 ~ e3 [a2,a4]@2 a3 e3 [a2,a3,b4,d5,g5]@4 [a2,a3,a4,d5,f#5]@4, d3 ~ a3@2 a5 ~@3 e3 ~@7", // A G D
  D: "~@3 a3 [a2,f#3]@2 ~@2 [a2,e3]@3 a3 [a2,f#3]@2 ~ a3, ~@4 [e4,a4] ~@11", // D A5 D A5
  E: "[[a2,e3]@2 [e4,a4] a3 ~@2 a3 ~ a2@2 a3 ~ [a2,f#3,e4,a4]@2 a3 e4 ~ a3 d4 ~ d3 b3 ~@3 d3@2 ~ [d3,b3]@2 ~@2, ~@4 a2@2 ~@10 d3@2 ~@7 a3 ~@6, ~@5 f#3@2 ~ e3 ~@5 [f#4,c5]@18]/2", // A5 F#m7 G F#dim
  F: "[a2,e3]@2 ~ a3 [f#3,e4,a4] ~@3 [a2,e3]@2 [a3,e4,a4] ~ [a2,f#3]@2 a3 ~, ~@2 a2 ~@5", // A5 F#m7 A5 D
  G: "[a2,e3]@2 a3 ~ [f#3,e4,a4] ~ a3 ~ a2@2 a3 ~ [a2,f#3]@2 a3 ~, ~@4 a2@2 ~@2 e3 ~@7", // A5 F#m7 D
  H: "[[a2,e3]@2 a3 ~ [a2,f#3]@2 a3 ~ [a2,e3]@2 [e4,a4] a3 [a2,f#3]@2 a3 ~ d3@2 a3 ~@2 d3 d4 ~@3 d4 ~ [d3,b3]@2 d4 ~ [a2,e3]@3 a3 [a2,f#3]@2 a3 ~ a2@3 a3 [a2,f#3]@2 a3!2, ~@14 [f#4,c5]@19 ~@3 [e4,a4] ~@11, ~@16 a3 ~@3 b3@2 ~@2 d3@2 ~@22, ~@25 a3@2 ~@21]/3", // A5 D A5 D G A5 D F#dim …
  I: "a2 [a3,e4,a4] [a2,f#4,b4] a3 ~ a3 a2 a3, ~@3 [g4,c5]@5, ~@6 f4 ~@9", // A5 B7 C5
  J: "[a2@2 [e4,a4]@2 [a2,f#4,b4]@2 a3@2 a2@2 a3@2 a2@2 a3 ~ d3@2 d4@2 d3@2 d4@2 d3@2 d4@2 d3@2 d4 ~ a2@2 a3@2 a2@2 a3@2 [g3,b4,d5,g5]@4 [d3,a4,d5,f#5]@4, ~@2 a3 ~ b2 ~ [g4,c5]@30 ~@12, ~@16 e3 ~@31]/3", // A5 B7 G D C5
  K: "a2@2 ~@4 a3@3 ~ a3@2 ~@2 a3@2, ~ [a3,a4] [a2,f#4] [g4,c5]@5, ~@3 e4@2 b4@2 ~@2 a2@2 ~@2 a2@2 ~", // A D C5
  L: "[a2@2 [a3,e4,a4]@2 [a2,f#4,b4]@2 a3@2 a2@2 a3@2 a2@2 a3@2 d3@2 d4@2 d3@2 d4@2 d3@2 d4@2 d3@2 d4 ~ a2@2 a3@2 a2@2 a3@2 a2@2 a3@2 a2@2 a3@2, ~@6 [g4,c5]@41 ~]/3", // A5 B7 C5
  M: "[a2,e3,e4,a4] a3 ~@2 a2@2 ~@2 [a2,a3]@2 ~@2 a2@2 ~@2, ~@4 f#3 ~@7 f#3 ~@3", // A5 A
  N: "[a2@2 a3@2 a2@2 a3 ~ a2@2 a3 ~ [a2,f#4,b4]@2 a3 ~ [d3,e3] ~@3 d3@2 ~@2 [d3,a3]@2 d4 ~ [d3,b3] ~@3, ~@4 f#3 ~@3 e3 ~@5 [g4,c5]@18, ~@20 b3 ~@3 f#3 ~@7]/2", // B7 Dsus2 D5 G C5
  O: "[a2,e3]@2 a3 ~ a2 ~ a3 ~ [g3,b4,d5,g5]@4 [d3,a4,d5,f#5]@4", // A5 G D
  P: "[a2,a3]@2 ~@2 [a2,a3] ~@3 a2@2 ~@2 [f#3,g3] ~@3, ~@8 e3 ~@3 a2@2 ~@2", // A Gmaj7
  Q: "[a2@2 ~@2 [a2,f#3]@2 ~@2 a2@2 [e4,a4]@2 [a2,f#3,f#4,b4]@2 ~@2 d3 a3 ~@3 d4 ~@2 d3 [g3,a3] ~@6 [a2,a3] ~@3 [a2,a3] ~@3 [g3,b4,d5,g5]@4 [d3,a4,d5,f#5]@4, e3 ~@7 e3 ~@5 [g4,c5]@21 ~@13]/3", // D A5 B7 Gsus2 A G D C5
  R: "a2@2 [e4,a4]@2 [a2,a3,f#4,b4]@2 ~@2 a2 ~ a3@2 a2@2 a3 ~, ~@3 [g4,c5]@5", // A5 B7 C5
  S: "[a2@2 [e4,a4]@2 ~ a2 a3 ~@2 a2 a3 ~ a2@2 a3 ~ d3@2 ~@2 d3@2 ~@2 [d3,e4,a4]@4 [d3,g4]@2 [e4,a4] ~, ~@2 a3 ~ [f#4,b4]@2 [g4,c5]@14 b4 ~@11]/2", // A5 Dsus2 G5 A5 B5 C5
  T: "a2 a3 a2@2 [g3,b4,d5,g5]@2 [d3,a4,d5,f#5]@2", // G D
  U: "a2@2 [e4,a4]@2 [a3,f#4,b4]@2 [f4,f#4] a2 ~@2 a2 ~ a3@2 a2 ~, a3 ~@5 [g4,c5]@10", // A5 B7 F#maj7 C5
  V: "[a2 ~ [e4,a4]@2 [f#4,b4]@2 a2@2 ~@2 a2 ~ a3@2 c5@2 a2@2 [g4,c5]@2 [f#4,b4]@2 a3 ~ a2 ~ a3 ~ [e4,a4]@2 ~@2 [g4,g#4] ~@3 f#5@2 g4@4 e5@2 f4 f#4@3 d5@2 e4@4 c5 ~ d4@2 b4@2 ~@2 a4@2, ~@4 a3 ~ g4@12 ~@6 [e4,a4]@4 ~@2 d3@34, ~@3 c5@4 ~@9 a4@3 ~@11 c4@2, ~@6 f4 ~@11 a3 ~ a2 ~@7 a2@4 ~@32]/4", // A5 B5 C5 B5 A5 G#maj7 A5
  W: "~@2 [e6,a6] ~@2 [e6,a6] ~@2 [e6,a6] ~ [e6,a6] ~ [e6,a6] [f6,f#6] [e6,a6] ~", // A5 F#maj7 A5
  X: "~@2 [e6,a6] f#6 ~ [e6,a6] ~ b5 c6 [a5,b5] f#5 ~ [e5,c6]@2 f#5 ~, ~@7 e6@2 ~@7", // A5 Asus2 C
  Y: "~@2 [f#5,c6]@3 a5 [e5,f#5] ~ [d5,a5]@2 [a5,d6] ~ [c5,f#5]@2 [e5,g5,a5]@2, ~@8 d6 ~@3 c6 ~@3", // F#dim Esus2 D5 Cdim A7
  Z: "c#5@2 [g4,e5,g5,a5] ~@13", // A7
  AA: "e6 f#6 [e6,a6] ~ [e6,a6]@2 f#6 [e6,a6] ~ [e6,a6] ~@2 a6 f6 [e6,f#6,a6] ~, ~@6 e6 ~", // A5 F#m7
  AB: "~@2 [f#5,c6]@3 a5 [e5,f#5] ~ [d5,a5]@2 [a5,d6] ~ [c5,f#5,c6]@2 [c#5,e5,g5,a5]@2, ~@8 d6 ~@7", // F#dim Esus2 D5 Cdim A7
  AC: "~@2 [e5,g5,a5] ~@5 [g3,b4,d5,g5]@4 [d3,a4,d5,f#5]@4", // A7 G D
  AD: "a2@2 [a3,e4,a4]@2 [a2,f#4,b4]@2 a3!2 a2@2 ~ a3@2 a2@2 a3, ~@3 [g4,c5]@5", // A5 B7 C5
  AE: "[a2@2 [a3,e4,a4]@2 [a2,f#4,b4]@2 a3@2 a2@2 a3@2 a2@2 a3@2 a2@2 a3@2 a2@2 a3@2 a2@2 a3@2 c3@2 ~@2 g#4!2 ~@2 f#5@2 ~ g4@3 e5@2 ~ [f#4,d5]@32 ~@3, ~@6 [g4,c5]@23 ~ d3@47 ~@3, ~@33 a4@6 ~@6 f4 ~@34]/5", // A5 B7 D C5
})).s("gm_epiano1").gain(0.46)

// chords · electric guitar jazz · "Rhythm Gu"
const electric_guitar_jazz = note(`<
  A B@2 C D B E F G B H I J B E K L M N B O P Q R S T U V W X Y Z AA AB AC AD@2 AE AF AG AH AI AJ@2 AK D B E AL G B H I
  J B E AM AN M N B O P Q R S AO U V W X Y Z AA AB AC AD@2 ~
>`.pickRestart({
  A: "~ [a3,e4] ~ [a3,e4] ~ [a3,e4,a4] ~ [a3,e4,a4]", B: "~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4]",
  C: "~@2 [a3,e4,a4]@2 ~@2 [a3,e4]@2 [g3,d4,g4,g5]@3 ~ [d4,a4,f#5]@3 ~", // A5 G5 D
  D: "~@2 [a3,e4]@2 a4 ~ [a3,e4]@2 a4 ~ [a3,e4,a4]@2 ~@2 [e4,a4]@2", // A5
  E: "~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5]", // D5
  F: "c5 ~ [a3,e4]@2 a4 ~ [a3,e4]@2 [a#3,a4] ~ [a3,e4,a4]@2 ~@2 [a3,e4,a4]@2", // A5 A#maj7 A5
  G: "~ [a3,e4,a4] ~ [e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4]", // A5
  H: "~@2 [d4,a4,d5]@2 ~@2 [a3,d4,a4]@3 ~ [a3,d4,a4,d5]@2 ~@2 [a3,d4,a4,d5]@2, ~@6 d5 ~@9", // D5
  I: "~@2 [a3,e4]@2 a4 ~ [a3,e4,a4]@2 ~@2 [a3,e4,a4]@2 ~@2 [a3,e4]@2", // A5
  J: "~ [a3,e4,a4] ~ [a3,e4] ~ [a3,e4,a4] ~ [a3,e4,a4]", // A5
  K: "~ [a3,e4,a4] ~ [a3,e4,a4] ~ g4 [a3,d4,a4]@2, ~ [d5,g5], ~@2 [g3,d4] ~", // A5 D5 G5
  L: "~@2 [a3,e4,a4]@2 [a3,f#4] ~ [a3,e5]@6 [e3,a3,g4] ~ [a3,d4,g4,b4]@2, ~@3 g4 ~@4, ~@6 f#4 ~@9", // A5 D A5 A7 G
  M: "~@2 e4@2 f#4@2 [g4,e5] ~@7 [a3,d4,g4,d5] ~, ~ a3@2 a3@4 ~, ~@2 a4 ~@13", // C Dsus4
  N: "~ [a3,d4,a4,d5] ~ [a3,d4,a4,d5] ~ [a3,d4,a4,d5,f#5] ~ [a3,d4,a4,d5]", // D5 D D5
  O: "[a3,e4,a4] ~ a3 ~ [a3,f#4]@2 a3 ~ [a3,e4,a4] ~@3 [f#4,a4]@2 ~@2", // A5 D A5 F#m
  P: "[a3,e4,a4] ~ a3 ~ [f#4,a4]@2 a3 ~ [a3,e4,a4] ~ a3 ~ [a3,f#4]@2 [a3,d4,g4]@2", // A5 F#m A5 D Dsus4
  Q: "[d4,a4,d5] ~@3 [d4,b4,d5]@2 ~@2 [d4,a4,d5] ~@3 [d4,b4,f#5]@2 ~@2", // D5 G D5 Bm
  R: "[a3,e4,c#5] ~@3 [a3,e4]@2 a3 ~ d4@4 [a3,d4]@3 ~, ~@4 [g4,d5,g5]@3 ~, ~@8 g3@2 ~@2 [a4,f#5] ~@3", // A A5 D5 G5 D
  S: "[a3,e4,a4] ~@3 [a3,f#4]@2 a3 ~ [a3,e4,a4] ~@3 [a3,f#4] ~ a3 ~", // A5 D A5 D
  T: "[a3,e4]@2 ~@2 [a3,f#4]@2 a3 ~ [a3,e4,a4]@2 a3 ~ f#4@2 [d4,g4,b4] ~, ~@3 a3, ~@12 c4 ~@3", // A5 D A5 G
  U: "[d4,a4,d5] ~ d4 ~ [b4,d5]@2 d4 ~ [d4,a4,d5]@2 [d4,d5]@2 [b4,d5]@2 [d4,g4]@2", // D5 Bm D5 D Bm G5
  V: "[a3,e4] ~@3 [a3,f#4] ~ [e3,a3]@2 [g4,g5]@4 [a3,a4,f#5]@3 ~, ~@8 [d4,d5]@7 ~, ~@4 g3 ~@3, ~@8 a3 ~@7", // A5 D A5 G D
  W: "~ [a3,e4,a4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4]", X: "~ [a3,e4] ~ [a3,e4,a4] ~ [a3,e4] ~ [a3,e4]",
  Y: "~ [a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5]", // D5
  Z: "~@2 [a3,e4]@2 ~@2 a3 ~ [g3,g4,d5,g5]@4 [a3,a4,d5,f#5]@3 ~, ~ d4", // A5 G5 D
  AA: "~ [a3,e4] [a3,f#4] a3@5, ~@6 g4@7 ~@3, ~@3 b4 ~@4", AB: "~@2 [a3,e4,a4,c5]@2 f#4@2 g4@7 ~@3, ~ a3@3",
  AC: "~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~@2", AD: "[[d4,a4,d5]@29 ~@3]/2",
  AE: "a3 ~@3 a3 ~@3 [a3,e4,a4] ~@3 [a3,f#4,a4] ~@3", // A5 D
  AF: "[a3,e4]@2 ~@2 [a3,f#4,a4] ~@3 [a3,e4,a4] ~@3 [a3,f#4] ~ [d4,g4] ~", // A5 D A5 D G5
  AG: "[d4,a4,b4,d5] ~@3 [d4,b4,d5] ~@3 [d4,a4,d5] ~@3 [d4,b4,d5]@2 ~@2", // Bm7 G D5 G
  AH: "[a3,e4] ~@3 [a3,f#4] ~@3 [d4,g4,d5,g5]@4 [d4,a4,d5]@3 ~", // A5 D G5 D5
  AI: "[a3,e4,a4] ~@3 [a3,f#4] ~@3 [a3,e4,a4] ~@3 [a3,f#4]@2 ~@2", // A5 D A5 D
  AJ: "[[a3,e4] ~@3 [a3,f#4] ~@3 [a3,e4,a4] ~@3 [a3,f#4]@2 [a3,g4,b4]@2 [a4,d5] ~@3 [d4,b4,d5] ~@3 [d4,a4,d5] ~@3 [d4,b4,d5]@2 b4 ~, ~@7 d4@2 ~@7]/2", // A5 D A5 D Em D5 G D5 …
  AK: "[e4,a4] ~@3 [a3,f#4,a4] ~@3 [d4,d5,g5]@4 [a3,d4,a4,d5,f#5]@3 ~, ~@4 g3 ~@3", // A5 D G5 D
  AL: "~@2 [a3,e4]@2 a4 ~ [a3,e4]@2 a4 ~ [a3,e4,a4]@2 ~@2 [a3,e4,a4]@2", // A5
  AM: "~@2 [a3,e4,a4]@2 ~@2 [a3,e4,a4]@2 a#3 ~ g4@2 [a3,d4,a4]@4, ~ [d5,g5], ~@2 [g3,d4] ~", // A5 D5 G5
  AN: "~@2 [a3,e4,a4]@2 [a3,f#4] ~ [a3,e5]@6 [e3,a3,g4] ~ [a3,d4,g4,b4]@2, ~@6 [f#4,g4] ~@9", // A5 D A5 A7 G Gmaj7
  AO: "[a3,e4]@2 ~@2 [a3,f#4]@2 a3 ~ [a3,e4,a4]@2 a3 ~ f#4@2 [d4,g4,b4] ~, ~@3 a3", // A5 D A5 G
})).s("gm_electric_guitar_jazz").gain(0.36)

// chords · overdriven guitar · "Lead Guit"
const overdriven_guitar = note(`<
  ~@3 A ~@3 B ~@3 B C@2 D E F G H ~ I J K@2 L J M N ~@3 O ~@8 P ~@3 Q ~@3 B ~@3 B C@2 D E F G H ~ R J M N S T@2 U C@2 D
  E F G ~@4
>`.pickRestart({
  A: "~@6 c#4@2 g4@4 f#4@3 ~, ~ d4", B: "[e4,f4,f#4] ~ a4@2 b4@2 d5@2 b4@2 a4@2 f#4@2 a4@2",
  C: "~@10 c#5@3 c#5@3, ~@5 [e4,g4]@3", D: "~@10 c5!3 c5@3, ~@5 [d#4,f#4]@3",
  E: "~@10 c#5!2 [e4,c#5]@2 [e4,c#5]@2, ~@5 g4@3, ~@5 e4 ~@2", F: "~@10 c#5!4 c#5@2, ~@5 [e4,g4]@3",
  G: "~@10 c#5 ~@3 c#5@2, ~@5 g4@3, ~@5 e4 e4@2, ~@11 c#5@3 ~@2", H: "~@10 [d#4,c5]@2 c5@2 c5 ~, ~@5 f#4@3, ~@3 d#4",
  I: "[e4,f4,f#4] a4 ~@2 a4 ~@2 a4 ~ a4!2 ~ b4 ~ b4 ~", J: "~ d5@2 b4@2 a4 f#4 a4, b4@5 ~@11",
  K: "[~@6 d4@4 c4@2 ~@2 c4@13 ~@5]/2", L: "[e4,f4,f#4] a4 ~@2 a4 ~@2 a4 ~@2 a4 ~ b4 ~ b4 ~", M: "~@3 d4@2 c4 ~ c4",
  N: "~@2 f#4 ~ e4 ~ c4 ~ d4 ~ c4 ~ c4@2 d4 ~", O: "~@2 [d4,g4] [d4,f#4]",
  P: "~@10 [e4,g4,a4,c#5] ~ a4 [a4,c#5] [e4,g4]@2", Q: "~@10 g4 [g4,c#5]@2 ~ g4@2, ~@5 e4@3, ~@13 [g4,c#5]@2 ~",
  R: "~ a4 ~@2 a4 ~@2 a4 ~@2 a4 ~ b4 ~ b4 ~, [f4,f#4] ~@7", S: "[f4,f#4] a4 ~@2 a4 ~@2 a4 ~@2 a4 ~ b4 ~ b4 ~",
  T: "[b4@5 ~ b4@4 a4@2 f#4@2 b4@4 a4 ~ b4 ~ a4 ~ b4 ~ a4 ~ b4@2 a4@2]/2", U: "~@2 b4 ~ a4 f#4 a4 ~ b4 ~ a4 f#4 a4 ~@3",
})).s("gm_overdriven_guitar").gain(0.46)

// drums · kick
const kick = s("bd").struct("<A@34 B ~@2 C@3 D C@3 D A@30 E ~@2 F>".pickRestart({
  A: "x!4", B: "x ~ x ~ x ~ x!2", C: "x!8", D: "x!5 ~ x ~", E: "x ~ x ~ x ~@2 x", F: "~@9 x ~@6",
})).gain(0.41)

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

// drums · low tom
const low_tom = s("lt").struct("<~@10 A ~@7 A ~@15 A ~@16 A ~@7 A ~@15 A ~@3>".pickRestart({
  A: "~ x ~@2",
})).gain(0.36)

// drums · mid tom
const mid_tom = s("mt").struct("<~@37 [x!4]!3 [x!2 ~@2] [x!4]!3 [x!2 ~@2] ~@33 [~ x]>").gain(0.31)

// drums · high tom
const high_tom = s("ht").struct("<~@36 [~@4 x ~ x!2] ~@41 [~@7 x ~@8]>").gain(0.36)

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

stack(bass, epiano1, electric_guitar_jazz, overdriven_guitar, kick, snare, low_tom, mid_tom, high_tom, crash)

More by The Beatles