Strudelify
Ob-La-Di, Ob-La-Da cover art

1976 · The Beatles

Ob-La-Di, Ob-La-Da

The Beatles

KeyB♭ majorTempo117 bpm
0:00/0:00
// Ob-La-Di, Ob-La-Da — The Beatles
// 117 bpm, 4/4, key Bb major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 89 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(117/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 · "pianos"
const piano = note(`<
  A ~@2 B C@2 D E@2 C F G H C F I J C F K L C@2 E@2 C@2 G L C F K L C F I M N O P Q R S T U V W X Y W Z AA AB AC AD AE
  AF AG AD AH AI AJ AK AL AM AN S AO AP AQ W AR AS AT AU AV AW AG W AX AI AG@2 AY AZ BA BB BC ~
>`.pickRestart({
  A: "db-1", B: "[e4,g4,c5] ~ [e4,g4,c5]!3 ~ [e4,g4,c5] ~ [e4,g4,c5] ~ [b3,d4,g4,b4] ~ [c4,e4,g4,c5] ~ c4 ~, c4 ~@7",
  C: "f2@2 [a3,c4,f4] ~ a2@2 [a3,c4,f4] ~ f2@2 [a3,c4,f4] ~ a2@2 [a3,c4,f4] ~, ~@3 c3 ~@3 c3", // F
  D: "f2@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~ f2@2 [a3,c4,f4] ~ a2@2 [c3,a3,c4,f4] ~", // F
  E: "c2@2 [g3,bb3,c4,e4] ~ e2@2 [g3,bb3,c4,e4] ~ c2@2 [g3,bb3,c4,e4] ~ e2@2 [g3,bb3,c4,e4] ~, ~@3 g2 ~@3 g2", // C7
  F: "f2@2 [a3,c4,f4] ~ a2@2 [a3,c4,f4] ~ f2@2 [a3,c4,f4] ~ a2@2 [c3,a3,c4,f4] ~, ~@3 c3 ~@4", // F
  G: "bb2@2 [bb3,d4,f4] ~ d3@2 [bb3,d4,f4] ~ bb2@2 [bb3,d4,f4] ~ d3@2 [bb3,d4,f4] ~, ~@3 f3 ~@3 f3", // Bb
  H: "f2@2 [a3,c4,f4] ~ a2@2 [c3,a3,c4,f4] ~ c2@2 [g3,c4,e4] ~ e2@2 [g2,g3,bb3,c4,e4] ~", // F C C7
  I: "c3@2 [a3,c4,e4] ~ a2@2 [a3,c4,e4] ~ d3@2 [a3,d4,f4] ~ a2@2 [g2,a3,d4,f4] ~, ~@3 c3 ~@4", // Am Dm
  J: "f2@2 [a3,c4,f4] ~ a2@2 [c3,a3,c4,f4] ~ c2@2 [g3,bb3,c4,e4] ~ e2@2 [g3,bb3,c4,e4] ~, ~@7 g2", // F C7
  K: "c3@2 [a3,c4,e4] ~ a2@2 [a3,c4,e4] ~@3 [a3,d4,f4] ~ a2@2 [g2,a3,d4,f4] ~, ~@3 c3 d3@2 ~@2", // Am Dm
  L: "f2@2 [a3,c4,f4] ~ a2@2 [a3,c4,f4] ~ c2@2 [g3,bb3,c4,e4] ~ e2@2 [g3,bb3,c4,e4] ~, ~@3 c3 ~@3 g2", // F C7
  M: "f2@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~ c2@2 [g3,bb3,c4,e4] ~ e2@2 [g2,g3,bb3,c4,e4] ~", // F C7
  N: "f2@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~ f2 ~ [a3,c4,eb4,f4,a6] [e6,f6,g6] [c6,d6] [g5,a5,b5,d6] [a2,a3,c4,eb4,f4,e5,f5] [b4,c5,d5], ~@5 f2 g2 ~", // F F7 Em Csus2 G F7 Bm
  O: "[f4,g4,a4] [d4,e4] [f2,bb3,b3,c4,d4,f4] [g3,a3] bb2@2 [f2,bb3,d4,f4] ~ bb2@2 [f2,bb3,d4,f4] ~ bb2@2 [f2,bb3,d4,f4] ~, bb2 ~@7", // F Dsus2 Bb Gsus2 Bb
  P: "bb2@2 [f2,bb3,d4,f4] ~ bb2@2 [f2,bb3,d4,f4] ~ bb2@2 [bb3,d4,f4]@2 bb2 ~ [f2,bb3,d4,f4] ~, ~@10 f2 ~@5", // Bb
  Q: "f2@2 [a3,c4,f4] ~ a2 ~ [a3,c4,f4] ~ f2 ~ [a3,c4,f4] ~ a2 ~ [a3,c4,f4] ~, ~@3 c3 ~ f2 ~ c3", // F
  R: "f2@2 [a3,c4,eb4,f4] ~ a2 ~ [c3,a3,c4,eb4,f4] ~ f2 ~ [a3,c4,eb4,f4] ~ g2 ~ [a2,a3,c4,eb4,f4] ~, ~@5 f2 ~@2", // F7
  S: "bb2@2 [f2,bb3,d4,f4] ~ bb2@2 [f2,bb3,d4,f4] ~ bb2@2 [f2,bb3,d4,f4] ~ bb2@2 [f2,bb3,d4,f4] ~", // Bb
  T: "bb2@2 [f2,bb3,d4,f4] ~ bb2@2 [f2,bb3,d4,f4] ~ bb2 ~ [f2,bb3,d4,f4] ~ bb2 ~ [b2,bb3,d4,f4] ~", // Bb
  U: "c3 ~ [g3,c4,e4]@2 ~@2 [c3,g3,c4,e4]@3 ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~, ~@2 c3 ~@7 c3@3 ~ c3@2", // C
  V: "~@2 [g3,bb3,c4,e4] ~@3 c3@3 ~ bb2 ~ a2 ~ g2 ~, ~@2 c3@3 ~ [g3,bb3,c4,e4]@10", // C7
  W: "f2@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~ f2@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~", // F
  X: "c2@2 [g3,bb3,c4,e4] ~ e2 ~ [g2,g3,bb3,c4,e4] ~ c2@2 [g3,bb3,c4,e4] ~ e2 ~ [g3,bb3,c4,e4] ~, ~@7 g2", // C7
  Y: "c2@2 [g3,bb3,c4,e4] ~ e2 ~ [g3,bb3,c4,e4] ~ c2@2 [g3,bb3,c4,e4] ~ e2 ~ [g2,g3,bb3,c4,e4] ~, ~@3 g2 ~@4", // C7
  Z: "f2@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~@3 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,eb4,f4] ~, ~@2 f2 ~", // F F7
  AA: "bb2@2 [bb3,d4,f4] ~ d3@2 [f3,bb3,d4,f4] ~ bb2@2 [bb3,d4,f4] ~ d3 ~ [f3,bb3,d4,f4] ~", // Bb
  AB: "f2@2 [a3,c4,f4] ~ a2@2 [c3,a3,c4,f4] ~@3 [g3,bb3,c4,e4] ~ e2 ~ [g2,g3,bb3,c4,e4] ~, ~@2 c2 ~", // F C7
  AC: "f2@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~@3 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~, ~@2 f2 ~", // F
  AD: "~@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~ f2@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~, f2 ~@3", // F
  AE: "~@2 [a3,c4,e4] ~ a2 ~ [c3,a3,c4,e4] ~ d3@2 [a3,c4,d4,f4] ~ a2@2 [g2,a3,d4,f4] ~, c3 ~@3", // Am Dm7 Dm
  AF: "f2@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~@3 [g3,bb3,c4,e4] ~ e2 ~ [g2,g3,bb3,c4,e4] ~, ~@2 c2 ~", // F C7
  AG: "~@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~@3 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~, f2 ~ f2 ~", // F
  AH: "~@2 [a3,c4,e4] ~ a2 ~ [c3,a3,c4,e4] ~@3 [a3,d4,f4] ~ a2@2 [a3,d4,f4] ~, c3@2 ~@2 d3@2 ~ g2", // Am Dm
  AI: "f2@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~ c2@2 [g3,bb3,c4,e4] ~ e2 ~ [g2,g3,bb3,c4,e4] ~", // F C7
  AJ: "~@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~ [f2,f6,g6,a6,b6] [d6,e6] [a3,c4,eb4,f4,b5,c6,d6] [f5,g5,a5] [g2,c5,d5,e5] [a4,b4,d5] [a2,a3,c4,eb4,e4,f4,g4,a4] [c4,d4], f2@2 ~@3 f2 ~@2", // F G7 Dsus2 Dm7 F C Bm7 Am7 …
  AK: "[a3,b3] ~ [f2,bb3,d4,f4] ~ bb2@2 [f2,bb3,d4,f4] ~ bb2@2 [f2,bb3,d4,f4] ~ bb2@2 [f2,bb3,d4,f4] ~, bb2 ~@7", // Asus2 Bb
  AL: "bb2@2 [f2,bb3,d4,f4] ~ bb2 ~ [f2,bb3,d4,f4] ~ bb2@2 [f2,bb3,d4,f4] ~ bb2@2 [bb3,d4,f4] ~, ~@7 c3", // Bb
  AM: "f2 ~ [a3,c4,f4] ~ a2 ~ [a3,c4,f4] ~ f2 ~ [a3,c4,f4] ~ a2@2 [a3,c4,f4] ~, ~ f2 ~ c3 ~ f2 ~ c3", // F
  AN: "f2 ~ [a3,c4,eb4,f4] ~ a2@2 [a3,c4,eb4,f4] ~ f2 ~ [a3,c4,eb4,f4] ~ g2@2 [a3,c4,eb4,f4] ~, ~ f2 ~ c3 ~ f2 ~ a2", // F7
  AO: "bb2@2 [f2,bb3,d4,f4] ~ bb2 ~ [f2,bb3,d4,f4] ~ bb2@2 [f2,bb3,d4,f4] ~ bb2 ~ [b2,bb3,d4,f4] ~", // Bb
  AP: "[c3,g3,c4,e4] ~ [c3,g3,c4,e4]@3 ~ [c3,g3,c4,e4]@3 ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~, ~@10 c3@3 ~ c3@2", // C
  AQ: "~@2 [c3,g3,bb3,c4,e4]@2 ~@2 [g3,bb3,c4,e4]@2 c3@2 bb2@2 a2 ~ g2 ~, ~@6 c3 ~@3 [g3,bb3,c4,e4]@6", // C7
  AR: "c2@2 [g3,bb3,c4,e4] ~ e2 ~ [g2,g3,bb3,c4,e4] ~ c2@2 [g3,bb3,c4,e4] ~ e2 ~ [g2,g3,bb3,c4,e4] ~", // C7
  AS: "~@2 [g3,bb3,c4,e4] ~ e2 ~ [g2,g3,bb3,c4,e4] ~ c2@2 [g3,bb3,c4,e4] ~ e2 ~ [g2,g3,bb3,c4,e4] ~, c2 ~@3", // C7
  AT: "f4@2 [a3,c4,f4,a4] ~ a2 a4 [c3,a3,c4,f4] ~ [f2,f5]@2 [a3,c4,f4,a5] ~ a2 a5 [c3,a3,c4,f4,f5] ~, f2@3 c5@2 ~@6 c6@2 ~@3", // F
  AU: "~@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~ f2@2 [a3,c4,eb4,f4] ~ a2 ~ [c3,a3,c4,eb4,f4] ~, f2 ~@3", // F F7
  AV: "~@2 [bb3,d4,f4,d5] ~ d3 d5 [f3,bb3,d4,f4] ~ bb5@2 [bb3,d4,f4,d6] ~ d3 d6 [f3,bb3,d4,f4,bb5] ~, bb2@3 f5@2 ~ bb4@2 bb2@3 f6@2 ~@3", // Bb
  AW: "~@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~@3 [g3,bb3,c4,e4] ~ e2 ~ [g2,g3,bb3,c4,e4] ~, f2 ~ c2 ~", // F C7
  AX: "~@2 [a3,c4,e4] ~ a2 ~ [c3,a3,c4,e4] ~@3 [a3,d4,f4] ~ a2 ~ [g2,a3,d4,f4] ~, c3 ~ d3 ~", // Am Dm
  AY: "~@2 [a3,c4,e4] ~ a2 ~ [a3,c4,e4] ~@3 [a3,d4,f4] ~ a2@2 [g2,a3,d4,f4] ~, c3@2 ~ c3 d3@2 ~@2", // Am Dm
  AZ: "f2@2 [a3,c4,f4] ~ a2 ~ [c3,a3,c4,f4] ~@3 [f3,g3,c4,e4] ~ e2 ~ [g2,g3,c4,e4] ~, ~@2 c2 ~", // F C
  BA: "d2@2 [a3,d4,f4] ~ a2@2 [a3,d4,f4] ~ d3@2 [a3,d4,f4] ~ a2@2 [a3,d4,f4] ~", // Dm
  BB: "d3@2 [a3,d4,f4] ~ a2@2 [a3,d4,f4] ~ d3@2 [a3,d4,f4] ~ a2@2 [a3,d4,f4] ~", // Dm
  BC: "c3 ~ [bb2,g3,c4,e4] ~ a2 ~ [g2,g3,bb3,c4,e4] ~ [f2,a3,c4,f4] ~@3 [f2,f3]@4", // C7 F
})).s("gm_piano").gain(0.45).pan(0.4)

// other · brass section · "bl„ser"
const brass_section = note(`<
  ~@29 A B@2 C D E F G@2 ~@2 H I J ~@10 K L@2 C M N@2 O@2 ~@2 H I J ~ P Q R ~@6 S T U V S E W X@2 ~@3
>`.pickRestart({
  A: "~ f4 a4 ~ c5 d5 ~ f5, ~@14 e5 ~", B: "[~@2 f5@2 g5@2 ~@2 a5@2 f5@2 ~@2 g5@4 f5@2 e5@3 ~ f5@2 d5@2 ~@2 f4@2]/2",
  C: "~@2 f4 ~ a4@3 ~ c5 ~ c5@3 ~ f4@2", D: "~ f4 a4 ~ c5 d5 ~ f5", E: "~@2 f5@2 g5@3 ~ a5@2 f5@3 ~ g5@2",
  F: "~@2 f5 ~ e5 ~ f5@3 ~ c5@2 ~@2 f4@2, ~@14 g4 ~", G: "[~@2 f4 ~ a4@3 ~ c5 ~ c5@3 ~ f4@10 ~@8]/2",
  H: "[c5,a5] ~ [c5,a5]@3 ~ [c5,a5]@2 [bb4,g5] ~ [bb4,g5]@3 ~ g5@2, ~@14 bb4 ~", // F Eb
  I: "[a4,f5] ~ [a4,f5]@3 ~ [a4,f5]@2 [g4,eb5] ~ [g4,eb5]@3 ~ [g4,eb5]@2", J: "[bb4,d5]@13 ~@3",
  K: "~@2 f4@2 a4@2 ~@2 c5 ~ d5@3 ~ f5@2, ~@10 c5 ~@5",
  L: "[~@2 f5@2 g5@3 ~ a5 ~ f5@3 ~ g5@4 f5 ~ e5 ~ f5@3 ~ d5@2 ~@2 f4@2]/2", M: "~@2 f4@2 a4@3 ~ c5@2 d5@2 ~@2 f5@2",
  N: "[~@2 f5@2 g5@2 ~@2 a5@2 f5@3 ~ g5@4 f5 ~ e5 ~@3 f5@2 d5@2 ~@2 f4@2]/2",
  O: "[~@2 f4@2 a4@3 ~ c5 ~ c5@3 ~ f4@16 ~@2]/2", P: "~@2 g5 ~ f5 ~ e5 ~ d5 ~ c5 ~ bb4 ~ a4 ~",
  Q: "g4 ~ f4 ~ e4 ~ d4 ~ c4 ~ bb3 ~ a3 ~ g3 ~", R: "f3 ~@15", S: "~@2 f4 ~ a4@2 ~@2 c5@2 d5@2 ~@2 f5@2",
  T: "~@2 f5@2 g5@3 ~ a5@2 f5@2 ~@2 g5@2", U: "~ f5 e5 ~ f5 d5 ~ f4", V: "~@2 f4 ~ a4@2 ~@2 c5 ~ c5@2 ~@2 f4@2",
  W: "~@2 f5 ~ e5@2 ~@2 f5@2 d5@2 ~@2 f4@2", X: "[~@2 f4 ~ a4@2 ~@2 c5 ~ c5@2 ~@2 f4@11 ~@7]/2",
})).s("gm_brass_section").gain(0.4)

// chords · string ensemble 1 · "fl„che"
const string_ensemble_1 = note(`<
  ~@4 A@8 B@8 C@8 D@8 E@4 F@4 G@2 H@6 I@4 J@2 K@6 L@2 M@2 N@2 O@3 P@3 Q@6 R@5 S@2
>`.pickRestart({
  A: "[[f4,a4]@48 [e4,bb4]@31 ~@25 eb4@7 ~ [d4,bb4]@15 ~, c4@13 ~@3, ~@5 f4@3, ~@80 a4@31 ~@17]/8", // F Edim Gm
  B: "[a4@7 ~ [e4,g4]@8 f4@32 e4@8 d4@7 ~@9 [e4,g4]@8 f4@32 e4@8 [d4,f4]@8, c4@55 ~ f4@15 ~@57, ~@2 a4@7 ~ a4@6, ~@64 c4@55 ~@9]/8", // Em Dm
  C: "[~@8 [e4,g4]@8 [f4,a4]@32 [e4,bb4]@31 ~@25 eb4@7 ~ [d4,bb4]@15 ~, c4@103 ~@25, ~@80 f4@47 ~, ~@80 a4@31 ~@17]/8", // Em F Edim Gm
  D: "[[f4,a4]@8 [e4,g4]@8 f4@32 e4@8 d4@7 ~@9 [e4,g4]@8 f4@32 e4@8 [d4,f4]@7 ~, c4@55 ~ f4@16 ~@56, ~@16 a4@56 ~@8 a4@47 ~, ~@32 c4@27 ~@5]/8", // F Em Dm
  E: "[[f4,a4]@7 ~ [e4,bb4]@7 ~@9 eb4@8 [d4,bb4]@31 ~, c4@31 ~@33, ~@16 f4@47 ~, ~@16 a4@15 ~@33]/4", // F Edim Gm
  F: "[~@16 eb4@15 ~ [d4,bb4]@30 ~@2, f4@31 ~, [c4,a4]@31 ~@33]/4", // Gm F
  G: "[[f4,a4]@15 ~ e4@15 ~, c4@31 ~, ~@15 g4@15 ~@2]/2", // F
  H: "[[f4,a4]@15 ~@2 bb4@30 ~@26 eb4@7 [d4,bb4]@15 ~, c4@79 ~@17, ~ e4@2 f4@3, ~@48 a4@31 ~@17]/6", // F Gm
  I: "[a4@5 ~@3 [e4,bb4]@8 f4@31 ~ e4@8 [d4,f4]@7 ~, c4@27 ~@5, ~@16 a4@47 ~]/4", // Edim Dm
  J: "[[f4,a4]@8 [e4,g4]@8 [f4,a4]@15 ~, c4@31 ~]/2", // F Em F
  K: "[f4@16 e4@8 d4@7 ~@9 [e4,g4]@8 ~@8 eb4@8 [d4,bb4]@30 ~@2, a4@13 ~@3 a4@5 ~@11, c4@22 ~@2 f4@16 ~@8 f4@47 ~, ~@32 c4@31 ~@33]/6", // Em Gm
  L: "[~@20 eb4@11 ~, [c4,f4,a4]@31 ~]/2", M: "[[d4,f4,bb4]@15 ~]/2", N: "[[f4,a4]@16 [e4,g4]@15 ~, c4@15 ~]/2",
  O: "[[f4,a4]@15 ~@9 bb4@23 ~, c4@47 ~, ~@16 [e4,g4]@31 ~]/3", P: "[c4@24 eb4@7 ~ [d4,bb4]@15 ~, f4, a4@31 ~@17]/3",
  Q: "[a4@7 ~ [e4,g4]@8 f4@32 e4@8 d4@8 ~@8 [e4,g4]@8 [f4,a4]@15 ~, c4@27 ~ f4@8 ~@12, ~@2 a4@7 ~@3, ~@64 c4@31 ~]/6", // Em F
  R: "[f4@16 e4@8 d4@7 ~@9 [e4,g4]@8 ~@4 d4@25 ~@3, a4 ~, c4@23 ~ f4@16 ~@8 [f4,a4]@30 ~@2, ~@8 c4@5 ~@7]/5", // Em F
  S: "[[g4,c5]@4 [c4,f4,a4] ~ [a3,c4,f4]@3 ~@7, [c4,e4]@3 ~@13]/2", // C5 F C
})).s("gm_string_ensemble_1").gain(0.35)

// bass · electric bass finger · "bass"
const bass = note(`<
  ~@4 A@2 B C@2 A D E F A D G H I J K H I L M N I A E H I O K H I P G Q R S T U V S W X Y Z AA AB Z AC AD AE AC AF AG AH
  AI AF AJ AK AL S AM AN AO S AP AQ AR Z AS AT AF@2 AU AV AI Z AW AK AI@2 AX AH AY@2 AZ ~
>`.pickRestart({
  A: "f1@3 ~ a1@2 c2@2 f1@3 ~ a1@2 c2@2", B: "f1@2 ~@2 a1 ~ c2 ~ f1@3 ~ a1@2 c2 ~",
  C: "c2@3 ~ e2@2 g1@2 c2@3 ~ e2@2 g1@2", D: "f1@3 ~ a1@2 c2@2 f1@3 ~ a1@2 c2 ~",
  E: "bb1@3 ~ d2@2 f2@2 bb1@2 ~@2 d2@2 f2@2", F: "f1@3 ~ a1@2 c2 ~ c2@3 ~ e2@2 g1@2",
  G: "c2@3 ~ a1@2 c2@2 d2@3 ~ a1@2 g1 ~", H: "f1@3 ~ a1@2 c2@2 c2@3 ~ e2@2 g1@2",
  I: "f1@3 ~ a1@2 c2@2 f1@2 ~@2 a1@2 c2@2", J: "f1@2 ~@2 a1@2 c2@2 f1@3 ~ a1@2 c2 ~",
  K: "c2@3 ~ a1@2 c2@2 d2@4 a1@2 g1 ~", L: "f1 ~ a1 c2 f1 ~ a1 c2", M: "c2 ~ e2 g1 c2 ~ e2 g1",
  N: "c2@2 ~@2 e2@2 g1@2 c2@3 ~ e2@2 g1@2", O: "f1@2 ~@2 a1@2 c2@2 f1@2 ~@2 a1@2 c2 ~",
  P: "f1@3 ~ a1@2 c2@2 f1@2 ~@2 a1@2 c2 ~", Q: "f1@3 ~ a1 ~ c2 ~ c2@3 ~ e2@2 g1 ~",
  R: "f1@3 ~ a1 ~ c2 ~ f1 ~ f1@2 g1@2 a1 ~", S: "bb1@2 f1 ~ bb1@2 f1 ~ bb1@2 f1 ~ bb1@2 f1 ~",
  T: "bb1@2 f1 ~ bb1@2 f1 ~ bb1@2 f1 ~ bb1 ~ f1 ~", U: "f1@3 ~ a1 ~ c2@2 f1 ~ f1@2 a1 ~ c2@2",
  V: "f1@3 ~ a1 ~ c2 ~ f1 ~ f1@2 g1 ~ a1 ~", W: "bb1@2 f1 ~ bb1@2 f1 ~ bb1 ~ f1 ~ bb1 ~ b1 ~",
  X: "c2 ~ c2 ~@3 c2@3 ~ c2@3 ~ c2@2", Y: "~@2 c2@3 ~ c2@3 ~ bb1 ~ a1 ~ g1 ~", Z: "f1@3 ~ a1 ~ c2 ~ f1@3 ~ a1 ~ c2 ~",
  AA: "c2@2 ~@2 e2 ~ g1 ~ c2@3 ~ e2 ~ g1@2", AB: "c2@2 ~@2 e2 ~ g1@2 c2@3 ~ e2 ~ g1 ~",
  AC: "f1@3 ~ a1 ~ c2 ~ f1@4 a1 ~ c2 ~", AD: "bb1@3 ~ d2@2 f2 ~ bb1@3 ~ d2 ~ f2 ~",
  AE: "f1@3 ~ a1@2 c2 ~ c2@4 e2@2 g1 ~", AF: "f1@4 a1 ~ c2 ~ f1@3 ~ a1 ~ c2 ~", AG: "c2@4 a1 ~ c2 ~ d2@3 ~ a1@2 g1 ~",
  AH: "f1@3 ~ a1 ~ c2 ~ c2@4 e2 ~ g1 ~", AI: "f1@4 a1 ~ c2 ~ f1@4 a1 ~ c2 ~", AJ: "c2@4 a1 ~ c2 ~ d2@4 a1@2 g1@2",
  AK: "f1@3 ~ a1 ~ c2 ~ c2@3 ~ e2 ~ g1 ~", AL: "f1@4 a1 ~ c2 ~ f1 ~ f1@2 g1 ~ a1 ~",
  AM: "bb1@2 f1 ~ bb1@2 f1 ~ bb1@2 f1 ~ bb1@2 c2@2", AN: "f1 ~ f1@2 a1 ~ c2@2 f1 ~ f1@2 a1@2 c2@2",
  AO: "f1 ~ f1@2 a1@2 c2@2 f1 ~ f1@2 g1@2 a1@2", AP: "bb1@2 f1 ~ bb1@2 f1 ~ bb1@2 f1 ~ bb1 ~ b1 ~",
  AQ: "c2 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@2", AR: "~@2 c2@2 ~@2 c2 ~ c2@2 bb1@2 a1 ~ g1 ~",
  AS: "c2@3 ~ e2 ~ g1 ~ c2@3 ~ e2 ~ g1 ~", AT: "c2@4 e2 ~ g1 ~ c2@3 ~ e2 ~ g1 ~", AU: "bb1@4 d2 ~ f2 ~ bb1@4 d2 ~ f2 ~",
  AV: "f1@4 a1 ~ c2 ~ c2@4 e2 ~ g1 ~", AW: "c2@4 a1 ~ c2 ~ d2@4 a1 ~ g1 ~", AX: "c2@4 a1 ~ c2@2 d2@4 a1@2 g1 ~",
  AY: "d2@3 ~ a1@3 ~ d2@3 ~ a1@3 ~", AZ: "c2 ~ bb1 ~ a1 ~ g1 ~ f1 ~@3 f1@4",
})).s("gm_electric_bass_finger").gain(0.5)

// drums · kick
const kick = s("bd").struct("<~@4 A@40 B ~ A@22 B ~ A@17 C ~>".pickRestart({
  A: "x!2", B: "x", C: "x ~ x!2",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct("<~@4 A@33 B A@3 B A@2 ~@2 A@15 B A@3 B A@2 ~@2 A@17 B ~>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2",
})).gain(0.8)

// drums · low tom
const low_tom = s("lt").struct("<~@5 A ~@31 A ~@3 B ~@19 A ~@3 B ~@23>".pickRestart({
  A: "~@12 x!3 ~", B: "~@14 x!2",
})).gain(0.72)

// drums · hihat
const hihat = s("hh").struct("<~@2 A ~ B@33 C B@3 D B@2 ~@2 B@15 E B@3 F B@2 ~@2 B@17 G ~>".pickRestart({
  A: "x!3 ~", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x!2 ~@3", D: "~ x ~@6", E: "~ x ~ x ~ x ~@2", F: "~ x ~ x ~@4",
  G: "~ x ~ x ~@2 x ~",
})).gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct("<~@5 A ~@31 A ~@3 B ~@19 A ~@3 C ~@23>".pickRestart({
  A: "~@10 x!2 ~@4", B: "~@12 x!3 ~", C: "~@12 x!2 ~@2",
})).gain(0.72)

// drums · high tom
const high_tom = s("ht").struct("<~@5 A ~@31 A ~@3 B ~@19 A ~@3 C ~@23>".pickRestart({
  A: "~ x", B: "~@8 x ~ x!2 ~@4", C: "~@8 x!4 ~@4",
})).gain(0.8)

// drums · crash
const crash = s("cr").struct(`<
  ~@4 A ~ A ~@7 A ~@3 A ~@3 A ~@7 A ~@7 A ~@3 A ~@3 A ~@7 A ~@3 A ~@3 A ~@3 A ~ A ~ A ~@7 A ~@3 A ~@4 B ~
>`.pickRestart({
  A: "x", B: "~@3 x",
})).gain(0.56)

// drums · tambourine
const tambourine = s("tb").struct("<~@5 A ~@32 A@8 ~@16 A@8 ~@8 A@9 B ~>".pickRestart({
  A: "x!8", B: "x!5 ~@3",
})).gain(0.48)

stack(piano, brass_section, string_ensemble_1, bass, kick, snare, low_tom, hihat, mid_tom, high_tom, crash, tambourine)

More by The Beatles