Strudelify

Bangladesh

George Harrison

KeyA minorTempo92 bpm
0:00/0:00
// Bangladesh — George Harrison
// 92 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 6, 4/4 at bar 7, 2/4 at bar 12, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 95 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/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
const piano = note(`<
  A@3 B@3 C@2 D E F@2 G H I J K L M N O P Q R S T@3 J K L M N O P Q R S U@3 V W X Y@2 P Q R S T@3 J K L M N O P Q R S
  U@3 Z AA@3 AB@2 AC@2 AD AE AF AG AH AI AJ@2 AK AL@3 AD AE AF AG AH AI AJ@2 ~
>`.pickRestart({
  A: "[~@17 [c4,e4,a4,c5]@5 [c4,e4,a4,c5]@5 e4@7 ~ d4 e4 [b3,d4,f4,b4]@5 [b3,d4,f4,b4]@5 ~, ~@13 [e3,e4]@4 ~@10 [c4,a4,c5]@10 ~@11, ~@7 e2@5 ~@12]/3", // Am Bdim E F
  B: "[[b3,d4,f4,b4]@5 ~@5 [c4,e4,a4,c5]@5 [c4,e4,a4,c5]@5 [c4,f4,a4]@5 ~@5 [g#3,c4,e4,g#4]@5 [g#3,c4,e4,g#4]@5 [b3,d4,f4,g#4]@5 ~ [g#3,d4]@2, ~@5 [b3,d4,f4,b4]@5 ~@15 [c4,f4,a4]@5 ~@18, ~@7 a2@10 ~@11 a2@13 ~@7]/3", // Bdim Am F G#aug Bdim G#dim Bdim F
  C: "[[b3,f4]@3 [d4,g#4]@2 [f4,b4] ~ [g#4,d5] [b4,f5]@2 [b4,e5]@3 [c4,e4,a4,c5]@5 [c4,e4,a4,c5]@5 [c4,a4,c5]@8 d4, ~@23 e4@7 ~@2]/2", // Bdim Ddim Fdim G#dim Bdim E5 Am F
  D: "e4 [b3,d4,f4,b4]@5 [b3,d4,f4,b4]@5 ~ [b3,d4,f4,b4]@4", // Bdim
  E: "~@6 [c4,e4,a4,c5]@5 [c4,e4,a4,c5]@5, ~ [b3,d4,f4,b4]@5 ~@10, ~@3 a2@10 ~@3", // Am Bdim
  F: "[[c4,f4,a4]@5 ~@5 [g#3,c4,e4,g#4]@5 ~ [g#3,c4,e4,g#4]@5 [d4,b4]@3 [g#3,d4]@3 [g#3,b3,d4,f4]@3 [b3,d4,f4,g#4]@2, ~@5 [c4,f4,a4]@5 ~@11 [b3,f4,g#4]@6 ~@5, ~@8 a2@13 ~@11]/2", // F G#aug G G#dim Bdim F Fdim
  G: "~ [d4,f4,g#4,b4]@3 [f4,g#4,b4] [g#4,d5] ~ [b4,f5]@3 [b4,e5]@6, ~@4 e5@3 g#5@9", // Ddim Fdim G#dim Bdim E5
  H: "[a3,c4,e4] ~@2 [c3,e3,a3] [a3,c4,e4]@2 ~ [c3,e3,a3] [a3,c4,e4]@2 [c3,e3,a3] [a3,c4,e4]@2 [c3,e3,a3] [a3,c4,e4]@2", // Am
  I: "[a3,c4,e4] ~@2 [c3,e3,a3] [a3,c4,e4]@2 ~ [c3,e3,a3] [a3,c4,e4]@2 [c3,e3,a3] [a3,c4,e4]@2 [c3,e3,a3] [a3,b3,d4]@2", // Am Bm7
  J: "[a3,c4,e4]@2 [c4,e4,a4]@3 [c4,e4,a4]@3 e4@2 [a3,c4]@2 ~@2 [a3,c4,e4]@2, ~ [a4,c5], ~@5 e4@2 ~", // Am
  K: "[a3,c4]@2 [e4,a4,c5]@3 [e4,a4,c5]@3 ~@2 [a3,c4,e4]@2 ~@2 [a3,c4,e4]@2, e4 ~@7 [a4,c5,e5]@8", // Am
  L: "[d4,f4,g#4]@2 [d4,e4,g#4]@3 [d4,f4,g#4]@3 [d4,e4,g#4]@3 [d4,f4,g#4,d5]@2 [d4,e4,g#4,e5]@3", // Ddim E7 Ddim E7 Ddim E7
  M: "[b3,d4,g#4,b4,d5,g#5]@2 [b3,d4,g#4,b4,d5,g#5]@3 [d4,e4,g#4,e5]@2 g#4 [b3,d4,g#4]@3 [d4,e4,g#4]@2 ~ e5@2, ~@7 [b4,d5]@6 [b3,d4,g#4]@3", // G#dim E7 G#dim E7 Bm G#dim
  N: "[b3,d4,g#4,b4,d5,a5]@2 [b3,d4,g#4,g#5]@3 [d4,e4,g#4,e5]@2 g#4 [b3,d4,g#4]@3 c5 ~@2 c5@2, ~@7 [b4,d5]@4 [d4,e4,g#4]@2 [b3,d4,g#4]@3, ~@6 d5 ~", // G#dim E7 G#dim Bm E7 G#dim
  O: "[a3,d4,f4,a4,d5]@2 [a3,d4,a4,d5]@2 e5 [a3,d4,f4,a4,d5]@2 ~ [a3,d4,a4]@3 [a3,d4,f4,a4]@2 [a3,d4,e4]@3, ~@7 c5@9", // Dm D5 Dm D5 Dm Asus4
  P: "[d4,f4,a4]@2 [a3,d4,f4,a4]@3 [d4,f4,a4]@3 [a3,d4,f4,a4]@3 c5 d5 [d4,e4,g#4,d5]@3, ~@11 [d4,f4,g#4]@2 ~@3", // Dm E7 Ddim
  Q: "[c4,d#4,f#4,c5,d#5]@2 f#4 [f#4,c5,d#5]@2 ~ d#5@2 [c4,d#4,f#4,c5]@2 [f#3,c4,d#4,f#4]@3 [f#3,c4,d#4,f#4]@3, ~@2 [f#3,c4,d#4]@3 [f#3,c4,d#4,f#4]@3 ~@2 c5@6", // Cdim
  R: "[c4,d#4,f#4,c5,d#5]@2 ~ [c5,d#5,f#5]@2 ~ d#5@2 [c4,d#4,c5,f#5]@2 [f#3,c4,d#4,f#4]@3 [f#3,c4,d#4,f#5]@3, ~@2 [f#3,c4,d#4,f#4]@3 [f#3,c4,d#4,f#4]@3 ~@2 c5@6", // Cdim
  S: "[b3,e4,g#4,b4,e5,g#5]@2 [e3,b3,e4,g#4,b4,e5,g#5]@3 [e3,b3,e4,g#4,e5]@3 [b3,e4]@2 [e3,b3,e4,f#4]@2 ~@2 e5@2, ~@4 [g#4,b4,d5]@2 [g#4,b4,e5] ~, ~@13 [e3,b3,e4]@3", // E E5 Esus2 G#dim E E5
  T: "[[b3,e4,g#4,b4,e5,a5]@2 [e3,b3,e4,g#4,g#5]@3 [e3,b3,e4,g#4,e5]@2 g#4 [b3,e4,g#4]@2 [e3,b3,e4,g#4,e5]@2 d5 [e3,c4,e4,g#4,c5]@2 ~@3 [f3,d4,f4]@2 [a3,d4]@2 ~ c5 [a3,d4,f4,c5]@2 [f3,d4,a4]@2 ~@4 d4@2 [d3,g#3,d4,e4]@3 ~ d3@2 [g#3,d4,e4]@3 [d4,e4,g#4]@2 ~ [g#3,d4,e4]@2, ~@7 [b4,d5]@3 ~@5 [f4,a4,e5]@2 d5@6 ~@6 c5@2 [g#4,d5,e5]@3 ~@3 [d4,e4,g#4]@3 ~@8, ~@16 [a3,d4]@2 ~@4 [f3,d4]@2 ~@4 a3@2 f3@2 ~@13 d3@2 ~]/3", // E Eaug Dm D5 Dm7 Dm E7 Bm …
  U: "[[b3,e4,g#4,b4,e5,a5]@2 [e3,b3,e4,g#4,g#5]@3 [e3,b3,e4,g#4,e5]@2 g#4 [b3,e4,g#4]@2 [e3,b3,e4,g#4,e5]@2 d5 [e3,c4,e4,g#4,c5]@2 ~@3 [f3,d4,f4]@2 [a3,d4]@2 ~ c5 [a3,d4,a4]@2 [f3,d4,a4]@2 ~@6 [c4,e4]@2 [e3,b3]@2 c4 ~ [e3,d4]@2 [c4,e4]@2 [e3,b3]@2 [c4,e4]@2, ~@7 [b4,d5]@3 ~@5 [f4,a4,e5]@2 d5@6 ~ [f4,c5]@4 ~ c5@2 [e4,g4,d5]@2 c5@6 c4@2 ~@7, ~@8 [a3,d4] ~@2 [f3,d4,a4] ~@2 [a3,e5] f3 [e3,c4] ~@2 e4 ~@4]/3", // E Eaug Dm D5 Dm C E5 E7 …
  V: "[a4,c5,e5]@2 [e5,a5]@2 [c5,e5,a5]@2 [c5,e5,a5] [c5,d5,a5]@2 [c5,a5] [c5,e5,a5]@2 [g4,b4,e5]@2 [a4,c5,e5]@2, ~@2 c5 ~@13", // Am A5 Am D7 F Am Em Am
  W: "[a3,c4,e4,a4,c5]@2 [e4,a4,c5]@2 [e4,a4,c5]@2 [c5,a5] [c5,d5,a5]@2 [c5,a5] [a3,c4,e4,c5,e5,a5]@2 [g4,b4,e5]@2 [a3,c4,e4,a4,c5,e5]@2", // Am F D7 F Am Em Am
  X: "[d4,f4,g#4]@2 [d4,e4,g#4]@3 [d4,f4,g#4]@3 [d4,f4,g#4]@2 [e4,g#4]@2 [g#4,b4,d5,g#5] [d4,g#4,b4]@2 [b3,d4,g#4,d5]", // Ddim E7 Ddim E G#dim
  Y: "[[b3,d4,g#4]@2 [g#3,b3,d4,b4] [d3,g#3,b3]@2 [b2,d3,g#3,g#4] [b2,d3,g#3]@2 [g#2,b2,d3,d4] [g#2,b2,d3]@2 [g#2,b2,d3,b3] [g#2,b2,d3]@2 ~@2 [a3,d4,f4,a4,d5]@2 [a3,d4,a4,d5]@2 e5 [a3,d4,f4,a4,d5]@2 ~ [a3,d4,a4]@3 [a3,d4,f4,a4]@2 [a3,d4,e4]@3, ~@11 e3@2 ~ e3@2 ~@7 c5@9, ~@15 [g#2,b2,d3]@2 ~@15]/2", // G#dim Dm D5 Dm D5 Dm Asus4 G#dim
  Z: "[b3,e4,g#4,b4,e5]@2 [e3,b3,e4,g#4,e5]@2 e5 [d5,e5] ~ d5 [b3,e4]@2 [e3,b3,e4,f#4]@2 ~@2 e5@2, ~ b4@3 [g#4,b4,d5]@2 [g#4,b4]@2, ~@5 [e3,b3,e4,g#4]@3 ~@5 [e3,b3,e4]@3, ~@6 e5@2 ~@2 e5 ~ e5@2 ~@2", // E Dsus2 E5 Esus2 G#dim G#m E E5
  AA: "[[b3,e4,g#4,e5]@2 e5 d5 e5 ~ d5 g#4 [b3,e4,g#4]@2 [e3,b3,e4,g#4,e5]@2 d5 [e3,c4,e4,g#4,c5]@2 [f4,a4] ~@2 [f3,d4]@2 [a3,d4]@2 ~ c5 [a3,d4,a4]@2 [f3,d4]@2 ~ c5 ~ [e4,g4] e5 ~@3 [e3,b3]@2 c4 ~ [e3,d4]@2 [c4,e4]@2 [e3,b3]@2 [c4,e4]@2, b4@7 b4@9 a4@6 [f3,d4,a4]@2 ~@2 a4@5 d5@2 [c5,d5]@2 c5@4 c4@2 ~@7, ~@2 [e3,b3,e4,g#4]@3 [e3,b3,e4,g#4,e5]@2 d5@3 ~@5 e5@2 d5@6 ~ c5@4 [a3,e5]@2 [f3,c5]@2 [e3,c4,e4]@2 [c4,e4]@4 e4@2 ~@8, ~@8 [a3,d4,f4] f4@3 f4@4 g4@4 ~@4]/3", // E Eaug F Dm D5 Dm Em E5 …
  AB: "[[b3,e4,g#4,b4,e5,g#5]@2 [e3,b3,e4,g#4,b4,e5,g#5]@3 [e3,b3,e4,g#4,e5]@3 [b3,e4]@2 ~ b4!3 e5@2 [b3,e4,g#4,b4,e5,a5]@2 [e3,b3,e4,g#4,g#5]@3 [e3,b3,e4,g#4,e5]@2 g#4 [b3,e4,g#4]@2 [e3,b3,e4,g#4,e5]@2 ~ c5 ~ [f4,a4,e5], ~@8 [g#4,a4,b4,d5]@4 g#4@4 ~@7 [b4,d5]@3 ~@4 c5@2, ~@10 [e3,b3,e4,f#4]@2 e5@2 d5@9 ~@5 d5@2 ~@2, ~@13 [e3,b3,e4]@3 ~@13 [e3,c4,e4,g#4]@3]/2", // E E5 E Fmaj7 G#dim Bm Esus2 E5 …
  AC: "[~ d5 [f3,d4]@2 [a3,d4]@2 ~ c5 e5 ~@4 c5 ~ [e4,g4] e5 ~@3 [e3,b3]@2 c4 ~ [e3,d4]@2 [c4,e4]@2 e3 ~ e4@2, a4@6 [f3,d4,a4]@2 [a3,d4,a4,c5]@2 [f3,d4,a4]@2 [a3,e5]@2 [f3,c5]@2 [e3,c4,e4]@2 [c4,e4]@4 e4@2 ~@5 [a3,c4]@3, [a3,d4,f4,e5]@2 [f4,d5]@6 f4@7 d5@2 [c5,d5]@2 c5@4 c4@2 ~@3 b3@2 ~@2, ~@9 d5@2 c5@2 a4@3 g4@8 ~@8]/2", // Dm D5 Em E5 E7 C Dm D7 …
  AD: "[a3,e4]@2 [c3,a3,e4,a4,d5]@3 [c3,a3,e4,a4,c5]@3 [a3,e4]@2 [c3,a3,e4]@3 [c3,a3,e4]@3, ~ [c4,a4]", // A5 Am A5 Am F
  AE: "[a3,e4]@2 [c3,a3,e4,a4,c5,e5]@3 [c3,a3,e4,a4,c5]@3 [a3,e4]@2 [c3,a3,e4]@3 [c3,a3,e4]@3, ~ [c4,a4]", // A5 Am A5 Am F
  AF: "[g#3,e4]@2 [b2,g#3,e4]@3 ~ e5 d5 [g#3,e4,e5]@2 d5 e5@2 ~ d5@2, g#4, ~@5 [b2,g#3,e4]@3 c4@8, ~@10 [b2,g#3,e4]@3 [b2,g#3,e4]@3", // C#m E C#m E
  AG: "[g#3,d4]@2 [b2,g#3,d4]@3 b4 ~@2 [g#3,d4]@2 [b2,g#3,d4]@3 [b2,g#3,d4]@3, g#4, [b4,d5]@5 [b2,g#3,d4]@3 [b3,b4]@8, ~@3 d5@5", // G#dim Bm G#dim B
  AH: "[a3,d4]@2 [c3,a3,a4]@3 [c3,a3,d4]@3 [a3,a4]@2 ~ e4 f4 g4 a4 d5, ~ c4, ~@10 [c3,a3,d4]@3 [c3,a3,d4]@3", // D5 F D7 A D7
  AI: "[a3,d4,f4,a4]@2 ~ d4 f4 ~ a4 d4 [a3,f4]@2 [f3,a3,f4]@2 [f4,c5] [f3,a3,f4,d5]@3, ~@2 [f3,a3,f4]@3 [f3,a3,f4]@3 c4@8, ~@2 d4 a4", // Dm F F5 Dm F
  AJ: "[[f#3,d#4]@2 [c3,f#3,d#4]@2 ~ [c3,f#3,d#4]@2 ~@3 [c3,f#3,d#4]@3 f4 ~@2 [c4,d#4]@2 a#4 ~@2 [c3,c4,d#4]@3 [c4,d#4]@2 d#5 e5@2 [c3,c4,d#4,d#6]@3, [f#4,c5,d#5]@4 [f#4,c5,d#5]@3 f5@2 d#5@4 ~@6 c5@5 ~@8, ~ c4 ~@2, ~@4 [f#4,c5]@2 ~ g#4@2 ~@3 [f#4,c5]@4, ~@8 [f#3,d#4]@2 ~@3 [c3,f#3,d#4]@3 ~@2 [c3,c4,d#4]@3 ~@5 [c3,c4,d#4]@3 ~@3]/2", // D#m Cdim Cm Cdim F#dim D#m Cdim Cm
  AK: "[b3,g#4,b4,e5,g#5]@2 ~ [b4,e5,g#5]@2 [e3,b3,g#4,e5]@3 [d4,g#4]@2 [e3,d4,g#4]@2 g#4 [e3,b3,g#4]@3, ~@2 [e3,b3,g#4]@3 ~@3 c4@8, ~@4 [b4,d5]@2 [b4,e5] ~", // E Ddim E7 E Bm E5
  AL: "[[b3,g#4,b4,e5,a5]@2 [e3,b3,g#4,g#5]@3 [e3,b3,g#4,e5]@2 g#4 [b3,g#4]@2 [e3,b3,g#4,e5]@2 d5 [e3,b3,g#4,c5]@2 a4 ~@2 [c3,d4,a4]@3 a4 a4@2 [d4,a4,d5]@2 ~ c5@2 ~ d5 ~ [g#3,d4]@2 [c3,g#3,d4]@3 [c3,g#3,d4]@3 [g#3,d4]@2 [b2,g#3,d4]@3 [b2,g#3,d4]@3, ~@7 [b4,d5]@3 ~@5 f4@9 [c4,f4]@8 ~@8 [b3,g#4,d5]@8, ~@8 c4@7 e5@2 d5@5 ~@9 e5@9 ~@8, ~@16 [d4,a4]@2 ~@3 [c3,d4]@3 ~@2 [c3,d4,a4]@3 [c3,d4,a4]@3 ~@16]/3", // E D7 D5 G#dim Dm7b5 G#dim Bm F5 …
})).s("gm_piano").gain(0.4)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B@7 C@2 D E@2 F@2 G@2 H@2 I J K L M H I N I G@2 H@2 I J K L M H I N O G@2 H@2 J K L M H I N I G@2 H@2 I J K L M H I
  N O H I N O H I N O G@2 H@2 J K P M H I N I G@2 H@2 J K P M ~
>`.pickRestart({
  A: "~@7 [e1,e2]", // E
  B: "[~ a2@5 a2@5 a2@5 a2@5 g#2@5 g#2@5 ~ g#2@5 g#2@5 g2@5 g2@5 f2@5 f2@5 e1@5 e2@5 e2@18 e2@3 a2@5 a2@5 a2@5 a2@4, ~ a1@20 g#1@20 ~ g1@10 f1@10 ~@31 a1@19]/7",
  C: "[~ g#2@5 g#2@5 ~ g#2@5 g#2@5 g2@5 g2@5, ~ g#1@20 ~ g1@10]/2", D: "f2@5 f2@5 e1@5 ~, f1@5 ~@3",
  E: "[e2@5 e2@27]/2", F: "a2 ~@2 a1 a2 a2@2 a1 a2@3 a2@2 a1 a2@2", G: "a2@4 a2@4 a2@3 a2 e2@2 g2@2",
  H: "e2@4 e2@4 e2@3 e2 b1@2 d2@2", I: "e2!4", J: "d2@4 d2@4 d2@3 d2 a1@2 c2@2", K: "d2@4 d2@4 d2@3 d2 f2@2 a2@2",
  L: "g#2@4 g#2@4 g#2@3 g#2 d#2@2 f#2@2", M: "g#2!3 f#2", N: "d2@4 d2@4 d2@3 d2 a1@2 d2@2", O: "c2!4",
  P: "g#2@2 g#2@2 g#2@2 d#2 f#2",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · tenor sax · "Sax"
const tenor_sax = note(`<
  ~@15 A@3 B@2 C@2 D@2 E@2 F G A@3 B@2 C@2 H@2 I@2 F J A@3 K C@2 D@2 E@2 F G L@2 M B@2 C@2 H@2 I@2 F J I@2 F J I@2 F N
  A@3 K C@2 D@2 E@2 F G A@3 K C@2 D@2 ~
>`.pickRestart({
  A: "[~@2 [g#3,d4,f4], ~ [a3,c4,e4]@33 ~@14]/3", B: "[b3,d4,g#4]/2", C: "[a3,d4,f4,a4,d5]/2",
  D: "[c4,d#4,f#4,c5,d#5]/2", E: "[b3,e4,g#4,b4,e5,g#5]/2", F: "[a3,d4,f4,a4,e5]", G: "[d4,g#4,d5,e5]",
  H: "[~@16 g#2@2 ~ c3@2 ~ d#3@2 ~ e3@2 ~ f#3@2 g#3@2, [c4,d#4,f#4,c5,d#5]]/2", I: "[b3,e4,g#4,b4,e5]/2",
  J: "[c4,e4,g4,d5]", K: "[b3,d4,g#4]", L: "[~ [a3,c4,e4]@31]/2", M: "[g#3,d4,f4]",
  N: "~@2 c4@2 b3@2 c4@2 d4@2 c4@2 b3 a3@2 ~, [e4,g4,d5]", // Em7
})).s("gm_tenor_sax").gain(0.25)

// other · drawbar organ · "Organ"
const drawbar_organ = note("<~ A@6 ~@88>".pickRestart({
  A: "[~ e4@20 f4@20 ~ e4@10 f4@10 e4@31 ~@3]/6",
})).s("gm_drawbar_organ").gain(0.22).pan(0.3)

// other · string ensemble 2 · "Strings"
const string_ensemble_2 = note("<~@6 A@4 B@3 ~@82>".pickRestart({
  A: "[~@13 e4@20 f4@20 ~ e4@10]/4", B: "[f4@5 e4@19]/3",
})).s("gm_string_ensemble_2").gain(0.22).pan(0.6)

// other · electric guitar jazz · "Lead Guitar"
const electric_guitar_jazz = note("<~@48 A B C ~ D E ~@20 F G ~@19>".pickRestart({
  A: "d#5@3 d5@3 c5@3 d5@3 g#4@2 d#5@2", B: "e5@6 g#5 e5 d5@5 e5@3", C: "b5@3 g#5@3 e5@9 ~", D: "~@10 e5@2 d5@2 c5 d5",
  E: "a4 ~@7", F: "~@2 d5@6 a4@7 ~", G: "~@2 d5@2 ~ d5@3 a4@6 ~@2",
})).s("gm_electric_guitar_jazz").gain(0.68).pan(0.7)

// drums · kick
const kick = s("bd").struct("<~@13 x!2 [x!2 ~@2 x!2 ~ x]!79 ~>").gain(0.39)

// drums · snare
const snare = s("sd").struct(`<
  ~@14 A B C B C B C B C B C B C B C B C B C B C B C B C B D B C B C@2 B C B C B C E C B C B C B C B D B C B C B C B C B
  C B C B C B C B C B C B C B C B C B C B C B C ~
>`.pickRestart({
  A: "~@12 x!4", B: "~@4 x ~@4 x ~ x ~@3 x", C: "~@4 x ~@4 x ~ x ~ x ~ x", D: "~@4 x ~@4 x ~ x!5",
  E: "~@4 x ~@4 x ~ x ~@2 x!2",
})).gain(0.39)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@15 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@2 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@2
>`.pickRestart({
  A: "~@13 x ~@2",
})).gain(0.26)

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~@15 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B@2 A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A B A B A B A B A B A B A B ~
>`.pickRestart({
  A: "~ x!7", B: "x!8",
})).gain(0.26)

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

stack(
  piano, bass, tenor_sax, drawbar_organ, string_ensemble_2, electric_guitar_jazz, kick, snare, snare_soft, low_tom,
  hihat, crash
)

More by George Harrison