Strudelify
Paranoid cover art

1970 · Paranoid

Paranoid

Black Sabbath

KeyE minorTempo170 bpm
0:00/0:00
// Paranoid — Black Sabbath
// 170 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 6 "sOLO (dER)" overdriven guitar (copy of ch 4 "sOLO (eSQ)" overdriven guitar)
// note: Full arrangement: all 112 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): gUITARRA.
setcpm(170/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.

// other · distortion guitar · "gUITARRA"
const distortion_guitar = note(`<
  A@8 B@2 C D B@2 C D E F B G E F B G B@2 C D B@2 C D H@2 I@2 H@2 J@2 B@2 C D B@2 C D B@2 C D B@2 C D B@2 C D B@2 C D
  B@2 C D B@2 C D B@2 C D B@2 C D B@2 C D B@2 C D E F B G E F B G B@2 C D B@2 C D B@2 C D B@2 C K
>`.pickRestart({
  A: "[a3 b3@2 a3 b3@2 a3 b3 a3 b3 d4 e4 a3 b3 d4 b3, [e2,e3]@3 [e2,e3]@3 [e2,e3]@3 ~@7]/2", B: "[e2,e3]!8",
  C: "[d2,d3]!8", D: "[g2,g3] [d2,d3]@3 [e2,e3]@2 [d2,d3] [e2,e3]", E: "[e2,e3]", F: "[c2,c3] [d2,d3]",
  G: "[e2,e3]!7 [d2,d3]", H: "[e2,e3]/2", I: "[d2,d3]/2", J: "[[d2,d3]@3 [d2,d3]]/2",
  K: "[g2,g3] [d2,d3]@3 [e2,e3]@2 ~@2", // G D E
})).s("gm_distortion_guitar").gain(0.47).pan(1)

// bass · fretless bass · "bAIXO"
const bass = note(`<
  ~@4 A B C B D E F G D E F G D H D I D H D I D E F G D E F G J@2 K@2 J@2 K@2 D E F G D E F G D E F G D E F G D E F G D
  E F G D E F G D E F G D E F G D E F G D E F G D E F G D H D I D H D I D E F G D E F G D E F G D E F L
>`.pickRestart({
  A: "e2@6 e2@6 e2@3 ~", B: "a2 b2 d3 e3 a2 b2 d3 b2", C: "e2@3 e2@3 e2@2", D: "e2!8", E: "e2!4 d2 e2 g2 a2", F: "d2!8",
  G: "g2 d2@3 e2@2 d2 e2", H: "c2!4 d2!4", I: "e2!7 d2", J: "e2 e3 e2 e3 e2 e3 e2 e3", K: "d2 d3 d2 d3 d2 d3 d2 d3",
  L: "g2 d2@3 e2@2 ~@2",
})).s("gm_fretless_bass").gain(0.64)

// other · overdriven guitar · "sOLO (eSQ)"
const overdriven_guitar = note("<~@56 A@2 B C D E F G H I J K L M N O ~@40>".pickRestart({
  A: "[g4 e4 d4 e4@7 e4 d4 e4 d4 b3@2]/2", B: "g3@2 a3@2 g3@2 a3@2 g3@2 f#3 f3 e3@4", C: "g3 e3@2 e3@4 e3",
  D: "g3@2 a3 b3 d4 e4!2 d4", E: "e4@2 g4@2 a4@5 g4@3 a4@4", F: "~ g4 a4@4 g4@2 f#4@2 f#4@2 f#4@4",
  G: "e4@2 f#4@2 f#4@2 f#4@2 f#4@3 [g4,a4,b4,c5] c#5@2 e5!2", H: "f#5@3 f#5@3 f#5 e5", I: "a5@4 a5@4 a5@4 g5 a5 g5 f#5",
  J: "g5@2 e5@2 e5@2 e5 c#5 b4@2 a4@2 b4!2 a4 e4", K: "g4@2 e4 g4 a4@2 g4@2",
  L: "a4@4 g4@2 a4@2 g4@2 e4 g4 e4 a3 b3 c4", M: "d4@6 b3@2 a3@2 b3 a3 g3 a3 b3 c4", N: "d4@3 d4 e4 g4 e4 d4",
  O: "e4 d4@3 e4@3 ~",
})).s("gm_overdriven_guitar").gain(0.6).pan(0)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@3 A B@3 C B@3 D B@3 D B@3 E B@3 E B@3 D B@3 D B@7 F B@2 G D B@2 G D B@3 D B@3 D B@3 D B@3 D B@3 D B@3 D B@3 D B@2 G
  D B@3 D B@3 D B@7 H B@3 D B@3 D B@3 D B@2 G I
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@4 x ~@7 x!4", D: "x ~@2 x", E: "~@4 x ~@5 x!3 ~@3", F: "~@4 x ~@3 x!8", G: "x!4",
  H: "~@12 x!4", I: "x",
})).gain(0.64)

// drums · low tom
const low_tom = s("lt").struct("<~@95 [~@4 x!8 ~@4] ~@16>").gain(0.72)

// drums · mid tom
const mid_tom = s("mt").struct("<~@95 [x!4 ~@12] ~@16>").gain(0.72)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@2 A B A@4 C A@2 ~ C A@2 ~ C A@2 B C A@2 B C A@2 ~ C A@2 ~ C A C A C A C D 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@2 ~ C A@3 C A@2 ~ C A@2 ~ C A@2 ~ C A@2 ~ C A@2 ~
>`.pickRestart({
  A: "x!4", B: "x!3 ~", C: "~ x!3", D: "x!2 ~@2",
})).gain(0.64)

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

stack(distortion_guitar, bass, overdriven_guitar, kick, snare, low_tom, mid_tom, open_hat, crash)

More by Black Sabbath