Strudelify

Cry For A Shadow

The Beatles

KeyC majorTempo166 bpm
0:00/0:00
// Cry For A Shadow — The Beatles
// 166 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(166/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(`<
  ~@5 A B@2 C D E F B@4 G H I J K L M N O P Q R S B T B J U I B V ~@4 B J B J W X Y C Z AA AB AC AD AE AF I A AG AH@2 AI
  I AH AJ ~@4 A AK@3 AL AM AN AO@2
>`.pickRestart({
  A: "c2@5 ~ c2@2 a1@5 ~ a1@2", B: "c2@2 ~ c2 a1@2 ~ a1", C: "c2@4 ~@2 c2@2 a1@5 ~ a1 ~",
  D: "f2@4 ~@2 f2@2 c2@5 ~ c2@2", E: "g2@4 ~@2 g2 ~ d2@5 ~ d2 ~, ~@8 g2 ~@7", F: "c2@4 ~@2 c2 ~ a1@4 ~@2 a1@2",
  G: "c2@3 ~@3 c2@2 a1@4 ~@2 a1 ~", H: "f2@4 ~@2 f2@2 c2@5 ~ c2 ~", I: "g2@4 ~@2 g2@2 d2@5 ~@3",
  J: "c2@4 ~@2 c2@2 a1@4 ~@2 a1 ~", K: "c2@5 ~ c2 ~ a1@5 ~ a1 ~", L: "e2@4 ~@2 e2 ~ b1@4 ~@2 b1@2",
  M: "e2@4 ~@2 e2@2 b1@4 b1 ~@3", N: "a2@2 ~ a2 e2@2 ~ e2", O: "a2@4 ~@2 a2@2 e2@3 e2@2 ~@3",
  P: "d2@4 ~@2 d2@2 a1@5 ~ a1@2", Q: "d2@4 ~@2 d2@2 a1@5 ~ a1 ~", R: "g2@2 ~ g2 d2@2 ~ d2",
  S: "g2@4 ~@2 g2@2 d2@5 ~ d2 ~", T: "c2@3 ~@2 c2@2 ~ a1@4 ~@2 a1@2", U: "f2@4 ~@2 f2@2 c2@4 ~@2 c2 ~",
  V: "c2@4 ~@2 c2@2 a1@5 ~@3", W: "f2@4 ~@2 f2@2 c2@4 ~@2 [b1,c2] ~", X: "g2@4 ~@2 g2 ~ d2@6 ~@2",
  Y: "c2@4 ~@2 c2@2 a1@5 ~ a1@2", Z: "e2@4 ~@2 e2@2 b1@5 ~ b1@2", AA: "e2@4 ~@2 e2@2 b1@3 ~ b1@2 ~@2, ~@6 f2 ~@9",
  AB: "a2@4 ~@2 a2 ~ e2@7 ~", AC: "a2@2 ~ a2 e2@3 ~", AD: "d2@5 ~ d2@2 a1@6 ~@2",
  AE: "d2@4 ~@2 [c2,d2] ~ [b1,d2] ~@7, ~@4 a1@3 ~", AF: "g2@4 ~ g2@2 ~ d2@7 ~", AG: "c2@5 ~ c2@2 a1@5 ~@3",
  AH: "c2@2 ~ c2 a1@3 ~", AI: "f2@4 ~@2 f2@2 c2@7 ~", AJ: "c2@7 ~ a1@7 ~", AK: "c2@5 ~ c2@2 a1@6 ~@2",
  AL: "f2@4 ~@2 f2@2 c2@7 ~, ~@6 g2 ~@9", AM: "g2@5 ~ g2@2 d2@5 ~@3", AN: "c2@4 g2@3 ~ e2@3 ~ c2@2 ~@2",
  AO: "[g1 a1 b1 ~ c2@6 ~@6]/2",
})).s("gm_electric_bass_finger").gain(0.52)

// chords · acoustic guitar steel · "GUITAR"
const acoustic_guitar_steel = note(`<
  ~ A B@2 C D@4 E F@7 G@2 H@2 I@3 J@8 K L M N@5 O P@4 Q@2 R S@5 T@8 U@2 V@3 W X Y Z@4 AA AB@4
>`.pickRestart({
  A: "[e3,g3]@4 [e3,g3]@2 [d3,g3]@2 a3@4 a3@2 [d3,e3,g3] [a#3,b3], ~@8 [e3,c4]@7 ~", // Em G5 Em7 Bmaj7 C
  B: "[b3@4 b3@2 [g3,b3]@2 [f3,f#3,a#3] ~ f3@2 ~ b3 [d3,g3,g#3,b3]@2 d3 e3@3 [e3,g3]@2 [d3,e3,g3]@2 [a3,c4]@4 ~ d#3 [d3,d#3,g3] ~, [g3,d4]@6 ~@6 c4@4 ~@4 c4@4 d3 ~@3 [a3,c4]@2 ~@2, a#3 ~@7 [a3,c4]@4 e4@11 ~@9, ~@6 [f3,a3] ~ [g3,c4]@2 ~@2 [e3,g3]@3 ~]/2", // G F#maj7 G Em Em7 Am D#maj7 G5 …
  C: "[g3,b3,d4]@2 [b3,d4]@2 b3@2 b3@4 [g3,b3,d4]@2 [g3,b3,d4]@2 [d3,g3] [c3,e3], ~@2 d4@3 ~@3", // G Bm G G5 C
  D: "[[f3,g#3,a3,c4] c4@5 g3@4 g3@2 c4@2 ~@2 [c3,e3,g3]@3 c4@3 [c4,e4]@4 g3@2 ~@4 e3@2 e3 c4@3 [c4,e4]@4 g3@2 ~@4 [e3,g3]@2 ~ [g3,c4]@3 e4@4 ~@2 e3 ~ [b3,e4,f4] g#3, e3@16 ~@3 g3@7 ~@2 g3@6 ~ g3@7 e4@4 e4@8 g3@6 g3@4, c3@6 [c3,g3]@2 ~@8 c3@15 ~, [g3,e4]@6 e4@14 ~@6 e4@4 e4@5 ~@7 c4@9 ~@3 c4@8 ~@2, ~@6 c4@6 ~@2 c4@5 ~@7 c4@9 f3 ~@8 g3@4 ~@2 e3@8 e4@4 ~@2]/4", // F C Em C5 E C5 C
  E: "[f3,a3]@2 ~ c4@3 [c4,f4]@4 [c4,f4]@2 [f3,a3,c4] ~@3, c3@7 ~, [d3,g#3] ~@2 [f3,a3]@9 ~@4, ~@3 f4 ~@12", // F F5 F Ddim F
  F: "[[d3,g3,b3]@3 ~@3 g4@4 [d4,g4]@2 g3@2 ~ e3 e3@2 g3 c4@3 [c4,e4]@4 ~@6 e3@2 ~ [g3,c4]@3 e4@4 ~@6 e3@2 ~ c4 [c4,e4]@2 [c4,e4]@4 ~@6 c3@2 ~@2 e4@2 [c4,e4]@4 ~@5 c3 e3@2 ~ c4 [c4,e4]@2 [g3,c4,e4]@4 g3@2 ~@8 e4@2 [g3,c4,e4]@4 g3@2 e3 b3!2 ~, ~@3 [d3,g3,b3]@9 [d3,b3]@4 c3@16 c3@14 c4@4 ~@8 [c4,e4]@4 e4@5 c4@3 ~@4 [c4,e4]@4 [c4,e4]@5 g3@3 ~@4 [c4,e4]@4 [c4,e4]@5 ~@7 [c4,e4]@5 ~, ~@3 d4@6 ~@5 g3@4 ~ e3@13 ~@3 e3@13 c3@16 ~@2 c3@3 ~@11 c3@16 c3@14 ~@2, ~@19 g3@9 g3@7 ~@3 g3@4 e4@2 g3@7 [e3,g3]@9 g3@7 ~@9 g3@6 ~ e3@9 g3@7 [g3,c4]@3 ~@6 g3@4, ~@26 [c4,e4]@4 c4@5 ~@3 c4@8 e4@6 ~@8 e3@4 ~@3 [e3,g3]@9 e3@4 c#3 ~@11 e3@4 ~@2 e3@4 e3@6 ~@4]/7", // G G5 C C5 C G C Em …
  G: "[[b2,c3,f3,g3,a3]@2 ~ c4 [c4,f4]@2 [a3,c4,f4]@4 [a3,c4,f4]@2 [f3,a3] ~ g3@2 [d3,g3]@2 ~ [g3,b3,g4]@3 [g3,b3,g4]@4 g3@2 ~@2 b3@2, ~@3 f3@9 ~@6 d3@9 ~ [d3,g3]@4, ~@3 a3@3 ~@8 b3@5 ~@7 [b3,g4]@4 ~@2]/2", // F F5 F G5 G G5 Em
  H: "[[e3,g3]@2 g3 [g3,c4,e4]@3 [g3,c4,e4]@4 g3@2 ~@4 e3@3 ~ e4@2 e4@4 g3@2 [e3,g3] ~@2 e3, ~@2 e3@8 [c4,e4]@4 e4@5 c4@3 c4@6 ~@4, ~@12 g3@7 g3@5 ~@2 e4@4 ~@2, ~@12 e3@4 ~@3 e3@9 ~@2 g3@2]/2", // Em C Em C
  I: "[[e3,g#3]@3 b3 [b3,e4]@2 [b3,e4]@4 ~@6 g#3@2 [d3,e3,g#3] d4 d4@2 e4@4 ~@2 [e3,g#3]@2 b3 a3 [e3,a3,a#3] ~ [e3,a3] ~ e4@2 e4@4 ~@2 [e3,a3]@2 e4@2, b2@16 ~@10 e4@4 e4@5 ~@3 c#4@8 ~@2, ~@3 [e3,g#3]@9 [e3,g#3]@4 ~@3 e3@9 ~@14 e4@4 ~@2, ~@10 [b3,e4]@4 e4@5 [g#3,e4]@3 [g#3,d4]@7 ~ g3@2 ~@3 [a3,c#4]@3 a3@6 ~@4]/3", // E E5 E7 E A A5 E E5 …
  J: "[e3@2 f3 ~ e4@2 e4@4 g3@2 e3 ~@2 [d3,g#3,a3] a3@2 a3 [a3,d4,f#4]@2 [d4,f#4] [a3,d4,f#4]@3 d4 [a3,d4,f#4]@2 a3 ~@2 [g#3,a3] [d3,a3] a3 [d3,a3] c4 [c4,f#4]@2 [a3,c4]@4 ~@2 a3 ~ g3@2 [d3,g3]@3 ~ g4@2 [b3,g4]@4 ~@6 g3@2 [g3,b3] b3 [b3,f4]@2 [g3,b3,g4]@4 g3@2 ~@3 e3 [e3,g3]@2 e3 c4 e4@2 [c4,e4]@4 ~@6 e3@3 ~ e4@2 [c4,e4]@4 g3@2 g3@2 ~@2 e3@2 ~ c4 e4@2 e4@4 ~@4 [c4,e4]@2, ~@2 a2@32 ~@17 b3@3 ~@4 [b3,g4]@4 [b3,g4]@5 ~@3 f4@6 ~@14 e4@2 g3@7 e3@13 c3@16, ~@2 e3@9 ~ g3@2 e4@2 [d3,g#3]@13 [g3,g#3] g3@4 ~ a3@3 f#4@3 ~ [c4,f#4]@4 [b3,g4]@5 g3@9 g3@4 ~@3 g3@3 ~@4 [b3,g4]@4 b3@2 ~@10 c4@9 g3@7 ~@4 [g3,c4,e4]@5 e3@3 g3@4 e4@2 [e3,g3]@4, ~@3 g3@7 e4@3 d3 d4@5 ~@9 d3@4 ~@3 d3@9 d3@4 ~@3 d3@13 d3@12 [d3,g3]@4 ~@3 [e3,g3]@8 e3@3 e4@5 c4@3 ~@4 [c4,e4]@4 ~@5 g3@3 c4@8 ~@2, ~@3 c#4@3 c#4@122]/8", // D Amaj7 D5 Cdim Am G5 Em G …
  K: "e3@2 ~@2 e4@2 [g3,c4,e4]@4 [g3,c4]@2 [e3,c4] b3 [b3,e4]@2, ~@2 e3@9 ~ g3@4, ~@3 [g3,c4]@3 ~@4 e4@4 ~@2", // C C5 C E5 C5
  L: "[f3,a3]@3 ~ f4@2 [a3,c4,f4]@4 a3@2 [f3,a3]@2 [c4,e4,f4] ~, ~@3 f3@9 ~@4, ~@3 [a3,c4]@3 ~@4 [c4,f4]@4 ~@2", // F Fmaj7 Am F5
  M: "[g3,b3]@2 g3 [g3,b3,d4]@3 [d4,g4]@4 ~@4 e4@2, c3 ~@2 g4 ~@2 b3@8 ~@2, ~@6 g3@5 d4@3 ~@2, ~@5 g4 g3@2", // G G5
  N: "[[e3,g3]@3 ~ c4@2 c4 c4@3 ~@6 e3@2 ~ g3@3 e4@4 ~@7 c4@3 [e3,g3]@2 g3@2 [e3,a3]@4 a3 d3 a3 [f#3,g3,a#3,b3] [g3,b3,d4]@4 [b3,d4]@2 [b3,d4] a#3 [f3,a3,c4]@4 ~ g3 g3@2 [e3,g3,c4]@4 [e3,g3]@2 ~ a3 [a3,c4]@4 ~ d#3 [d3,g3,c#4] [f#3,g3,b3], c3@16 c3@22 ~@2 d3 ~@19 a3@2 ~@8 [d3,g3]@2 e3@6 ~@2, ~@3 [e3,g3]@9 [e3,g3]@4 ~@2 e3@14 [e3,g3]@4 ~@24 c4@4 ~@4 c4@4 d#3 ~@3 [a3,c4]@2 ~@2, ~@6 e4@4 [c4,e4]@4 [c4,e4]@5 ~@3 [g3,c4]@6 [g3,c4]@5 ~@19 g3@4 a#3@24, ~@26 e4@4 e4@6 ~@4 c4@3 ~ c4@3 c#4@8 ~ c#4@22 ~@2]/5", // Em A5 Gmaj7 G Bm F C Em …
  O: "[a#3,b3] b3 ~ b3 ~ b3 [b3,d4]@4 [g3,b3]@2 ~ g3 d3@2, g3@5 ~@3, d4 [b3,d4]!2 ~@3 [b3,d4] ~", // Bmaj7 Bm G Bm
  P: "[g3@4 ~@2 [c4,e4]@4 g3@2 ~@4 [c3,e3]@2 ~ [g3,c4]@3 e4@4 ~@6 e3@2 ~ [c4,e4]@3 [c4,e4]@4 e4 ~@5 e3@2 ~@2 e4@2 [c4,e4]@4 [g3,c4,e4]@2 e3 ~ [b3,e4]@2, c3@14 e4@4 c3@12 [c4,e4]@5 ~@7 c4@2 g3@6 e3@9 ~@2 d3@3, e3@12 g3@7 e3@3 g3@4 e4@2 g3@7 g3@8 e4@3 [c4,e4]@5 [g3,c4]@7 ~@2 g3@3 ~, c4@6 ~@4 c4@9 ~@3 c4@6 e3@4 ~@2 e3@14 c3@13 ~@3, ~@2 g3@3 e4 e3@2 c#3@8 [c3,c#3]@8 c#3@8]/4", // C C5 C E5 C C5 C#maj7
  Q: "[[f3,a3]@2 ~@2 f4@2 [c4,f4]@4 ~@2 [f3,a3]@2 e4 ~ [d3,g3]@2 ~ [g3,b3]@3 [b3,g4]@4 b3@2 b3@2 [b3,e4]@2, ~ f3@4 [c4,f4]@2 b3@2 d3@5 [d3,g3]@2, ~@3 [a3,c4]@3 a3@6 ~@4 b2@5 ~ g3@6 ~@4, ~@26 g4@4 g4 ~]/2", // F F5 F G5 G Em E5 F5 …
  R: "[e3,g3] ~ [c4,e4] [g3,e4]@2 g3 ~ [c4,e4], c3, d#3 ~@2 e3@9 [e3,g3]@4, ~@3 g3@3 c4@8 ~@2, ~@5 e4@2 ~", // Em C Em
  S: "[e3@2 ~ c4 e4@2 e4@4 ~@2 e3 ~@2 [d3,e3] [b2,e3]@3 [d3,e3,g#3] [g3,b3] b3 [b3,e4]@4 ~@4 b3@2 [e3,g#3]@3 [g#3,d4]@3 e4@4 ~@2 [e3,g#3,d4]@2 [g3,b3]@2 e3@2 e3 ~ e4@2 e4@4 ~@2 e3 ~@3 [e3,a3]@2 e3 c#4 [c#4,e4]@2 [c#4,e4]@4 ~@5 [g#3,a3], c#3, c3@19 ~@2 c3@6 ~@11 [g#3,d4]@6 ~@2 c#4 ~@4 c#4@11 [c#4,e4]@6 ~@6 [c#4,e4]@4 ~@2, ~@3 g3@7 e4@3 d3 e4@8 ~@4 [b3,e4]@4 e4@5 e4 ~@6 e4@4 e4@5 ~@7 e4@4 ~@5 g3@3 g3@6 [g3,a3]@2 [g3,b3,d4,e4]@2, ~@3 e3@3 c4@6 g3@7 ~ e3@8 [e3,g#3]@4 ~@3 e3@9 ~@7 a3@9 a3@4 ~@3 [e3,a3]@10 d3@2 ~]/5", // Dsus2 E5 E7 G E5 E G#dim E7 …
  T: "[[a3,c#4]@2 a3 ~ f#4@2 [d4,f#4]@4 d4@2 ~ g3 [g3,e4] a3 a3@2 ~@2 f#4@2 g4 d3 ~@4 [a3,c4]@2 [g3,g4]@2 [d3,g3]@3 b3@3 [b3,g4]@4 ~@4 e4 ~@4 [g3,b3]@3 [b3,f4]@4 f4@2 ~@4 [e3,g3]@3 c4 ~@2 e4@4 g3@2 ~@4 [e3,g3]@3 [g3,c4]@3 [c4,e4]@4 ~@6 e3@2 ~ c4@3 [c4,e4]@4 g3@2 g3@2 g3@2 g3@3 c4@3 [c4,e4]@4 [c4,e4]@2 e3 b3 [b3,e4]@2, d3@16 d3@6 a3@2 a3@4 ~@7 [d3,g3]@8 d3@4 ~ d3@12 [d3,g3]@4 c3@14 [c4,e4]@5 ~@3 g3@4 c4@4 e4@5 g3@7 [c4,e4]@4 e4@8 ~@10, ~@3 c#4@125, ~@3 a3@7 ~@2 [a3,d4]@2 ~@2 g#3 ~ a3@4 f#4@4 f#4@4 ~@12 g4@2 g3@6 ~@4 g3@6 ~@7 e3@13 c3@30 c4@5 [e3,g3]@9 g3@4, ~@3 d4@3 ~@4 f#4@4 ~ f#4@3 ~ c4@3 c4@6 ~@14 b3@8 ~@8 b3@4 e4@4 ~ g3 c4@6 [c4,e4]@2 g3@4 ~@3 e3@7 e4@2 g3@7 e3@13 c3@13 ~@3]/8", // A D C Am G G5 Em G …
  U: "[[f3,a3]@2 a3 [a3,c4]@3 f4@4 f4@2 ~ g#3 [a2,e4] ~ [d3,g3]@2 g3 [g3,b3,g4]@3 [g3,b3,g4]@4 g4@2 g3@4, c3@14 ~@5 d3@13, c#3 ~@2 f3@9 [f3,a3,c4,f4]@2 ~@18, ~@3 f4 ~@2 [a3,c4]@6 ~@2 b3@5 ~@7 b3@5 ~]/2", // F Am A5 G5 G F Am
  V: "[[e3,g3]@3 c4 c4@2 [c4,e4]@4 ~@6 e3@3 c4 [c4,e4]@2 e4@4 ~@4 [d3,e4]@2 [e3,g3,c4]@4 [e3,g3]@2 [d3,g3]@2 [e3,a3,c4]@4 [e3,a3]@2 [e3,a3]@2, c3@7 g3 ~@4, d3 ~@2 e3@11 e4@6 ~@2 c4@10 ~@4 c4@4 ~@4 c4@4, ~@3 g3@3 g3@4 e4@2 g3@7 e3@10 b3@6 ~@13, ~@10 c4@9 g3@7 e4@4 ~@18]/3", // Em C Dsus2 C Em G5 Am A5
  W: "[b3,d4]@4 [g3,b3,d4]@2 ~ [f#3,a#3] [f3,a3,c4]@4 a3 g3 g3@2, [g3,a#3] ~@5 [b3,d4]@2 ~@4 c4@4, ~@6 f3 ~", // Bm G F# F Gm Bm
  X: "[e3,g3]@4 [e3,g3]@2 ~ a3 [f3,a3,c4]@4 ~ b3 [d3,e3,g3] ~, ~@4 c4@4 g3 ~@3 [a3,c4]@2 ~@2, ~@3 [d3,g3,b3] e3@3 ~", // Em F Em7 Am G
  Y: "~ d4 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@4 [g3,b3,d4]@2 [g3,d4] [g3,a#3,b3] ~ e3, [g3,b3] ~@6 [d3,g3]", // G G5 G G5
  Z: "[[e3,c4,e4]@6 [c4,e4]@4 ~@4 c4@2 e3@2 e3 c4@3 e4@4 ~@4 c4@2 e3@2 e3 c#4 ~@2 e4@4 ~ g3 ~@4 [e3,g3]@2 ~@2 e4@2 ~@4 [g3,c4]@2 c4@2 [b3,f4] ~, [c3,c#3]@32 c#3@13 ~@5 e3@9 ~ e3 ~@3, g3@12 g3@7 g3@9 g3@7 [e3,g3,c4]@9 c4@7 c4@3 [c4,e4]@4 e4@4 ~@2, ~@10 [c4,e4]@4 e4@5 ~@3 c4@6 e3@4 c3 ~@11 g3@4 ~@3 g3@7 ~@2 g3@4, ~@26 e4@4 e4@6 ~@6 e4@4 e4@5 ~@5 c3@5 ~@3]/4", // C Em C5 Bdim C#maj7 C
  AA: "[f3,a3] ~ f4 [c4,f4]@2 [c4,f4] a3 g3, ~@2 f3@11 ~@3, ~@3 [a3,c4]@3 a3@6 ~@2 e4 ~", // F F5 Am
  AB: "[g3@3 b3 b3@2 [b3,g4]@4 [g3,b3,g4]@2 ~@3 e3 e3@2 ~ g3@3 [g3,c4,e4]@2 ~ c4 ~@4 e4@2 [e3,c4]@4 [g3,c4]@3 c#3 c4 [c4,e4]@14 ~@9, d3@12 [d3,g3,b3]@4 c3 ~@2 e3@5 g3@4 g3@8 ~@3 c3@15 ~@10, ~@3 g3@7 ~@4 e4@8 ~@2 e4@2 c4@6 ~@8 [e3,g3]@15 ~@9, ~@13 e4@2 ~@17]/4", // Em G C C5 C G Em
})).s("gm_acoustic_guitar_steel").gain(0.26)

// chords · acoustic guitar steel · "GUITAR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  A@2 B C D ~ E@3 F G H@2 I@2 J K L M N@2 O@8 P Q R S T@2 U V W X Y Z AA AB ~ AC AD@3 AE@5 AF AG AH AI@2 AJ AK AL AM
  AN@2 AO AP AQ AR@2 AS AT AU@2 AV@2 AW@2 ~
>`.pickRestart({
  A: "[~@16 [c4,e4]@5 ~ c4 [g#3,a3] ~@4 e4@2 b3 [c#4,d4], ~@15 c3@7 a2@10]/2", B: "e4@3 d4 ~@4",
  C: "e3 ~@4 b3@2 ~ [f#3,e4]@4 e4@2 ~@2, ~@8 f3 ~@7", D: "~@6 e4@7 ~ [a2,c4,c#4] ~, ~@2 g3@8 ~@3 b3@2 ~",
  E: "[~@3 e3@9 e3@4 ~@2 [g3,g4] ~ e4@2 ~@2 e3@8 ~@14 [a2,c4] ~, ~@2 g2@41 ~@5, ~@2 c3@14 ~@3 e3@5 ~@24]/3", // G Am
  F: "[f#3,f#4] ~ f3 ~ f4@2 ~@8 [a2,b3,e4]@2, b2 c#3@6 ~", G: "~@2 g3 c4 g4@2 ~@10",
  H: "[c4@2 e3 ~ e4@2 ~@8 e4@4 e3 ~ e4@2 ~@10]/2", I: "[~@2 [e3,f3] ~@13 e3@2 e3 ~@2 c3@10 ~, ~@14 c4@5 ~@13]/2",
  J: "~@2 e3 ~@13", K: "e3@2 ~ e4 ~@10 f4 ~", L: "f#3@2 a3 ~@11 e4 [g2,g#2]", M: "~ g#2@13 f2@2",
  N: "[f3@3 ~@11 c4@5 ~@5 g3@2 ~@2 c4 ~ e4@2, c4 ~@28 b3@3]/2",
  O: "[~@16 b2@14 a#2 ~@2 [e3,f3] ~ e3@9 ~@2 b3 c4 [f3,g3,b3] ~@2 e4 ~@26 e4 ~ a#2 d3 [a#2,b2] ~@13 [a2,b2] ~@29 e4@2, ~@3 c#3@125, ~@8 e3 ~@6 a2@10 ~@16 a2@7 ~@16, ~@46 c#4@2 c#4@3 ~@77]/8", // Fmaj7 G7 Bmaj7 Asus2
  P: "f3 ~@2 f3 c4@2 ~@10", Q: "~@7 c3@8 ~", R: "~@2 e3 ~ c4@2 ~@10", S: "f3 ~@6 f4",
  T: "[~@3 [d3,d#3] ~@10 [g3,b3] f#4 c#3 ~@3 g4@2 ~@8 b3@2, ~@15 g4@4 ~@13]/2", U: "[f3,f#3] ~@3 e4@2 ~@10, c4@3 ~@13",
  V: "g3@3 [c4,e4]@3 ~@10", W: "~@6 d3@2 ~@6 [c#4,d4] ~, ~ c4 ~@2", X: "~@4 c4 ~@2 c#4 ~@4 f3@2 ~@2",
  Y: "e4@4 ~@8 e4@2 ~ d4, f3 ~@15", Z: "~@3 e4@2 d4 ~ g3", AA: "~ e4@5 ~@10", AB: "~@3 f3 e4@2 ~@10",
  AC: "~@13 [c3,b3] ~ a2, ~@13 a2@2 ~", // Cmaj7
  AD: "[b3@2 c4 f4 ~ c3@8 ~ g3@2 g#2 ~@4 b2@8 ~@3 f3@2 e3 ~@13, c#3@47 ~, c3@5 ~@9 c4 ~ g2@14 ~@18, b2 ~@13 a2@6 g4@2 ~@26]/3",
  AE: "[~@4 c4@2 ~@2 e3@4 ~ a#2 a2@2 a2 ~@2 [a2,b2,c3] ~ [g3,g#3]@2 g#3@4 b2 ~@8 e4@2 ~@8 g4@2 a3@2 a3 e3@9 ~@6 a3 ~@13, ~@12 c4@9 ~@25 a2@34, ~@13 b3@6 ~@9 b2@19 ~ e2@6 ~@26, ~@48 g#3 ~@31]/5", // Am G#maj7
  AF: "~@10 a3@2 ~@2 b3 ~", AG: "~@3 f#4 ~@9 b3 [b3,e4]@2", AH: "~@2 d3 ~ g4@2 ~@10",
  AI: "[~@2 b3 f#3 ~@12 c4@2 e3 ~ e4@2 ~@10, ~@7 b3@2 ~@7]/2", AJ: "~@2 e3 ~ e4@2 ~@10", AK: "~@2 e3 e4@2 ~@11",
  AL: "e3@2 e3 ~@13", AM: "f#3@2 f#3 ~ f4@2 ~@10", AN: "[~@16 f3 ~ e3 ~ e4@2 ~@10, ~@7 e4@3 ~@6]/2", AO: "~@7 a2",
  AP: "d3 ~@6 a3 ~@4 a2@3 c#4, e4@11 ~@5", AQ: "~@7 [a3,c4,c#4] ~@7 e3", AR: "[c4@4 ~@8 e4@2 [b3,c#4] d4@2 ~@15]/2",
  AS: "b3 ~@5 e3@9 ~", AT: "c4@3 f3 e4@2 ~@10, ~@3 e3@9 ~@4",
  AU: "[[c4,c#4]@3 ~ e4@2 ~@6 e3@4 ~@14 c4 ~, ~@7 c3@17 ~@5 [a2,c3]@2 ~]/2", // C#maj7 Am
  AV: "[b2@3 a#3 c3@10 a2 ~@5 g4@2 ~@2 g2@6 f2 ~, ~@14 b3@5 ~@13, ~@2 g2 ~, ~@17 g#2@7 ~@8]/2",
  AW: "[~@3 c4@2 ~@3 e3@7 ~ e4@2 ~@2 e3@3 ~@9, [g3,c4]@3 ~@15 e4@6 ~@8, ~ c3@22 ~@9]/2", // C5
})).s("gm_acoustic_guitar_steel").gain(0.1)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@4 A@2 B@4 C@2 D E@4 F G@2 H I J K L M N O P Q R S@3 T@2 U ~@4 V@4 W X@3 Y Z AA L AB AC AD AE AF@5 AG@2 AH ~@4 Q AI@3
  AJ AK AL AM@2
>`.pickRestart({
  A: "[~ e4, ~@15 c4@17]/2",
  B: "[~@2 e4@3 ~ e4@2 ~@2 d4@2 ~ c4@2 ~ e4@18 e4@3 e4@2 ~ e4@2 d4@2 ~ c4@2 a3@10 ~ c4@2 a3 ~ c4@2, ~@8 e4@7 c4@17 ~@32]/4",
  C: "[d4@10 ~@5 [c4,e4]@2 ~ a4 ~@2 e4 ~@7 e4 ~@2, ~@24 c4@7 ~]/2", D: "g3 ~",
  E: "[e4@18 e4@3 e4@2 ~ e4@2 d4@2 ~ c4@2 ~ e4@18 e4@3 ~ e4@2 e4@2 d4@3 c4@2 ~, c4@15 ~@16 c4@18 ~@15]/4",
  F: "a3@5 c4 a3 c4", G: "[d4@9 ~@7 e4 ~@2 a4 ~@2 e4 ~@6 e4 ~@2, ~@15 c4@2 ~@7 c4@7 ~]/2", H: "c4 ~@15",
  I: "~@4 d4@3 b3 d4@2 ~ b3 d4@2 e4@2, ~ g#3@5 ~@2, ~ b3 ~@6, ~@3 e4@8 ~@5", J: "~@2 g4@2 e4@3 d4 d4@3 b3 d4@2 e4@2",
  K: "b3 ~@2 c4 [f#4,b4]@2 ~ e4 g4@2 e4 g4@2 ~ a4@2, ~ [c#4,e4,a4] ~@6", L: "c5@2 a4 ~ g4@2 a4@3 ~ g4@2 a4 ~@3",
  M: "~@3 b4@3 ~ [a4,c5]@2 ~ a4@2 c5@2 d5@2, ~ a4@2 ~@13, ~ d5 ~@6", N: "~@2 f5@2 d5@2 ~ c5 a4@3 a4 c5@2 d5@2",
  O: "~@2 [d4,g4]@3 ~ f4@2 f4@2 d4@2 f4@2 g4@2", P: "a#4@2 g4 ~ f4@2 g4@4 f4@2 g4 ~@3", Q: "[c4,e4]",
  R: "~@2 e4@3 e4@2 ~@3 d4@2 ~ c4@2 c4, ~@2 e4 ~",
  S: "[[c4,e4]@18 e4@3 ~ e4@2 e4@2 d4@2 ~ c4@2 a3@10 ~ c4@2 a3@2 c4@2]/3", // C
  T: "[d4@9 ~@9 a4 ~@10 e4 ~@2, ~@15 [c4,e4]@5 ~@2 e4@7 ~@3, ~@24 c4@7 ~]/2", U: "g3@3 ~",
  V: "[[c4,e4]@18 e4@3 ~ e4@2 e4@2 d4@2 ~ c4@2 ~ e4@18 e4@3 ~ e4@2 e4@2 d4@3 c4@2 ~, ~@31 c4@16 ~@17]/4", // C
  W: "a3@5 c4 [a3,b3] c4", // Asus2
  X: "[d4@9 ~@7 a4@2 ~@5 c4@6 e4 ~ g3@11 ~@6, ~@15 c4@8 ~@25, ~@16 e4@5 e4@7 ~@20, ~@9 a4@5 ~@10]/3",
  Y: "~@2 [b3,e4]@2 d4@3 b3 d4@2 ~ b3 d4 ~ e4@2", Z: "~@2 g4@2 ~@2 b3 ~ d4@2 ~ g#3 [g#3,d4]@2 [b3,e4] ~, ~ e4 ~@2",
  AA: "b3 ~@2 f#4 g4@2 ~ e4 g4@2 e4@2 g4@2 a4@2, ~ e4@2 ~@13, ~ a4 ~@6", AB: "~@2 [a4,d5]@2 c5@3 a4 c5@3 a4 c5@2 d5@2",
  AC: "~@2 f5@2 d5@2 ~ c5 d5@2 ~ c5 d5@2 c5 ~", AD: "~@2 [d4,g4]@2 f4 ~ d4@2 f4@2 ~ f4@2 ~ g4@2, ~@5 d4 ~@2",
  AE: "a#4@2 g4 ~ f4@2 g4@3 ~ f4@2 g4 ~@3",
  AF: "[~@15 b3 ~@2 e4@3 ~ e4@2 ~@2 d4@2 ~ c4@2 ~ e4@18 e4@3 e4@2 ~ e4@2 d4@2 c4@2 ~ a3@10 ~ c4@2 a3@2 c4@2, c4@15 ~@16 c4@16 ~@33, ~ e4@17 ~@6 e4@4 ~@52]/5",
  AG: "[d4@9 ~@14 c4@6 e4 ~@2, ~@15 c4@8 ~@9, ~@16 e4@5 e4@7 ~@4, ~@9 a4@6 ~]/2", AH: "g3@7 ~",
  AI: "[~@2 e4@3 e4@2 ~ e4 ~ d4@2 ~ c4@2 ~ e4@18 e4@3 e4@2 ~ e4@2 d4@2 ~ c4@2 ~, ~@15 c4@16 ~@17]/3",
  AJ: "a3@10 c4@2 a3 ~ c4 ~", AK: "d4@3 ~", AL: "~@3 g3@4 ~ e3@3 ~ c3@2 ~@2, c4@11 ~@5, ~@8 f3 ~@7",
  AM: "[g#2 ~ a2@2 b2 ~@4 e3@13 ~@10, ~@4 c3@7 ~@5]/2",
})).s("gm_electric_guitar_jazz").gain(0.35)

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

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

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

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

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

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

// drums · high tom
const high_tom = s("ht").struct("<~@4 A ~@7 A ~@15 A ~@7 A ~@11 A ~@7 A ~@11 A ~@9>".pickRestart({
  A: "~ x",
})).gain(0.5)

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

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@6 A ~ A ~ A ~@3 A ~ A ~ A ~@11 A ~ A ~ A ~@7 A ~ A ~ A ~@11 A ~ A ~ A ~@7 A ~ A ~ A ~@3
>`.pickRestart({
  A: "~@3 x",
})).gain(0.56)

stack(
  bass, acoustic_guitar_steel, acoustic_guitar_steel_2, electric_guitar_jazz, kick, snare, low_tom, hihat, mid_tom,
  open_hat, high_tom, crash, tambourine
)

More by The Beatles