Strudelify
Taste It cover art

Welcome To Wherever You Are

Taste It

INXS

KeyB minorTempo114 bpm
0:00/0:00
// Taste It — INXS
// 114 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 97 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(114/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, A@4 for four bars: edit a riff to change every repeat.

// bass · acoustic bass
const bass = note(`<
  ~@6 A B@23 C ~ A D@3 E@8 F@8 G@5 ~ H@4 I J K L M@6 N O P@2 Q R S T U V ~@2 W@3 X@5 Y@5
>`.pickRestart({
  A: "~@5 b2@8 b2@6 b2@6 a2@4 b2@3", B: "~ d3@4 b2@8 b2@6 b2@6 a2@4 b2@3", C: "~ d3@4 ~@27",
  D: "d3@2 b2@4 b2@3 b2@3 a2@2 b2@2",
  E: "[d3@4 b2@8 b2@6 b2@5 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3]/8",
  F: "[~@3 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3]/8",
  G: "[~@3 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 ~@29]/5",
  H: "[~@2 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@3 b2@8 b2@6 b2@6 a2@4 b2@4 d3@3]/4",
  I: "~ b2@8 b2@8 d3@8 d3@4 e3@3", J: "~ e3@31", K: "~ b2@7 b2@8 d3@12 e3@4", L: "e3!4 f#3 e3 d3 e3",
  M: "b2 ~ b2 ~ b2 ~ b2 b2@2 b2!2 a2 b2@2 d3 ~", N: "b2@2 b2@2 c#3@2 d3 g2@3 g2@2 a2@2 g2 a2",
  O: "b2@2 b2@2 c#3@2 d3 g3@2 g3 f#3@2 e3@2 d3@2", P: "b2@2 b2@2 b2@2 b2 b2@2 b2!2 a2 b2@2 d3 ~",
  Q: "d3 ~ d3@2 d3@2 b2 d3 ~ d3!2 b2 d3@2 d3@2", R: "d3@2 d3@2 d3@2 b2 d3 ~ d3!2 b2 d3@2 d3 e3",
  S: "e3@2 e3@2 e3@2 d3 e3 ~ e3!2 d3 e3@2 e3 ~", T: "e3 ~ e3 ~ e3@2 d3 e3 ~ e3!2 d3 e3@2 e3 g3",
  U: "g3@2 g3@2 g3@2 g3 g3@2 g3!4 ~ g3@2", V: "g2 ~ g2 ~ g2 ~ g2!2 ~ g2!4 ~ g2 ~", W: "b2@4 b2@3 b2@3 a2@2 b2@2 d3@2",
  X: "[b2@8 b2@6 b2@6 a2@4 b2@3 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@6 b2@6 a2@4 b2@4 d3@4 b2@8 b2@5 b2@6 a2@4 b2@4 d3@4 b2@2]/5",
  Y: "[~@6 b2@8 d3@4 d3@4 d3@4 e3@129 ~@5]/5",
})).s("gm_acoustic_bass").gain(0.45)

// other · epiano2
const epiano2 = note("<~@32 A@5 ~@21 B@4 C@2 D@2 E@2 F@2 G@2 H@2 I@2 F@2 G@2 H@2 ~@2 D@2 J@6 K@5>".pickRestart({
  A: "[~@5 b3@27 ~ [b3,e4]@33 ~@2 b3@27 ~ [b3,e4]@33 ~@31, ~@5 b4@61 ~@2 b4@61 ~@31]/5", // E5
  B: "[~@2 b3@27 ~ [b3,e4]@33 ~, ~@2 b4@61 ~]/2", C: "[~ b3@27 ~ [b3,e4]@33 ~@2, ~ b4@61 ~@2]/2",
  D: "[~ b3@27 [b3,e4]@33 ~@3, ~ b4@61 ~@2]/2", E: "[[b3,b4,b5]@31 ~]/2", F: "[[d3,d4,d5]@7 ~]/2",
  G: "[[e3,e4,e5]@15 ~]/2", H: "[[g2,g3,g4]@15 ~]/2", I: "[[b3,b4,b5]@29 ~@3]/2",
  J: "[b3@27 ~ [b3,e4]@33 ~@2 b3@27 ~ [b3,e4]@33 ~@3 b3@27 ~ [b3,e4]@33 ~@2 [b1,b2,b3,b4]@2, b4@61 ~@2 b4@61 ~@3 b4@61 ~@4]/6", // E5 B
  K: "[~@14 [d2,d3,d4,d5]@11 ~ [e2,e3,e4,e5]@131 ~@3]/5", // D E
})).s("gm_epiano2").gain(0.4)

// other · overdriven guitar
const overdriven_guitar = note("<~@3 A@6 ~@23 B@5 ~@11 C@7 D ~@2 E@8 F@8 G@8 ~@2 H@8 ~@5>".pickRestart({
  A: "[~@5 e5@167 ~@20]/6", B: "[~@5 b3@127 ~@28]/5", C: "~@3 b2@6 ~@2 b2@5 ~ b2@13 ~@2",
  D: "~@3 b2@6 ~@2 b2@5 ~ b2@15", E: "[~@2 b3@253 ~]/8", F: "[b3@127 ~]/8", G: "[b3@31 ~]/8", H: "[~ b3@255]/8",
})).s("gm_overdriven_guitar").gain(0.4)

// other · overdriven guitar
const overdriven_guitar_2 = note("<~@40 A@16 ~@10 B ~ B ~ B ~ B ~@24>".pickRestart({
  A: "[~@3 b3@4 ~@24 a3@4 b3@4 ~@25]/2", B: "b4@2 b5@2 f#5@2 b4@3 ~@7",
})).s("gm_overdriven_guitar").gain(0.4)

// chords · electric guitar muted
const electric_guitar_muted = note("<~@40 A B A B A B A B C@8 ~@18 D E F G H I J K ~@15>".pickRestart({
  A: "~@11 [d4,a4,b4]@2 ~@4 [d4,a4,b4] ~ [d4,a4,b4] ~ [d4,a4,b4] ~@10", // Bm7
  B: "~@11 [d4,a4,b4]@2 ~@4 [d4,a4,b4] ~ [d4,a4,b4] ~ [d4,a4,b4] ~@5 [c#4,e4,g#4,b4] ~@4", // Bm7 C#m7
  C: "[~@7 [d4,a4,b4]@2 ~@4 [d4,a4,b4]@2 ~@2 [d4,a4,b4] ~ [d4,a4,b4]@2 ~@4 [d4,a4,b4]@2 ~@4 [d4,g#4,b4]@2 ~@6 [d4,a4,b4] ~ [d4,a4,b4]@2 ~@2 [d4,a4,b4]@2 ~@4 [d4,a4,b4]@2 ~@4 [d4,a4,b4]@2 ~@4 [d4,g#4,b4]@2 ~@6 [d4,a4,b4]@2 ~@4 [d4,a4,b4]@2 ~@2 [d4,a4,b4] ~ [d4,a4,b4]@2 ~@4 [d4,a4,b4]@2 ~@4 [d4,g#4,b4]@2 ~@6 [d4,a4,b4] ~ [d4,a4,b4]@2 ~@2 [d4,a4,b4]@2 ~@2 [d4,a4,b4] ~ [d4,a4,b4]@2 ~@4 [d4,a4,b4]@2 ~@4 [d4,g#4,b4]@2 ~@6 [d4,a4,b4] ~ [d4,a4,b4]@2 ~@2 [d4,a4,b4]@2 ~@2 [d4,a4,b4] ~ [d4,a4,b4]@2 ~@4 [d4,a4,b4]@2 ~@4 [d4,g#4,b4]@2 ~@6 [d4,a4,b4] ~ [d4,a4,b4]@2 ~@2 [d4,a4,b4]@2 ~@2 [d4,a4,b4] ~ [d4,a4,b4]@2 ~@4 [d4,a4,b4]@2 ~@4 [d4,g#4,b4]@2 ~@6 [d4,a4,b4]@2 ~@4 [d4,a4,b4]@2 ~@2 [d4,a4,b4] ~ [d4,a4,b4]@2 ~@4 [d4,a4,b4]@2 ~@4 [d4,g#4,b4]@2 ~@6 [d4,a4,b4] ~ [d4,a4,b4]@2 ~@2 [d4,a4,b4]@2 ~@2 [d4,a4,b4] ~ [d4,a4,b4]@2 ~@4 [d4,a4,b4]@2 ~@4 [d4,g#4,b4]]/8", // Bm7 G#dim Bm7 G#dim Bm7 G#dim Bm7 G#dim …
  D: "[b3,d#4]@3 ~ [b3,d#4]@3 ~ [b3,d#4]@3 ~ [b3,d#4] ~ [b3,d#4]@3 ~ [b3,d#4]@2 [b3,d#4]@2 [b3,d#4]@2 [b3,d#4]@4 [b3,d#4]@3 ~", // B
  E: "[b3,d#4]@2 ~@2 [b3,d#4]@3 ~ [b3,d#4]@3 ~ [b3,d#4] ~ [b3,d#4]@3 ~ [b3,d4] ~ [b3,d4]@2 [b3,d4]@2 [b3,d4]@4 [b3,d4]@4", // B Bm
  F: "[b3,d4]@3 ~ [b3,d4]@3 ~ [b3,d4]@3 ~ [b3,d4] ~ [b3,d4]@3 ~ [b3,d4]@2 [b3,d4]@2 [b3,d4]@2 [b3,d4]@4 [b3,d4]@4", // Bm
  G: "[b3,d4]@3 ~ [b3,d4]@2 ~@2 [b3,d4]@3 ~ [b3,d4] ~ [b3,d4]@2 ~@2 [b3,d4]@2 [b3,d4]@2 [b3,d4]@2 [b3,d4]@4 [b3,d4] ~ [b3,e4] ~", // Bm E5
  H: "[b3,e4]@3 ~ [b3,e4]@3 ~ [b3,e4]@2 ~@2 [b3,e4] ~ e4@4 [b3,e4]@2 [b3,e4]@2 [b3,e4]@2 [b3,e4]@4 [b3,e4]@4, ~@7 b3 ~@8", // E5
  I: "[b3,e4]@3 ~ [b3,e4]@3 ~ [b3,e4]@3 ~ [b3,e4] ~ [b3,e4]@3 ~ [b3,e4]@2 [b3,e4]@2 [b3,e4]@2 [b3,e4]@4 [b3,e4]@2 f#4 ~", // E5
  J: "[b3,f#4]@3 ~ [b3,f#4]@3 ~ [b3,f#4]@3 ~ [b3,f#4] ~ [b3,f#4]@4 [b3,f#4]@2 [b3,f#4]@2 [b3,f#4]@2 [b3,f#4]@4 [b3,f#4]@3 ~", // B5
  K: "[b3,f#4]@3 ~ [b3,f#4]@3 ~ [b3,f#4]@3 ~ [b3,f#4] ~ [b3,f#4]@4 [b3,f#4]@2 [b3,f#4]@2 [b3,f#4]@2 [b3,f#4]@3 ~ [b3,f#4]@3 ~", // B5
})).s("gm_electric_guitar_muted").gain(0.4)

// chords · lead 5 charang
const lead_5_charang = note(`<
  ~@32 A B@2 C@2 ~@7 D@2 E@8 D@2 ~@2 F@6 G@2 ~ H@3 I@2 J@2 K@2 L@2 M@2 N O ~@2 G@2 P@6 Q@5
>`.pickRestart({
  A: "~@5 [b2,f#3,d#4]@12 ~@4 [d3,a3,f#4]@2 ~@2 [d3,a3,f#4]@5 ~@2", // B D
  B: "[~ [e3,b3,g#4]@35 [b2,f#3,d#4]@12 ~@4 [d3,a3,f#4]@2 ~@2 [d3,a3,f#4]@5 ~@3]/2", C: "[[e3,b3,g#4]@35 ~@29]/2",
  D: "[~@3 [f#3,b3]@4 ~@24 [e3,a3]@4 [f#3,b3]@4 ~@25]/2", // B5 A5 B5
  E: "[~@3 [f#3,b3]@4 ~@24 [e3,a3]@4 [f#3,b3]@4 ~@24 [e3,a3]@4 [f#3,b3]@4 ~@24 [e3,a3]@4 [f#3,b3]@4 ~@24 [e3,a3]@4 [f#3,b3]@4 ~@24 [e3,a3]@4 [f#3,b3]@4 ~@24 [e3,a3]@4 [f#3,b3]@4 ~@24 [e3,a3]@4 [f#3,b3]@4 ~@24 [e3,b3]]/8", // B5 A5 B5 A5 B5 A5 B5 A5 …
  F: "[~@2 [b2,f#3,d#4]@12 ~@4 [d3,a3,f#4]@2 ~@2 [d3,a3,f#4]@5 ~@3 [e3,b3,g#4]@35 ~ [b2,f#3,d#4]@12 ~@4 [d3,a3,f#4]@2 ~@2 [d3,a3,f#4]@5 ~@3 [e3,b3,g#4]@35 [b2,f#3,d#4]@12 ~@4 [d3,a3,f#4]@2 ~@2 [d3,a3,f#4]@5 ~@3 [e3,b3,g#4]@35]/6", // B D E B D E B D …
  G: "[~ [b2,f#3,d#4]@12 ~@3 [d3,a3,f#4]@2 ~@2 [d3,a3,f#4]@5 ~@3 [e3,b3,g#4]@35 ~]/2", H: "[~ d4@5]/3",
  I: "[e3@13 d4@3]/2", J: "[g3@31 ~]/2", K: "[f#3,b3]!8", L: "[d3,b3]!8", M: "[e3,b3]!8", N: "[g3,b3]!8",
  O: "[g3,b3]@4 [g3,b3]@4 [g3,b3]@4 [g3,b3]@4 [g3,b3]@4 [g3,b3]@4 [g3,b3]@4 [g3,b3]@3 ~", // G
  P: "[[b2,f#3,d#4]@12 ~@4 [d3,a3,f#4]@2 ~@2 [d3,a3,f#4]@5 ~@3 [e3,b3,g#4]@35 [b2,f#3,d#4]@12 ~@4 [d3,a3,f#4]@2 ~@2 [d3,a3,f#4]@5 ~@3 [e3,b3,g#4]@35 ~ [b2,f#3,d#4]@12 ~@4 [d3,a3,f#4]@2 ~@2 [d3,a3,f#4]@5 ~@3 [e3,b3,g#4]@35 [b2,f#3,d#4]@2]/6", // B D E B D E B D …
  Q: "[~@14 [d3,a3,f#4]@2 ~@2 [d3,a3,f#4]@5 ~@3 [e3,b3,g#4]@131 ~@3]/5", // D E
})).s("gm_lead_5_charang").gain(0.4)

// chords · lead 5 charang
const lead_5_charang_2 = note(`<
  ~@32 A B@2 C@2 ~@6 D@4 E@8 F ~@2 G@6 H@2 ~@8 I@2 J@2 K@2 L M ~@2 H@2 N@8 ~@3
>`.pickRestart({
  A: "~@5 b2@27", B: "[~ e3@35 b2@28]/2", C: "[e3@35 ~@29]/2",
  D: "[~@31 [a3,d4]@4 ~@28 [e3,a3]@4 ~@28 [f#3,b3]@4 ~@28 [e3,a3]]/4", // D5 A5 B5 A5
  E: "[~@3 [f#3,b3]@4 ~@24 [e3,a3]@4 [f#3,b3]@4 ~@24 [e3,b3]@4 [f#3,b3]@4 ~@24 [e3,a3]@4 [f#3,b3]@4 ~@24 [e3,a3]@4 [f#3,b3]@2 ~@26 [a3,d4]@4 [f#3,b3]@4 ~@24 [e3,a3]@4 [f#3,b3]@4 ~@24 [f#3,b3]@4 ~@28 [e3,a3]]/8", // B5 A5 B5 E5 B5 A5 B5 A5 …
  F: "~@3 [f#3,b3]@4 ~@25", G: "[~@2 b2@28 e3@35 ~ b2@28 e3@35 b2@28 e3@35]/6", H: "[~ b2@27 e3@35 ~]/2",
  I: "[f#3,b3]!8", J: "[d3,b3]!8", K: "[e3,b3]!8", L: "[g3,b3]!8",
  M: "[g3,b3]@4 [g3,b3]@4 [g3,b3]@4 [g3,b3]@4 [g3,b3]@4 [g3,b3]@4 [g3,b3]@4 [g3,b3]@3 ~", // G
  N: "[b2@28 e3@35 b2@28 e3@35 ~ b2@28 e3@35 b2@28 e3@35 ~@3]/8",
})).s("gm_lead_5_charang").gain(0.4)

// other · alto sax
const alto_sax = note(`<
  ~@10 A@4 ~@10 B@3 C D ~@7 E@2 F G@2 ~@2 H@4 ~@11 I@4 J@2 K ~@2 L ~@8 M@4 N@2 ~@15
>`.pickRestart({
  A: "[~@21 b4@99 ~@8]/4", B: "[~@13 f#4@65 ~@18]/3", C: "~@30 b4 d5", D: "b4 ~ a4 b4@2 d5@4 b4@2 ~@21",
  E: "[~@4 f#4@55 e4@5]/2", F: "~ d4@2 b3@20 d4@2 ~@7",
  G: "[~@3 b3 ~ f#4@2 d4 ~ b3 ~ f#4@2 d4 ~ b3 ~ d4 ~ a4@6 b4@14 ~@25]/2", H: "[~@21 b4@76 ~@31]/4",
  I: "[~@2 b3@13 ~@3 d4@10 ~@2 e4@34]/2", J: "[~ b3@13 ~@3 d4@10 ~@2 e4@34 ~]/2", K: "~ b3@13 ~@2 d4@10 ~@6",
  L: "~@14 a3 g3", M: "[~@20 e4@2 ~@2 a4@2 f#4@41 ~ a4@3 ~@25 d5@2 ~@22 d5@4 e5@4, ~@19 b4@11 ~@2]/4", N: "[~ f#5@7]/2",
})).s("gm_alto_sax").gain(0.38)

// chords · harmonica
const harmonica = note("<~@3 A@4 B C@2 ~@6 D@2 E ~@78>".pickRestart({
  A: "[~@29 f#5@64 ~@2 e5@2 b4 e5@4 ~@26, ~@93 f#5@2 ~@33, ~@47 f5 ~ b4 ~@14]/4",
  B: "~@11 f5@2 e5@2 a5@2 g#5@2 ~@6 b4@4 ~@3, ~@21 f5@6 ~@5, ~@12 e5 ~@3", C: "[~ b4@52 ~@11]/2",
  D: "[~@34 a5@11 a5@10 ~ [e5,g#5]@4 ~ [b4,f#5]@3, ~@31 f#5@18 ~@15]/2", E: "~ b4@4 ~@2 b4@4 ~@21",
})).s("gm_harmonica").gain(0.4)

// other · lead 8 bass lead
const lead_8_bass_lead = note("<~@10 A@3 ~@84>".pickRestart({
  A: "[~@5 b4@63 ~@28]/3",
})).s("gm_lead_8_bass_lead").gain(0.45)

// other · pad choir
const pad_choir = note("<A@3 ~@94>".pickRestart({
  A: "[~@21 b3@64 ~@11]/3",
})).s("gm_pad_choir").gain(0.01)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A B@12 C A C A C A C D E F E G H I E A C A J K L M N M N M N O N O N M N P Q R Q S Q T S U V W X W Y Z Y AA AB AA
  AC AA AC AA AB AA AC AA AB AA AC AD AE AD AF ~@2 AA AB AA AG AH AI AH AJ AK ~@4
>`.pickRestart({
  A: "~@5 x ~@13 x ~@5 x ~@6", B: "~@3 x ~ x ~@13 x ~@5 x ~@6", C: "~ x ~@3 x ~@13 x ~@5 x ~@6", D: "~@5 x ~@3 x ~@22",
  E: "~ x ~@3 x ~@3 x ~@5 x ~@9 x ~@6", F: "~ x ~@3 x ~@3 x ~@7 x ~@7 x ~@6", G: "~@5 x ~@3 x ~@5 x ~@9 x ~@6",
  H: "~ x ~@3 x ~@3 x ~@7 x ~@14", I: "~@5 x ~@11 x ~@7 x ~@6", J: "~ x ~@2 x ~@13 x ~@5 x ~@7",
  K: "~@2 x ~@6 x ~@2 x ~@3", L: "x ~ x ~@6 x ~@2 x ~@3", M: "~@3 x ~@13 x ~@5 x ~@7 x", N: "~@3 x ~@13 x ~@5 x ~@8",
  O: "~ x ~ x ~@13 x ~@5 x ~@7 x", P: "~ x ~ x ~@3 x ~@9 x ~@5 x ~@7 x", Q: "~@3 x ~@3 x ~@5 x ~@5 x ~@3 x ~@7 x",
  R: "~@3 x ~@3 x ~@9 x ~@5 x ~@7 x", S: "~@3 x ~@3 x ~@7 x ~ x ~@5 x ~@7 x", T: "~@3 x ~@3 x ~@5 x ~@9 x ~@7 x",
  U: "~@3 x ~@3 x ~@7 x ~@7 x ~@7 x", V: "~@3 x ~@2 x ~@5 x ~@19", W: "~ x ~@6 x ~@2 x ~@3 x", X: "~ x ~@6 x ~@2 x ~@4",
  Y: "~ x ~@13 x ~@5 x ~@10", Z: "~ x ~@13 x ~@5 x ~@7 x ~@2", AA: "x ~@6 x ~@2 x ~@3 x ~", AB: "x ~@6 x ~@2 x ~@5",
  AC: "x ~@6 x ~@2 x ~@4 x", AD: "x ~ x ~@4 x ~@2 x ~@3 x ~", AE: "x ~ x ~@2 x ~ x ~@2 x ~@5",
  AF: "x ~ x ~ x ~@2 x ~@2 x ~@3 x ~", AG: "x ~@13 x ~@5 x ~@10 x", AH: "~@3 x ~@9 x ~@5 x ~@7 x ~@3 x",
  AI: "~@3 x ~@9 x ~@5 x ~@11 x", AJ: "~@3 x ~@8 x ~@5 x ~@11 x ~", AK: "~ x ~@4 x ~@2 x ~@3 x ~@2",
})).gain(0.45)

// drums · rim
const rim = s("rim").struct(`<
  ~@14 A B A B A B A B C D E D F G H D I J A K L M N O N O N O N P N O N P Q R S R T R U T V W X Y Z AA AB AA AC AD AE
  AF AE AF AE AG AE AF AE AG AE AF AH AI AH AJ ~@2 AE AG AE AK AL AM AL AN AO ~@4
>`.pickRestart({
  A: "~@5 x ~@13 x ~@5 x ~@6", B: "~ x ~@3 x ~@13 x ~@5 x ~@6", C: "~@5 x ~@3 x ~@22",
  D: "~ x ~@3 x ~@3 x ~@5 x ~@9 x ~@6", E: "~ x ~@3 x ~@3 x ~@7 x ~@7 x ~@6", F: "~@5 x ~@3 x ~@5 x ~@9 x ~@6",
  G: "~ x ~@3 x ~@3 x ~@7 x ~@14", H: "~@5 x ~@11 x ~@7 x ~@6", I: "~@5 x ~@19 x ~@6", J: "~ x ~@3 x ~@19 x ~@6",
  K: "~ x ~@2 x ~@19 x ~@7", L: "~ x ~@4 x ~", M: "x!2 ~@4 x ~", N: "~@3 x ~@19 x ~@7 x", O: "~@3 x ~@19 x ~@8",
  P: "~@3 x ~@13 x ~@5 x ~@8", Q: "~@3 x ~@13 x ~@5 x ~@7 x", R: "~@3 x ~@3 x ~@5 x ~@5 x ~@3 x ~@7 x",
  S: "~@3 x ~@3 x ~@9 x ~@5 x ~@7 x", T: "~@3 x ~@3 x ~@7 x ~ x ~@5 x ~@7 x", U: "~@3 x ~@3 x ~@5 x ~@9 x ~@7 x",
  V: "~@3 x ~@3 x ~@7 x ~@7 x ~@7 x", W: "~@3 x ~@2 x ~@5 x ~@19", X: "~ x ~@6 x ~@2 x ~@3 x", Y: "~ x ~@9 x ~@4",
  Z: "~@2 x ~@19 x ~@6 x ~@2", AA: "~ x ~@19 x ~@10", AB: "~ x ~@19 x ~@7 x ~@2", AC: "~ x ~@18 x ~@7 x ~@3",
  AD: "x ~@4 x ~@2", AE: "x ~@6 x ~@2 x ~@3 x ~", AF: "x ~@6 x ~@2 x ~@4 x", AG: "x ~@6 x ~@2 x ~@5",
  AH: "x ~ x ~@4 x ~@2 x ~@3 x ~", AI: "x ~ x ~@2 x ~ x ~@2 x ~@5", AJ: "x ~ x ~ x ~@2 x ~@2 x ~@3 x ~",
  AK: "x ~@13 x ~@5 x ~@10 x", AL: "~@3 x ~@9 x ~@5 x ~@7 x ~@3 x", AM: "~@3 x ~@9 x ~@5 x ~@11 x",
  AN: "~@3 x ~@8 x ~@5 x ~@11 x ~", AO: "~ x ~@4 x ~@2 x ~@3 x ~@2",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct("<~@2 A@20 B@7 C D A E F@4 G@3 H@8 I@8 H J K@2 L@4 M@18 ~@2 M@4 N@4 O ~@4>".pickRestart({
  A: "~@13 x ~@9 x ~@5 x ~@2", B: "~@13 x ~@5 x ~@3 x ~ x ~@3 x ~@2", C: "~@13 x ~@5 x ~@3 x ~ x ~ x ~ x ~@2",
  D: "~ x ~@11 x ~@9 x ~@5 x ~@2", E: "~@13 x ~@15 x ~@2", F: "~@3 x ~@3 x", G: "~@11 x ~@15 x ~@4",
  H: "~@11 x ~@9 x ~@5 x ~@4", I: "~@11 x ~@5 x ~@3 x ~ x ~@3 x ~@4", J: "~@5 x ~@2 x ~ x!4 ~ x", K: "~@5 x ~@7 x ~@2",
  L: "~@9 x ~@15 x ~@6", M: "~ x ~ x", N: "~@7 x ~@15 x ~@8", O: "~@3 x ~@7 x ~@4",
})).gain(0.45)

// drums · clap
const clap = s("cp").struct("<~@14 A@19 B@3 C@21 D@4 E@3 F@18 ~@2 F@4 G@4 H ~@4>".pickRestart({
  A: "~@13 x ~@15 x ~@2", B: "~@3 x ~@3 x", C: "~@11 x ~@15 x ~@4", D: "~@5 x ~@7 x ~@2", E: "~@9 x ~@15 x ~@6",
  F: "~ x ~ x", G: "~@7 x ~@15 x ~@8", H: "~@3 x ~@7 x ~@4",
})).gain(0.35)

// drums · hihat
const hihat = s("hh").struct("<~@2 A@31 B@3 C@20 ~@2 D@2 E@4 F@18 ~@2 F@4 G@4 H ~@4>".pickRestart({
  A: "~@13 x ~@15 x ~@2", B: "~@3 x ~@3 x", C: "~@11 x ~@15 x ~@4", D: "~@5 x ~@7 x ~@2", E: "~@9 x ~@15 x ~@6",
  F: "~ x ~ x", G: "~@7 x ~@15 x ~@8", H: "~@3 x ~@7 x ~@3 x",
})).gain(0.45)

// drums · low tom
const low_tom = s("lt").struct("<~@13 A B ~@44 C ~@3 D ~@23 E ~@9>".pickRestart({
  A: "~@29 x ~@2", B: "~ x ~@30", C: "~@11 x ~@4", D: "~@21 x ~@10", E: "~@5 x ~@2",
})).gain(0.45)

// drums · open hat
const open_hat = s("oh").struct("<~@2 A@31 B@3 C@20 ~@2 D@3 E@3 F@18 ~@2 F@4 G@4 H ~@4>".pickRestart({
  A: "~@9 x ~@15 x ~@6", B: "~ x ~ x", C: "~@7 x ~@15 x ~@8", D: "~@3 x ~@7 x ~@4", E: "~@5 x ~@15 x ~@10",
  F: "~ x ~@3 x ~@2", G: "~@3 x ~@15 x ~@12", H: "~ x ~@7 x ~@3 x ~@2",
})).gain(0.45)

// drums · mid tom
const mid_tom = s("mt").struct("<~@13 A ~@14 B ~@30 C ~@3 D ~@23 E ~@9>".pickRestart({
  A: "~@25 x ~@6", B: "~ x ~@30", C: "~@5 x ~@2 x ~ x ~@2 x ~@2", D: "~@9 x ~@5 x ~@3 x ~@5 x ~@6",
  E: "~@4 x ~@2 x!3 ~@2 x ~@3",
})).gain(0.45)

// drums · high tom
// … 15 more lines

More by INXS