Strudelify

Cancer

Joe Jackson

KeyF majorTempo145 bpm
0:00/0:00
// Cancer — Joe Jackson
// 145 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 80 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(145/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 · "right hand"
const piano = note(`<
  A B C@2 D@2 E@2 F G H I J@2 K L M N O@2 P Q R S T@2 U@4 V@2 W@2 X@2 Y@2 Z@2 AA@3 AB AC@2 AD AE AF@2 AG AH AI@2 AJ AK
  AL@2 AM@4 AN@2 AO@3 AP AQ AR AS AT@3 AU@2 AV AW@3
>`.pickRestart({
  A: "[c4,d4,f4,a4,c5] ~ [f4,a4,c5] ~@9 [c4,d4,f4,a4,c5] ~ [c4,d4,f4,a4,c5] ~, ~ [c4,d4] ~@6", // Dm7 F Dm7 Csus2
  B: "~@6 [c4,f4] ~ [c4,d4,f4,a4,c5] ~ [c4,d4,e4,a4,c5] ~@5", // F5 Dm7 Am
  C: "[~@2 [f3,c4,eb4]@3 ~ eb4@2 bb4@4 ab4@2 [f3,c4,eb5]@4 [f3,c4,eb5]@3 ~ eb5@3 ~ eb5@2 [f3,c4]@2 eb5@2, ~@6 [f3,c4]@7 ~@9 [f3,c4]@6 ~@4]/2", // F7 F5
  D: "[[g3,b3,d4,d5]@6 [f3,a3,c4,f4,c5]@6 [b3,d4,g4]@4 ~@2 [f3,a3,c4,f4,c5]@3 ~ [f3,a3,c4,f4]@2 ~@2 [f3,a3,c4,f4]@2 ~@2 [f3,a3,c4,f4] ~, g4@4 ~@8 [g3,d5]@6 ~@4 c5 ~ c5@4 f5@4]/2", // G F G F G5
  E: "[[b3,d4,g4]@4 ~@2 [f3,a3,c4,f4,c5]@4 [f3,a3,c4,f4] ~ [g3,b3,d4,g4]@5 ~ [f3,a3,c4,f4,c5]@4 [f3,a3,c4,f4] ~ [f3,a3,c4,f4]@2 c5 ~ [f3,a3,c4,f4]@2 c5 ~, [g3,d5]@6 ~@4 c5@2 d5@6 ~@4 f5@2 c5 ~@3 c5 ~@3]/2", // G F G F G5
  F: "[g3,b3,d4] ~@5 [g3,b3,d4] ~ f5@4 [g3,b3,d4] ~@3, ~@3 d5 ~@2 g5@2", // G
  G: "[f3,a3,c4] ~@5 [f3,a3,c4] ~ f5@4 [f3,a3,c4] ~@3, ~@3 g5 ~@2 d5@2", // F
  H: "[g3,b3,d4] ~@5 [g3,b3,d4] ~ f5@2 g5@2 [g3,b3,d4] ~ d5@2, ~@3 d5 ~@2 f5 ~", // G
  I: "c5@2 [f3,a3,c4] ~ c5@2 [f3,a3,c4,a4] ~ a4@4 [f3,a3,c4,a4] ~@3, ~ d5 ~@4 g4@2", // F
  J: "[[g3,b3,d4]@5 ~ d5@2 f5@2 ~@2 [g3,b3,d4]@2 ~@2 [f3,a3,c4] ~ f5@2 g5@2 [f3,a3,c4] ~ f5@3 [f5,a5] [f3,a3,c4,d5]@4, ~@3 [g3,b3,d4]@3 ~@10, ~@5 g5@2 g5@2 ~@2 a5 ~@4]/2", // G F Dm7 G
  K: "[g3,b3,d4]@5 ~@4 g5@2 ~ [g3,b3,d4]@2 d5@2, ~@5 d5@3 f5@2 ~ f5@3 ~@2, ~@3 [g3,b3,d4]@3 ~@2", // G
  L: "db5@2 [f3,a3,c4] ~ bb4@2 [f3,a3,c4] ~ c5@4 [f3,a3,c4,d5]@3 ~, ~ c5 ~ g4 ~@4", // F Dm7
  M: "[g3,b3,d4]@2 [f4,a4]@2 ~ a4@2 ~ [g3,b3,d4,f4,a4]@2 ~ [g3,b3,d4,f4,a4]@2 [g3,b3,d4,f4,a4] ~@2, ~@5 f4 ~@10", // G F G7
  N: "[g3,b3,d4,f4,a4] ~ [f3,a3,c4,d4]@5 ~", // G7 Dm7
  O: "[[g3,b3,d4,f4,a4]@2 ~ [g3,b3,d4,f4,a4]@2 [f4,a4] [g3,b3,d4] ~ [g3,b3,d4,a4]@2 [f4,a4] [g3,b3,d4]@2 ~ [g3,b3,d4] [g3,b3,d4,f4,a4]@2 ~@3 [f3,ab3,c4]@8 [f3,ab3,c4]@4, ~@8 f4 ~@4 [f4,a4]@2 ~@5 [ab4,eb5]@12]/2", // G7 F G F G G7 Fm F …
  P: "[g3,b3,e4,g4,b4,e5]@2 ~ [g3,b3,e4]@2 [g4,b4] ~@3 [g3,b3,e4] ~ [g4,b4,e5]!2 [g3,e4] b3 [g4,b4,e5], ~@3 [g4,b4,e5] ~ e5@2 [g3,b3,e4]@2 ~@7, ~@4 [g4,b4,e5] ~@3", // Em G Em C Em
  Q: "[g3,b3,e4]@2 ~@2 [f3,ab3,c4]@7 ~ [f3,ab3,c4]@3 ~, ~@4 [ab4,c5,f5]@11 ~", // Em Fm
  R: "[g4,b4,e5] [g3,b3,e4] [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5]!2 [g3,b3,e4]@4 [g4,b4,e5] [g3,b3,e4] [g4,b4,e5] [g3,b3,e4], ~@3 [g3,b3,e4]@4 ~@9", // Em
  S: "[g4,b4,e5]@2 ~@2 [eb3,gb3,ab3,db4,ab4,db5,eb5]@5 ~ [d3,g3,c4,g4,c5]@5 ~", // Em Ebm7 Csus2
  T: "[[db3,gb3,b3]@6 [c3,f3,bb3,f4,c5,e5]@4 ~@15 d6@7, [gb4,db5,eb5]@4 ~@6 ab6@4 e5 c5@2 ab7 e7 c7 bb4 gb4 d4 bb6 gb6@6 ~@2, ~@11 e6@19 ~@2, ~@6 c6@9 ~, ~@13 ab5@17 ~@2]/2", // Gbsus4 C7 Ebm7
  U: "[~@34 g4@2 b4@2 e5@2 b4@2 g5@2 b4@2 a4@6 ~@4 c5@4 ~@2 [a3,c4,f4] ~, ~ c6@8 ~ ab5@2 c5@5 ~@9 f5@2 ~@2 a5@2, ~ [d4,f4]@3 [d4,f4,f5]@12 ~@16, ~@4 b5@14 eb4@4 [ab3,eb4,eb5]@10 [g3,c4,f4]@14 [a3,c4,f4]@8 [a3,c4,f4]@7 ~@3, ~@3 g5@6 [f3,bb5]@7 ~@16]/4", // F Dm Ab5 Csus4 F Bb5
  V: "[~@2 a4 bb4 b4@2 g5@2 [f3,a3,c4,a4]@4 ~ [a4,bb4] b4@4 g5@4 [f3,a3,c4,a4]@4 f5@2 [f3,a3,c4,c5]@2 a4@2, [g3,b3,d4]@7 ~@5 f5@2 [g3,b3,d4]@7 ~@11, ~@14 a3 ~@17]/2", // F Bbmaj7 F G
  W: "[b4@2 g5@2 b4@2 [f3,a3,c4,a4]@4 f5@2 [f3,a3,c4] ~ g4@4 b4@2 e5@2 [f3,a3,c4] ~ f4@4 a4@2 d5@2, [g3,b3,d4]@5 ~@7 a4@2 [g3,b3,d4]@7 ~ f4@2 [f3,a3,c4]@6 ~@2]/2", // F G F
  X: "[g4@2 b4@2 e5@2 f4@4 a4@2 d5@2 g4@4 b4@2 e5@2 [a3,c4,e4] ~ f4@4 a4@2 d5@2, [g3,b3,e4]@5 ~ [f3,a3,c4]@7 ~ [g3,b3,d4]@7 ~ f4@2 [a3,c4,e4]@7 ~]/2", // Am Em F G Am
  Y: "[~ g4 b4 d5 eb5 b4 g4 e5 c5 g4 f5 c5 g4 gb5 eb5 g4, ~ [g3,b3,d4]@3 [b3,eb4]@3 g4@2 ~ g4@2 ~ gb4@3, ~@4 g4@2 ~ e4@3 f4@3 g4@2 ~]/2", // G B
  Z: "[g5@2 e5@2 g4@2 g5@2 f5@2 g4@2 [bb4,bb5]@3 b4@3 [c5,c6]@3 ~@2 d6 [c4,f4,a4]@2 [c4,f4,a4,e5,e6]@2 ~ [f5,f6]@3, e4@3 [d4,f4]@3 [a3,g4]@5 [c4,f4,a4] ~@2 [c4,f4,a4]@2, g4@4 ~@2 g4@4 ~@5 b5 ~@5 [db5,db6]@2 d5@3 ~@6]/2", // Bb C F Fmaj7 F Dm A7 F …
  AA: "[[g5,g6]@4 ~@4 [g5,g6]@2 eb6@2 [g3,b3,d4,d6]@2 [g5,c6,g6]@4 db6@2 c6@2 [f3,a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~ [c5,db5]@2 c5@2 [g3,b3,d4,bb4]@2 ~@4 [f4,bb4,d5]@4 [g3,b3,d4] ~ [f3,a3,c4] db5, [g3,b3,d4]@3 [g3,b3,d4]@3 ~ [f3,a3,c4]@4 bb5 g5 [f5,gb5] f5 [g3,b3,d4,f5,g5]@2 ~ g4@2 ~@2 [g4,c5,e5]@2, ~@2 [g5,g6]@2 ~ [g5,g6]@2 ~@2 g6@2 d6@2 [b5,c6]@2 ~@2 [db5,d5]@3 ~@4, ~@38 [g3,b3,d4]@5 ~@5]/3", // G C5 F Dbmaj7 G Bb G F …
  AB: "~@3 db5 ~@4 [g4,c5,e5] ~@3 [f3,a3,c4]@3 ~, [f3,a3,c4,a4,d5,f5]@2 [a4,d5,f5]@2 ~ [a4,d5,f5]@3, ~@6 [f3,a3,c4]@5 ~@5", // C F Dm7 Dm F
  AC: "[~@2 c6 [f5,a5] ~@2 [g3,b3,e4]@4 g5 [c5,e5] [g3,b3,e4]@2 ~@4 c6 [f5,a5] ~@2 [f3,a3,c4,f4]@4 g5 [c5,e5] [f3,a3,c4,f4]@2 ~@2, [g3,b3,e4]@3 ~@5 [f3,a3,c4,f4]@3 ~@5, ~@2 d5@3 ~ a4@3 ~ d5@3 ~ a4@2]/2", // F Em C Em F C F Em …
  AD: "[g3,b3,d4]@2 ~ [f3,a3,c4]@2 ~ [g3,b3,d4]@2 [f3,a3,c4,g4,b4,d5]@2 ~ [g3,b3,d4]@2 ~ [f3,a3,c4]@2, ~@2 [g4,b4,d5]@3 [f4,a4,c5]@3 ~@2 [f4,a4,c5]@3 [g4,b4,d5]@3", // G F G Dm7 G F G F …
  AE: "~ [g3,b3,d4]@2 ~@3 [g3,b3,d4]@2 ~ [f3,a3,c4]@2 ~@2 [e6,f6] [f5,g5,a5,b5,c6,d6] ~, [f4,a4,c5]@3 [g4,b4,d5]@2 [f4,a4,c5]@3 [g4,b4,d5]@3 [f4,a4,c5]@3 [f3,a3,c4]@2, ~@4 [f3,a3,c4]@3 ~@5 [g3,b3,d4]@3 ~", // G F Fmaj7 Dm7 F G F G …
  AF: "[~ [g3,b3,d4]@2 ~ [f3,a3,c4]@3 [b5,c6,d6,e6] [d6,e6,f6,g6,a6] [b5,c6] [f3,a3,c4]@2 ~ [g3,b3,d4]@2 ~ [f3,a3,c4]@2 ~ [g3,b3,d4]@2 [g4,b4,d5]@3 ~@8, [f4,a4,c5]@3 [a4,b4,c5]@3 ~ [g3,b3,d4]@3 ~@2 [f4,a4,c5]@3 [g4,b4,d5]@3 [f4,a4,c5]@3 ~@11]/2", // G F Cmaj7 Dm Cmaj7 F G F …
  AG: "~ [f3,gb3,bb3,db4,c5,gb5,bb5,c6]!6 [c5,gb5,bb5,c6], ~@14 [f3,gb3,bb3,db4] ~", // Gbmaj7 Cm7b5 Gbmaj7
  AH: "c5@3 ~ c5 ~ [f3,gb3,bb3,db4]@4 [c5,gb5,bb5,c6]@2 [f3,gb3,bb3,db4] ~ [f3,gb3,bb3,db4,c5,gb5,bb5,c6]@2, [f3,gb3,bb3,db4,gb5,bb5,c6]@6 [c5,gb5,bb5,c6]@3 ~@7", // Gbmaj7 Cm7b5 Gbmaj7 Cm7b5
  AI: "[~@2 [f3,a3,c4,d4,g4,d5,g5]@3 [f3,a3,c4,d4,g4,d5,g5]@3 [f3,a3,c4,d4,g4,d5,g5]@14 [f4,c5,f5]@2 [g4,d5,g5]@2 [f4,c5,f5]@2 [g4,d5,g5]@2 [g4,d5,g5]@2, ~@11 [f3,a3,c4,d4]@2 [f3,a3,c4,d4]@3]/2", // Dm7 F5 G5 F5 G5 Dm7
  AJ: "~ [f5,f6]@2 [f5,f6] [f5,f6]@4, [g3,b3,d4]@3 [g3,b3,d4]@5", // F G
  AK: "~ [ab3,c4,eb4,c5,eb5,f5]@2 [c5,eb5,f5] ~@3 [ab3,c4,eb4], ~@3 [ab3,c4,eb4]@2 [ab3,c4,eb4]@2 ~, ~@2 [c5,eb5,f5]!2", // Fm7 F7 Ab F7
  AL: "[~@2 [g5,d6,g6]@4 [g5,d6,g6]@2 ~@4 [g3,b3,d4]@2 [a5,c6,a6]@4 [a5,c6,a6]@2 [a5,c6,e6]@2 [f5,a5,c6]@2 g5@2 [e5,f5,a5]@2 c5@2 ~ bb4, [g3,b3,d4]@3 [g3,b3,d4]@3 ~ [f3,a3,c4]@4 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4,a4,c5,e5], ~@4 [g5,d6,g6]@3 ~@9]/2", // G5 G Am F Fmaj7 G F Fmaj7 …
  AM: "[b4@4 g5@2 a4@4 [c5,f5]@2 [c5,f5]@2 d5@4 [g5,b5]@4 [eb5,ab5]@2 ab5@2 d6@2 eb5@2 e5@2 a5@2 d6@2 f5@2 g5@2 bb5@2 eb6@2 bb5@2 a5@2 c6@2 f6@2 ~@5 [g4,c5,e5] [e4,g4,c5]@6, [g3,b3,d4]@3 [f3,a3,c4]@4 [g3,b3,d4]@4 [ab3,db4]@4 [g3,d4]@4 [ab3,eb4]@4 [f3,a3,c4]@4 [d2,e2,f2,g2,a2,b2,c3,d3]@5, ~@13 b5 ~@2]/4", // F5 G Ab5 C G F G Db5 …
  AN: "[f5@4 g5@2 [f5,c6]@4 [g5,c6]@4 [g3,c4] ~@3 [g5,c6]@3 ~ [f5,c6] ~@5 [g5,c6] ~ [g3,c4,f5] ~, [g3,c4,f4,c6]@3 [a3,g4]@4 f4 [g3,c4,f4]@3 [g3,c4,f4]@2 [g3,c4,f4]@2 [f4,c6], ~@3 d4@3 ~ [f5,c6]@2 ~@3 [f5,c6]@2 ~@2]/2", // F5 C5 F5 C5 Csus4 A7 Csus4 F5
  AO: "[[g5,c6]@3 ~ c6@2 [g3,b3,d4,f5,c6]@4 [g5,c6]@2 [g3,b3,d4] ~ [f3,a3,c4]@4 g5@2 ~ f5@3 bb5@3 ~ [f3,a3,c4]@2 ~@2 a5@3 d6@3 [g3,b3,d4] ~ [g3,b3,d4,e6]@3 [g3,b3,d4,d6]@2 f6@3, [g3,b3,d4]@6 ~@14 [f3,a3,c4]@7 ~@4 [g3,b3,d4]@6 ~@11, ~@4 a5 ~@9 [e5,c6]@3 ~@10 g5@3 c6@2 ~@6 b5@2 ~@8]/3", // C5 G7 C5 G F G Em7 G …
  AP: "d6@2 e6 f6@2 ~@3 e6@2 f6@2 [f3,a3,c4,f4,d6]@2 e6@2, [f3,a3,c4,f4]@5 d6@3 ~@8, ~@6 [f3,a3,c4,f4]@5 ~@5", // Dm7 F
  AQ: "f6@2 d6 e6 f6 d6 ~ e6 f6 d6 ~ e6 f6 d6 eb6 f6, [g3,b3,d4]@5 ~ [g3,b3,d4]@6 [g3,b3,d4]@3 ~", // G
  AR: "d6 e6 f6 d6 e6 f6 d6 e6 f6 d6 e6 f6 d6 e6 f6 d6, [f3,a3,c4]@5 ~ [f3,a3,c4]@5 ~ [f3,a3,c4]@3 ~", // F
  AS: "e6 f6 [f6,a6] e6 d6 e6 f6 a6 [e6,f6] [d6,e6] [c6,d6] e6 f6 a6 [e6,f6] ~, [g3,b3,d4]@5 ~ [g3,b3,d4]@5 ~ [g3,b3,d4]@2 ~@2", // F Fmaj7 Dsus2 Csus2 Fmaj7 G
  AT: "[d6 e6 f6 ~ f6 e6 d6 [e6,f6] a6 f6 e6 d6 e6 f6 a6 f6 e6 [c6,d6] e6 f6 a6 f6 [d6,e6] e6 a6@2 e6@2 d6 [e6,f6] a6 f6 e6 d6 e6 f6 a6 [e6,f6] d6 [e6,f6] g6 f6 [a6,c7,d7] f6 d6@2 c7@2, [a3,c4,f4] [bb3,eb4,g4] [c4,f4,a4] [d4,g4,bb4] [eb4,a4,c5] [a3,c4,f4] [a3,c4,f4]!2, ~@3 a6@5 ~@16 f6 ~ f6 ~@17 f6 ~ a6 ~]/3", // Fmaj7 Csus2 Dsus2 Fmaj7 D7 F Eb F …
  AU: "[[f6,a6] d6 [f6,a6] c7 a6 [d6,f6] ~ [f6,a6] c7 [f6,a6] d6 f6 a6 c7 [f6,a6] d6 f6 a6 [a6,c7] f6 d6 [f6,a6] [c7,d7] a6 d6@2 f6 [a6,c7] ~ [f6,a6] d6 [f6,a6], [g3,b3,d4]@3 [g3,b3,d4]@3 [g3,b3,d4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 [a3,c4,f4]@2, ~@24 f6 ~@7]/2", // F Dm F Am F Csus2 Am F …
  AV: "c7 a6 f6 d6 [f6,a6] c7 [f6,a6] d6 [f6,a6] c7 a6 f6 [d6,f6] a6 c7 [d6,f6], [g3,b3,d4]!4", // F Dm G
  AW: "[c7 c6 c7 c6 [ab6,c7,d7] ab6 ~@2 [g3,bb3,d4,f4,a4]@12 ~@4, [a3,c4,f4]@4 [a3,c4,f4]@4 [a3,c4,f4]@4 [a3,c4,f4]@3 c3@25 ~@8, a6 ~@9 [c7,d7]@4 [ab6,c7,d7]@2 ~@32]/3", // Dm7b5 Gm7 F Csus2 Dm7b5
})).s("gm_piano").gain(0.35)

// bass · electric bass finger · "bass"
const bass = note("<A@2 B@2 C@8 D@8 E@6 F@8 G@7 H@8 I@8 J@8 K L@8 M@4 N@2>".pickRestart({
  A: "[g1@3 d2@3 f2@6 d2@2 g1 e1]/2", B: "[f1@6 c2@6 eb2@12 c2@4 ~ eb2@2 ~, ~@14 ab1 ~]/2",
  C: "[g1@3 d2@3 f2@5 d2 eb2@2 g1@5 d2@3 f2@5 d2 eb2@2 g1@5 d2@3 f2@5 d2 eb2@2 g1@5 d2@3 f2@5 d2 a1@2 g1@2]/8",
  D: "[~@3 d2@3 f2@5 d2 eb2@2 g1@5 d2@3 f2@5 d2 a1@2 g1@5 d2@3 f2@5 d2 eb2@2 g1@5 d2@3 f2@5 d2 eb2@2 g1@2]/8",
  E: "[~@3 d2@3 f2@5 d2 eb2@2 g1@5 d2@3 f2@5 d2 eb2@2 g1@5 d2@3 f2@5 d2 a1@2 g1@2]/6",
  F: "[~@6 d2@6 f2@10 d2@2 eb2@4 g1@10 d2@5 ~ f2@10 d2@2 a1@2 d2@2 g1@10 d2@6 f2@10 d2@2 eb2@4 g1@10 d2@6 f2@10 d2@2 a1@2 d2@2 g1@4]/8",
  G: "[~@6 d2@6 f2@9 ~ d2@2 eb2@4 g1@10 d2@6 f2@10 d2@2 eb2@4 g1@10 d2@6 f2@10 d2@2 a1@2 d2@2 g1@9 ~ d2@5 f2@5]/7",
  H: "[~@5 d2@2 ~ eb2@4 g1@10 d2@6 f2@10 d2@2 eb2@4 g1@10 d2@6 f2@10 d2@2 eb2@4 g1@10 d2@6 f2@10 d2@2 a1@4 g1@10 d2@6 f2@4]/8",
  I: "[~@6 d2@2 eb2@4 g1@10 d2@6 f2@10 d2@2 g2 ~@3 g2@10 d2@5 f2@10 ~ d2@2 eb2@4 g1@10 d2@6 f2@10 d2@2 g2@2 ~@2 g2@10 d2@5 f2@5]/8",
  J: "[~@3 d2 g2 d3 g2@5 d2@3 f2@5 d2 g2 d3 g2@5 d2@3 f2@5 d2 a1@2 g1@5 d2@3 f2@5 d2 eb2@2 g1@5 d2@3 f2@2]/8",
  K: "~@5 d2@2 ~ d3@2 g2@2 d2@4",
  L: "[~@3 d2@3 f2@5 d2 eb2@2 g1@5 d2@3 f2@5 d2 g2 d2 g1@5 d2@3 f2@5 d2 eb2@2 g1@5 d2@3 f2@5 d2 a1@2 g1@2]/8",
  M: "[~@3 d2@3 f2@5 d2 a1@2 g1@4 ~ d2@3 f2@5 d2 a1@2 g1@2, ~@60 a1 ~@3]/4", N: "[c2@19 ~@13]/2",
})).s("gm_electric_bass_finger").gain(0.35)

// drums · ride
const ride = s("rd").struct("<A@8 ~@32 A B@2 A B A@6 C A C B A@3 B A@3 C@4 A@4 B D E@6 F ~>".pickRestart({
  A: "x!4", B: "x ~ x ~ x ~ x!2", C: "x ~ x!3 ~ x ~", D: "x ~ x!3 ~ x!2", E: "x!8", F: "x",
})).gain(0.35)

// drums · crash
const crash = s("cr").struct("<~@19 A ~ A ~ A ~@16 B ~@37 B ~>".pickRestart({
  A: "~ x ~@2", B: "x",
})).gain(0.35)

// drums · bongos
const bongos = s("bongo:4").struct("<[~ x ~@2]!37 ~@3 [~ x ~@2]!36 ~@4>").gain(0.91)

// drums · congas
const congas = s("conga:13").struct(`<
  A@37 ~@3 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 B C B C ~@4
>`.pickRestart({
  A: "x!2 ~ x ~ x ~@2", B: "x ~@2 x!2 ~@3", C: "x ~@4 x ~@2",
})).gain(1.11)

// drums · congas
const congas_2 = s("conga:18").struct("<[~@6 x!2]!37 [~@2 x!6] [x!8] ~ [~@6 x!2]!36 [x!8]!2 ~@2>").gain(1.11)

// drums · congas
const congas_3 = s("conga:33").struct(`<
  ~@39 A ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@4
>`.pickRestart({
  A: "x!8", B: "~@3 x!2 ~@3",
})).gain(1.11)

// drums · guiro
const guiro = s("guiro:0").struct("<[~ x!3 ~ x!3]!40 ~@40>").gain(4.19)

// drums · guiro
const guiro_2 = s("guiro:4").struct("<[x!2]!40 ~@40>").gain(4.19)

stack(piano, bass, ride, crash, bongos, congas, congas_2, congas_3, guiro, guiro_2)

More by Joe Jackson