Strudelify
Meatplow cover art

1994 · Purple

Meatplow

Stone Temple Pilots

Tempo165 bpm
0:00/0:00
// Meatplow — Stone Temple Pilots
// 165 bpm, 4/4, key unknown. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 4 "lead guitar" overdriven guitar (copy of ch 1 "clean guitar" electric guitar clean); ch 5 "bass 2" electric bass pick (copy of ch 2 "bass" electric bass finger)
// note: Full arrangement: all 150 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): clean guitar.
setcpm(165/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · electric bass finger · "bass"
const bass = note(`<
  A B C@2 D E@5 F@4 G@3 H I J@2 K L M@8 N@8 O@5 P@8 Q R@3 S@4 T U V W X Y Z AA AB@8 AC@8 AD@8 AE@8 AF@4 AG@3 AH@2 AI AJ
  AK@2 AL AM@8 AN@8 AO@8 AP@6 AQ@5 ~
>`.pickRestart({
  A: "e1 g1 a1 c2", B: "f#1@4 f#1@2 ~ f#1", C: "[e1@4 f#1@4 ~@4 f#1@8 ~ e1@4 f#1@7]/2", D: "~ e1@4 g1@4 a1@4 c2@3",
  E: "[~ f#1@8 f#1@4 ~@2 f#1@2 e1@4 f#1@4 ~@4 f#1@8 ~ e1@4 f#1@8 e1@4 g1@4 a1@4 c2@4 f#1@8 f#1@4 ~@2]/5",
  F: "[f#1@2 e1@4 f#1@4 ~@4 f#1@8 ~ e1@4 f#1@8 e1@4 g1@4 a1@4 c2@4 f#1@8 f#1@4 ~]/4",
  G: "[~ f#1@2 e1@4 f#1@4 ~@4 f#1@8 ~ e1@4 f#1@8 e1@4 g1@4 a1@4]/3", H: "c2 f#1@2 f#1", I: "~ f#1 e1@2 f#1@2 ~@2",
  J: "[f#1@8 ~ e1@4 f#1@8 e1@4 g1@4 a1@3]/2", K: "~ c2@4 f#1@8 f#1@3", L: "~@3 f#1@2 e1@4 f#1@4 ~@3",
  M: "[~ f#1@8 ~ e1@4 f#1@8 e1@4 g1@4 a1@4 c2@4 b1@8 b1@8 b1@4 b1@4 b1@4 c2@8 c2@4 c2@8 c2@4 c2@4 c2@4 f1@8 f1@4 f1@8 f1@4 f1@4 f1@2]/8",
  N: "[c2 f2@4 c2@2 f2@3 c2 f2 c2 f2@2 c2@2 b1@4 b1@2 b1@4 b1@2 b1@2 b1@2 c2@4 c2@2 c2@4 c2@2 c2@2 c2@2 d2@4 a1@2 a1@4 a1@2 a1@2 c2]/8",
  O: "[~ d2@4 a1@2 a1@4 a1@2 a1@2 f1@2 a#1@4 g1@2 g1@4 g1@4 g1@2 g1@2 f1@2 a#1@2 ~]/5",
  P: "[~@3 c2@2 g1@2 c2@2 d2@4 a1@2 a1@4 a1@2 a1@2 c2@2 d2@4 a1@2 a1@4 a1@2 a1@2 f1@2 a#1@4 g1@2 g1@4 g1@4 g1@2 g1@2 f1@2 a#1@2 ~]/8",
  Q: "~@3 c2@2 g1@2 ~", R: "[~ e1@4 g1@2 a1@2 c2@2 f#1@4 f#1@2 ~ f#1 e1@2 f#1@2 ~]/3",
  S: "[~@2 f#1@8 ~ e1@4 f#1@8 e1@4 g1@4 a1@4 c2@4 f#1@8 f#1@4 ~@2 f#1@2 e1@4 f#1@4 ~]/4", T: "~@3 f#1@8 ~ e1@4",
  U: "f#1@2 e1 g1", V: "a1 c2 f#1@2", W: "f#1@2 ~ f#1 e1@2 f#1@2", X: "~@4 f#1@8 ~ e1@3", Y: "~ f#1@8 e1@4 g1@3",
  Z: "~ a1@4 c2@4 f#1@7", AA: "~ f#1@4 ~@2 f#1@2 e1@4 f#1@3",
  AB: "[~@5 f#1@8 ~ e1@4 f#1@8 e1@4 g1@4 a1@4 c2@4 b1@8 b1@8 b1@4 b1@4 b1@4 c2@8 c2@4 c2@8 c2@4 c2@4 c2@4 f1@8 f1@4 f1@8 f1@4 f1@2]/8",
  AC: "[~ f1 c2 f2@4 c2@2 f2@3 c2 f2 c2 f2@2 c2@2 b1@4 b1@2 b1@4 b1@2 b1@2 b1@2 c2@4 c2@2 c2@4 c2@2 c2@2 c2@2 d2@4 a1@2 a1@4 a1@2 a1]/8",
  AD: "[~ c2@2 d2@4 a1@2 a1@4 a1@2 a1@2 f1@2 a#1@4 g1@2 g1@4 g1@4 g1@2 g1@2 f1@2 a#1@2 ~@4 c2@2 g1@2 c2@2 d2@4 a1@2 a1@4 a1@2 a1]/8",
  AE: "[~ c2@2 d2@4 a1@2 a1@4 a1@2 a1@2 f1@2 a#1@4 g1@2 g1@4 g1@4 g1@2 g1@2 f1@2 a#1@2 ~@4 c2@2 g1@4 e1@4 g1@2 a1@2 c2@2 f#1@3]/8",
  AF: "[~@2 f#1@4 ~@2 f#1@2 e1@4 f#1@4 ~@4 f#1@8 ~ e1@4 f#1@8 e1@4 g1@4 a1@4 c2@4 f#1@4 ~]/4",
  AG: "[~ f#1@2 f#2@2 e2@2 c#2@2 b1@6 a1@4 b1@4 c#2@2 f#1@6 e1@4 ~ f#1@8 e1@4]/3",
  AH: "[g1@2 a1@2 c2@2 f#1@4 f#1@2 ~ f#1 e1@2]/2", AI: "f#1 ~ f#1@2", AJ: "~ e1@4 f#1@8 e1@3",
  AK: "[~ g1@4 a1@4 c2@4 f#1@8 f#1@4 ~@2 f#1@2 e1@3]/2", AL: "~ f#1@4 ~@4 f#1@7",
  AM: "[~ e1@2 f#1@4 e1@2 g1@2 a1@2 c2@2 b1@4 b1@4 b1@2 b1@2 b1@2 c2@4 c2@2 c2@4 c2@2 c2@2 c2@2 f1@4 f1@2 f1@4 f1@2 f1@2 f1@2 f1@3]/8",
  AN: "[~ f1@2 f1@4 f1@2 f1@2 f1@2 b1@4 b1@2 b1@4 b1@2 b1@2 b1@2 c2@4 c2@2 c2@4 c2@2 c2@2 c2@2 d2@4 a1@2 a1@4 a1@2 a1@2 c2@2 d2@3]/8",
  AO: "[~ a1@2 a1@4 a1@2 a1@2 f1@2 a#1@4 g1@2 g1@4 g1@4 g1@2 g1@2 f1@2 a#1@2 ~@4 c2@2 g1@2 c2@2 d2@4 a1@2 a1@4 a1@2 a1@2 c2@2 d2@3]/8",
  AP: "[~ a1@2 a1@4 a1@2 a1@2 f1@2 a#1@4 g1@2 g1@4 g1@4 g1@2 g1@2 f1@2 a#1@2 ~@4 c2@2 g1@2 ~@2 e1@3]/6",
  AQ: "[~ g1@2 a1@2 c2@2 f#1@12 f1@20 ~]/5",
})).s("gm_electric_bass_finger").gain(0.37)

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

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

stack(bass, kick, snare)

More by Stone Temple Pilots