Strudelify

Paranoid

Joel Gonzalez

KeyG majorTempo168 bpm
0:00/0:00
// Paranoid — Joel Gonzalez
// 168 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Transcription provider: pdmx. https://musescore.com/score/5933781; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 113 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(168/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 · distortion guitar · "Guitar 1"
const distortion_guitar = note(`<
  A B A C A C A C D@2 E F D@2 E F G H D@2 G H D@4 E F D@2 E F I@2 J@2 K@2 J@2 D@2 E F D@2 E F D@2 E F D@2 E F D@2 E F
  D@2 E F D@2 E F D@2 E F D@2 E F D@2 E F D@2 E F D@2 E F G H D@2 G H D@4 E F D@2 E F D@2 E F D@2 E L ~
>`.pickRestart({
  A: "[d3,a3] [e3,b3]@5 [d3,a3] [e3,b3]@5 [d3,a3] [e3,b3]@3", B: "a3 b3 d4 e4 a3 b3 d4 b3",
  C: "a3 b3 d4 e4 a3 b3 d4 e4", D: "[e3,b3]!8", E: "[d3,a3]!8", F: "[g3,d4] [d3,a3]@3 [e3,b3] ~ [d4,g4] ~",
  G: "[e3,b3]@12 [e3,b3] [d3,d#3,a3,a#3] [c3,c#3,g3,g#3]@2", H: "[c3,g3] [d3,a3]", I: "[[e3,b3]@14 [e3,b3] ~]/2",
  J: "[d3,a3]/2", K: "[e3,b3]/2", L: "[g3,d4]@2 [d3,a3]@7 ~ [e3,b3]@2 ~@4",
})).s("gm_distortion_guitar").gain(0.3)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@3 A B C D E F G H I G@2 H I G J G@3 J G@4 H I G@2 H I G@2 K@2 L@2 K M F G H I G@2 H I G@2 H I G@2 H I G@2 H I G@2 H
  I G@2 H I G@2 H I G@2 H I G@2 H N F G H I G@2 H I G J G@3 J G@4 H I G@2 H I G@2 H I G@2 H O ~
>`.pickRestart({
  A: "~@12 [d#3,e3] [c3,c#3,d3] [a2,a#2,b2] [f#2,g2,g#2]", B: "e2@3 e2@3 e2@2, f2 ~@15", C: "a2 b2 d3 e3 a2 b2 d3 e3",
  D: "e2@3 e2@3 e2@2", E: "a2@2 b2@2 d3@2 e3@2 a2@2 b2@2 [c#3,d3] [b2,c3] [g#2,a2,a#2] [f#2,g2]", F: "e2!8, f2 ~@15",
  G: "e2!8", H: "d2!8", I: "g2 d2@3 e2 ~@3", J: "c2 g2 c3@2 d2 a2 d3@2", K: "d2 d3 d2 d3 d2 d3 d2 d3",
  L: "e2 e3 e2 e3 e2 e3 e2 e3", M: "d2@2 d3@2 d2@2 d3@2 d2@2 d3@2 [c#3,d3] [b2,c3] [g#2,a2,a#2] [f#2,g2]",
  N: "g2@2 d2@6 e2@2 ~@2 [c#3,d3] [b2,c3] [g#2,a2,a#2] [f#2,g2]", O: "g2@2 d2@7 ~ e2@2 ~@4",
})).s("gm_electric_bass_finger").gain(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B A C A B@2 D A B@2 D B E F C B E F C A B@2 D A B@2 D G@3 H G@3 I A B@2 D A B@2 D A B@2 D A B@2 D A B@2 D A B@2
  D A B@2 D A B@2 D A B@2 D A B@2 D A B@2 D A B@2 D B E F C B E F C A B@2 D A B@2 D A B@2 D A B@2 J ~
>`.pickRestart({
  A: "x ~@2 x ~ x ~@2", B: "x!2 ~ x!3 ~ x", C: "x!2 ~ x!2 ~@2 x", D: "x!2 ~@2 x ~@3", E: "x ~@2 x!2 ~@2 x",
  F: "x ~@2 x!3 ~ x", G: "x!2 ~@2 x!2 ~@2", H: "x!2 ~@2 x ~@2 x", I: "x!4", J: "x!2 ~@3 x ~@2",
})).gain(0.3)

// drums · snare
const snare = s("sd").struct(`<
  ~@3 A B@3 C B@3 A B@3 A B@3 C B@3 D B@3 A B@3 A B@3 E B@3 F B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3 A B@3
  A B@3 A B@3 A B@3 C B@3 D B@3 A B@3 A B@3 A B@3 ~@2
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@5 x!3 ~@3", D: "~@4 x ~@4 x!4 ~@3", E: "~@4 x ~@6 x!2 ~@3", F: "x!13 ~@3",
})).gain(0.3)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@4 A B A C A B@2 ~ A B@2 ~ A D A C A D A C A B@2 ~ A B@2 ~ A E A B A B A ~ A B@2 ~ A B@2 ~ A B@2 ~ A B@2 ~ A B@2 ~ A
  B@2 ~ A B@2 ~ A B@2 ~ A B@2 ~ A B@2 ~ A B@2 ~ A B@2 ~ A D A C A D A C A B@2 ~ A B@2 ~ A B@2 ~ A B@2 ~@2
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "x!2 ~@2", D: "~ x ~ x", E: "x!3 ~",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct(`<
  ~@4 A ~ A B A ~@2 C A ~@2 C A D A B A D A B A ~@2 C A ~@2 C A E A ~ A ~ A ~ A ~@2 C A ~@2 C A ~@2 C A ~@2 C A ~@2 C A
  ~@2 C A ~@2 C A ~@2 C A ~@2 C A ~@2 C A ~@2 C A ~@2 C A D A B A D A B A ~@2 C A ~@2 C A ~@2 C A ~@2 F ~
>`.pickRestart({
  A: "x", B: "~ x", C: "x!2 ~@2 x ~@3", D: "x!2", E: "~@3 x", F: "x!2 ~@3 x ~@2",
})).gain(0.3)

stack(distortion_guitar, bass, kick, snare, open_hat, crash)

More by Joel Gonzalez