Strudelify

Sex Type Thing

Stone Temple Pilots

KeyE minorTempo136 bpm
0:00/0:00
// Sex Type Thing — Stone Temple Pilots
// 136 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "Guitar 2" named as a guitar, played on electric guitar clean (its contrabass patch is not one)
// note: Full arrangement: all 121 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(136/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · overdriven guitar · "Guitar 1"
const overdriven_guitar = note(`<
  A@8 B C@6 D A@8 B C@6 E@7 F@2 A@8 B C@6 G@7 F@2 H I J K H I J K B C@6 G@7 L@8 F@2 H I J K H I J K A@16 M
>`.pickRestart({
  A: "[e3@2 [b3,e4]@2 [b3,e4]@2 e3@2 [a#3,e4]@4 e3@2 [a3,e4]@4 e3@2 [g3,e4]@3 ~ [g3,e4]@2 [a3,e4]@2 [g3,e4]@2 e3@2]/2", // E5 A#dim A5 C A5 C
  B: "[d2,d3] [e2,e3]!2 [d2,d3] [e2,e3] ~@3", // D E D E
  C: "[~ [d2,d3] [e2,e3]!2 [d2,d3] [e2,e3]!2 [d2,d3]@2 [e2,e3]!2 [d2,d3] [e2,e3] ~@3]/2", // D E D E D E D E
  D: "~@2 [d2,d3]@2 [e2,e3]@2 [e2,e3]@2 [d2,d3]@2 [d2,d3]@2 [e2,e3]@3 ~", // D E D E
  E: "[~ [d2,d3] [e2,e3]!2 [d2,d3] [e2,e3] ~ [b3,f#4,b4]@6 [a3,e4,a4]@2 [a3,d4,a4,d5]@6 [a3,e4,a4]@2 [b3,f#4,b4]@6 [a3,e4,a4]@2 [a3,d4,a4,d5]@6 [a3,e4,a4]@2 [b3,f#4,b4]@6 [a3,e4,a4]@2 [a3,d4,a4,d5]@6 [a3,e4,a4]@2 [b3,f#4,b4]]/7", // D E D E B5 A5 D5 A5 …
  F: "[~@5 [a3,e4,a4]@2 [a3,d4,a4,d5]@6 [a3,e4,a4]@2 ~]/2", // A5 D5 A5
  G: "[~ [d2,d3] [e2,e3]!2 [d2,d3]!2 ~ [b3,f#4,b4]@6 [a3,e4,a4]@2 [a3,d4,a4,d5]@6 [a3,e4,a4]@2 [b3,f#4,b4]@6 [a3,e4,a4]@2 [a3,d4,a4,d5]@6 [a3,e4,a4]@2 [b3,f#4,b4]@6 [a3,e4,a4]@2 [a3,d4,a4,d5]@6 [a3,e4,a4]@2 [b3,f#4,b4]]/7", // D E D B5 A5 D5 A5 B5 …
  H: "[e4,a#4,b4]!3 [e4,c5]!3 [e4,f#4,d5]!2", I: "[e4,f#4,d5] [e4,g#4,e5]!7",
  J: "[e4,a#4,f#5] e3!2 [e4,a#4,f#5] e3!2 [e4,a#4,f#5] e3", K: "e3 [e4,a#4,f#5] e3!2 [e4,a#4,f#5] e3 [e4,a#4,f#5] e3",
  L: "[~@5 [a3,e4,a4]@2 [a3,d4,a4,d5]@6 [a3,e4,a4]@2 [b3,f#4,b4]@6 [a3,e4,a4]@2 [a3,d4,a4,d5]@6 [a3,e4,a4]@2 [b3,f#4,b4]@6 [a3,e4,a4]@2 [a3,d4,a4,d5]@6 [a3,e4,a4]@2 [b3,f#4,b4]@6 [a3,e4,a4]@2 [a3,d4,a4,d5]@6 [a3,e4,a4]@2 [b3,f#4,b4]]/8", // A5 D5 A5 B5 A5 D5 A5 B5 …
  M: "[e3,a#3,e4]@2 [e3,a#3,e4]@2 [e3,a#3,e4]@2 [e3,a#3,e4]@2 [e3,a#3,e4]@7 ~", // Edim
})).s("gm_overdriven_guitar").gain(0.72)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A@8 B C@6 D A@8 B C@6 E@8 F A@8 B C@6 E@8 F G H G H G H G H B C@6 E@8 I@8 F G H G H G H G H A@16 J
>`.pickRestart({
  A: "[e2 b2@2 e2 a#2@2 e2 a2@2 e2 g2@2 g2 a2 g2 e2]/2", B: "d2 e2@2 d2 e2 d2!3",
  C: "[d2!2 e2@2 d2 e2@2 d2@2 e2!2 d2 e2 d2!3]/2", D: "d2@2 d2@2 e2@2 e2@2 d2@2 d2@2 e2@3 ~",
  E: "[d2!2 e2!2 d2!2 ~ e2@6 d2@2 g2@6 d2@2 e2@6 d2@2 g2@6 d2@2 e2@6 d2@2 g2@6 d2@2 e2@6 d2@2 g2]/8", F: "~@5 d2@2 ~",
  G: "f#2 e2!2 f#2 e2!2 f#2 e2", H: "e2 f#2 e2!2 f#2 e2 f#2 e2",
  I: "[~@5 d2@2 e2@6 d2@2 g2@6 d2@2 e2@6 d2@2 g2@6 d2@2 e2@6 d2@2 g2@6 d2@2 e2@6 d2@2 g2]/8",
  J: "e2@2 e2@2 e2@2 e2@2 e2@7 ~",
})).s("gm_electric_bass_finger").gain(0.72)

// chords · melodic tom · "Drums 2"
const melodic_tom = note(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A C D E D E D E D F A B A B A B A B A B A B A B A C D E D
  E D E D F G H I@2 G H I@2 A B A B A B A C D E D E D E D E D E D E D E D F G H I@2 G H I@2 A B A B A B A B A B A B A B
  A B J
>`.pickRestart({
  A: "[b1,c2]@3 ~@5 [b1,c2]@3 ~@3 [b1,c2] ~", B: "~@2 [b1,c2] ~@5 [b1,c2]@2 [b1,c2]@2 ~@4",
  C: "~@2 [b1,c2] ~@5 [b1,c2]@2 [b1,c2]@2 ~@2 [b1,c2] ~", D: "~@2 [b1,c2] ~@5 [b1,c2] ~@5 [b1,c2] ~",
  E: "~@2 [b1,c2] ~@5 [b1,c2] ~ [b1,c2] ~@3 [b1,c2] ~", F: "~@2 [b1,c2] ~@5 [b1,c2] ~ [b1,c2] ~@5",
  G: "~ [b1,c2]!2 ~ [b1,c2]!2 ~ [b1,c2]", H: "[b1,c2] ~ [b1,c2]!2 ~ [b1,c2] ~ [b1,c2]",
  I: "[b1,c2]@3 ~@5 [b1,c2]@3 ~@5", J: "[b1,c2]!5 ~@3",
})).s("gm_melodic_tom").gain(0.72)

stack(overdriven_guitar, bass, melodic_tom)

More by Stone Temple Pilots