Strudelify

Bad Boy

The Beatles

KeyC majorTempo135 bpm
0:00/0:00
// Bad Boy — The Beatles
// 135 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "VOCAL LINE | GRAND PNO I-A15" named as a piano, played on piano (its soprano sax patch is not one)
// note: Full arrangement: all 80 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): MIDDLE LEAD | SYNCORD I-A14.
setcpm(135/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 · "CHORDS | CLAVIUM I-A4"
const piano = note(`<
  ~@4 A B C D E D F D G H I@2 E B C D J K L M D@2 F D E B D@2 N K O P Q R F S J H L J D C D T U V T W X O L Y Z D@5 A W
  K AA P AB C D A B M I AC AD@5
>`.pickRestart({
  A: "[c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@4 [c3,e3,g3,a#3]@3 ~", // C7
  B: "[c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@4", // C7
  C: "[c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@4 [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@4", // C7
  D: "[c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@3 ~", // C7
  E: "[c3,e3,g3,a#3]@4 [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@3 ~", // C7
  F: "[c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@4 [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@3 ~", // C7
  G: "[f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@3 ~", // F7
  H: "[f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@4", // F7
  I: "[f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@3 ~", // F7
  J: "[g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@4 [g3,b3,d4,f4]@3 ~", // G7
  K: "[f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@4", // F7
  L: "[c3,e3,g3]@3 ~ [c3,e3,g3]@3 ~ [c3,e3,g3]@3 ~ [c3,e3,g3]@3 ~", // C
  M: "[g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@3 ~", // G7
  N: "[f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@3 ~", // F7
  O: "[f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@3 ~", // F7
  P: "[f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@4", // F7
  Q: "[c3,e3,g3,a#3]@4 [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@4 [c3,e3,g3,a#3]@3 ~", // C7
  R: "[c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@4 [c3,e3,g3,a#3]@4 [c3,e3,g3,a#3]@4", // C7
  S: "[c3,e3,g3,a#3]@4 [c3,e3,g3,a#3]@4 [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@3 ~", // C7
  T: "[c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@4 [c3,e3,g3,a#3]@4", // C7
  U: "[f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@4", V: "[f3,a3,c4,d#4]!4",
  W: "[c3,e3,g3,a#3]!4", X: "[g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@3 ~ [g3,b3,d4,f4]@4",
  Y: "[g3,b3,d4]@4 [g3,b3,d4]@3 ~ [g3,b3,d4]@4 [g3,b3,d4]@3 ~", // G
  Z: "[c3,e3,g3,a#3]@4 [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@3 ~ [c3,e3,g3,a#3]@4", // C7
  AA: "[f3,a3,c4,d#4]@3 ~ [f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@4", // F7
  AB: "[f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@4 [f3,a3,c4,d#4]@3 ~", // F7
  AC: "[c3,e3,g3]@4 [c3,e3,g3]@3 ~ [c3,e3,g3]@4 [c3,e3,g3]@3 ~", // C
  AD: "[[c3,e3,g3]@4 [c3,e3,g3]@3 ~ [c3,e3,g3]@3 ~ [c3,e3,g3,a#3]@59 ~@9]/5", // C C7
})).s("gm_piano").gain(0.48)

// chords · acoustic guitar steel · "A.CHORDS | ARPEGIUM I-C16"
const acoustic_guitar_steel = note(`<
  A B A C D@3 E F G H I J K L M N O P Q R S T U V@3 E W X H I Y K L M Z O P Q AA S T AB AC AD AE AF AG AH AI AJ AK AL AM
  AN AO AP@2 AQ AR AS@2 AT J AU L M N O P Q AA AV T AW@5
>`.pickRestart({
  A: "[e3,g3,c4]@3 ~ [e3,g3,c4]@3 ~ [e3,g3,c4]@2 [e3,g3,c4]@3 ~ [e3,g3,c4]@2", B: "~ d#4 c4 g4 f4 d#4 c4 d#4",
  C: "~ a#3!2 g3 a#3!3 c4",
  D: "[g4@3 ~ a#3@2 d#4@2 f4@3 ~ a#3@2 c4@5 ~ [g3,a#3,d#4]@2 c4@2 [g3,b3,d#4]@2 [g3,b3,d#4]@3 ~ [e3,a#3]@3 ~ c3@2 d#3@2 f3@2 g3@3 ~ c4@3 ~, ~@4 f4 ~@7 f4 ~@17 c4@4 ~@14]/3", // D# Gaug Edim
  E: "f3@3 ~ d#3@2 c3@5 ~@3 c4@2, f#3 ~@15",
  F: "c4@2 c4@2 [g3,a#3]@2 c4@2 d#4@3 ~ [g3,a#3,f4]@2 [c4,d#4]@2, ~@4 d#4 ~@11", // Gm Gm7 Cm
  G: "g4@3 ~ [a#3,c4,g4]@2 g4@2 [g3,a#3,f4]@2 [g3,a#3,d#4]@3 ~ [e3,a#3,c4]@2", H: "~@2 c3@2 d#3@2 f3@2 g3@3 ~ c4@3 ~",
  I: "f3@3 ~ d#3@2 c3@5 ~@3 d#4@2, f#3 ~@15", J: "f4@3 ~ [a3,c4,f4]@2 d#4@2 f4@3 ~ [a3,c4,d#4]@2 g4@2",
  K: "f4@2 d#4@2 [a3,c4]@2 d#4@2 f4@3 ~ [a3,c4]@2 f4@2, ~@4 f4 ~@7 d#4 ~@3", L: "~@2 c4@3 ~ c4@3 ~ c4@3 ~ c4@2",
  M: "~@2 c4@3 ~ c4@2 c4@2 c4@4 c4 ~", N: "c4!2 [g3,a#3,d#4] c4 d#4!2 [g3,a#3,f4] f4",
  O: "g4@2 g4@2 [a#3,c4,g4]@3 ~ f4@2 d#4@2 c4@2 [e3,c4]@2", P: "~@2 c4@3 ~ f3@5 ~ d#3@3 ~, ~@2 b3 ~@3 f#3 ~@9",
  Q: "c3@5 ~@5 g4@3 ~ g4@2, ~@3 g3@4 ~", R: "g4 ~ g4@2 [b3,d4,f4,g4]@2 g4@2 g4 ~ g4@2 [b3,d4,f4,g4]@3 ~",
  S: "~@4 [a3,c4]@3 ~@5 [a3,c4]@3 ~", T: "[e3,g3,c4]@3 ~ c4@3 ~ d#4@2 f4@3 ~ d#4@2",
  U: "g4@3 ~ g3@2 g3@3 ~ [b3,d4,f4,g4]@2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4]@2", // G7
  V: "[g4@3 ~ [a#3,f4]@2 d#4@2 f4@3 ~ a#3@2 c4@5 ~ [g3,a#3,d#4]@2 c4@2 [g3,b3,d#4]@2 [g3,b3,d#4]@3 ~ [e3,a#3]@3 ~ c3@2 d#3@2 f3@2 g3@3 ~ c4@3 ~, ~@12 f4 ~@17 c4@4 ~@14]/3", // A#5 D# Gaug Edim
  W: "c4@2 c4@2 [g3,a#3,d#4]@2 c4@2 d#4@3 ~ [g3,a#3,f4]@2 [c4,d#4]@2", // D# Gm7 Cm
  X: "g4@3 ~ [a#3,c4,g4]@2 g4@2 [g3,a#3,f4] ~ [g3,a#3,d#4]@3 ~ [e3,a#3,c4]@2", // C7 Gm7 D# C7
  Y: "f4@3 ~ [a3,c4]@2 d#4@2 f4@3 ~ [a3,c4]@2 g4@2, ~@4 f4 ~@7 d#4 ~@3", // Am
  Z: "c4!2 [g3,a#3] c4 d#4!2 [g3,a#3,f4] f4, ~@4 d#4 ~@11", // Gm Gm7
  AA: "g4@2 g4@2 [b3,d4,f4,g4]@2 g4@2 g4@2 g4@2 [b3,d4,f4,g4]@3 ~", // G7
  AB: "g4@3 ~ g3@2 g3@3 ~ [b2,d3,f3,g3]@2 [b2,d3,f3,g3]@2 [b2,d3,f3,g3]@2", AC: "c3@3 ~ d#3@3 ~ c3@2 d#3@3 ~ c3@2",
  AD: "g3@3 ~ g3@3 ~ [f3,g3]@2 c3@2 ~@2 c3@2, f#3 ~@3 f#3 ~@11", AE: "d#3@3 ~ f3@2 f#3@2 g3@3 ~ c4@3 ~, ~@12 b3 ~@3",
  AF: "[f#3,g3]@2 c4@3 ~ c3@3 ~ d#3@2 g3@2 c4@2", AG: "d#4@3 ~ d#4@3 ~ d#4@4 d#4@4",
  AH: "d#4@4 d#4@3 ~ d#4@2 d#4@2 ~ d#4@2 ~", AI: "d#4@2 c4@2 c5@3 ~ c5@2 g4@3 ~ f#4@2, ~@10 f#4 ~@5",
  AJ: "d#4@2 c4@3 ~ c4@2 a#3@2 g3@2 a#3@2 g3@2", AK: "g3@3 g3 g3@2 g3@2 ~ g3 g3@2 g3@2 g3@2",
  AL: "f3@3 ~ f3@2 f3@3 ~ a#3@2 f3 d#3 c3@2", AM: "c3@3 c3 c3@2 c3@2 ~ c3 c3@2 c3@2 c3@2",
  AN: "b2@2 b2@2 b2@2 b2@2 b2@2 b2@2 b2@3 ~", AO: "c4@2 c4@2 [g3,d#4]@2 c4@2 d#4@3 ~ [g3,c4,f4]@2 f4@2",
  AP: "[g4@2 g4@2 [c4,e4,g4]@3 ~ f4@2 d#4@3 ~ [c4,e4]@3 ~ c3@2 d#3@2 f3@2 g3@3 ~ c4@3 ~, ~@7 g4@2 ~@7]/2", // C
  AQ: "f#3 f3@4 ~ d#3@2 c3@2 a#3@2 a3@2 [g3,g4]@2", AR: "g4!2 [a#3,c4] g4!3 [a#3,c4] g4, ~@4 g4 ~@7 g4 ~@3",
  AS: "[g4@2 [a#3,c4,g4]@3 ~ g4@3 ~ d#4@3 ~ [e3,a#3,c4]@5 ~ f#3@2 g3@2 f#3@2 g3@2 f#3@2 g3@2, ~@6 [a#3,c4]@7 ~@19]/2", // C7 A#sus2
  AT: "f#3@2 g3@2 f#3@2 g3@2 f#3@2 g3 f3 d#3@2 d#4@2",
  AU: "f4@2 d#4@2 [a3,c4]@2 d#4@2 f4@3 ~ d#4 ~ f4@2, ~@4 f4 ~@7 [a3,c4]@4", AV: "~@4 [a3,c4]@4 ~@4 [a3,c4]@3 ~",
  AW: "[g4@3 ~ g3@2 g3@2 ~@4 [a#2,c3,g3]@56 ~@12]/5", // C7
})).s("gm_acoustic_guitar_steel").gain(0.64)

// bass · fretless bass · "BASS | FRETLESS P2-A10"
const bass = note(`<
  A ~ A B C D E@2 F G@2 D H I J@2 K L E@2 M J N O P Q E@2 F K P@2 R J@3 Q L E@2 S J N O T U V W X Y Z AA AB AC AD AE E
  AF G L D L E@2 AG AH J@2 E@4 AI J N AJ@5
>`.pickRestart({
  A: "[c3,g3]@3 ~ [c3,g3]@3 ~ [c3,g3]@2 [c3,g3]@3 ~ [c3,g3]@2", B: "~ a#2!2 g2 a#2!3 ~",
  C: "c2@2 c2@2 d#2 ~ f2@2 g2@2 g2@2 f2 ~ d#2@2", D: "c2@2 c2@2 d#2 ~ f2@2 g2 ~ g2@2 f2@2 d#2@2",
  E: "c2!2 d#2 f2 g2!2 f2 d#2", F: "c2 ~ c2@2 d#2@2 f2@2 g2 ~ g2@2 f2@2 d#2@2",
  G: "c2@2 c2@2 d#2 ~ f2@2 g2@2 g2@2 f2@2 d#2@2", H: "f2 ~ f2@2 a2 ~ a#2@2 c3 ~ c3@2 a#2@2 a2@2",
  I: "f2@2 f2@2 a2@2 a#2@2 c3@2 c3@2 a#2 ~ a2@2", J: "f2!2 a2 a#2 c3!2 a#2 a2",
  K: "c2 ~ c2@2 d#2 ~ f2@2 g2@2 g2@2 f2@2 d#2@2", L: "c2 ~ c2@2 d#2@2 f2@2 g2@2 g2@2 f2@2 d#2@2",
  M: "g2 ~ g2@2 b2 ~ c3@2 d3@2 d3@2 c3@2 b2@2", N: "c2@3 ~@13", O: "~@5 g2!3",
  P: "c2@2 c2@2 d#2@2 f2@2 g2@2 g2@2 f2 ~ d#2@2", Q: "c2@2 c2@2 d#2@2 f2@2 g2 ~ g2@2 f2@2 d#2@2",
  R: "f2@2 f2@2 a2 ~ a#2@2 c3 ~ c3@2 a#2@2 a2@2", S: "g2@2 g2@2 b2 ~ c3@2 d3@2 d3@2 c3@2 b2@2",
  T: "[c3,g3,a#3]@2 [c3,g3,a#3]@2 [c3,g3]@2 [c3,g3,a#3]@2 [g3,a#3] ~ [c3,g3,a#3]@2 [c3,a#3] ~ [c3,g3,a#3]@2, ~@4 a#3 ~@3 c3@2 ~@2 g3@2 ~@2", // C7 C5 C7 Gm C7
  U: "[c3,g3,a#3]!4 [c3,g3] [c3,g3,a#3]!3, ~@8 a#3 ~@7", // C7 C5 C7
  V: "[c3,g3,a#3] ~ [c3,g3,a#3]@2 [c3,g3,a#3] ~ [c3,g3,a#3]@2 [c3,g3,a#3] ~ [c3,g3,a#3]@2 [c3,g3,a#3] ~ [c3,g3,a#3]@2", // C7
  W: "[c3,g3,a#3]@2 [c3,g3,a#3]@2 [c3,g3,a#3]@2 [c3,g3,a#3]@2 [c3,g3,a#3]@2 [c3,g3,a#3]@2 [c3,g3,a#3] ~ [c3,g3,a#3]@2", // C7
  X: "[f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4] ~ [f3,a3,c4]@2 [f3,a3,c4] ~ [f3,a3,c4]@2", // F
  Y: "[f3,a3,c4] ~ [f3,a3,c4]@2 [f3,a3,c4] ~ [f3,a3,c4]@2 [f3,a3,c4] ~ [f3,a3,c4]@2 [f3,c4]@2 [f3,a3,c4]@2, ~@12 a3 ~@3", // F F5 F
  Z: "[c3,g3,a#3] ~ [c3,g3,a#3]@2 [c3,g3,a#3]@2 [c3,g3,a#3]@2 [c3,g3,a#3] ~ [c3,g3,a#3]@2 [g3,a#3] ~ [c3,g3,a#3]@2, ~@6 c3 ~", // C7 Gm C7
  AA: "[c3,g3,a#3]@2 [c3,g3,a#3]@2 [g3,a#3] ~ [c3,g3,a#3]@2 [c3,g3,a#3]@2 [c3,g3,a#3]@2 [g3,a#3] ~ [c3,g3,a#3]@2, ~@2 c3 ~@3 c3 ~", // C7 Gm C7 Gm C7
  AB: "[g3,b3] ~ [f3,g3,b3]@2 [f3,g3]@2 [f3,g3,b3]@2 [f3,g3,b3]@2 [f3,g3,b3]@2 [f3,g3,b3]@2 [f3,g3,b3]@2, f3@2 ~@2 b3 ~@11", // G G7 Fsus2 G7
  AC: "[f3,a3] ~ [d#3,f3,a3]@2 [d#3,a3] ~ [d#3,f3,a3]@2 [d#3,f3,a3]@2 [d#3,f3,a3]@2 [d#3,f3,a3]@2 [d#3,f3,a3]@2, d#3 ~ f3 ~@5", // F F7 D#dim F7
  AD: "[c3,e3,g3]@3 ~@13", AE: "g2!8", AF: "c2@2 c2@2 d#2@2 f2@2 g2 ~ g2@2 f2 ~ d#2@2",
  AG: "f2@2 f2@2 a2 ~ a#2@2 c3@2 c3@2 a#2@2 a2@2", AH: "f2@2 f2@2 a2@2 a#2@2 c3 ~ c3@2 a#2@2 a2@2",
  AI: "g2 ~ g2@2 b2@2 c3@2 d3@2 d3@2 c3@2 b2@2", AJ: "[~@12 [c3,e3]@59 ~@9]/5",
})).s("gm_fretless_bass").gain(0.48)

// chords · piano · "MIDDLE CHORDS | CLAVIUM I-A4"
const piano_2 = note("<~@44 A B C D E F G H I J K L ~@24>".pickRestart({
  A: "[c4,g4,a#4]@2 [c4,g4,a#4]@2 [c4,g4,a#4]@2 [c4,g4,a#4]@2 [c4,g4]@2 [c4,g4,a#4]@2 [g4,a#4] ~ [c4,g4,a#4]@2, ~@8 a#4 ~@3 c4@2 ~@2", // C7 C5 C7 Gm C7
  B: "[c4,g4,a#4] ~ [c4,g4,a#4]@2 [c4,a#4] ~ [c4,g4,a#4]@2 [c4,g4,a#4]@2 [c4,g4,a#4]@2 [g4,a#4]@2 [c4,g4,a#4]@2, ~@4 g4@2 ~@6 c4 ~@3", // C7 Gm C7
  C: "[c4,g4,a#4]@2 [c4,g4,a#4]@2 [g4,a#4] ~ [c4,g4,a#4]@2 [c4,g4,a#4]@2 [c4,g4,a#4]@2 [g4,a#4] ~ [c4,g4,a#4]@2, ~@2 c4 ~@3 c4 ~", // C7 Gm C7 Gm C7
  D: "[c4,a#4] ~ [c4,g4,a#4]@2 [c4,g4] ~ [c4,g4,a#4]@2 [c4,g4]@2 [c4,g4,a#4]@2 [c4,g4,a#4]@2 [c4,g4,a#4]@2, g4@2 ~@2 a#4@2 ~@2 a#4 ~@7", // C7 C5 C7 C5 C7
  E: "[f4,a4,c5]@2 [f4,a4,c5]@2 [f4,a4,c5] ~ [f4,a4,c5]@2 [a4,c5] ~ [f4,a4,c5]@2 [f4,a4]@2 [f4,a4,c5]@2, ~@8 f4@2 ~@2 c5 ~@3", // F Am F
  F: "[f4,a4,c5]!2 [f4,a4] [f4,a4,c5]!5, ~@4 c5 ~@11", // F
  G: "[g4,a#4] ~ [c4,g4,a#4]@2 [c4,a#4] ~ [c4,g4,a#4]@2 [c4,g4,a#4]@2 [c4,g4,a#4]@2 [c4,g4]@2 [c4,g4,a#4]@2, c4@2 ~@2 g4@2 ~@6 a#4 ~@3", // Gm C7 C5 C7
  H: "[g4,a#4]@2 [c4,g4,a#4]@2 [c4,g4,a#4]@2 [c4,g4,a#4]@2 [c4,g4,a#4] ~ [c4,g4,a#4]@2 [c4,g4,a#4]@2 [c4,g4,a#4]@2, c4 ~@15", // Gm C7
  I: "[f4,g4,b4]@2 [f4,g4,b4]@2 [f4,g4,b4]@2 [f4,g4,b4]@2 [f4,g4,b4] ~ [f4,g4,b4]@2 [f4,g4,b4] ~ [f4,g4,b4]@2", // G7
  J: "[d#4,f4,a4]@2 [d#4,f4,a4]@2 [f4,a4] ~ [d#4,f4,a4]@2 [d#4,f4,a4] ~ [d#4,f4,a4]@2 [d#4,f4,a4]@2 [d#4,f4,a4]@2, ~@2 d#4 ~@5", // F7 F F7
  K: "[c4,e4,g4]@3 ~@13", L: "g3!8",
})).s("gm_piano").gain(0.64)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@23 A ~@19 A ~@3 A ~@7 A ~@24>".pickRestart({
  A: "~@7 x",
})).gain(0.8)

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

// drums · open hat
const open_hat = s("oh").struct(`<
  A ~ A ~ B C B C B C B D B C B C B C B D B@2 ~@2 B C B C B C B D B C B C B C B E B@2 ~@2 B C@2 F B C B C B@2 G ~ B C B
  C B C B H B C B C B C B C B@2 ~@6
>`.pickRestart({
  A: "x ~ x ~ x!2 ~ x", B: "~@2 x!6", C: "x!8", D: "x!6 ~@2", E: "x!7 ~", F: "x", G: "~@4 x!4", H: "x!5 ~@3",
})).gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<~@3 A ~@19 B ~@19 C ~@3 D ~@7 D ~@24>".pickRestart({
  A: "~@4 x ~@2 x", B: "~@3 x ~ x ~@2", C: "~@6 x!2 ~ x!2 ~@5", D: "x!2 ~ x!2 ~@11",
})).gain(0.56)

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

stack(piano, acoustic_guitar_steel, bass, piano_2, kick, snare, low_tom, mid_tom, open_hat, high_tom, crash)

More by The Beatles