Strudelify
Poison cover art

1989 · Trash

Poison

Alice Cooper

KeyB♭ majorTempo115 bpm
0:00/0:00
// Poison — Alice Cooper
// 115 bpm, 4/4, key Bb major. 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: Full arrangement: all 131 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/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 · synth bass 2 · "Bass"
const bass = note(`<
  ~@5 A ~ A B C D C D C D E@2 F@2 D C G H I J C K L M N@8 O P@5 Q@8 R@2 S T@5 U V W X Y Z AA@8 ~@7 AB@4 AC AD@3 AE@2
  AF@2 AG@2 AH@5 AI AJ AK@8 AL@4 AM AN AO AP@3 AQ@2 AR AS AT@8
>`.pickRestart({
  A: "d2!2 ~@6", B: "~@3 c3", C: "bb1", D: "d2", E: "bb1/2", F: "d2/2", G: "f2", H: "c2", I: "g1", J: "eb2",
  K: "d2@2 d2!6", L: "d2!6 d2@2", M: "g2@3 eb2@4 a1",
  N: "[bb1@11 f2@16 bb1@4 c2@12 ab1@16 bb1@4 eb2@12 bb1@19 a1@12 ~ f2@15 bb1@4 c2@12 g2@12 c2@8 d2@12 bb1@16 bb1@4 f2@12 c2@8 c2@3 c2@8 d2@12 bb1@8 bb1@4 c2@4 d2@4 f2@3]/8",
  O: "~ eb2@4 d2@3 c2@8 a1@4 bb1@4 c2@4 d2@4",
  P: "[g1@4 a1@4 bb1@8 bb1@4 c2@4 d2@4 f2@3 eb2@4 d2@4 c2@8 a1@4 bb1@4 c2@4 d2@4 g1@4 a1@4 bb1@8 bb1@4 c2@4 d2@3 f2@4 eb2@4 d2@4 c2@7 ~ a1@4 bb1@4 c2@4 d2@4 g1@4 a1@4 bb1@8 bb1@4 c2@3 d2@4 f2@4 eb2@3]/5",
  Q: "[~ d2@4 c2@8 a1@4 bb1@4 c2@4 bb1@63 d2@32 bb1@32 f1@32 c2@32 g1@32 eb2@8]/8", R: "[~@3 bb1@4 d2]/2", S: "d2!8",
  T: "[d2@4 d2@4 d2@4 d2@4 ~@8 g2@12 eb2@15 a1@4 bb1@12 f2@16 bb1@4 c2@12 ab1@16 bb1@4 eb2@12 bb1@19 a1@10]/5",
  U: "~@3 f2@15 bb1@4 c2@10", V: "~@2 g2@11 ~ c2@8 d2@10", W: "~ bb1@8 bb1@2 f2@5", X: "~ c2@8 ~ c2@4 c2@7 d2@11",
  Y: "~ bb1@8 bb1@4 c2@4 d2@4 f2@4 eb2@4 d2@3", Z: "c2@2 a1 bb1 c2 d2 g1 a1",
  AA: "[bb1@7 ~ bb1@4 c2@4 d2@3 f2@4 ~ eb2@3 d2@4 c2@8 a1@4 bb1@4 c2@4 d2@4 g1@4 a1@4 bb1@8 bb1@4 c2@3 d2@4 f2@4 eb2@4 d2@4 c2@7 ~ a1@4 bb1@4 c2@4 d2@4 g1@4 a1@4 bb1@8 bb1@4 c2@3 d2@4 ~ f2@3 eb2@4 d2@4 c2@8 a1@4 bb1@4 c2@4 bb1@62 ~@17]/8",
  AB: "[~@11 g1@31 ~ eb2@31 bb1@31 ~ d2@8 d2@4 d2@3 d2@4 d2@3]/4", AC: "~ d2@4 d2@4 d2@4 d2@4 d2@4 d2@4 d2@4 d2@3",
  AD: "[~ d2@4 d2@4 g2@12 eb2@15 a1@4 bb1@11 ~ f2@15 ~ bb1@4 c2@11 ab1@13]/3",
  AE: "[~@3 bb1@4 eb2@12 bb1@19 a1@12 f2@14]/2", AF: "[~@2 bb1@4 c2@12 g2@12 c2@7 d2@12 bb1@15]/2",
  AG: "[~ bb1@4 f2@12 c2@7 c2@4 c2@8 d2@12 bb1@8 bb1@4 c2@4]/2",
  AH: "[d2@4 f2@4 eb2@4 d2@3 c2@8 a1@4 bb1@4 c2@4 d2@4 g1@4 a1@4 bb1@7 ~ bb1@4 c2@4 d2@4 f2@3 eb2@4 d2@4 c2@8 a1@4 bb1@4 c2@4 d2@4 g1@4 a1@4 bb1@8 bb1@4 c2@4 d2@4 f2@3 eb2@4 d2@4 c2@8 a1@4 bb1@4 c2@3]/5",
  AI: "~ d2@4 g1@4 a1@4 bb1@8 bb1@4 c2@4 d2@3", AJ: "f2 eb2 d2 c2@2 a1 bb1 c2",
  AK: "[g1@8 g1@4 g1@4 g1@4 g1@4 g1@3 g1@4 bb1@4 bb1@4 bb1@4 bb1@4 bb1@4 bb1@4 bb1@4 bb1@4 d2@11 bb1@8 c2@4 ~ d2@3 e2@4 f2@12 c2@8 a1@4 bb1@4 c2@4 d2@12 bb1@7 c2@4 d2@4 ~@4 f2@12 ~@8 a1@4 ~@4 c2@4 d2@11 bb1@8 c2@4 d2@4 e2@4 f2@12 c2@8 a1@4 bb1@4 c2@4 d2@4]/8",
  AL: "[g1@3 a1@4 bb1@8 bb1@4 c2@4 d2@4 f2@4 eb2@4 d2@4 c2@7 ~ a1@4 bb1@4 c2@3 d2@4 g1@4 a1@4 bb1@8 bb1@4 c2@4 d2@4 f2@4 eb2@4 d2@4 c2@8 a1@4 bb1@3 c2@4 d2@4 g1@3]/4",
  AM: "~ a1@4 bb1@7 ~ bb1@4 c2@4 d2@4 f2@4 eb2@3", AN: "~ d2@4 c2@8 a1@3 bb1@4 c2@4 d2@4 g1@4",
  AO: "a1 bb1@2 bb1 c2 d2 f2 eb2",
  AP: "[d2@4 c2@7 a1@4 bb1@4 c2@4 d2@4 g1@4 a1@4 bb1@8 bb1@4 c2@4 d2@4 f2@4 eb2@4 d2@3 c2@8 a1@4 bb1@4 c2@4 d2@10]/3",
  AQ: "[~@2 bb1@7 ~ bb1@4 c2@4 d2@4 f2@3 eb2@4 ~ d2@3 c2@8 a1@4 bb1@4 c2@4 d2@4 g1@4 a1@3]/2",
  AR: "~ bb1@8 bb1@4 c2@3 d2@4 f2@4 eb2@4 d2@4", AS: "c2@7 ~ a1@4 bb1@4 c2@4 d2@4 g1@4 a1@4",
  AT: "[bb1@8 bb1@4 c2@3 d2@4 f2@4 eb2@4 d2@4 c2@7 ~ a1@4 bb1@4 c2@4 d2@4 g1@4 a1@4 bb1@7 ~ bb1@3 c2@4 d2@4 f2@4 eb2@4 d2@4 c2@8 a1@4 bb1@4 c2@4 d2@4 g1@4 a1@3 bb1@8 bb1@4 c2@4 d2@4 f2@4 eb2@4 d2@4 c2@8 a1@4 bb1@4 c2@4 d2@4 g1@4 a1@3 bb1@8 bb1@4 c2@4 d2@4 f2@4 eb2@4 d2@4 c2@8 a1@4 bb1@3 c2@4 ~@17]/8",
})).s("gm_synth_bass_2").gain(0.4)

// other · distortion guitar · "Rhythm Guitar 1"
const distortion_guitar = note(`<
  ~@5 A ~ A B C D C D C D E@2 F@2 ~@16 G H I J@4 K L M N@2 ~@15 O P Q R@4 S T@2 U@8 V ~@12 W X@4 Y@2 Z AA ~@8 AB@3 AC AD
  AE AF@3 AG AH AI AJ AK@5 AL AM AN
>`.pickRestart({
  A: "[d3,a3,d4]!2 ~@6", B: "~@3 c4", C: "[bb2,f3,bb3]", D: "[d3,a3,d4]", E: "[bb2,f3,bb3]/2", F: "[d3,a3,d4]/2",
  G: "~@29 d3@3", H: "~ d3@4 a3@4 d3@4 e4@4 d3@4 d4@4 d3@4 f3@3", I: "~ c4@3 f3@4 e3@4 c4@4 f3@4 c4@4 e3@4 d3@4",
  J: "[d3@4 a3@4 d3@4 e4@4 d3@4 d4@4 d3@4 f3@3 c4@4 f3@4 e3@4 c4@4 f3@4 c4@4 e3@4 d3@4 d3@4 a3@3 ~ d3@4 e4@4 d3@4 d4@4 d3@4 f3@3 c4@4 f3@4 e3@4 c4@3 ~ f3@4 c4@4 e3@7 ~ d3@2]/4",
  K: "~@2 a3@4 d3@4 e4@4 d3@3 ~ d4@3 d3@4 f3@4 c4@3", L: "~ f3@4 e3@4 c4@4 f3@3 ~ c4@4 e3@3 ~ c3@4 d3@3",
  M: "~ a3@4 d3@4 e4@4 d3@3 d4@4 d3@4 ~ a3@3 d3@4", N: "[~ e4@3 d3@4 d4@4 d3@4 a3@8 d3@32 ~@8]/2",
  O: "~@21 d3@4 d3@4 a3@3", P: "~ d3@3 ~ e4@4 d3@4 d4@4 d3@4 f3@4 c4@4 f3@3",
  Q: "e3@4 c4@4 f3@4 c4@4 e3@4 d3@4 d3@4 a3@3 ~",
  R: "[d3@4 e4@4 d3@4 d4@3 d3@4 f3@4 c4@4 ~ f3@3 e3@4 c4@4 f3@4 c4@4 e3@4 d3@3 ~ d3@4 a3@4 d3@4 e4@4 d3@3 d4@4 ~ d3@3 f3@4 ~ c4@3 ~ f3@3 e3@4 c4@4 f3@3 ~ c4@4 e3@8 d3@4 a3@4 d3@2]/4",
  S: "~@2 e4@4 d3@4 d4@3 ~ d3@3 f3@4 c4@4 f3@4 e3@3", T: "[~ c4@4 f3@3 ~ c4@4 e3@4 d3@47]/2",
  U: "[~@16 [bb2,f3,bb3]@31 [d3,a3,d4]@31 ~ [bb2,f3,bb3]@31 [d3,a3,d4]@31 ~ [bb2,bb3]@31 [d3,a3,d4]@31 ~ bb3@31 [d3,a3,d4]@8 [d3,g3,d4]@4 [d3,a3,d4]@3 ~ [d3,g3]@4, ~@141 f3@31 ~@32 [bb2,f3]@31 ~@16 d4@4 ~]/8", // Bb5 D5 Bb5 D5 Bb D5 G5 D5 …
  V: "[d3,a3,d4]@3 ~ [d3,g3]@3 ~ a3@4 ~@20, ~@3 d4@4 [d3,d4]@4 ~@21", W: "~ d3!2 a3 d3 e4 d3 d4",
  X: "[d3@4 f3@3 c4@4 f3@4 ~ e3@4 c4@3 f3@4 ~ c4@3 e3@4 d3@4 d3@4 a3@4 d3@4 e4@4 d3@4 d4@4 d3@3 ~ f3@4 c4@4 f3@3 e3@4 c4@4 f3@4 c4@4 e3@4 d3@4 d3@3 ~ a3@4 d3@4 e4@4 d3@4 d4@4 d3@2]/4",
  Y: "[~@2 f3@3 c4@4 f3@4 e3@4 c4@4 f3@4 c4@3 ~ e3@8 d3@4 a3@4 d3@3 ~ e4@3 d3@4 ~ d4@4 d3@3]/2",
  Z: "~ f3@3 c4@4 f3@4 e3@4 c4@4 f3@4 c4@3 ~ e3@3 ~", AA: "g2 ~@3",
  AB: "[~@26 d3@4 d3@4 ~ a3@3 d3@4 e4@3 ~ d3@3 ~ d4@4 d3@3 ~ f3@3 ~ c4@4 f3@4 e3@4 c4@4 f3@4 c4@3 e3@4 d3@4 d3@3]/3",
  AC: "~ a3@4 d3@3 ~ e4@4 d3@4 d4@3 ~ d3@4 f3@4 c4@3", AD: "~ f3@4 e3@3 c4@4 ~ f3@3 c4@4 ~ e3@3 d3@4 d3@4",
  AE: "a3@3 ~ d3@4 e4@4 d3@4 d4@4 d3@3 ~ f3@4 c4@4",
  AF: "[f3@3 e3@4 c4@4 f3@4 c4@4 e3@8 d3@3 ~ a3@3 ~ d3@4 e4@4 d3@4 d4@4 d3@3 f3@4 ~ c4@4 f3@3 e3@4 c4@4 f3@4 c4@3 ~ e3@4 d3@4 d3@4 a3@2]/3",
  AG: "~@2 d3@4 e4@4 d3@4 d4@4 d3@3 ~ f3@3 c4@4 f3@3", AH: "~ e3@4 c4@4 f3@3 ~ c4@4 e3@4 d3@4 d3@3 ~ a3@3",
  AI: "~ d3@4 e4@3 d3@4 ~ d4@4 d3@3 f3@4 c4@4 f3@3 ~", AJ: "e3@4 c4@3 ~ f3@4 c4@4 e3@4 d3@4 d3@4 a3@4",
  AK: "[d3@4 e4@4 d3@3 d4@4 d3@4 f3@4 c4@4 f3@4 e3@4 c4@4 f3@4 c4@4 e3@8 d3@3 ~ a3@4 d3@3 e4@4 d3@4 d4@4 d3@4 f3@4 c4@4 f3@3 ~ e3@4 c4@3 ~ f3@4 c4@4 e3@4 ~@3 d3@4 ~ a3@3 ~ d3@4 e4@3 ~ d3@3 d4@3 ~ d3@4 f3@3 ~ c4@4 f3@4 e3@3]/5",
  AL: "~ c4@4 f3@4 c4@4 e3@4 ~@3 d3@4 a3@4 d3@4", AM: "e4 d3 d4 d3 f3 c4 f3 e3", AN: "c4@3 ~ f3@4 c4@4 e3@4 ~@16",
})).s("gm_distortion_guitar").gain(0.34).pan(0.3)

// chords · distortion guitar · "Rhythm Guitar 2"
const distortion_guitar_2 = note(`<
  ~@5 A B@2 C D C D C D C D E F@2 ~@4 G H I J K L@8 M@7 N@4 O P Q R S T U V@6 W X Y Z AA AB@8 AC@3 AD AE AF AG AH@4 AI
  AJ@8 AK@3 AL AM AN AO AP AQ AR@8 AS@8 AT AU AV AW AX AY@8
>`.pickRestart({
  A: "d3!2 a3 d3 e4 d3 d4 d3", B: "[gb3 g3 c4 gb3 g3 c4 e3 d3@2 d3 a3 d3 e4 d3 d4 d3]/2",
  C: "gb3 g3 c4 gb3 g3 c4 e3 d3", D: "c3 d3 a3 d3 e4 d3 d4 d3", E: "a3 d3 e4 d3 d4 d3 a3@2", F: "d3/2",
  G: "~ g3 d4 a3 d4 c4 g3 d4", H: "eb3 bb3 f4 eb3 f4 eb4 bb3 eb3", I: "bb2 f3 c4 bb2 c4 bb3 f3 c4", J: "d3@2 d3!6",
  K: "[d3,a3]!6 [d3,a3]@2", // D5
  L: "[[g3,d4,g4]@12 [eb3,bb3,eb4]@19 [bb2,f3,bb3]@12 [f3,c4,f4]@19 ~ [c3,g3,c4]@12 [ab2,eb3,ab3]@20 [eb3,bb3,eb4]@12 [bb2,f3,bb3]@19 ~ [e3,a3]@12 [f3,c4,f4]@19 ~ c3@11 [g2,d3,g3]@19 ~ [d3,a3,d4]@12 [bb2,f3,bb3]@19 ~ [f3,c4,f4]@11 ~ [c3,c4]@7 ~ c3@3 [c3,g3,c4]@8 [d3,a3,d4]@3, ~@126 a2@12 ~@20 [g3,c4]@12 ~@63 g3@8 [g3,c4]@4 ~@11]/8", // G5 Eb5 Bb5 F5 C5 Ab5 Eb5 Bb5 …
  M: "[~@9 [bb2,f3,bb3]@19 ~ [f3,c4,f4]@11 ~ c4@19 [d3,a3,d4]@12 [bb2,f3,bb3]@19 ~ [f3,f4]@11 [c3,g3,c4]@19 ~ [d3,a3,d4]@11 ~ [bb2,f3,bb3]@19 ~ [f3,f4]@11 [c3,g3,c4]@19 ~ [d3,a3,d4]@11 ~ [bb2,f3,bb3]@19 ~ c4@6, ~@40 [c3,g3]@20 ~@31 c4@12 ~@51 c4@12 ~@51 [f3,f4]@7]/7", // Bb5 F5 D5 Bb5 F C5 D5 Bb5 …
  N: "[~@5 [c3,g3,c4]@19 ~ [bb2,f3,bb3]@63 [d3,a3,d4]@32 bb2@4 bb2@4]/4", O: "bb2!6 f3!2", P: "f3!6 c3!2",
  Q: "c3!6 ~ g3", R: "d4 a3 d4 c4 g3 d4 eb3 bb3", S: "f4 eb3 f4 eb4 bb3 eb3 bb2 f3",
  T: "c4@4 bb2@4 c4@4 bb3@4 f3@4 c4@4 d3@7 ~", U: "d3!6 [d3,a3]!2",
  V: "[[d3,a3]@4 [d3,a3]@4 [d3,a3]@4 [d3,a3]@4 [d3,a3]@8 [g3,d4,g4]@11 ~ eb3@19 ~ f3@11 [f3,c4,f4]@19 ~ [c3,g3,c4]@12 [ab2,eb3,ab3]@20 [eb3,bb3,eb4]@12 [bb2,f3,bb3]@19 ~ [a2,e3]@11 ~ c4@19 [c3,g3,c4]@10, ~@35 [bb3,eb4]@20 [bb2,bb3]@12 ~@83 a3@12 [f3,f4]@20 ~@10]/6", // D5 G5 F5 C5 Ab5 Eb5 Bb5 A5 …
  W: "~@2 [g2,d3,g3]@19 ~ [d3,a3,d4]@10", X: "~ [bb2,f3,bb3]@10 [f3,c4,f4]@5",
  Y: "~@2 [g3,c4]@7 ~ [c3,g3]@3 [c3,g3,c4]@8 [d3,a3,d4]@11, ~ c3@8 c4@4 ~@19", // C5 D5
  Z: "~ [bb2,f3,bb3]@19 ~ [f3,f4]@11, ~@5 c4@3", AA: "~ g3@19 [d3,a3,d4]@11 ~, [c3,c4]@5 ~@3",
  AB: "[[bb2,f3,bb3]@19 ~ f3@11 ~ c4@19 [d3,a3,d4]@11 ~ [bb2,f3,bb3]@19 ~ [f3,f4]@11 ~ g3@19 [d3,a3,d4]@11 ~ [bb2,f3,bb3]@19 ~ f3@11 [c3,g3,c4]@19 ~ [bb2,f3,bb3]@62 ~ d3@4 d3@4 a3@4 d3@3 e4, ~@19 [c4,f4]@12 [c3,g3]@19 ~@32 c4@12 [c3,c4]@20 ~@31 [c4,f4]@12 ~@99]/8", // Bb5 D5 Bb5 F D5 Bb5 C5 Bb5 …
  AC: "[~@3 d3@4 d4@4 d3@4 gb3@4 g3@4 c4@3 ~ gb3@4 g3@4 c4@4 e3@4 d3@7 ~ d3@3 ~ a3@3 ~ d3@3 e4@4 d3@4 d4@4 d3@4 gb3@4 g3@3 ~ c4@4 gb3@4 g3@2]/3",
  AD: "~@2 c4@4 e3@3 d3@4 ~ c3@3 d3@4 a3@4 ~ d3@3 e4@3", AE: "~ d3@4 d4@4 d3@4 gb3@4 g3@3 ~ c4@4 gb3@4 g3@3",
  AF: "~ c4@4 e3@4 d3@4 c3@3 d3@4 a3@4 d3@4 e4@4", AG: "d3@4 d4@4 d3@4 gb3@3 ~ g3@4 c4@4 gb3@3 g3@4 ~",
  AH: "[c4@3 ~ e3@3 d3@4 ~ g2@31 [eb3,bb3,eb4]@31 ~ bb3@31 [d3,a3]@8 [d3,a3]@4 [d3,a3]@3 ~ a3@4 [d3,a3]@2, ~@11 [d3,g3,d4,g4]@31 ~@32 [bb2,f3]@31 ~@16 d3@4 ~@3]/4", // Eb5 D5 G5 Bb5
  AI: "~@2 a3@3 [d3,a3]@4 [d3,a3]@4 [d3,a3]@4 [d3,a3]@4 [d3,a3]@4 [d3,a3]@4 [d3,a3]@3, ~ d3@4 ~@27", // D5
  AJ: "[~ [d3,a3]@4 [d3,a3]@4 [g3,d4,g4]@11 ~ [bb3,eb4]@19 [bb2,f3,bb3]@11 ~ [f3,c4,f4]@19 ~ [c3,g3,c4]@11 ~ ab3@19 [eb3,bb3,eb4]@11 ~ [bb2,f3,bb3]@19 ~ a2@11 [f3,c4,f4]@19 ~ [c3,g3,c4]@12 [g2,d3,g3]@19 ~ [a3,d4]@11 [bb2,f3,bb3]@19 ~ [f3,c4,f4]@12 [c3,g3,c4]@7 [c3,g3,c4]@4 ~ c3@3, ~@20 eb3@19 ~@44 [ab2,eb3]@20 ~@31 [e3,a3]@12 ~@51 d3@12 ~@43 [g3,c4]@4]/8", // D5 G5 Eb5 Bb5 F5 C5 Eb5 Bb5 …
  AK: "[~@4 [d3,a3,d4]@12 [bb2,f3,bb3]@19 ~ [f3,c4,f4]@11 ~ g3@19 [d3,a3,d4]@12 [bb2,f3,bb3]@17, ~@47 [c3,c4]@20 ~@29]/3", // D5 Bb5 F5 D5 Bb5 C
  AL: "~@3 [c4,f4]@11 ~ c3@17, ~ f3@6 [g3,c4]@9", AM: "~ [d3,a3,d4]@6 [bb2,f3,bb3]@9",
  AN: "~@2 [f3,c4,f4]@11 [c3,g3,c4]@19", AO: "~ [d3,a3,d4]@11 ~ [bb2,f3,bb3]@19", AP: "~ [f3,c4,f4]@11 [c3,g3,c4]@19 ~",
  AQ: "g2@7 ~ g2@4 g2@4 g2@4 g2@4 g2@4 g2@3 [bb2,f3]", // Bb5
  AR: "[~@4 bb2@3 [bb2,f3]@4 [bb2,f3]@4 [bb2,f3]@4 [bb2,f3]@4 [bb2,f3]@4 [bb2,f3]@4 [d3,a3,d4]@12 [bb2,f3,bb3]@19 [f2,c3,f3]@11 ~ [c3,g3,c4]@19 ~ [d3,a3,d4]@11 ~ [f3,bb3]@19 [f2,c3,f3]@12 [c3,g3,c4]@19 ~ d3@11 [bb2,f3,bb3]@19 ~ [f2,c3,f3]@11 ~ [c3,g3,c4]@19 ~ d4@11 [bb2,f3,bb3]@19 ~ [f2,c3,f3]@5, ~@3 f3@4 ~@98 bb2@19 ~@32 [a3,d4]@12 ~@51 [d3,a3]@12 ~@25]/8", // Bb5 D5 Bb5 F5 C5 D5 Bb5 F5 …
  AS: "[~@7 [c3,g3,c4]@19 [d3,a3,d4]@12 [bb2,f3,bb3]@19 ~ [f3,c4,f4]@11 ~ [c3,g3,c4]@19 [d3,a3,d4]@12 [bb2,f3,bb3]@19 ~ [f3,c4,f4]@11 ~ [c3,g3]@19 [d3,a3,d4]@11 ~ [bb2,f3,bb3]@19 ~ [f3,c4,f4]@11 ~ c3@19 [d3,a3,d4]@12 [bb2,f3,bb3]@19 ~ c4@9, ~@132 c4@20 ~@43 [g3,c4]@20 ~@31 [f3,f4]@10]/8", // C5 D5 Bb5 F5 C5 D5 Bb5 F5 …
  AT: "~@3 c4@19 [d3,a3,d4]@10, ~@2 [c3,g3]@19 ~@11", AU: "~@2 [bb2,f3,bb3]@19 ~ [f3,f4]@10, ~@21 c4@11",
  AV: "~ [c3,g3,c4]@19 ~ [d3,a3,d4]@11", AW: "~ [bb2,f3,bb3]@19 [f3,c4,f4]@12", AX: "[c3,g3,c4]@19 ~ [d3,a3,d4]@11 bb3",
  AY: "[[bb2,f3]@19 [f3,c4,f4]@11 ~ [c3,g3,c4]@19 ~ [d3,a3,d4]@11 ~ [bb2,f3,bb3]@19 [f3,c4,f4]@11 ~ [c3,g3,c4]@19 ~ [d3,a3,d4]@11 ~ [bb2,bb3]@19 [f3,c4,f4]@12 [c3,g3,c4]@19 ~ [d3,a3,d4]@11 ~ f3@19 [f3,c4,f4]@11 ~ [c3,g3,c4]@19 ~@17, ~@125 f3@19 ~@44 [bb2,bb3]@20 ~@48]/8", // Bb5 F5 C5 D5 Bb5 F5 C5 D5 …
})).s("gm_distortion_guitar").gain(0.34).pan(0.7)

// other · distortion guitar · "Lead Guitar"
const distortion_guitar_3 = note(`<
  ~@3 A@2 ~@68 B@3 C@4 D ~@17 E ~@3 F@2 G@6 H@4 I J@4 K L@2 M N@3 O@3 P Q
>`.pickRestart({
  A: "d3/2", B: "[~@31 g2@27 ~ a3@7 e4@8 d4@4 gb3@8 g3@4 c4@6]/3",
  C: "[~@2 e3@12 d3@23 c5@19 ~ d5@2 c5@2 a4@2 g4@2 a4@2 gb4@4 d4@2 ~ c4@27 ~@3 c5@4 e5@2 f5@2 d5@2 e5@2 f5@2 g5@2 d5@2 f5@2 g5@2 a5@2]/4",
  D: "g5 a5 c6!2 c6@12", E: "~@2 bb4@4 a4@3 f4@4 g4@19", F: "[~@15 e5@16 e5@23 ~@10]/2",
  G: "[~@14 e5@31 d5@16 c5@31 ~ g5@31 ~@8 bb5@4 g5@19 ~@16 c6@4 g5@12 g5@4 ab5, ~@124 g5@12 ~@20 g5@19 ~@17]/6",
  H: "[~@3 g5@8 f5@4 e5@4 d5@4 e5@3 d5@23 ~@5 c5@2 c5@2 c6@12 c6@19 c6@12 c6@16 c6@8 c6@3]/4",
  I: "~ bb5@4 a5@4 g5@4 a5@3 f5@4 e5@4 f5@8",
  J: "[c6@4 f5@16 d5@19 eb5@4 eb5@4 eb5@4 eb5@4 f5@2 d5@2 d5@23 ~ g5@8 bb5@4 g5@7 d6@8 d6@4 d6@4 d6@10]/4",
  K: "~ d6@8 d6@7", L: "[~ c6@4 bb5@4 a5@4 g5@4 a5@4 g5@4 e5@4 e5@2 d5@2 c5@4 c5@8 eb5@4 eb5@3 eb5@4 eb5@4 eb5@4]/2",
  M: "eb5!5 d5@3",
  N: "[c5@4 f5@2 d5@9 c5@2 d5@2 f5@2 d5@2 c5@2 a4@2 d5@2 c5@2 ab4@2 g4@2 c5@2 ab4@2 f4@2 g4@2 c5@2 a4@2 c5@2 a4@2 ab4@2 g4@2 c5@2 a4@2 c5@2 a4@2 ab4@2 g4@2 c5@2 ~ c5@2 a4@2 ab4@2 g4@2 c5@2 a4@2 c5@2 a4@2 ab4@2 g4@2 c5@2 a4@2 a4@2, ~@69 a4@2 ~@25]/3",
  O: "[a4@2 d5@2 f5@2 g5@4 d5@2 f5@2 ~@2 a5@2 g5@8 c6@4 g5@11 f5@4 g5@4 e5@8 c6@4 e5@12 c6@4 e5@4 d6@8 d6@3 d6@4]/3",
  P: "d6 d6@2 d6!5", Q: "d6!4 ~@4",
})).s("gm_distortion_guitar").gain(0.6)

// other · synth brass 1 · "Synth"
const synth_brass_1 = note("<A B@4 ~@126>".pickRestart({
  A: "~@27 d4@5", B: "[d1,d2,d3]/4",
})).s("gm_synth_brass_1").gain(0.4).pan(0.1)

// other · guitar harmonics
const guitar_harmonics = note("<~@3 A@2 ~@126>".pickRestart({
  A: "[~ a5@3]/2",
})).s("gm_guitar_harmonics").gain(0.4).pan(0.9)

// drums · kick
const kick = s("bd").struct(`<
  ~@5 A ~ A B C D C@2 D C E ~@3 F@2 E F@2 C F G H I J K J L M N O P Q R S T U V W ~ X Y@3 Z Y Z Y AA AB AC AD AE AD AF@2
  AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS
  BT BU BV BW N BX BY BZ@2 CA CB CC CD CE CF CG CH CI CJ CK CL CM AJ CN AL CO CP CQ CR CS CT
>`.pickRestart({
  A: "x!2 ~@6", B: "~@10 x!2 ~@4", C: "x ~@4 x ~ x", D: "x ~@9 x!2 ~@2 x ~", E: "x", F: "x ~@6 x", G: "x ~ x!6",
  H: "x!7 ~", I: "x ~@11 x ~@18 x", J: "~@11 x ~@7 x ~@7 x ~@3 x", K: "~@11 x ~@19 x", L: "~@11 x ~@14 x ~@3 x ~",
  M: "~@5 x ~@7 x ~ x", N: "~@5 x ~@3 x ~@3 x ~ x", O: "~@9 x ~@19 x ~@2", P: "~@9 x ~@7 x ~@11 x ~@2",
  Q: "~ x ~@6 x ~@7 x ~@7 x ~@3 x ~@3", R: "x ~@7 x ~@7 x ~@7 x ~@3 x ~@2 x", S: "~@7 x ~@7 x ~@7 x ~@3 x ~@3 x",
  T: "~@7 x ~@7 x ~@7 x ~@3 x ~@2 x ~", U: "~@3 x ~@3 x ~@3 x ~ x ~ x", V: "~@6 x ~@6 x ~@7 x ~@3 x ~@3 x ~@2",
  W: "~@5 x ~@7 x ~@7 x ~@3 x ~@6", X: "~@3 x", Y: "~@5 x!2 ~", Z: "~@3 x ~ x!2 ~", AA: "x!8", AB: "x!5 ~ x ~",
  AC: "~@4 x ~@18 x ~@8", AD: "~@3 x ~@7 x ~@7 x ~@3 x ~@8", AE: "~@3 x ~@19 x ~@8", AF: "~ x ~@7 x ~ x ~@4",
  AG: "~ x ~@3 x ~@3 x ~ x ~ x ~@2", AH: "~@2 x ~@18 x ~@10", AI: "~ x ~@7 x ~@11 x ~@3 x ~@6", AJ: "x ~ x ~ x!3 ~",
  AK: "x ~@7 x ~@7 x ~@2 x!2 ~@2 x ~@7 x", AL: "~@7 x ~@7 x ~@3 x ~@3 x ~@7 x", AM: "~@7 x ~@7 x ~@2 x ~@3 x ~@7 x ~",
  AN: "~@3 x ~@3 x ~ x ~ x ~@3 x", AO: "~@6 x ~@6 x ~@3 x ~@3 x ~@7 x ~@2", AP: "~@5 x ~@7 x ~@3 x ~@11 x ~@2",
  AQ: "~ x ~@14 x ~@3 x ~@7 x ~@3", AR: "x ~@3 x ~@2 x", AS: "x ~@14 x ~@11 x ~@3 x", AT: "~@15 x ~@10 x ~@3 x ~",
  AU: "~@7 x ~@5 x ~ x", AV: "~@14 x ~@14 x ~@2", AW: "~ x ~@11 x ~@15 x ~@2", AX: "~ x ~@10 x ~@15 x ~@3",
  AY: "x ~ x!2 ~ x!3", AZ: "x ~@3 x ~@3 x ~@3 x ~@10 x ~@8", BA: "~@7 x ~@3 x ~@11 x ~@8", BB: "~@3 x ~ x ~@5 x ~@4",
  BC: "~@5 x ~@3 x ~ x ~ x ~ x", BD: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
  BE: "~ x ~@3 x ~@3 x ~@11 x ~@10", BF: "~@2 x ~@2 x ~ x", BG: "~@4 x ~@3 x ~@10 x ~@12", BH: "~@7 x ~@11 x ~@7 x ~@4",
  BI: "~@3 x ~@2 x ~@11 x ~@13", BJ: "~ x ~ x ~@5 x ~@6", BK: "~ x ~@3 x ~@11 x ~@7 x ~@6",
  BL: "~ x ~@3 x ~@7 x ~@3 x ~@3 x ~@10", BM: "~ x ~@2 x ~ x ~", BN: "~@4 x ~@3 x ~@6 x ~@7 x ~@7 x",
  BO: "~@3 x ~@3 x ~@7 x ~@7 x ~@7 x", BP: "~@3 x ~@3 x ~@6 x ~@7 x ~@7 x ~", BQ: "~@2 x ~@3 x ~@7 x ~@7 x ~@6 x ~@2",
  BR: "~@2 x ~@3 x ~@6 x ~@7 x ~@7 x ~@2", BS: "~ x ~@3 x ~@7 x ~@7 x ~@7 x ~@2", BT: "~ x ~@3 x ~@6 x ~@7 x ~@7 x ~@3",
  BU: "x ~@7 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x", BV: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x",
  BW: "~@9 x ~@3 x ~ x", BX: "~@10 x ~@6 x ~@7 x ~@3 x ~@2", BY: "~@9 x ~@7 x ~@7 x ~@3 x ~@2", BZ: "~@2 x ~ x ~ x!2",
  CA: "~@7 x ~@7 x ~@7 x ~@7 x", CB: "~@13 x ~@2", CC: "~@3 x ~@3 x ~@5 x ~ x", CD: "~@6 x ~@7 x ~@10 x ~@3 x ~@2",
  CE: "~@5 x ~@7 x ~@7 x ~@7 x ~@2", CF: "~@5 x ~@6 x ~@7 x ~@3 x ~@3 x ~@3", CG: "~ x ~ x ~ x!3",
  CH: "~@3 x ~@7 x ~@7 x ~@3 x ~@3 x ~@4", CI: "~@3 x ~@7 x ~@7 x ~@3 x ~@7 x", CJ: "~@3 x ~@6 x ~@7 x ~@3 x ~@9",
  CK: "~@2 x ~@7 x ~@11 x ~@2 x ~@6", CL: "~ x ~@7 x ~@7 x ~@3 x ~@3 x ~@6", CM: "~ x ~@7 x ~@6 x ~@3 x ~@3 x ~@7",
  CN: "x ~@6 x ~@7 x ~@3 x ~@3 x ~@7 x", CO: "~@3 x ~@3 x ~ x ~@6", CP: "~@9 x ~ x ~@3 x",
  CQ: "~@5 x ~@7 x ~@3 x ~@7 x ~@3 x ~@2", CR: "~@5 x ~@7 x ~@3 x ~@2 x ~@7 x ~@3", CS: "~ x ~ x!2 ~ x!2",
  CT: "~@4 x ~@6 x ~@20",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A B@6 ~@12 C B D@3 E F@2 G H I@2 J K L@2 M ~@9 N O P Q@3 R@3 S T U@2 V W X Y Z ~@5 AA H AB AC AD J L AE AF AG AH P
  AI R AJ AK AL AM AN V W X AO@2 B AP AQ E F AA H AB I AR AS L AT AU AV AW Q AX AY AJ AK T U AN V AZ BA BB BC BD BE
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "x!7 ~", D: "~@7 x ~@15 x ~@8", E: "~@7 x ~@14 x ~@9", F: "~@3 x ~@7 x ~@4",
  G: "~@6 x ~@7 x ~ x!2 ~@3 x ~@3 x ~@6", H: "~@5 x ~@15 x ~@10", I: "~ x ~@3 x ~@2", J: "~@3 x ~@15 x ~@12",
  K: "~@3 x ~@14 x ~@13", L: "~ x ~@7 x ~@6", M: "~ x ~@15 x ~@14", N: "~@5 x!3", O: "x!5 ~@3", P: "x ~@14 x ~@15 x",
  Q: "~@15 x ~@15 x", R: "~@7 x ~@7 x", S: "~@6 x!2 ~ x ~@3 x ~@3 x ~ x ~@9 x ~@2", T: "~@13 x ~@14 x ~@3",
  U: "~@3 x ~@3 x", V: "~@11 x ~@15 x ~@4", W: "~@11 x ~@14 x ~@5", X: "~@5 x ~@7 x ~@2", Y: "~@10 x ~@14 x ~@6",
  Z: "~@9 x ~@22", AA: "~@6 x ~@14 x ~@10", AB: "~@5 x ~@14 x ~@11", AC: "~ x ~ x ~ x!3",
  AD: "x ~@3 x ~@3 x ~@10 x ~@12", AE: "~ x ~@14", AF: "~@5 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2",
  AG: "~ x ~@3 x ~@11 x ~@14", AH: "x!2", AI: "~@15 x ~@14 x ~", AJ: "~@14 x ~@14 x ~@2", AK: "~@13 x ~@15 x ~@2",
  AL: "~@13 x ~@3 x ~@2 x ~@4 x!2 ~ x ~@2 x", AM: "x!2 ~@4 x ~@7 x ~", AN: "~@12 x ~@14 x ~@4", AO: "~@9 x ~@15 x ~@6",
  AP: "x ~@26 x ~@3 x", AQ: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4", AR: "~@3 x ~@15 x ~@7 x ~@4",
  AS: "~@3 x ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@6", AT: "~@2 x ~@14 x ~@3 x ~@10", AU: "~ x ~@15 x ~@7 x ~@6",
  AV: "~ x ~@7 x ~@6 x ~@15", AW: "x ~@15 x ~@14 x", AX: "~@15 x ~@11 x ~@4", AY: "~@3 x ~@3 x ~@7 x",
  AZ: "~@5 x ~@5 x ~@2 x!2", BA: "~@2 x ~@3 x ~ x ~ x ~ x ~ x ~ x ~@8 x ~@6", BB: "~@9 x ~@11 x ~@10",
  BC: "~ x ~@7 x ~@14 x ~@7", BD: "~@2 x ~@2 x ~@2", BE: "x!2 ~@2",
})).gain(0.4)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@26 A ~@26 B ~@29 C D ~@16 E ~@29>".pickRestart({
  A: "~@2 x!6", B: "x!5 ~@3", C: "~@18 x ~@2 x ~@4 x ~@2 x ~@2", D: "~ x ~@30", E: "~@8 x ~@3 x ~@3 x ~@2 x ~@4 x ~@7",
})).gain(0.2)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@8 A ~@8 B C D@7 ~@2 E F G@2 H I@2 J ~@8 K L D@6 M ~@2 E N G@2 I@2 O ~@8 P Q R G S I J ~@3 T U V W X Y D Z G I AA AB
// … 62 more lines

More by Alice Cooper