Strudelify

I Just Don't Understand

The Beatles

KeyA minorTempo118 bpm
0:00/0:00
// I Just Don't Understand — The Beatles
// 118 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 4 "GUITAR" acoustic guitar nylon (copy of ch 3 "GUITAR" electric guitar clean)
// note: Full arrangement: all 86 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(118/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@3 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J@7 K@3 L@6 M@5 N O@2 P@3 Q@5 R S@2 T@5 U@3 V@2 W X@2 Y@5 Z AA@5 AB@3 AC@2 AD@2 ~
>`.pickRestart({
  A: "~@7 e2@7 a2@17 ~", B: "[~@3 a2@2 e2@17 ~@3 e2@3 a2@18 ~@2 a2@3 e2@17 ~@3 e2@3 a2@16 ~@3 a2@3]/3",
  C: "[e2@17 ~@3 e2@3 a2@17 ~@3 a2@3 e2@17 ~]/2", D: "[~@3 d2@15 ~@3 d2@3 g2@17 ~@2 g2@3 d2@16 ~@2]/2",
  E: "[d2@3 g2@21 a2@16 ~@2 a2@3 e2@16 ~@3]/2", F: "[e2@3 a2@39 ~@4 a2@15 ~ a2@2]/2",
  G: "[~ e2@16 ~@3 e2@3 a2@16 ~@3 a2@3 e2@16 ~ e2@2]/2", H: "[~ a2@16 ~@2 a2@2 ~ e2@17 ~@2 e2@3 a2@17 ~@3]/2",
  I: "[a2@3 e2@17 ~@2 d2@15 ~@3 d2@3 g2@20 ~]/2",
  J: "[d2@16 ~@2 d2@3 g2@20 ~ a2@16 ~ a2@3 e2@21 ~ a2@16 ~@2 a2@3 e2@19 d2@16 ~@2 d2@3 g2@20 ~ d2@14 ~@3 d2@2 g2@20 ~ a2@16 ~ a2]/7",
  K: "[~@2 e2@21 a2@15 ~@3 a2@2 e2@19 ~ d2@20 g2@13]/3",
  L: "[~@5 g2@3 d2@21 g2@20 a2@20 e2@16 ~@2 e2@3 a2@21 ~ e2@19 d2@18 ~@2 e2@15 ~@2 e2@2 ~ a2@17 ~ a2@2 ~]/6",
  M: "[e2@20 a2@16 ~@2 a2@3 e2@15 ~@2 e2@3 ~ a2@16 ~@2 a2@2 e2@19 ~ d2@14 ~@2 d2@3 g2@19 ~ d2@14 ~@2 d2@2 ~]/5",
  N: "g2@5 a2@3", O: "[~@4 a2@2 ~ e2@20 ~ a2@16 ~ a2@3 e2@16]/2",
  P: "[~@3 d2@15 ~@2 d2@3 g2@19 ~ d2@14 ~@2 d2@3 g2@20 a2@14]/3",
  Q: "[~@3 a2@3 e2@16 ~ e2@3 a2@16 ~ a2@2 e2@17 ~ d2@15 ~@3 d2@2 ~ g2@19 d2@14 ~@2 d2@2 g2@20 ~ a2@14 ~@2 a2@2]/5",
  R: "~@2 e2@20 a2@5 ~@5", S: "[~@29 a2@14 ~@2 a2@3 e2@14 ~@2]/2",
  T: "[~ e2@3 a2@18 ~@2 e2@12 g2@7 a2@15 ~@3 a2@2 e2@13 ~ g2@7 a2@15 ~ a2@2 ~ e2@18 d2@15 ~@3 d2@2 g2@19]/5",
  U: "[~ d2@15 ~@2 d2@3 g2@7 a2@6 g2@6 ~ a2@14 ~@2 a2@3 e2@19 ~ a2@6 ~@10]/3", V: "[~@25 a2@14 ~@2 a2@3 e2@17 g2@3]/2",
  W: "a2@17 ~ a2@2 e2@12", X: "[~ g2@7 a2@14 ~@3 a2@3 e2@13 g2@7 a2@15 ~]/2",
  Y: "[~ a2@3 e2@18 ~ d2@14 ~@3 d2@2 ~ g2@19 d2@14 ~@3 d2@2 g2@20 a2@15 ~@2 a2@3 d2@12 ~@2 d2@5 ~ a2@15 ~ a2@3]/5",
  Z: "e2@19 d2@13",
  AA: "[~@4 d2@2 ~ g2@20 ~ d2@15 ~ d2@3 g2@20 a2@15 ~@2 a2@3 e2@15 ~@2 e2@3 a2@16 ~ a2@2 ~ e2@18 ~ d2@13 ~]/5",
  AB: "[~@2 d2@2 ~ g2@20 d2@14 ~@2 d2@2 ~ g2@19 a2@16 ~ a2@3 e2@13]/3",
  AC: "[~@4 e2@3 a2@21 e2@11 ~@2 e2@7 a2@14 ~@2]/2", AD: "[~ a2@2 e2@12 ~@2 e2@7 a2@20 e2@15 ~@5]/2",
})).s("gm_electric_bass_finger").gain(0.41)

// chords · acoustic guitar steel · "GUITAR"
const acoustic_guitar_steel = note("<A@7 B@8 C@2 D@2 E@7 F@2 G@7 H@5 I@8 J@4 K@7 L@3 M@2 N@8 O@3 P@6 Q@5>".pickRestart({
  A: "[~@16 g#3@7 ~@21 a3@2 ~@21 e3@2 ~@20 a3@2 ~@17 [a3,c4,e4]@5 e3@2 c4 ~@19 a3@2 ~@16 [a3,c4,e4]@5 ~@17 [e3,g3,b3]@5 a3@2 ~@16 [a3,c4,e4]@5 e3@2 ~@15 [e3,g3]@4, ~@23 e4@23 [a3,c4,e4]@16 [a3,c4,e4]@8 ~@22 [a3,c4,e4]@16 ~@30 [a3,c4,e4]@15 ~@7 [g3,b3]@15 ~@8 [a3,c4,e4]@15 ~@7 b3@19, ~@23 g#3@8 b2@15 a2@23 ~@8 b2@15 a2@23 ~@8 b2@15 a2@21 ~@9 b2@14 ~ a2@22 ~@8 b2@11, ~@24 e2@23 ~@23 e2@22 ~@23 e2@22 ~@23 e2@22 ~@24 e2@18, ~@24 e3@15 [e3,g#3,b3]@8 ~@8 e3@12 ~@3 [e3,b3]@14 [e3,g3,b3]@8 ~@8 e3@12 ~@3 [e3,b3]@15 ~ [e3,g3,b3]@7 ~@8 e3@12 e3@17 ~@16 e3@12 ~@2 e3@15 ~@4]/7", // Am Em Am Em Am G Am E …
  B: "[f3@3 ~@18 g3@2 ~@23 f3 ~@17 g3@2 ~@19 a3@3 ~@15 [a3,c4,e4]@5 e3@2 ~@14 g3@5 a3@2 [a2,a3,c4,e4]@40 ~@15 [a3,c4,e4]@5 e3@2 ~@14 [e3,g3,b3]@5 a3@2 ~@36 [e3,g3,b3]@4 a3@2, ~@3 d2@21 ~@7 d3@12 d3@16 d3@7 ~@8 d3@14 ~@8 e3@12 ~@71 e3@11 ~@3 [e3,b3]@14 ~@16 e3@11 e3@16 ~@6, ~@3 f3@14 [d3,f3,a3]@7 g3@14 d4@7 ~@8 a2@14 g2@21 a2@22 ~@7 b2@14 ~@41 a2@22 ~@6 b2@14 ~ a2@21 [g3,b3]@14 ~@6, ~@10 a2@13 ~ [g2,b3]@21 ~ d2@21 ~@43 [e2,e3,b3]@21 ~@62 e2@21 ~@15 [c4,e4]@7 e2@20, ~@39 g3@7 a3@14 [f3,a3]@7 [g3,b3,d4]@14 [g3,b3,d4]@7 [a3,c4,e4]@15 ~@69 [a3,c4,e4]@14 ~@29 [a3,c4,e4]@15 a3@7 ~@6 b2@13]/8", // Am Em E5 Dm G E5 C F …
  C: "[~@15 [a3,c4,e4]@5 ~@21 a3@3 ~@15 [a3,c4,e4]@5, ~ a2@21 ~ e2@21 ~@20, ~ [a3,c4,e4]@14 ~@8 [g3,b3]@14 ~@7 [a3,c4,e4]@15 ~@5, ~@9 e3@11 e3@17 [e3,g3,b3]@7 ~@8 e3@12, ~@15 b2@7 a2@10]/2", // Am G Am Em
  D: "[e3@2 ~@18 f3@2 ~@19 g3@2 ~@14 [g3,b3,d4]@5 d3@2, ~@2 [e2,e3,b3]@20 d2@21 ~@8 d3@11 ~@2, ~@9 b2@13 f3@14 [d3,f3]@7 [b3,d4]@14 ~@7, ~@16 g3@7 ~@7 a2@13 g2@21, ~@37 a3@7 g3@13 ~@7]/2", // G E5 Dm Bm
  E: "[~@14 [d3,f3,a3]@5 g3@2 ~@18 a3@2 ~@35 [e3,g3,b3]@5 a3@2 ~@15 a3@4 a3@3 ~@17 f3@2 ~@18 g3@3 ~@18 f3@2 ~@18 g3@2 ~@18 a3@3 ~@13 [a3,c4,e4]@5, d2@21 g2@20 [a3,c4,e4]@14 [c4,e4]@7 e2@21 ~@15 e4@7 ~@19 d2@21 ~@20 f3@13 [d3,f3]@7 [g3,b3,d4]@14 [g3,b3,d4]@7 [a3,c4,e4]@13 ~@5, [d3,f3,a3]@14 ~@7 [g3,b3,d4]@14 [g3,b3,d4]@7 ~@7 e3@11 e3@16 ~@15 e3@20 e3@13 f3@14 [d3,f3,a3]@7 [g3,b3]@14 [g3,b3]@7 ~@13 a3@7 ~@6 d3@13 ~@8 e3@11, ~@8 a2@14 ~@7 d3@13 a2@20 [g3,b3]@14 ~@8 [a3,c4,e4]@14 c4@20 c4@7 ~@27 d3@14 ~@6 a2@13 g2@21 a2@18, ~@56 a3@7 ~@6 b2@14 ~ a2@21 [a2,a3,e4]@21 ~@6 a2@13 [g2,d4]@21 d2@20 ~@38]/7", // Dm Em Am C Dm G Am Dm …
  F: "[e3@2 ~@18 a3@3 ~@18 e3@2 ~@18 e3@2 [e3,f3], ~@2 e2@21 ~@7 e3@11 ~@2 e2@21, ~@2 [e3,b3]@14 [e3,g3,b3]@7 [a3,c4,e4]@14 [a3,c4,e4]@7 b3@20, ~@9 b2@14 a2@21 e3@13 g3@7, ~@25 b2@7]/2", // Fmaj7 E5 Em Am
  G: "[~@13 [d3,f3,a3]@4 g3@2 ~@18 d3@2 ~@19 g3@2 ~@14 [g3,b3,d4]@4 a3@2 ~@15 a3@4 [g3,a3]@2 ~@18 a3@2 ~@16 a3@4 [g3,a3]@2 ~@18 a3@2 ~@18 g3@2 ~@14 [e3,g3,b3]@4 a3@2 ~@14 [a3,c4,e4]@5 e3@2, d2@19 [g3,b3,d4]@14 [g3,b3,d4]@7 ~@7 a2@13 ~ g2@19 [a2,e4]@21 e2@20 ~@9 e3@14 ~@6 b2@13 [a2,a3,e4]@20 ~@7 b2@13 ~ a2@20, ~@6 a2@13 g2@21 [d2,a3]@20 ~@8 d3@12 ~@8 e3@14 ~@6 b2@14 [a2,e4]@21 e2@20 ~@20 e2@20 ~@21, ~@26 d3@11 ~@3 d3@14 [d3,f3]@7 [g3,b3,d4]@13 ~@6 [a3,c4]@14 c4@7 g3@14 [e3,g3,b3]@7 [a3,c4]@14 c4@7 g3@13 g3@7 c4@14 c4@7 ~@27 e3@11 ~@2, ~@157 [e3,b3]@7 ~@6 e3@13 g3@14 ~@7 [a3,c4,e4]@13 ~@7]/7", // Dm G Gsus2 Em Am G A5 D5 …
  H: "[~@17 c4@3 ~@18 g3@2 ~@14 [e3,g3,b3]@5 a3@2 ~@19 g3@2 ~@13 [e3,g3,b3]@6 ~@14 [d3,f3,a3]@4 b3@2 ~@14 g3@4 f3@2 ~@12 [d3,f3,a3]@4 g3@2 ~, [e2,b3]@20 [a2,c4]@21 e2@21 ~@20 e2@20 ~@26 d3@13 f3@12 ~@7, e3@13 g3@7 ~@14 a3@7 g3@13 ~@8 c4@13 ~ c4@7 ~@18 f3@13 ~@7 b3@13 [b3,d4]@7 ~@19, ~@7 b2@14 ~@26 b2@14 ~ [a2,a3,e4]@21 ~@6 b2@13 ~@6 a2@13 g2@19 ~@7 a2@13, ~@14 e3@7 ~@6 e3@14 ~@28 e3@13 g3@13 ~@6 d2@19 ~@21 d2@19]/5", // Em Dm E5 Am Bm A5
  I: "[~@17 c4@2 ~@14 [a3,c4,e4]@4 e3@2 ~@18 a3@2 ~@14 a3@4 g3@2 ~@18 d3@2 ~@14 f3@4 b3@2 ~@13 [g3,b3,d4]@4 f3@2 ~@14 [d3,f3,a3]@4 g3@2 ~@14 b3@4 c4@2 ~@13 [a3,c4,e4]@5 e3 ~@14 g3@4 a3@2 ~@17 g3@2 ~@17 d3@3, [g2,g3,d4]@20 a2@19 e2@21 ~@7 e3@13 ~@6 b2@13 d2@20 b3@13 ~@13 a2@12 ~ [g2,g3,d4]@20 a2@19 ~ [e2,e3,b3]@20 ~@7 e3@12 ~@6 b2@13, b3@13 b3@7 c4@13 ~@13 b2@13 ~ [a2,c4,e4]@20 e2@20 ~@6 a2@13 g2@19 ~ d2@19 ~@7 d3@13 ~@7 e3@11 ~@2 g3@13 ~@7 [a3,c4]@12 c4@6 ~@20, ~@7 d3@13 ~@6 e3@11 ~@2 [e3,g3,b3]@14 [e3,g3,b3]@7 a3@13 ~@7 g3@13 [e3,g3,b3]@7 [d3,a3]@20 ~@6 d3@12 ~ f3@13 ~@6 b3@13 ~@7 c4@13 ~@14 b2@13 [a2,e4]@19 e2@19, ~@231 a3@6 g3@12 [e3,g3,b3]@7]/8", // Am G Dm Am G5 E5 Am Em …
  J: "[~@13 [d3,f3,a3]@4 g3 ~@15 g3@3 [f3,g3]@2 ~@13 [d3,f3,a3]@4 g3@2 ~@14 [g3,b3,d4]@4 a3@2 ~@18 e3@2 ~@14 [e3,g3]@4 a3@2 [a2,a3,c4,e4]@2 ~@9, d2@19 ~@7 d3@12 ~ f3@12 ~@7 [g3,b3,d4]@13 ~@7 [a3,c4,e4]@13 [a3,c4,e4]@7 e3@13 ~@17, [d3,f3,a3]@13 ~@7 [g3,b3]@13 b3@6 ~@6 a2@12 ~ g2@19 ~ a2@20 ~@6 b2@13 ~@11, ~@7 a2@11 ~@2 [g2,d4]@19 d2@18 ~@8 d3@12 ~@7 e3@11 ~@2 [e2,b3]@20 ~@11]/4", // Dm Fsus2 Dm G Em Am G Am …
  K: "[~@46 g3@2 ~@13 [e3,g3,b3]@5 a3@2 ~@17 g3@2 ~@18 a3@2 ~@14 [a3,c4,e4]@4 ~@16 [e3,g3,b3]@4 a3@2 ~@13 [a3,c4,e4]@4 ~@16 [e3,g3,b3]@4 d3@2 ~@13 [d3,f3,a3]@4 g3@2 ~@14 [g3,b3,d4]@4 d3, ~@28 [a2,e4]@20 g3@13 ~@8 [a3,c4,e4]@12 [c4,e4]@7 ~@19 c4@13 ~@14 b2@12 ~ a2@19 ~@7 b2@13 ~@7 a2@12 ~ g2@18, ~@28 [a3,c4]@14 [a3,c4]@7 ~@6 b2@13 a2@20 e2@19 ~@7 e3@11 e3@15 ~@14 e3@10 e3@15 ~@7 [d3,f3,a3]@13 ~@13 d3@11 ~, ~@35 e3@13 e2@20 ~@7 e3@13 ~@6 b2@13 ~ a2@20 e2@18 ~@21 e2@19 d2@19 ~@19, ~@82 a3@6 g3@13 [e3,g3,b3]@7 [a3,e4]@13 ~@7 [g3,b3]@13 ~@6 [a3,c4,e4]@13 ~@7 [g3,b3]@13 ~@26 [g3,b3,d4]@13 ~@5]/7", // Em Am Em Am Em Dm G A5 …
  L: "[~@15 [d3,f3,a3]@4 g3@2 ~@17 c4@2 ~@13 [a3,c4,e4]@5 ~@19 a3@3 [a2,a3,c4,e4]@2 ~@14, ~ d2@19 ~@8 d3@13 ~@6 e3@11 e3@15 [e3,g3,b3]@7 ~@16, ~@2 [d3,f3,a3]@13 ~@6 [g3,b3]@13 b3@7 c4@12 ~@7 b3@13 ~@23, ~@8 a2@12 ~ [g2,d4]@20 a2@19 e2@21 ~@15, ~@35 g3@7 ~@25 b2@13 ~@16]/3", // Dm Am Em Dm G G5
  M: "[~@37 [a3,c4,e4]@4 e3@2 ~@14 [e3,g3,b3]@4 a3@2 ~, ~@6 a2@5 e2@5, ~@24 [a3,c4]@13 ~@13 b2@13 ~, ~@31 e3@10 ~@3 [e3,b3]@13 ~@7]/2", // Am Em Am E5
  N: "[~@13 [a3,c4,e4]@5 ~@15 [e3,g3]@4 a3@2 ~@18 e3@2 ~@14 [e3,g3,b3]@4 a3@2 ~@34 [e3,g3,b3]@6 ~@13 [d3,f3,a3]@4 g3@2 ~@14 g3@4 ~@15 [d3,f3,a3]@4 g3@2 ~@14 [g3,b3,d4]@4 a3@2 ~@13 [a3,c4,e4]@4 ~ f3@2 ~@13 [e3,g3,b3]@4 a3@2 ~@13 [a3,c4,e4]@5 e3@2, a2@20 [e2,b3]@20 ~@6 e3@11 ~@3 [e3,g3,b3]@13 ~@7 [a3,c4,e4]@13 [a3,c4,e4]@7 [g3,b3]@13 ~@13 a2@12 g2@20 ~@7 a2@12 ~ g2@19 a2@19 ~@7 b2@11 ~@2 a2@19 ~, [a3,c4,e4]@13 ~@13 b2@13 ~ a2@20 e2@19 ~@8 e3@10 e3@15 ~@7 [f3,a3]@13 ~@7 [g3,b3,d4]@12 [b3,d4]@7 [f3,a3]@13 ~@7 [g3,b3,d4]@13 ~@6 [a3,c4,e4]@13 ~@26 [a3,c4]@13 ~@7, ~@7 e3@11 e3@15 ~@7 [a3,c4,e4]@13 [a3,c4,e4]@7 ~@6 b2@13 ~ a2@20 e2@19 d2@19 ~@20 d2@19 ~@40 e2@18 ~@8 e3@10 ~@3, ~@106 b2@12 ~@3 d3@11 ~@13 d3@11 d3@15 ~@13 d3@12 ~@8 e3@10 e3@2 ~ [e3,g3,b3]@13 ~@7 e4@12 ~@7]/8", // Am Em Dm G Am Em Am E5 …
  O: "[~@13 [e3,g3,b3]@4 ~@16 [f3,a3]@4 g3@2 ~@14 [g3,b3,d4]@4 d3@2 ~@13 [d3,f3,a3]@4 ~@16 [g3,b3,d4]@4, e2@19 ~ d2@19 ~@21 d2@19 ~@7 d3@10, [g3,b3]@13 ~@4 d3@15 d3@6 ~@8 d3@11 ~@3 [d3,f3,a3]@12 ~@7 [b3,d4]@13 ~@4, ~@7 b2@12 ~ [f3,a3]@13 ~@6 [g3,b3,d4]@14 ~@23 g3@16 ~@4, ~@26 a2@13 g2@20 ~@7 a2@12 ~ g2@17]/3", // Em F G Dm G Dm Bm F …
  P: "[a3@3 ~@13 [a3,c4,e4]@5 ~@15 [e3,g3,b3]@4 a3@2 ~@18 [e3,f3]@2 ~@13 [e3,g3,b3]@4 ~@19 g3@2 ~@14 [g3,b3,d4]@4 ~@15 [d3,f3,a3]@4 g3@2 ~@34 a3@4 [e3,f3]@2 c4 ~@6 b2@6, ~@3 a2@20 e2@20 ~@19 e2@19 d2@19 ~@20 d2@19 ~@14 [g3,d4]@6 [c4,e4]@13 [c4,e4]@6 ~@14, ~@3 [a3,c4,e4]@13 ~@7 [g3,b3]@13 ~@7 [a3,c4,e4]@13 [a3,c4,e4]@7 [g3,b3]@12 ~@6 f3@7 a2@12 ~ g2@19 ~@7 a2@12 g2@20 a2@20 [e2,e3,g3,b3]@13, ~@10 e3@11 e3@15 ~@14 e3@10 ~@19 d3@15 ~ [d3,f3,a3]@6 ~@7 d3@10 d3@15 ~@13 d3@13 ~@7 e3@11 ~@15, ~@30 b2@13 a2@20 ~@6 b2@12 ~ a3@13 ~@6 [g3,b3,d4]@13 ~@7 [f3,a3]@12 ~@6 [g3,b3,d4]@13 b3@4 a3@16 ~@20]/6", // Am Em Fmaj7 Em G Dm Fmaj7 G5 …
  Q: "[[e3,g3,b3]@4 a3@2 ~@19 e3@3 ~@13 [e3,g3,b3]@4 a3@2 ~@18 e3@3 ~@17 a3@3 ~@13 a3@7 [a2,a3,c4,e4]@37 ~@15, ~@7 a2@21 e2@19 ~@7 e3@11 ~@3 [e3,g3,b3]@13 [e3,g3,b3]@7 a3@13 ~@59, ~@7 [a3,c4,e4]@14 [a3,c4,e4]@7 ~@7 b2@12 ~ a2@20 e2@20 ~@7 e3@14 ~@51, ~@15 e3@10 ~@3 [e3,g3,b3]@13 ~@7 [a3,c4,e4]@13 [a3,c4,e4]@7 ~@6 b2@14 [a2,c4,e4]@20 ~@52]/5", // Em Am Em Am Em Am
})).s("gm_acoustic_guitar_steel").gain(0.41)

// other · electric guitar clean · "GUITAR"
const electric_guitar_clean = note(`<
  A@4 B C@4 D@3 E F@2 G@2 ~ H I J@2 ~ K@2 L M@2 N O P@2 ~ Q@2 ~ R@2 S T U V@2 W@2 X@2 ~ Y Z AA AB AC AD AE@2 AF AG AH AI
  AJ AK ~ AL AM AN AO ~ AP@2 AQ AR U AS@2 AT@2 AU@3 AV AW AX AY@2 ~
>`.pickRestart({
  A: "[~@15 g3@2 a3@4 c4@2 ~ e4@6 ~ d4@7 c4@8 a3@23 ~ g3@22 a3@12 g3@3 a3@4 c4@2 ~ e4@7 ~ d4@6]/4", B: "~ c4@8 a3@23",
  C: "[~ g3@22 a3@12 g3@2 a3@4 ~ c4 ~@2 e4@6 ~ d4@7 ~ c4@7 d4@20 ~ c4@20 ~ d4@9 ~@3 g3@2 a3@4 ~]/4",
  D: "[c4 ~@2 e4@6 ~ d4@6 ~ c4@7 a3@21 ~ g3@22 a3@3 ~@25]/3", E: "~@13 g3 a3@2",
  F: "[c4 ~@2 e4@5 ~ d4@5 ~ c4@6 ~@2 a3@16 ~@25]/2", G: "[~@14 g3@2 a3@4 c4 ~@2 e4@6 d4@6 ~ c4@7 ~ a3@15 ~@5]/2",
  H: "~@4 g3@2 a3@3 c4 ~@2 e4@5 ~ d4@6 ~ c4@6 ~", I: "~ d4@12 ~@19",
  J: "[~@21 g3@3 a3@4 c4 ~ e4@6 ~ d4@6 ~ c4@7 a3@13]/2",
  K: "[~@8 g3@2 a3@5 c4 ~ e4@5 ~@2 d4@5 ~ c4@6 ~@2 d4@16 ~@10]/2", L: "~@25 g3@2 ~ a3@4",
  M: "[c4 ~ e4@6 ~ d4@5 ~@2 c4@6 ~ a3@15 ~@26]/2", N: "~@11 g3@2 a3@3 ~ c4 ~@2 e4@4 ~@2 d4@5 ~", O: "c4@3 ~ d4@7 ~@5",
  P: "[~@28 g3@2 a3@4 ~ c4 ~ e4@6 ~ d4@6 ~ c4@7 a3@6]/2",
  Q: "[~@15 g3@2 a3@3 ~ c4 ~@2 e4@5 ~ d4@5 ~@2 c4@7 a3@12 ~@8]/2",
  R: "[g3@2 a3@4 c4 ~@2 e4@6 ~ d4@5 ~ c4@7 ~ a3@14 ~@20, ~@9 d4 ~@54]/2", S: "~@16 g3@2 a3@4 ~ c4 ~ e4@5 ~@2",
  T: "d4@5 ~ c4@5 ~@2 d4@13 ~@6", U: "~@15 g3", V: "[a3@4 c4 ~@2 e4@5 ~@2 d4@5 ~ c4@3 ~@5 e3@10 ~@26]/2",
  W: "[~@14 g3@3 a3@4 c4 ~@2 e4@4 ~@2 d4@5 ~ c4@5 ~@2 d4@13 ~@8]/2",
  X: "[~@29 g3@2 a3@4 ~ c4 ~ e4@5 ~@2 d4@5 ~ c4@5 ~@2 a3@4 ~@2]/2", Y: "~@10 g3@2 ~ a3@3 ~ c4 ~@2 e4@6 d4@5 ~",
  Z: "c4@5 ~@2 d4@15 ~@10", AA: "~@25 g3@2 a3@4 c4", AB: "~@2 e4@5 ~ d4@5 ~@2 c4@5 ~ a3@4 ~@7", AC: "~@24 e3!7 ~",
  AD: "e3@2 a3@13 ~ g3!12 ~ g3!3", AE: "[g3!3 [f3,g3] a3@11 g3@2 a3@2 ~@2 c4 ~ e4@7 d4@6 c4@4 ~@3 a3!20 g3]/2",
  AF: "g3!18 a3@11 ~ g3@2", AG: "a3@4 c4@2 e4@6 d4@7 c4@3 ~@4 d4!2 [c4,d4] d4!3", AH: "d4!14 ~ c4!17",
  AI: "[c4,d4]@2 d4@10 g3@2 a3@2 ~@2 c4 ~ e4@7 d4@5", AJ: "~ c4@4 ~@3 a3!18 g3!2 ~ g3!3",
  AK: "g3!4 ~ g3!9 ~ g3 a3@4 ~@12", AL: "~@4 g3@2 a3@4 c4@2 ~ e4@5 ~ d4@6 c4@6 ~, ~@19 c4 ~@12", AM: "a3@7 ~@9",
  AN: "~@19 g3@2 a3@4 c4 ~@2 e4@4", AO: "~@2 d4@5 ~@2 c4@6 a3@13 ~@4",
  AP: "[~ g3@2 a3@4 c4@2 ~ e4@5 ~@2 d4@5 ~@2 c4@5 ~ d4@12 ~@22]/2", AQ: "~@16 g3@2 ~ a3@3 c4 ~@2 e4@5 ~@2",
  AR: "d4@5 ~ c4@5 ~ a3@13 ~@7", AS: "[~ a3@3 ~ c4 ~@2 e4@5 ~ d4@4 ~ c4@5 ~@2 d4@19 ~@19]/2",
  AT: "[~@14 g3@2 a3@4 c4 ~@2 e4@5 ~ d4@5 ~@2 c4@6 ~ a3@20 ~]/2",
  AU: "[~@28 g3@3 a3@4 c4 ~ e4@4 ~@2 d4@5 ~ c4@5 ~@2 d4@15 ~@25]/3", AV: "~@10 g3@2 a3@4 c4 ~ e4@6 ~ d4@5 ~@2",
  AW: "c4@6 ~ a3@7 ~@18", AX: "~@27 g3@2 a3@3", AY: "[~ c4 ~@2 e4@5 ~ d4@5 ~@9 a3@6 ~ e3@4 ~@2 c3@4 ~@3 a2@20]/2",
})).s("gm_electric_guitar_clean").gain(0.46)

// drums · snare
const snare = s("sd").struct(`<
  ~ A B C D E F G H I J K L M N O P Q R S T U V W X H Y Z AA AB AC AD AE AF Z AG AH AI AD AJ AG AK AL AF AM AN AO AP AQ
  AR AS AT ~ AU I Z AA AV AW AX AY AZ ~ Z BA BB BC Q AM BD AD BE AQ AV BF BG T BH BI BJ BK BL BM BI BN ~
>`.pickRestart({
  A: "~@23 x ~@7 x", B: "~@13 x ~@8 x ~@9", C: "~@4 x ~@7 x ~@14 x ~@4", D: "~@3 x ~@14 x ~@6 x ~@6",
  E: "~@7 x ~@7 x ~@15 x", F: "~@6 x ~@14 x ~@6 x ~@3", G: "~@5 x ~@3 x ~@6", H: "x ~@6 x ~@13 x ~@6 x ~@3",
  I: "~@11 x ~@6 x ~@12 x", J: "~@7 x ~@13 x ~@7 x ~@2", K: "~@11 x ~@20", L: "~@21 x ~@6 x ~@3",
  M: "~@4 x ~@3 x ~@6 x", N: "~@6 x ~@13 x ~@6 x ~@4", O: "~@9 x ~@6 x ~@12 x ~@2", P: "~@5 x ~@14 x ~@6 x ~@4",
  Q: "~@10 x ~@6 x ~@11 x ~@2", R: "~@5 x ~@12 x ~@7 x ~@5", S: "~@2 x ~ x ~@2 x", T: "~@4 x ~@12 x ~@6 x ~@7",
  U: "~@5 x ~@6 x ~@14 x ~@4", V: "~@2 x ~@13 x ~@6 x ~@8", W: "~@4 x ~@6 x ~@12 x ~@6 x", X: "~@13 x ~@6 x ~@11",
  Y: "~@9 x ~@6 x ~@13 x ~", Z: "~@5 x ~@12 x ~@6 x ~@6", AA: "~@6 x ~@6 x ~@12 x ~@5", AB: "~ x ~@13 x ~@6 x ~@9",
  AC: "~@3 x ~@6 x ~@13 x ~@6 x", AD: "~@12 x ~@6 x ~@12", AE: "~@9 x ~@12 x ~@6 x ~@2", AF: "~@11 x ~@5 x ~@12 x ~",
  AG: "~@7 x ~@6 x ~@12 x ~@4", AH: "~@2 x ~@12 x ~@7 x ~@8", AI: "~@4 x ~@7 x ~@12 x ~@5 x",
  AJ: "x ~@6 x ~@11 x ~@6 x ~@5", AK: "~ x ~@12 x ~@6 x ~@10", AL: "~@3 x ~@6 x ~@12 x ~@6 x ~",
  AM: "~@2 x ~@6 x ~@2 x ~@3", AN: "~@5 x ~@6 x ~@12 x ~@5 x", AO: "~@13 x ~@5 x ~@12",
  AP: "~ x ~@6 x ~@10 x ~@6 x ~@5", AQ: "~@7 x ~@5 x ~@13 x ~@4", AR: "~ x ~@11 x ~@5 x ~@12",
  AS: "x ~@6 x ~@12 x ~@6 x ~@4", AT: "~@8 x ~@6 x ~@16", AU: "~@4 x ~@5 x ~@11 x ~@6 x ~@2",
  AV: "~ x ~@11 x ~@6 x ~@11", AW: "~ x ~@6 x ~@11 x ~@6 x ~@4", AX: "~@8 x ~@6 x ~@12 x ~@3",
  AY: "~@2 x ~@12 x ~@6 x ~@9", AZ: "~@2 x ~@6 x ~@22", BA: "~@7 x ~@5 x ~@12 x ~@5", BB: "~ x ~@13 x ~@5 x ~@10",
  BC: "~@2 x ~@6 x ~@12 x ~@6 x ~@2", BD: "~@5 x ~@6 x ~@11 x ~@6 x", BE: "x ~@6 x ~@12 x ~@5 x ~@5",
  BF: "~ x ~@2 x ~@6 x ~@2 x ~", BG: "~@5 x ~@2 x ~@6 x", BH: "~@5 x ~@5 x ~@12 x ~@5 x ~", BI: "~@11 x ~@6 x ~@11 x ~",
  BJ: "~@5 x ~@12 x ~@5 x ~@7", BK: "~@5 x ~@6 x ~@12 x ~@6", BL: "x ~@13 x ~@6 x ~@10",
  BM: "~@2 x ~@7 x ~@12 x ~@5 x ~@2", BN: "~@5 x ~@26",
})).gain(0.36)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU
  AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD CE CF ~
>`.pickRestart({
  A: "~@15 x ~@6 x ~@4 x ~@2 x ~", B: "~@3 x ~@2 x ~@3 x ~@2 x ~@4 x ~@2 x ~@3 x ~@2 x ~@3",
  C: "x ~@3 x ~@3 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4", D: "x ~@2 x ~@3 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@3 x ~",
  E: "x ~@3 x ~@2 x ~@4 x ~@2 x ~@4 x ~ x ~@4 x ~@2 x ~", F: "~@3 x ~@2 x ~@4 x ~ x ~@4 x ~ x ~@4 x ~@2 x ~@3",
  G: "~ x ~ x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~ x ~@4 x ~ x", H: "~@4 x ~@2 x ~@3 x ~ x ~@4 x ~@2 x ~@3 x ~@2 x ~@3",
  I: "x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@4 x ~ x ~@3 x ~@2 x", J: "~@4 x ~ x ~@4 x ~@2 x ~@3 x ~@2 x ~@4 x ~@2 x ~@2",
  K: "~ x ~ x ~@28", L: "~@21 x ~@4 x ~ x ~@3", M: "x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~ x ~@4 x ~@2 x ~",
  N: "~@3 x ~ x ~@4 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x", O: "~ x ~@4 x ~ x ~@4 x ~@2 x ~@3 x ~ x ~@4 x ~@2 x ~",
  P: "~@2 x ~@2 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3", Q: "x ~ x ~@4 x ~ x ~@4 x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~",
  R: "~@3 x ~ x ~@3 x ~@2 x ~@2 x ~@2 x ~@4 x ~@2 x ~@3 x ~", S: "x ~@3 x ~@2 x ~@4 x ~@2 x ~@3 x ~ x ~@4 x ~@2 x ~@2",
  T: "~ x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x",
  U: "~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~ x ~@4 x ~@2 x ~@3 x",
  V: "~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~@3 x ~",
  W: "~ x ~@2 x ~@3 x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x",
  X: "~@3 x ~@2 x ~@2 x ~@3 x ~@3 x ~ x ~@3 x ~ x ~@3 x ~@2", Y: "x ~@4 x ~ x ~@4 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@3",
  Z: "x ~ x ~@3 x ~@2 x ~@4 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~",
  AA: "~@2 x ~@2 x ~@3 x ~@2 x ~@3 x ~ x ~@4 x ~ x ~@3 x ~ x",
  AB: "~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~@4 x",
  AC: "~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@3 x ~ x ~@4 x ~ x ~@3",
  AD: "~ x ~@2 x ~@3 x ~ x ~@4 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x", AE: "~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@5",
  AF: "~@8 x ~@4 x ~ x ~@4 x ~ x ~@3 x ~@3 x ~", AG: "~@2 x ~ x ~@3 x ~ x ~@4 x ~ x ~@3 x ~@2 x ~@2 x ~@2 x ~",
  AH: "~@2 x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@4 x ~ x ~@3 x ~@2",
  AI: "x ~@3 x ~ x ~@4 x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@3 x",
  AJ: "~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@2 x ~",
  AK: "~@2 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2",
  AL: "x ~@3 x ~ x ~@5 x ~@3 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2",
  AM: "x ~@3 x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~",
  AN: "~ x ~@2 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~ x ~@3 x ~",
  AO: "~ x ~@3 x ~@2 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~@3", AP: "~@10 x ~@3 x ~ x ~@3 x ~@2 x ~@2 x ~@2 x ~@2",
  AQ: "~ x ~@2 x ~@3 x ~ x ~@4 x ~ x ~@3 x ~@2 x ~@2 x ~@2 x ~",
  AR: "~@2 x ~@2 x ~@3 x ~ x ~@5 x ~@3 x ~@2 x ~@3 x ~@2 x",
  AS: "~@2 x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2",
  AT: "x ~@3 x ~ x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@4 x",
  AU: "~@2 x ~@2 x ~@2 x ~@3 x ~ x ~@2 x ~@2 x ~@3 x ~@2 x ~@4",
  AV: "x ~@2 x ~@2 x ~@4 x ~@2 x ~@2 x ~@2 x ~@3 x ~ x ~@3 x ~",
  AW: "~ x ~@3 x ~ x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~ x ~@2 x ~@2",
  AX: "x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x", AY: "~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@2 x ~@3 x ~@9",
  AZ: "~@15 x", BA: "~@2 x ~ x ~@3 x ~ x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~ x ~@2",
  BB: "~ x ~@2 x ~@3 x ~ x ~@4 x ~ x ~@4 x ~ x ~@3 x ~@2 x",
  BC: "~@3 x ~ x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2",
  BD: "x ~@3 x ~ x ~@4 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x",
  BE: "~ x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@2 x ~",
  BF: "~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@3",
  BG: "x ~ x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@3",
  BH: "x ~ x ~@3 x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~ x ~@3", BI: "x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@11",
  BJ: "~@25 x ~@3 x ~ x", BK: "~@3 x ~ x ~@3 x ~@2 x ~@3 x ~ x ~@4 x ~ x ~@3 x ~@2",
  BL: "x ~@2 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~ x ~@4 x",
  BM: "~ x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~ x ~@3 x",
  BN: "~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@2",
  BO: "~ x ~ x ~@4 x ~ x ~@3 x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~",
  BP: "~@2 x ~ x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~ x ~",
  BQ: "~@2 x ~@2 x ~@3 x ~@2 x ~@3 x ~ x ~@3 x ~ x ~@3 x ~ x ~",
  BR: "~@2 x ~@2 x ~@3 x ~@2 x ~@3 x ~ x ~@4 x ~ x ~@3 x ~@2",
  BS: "x ~@3 x ~ x ~@3 x ~@2 x ~@4 x ~@2 x ~@2 x ~@2 x ~@4",
  BT: "x ~@3 x ~ x ~@4 x ~ x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~",
  BU: "~ x ~@3 x ~ x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x",
  BV: "~ x ~@4 x ~ x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@3",
  BW: "x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~",
  BX: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@4 x ~ x ~@3 x ~ x ~",
  BY: "~@2 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~ x ~@3 x ~ x ~",
  BZ: "~@2 x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  CA: "~@2 x ~@2 x ~@3 x ~ x ~@4 x ~ x ~@3 x ~@2 x ~@3 x ~ x",
  CB: "~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~@2 x ~@3 x ~",
  CC: "x ~@3 x ~@2 x ~@2 x ~@3 x ~@3 x ~@2 x ~@2 x ~@3 x ~@2 x",
  CD: "~@2 x ~@3 x ~@2 x ~@2 x ~@3 x ~@2 x ~@2 x ~@3 x ~@2 x ~@2",
  CE: "~ x ~@2 x ~@3 x ~ x ~@3 x ~@2 x ~@3 x ~@2 x ~@4 x ~ x", CF: "~@3 x ~@2 x ~@3 x ~ x ~@19",
})).gain(0.36)

stack(bass, acoustic_guitar_steel, electric_guitar_clean, snare, pedal_hat)

More by The Beatles