Strudelify

Some Other Guy

The Beatles

KeyC majorTempo134 bpm
0:00/0:00
// Some Other Guy — The Beatles
// 134 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 102 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(134/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 E F G H G H I J K L M N G H G A O P Q E O G@2 P A@2 R I S T G H G T U A P V E G T P O P G W X W U G H U Y
  E Y Q Z Y V E A U@3 AA I R@2 A G T A Y AB G T G P O P S X I O A B AC S AB P@2 AD AE AF AG ~
>`.pickRestart({
  A: "c2 ~ c2 ~ c2 ~ c2@2 c2 ~ c2 ~ c2 ~ c2 c1", B: "c2 ~ c2 ~ c2 ~ c2 c1 c2 ~ c2 ~ c2 ~ b1 ~",
  C: "c2 ~ c2 ~ c2 ~ c2 c1 c2 ~ c2 ~ c2 ~ c2 ~", D: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~",
  E: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2@2", F: "f2 ~ f2 ~ f2 ~ f2@2 f2 ~ f2@2 f2 ~ f2 ~",
  G: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2", H: "c2 ~ c2 ~ c2 ~ c2@2 c2 ~ c2@2 c2 ~ c2 ~",
  I: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2@2", J: "g2 ~ g2 ~ g2 ~ g2@2 g2 ~ g2@2 g2 ~ g2 ~",
  K: "g2 ~ g2@2 g2 ~ g2@2 g2 ~ g2@2 g2 ~ g2@2", L: "g2 ~ g2@2 g2 ~ g2@2 g2 ~ g2 ~ g2 ~ g2 ~",
  M: "c2 ~ c2@2 c2 ~ c2@2 c2 ~ c2@2 c2 ~ c2@2", N: "c2 ~ c2@2 c2 ~ c2@2 c2 ~ c2 ~ c2 ~ c2 ~",
  O: "c2 ~ c2 ~ c2 ~ c2 c1 c2 ~ c2 ~ c2@2 b1 ~", P: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 c1 c2 c1 c2!2",
  Q: "f2 ~ f2 ~ f2 ~ f2 f1 f2 ~ f2 ~ f2@2 e2 ~", R: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 g1 g2 g1 g2!2",
  S: "g2 ~ g2 ~ g2 ~ g2@2 g2 ~ g2 ~ g2 ~ g2 ~", T: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2 b1 ~",
  U: "c2 ~ c2 ~ c2 ~ c2@2 c2 ~ c2 ~ c2 ~ c2 ~", V: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 f1 f2 f1 f2!2",
  W: "g2 ~ g2 ~ g2 ~ g2@2 g2 ~ g2 ~ g2 ~ g2 g1", X: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2@2 f#2 ~",
  Y: "f2 ~ f2 ~ f2 ~ f2@2 f2 ~ f2 ~ f2 ~ f2 f1", Z: "f2 ~ f2 ~ f2 ~ f2@2 f2 ~ f2 ~ f2 ~ f2 ~",
  AA: "g2 ~ g2 ~ g2 ~ g2 g1 g2 ~ g2 ~ g2@2 f#2 ~", AB: "f2 ~ f2 ~ f2 ~ f2 f1 f2 ~ f2 ~ f2@2 b1 ~",
  AC: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2 f#2 ~", AD: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2@2 e2 ~",
  AE: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2@2 b1 ~", AF: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2!2",
  AG: "c2 ~ g2@2 c3 ~ c3 ~@5 c2@4",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · electric guitar clean · "GUITAR"
const electric_guitar_clean = note(`<
  A B@2 C@2 D@2 E@2 F@2 G@2 H@4 I@2 J@2 K@4 L@2 M@2 I@2 G@2 N@2 O@2 ~@2 P Q@2 R@2 S@2 T@2 U@2 S@2 V W X ~@3 Y@3 Z@2 I@2
  Z@2 R@6 AA AB AC@2 AD AE AC@2 AF@2 T@2 AG W Z@2 AH@2 AI@2 Z@2 T@2 AC@2 AJ@3
>`.pickRestart({
  A: "~@4 [g3,c4]@3 ~ [g3,a#3]@2 g3@4 a#3 ~, ~@10 c4@3 ~@3", // C5 Gm
  B: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@3 ~ [g3,a#3]@2]/2", // C5 Gm C5 Gm C5 Gm
  C: "[[g3,c4]@3 ~ [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@9 ~ [g3,c4]@2 ~@2 [g3,a#3]@2 [g3,c4]@3 ~ [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  D: "[[g3,c4]@2 ~@2 [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@9 ~ [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@3 ~ [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  E: "[[g3,c4]@2 ~@2 [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@3 ~ [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  F: "[[g3,c4]@3 ~ [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@3 ~ [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  G: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@3 ~ [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  H: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@3 ~ [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  I: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@4 [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  J: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3]@2 c4@3 ~ a#3 ~, ~@13 g3@3]/2", // C5 Gm C5 Gm
  K: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@3 ~ [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  L: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@8 ~@2 [g3,c4]@3 ~ [g3,a#3]@2 g3@4 a#3 ~, ~@26 c4@3 ~@3]/2", // C5 Gm C5 Gm
  M: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3] ~ g3@4 a#3 ~, ~@26 c4@3 ~@3]/2", // C5 Gm C5 Gm
  N: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@4 [g3,a#3]@2]/2", // C5 Gm C5 Gm C5 Gm
  O: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@9 ~@13]/2", P: "~@4 c4@2 ~@2 [g3,a#3]@2 c4@4 [g3,a#3] ~",
  Q: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3]@2 g3@4 a#3 ~, ~@26 c4@3 ~@3]/2", // C5 Gm C5 Gm
  R: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@3 ~ [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  S: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@8 ~@2 [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@3 ~ [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  T: "[[g3,c4]@3 ~ [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@8 ~@2 [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@3 ~ [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  U: "[[g3,c4]@3 ~ [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@4 [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  V: "[g3,c4]@3 ~ [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@6", W: "~@4 [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@3 ~ [g3,a#3] ~",
  X: "[g3,c4]@2 ~@2 [g3,c4]@3 ~ [g3,a#3]@2 [g3,c4]@5 ~", // C5 Gm C5
  Y: "[~@4 [g3,c4]@3 ~ a#3 ~ c4@3 ~ a#3 ~ c4@3 ~ [g3,c4]@3 ~ a#3 ~ c4@9 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@4 [g3,a#3] ~, ~@8 g3@5 ~ g3@5 ~@5 g3@11 ~@13]/3", // C5 Gm C5 Gm
  Z: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3] ~ g3@4 a#3 ~, ~@26 c4@3 ~@3]/2", // C5 Gm C5 Gm
  AA: "[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@6", AB: "~@4 [g3,c4]@3 ~ [g3,a#3] ~ g3@4 a#3 ~, ~@10 c4@3 ~@3",
  AC: "[[g3,c4]@3 ~ [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@8 ~@2 [g3,c4]@3 ~ [g3,a#3] ~ g3@4 a#3 ~, ~@26 c4@3 ~@3]/2", // C5 Gm C5 Gm
  AD: "[g3,c4]@3 ~ [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@5 ~", AE: "~@4 [g3,c4]@2 ~@2 [g3,a#3]@2 [g3,c4]@3 ~ [g3,a#3] ~",
  AF: "[[g3,c4]@3 ~ [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@8 ~@2 [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@3 ~ [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  AG: "[g3,c4]@2 ~@2 [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@6", // C5 Gm C5
  AH: "[[g3,c4]@3 ~ [g3,c4]@2 ~@2 [g3,a#3] ~ [g3,c4]@9 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@3 ~ [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  AI: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@8 ~@2 [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@4 [g3,a#3] ~]/2", // C5 Gm C5 Gm C5 Gm
  AJ: "[[g3,c4]@3 ~ [g3,c4]@3 ~ [g3,a#3] ~ [g3,c4]@11 ~ [g3,c4]@13 ~@13]/3", // C5 Gm C5
})).s("gm_electric_guitar_clean").gain(0.36)

// chords · electric guitar clean · "GUITAR"
const electric_guitar_clean_2 = note(`<
  A B C@2 D@4 E F C@2 G@2 H@2 E F I@2 J K L J M N J O@2 L O L P Q P R S@2 R J R L J T N R O R@3 L U@2 V R S@2 L M T@3 W
  N W T J R L R V U@2 V L@2 R@2 N T L J R J L R Q V P L I@2 J V N O J Q N X Y ~
>`.pickRestart({
  A: "~@4 [c3,g3]@2 ~@2 c2@2 [c3,g3] ~@3 [c3,g3]@2", B: "~ [c3,g3] ~ c2 [c3,g3] ~ [c3,g3] ~",
  C: "[~@4 [c3,g3]@2 ~@4 [c3,g3]@2 ~@2 [c3,g3]@4 c3@2 ~@2 c3@2 ~@2 c3@2 g3@2 c3 ~, ~@20 g3@4 c4@5 ~@3]/2", // C5
  D: "[~@2 [f3,c4,f4] ~@5 [f3,c4,f4]@4 c3@2 [f3,c4,f4]@4 ~@2 f3@2 ~@2 c4@2 ~@2 f3@2 c4 ~]/2", // F5
  E: "~@2 [c3,g3] ~@3 c2@2 [c3,g3]@4 c2@2 [c3,g3]@2", F: "~ [c3,g3] ~ [c3,g3]@2 c2 c3 [c3,g3]",
  G: "[[g2,d3,g3]@2 ~@4 [g2,d3,g3]@2 ~@2 [g2,d3,g3]@2 ~@2 [g2,d3,g3]@4 ~@2 g2@2 ~@2 [g2,d3,g3]@2 g2 ~ g2 ~ d3 ~]/2", // G5
  H: "[~@4 [g2,d3]@2 ~@4 [g2,d3]@2 ~@2 [g2,d3]@4 g2@2 ~@2 g2@2 ~@2 g2@2 d3@2 g2 ~, ~@20 d3@4 g3@5 ~@3]/2", // G5
  I: "[~@2 [c3,g3,c4] ~@5 [c3,g3,c4]@4 g2@2 [c3,g3,c4]@4 ~@2 c3@2 ~@2 g3@2 ~@2 c3@2 g3 ~]/2", // C5
  J: "~@2 [c3,g3] ~@3 c2@2 ~@2 c2@2 ~@2 g3 ~, ~@2 [c3,g3] c3", // C5
  K: "~@2 [c3,g3] ~@5 c3@2 g3@2 ~@2 g3 ~, c2@5 ~ c2@10, ~@4 c4@3 ~, ~@3 c3", // C5
  L: "~@2 [c3,g3] ~@5 c3@2 g3@2 ~@2 g3@2, c2@5 ~ c2@10, ~@4 c4@3 ~, ~@3 c3", // C5
  M: "~@2 [f3,c4] ~@5 f3@2 c4@2 ~@2 c4@2, f2@5 ~ f2@10, ~@4 f4@3 ~, ~@3 f3", // F5
  N: "~@2 [f3,c4]@2 ~@4 [f3,c4]@7 ~, ~@6 f2@9 ~", O: "~@2 [c3,g3] ~@3 c2@2 [c3,g3]@6 ~@2",
  P: "~@2 [g2,d3] ~@3 g2@2 d3@6 ~@2", Q: "g2@2 d3 ~@7 d3@2 ~@2 d3@2, ~@6 g2@5 ~ g2@4, ~@4 g3@3 ~",
  R: "~@2 [c3,g3]@2 ~@4 [c3,g3]@7 ~, ~@6 c2@9 ~", // C5
  S: "[~@2 [c3,g3] ~@2 [c3,g3] ~@2 c2 ~@4 g3 c3 [c3,g3], ~@14 [c3,g3]@4 c4@4 c3@5 ~@5, ~@20 g3@4 c4@5 ~@3]/2", // C5
  T: "~@2 [f3,c4] ~@3 f2@2 [f3,c4]@6 ~@2", U: "~@2 [g2,d3] ~@3 g2@2 ~@2 g2 ~ g2 ~ d3 ~, ~@2 d3 ~",
  V: "~@2 d3@2 ~@4 d3@7 ~, ~@6 g2@9 ~", W: "~@2 [f3,c4] ~@3 f2@2 ~@2 f2@2 ~@2 c4 ~, ~@2 [f3,c4] f3", X: "[g3,c4]",
  Y: "[c3,g3,c4] ~@3 [c3,f3,c4] ~ [c3,g3,c4] ~@5 [c3,g3,c4]@4", // C5 F5 C5
})).s("gm_electric_guitar_clean").gain(0.25)

// chords · electric guitar clean · "GUITAR" · soft notes
const electric_guitar_clean_3 = note(`<
  ~@4 A B A B C D ~@2 E F ~@2 C D G H I ~@2 I ~ J I K@2 ~ K ~ L ~ L M N ~ M I M ~ I O J M K M@3 ~ P@2 Q M N ~@3 O@3 R J
  R O I M ~ M Q P@2 Q ~@2 M@2 J O ~ I M I ~ M ~ Q L ~ G H I Q J K I ~ J S ~@2
>`.pickRestart({
  A: "~@6 c3 ~@9", B: "~@2 c3 ~@3 c3@2 f3@2 c3@2 ~@4", C: "c2@2 f#3 ~@13", D: "~@4 c2 ~@11", E: "~@4 g2 ~@11",
  F: "~@2 d3 ~@5", G: "~@6 g2 ~@9", H: "~@2 g2 ~@3 g2@2 c3@2 g2@2 ~@4", I: "c2 ~@11 g3 ~@3", J: "f2@5 ~@11",
  K: "~@2 f#3 ~@13", L: "~@2 c#3 ~@13", M: "c2@5 ~@11", N: "~@3 c2 ~@4 c2 ~@3 c2 ~@3", O: "~@2 b3 ~@13",
  P: "g2 ~@11 d3 ~@3", Q: "g2 ~@3", R: "f2 ~@11 c4 ~@3", S: "c3",
})).s("gm_electric_guitar_clean").gain(0.13)

// other · electric guitar clean · "GUITAR"
const electric_guitar_clean_4 = note("<~@58 A B C D E F G H I J K L M N O P Q R ~@26>".pickRestart({
  A: "~@4 [c4,d#4] ~ [c4,d#4] ~ [c4,d#4]@2 d4 ~ c4 ~ d#4@2", B: "~@2 d4@2 c4@2 d#4@2 d4@2 c4 ~@3 a#3@2",
  C: "~@2 c4 ~ a#3@2 g3@2 a#3@2 g3@2 f#3@2 g3@2", D: "~@2 c4 ~ c4 ~ c4 ~ d#4 ~ c4 d#4@2 c4 d#4@2",
  E: "c4 a#3 ~ c4@2 a#3 c4 ~ d#4!2 ~ d#4 ~ c4 ~@2", F: "[c4,d#4]!2 ~ [c4,d#4] ~ [c4,d#4]@2 c4 d#4 c4 a#3 c4 ~ a#3 g3 ~",
  G: "a#3@2 g3 ~ f3 ~ g3@2 ~@4 f3@2 ~@2", H: "g3 ~ a#3 ~ c4 ~ a#3 g3 a#3 g3 ~ f3 ~ g3 ~@2",
  I: "~@6 d#3 e3 g3 e3 ~ d#3 ~ c3 ~@2", J: "[g3,a#3] ~ a3 ~ g3 ~ d#3 g3 d#3 c3 ~ d#3 ~ g3 ~ d#3",
  K: "g3 ~ a#3 ~ c4 ~ a#3 c4 ~ a#3 c4 ~ a#3 c4 ~ d#4", L: "~ c4 a#3 c4 a#3 g3 a#3 g3 ~ f3 ~ g3@2 g3 ~@2",
  M: "g3 ~@3 [a#3,b3] [b3,d4] ~ b3 ~ a#3 ~ g3 b3 ~ a#3 ~", N: "~@2 b3@3 d4@2 ~ f4@3 e4@3 d4@2",
  O: "~@2 e4@3 d4@3 b3@3 g3 ~ g#3 ~@2, ~@5 e4 ~@10", P: "g3 ~ d#3 g3 d#3 ~ g3 d#3 ~@2 d#3 ~ d#3@2 c3 ~",
  Q: "~@2 c3@3 ~ a#2@3 ~ g2@2 ~@2 d#2 ~", R: "c2 ~@7",
})).s("gm_electric_guitar_clean").gain(0.46)

// drums · kick
const kick = s("bd").struct("<A@5 B A@13 C A@20 B A B A@14 C A@11 B A@3 D A@24 E F G ~>".pickRestart({
  A: "x!2 ~ x!3 ~ x", B: "x ~ x ~@3 x ~ x ~ x ~@3 x!2", C: "~@2 x!2 ~@4 x!2 ~@4 x ~", D: "~@4 x!2 ~@2",
  E: "x!2 ~ x ~@4", F: "x ~@2 x!3 ~ x", G: "~@10 x!2 ~@4",
})).gain(0.4)

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

// drums · low tom
const low_tom = s("lt").struct("<~@27 [~@3 x] ~@10 [~@2 x!6] ~@61 [~ x ~@2] ~>").gain(0.4)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@100 [~ x ~@6] ~>").gain(0.45)

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

// drums · crash
const crash = s("cr").struct("<A ~@19 A ~@6 B ~@11 A ~@18 A ~@15 A ~@24 A C ~>".pickRestart({
  A: "x", B: "~@7 x", C: "~@3 x",
})).gain(0.4)

// drums · tambourine
const tambourine = s("tb").struct("<A@19 B A@18 B A@18 B A@42 C ~>".pickRestart({
  A: "x!4", B: "x!8", C: "x!3 ~",
})).gain(0.4)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<[x!4]!38 [x!8] [x!4]!61 [x!3 ~] ~>").gain(2.01)

// drums · cabasa · soft notes
const cabasa_soft = s("cabasa:4").struct("<[~ x ~ x ~ x ~ x]!38 ~ [~ x ~ x ~ x ~ x]!61 [~ x ~ x ~@4] ~>").gain(1.26)

// drums · shaker
const shaker = s("sh").struct("<[x!4]!100 [x!3 ~] ~>").gain(0.4)

stack(
  bass, electric_guitar_clean, electric_guitar_clean_2, electric_guitar_clean_3, electric_guitar_clean_4, kick, snare,
  low_tom, hihat, mid_tom, open_hat, crash, tambourine, cabasa, cabasa_soft, shaker
)

More by The Beatles