Strudelify

Mailman, Bring Me No More Blues

The Beatles

KeyC majorTempo100 bpm
0:00/0:00
// Mailman, Bring Me No More Blues — The Beatles
// 100 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "BASS" named as a bass, played on electric bass finger (its electric guitar clean patch is not one)
// note: Full arrangement: all 36 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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 C G H I J K L M N O E F P Q R S T U V W N O X Y Z AA AB S AC AD>".pickRestart({
  A: "[c2,g3,c4,e4]@3 ~ c2@2 e2@2 ~@2 e2@2 f2@2 ~@2 f2@2 f#2@2 ~@2 f#2@2", // C
  B: "g2@2 ~@2 g2@2 f2@3 ~ f2@2 e2@3 ~ e2@2 [d2,a3,c4,f4]@3 ~ d2@2", // Dm7
  C: "[c2,g3,c4,e4]@3 ~ c2@2 c2@2 ~@2 c2@2 a1@3 ~ a1@2 [g1,a3,c4,f4]@3 ~ [g1,c3] ~", // C F C5
  D: "[c2,g3,c4,e4]@3 ~ c2@2 d2@3 ~ d2@2 d#2@2 [a3,c4,f4] ~ d#2@2 [e2,a3,c4,f4]@3 ~ e2@2, ~@16 c3 ~@7", // C F Fmaj7
  E: "[f2,a3,c4,f4]@3 ~ f2@2 a2@2 ~@2 a2 ~ a#2@2 ~@2 a#2@2 [c3,a#3,d4,f4]@3 ~ c3@2, ~@22 f3 ~", // F A#
  F: "[f2,a3,c4,f4]@3 ~ f2 ~ f2@2 ~@2 f2@2 d2@2 [a#3,d4,f4] ~ d2@2 [c#2,a#3,d4,f4]@3 ~ c#2@2, ~@16 f3 ~@7", // F A#
  G: "[c2,g3,c4,e4]@3 ~ c2@2 e2@2 ~@2 e2@2 f2@2 [a3,c4,f4] ~ f2@2 [g2,a3,c4,f4]@3 ~ g2@2, ~@16 c3 ~@7", // C F
  H: "[g3,b3,d4]@2 g2 b1 ~ b1 c2 ~ c2 [g3,b3,d4] g2 f#2, g2@2 ~@14 g2 ~ d2 ~@5", // G
  I: "[f2,a3,c4,f4]@3 ~ f2@2 f2@2 ~@2 f2@2 d2@2 ~@2 d2@2 c#2@3 ~ c#2@2", // F
  J: "[c2,g3,c4,e4]@3 ~ c2@2 e1@3 ~ e1@2 f1@3 ~ f1@2 f#1@2 ~@2 f#1@2", // C
  K: "g1@3 ~ g1@2 a1@3 ~ a1@2 c2@3 ~ c2@2 [b1,a3,c4,f4]@3 ~ b1 ~, ~@16 c3 ~@7", // F
  L: "[c2,g3,c4,e4]@3 ~ c2@2 e1@3 ~ e1@2 f1@3 ~ [f1,c3]@2 [f#1,a3,c4,f4]@3 ~ [f#1,c3]@2", // C F5 F F#dim
  M: "[g1,g3,c4,e4]@3 ~ g1@2 [a1,a3,c4,f4]@3 ~ a1@2 [c2,g3,c4,e4]@4 c2@2 [b1,a3,c4,f4]@3 ~ b1 ~, ~@16 c3 ~@7", // C F C F
  N: "[c2,g3,c4,e4]@3 ~ c2 ~ e2@3 ~ e2@2 f2@2 ~@2 f2@2 g2@2 ~@2 g2 ~", // C
  O: "c3@2 ~@2 c3@2 c3@2 ~@2 c3@2 a2@2 ~@2 [a2,c3] ~ [g2,a3,c4,f4]@3 ~ g2 ~", // Am F
  P: "[c2,g3,c4,e4]@3 ~ c2@2 c2@2 ~@2 c2@2 a1@3 ~ [a1,c3]@2 [g1,a3,c4,f4]@3 ~ [g1,c3] ~", // C Am F C5
  Q: "[c2,g3,c4,e4]@3 ~ c2@2 e2@2 ~@2 e2@2 f2@3 ~ f2@2 g2@3 ~ g2@2", // C
  R: "[g2,g3,b3,d4]@3 ~ g2@2 b1@2 ~@2 b1@2 c2@2 ~@2 c2@2 d2 ~ g2@2 f#2@2", // G
  S: "[f2,a3,c4,f4]@3 ~ f2@2 f2@2 ~@2 f2@2 d2@2 ~@2 [d2,f4]@2 [c#2,a4]@2 c5@2 [c#2,f5]@2", // F Dm F#m C#
  T: "[c2,g3,c4,e4]@3 ~ c2@2 e2@2 ~@2 e2@2 f2@2 ~@2 f2@2 [f#2,a3,c4,f4]@3 ~ f#2@2, ~@22 c3 ~", // C F
  U: "[g2,g3,c4,e4]@3 ~ g2@2 f2@3 ~ f2@2 e2@2 [a3,c4,f4] ~ e2@2 [d2,a3,c4,f4]@3 ~ d2@2, ~@16 c3 ~@7", // C F Dm7
  V: "[c2,g3,c4,e4]@3 ~ c2@2 e2@2 ~@2 e2@2 f2@2 ~@2 [f2,c3]@2 [f#2,a3,c4,f4]@3 ~ f#2@2, ~@22 c3 ~", // C F5 F
  W: "[g2,g3,c4,e4]@3 ~ g2@2 f2@3 ~ f2@2 e2@3 ~ e2@2 d2@3 ~ d2@2", // C
  X: "[f2,a3,c4,f4]@3 ~ f2@2 a2@2 ~@2 a2 ~ a#2@2 ~@2 a#2@2 c3@2 ~@2 c3@2", // F
  Y: "f2@2 ~@2 f2 ~ f2@2 ~@2 f2@2 d2@2 ~@2 d2@2 [c#2,a#3,d4,f4]@3 ~ c#2@2, ~@16 f3 ~@7", // A#
  Z: "[c2,g3,c4,e4]@3 ~ c2@2 c2@2 ~@2 c2@2 a1@2 ~@2 a1@2 [g1,a3,c4,f4]@3 ~ g1@2, ~@22 c3 ~", // C F
  AA: "[c2,g3,c4,e4]@3 ~ c2@2 e1@3 ~ e1@2 f1@2 [a3,c4,f4] ~ f1@2 [g1,a3,c4,f4]@3 ~ c2 ~, ~@16 c3 ~@7", // C F
  AB: "[g2,g3,b3,d4]@3 ~ g2@2 b1@2 ~@2 b1@2 c2@2 ~@2 [c2,g3]@2 b3@2 [g2,d4]@2 [f#2,g4]@2, ~@18 d2 ~@5", // G C5 G5 Gmaj7
  AC: "[c2,g3,c4,e4]@3 ~ c2@2 c2@2 ~@2 c2@2 a1@2 ~@2 [a1,c4]@2 [g1,e4]@2 g4@2 [g1,c5]@2", // C Am C C5
  AD: "[c2,g3,c4,e4]@3 ~ c2@2 c2@2 ~@2 c2@2 ~@12", // C
})).s("gm_electric_bass_finger").gain(0.19)

// chords · piano
const piano = note("<A B C@2 D E F G H I C@2 A B J K L@2 M@2 N O F G A B P@2 Q R F G S T U V>".pickRestart({
  A: "[c5,e5,g5]@21 ~ [c5,e5,g5]@2", B: "~@10 c4@2 [c5,e5,g5]@4 c4 ~ [c5,e5,g5]@4 ~@2",
  C: "[[c5,g5]@30 ~@2 [c5,g5]@3 ~ [c5,g5]@3 ~ c5@3 ~ c5@3 ~, g4 ~@39 g5@7 ~]/2", // C5
  D: "[c5,f5]@13 ~ [c5,f5] ~ c4@2 [c5,f5]@4 c4 ~", E: "[c5,f5]@16 c4 ~ [c5,f5]@3 ~@3",
  F: "[c5,e5]@13 ~ [c5,e5] ~ c4@2 [c5,e5]@4 c4 ~", G: "[c5,e5]@16 c4 ~ [c5,e5]@3 ~@3",
  H: "[b4,d5]@8 g3 [g4,b4,d5]@2 ~, g4@5 ~@3", I: "[a5,c6]@8 f4 [f5,a5,c6]@2 ~, f5@5 ~@3",
  J: "[c5,e5,g5]@15 ~ g4 ~ [c5,f5,a5]@4 ~@2, ~@18 [b4,e5] ~@5", // C F E5
  K: "[c5,e5,g5]@3 ~@3 [c5,f5,a5]@4 g4 ~ [c5,e5,g5]@4 g4 ~ [c5,f5,a5]@4 ~@2", // C F C F
  L: "[[c5,f5,a5]@33 ~ c4@2 [c5,f5,a5]@4 c4@2 [c5,f5,a5]@4 ~@2]/2", M: "[[c5,e5,g5]@40 c4@2 [c5,e5,g5]@3 ~@3]/2",
  N: "[b4,d5]@17 ~ [b4,d5]@4 ~@2, [g5,b5]@11 ~", O: "~@2 [a4,c5,f5,a5]@9 ~", P: "[~@34 g4 ~@5 c5 ~@7, [c5,g5]@5 ~]/2",
  Q: "[f4,a4,c5]@15 ~ c4 ~ [f4,a#4,d5]@4 ~@2, ~@18 [e4,a4] ~@5", // F A# A5
  R: "[f4,a4,c5]@3 ~@3 [f4,a#4,d5]@4 c4 ~ [f4,a4,c5]@4 c4 ~ [f4,a#4,d5]@4 ~@2", S: "d5@17 ~ d5@4 ~@2, b5@11 ~, b4 ~@23",
  T: "[a4,f5]@23 ~", U: "[g4,c5]@17 ~ [g4,c5]@4 ~@2, [e5,g5]@11 ~", V: "[e5,g5]@11 ~, [g4,c5]@17 ~@7",
})).s("gm_piano").gain(0.36)

// chords · electric guitar jazz · "GUITAR"
const electric_guitar_jazz = note(`<
  A B C@2 D@2 E@2 F G H I J K L@2 M@2 N@2 O P Q R S T U@2 V@2 W@2 X Y Z AA
>`.pickRestart({
  A: "d#3 ~@3 g3@16 ~@4, e3 ~@7, ~ c3@18 ~@5", B: "~@6 g#3 f3@2 ~ f3 ~ [f3,c4]@5 ~ [f3,a3,c4]@2 ~@4, ~@3 a3@2 ~@7",
  C: "[~ [e3,g3]@13 ~@4 [c3,f3,a3]@3 ~ [c3,g3]@7 ~ [c3,f3,a3]@3 ~ [c3,e3,g3]@5 ~ [c3,g3]@3 ~@5, ~ c3@15 ~@6 e3@5 ~@21]/2", // Em F C5 F C C5
  D: "[[a3,c4]@3 ~ [f3,c4]@12 ~@2 [f3,a#3,d4]@3 ~ [f3,a3,c4]@6 ~@2 [f3,a#3,d4]@3 ~ [f3,a#3,d4] ~ [a3,c4]@5 ~ [f3,a3,c4]@3 ~@3, [f3,g#3] ~@35 f3@2 ~@10]/2", // Am F5 A# F A# Am F Fm
  E: "[[e3,g3]@13 ~@5 [c3,f3,a3]@3 ~ [c3,e3,g3]@19 ~ [c3,e3,g3]@3 ~@3, c3 ~@2]/2", // Em F C
  F: "[d3,g3,b3]@3 ~ [d3,g3,b3]@14 ~@6", G: "~@6 [c3,f3,a3]@3 ~ [c3,f3,a3] ~ [c3,f3,a3]@4 ~@2 [c3,f3,a3]@3 ~@3",
  H: "[c3,e3,g3]@17 ~@7", I: "[d3,g3,b3]@3 ~", J: "d#3 e3@3 g3@14 ~@6, c3@3 ~",
  K: "~@6 [a3,c4]@4 f3 ~ [a3,c4]@5 ~ [f3,a3]@3 ~@3, ~@2 f3 ~@5", // Am F
  L: "[c3@13 ~@5 [c3,f3,a3]@2 ~@2 [c3,e3,g3]@6 ~@2 [c3,f3,a3]@3 ~ [c3,e3,g3]@3 ~@3 [c3,f3,a3]@2 ~@3 g#3 ~@2, g3@5 ~@19]/2", // F C F C F
  M: "[a3@3 ~ [f3,c4]@10 ~@4 [f3,a#3,d4]@3 ~ [f3,a3,c4]@5 ~@3 [f3,a#3,d4]@3 ~ [f3,a#3,d4] ~ [a3,c4]@5 ~ [f3,a3,c4]@3 ~@3, g#3 ~@35 f3@2 ~@10]/2", // F5 A# F A# Am F
  N: "[~ c3@14 ~@3 [c3,f3,a3]@3 ~ [c3,g3]@7 ~ [c3,f3,a3]@3 ~ [c3,g3]@5 ~ [c3,g3]@5 ~@3, [e3,g3]@14 ~@8 e3@5 ~@7 e3@3 ~@11]/2", // F C5 F C5 Em
  O: "a#3 b3@3 ~ g3@3 ~@2 [g3,b3]@13 ~, ~ a3 ~@2 d4@4 ~@16", // G
  P: "~@3 [f3,c4] ~@2 [f3,c4]@3 ~ [f3,c4]@2 [f3,c4,d#4]@4 ~@2 [f3,c4]@3 ~@3, ~@6 b3 ~@17", Q: "[c3,e3,g3]@3 ~",
  R: "~ [d3,g3,b3]@5 ~@4 [d3,g3,d4]@4 ~ [d3,g3,b3]@2 ~@5 c3 ~", S: "[c3,e3]@3 ~ [c3,g3]@16 ~@4, d#3 ~@23",
  T: "~@6 [f3,a3]@4 ~@2 a3@5 ~ [f3,a3]@2 ~@4", // F
  U: "[[c3,g3]@10 ~@8 [c3,f3,a3]@2 ~@2 [c3,e3,g3]@6 ~@2 [c3,f3,a3]@2 ~@2 [c3,e3,g3]@4 ~@2 g3@4 ~@2 g#3 ~, ~@40 c3 ~@7]/2", // C5 F C F C
  V: "[[f3,a3]@3 ~ f3@12 ~@3 a#3@2 ~ [f3,a3,c4]@5 ~@3 [f3,a#3,d4]@3 ~ [f3,a#3,d4]@2 [f3,c4]@5 ~ [f3,a3]@2 ~@4, g#3 ~@3 c4@10 ~@4 [f3,d4]@2 ~@16 a3 ~@11]/2", // F A# F5 F Dm
  W: "[[c3,e3,g3]@13 ~@5 [c3,f3,a3]@3 ~ [c3,e3,g3]@15 ~@9 a#3 ~]/2", X: "b3@3 ~ [g3,d4]@3 ~@2 [g3,d4]@8 ~@7, a#3 ~@23",
  Y: "[f3,a3,c4,d#4]@3 ~ d4 ~ [f3,c4]@3 ~ f3 ~ [f3,a3]@3 ~ [f3,c4]@2 ~@3 d#3@2 ~, ~@12 g#3 ~@11", // F7 F5 F F5
  Z: "c3@3 ~@3 [c3,g3]@3 ~@3 [c3,f3]@4 ~@2 e3@4 ~@2", AA: "[c3,g3]@2 ~@4 d#3@2 ~@2 [c3,e3,g3]@13 ~",
})).s("gm_electric_guitar_jazz").gain(0.41)

// bass · electric bass finger
const bass_2 = note("<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>".pickRestart({
  A: "~@2 c3@2 c3 ~ d3@3 c3 ~@2 c3@2 ~ c3 ~@2 d3@3 c3 ~@2, ~@2 g2@8 ~@2 g2@9 ~@3",
  B: "f2@2 ~@2 f2 ~ g2@3 f2 ~@2 f2 ~@3 f2 ~ g2@3 ~ [e2,f2] ~, c2@9 ~@3 c2@10 ~@2", // Fmaj7
  C: "c3@2 ~@2 c3 ~ d3@3 ~ c3 ~ c3 ~@3 c3 ~ d3@3 ~ c3 ~, g2@10 ~@2 g2@9 ~@3",
  D: "c3@2 ~@2 c3 ~ d3@3 c3 ~@2 c3 ~@3 c3 ~ d3@3 c3 ~@2, g2@10 ~@2 g2@7 ~@5",
  E: "f2 ~@2 f2 ~@2 g2@3 f2 ~@2 f2 ~@2 f2 ~@2 g2@3 f2 ~@2, c2@3 ~ c2@3 ~",
  F: "f2 ~@3 f2 ~ g2@3 f2 ~@2 f2 ~@2 f2 ~@2 g2@3 f2 ~@2, c2@3 ~ c2@3 ~",
  G: "c3@3 ~ c3 ~ d3@3 c3 ~@2 c3 ~@3 c3 ~ d3@3 ~ c3 ~, g2@3 ~ g2@3 ~, f2 ~@23",
  H: "c3@2 ~@2 c3 ~ d3@3 ~ c3 ~ c3 ~@2 c3 ~@2 d3@3 c3 ~@2, g2@9 ~@3 g2@7 ~@5",
  I: "g2@2 ~ g2 ~@2 a2@3 g2 ~@2 g2 ~@2 g2 ~@2 a2@3 g2 ~@2, d2@8 ~@4 d2@9 ~@3",
  J: "f2@2 ~ f2 ~@2 g2@3 f2 ~@2 f2@2 ~ f2 ~@2 g2@3 f2 ~@2, c2@9 ~@3 c2 ~@2 c2@5 ~@4",
  K: "c3@2 ~@2 c3 ~ d3@3 ~ c3 ~ c3 ~@3 c3 ~ d3@3 c3 ~@2, g2@9 ~@3 g2@8 ~@4",
  L: "g2 ~@2 g2 ~@2 a2@3 g2 ~@2 g2 ~@2 g2 ~@2 a2@3 g2 ~@2, d2@9 ~@3 d2@8 ~@4",
  M: "c3@2 ~ c3 ~@2 d3@3 c3 ~@2 c3 ~@3 c3 ~ d3@3 c3 ~@2, g2@9 ~@3 g2@7 ~@5",
  N: "f2@2 ~ f2 ~@2 g2@3 f2 ~@2 f2@2 ~ f2 ~@2 g2@3 [e2,f2] ~@2, c2@3 ~ c2@3 ~", // Fmaj7
  O: "c3 ~@3 c3 ~ d3@3 ~ c3 ~ c3 ~@3 c3 ~ d3@3 c3 ~@2, g2@3 ~ g2@3 ~",
  P: "c3@2 ~ c3 ~@2 d3@3 c3 ~@2 c3 ~@2 c3 ~@2 d3@3 c3 ~@2, g2@9 ~@3 g2@7 ~@5",
  Q: "f2 ~@2 f2 ~@2 g2@3 f2 ~@2 f2 ~@3 f2 ~ g2@3 f2 ~@2, c2@3 ~ c2@3 ~",
  R: "f2 ~@2 f2 ~@2 g2@3 f2 ~@2 f2 ~@2 f2 ~@2 g2@3 [e2,f2] ~@2, c2@9 ~@3 c2@8 ~@4", // Fmaj7
  S: "c3@2 ~@2 c3 ~ d3@3 c3 ~@2 c3 ~@3 c3 ~ d3@3 c3 ~@2, g2@3 ~ g2@3 ~",
  T: "c3@2 ~ c3 ~@2 d3@3 c3 ~@2 c3@2 ~@2 c3 ~ d3@3 c3 ~@2, g2@9 ~@3 g2@8 ~@4",
  U: "g2@2 ~@2 g2 ~ a2@3 ~ g2 ~ g2 ~@3 g2 ~ a2@3 g2 ~@2, d2@9 ~@3 d2@10 ~@2, c2 ~@23",
  V: "f2 ~@3 f2 ~ g2@2 ~ f2 ~@2 f2 ~@2 f2 ~@2 g2@3 [e2,f2] ~@2, c2@8 ~@4 c2@7 ~@5", // Fmaj7
  W: "c3@2 ~@2 c3 ~ d3@3 c3 ~@2 c3 ~@3 c3 ~ d3@3 c3 ~@2, g2@9 ~@3 g2@7 ~@5",
  X: "g2 ~@3 g2 ~ a2@3 g2 ~@2 g2 ~@2 g2 ~@2 a2@2 ~ g2 ~@2, d2@9 ~@3 d2@8 ~@4",
  Y: "c3 ~@2 d3 ~@2 d3@3 c3 ~@2 c3@2 ~@2 c3 ~ d3@3 c3 ~@2, g2@9 ~@3 g2@7 ~@5",
  Z: "f2 ~@3 g2 ~ g2@2 ~@2 f2 ~ g2@2 ~@2 g2 ~ [c2,g2]@3 ~ f2 ~, c2@3 ~ c2@2 ~@2", // C5
  AA: "c3@2 ~@2 c3 ~ d3@3 c3 ~@2 c3@2 ~ c3 ~@2 d3@3 c3@2 ~, g2@3 ~ g2@3 ~",
  AB: "c3@2 ~ c3 ~@2 d3@3 c3 ~@2 c3@2 ~ c3 ~@2 d3@3 c3 ~@2, g2@9 ~@3 g2@7 ~@5",
  AC: "g2@2 ~ f2 ~@2 g2@3 f2 ~@2 f2 ~@2 f2 ~@2 g2@3 f2 ~@2, c2@10 ~@2 c2@9 ~@3",
  AD: "f2@2 ~@2 f2 ~ g2@3 f2 ~@2 f2@2 ~ f2 ~@2 g2@3 [e2,f2] ~@2, c2@9 ~@3 c2@8 ~@4", // Fmaj7
  AE: "c3@2 ~ c3 ~@2 d3@3 c3 ~@2 c3@2 ~ c3 ~@2 d3@3 c3 ~@2, g2@3 ~ g2@3 ~",
  AF: "c3@2 ~@2 c3 ~ d3@3 ~ c3 ~ c3 ~@3 c3 ~ d3@3 c3 ~@2, g2@10 ~@2 g2@7 ~@5",
  AG: "g2 ~@3 g2 ~ a2@3 ~ g2 ~ g2@2 ~@2 g2 ~ a2@3 g2 ~@2, d2@3 ~ d2@3 ~",
  AH: "f2@2 ~@2 f2 ~ g2@3 ~ f2 ~ g2 ~@2 f2 ~@2 g2@3 f2 ~@2, c2@9 ~@3 c2@8 ~@4",
  AI: "c3@2 ~@2 c3 ~ d3@3 c3 ~@2 c3@2 ~@2 c3 ~ b2@4 ~@2, g2@3 ~ g2@2 ~@2", AJ: "a2@4 ~@2 g2@3 ~@3 c2@11 ~",
})).s("gm_electric_bass_finger").gain(0.41)

// drums · kick
const kick = s("bd").struct("<A B A C@4 D A E B F E C A@2 E B A B@2 E A B C E C@2 B A C B E@2 A F>".pickRestart({
  A: "x ~@5 x ~@4 x", B: "x!2", C: "x ~@5 x ~ x ~@2 x", D: "x ~@5 x ~ x!2 ~ x", E: "x ~@2 x!2 ~", F: "x",
})).gain(0.3)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<A@3 B@3 A ~ B A@2 ~ A B A@2 B A@2 ~ A B@2 ~ B@3 A@2 B A ~ A@3 ~>".pickRestart({
  A: "~ x ~@4", B: "~@2 x ~@2 x ~@6",
})).gain(0.1)

// drums · low tom
const low_tom = s("lt").struct("<~@7 [~@11 x] ~@3 [~@5 x ~@5 x] ~@24>").gain(0.4)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@11 [~@5 x] ~@24>").gain(0.4)

// drums · open hat
const open_hat = s("oh").struct("<~ A ~ A ~@4 A ~@8 A@2 B ~@8 A ~@4 A@2 ~>".pickRestart({
  A: "~@11 x", B: "~@9 x ~ x",
})).gain(0.3)

// drums · high tom
const high_tom = s("ht").struct("<~@11 [~@2 x] ~@24>").gain(0.4)

// drums · crash
const crash = s("cr").struct("<A ~@10 A@2 ~@11 A ~@7 A ~@2 A>".pickRestart({
  A: "x",
})).gain(0.35)

stack(
  bass, piano, electric_guitar_jazz, bass_2, kick, snare, snare_soft, low_tom, hihat, mid_tom, open_hat, high_tom, crash
)

More by The Beatles