Strudelify
That's All cover art

1983 · Genesis

That's All

Genesis

KeyE minorTempo89 bpm
0:00/0:00
// That's All — Genesis
// 89 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (2/4 at bar 1, 4/4 at bar 1) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 89 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(89/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 · epiano2 · "E.piano 2"
const epiano2 = note(`<
  A@5 B@4 C@4 D E F G@3 H@4 I@6 J K L M N O P@2 Q@2 R S T U@2 V@2 W X@2 Y Z AA@3 AB AC AD@2 AE@3 U T U AF U@2 T AG@5 AH
  AI AJ@2 AK@5 AL AM@6
>`.pickRestart({
  A: "[~@13 d4 e4 [b3,g4]@2 ~ [b3,g4] ~ [b3,e4]@2 [b3,e4]@2 [b3,d4]@4 ~ d4 e4 [b3,g4]@3 [b3,g4]@2 [b3,e4] ~ [b3,e4]@2 [b3,d4]@4 ~ d4 e4 [b3,g4]@2 ~ [b3,g4]@2 [b3,e4] ~ [b3,e4] ~ [b3,d4]@2 [b3,d4]@2 e4 ~ b3 [b3,e4]@2 ~ [b3,e4] ~@3 [b3,e4] ~@3 [b3,e4] ~@2 d4 e4 [e3,b3,g4], ~@12 b3@2 ~ e3@9 f#3@7 e3@9 f#3@7 e3@9 f#3@8 ~@12 b3@3 ~, ~@28 b3@3 ~@13 b3@3 ~@14 d4@2 e3@14 ~@3]/5", // Em E5 Bm Em E5 Bm Em E5 …
  B: "[~@2 [b3,g4]@2 b3@2 [b3,e4]@2 [b3,d4]@4 ~@2 e4 [b3,g4]@3 b3 ~ e4@2 e4@2 [b3,d4]@4 ~ d4 e4 [b3,g4]@3 [b3,g4]@2 [b3,e4]@2 [b3,e4]@2 [b3,d4]@2 [b3,d4]@2 ~ d4 b3 [b3,e4]@3 [b3,e4] ~@3 [b3,e4]@2 ~@2 e4@2 ~ d4 ~ b3, ~@4 g4@11 ~@3 g4@2 ~@44, ~@4 e4 ~@3 f#3@7 e3@9 f#3@7 e3@9 f#3@7 e3@13 ~@4, ~@12 b3@3 ~@4 b3@2 ~ b3 ~@5 b3@3 ~@27 b3 ~ b3@3 ~, ~@13 d4@2 ~@29 e4@2 ~@16 e4@2]/4", // Em E5 Bm Em Bm Em E5 Bm …
  C: "[~@8 [d4,f#4]@2 a3@2 ~@2 d3@2 [c4,e4]@2 a3@2 ~@2 e3 [d4,f#4]@3 a3@2 [d4,f#4]@2 a3@2 ~@2 a3@2 ~@2 a3@2 a3 ~ a3@2 [d4,f#4]@2 [b3,e4]@3 ~ e4@2 ~@2 [b3,e4]@3 ~ e4@2 b3@3 ~, a2@21 ~ a2@21 ~@3 [b2,e3]@10 ~@8, e3@6 a3@4 ~@2 [d4,f#4]@3 ~ e3@5 a3@4 ~@7 [c4,e4]@4 [c4,e4]@4 ~@4 a3 ~@5 b3 ~@7 b3 ~@5, ~@2 [c4,e4]@6 d3@5 a3@4 ~@3 [c4,e4,a4]@3 d3@9 e3@8 [d3,d4,f#4]@4 ~@20, ~ a3 a4@2 ~@28]/4", // D C D E5 D C Am D
  D: "b3 d4 [g4,b4] d4 [g4,b4] d4 ~ g3, g3@13 ~@3, [g4,b4] ~@2 [g4,b4], d4 ~@12 d4@3", // G
  E: "[a4,c5]@2 e4@2 ~ e4@2 ~ [a4,d5]@2 f#4@2 ~@2 d3@2, a3@8 d3@5 f#4@2 ~, e4 ~@3 [a4,c5]@3 ~ f#4 ~@3 [a4,d5]@3 ~", // Am D5 Am D5
  F: "a3 ~@3 [g4,b4]@2 d4@2 [g4,b4]@2 d4@2 ~@2 g3@2, [d4,g4,b4] d4@2 ~@3 [g4,b4]@2, ~ g3@12 d4@3", // G
  G: "[[a4,c5]@2 e4@2 ~ e4@2 ~ [f#4,a4,d5]@2 ~@3 d4 e4 [b3,g4]@3 [b3,g4] ~ [b3,e4]@2 [b3,e4]@2 [b3,d4]@4 ~ d4 e4 [b3,g4]@3 g4@2 e4@2 e4@2 [b3,d4]@4 ~ d4 e4 [e3,b3,g4], a3@8 d3@6 ~ e3@9 f#3@7 e3@9 f#3@7 ~, e4 ~@3 [a4,c5]@3 ~@5 b3@2 ~@14 b3@2 ~@4 b3 ~ b3 ~ b3 ~@5 b3@3 ~]/3", // Am D Em E5 Bm Em Bm Em …
  H: "[~@2 [b3,g4]@2 e4@2 e4@2 [b3,d4] ~ [b3,d4]@2 e4 ~ b3 [b3,e4]@2 ~ [b3,e4] ~@3 [b3,e4] ~@3 [b3,e4] ~@2 d4 e4 [b3,g4]@3 g4@2 e4@2 e4@2 [b3,d4]@4 ~ d4 e4 [b3,g4]@3 b3 ~ e4@2 e4@2 [b3,d4]@4 ~ d4 e4 [e3,b3,g4], ~@4 b3 ~ b3 ~ f#3@7 e3@15 ~ e3@9 f#3@7 e3@9 f#3@7 ~, ~@13 d4@2 ~@13 b3@3 ~@3 b3 ~ b3 ~ b3 ~@5 b3@3 ~@3 g4@2 ~@12, ~@51 b3@2 ~ b3 ~@5 b3@2 ~@2]/4", // Em Bm E5 Em Bm Em Bm Em
  I: "[~@2 [b3,g4] ~ e4@2 [b3,e4] ~ [b3,d4] ~ [b3,d4]@2 e4 ~ b3 [b3,e4]@2 ~ [b3,e4] ~@3 [b3,e4]@2 ~@2 e4@2 ~ d4 ~@2 [c4,e4]@2 a3@2 ~@2 e3@2 [d4,f#4]@2 a3@2 ~@4 [c4,e4]@2 a3@2 ~@3 [d4,f#4]@3 a3@2 ~@6 a3@2 [c4,e4]@2 a3@2 ~@6 [b3,g4]@4 b3@2 [b3,e4]@2 [b3,e4] ~ b3 ~ b3@2 ~@2 e4 ~, ~@4 b3 ~@3 f#3@8 ~@10 b3 ~ b3@3 a2@14 a3@4 ~@3 [c4,e4]@3 ~@5 f#4@4 [c4,e4]@4 ~@4 [d4,f#4]@4 e4@8 ~@4 e4@5 ~@3, ~@13 d4@2 e3@11 ~@4 e4@2 a3 ~@3 [c4,e4]@3 ~ d3@8 e3@7 d3@9 e3@8 d3@6 ~@4 e3@14, ~@31 e3@6 a3@4 ~@3 [d4,f#4]@2 a2@15 a3@4 ~@9 a3@4 ~@15 b3@2 ~, ~@53 a3@4 ~@3 d4@2 a2@16 ~@18]/6", // Em E5 Bm E5 C D C D …
  J: "d4@2 d4@2 ~ d4@3 [g4,b4]@2 d4@2 d4 ~ g3@2, [g4,b4]@4 g3@9 d4@2 ~, ~@4 [g4,b4]@4 d4 ~@3 [g4,b4]@4", // G
  K: "[a4,c5]@2 e4@2 ~@2 a3@2 [a4,d5]@2 f#4@2 ~ f#4@2 ~, a3@5 e4@2 ~ d3@8, e4 ~@3 [a4,c5]@4 f#4 ~@3 [a4,d5]@3 ~", // Am D5 Am D5
  L: "d4 ~ d4@2 ~@2 d4@2 [g4,b4]@2 d4@2 ~@2 g3@2, g3@13 d4@2 ~, [g4,b4]!2 ~ [g4,b4]", // G
  M: "c5@2 e4@2 ~ a3@3 [d3,f#4,a4,d5]@4 ~ d3@3, [a3,a4]@5 ~@11, e4 ~@3 [e4,a4,c5]@3 ~@5 [f#4,a4,d5]@2 ~@2", // D A Am D
  N: "[b3,g4]@3 ~ [b3,e4]@2 [b3,e4] b3@4 ~@3 e4 ~, ~@7 [f#3,d4]@6 d4@2 ~, ~@12 b3@3 ~", // Em E5 D
  O: "[b3,g4]@2 [b3,g4]@2 [b3,e4]@2 [b3,e4] [b3,d4]@5 ~ d4 e4 ~, e3@7 f#3@9, ~@12 b3@3 ~", // Em E5 Bm
  P: "[[b3,g4]@2 [b3,g4]@2 [b3,e4]@2 e4@2 d4@2 b3@2 e4 ~ b3 [b3,e4]@2 ~ e4 ~@3 [b3,e4]@3 ~ [b3,e4]@3 ~ [b3,e4] ~, e3@8 f#3@7 e3@17, ~@6 b3 ~ b3 ~ d4 ~@2 d4@2 ~@2 b3@2 ~@13]/2", // Em E5
  Q: "[c4,e4,g4,b4]@3 ~", R: "[c4,e4,g4,b4]@15 ~",
  S: "~@2 [b3,e4,g4] ~@3 [b3,e4,g4] ~@3 [b3,e4,g4]@2 ~ [b3,e4,g4] ~@2, ~@2 e3@9 ~ e3@4", T: "[c4,e4,g4,b4]@7 ~",
  U: "[c4,e4,g4,b4]@13 ~@3", // Cmaj7
  V: "[~@2 [b3,e4,g4] ~@3 [b3,e4,g4] ~@3 [b3,e4,g4] ~@2 d4 e4 [e3,b3,g4]@4 ~ [b3,e4]@2 e4 ~ d4@4 ~ d4 e4 ~, e3@7 ~@5 f#3@4, ~@12 b3@2 ~@8 b3@5 ~ b3@3 ~]/2", // Em E5
  W: "[b3,g4]@2 [b3,g4] ~ [b3,e4]@2 [b3,e4] [b3,d4]@5 ~ d4 e4 ~, e3@7 f#3@9, ~@12 b3@3 ~", // Em E5 Bm
  X: "[[b3,g4]@2 g4@2 e4@2 e4@2 [b3,d4] ~ [b3,d4]@2 e4 ~ b3 [b3,e4]@3 [b3,e4] ~@3 [b3,e4]@2 ~@2 e4@2 ~ d4 ~ d4, e3@8 f#3@7 e3@17, ~@2 b3 ~ b3 ~ b3 ~@6 d4@2 ~@11 b3 ~ b3@2 e4@2]/2", // Em Bm E5
  Y: "a3 ~ a3@2 ~@2 a2@2 f#4@2 a3@2 ~@2 d3@2, [a2,c4,e4]@2 [c4,e4]@2 [d3,d4]@2 d4 ~, ~@5 a3@4 ~@3 f#4@4, ~@13 a3@3", // Am C D
  Z: "[c4,e4]@2 a3@2 ~@3 [d4,f#4]@3 a3@2 ~@2 d3@2, a2@2 [c4,e4] a2 ~@2 d4 ~, ~@5 a3@4 ~@3 f#4@4, ~@7 d3@6 a3@3", // C D C
  AA: "[~@2 a3@2 [c4,e4]@2 a3@2 ~@2 a3@2 [d4,f#4]@2 ~@4 [b3,e4,g4] ~@3 [b3,e4,g4]@2 ~@2 [b3,e4,g4] ~@2 [e4,g4] b3 ~ d4@2 d4@2 ~ d4@2 ~ d4@2 d4@2 ~ d4@2 ~, a2@4 d3@3 [b3,d4,g4]@2 ~@7 [g4,b4]@2 [g4,b4]@2 [g4,b4]@2 [g4,b4]@2, [c4,e4] ~ [d4,f#4] a3@9, ~@15 e3@17 g3@6 ~ g3@9]/3", // C D Em G C D
  AB: "e4 ~ e4@2 ~ e4@2 ~ [a4,d5]@2 f#4@2 ~ f#4 ~@2, a3 d3, [a4,c5]@4 [a4,c5]@4 f#4 ~@3 [a4,d5]@3 ~", // D5 Am D5
  AC: "d4 ~ d4@2 d4 ~ d4@2 [g4,b4]@2 d4@2 ~@2 g3@2, g3@13 d4@2 ~, [g4,b4]!2 ~ [g4,b4]", // G
  AD: "[[a4,c5]@2 e4@2 ~@2 a3@2 [f#4,a4,d5]@2 ~@4 e4 [b3,g4]@3 [b3,g4] ~ e4@2 ~ d4@5 ~ d4 e4 ~, a3@5 e4@2 ~ d3@4 b3@3 e3@7 e4@2 ~@8, e4 ~@3 [a4,c5]@3 ~@6 d4@2 ~@5 b3 ~ b3@5 ~ b3@3 ~, ~@23 f#3@9]/2", // Am D Em Am
  AE: "[[b3,g4]@2 g4@2 e4@2 e4@2 [b3,d4]@4 ~ d4 e4 [b3,g4]@2 ~ [b3,g4]@2 [b3,e4]@2 e4@2 [b3,d4] ~ [b3,d4]@2 e4 ~ b3 [b3,e4]@2 ~ [b3,e4]@2 ~@2 [b3,e4]@2 ~@2 [b3,e4]@2 ~ [b3,e4] ~@2, e3@8 f#3@7 e3@9 f#3@6 ~ e3@11 ~@2 e3@4, ~@2 b3 ~ b3 ~ b3 ~@5 b3@2 ~@8 b3 ~@6 d4@2 ~@17]/3", // Em Bm Em E5 Bm E5
  AF: "~@2 [b3,e4,g4] ~@3 [b3,e4,g4] ~@3 [b3,e4,g4]@2 ~ [b3,e4,g4] ~@2, e3@11 ~ e3@4", // Em
  AG: "[~@2 [b3,e4,g4] ~@3 [b3,e4,g4] ~@3 [b3,e4,g4] ~ b3 d4 e4 [b3,g4]@2 ~ [b3,g4]@2 [b3,e4]@2 b3@2 [b3,d4]@4 ~ d4 e4 [b3,g4]@2 ~ [b3,g4] ~ [b3,e4] ~ [b3,e4] ~ [b3,d4]@4 ~ d4 e4 [b3,g4]@2 ~ [b3,g4] ~ e4@2 [b3,e4] ~ d4@2 [b3,d4]@2 e4 ~ b3 [b3,e4]@3 [b3,e4] ~@3 [b3,e4]@2 ~@2 e4@2 ~ d4 ~ d4, e3@12 ~@3 e3@9 f#3@7 e3@9 f#3@6 ~ e3@9 f#3@7 e3@13 ~@4, ~@22 e4@8 ~@31 d4@2 ~@15 e4@2, ~@28 b3@2 ~@14 b3@2 ~@6 b3 ~@3 b3 ~@17 b3 ~ b3@2 ~@2]/5", // Em E5 Bm Em E5 Bm Em E5 …
  AH: "[a3,c#4] ~ a3@2 [c4,e4]@2 ~ [d4,f#4]@3 a3@2 ~@2 d3@2, a2@7 d3@5 d4@2 ~@2, [c4,e4]@4 ~@2 a3@3 ~@3 f#4@4, ~@13 a3@3", // A C D C
  AI: "~@2 a3@2 ~@2 a3@2 [d4,f#4]@2 a3@2 a3 ~ d3@2, a2@8 d3@5 a3@3, [c4,e4]@4 [c4,e4]@4 a3 ~@3 [d4,f#4]@3 ~", // D C D
  AJ: "[[c4,e4]@2 a3@2 [c4,e4]@2 a3@2 a3 ~ a3 ~ [d4,f#4]@2 b3 ~@3 [b3,e4] ~@3 [b3,e4] ~@3 [b3,e4] ~@2 d4 e4@2, a2@8 [d3,d4,f#4]@4 a3 ~ [d4,g4]@3 ~@11 b3@4, ~@15 e3@17]/2", // C D E5 D G5
  AK: "[[b3,g4]@2 [b3,g4] ~ [b3,e4] ~ [b3,e4] [b3,d4]@3 d4@2 ~ d4 e4 [b3,g4]@3 [b3,g4] b3 [b3,e4]@2 [b3,e4] [b3,d4]@3 d4@2 ~ d4 e4 [b3,g4]@3 g4@2 [b3,e4] ~ e4@2 [b3,d4] ~ [b3,d4]@2 e4 d4 b3 [b3,e4]@3 [b3,e4] ~@3 [b3,e4]@2 ~@2 e4@2 ~ d4 ~@2 [a3,c4,e4]@2 a3@2 ~@6 a3@2 ~@2 d3@2, e3@7 f#3@8 e3@8 f#3@8 e3@9 f#3@7 e3@15 e4@2 ~@4 [c4,e4]@2 d3@7 ~@3, ~@10 b3 ~ b3@2 ~@12 b3 ~ b3@3 ~@3 b3 ~@3 b3 ~@19 b3 ~ b3@3 a2@8 ~ [d4,f#4]@4 [d4,f#4]@2 ~@2, ~@69 a3@4 ~@4 a3@3]/5", // Em E5 Bm Em E5 Bm Em E5 …
  AL: "~@2 a3@2 ~@3 [d4,f#4]@3 a3@2 ~@2 d3@2, a2@5 a3@4 ~@3 f#4@4, [c4,e4]@2 [c4,e4] d3@3 d4 ~, ~@13 a3@3", // D C
  AM: "[~@2 a3@2 ~ a3@3 ~@2 a3@2 [d4,f#4]@2 [b3,e4,g4]@3 ~ [b3,e4]@2 ~@2 [b3,e4]@3 ~ e4@2 ~ d4 e4 [b3,g4]@2 ~ g4@2 [b3,e4]@2 [b3,e4] [b3,d4]@2 ~ d4@2 ~ d4 e4 [b3,g4]@3 [b3,g4] ~ e4@2 [b3,e4] [b3,d4]@3 [b3,d4] ~@2 d4 e4 [b3,g4]@3 [b3,g4] ~ [b3,e4] ~ e4@2 d4@2 [b3,d4]@2 e4 d4 b3 [e3,b3,e4]@13 ~@4, a2@8 d3@6 e3@16 ~ e3@8 f#3@8 e3@8 f#3@8 e3@9 f#3@7 ~@17, [c4,e4]@4 [c4,e4]@3 ~ [d4,f#4]@4 a3 ~@13 b3 ~ b3@3 ~@3 b3 ~@7 b3 ~ b3@3 ~@4 b3@2 ~@7 b3@3 ~@7 b3 ~ b3 ~@23]/6", // D Em E5 Em E5 Bm Em E5 …
})).s("gm_epiano2").gain(0.27)

// chords · percussive organ · "Det. Organ 2"
const percussive_organ = note("<~@37 A B C ~ A B C ~@17 A B C ~ A B C ~@21>".pickRestart({
  A: "~ [c5,e5,g5,b5]@7", B: "~ [e5,g5,b5,d6]@7", C: "~ [e5,g5,b5,e6]@7",
})).s("gm_percussive_organ").gain(0.17)

// other · percussive organ · "Organ 2"
const percussive_organ_2 = note("<~@44 A B@7 C ~@36>".pickRestart({
  A: "~@12 b4 d5 e5 ~",
  B: "[g5@2 e5 d5 e5 ~ e5 d5@3 e5 ~ b4 d5 e5 g5@3 a5 g5 a5 ~ g5 a5@3 g5 ~ b4 d5 e5 g5@3 e5 ~ e5 ~ b5 a5@3 b5 ~ b5 a5 g5 e5@6 ~@7 b5 d6 e6 g6@3 e6 d6 e6 ~ e6 d6@3 e6 ~ b5 d6 e6 g6@3 e6 d6 e6 d6 e6 d6@3 ~@2 b5 d6 e6 g6@2 e6 d6 e6 d6 b5 d6 b5 a5 b5 a5 g5 a5 b5 a5 ~]/7",
  C: "e5@3 ~@5",
})).s("gm_percussive_organ").gain(0.5)

// other · clavinet · "Clav."
const clavinet = note(`<
  ~@21 A@2 B A C@2 D@2 ~@4 A@2 B A ~@8 A@2 B A C@2 D@2 ~@4 A@2 B A ~@8 A@2 B A C@2 D@2 ~@12
>`.pickRestart({
  A: "e3@2 b3@2 d4 c#4 b3 g3 e3!2 b3@2 d4 c#4 b3 g3", B: "e3@2 b3@2 d4 c#4 b3 g3 c3@2 g3@2 d3@2 b3@2",
  C: "[e4,g4] ~ [e4,g4]@2 ~ [e4,g4]!2 ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~ [d4,f#4] ~", // Em D
  D: "[[e4,g4] ~ [e4,g4]@2 ~ [e4,g4]!2 ~ [d4,f#4] ~ [d4,f#4] ~@3 d#4 e3@3 b3@2 d4 c#4 b3 g3 e3!2 b3@2 d4 c#4 b3 g3]/2", // Em D
})).s("gm_clavinet").gain(0.17)

// chords · piano · "Honky-tonk" · Em
const piano = note("<~@88 [[e3,g3,b3,e4,e5]@3 ~]>").s("gm_piano").gain(0.29).pan(0.8)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@5 A@2 B A C@2 D A E F E G A@2 H I A@2 B I J C K L E F E M A I N A O P O A O P@2 A@3 B A C@2 M Q E F E M A@2 B A R
  O@2 A O@2 P A@3 B A J S T A I A N L C U D I@2 V B W
>`.pickRestart({
  A: "e2@4 e3@4 e2@3 e2 d3 ~ e3@2", B: "e2@4 e3@4 c2@4 d2@3 ~", C: "a2@4 b2@4 d2@3 ~ d2@3 ~",
  D: "a2@4 b2@4 d2@4 d#2@3 ~", E: "g2 b2 d3 g2", F: "a2 b2 a2 d2", G: "a2@2 b2@2 a2@2 d2 d#2", H: "e2 e3 c2 d2",
  I: "e2@4 e3@4 e2@2 ~ e2 d3 ~ e3@2", J: "a2@4 b2@4 d2@3 ~ d2@4", K: "a2@4 b2@4 d2@4 d#2@3 ~, ~@12 d2 ~@3",
  L: "e2@4 e3@4 e2@2 ~ e2 d3 ~ e3 ~", M: "a2 b2 d2 d#2", N: "e2@4 e3@4 c2@3 ~ d2@3 ~", O: "c2@7 ~", P: "c2@15 ~",
  Q: "e2@4 ~@4 e2@2 ~ e2 d3 ~ e3@2, ~@4 e3@7 ~@5", R: "c2@7 ~, a2 ~@7", S: "a2 b2 d2!2",
  T: "a2@4 b2@3 ~ d2@3 ~ d#2@3 ~", U: "a2@4 b2@3 ~ d2@3 ~ d2@3 ~", V: "[e2,e3]@4 e3@4 e2@3 e2 d3 ~ e3@2", W: "e2@3 ~",
})).s("gm_electric_bass_finger").gain(0.24).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~ A@36 B@3 A B@3 A@17 B@3 A B@3 A@20 B>".pickRestart({
  A: "x!4", B: "x",
})).gain(0.32)

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

// drums · low tom
const low_tom = s("lt").struct("<~@37 A@2 ~@2 A@2 ~@18 A@2 ~@2 A@2 ~@22>".pickRestart({
  A: "~@7 x",
})).gain(0.29)

// drums · hihat
const hihat = s("hh").struct("<~ A@15 B A@3 B C@12 A@4 ~@3 C ~@3 C@17 ~@3 C ~@3 C@20 ~>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~@2 x ~@3 x ~@3 x ~@2 x!2 ~", C: "x!8",
})).gain(0.25)

// drums · mid tom
const mid_tom = s("mt").struct("<~@37 A@2 ~@2 B@2 C ~@17 A@2 ~@2 B@2 C ~@21>".pickRestart({
  A: "~@11 x ~ x ~@2", B: "~@13 x ~@2", C: "~@11 x ~@4",
})).gain(0.29)

// drums · high tom
const high_tom = s("ht").struct("<~@37 A B ~@2 B@2 ~@18 A B ~@2 B@2 ~@22>".pickRestart({
  A: "~@4 x!2 ~@2", B: "~ x",
})).gain(0.29)

// drums · crash
const crash = s("cr").struct("<~@37 A@3 ~ A@3 ~@17 A@3 ~ A@3 ~@20 A>".pickRestart({
  A: "x",
})).gain(0.25)

// drums · tambourine
const tambourine = s("tb").struct("<~@29 A@4 ~@4 A@8 ~@8 A@4 ~@4 A@8 ~@20>".pickRestart({
  A: "x!16",
})).gain(0.25)

stack(
  epiano2, percussive_organ, percussive_organ_2, clavinet, piano, bass, kick, snare, low_tom, hihat, mid_tom, high_tom,
  crash, tambourine
)

More by Genesis