Strudelify

Too Much Monkey Business

The Beatles

KeyC majorTempo170 bpm
0:00/0:00
// Too Much Monkey Business — The Beatles
// 170 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 84 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): CHUCK BERRY.
setcpm(170/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(`<
  ~@2 A B C D E F G H E F ~@2 I J C K L M N O L M ~@2 P Q C R L S G T L U L V L W X R L V Y O L M ~@2 Z AA C D L M AB H
  L U ~@2 Z AA C D L W G O L M ~@2 AC AA AD AE L W AB O AF AG
>`.pickRestart({
  A: "c2 ~ c2 ~", B: "c2@5 ~@3 c2@2 ~@2 d#2@3 ~", C: "~@2 f2@4 c2@2 f2 ~ f2@4 c2@2",
  D: "f2 ~ f2@4 c2@2 a2@2 a#2@2 b2@2 c3@2", E: "c2 ~ c2@4 g1@2 c2 c1 c2@4 g1@2",
  F: "c2 ~ c2@4 g1@2 c2 ~ c2 ~ c2@2 c2 ~", G: "g2 ~ g2@4 g2 ~ g2 ~ g2@3 ~ g2 ~",
  H: "f2 ~ f2@4 c2 ~ a2@2 a#2@2 b2@2 c3 ~", I: "c2@4 ~@4 c2@5 ~@3", J: "c2@6 ~@2 c2@2 ~@3 f2 ~@2",
  K: "f2 ~ f2@3 ~ f2@2 a1@2 a#1@2 b1@2 c2@2, ~@10 a1 ~@5", L: "c2 ~ c2@4 g1@2 c2 ~ c2@4 g1@2",
  M: "c2 ~ c2@3 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", N: "g2 ~ g2@4 d2@2 g2 ~ g2@4 d2 ~",
  O: "f2 ~ f2@4 f2 ~ f2 ~ f2 ~ f2@2 c2 ~", P: "c2@5 ~@3 c2@5 ~@3", Q: "c2@3 ~ c2 ~ d#2 ~",
  R: "f2 ~ f2@3 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~", S: "c2 ~ c2@3 ~ c2 ~ c2 ~ c2 ~ e2 ~ f2 ~",
  T: "f2 ~ f2@3 ~ f2 ~ a1@2 a#1@2 c2@2 f2 ~", U: "c2 ~ c2@3 ~ c2@4 g1@2 c2 ~ c2 ~",
  V: "c2 ~ c2@3 ~ c2@2 e1@2 f1@2 f#1@2 g1@2, ~@10 e1 ~@5", W: "c2 ~ c2@4 g1@2 e2@2 f2@2 f#2@2 g2@2",
  X: "f2 ~ f2@4 c2@2 f2 ~ f2@4 c2@2", Y: "g2 ~ g2@4 d2@2 g2 ~ g2@4 g2 ~", Z: "c2@3 ~ c2@3 ~",
  AA: "c2@6 ~@2 c2@2 ~@2 d#2@3 ~", AB: "g2 ~ g2@4 g1@2 g2 ~ g2@4 d2@2, ~@14 g1 ~", AC: "c2@5 ~@3 c2@6 ~@2",
  AD: "~@2 f2@4 c2@2 f2 f1 f2@4 c2@2", AE: "f2 ~ f2@4 c2@2 f2 ~ f2 ~ f2@2 f2 ~",
  AF: "c2 ~ c2@2 c2 ~ c2@2 a1 ~ a1 ~ g1 ~ g1 ~", AG: "c2 ~ g1 ~ a1@2 c2@6 ~@4",
})).s("gm_electric_bass_finger").gain(0.46)

// chords · acoustic guitar steel · "GUITAR"
const acoustic_guitar_steel = note(`<
  ~@2 A B C@2 D@2 E F G@2 ~@2 A B C@2 D@2 H I J K ~@2 A L M N O P E Q J K O P R S T@2 D@2 U F V W ~@2 A X Y Z AA@2 H AB
  AC AD ~@2 A B M N AE@2 AF AG AC AD ~@2 A B AH@2 AI@2 AJ M AK AL
>`.pickRestart({
  A: "[c3,e3,g3,a#3] ~@7 [c3,e3,g3,a#3] ~@7", B: "[c3,e3,g3,a#3] ~@7 [c3,e3,g3,a#3] ~@3 [c3,e3,g3,a#3] ~@3",
  C: "[[a3,c4,f4]@11 ~ f4 ~ c5 ~]/2", D: "[[g3,c4,e4]@11 ~ c4 ~ g4 ~]/2",
  E: "[g3,b3,d4] ~ [g3,b3,d4]@4 g2@2 [g3,b3,d4] ~ [g3,b3,d4]@4 g2@2", F: "[a3,c4,f4]@4 ~@2 c5 ~, ~@4 f4@3 ~",
  G: "[[g3,c4,e4]@25 ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~]/2", // C
  H: "~@2 [g3,b3,d4]@6 [g3,b3,d4] ~ [g3,b3,d4]@3 ~ [g3,b3,d4]@2", // G
  I: "~@2 a4@2 c5@2 [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2, f4 ~@3", // F
  J: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4]@4 c3@2", // C
  K: "[g3,c4,e4] ~ [g3,c4,e4]@4 [g3,c4,e4]@4 c3@2 [g3,c4,e4] ~@3", // C
  L: "[c3,e3,g3,a#3] ~@7 [c3,e3,g3,a#3] ~@2 [c3,e3,a#3] g3 ~@3", M: "~@2 [a3,c4,f4]@5 ~ [a3,c4,f4] ~ [a3,c4,f4]@6",
  N: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] f3 [a3,c4,f4] ~", // F
  O: "[g3,c4,e4] ~ [g3,c4,e4]@4 c3@2 [g3,c4,e4] ~ [g3,c4,e4]@4 c3@2", // C
  P: "[g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@4 c3 ~ [g3,c4,e4] ~@3", Q: "[a3,c4,f4]",
  R: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4]@5 c3", // C
  S: "[g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@8 ~@2", // C
  T: "[~@2 [a3,c4,f4]@6 [a3,c4,f4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@8 f3@2 [a3,c4,f4]@2 f3@2 [a3,c4,f4] ~@3]/2", // F
  U: "[g3,b3,d4]@4 ~@2 d4 ~, ~@4 g3@3 ~, ~@5 b3@2 ~", V: "[g3,c4,e4]@4 ~@2 g4 ~, ~@4 c4@3 ~",
  W: "[g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@5 c3 [g3,c4,e4] c3 [g3,c4,e4] ~", // C
  X: "[c3,e3,g3,a#3] ~@7 [c3,e3,g3,a#3]@2 ~@2 [c3,e3,g3,a#3] ~@3", // C7
  Y: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@5 f3", // F
  Z: "[a3,c4,f4] ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@8 ~@2", // F
  AA: "[~@2 e4@2 ~@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@8 c3@2 [g3,c4,e4]@2 c3@2 [g3,c4,e4] ~@3, c4 ~@7]/2", // C
  AB: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@4 f3@2", // F
  AC: "~@2 [g3,c4,e4]@5 ~ [g3,c4,e4] ~ [g3,c4,e4]@6", // C
  AD: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] c3 [g3,c4,e4] ~", // C
  AE: "[~@2 [g3,c4,e4]@6 [g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@8 c3@2 [g3,c4,e4]@2 c3@2 [g3,c4,e4] ~@3]/2", // C
  AF: "~@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]@5 g2", // G
  AG: "[a3,c4,f4] ~ [a3,c4,f4]@4 f3@2 [a3,c4,f4] ~ [a3,c4,f4]@4 f3@2", // F
  AH: "[[a3,c4,f4]@25 ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~]/2", // F
  AI: "[~@2 e4@2 g4@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@8 c3@2 [g3,c4,e4]@2 c3@2 [g3,c4,e4] ~@3, c4 ~@7]/2", // C
  AJ: "[g3,b3,d4]", // G
  AK: "[g3,c4,e4] ~ [g3,c4,e4]@2 [a3,c4,f4] ~ [a3,c4,f4]@2 [g3,c4,e4] ~ [g3,c4,e4]@2 [a3,c4,f4] ~ [a3,c4,f4] ~", // C F C F
  AL: "[g3,c4,e4] ~@5 [g3,c4,e4]@5 ~@5", // C
})).s("gm_acoustic_guitar_steel").gain(0.38)

// chords · electric guitar clean · "GUITAR"
const electric_guitar_clean = note(`<
  ~ A B C D E F G H I J K ~@2 L M N O P Q@2 R S T ~@2 L U V W X Y Z AA AB AC AD AE AF@2 AG@2 AH@2 AI AJ AK@2 ~@2 L AL AM
  AN AO AP AQ@2 AR AS ~@2 AT AU AV AW AX AY AZ BA BB BC BD ~ BE BF BG@2 BH BI BJ BK BL@2
>`.pickRestart({
  A: "~@15 [c3,e3,a#3]", B: "g3 ~@7 [c3,e3,g3,a#3] ~@7", C: "[c3,e3,g3,a#3] ~@7 [c3,e3,g3,a#3] ~@7",
  D: "~@4 [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4]@2 ~@4 [f3,a3,c4,d#4]@2 ~@2, f2@6 ~@2 f2@7 ~", // F7
  E: "f2@4 [f3,a3,c4,d#4] ~ [f3,a3]@5 ~ [f3,a3,c4,d#4]@2 f3@2, ~@6 c4@3 ~@7", // F7 F F7
  F: "c3@3 ~ [c3,e3,g3,a#3] ~ [c3,e3,g3]@2 c2@4 [c3,e3,g3,a#3] [e3,a#3]@3", // C7 C C7 Edim
  G: "~@4 [c3,e3,g3,a#3] ~ [c3,e3,a#3]@2 ~ c3@2 ~ [e3,g3,a#3]@2 c3 ~, ~@4 c2@3 ~, ~@12 c3 ~@3", // C7 Edim
  H: "g2@4 [g3,b3,f4]@2 ~ g3 ~@3 g2@3 [g3,b3,f4]@2, ~@6 g2@4 [g3,b3,f4]@3 ~@3", // G7
  I: "~@2 f3 ~@4 f3@2 ~ [f3,a3,c4,d#4]@2 f2@2 [f3,a3,c4,d#4]@2, f2@2 [f3,a3,c4,d#4] ~@5, ~@5 f2@5 ~@6", // F7
  J: "c2@4 [c3,e3,g3,a#3]@2 ~@2 c3 ~ [c3,e3,g3,a#3]@2 c2@2 [c3,e3,g3,a#3]@2, ~@6 c2@5 ~@5", // C7
  K: "g2@2 [g3,b3] b3 [g3,f4] [g3,b3,f4] ~ [g3,b3,f4] ~ [g3,b3,f4] ~ [g3,b3,f4] ~ [g3,b3,f4] ~@2, ~@4 g2@3 ~@5 g2@3 ~", // G G7
  L: "[c3,e3,g3,a#3] ~@3 [c3,e3,g3,a#3] ~@3", M: "[c3,e3,g3,a#3]@3 ~@5 [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@2 ~@2",
  N: "f2@4 [f3,a3,c4,d#4] ~ f3@2 ~@2 f3 ~ [f3,a3,c4,d#4] ~ f3@2, ~@3 [a3,c4]@2 ~@3, ~@8 f2@5 ~@3", // F7 Am
  O: "~@4 [f3,a3,c4,d#4] ~ f3@2 ~@2 f3@2 [f3,a3,c4,d#4]@2 [f3,c4] ~, f2@3 [a3,c4,d#4]@2 ~@3, ~@4 f2@3 ~", // F7 F5 Adim
  P: "c2@4 [c3,e3,g3,a#3] ~ [c3,e3,a#3]@2 ~@4 [c3,e3,g3,a#3] ~ c3@2", // C7
  Q: "[~@2 c3 ~ [e3,g3,a#3] ~ [e3,g3,a#3]@2 ~ c3@2 ~ [c3,e3,g3,a#3] ~@2 g2@5 [g3,b3,f4] ~ [g3,b3,f4]@2 ~@2 g3 ~ [g3,b3,f4] ~ [g3,b3,f4] ~, c2@3 ~@4 [e3,a#3] ~@4 g2@3 ~]/2", // Edim C7 G7 Edim
  R: "f2@4 [f3,a3,c4,d#4] ~ [f3,a3,c4]@2 ~@2 f3 ~ [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4] ~, ~@4 f2@3 ~", // F7 F F7
  S: "~@4 [c3,e3,g3,a#3] ~ [e3,g3,a#3] ~ [c3,e3,g3,a#3] ~@3 [c3,e3,g3,a#3] ~ [c3,e3,g3,a#3]@2, c2@3 ~@3 c2 ~", // C7 Edim C7
  T: "~ g3 b3 [g3,b3,f4] ~@2 b3@4 b3@3 ~@3, g2@15 ~, ~@3 [g3,f4]@4 ~", // G7
  U: "[c3,e3,g3,a#3]@2 ~@6 [c3,e3,g3,a#3]@2 ~ [c3,e3,g3,a#3]@2 ~@3", // C7
  V: "~@4 [f3,a3,c4,d#4] ~ f3@2 ~@2 f3 ~ [f3,a3,c4,d#4]@2 [f3,a3,c4]@2, f2@3 [a3,c4,d#4]@2 ~@3, ~@4 f2@3 ~", // F7 F Adim
  W: "~@2 f3 ~ [f3,a3,c4,d#4] ~ f3@2 ~@2 f3 ~ [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4] ~, f2@3 [a3,c4,d#4]@2 ~@3, ~@4 f2@3 ~", // F7 Adim
  X: "~@4 [c3,e3,g3,a#3] ~ [c3,e3,g3,a#3]@2 ~@4 [c3,e3,g3,a#3] ~ [c3,e3]@2, c2@3 ~@5", // C7 C
  Y: "~@4 [c3,e3,g3,a#3] ~ [c3,e3]@2 ~@2 c3 ~ [c3,e3,g3,a#3] ~ [c3,e3,a#3]@2, c2@3 ~ c2@3 ~", // C7 C C7
  Z: "~@4 [g3,b3,f4] ~ g3@2 ~@2 g3 ~ [g3,b3,f4] ~ [g3,b3,f4] ~, ~@3 [b3,f4]@2 ~@3, ~@4 g2@3 ~", // G7 Bdim
  AA: "~@4 [f3,a3,c4,d#4] ~@4 f3 ~@2 [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4]@2, f2@5 [f3,a3,d#4]@3 f2@7 ~, ~@3 c4@2 ~@3", // F7
  AB: "~@4 [c3,e3,g3,a#3] ~ [c3,e3,g3,a#3] ~ [c3,e3,g3,a#3] ~ [c3,e3,a#3] ~ [c3,e3,a#3] ~ [c3,e3,a#3]@2, c2@15 ~", // C7
  AC: "~@3 b3@2 ~ [g3,b3,d4]@3 ~ [g3,a3,b3,d4]@2 [g2,g3]@2 a3 ~, g2@3 ~, ~ g3 ~@6", // G
  AD: "[c2,c4]@2 c4@2 c4@2 c4 ~ [a3,c4]@2 c4@2 [g3,c4] ~ [g3,c4] ~", // C Am C5
  AE: "[g3,c4]@2 a#3 ~ a3@2 g3 ~ d#3 ~ g3 ~ d#3@2 c3 ~", // C5
  AF: "[c3@2 c3@2 a#2@2 a2@2 ~@2 a#2@2 g2@2 ~ c2@3 ~@2 [d#3,e3]@2 ~@2 a#3@2 a3@2 g3@2 ~@2, ~@8 g2@4 ~@3 d2 ~@6 g3@4 ~@6]/2", // Emaj7
  AG: "[a3@2 c4@3 ~ f3 ~ [a3,c4,d#4]@3 ~ f3@2 [a3,c4,d#4]@4 [a3,c4,d#4]@2 d4@2 c4@2 a3@2 ~@2 a3@2 ~@2, f3 ~@7, c4 ~@25 c4@4 ~@2]/2", // Adim
  AH: "[~@2 [c4,e4] ~@5 [c4,g4,a#4]@3 g4@2 ~ [c4,g4,a#4]@4 [g4,a#4]@2 a4@2 g4@2 d#4@2 ~@2 d#4@2 c4 ~, g4@5 ~@13 c4@11 ~@3, ~@26 g4@5 ~]/2", // C C7 Gm
  AI: "a#3 b3 ~ a#3 g3 a#3 g3 d#3, ~ d4 ~@2", AJ: "g3@2 d#3@2 c3@2 d#3@2 c3@2 a#2@2 c3 ~ c3@2",
  AK: "[~@2 c3@2 a#2@2 a2@2 g2@4 g2 ~ c2@5 ~ d#2 ~ f2@4 g2@2 ~@4]/2",
  AL: "[c3,e3,g3,a#3]@2 ~@6 g3@3 ~ [e3,g3,a#3] [e3,a#3]@2 ~, ~@7 [c3,e3,a#3]@3 ~@2 c3@3 ~", // C7 Edim C7
  AM: "~@4 [f3,a3,c4,d#4] ~ f3@2 ~@2 f3 ~ [f3,a3,c4,d#4] ~ [f3,c4]@2, f2@3 [a3,c4,d#4]@2 ~@3, ~@4 f2@3 ~", // F7 F5 Adim
  AN: "~@2 f3 ~ [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4]@2 ~@4 [f3,a3,c4,d#4] ~ [f3,a3,c4] ~, f2@7 ~ f2@6 ~@2", // F7 F
  AO: "~@4 [c3,e3,g3,a#3] ~ [c3,e3,g3,a#3]@2 ~@4 [c3,e3,g3,a#3] ~@3, c2@3 ~@5", // C7
  AP: "~@4 [c3,e3,g3,a#3] ~ [c3,e3,g3,a#3]@2 ~ c3 ~@2 [c3,e3,g3,a#3] ~ e3 ~, c2@7 ~ c2@5 ~@3", // C7
  AQ: "[g2@4 [g3,b3,f4] ~@4 g3 ~ [g3,b3,f4] ~ [g3,b3,f4]@2 ~@2 f3 ~ [f3,d#4] [a3,c4] ~@5 f3 ~ [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4] ~, ~@6 [g3,b3,f4]@3 ~@13 [f3,a3,c4,d#4]@4 ~@6, ~@7 g2@6 ~@2 f2@6 ~@3 f2@7 ~]/2", // G7 F7 Am F7 G7 F7
  AR: "c2@4 [c3,e3,g3,a#3]@2 ~ c3 ~@3 c2@3 [c3,e3,g3,a#3]@2, ~@6 c2@4 [c3,e3,g3,a#3]@3 ~@3", // C7
  AS: "~@2 g3@2 b3 ~ [g3,b3,d4]@3 ~ [g3,b3,d4]@2 g2@2 ~@2, g2@11 ~@5", AT: "~@4 [c2,c3,e3,g3,a#3] ~@3",
  AU: "[c2,c3,e3,g3,a#3]@2 ~@6 g3@3 ~ [c3,g3,a#3]@4, ~@7 [c2,e3]@5 ~@4, ~@7 [c3,a#3]@3 ~@2 e3@2 ~@2", // C7 C C7
  AV: "~@4 [f3,a3,c4,d#4] ~ f3@2 ~@2 f3 ~ [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4]@2, f2@3 [a3,c4,d#4]@2 ~@3, ~@4 f2@3 ~", // F7 Adim
  AW: "~@4 [f3,a3,c4,d#4] ~ [f3,a3,c4]@2 ~@2 f3 ~ [f3,a3,c4,d#4] ~ [f3,c4] ~, f2@3 ~ f2@3 ~", // F7 F F7 F5
  AX: "~@4 [c3,e3,g3,a#3] ~@4 c3@2 ~ [c3,e3,g3,a#3] ~ e3@2, c2@3 [c3,e3,g3,a#3] ~@4, ~@7 c2@5 ~@4", // C7
  AY: "c2@4 [c3,e3,g3,a#3] ~ [c3,e3]@2 ~ c3 ~@2 [c3,e3,g3,a#3] ~ [c3,e3] ~, ~@8 c2@7 ~", // C7 C C7 C
  AZ: "g2@4 [g3,b3] [g3,b3]@3 ~@2 g3 ~ [g3,b3,f4] ~ [g3,b3]@2, ~@2 f4@2 g2@3 ~", // G G7 G
  BA: "f2@4 [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4]@2 ~@2 f3 ~ [f3,a3,c4,d#4] ~ [f3,a3,c4] ~, ~@4 f2@3 ~", // F7 F
  BB: "c2@2 [c3,e3,g3,a#3] c2@2 [c3,e3,a#3] c2 [c3,e3,a#3]", // C7
  BC: "~@4 b3@2 [g3,b3,f4]@3 ~ [g3,b3,f4]@2 g2@2 ~@2, g2@11 ~@5, ~ g3@2 ~@5", BD: "[c2,c3,e3] ~@15",
  BE: "[c2,c3,e3,a#3] ~@7 [c2,c3,e3,a#3]@2 ~@6", // C7
  BF: "[c2,c3,e3,g3,a#3]@2 ~@5 [c3,e3,a#3]@3 ~ e3 g3 ~@3, ~@7 c2@4 [c3,a#3]@4 ~", // C7
  BG: "[~@4 [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4]@2 ~@2 f3 ~ [f3,a3,c4,d#4] ~@7 [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4]@2 ~@2 f3 ~ [f3,a3,c4,d#4] ~ [f3,c4,d#4]@2, f2@3 ~ f2@3 [a3,c4,d#4]@2 ~@7, ~@7 f3 ~@8, ~@15 f2@7 ~@2 f2@6 ~@2]/2", // F7 Adim
  BH: "~@4 [c3,e3,g3,a#3] ~ [c3,e3,g3,a#3]@2 ~ c3 ~@2 [c3,e3,g3,a#3] ~ e3@2, c2@6 ~@2 c2@5 ~@3", // C7
  BI: "~@4 [e3,g3,a#3] ~ e3@2 ~@4 [c3,e3,g3,a#3] ~@3, c2@3 ~ c2@3 ~, ~@4 c3@5 ~@7", // Edim C7
  BJ: "~@4 [g3,b3,f4] ~@4 g3 ~ [b3,f4] g3 ~ b3 ~, g2@5 f4@5 ~@6, ~@6 [g3,b3]@4 ~@3 [g3,f4]@2 ~, ~@4 g2@3 ~", // G7 Bdim G G7
  BK: "~@4 [f3,a3,c4,d#4]@2 f3@2 ~@2 f3 ~ [f3,a3,c4,d#4] ~ [f3,a3,c4,d#4]@2, f2@3 [a3,c4,d#4]@2 ~@3, ~@8 f2@7 ~", // F7 Adim
  BL: "[~@4 [c3,e3,g3,a#3]@2 a3@2 g3@2 c3@2 d#3 e3 ~@4 d#3 ~ c3 ~ [c2,c3,g3]@3 ~@7, c2@21 ~@11, ~@8 g3@3 ~@5]/2", // C7 C5
})).s("gm_electric_guitar_clean").gain(0.36)

// chords · electric guitar clean · "GUITAR" · soft notes
const electric_guitar_clean_2 = note(`<
  ~@4 A B C@2 ~@3 D ~@4 E F G H I J K L ~@3 M N ~ O P Q R S M ~@4 T ~ U ~@9 V W X Y I ~ Z ~@6 AA AB AC AD AE AF ~ AG ~
  AH AI ~ AJ AK AL ~ AM AN ~
>`.pickRestart({
  A: "~@10 f3@2 ~@2 f3 ~", B: "~@6 d#4@2 f2@5 ~ [a3,c4,d#4]@2", C: "[~@6 a#3@2 ~@8 c2@5 ~@11, ~@13 c3@5 ~@14]/2",
  D: "~@7 g2@3 ~@6", E: "~@3 d#4@2 ~@2 d#4", F: "~@14 [a3,d#4] ~", G: "~@10 c3 ~@5, ~@8 c2@5 ~@3",
  H: "~@4 c3 ~@3 c2@5 c3 ~@2", I: "~@2 g3 ~@13", J: "~@2 f3 ~@3 d#4@3 ~@7", K: "~ c3 ~@4 c3 c2@3 [c3,e3,a#3] ~@5",
  L: "~@13 [g3,b3] ~@2", M: "~@14 c3 ~", N: "~@7 d#4", O: "~@2 c3 ~@7 c3 ~@3 a#3@2, ~@8 c2@7 ~",
  P: "~@2 c3 ~@3 a#3@2 ~@8", Q: "~@2 g3 ~@13, g2@3 ~@5", R: "~ f3 ~@14", S: "~@2 c3 ~@9 g3 ~@3", T: "~@6 [a3,c4] ~@9",
  U: "~@6 d#4 ~@4 c4@2 ~@3", V: "~@7 [a3,d#4]", W: "~@10 f3 ~@3 d#4 ~", X: "~@9 c3@2 ~@3 [c3,a#3]@2, ~@4 c2@3 ~",
  Y: "~@2 c3 ~@11 [c3,a#3] ~", Z: "~@2 c3 ~@13", AA: "~@2 f3 ~@3 d#4@3 ~@5 d#4 ~", AB: "~@2 c3 ~@11 [c3,a#3]@2",
  AC: "~@2 c3 ~@3 a#3@3 ~@5 a#3 ~", AD: "~@7 f4", AE: "~@2 f3 ~@11 d#4 ~", AF: "~@8 c3 ~ g3@2 ~@4", AG: "a#3 ~@15",
  AH: "g3 ~@15", AI: "~@13 e3@2 ~", AJ: "~@2 f3 ~@13", AK: "~@7 [c3,a#3]",
  AL: "~@2 c3 ~@3 a#3@3 ~ c3 ~@3 [c3,e3,a#3] ~", AM: "~ f3@2 ~@13", AN: "~@2 c3 ~@10 d#3 ~@2",
})).s("gm_electric_guitar_clean").gain(0.15)

// drums · rim
const rim = s("rim").struct("<~@2 [x!2] [x ~ x!2] ~@80>").gain(0.62)

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

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

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

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

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

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

// … 24 more lines

More by The Beatles