Strudelify
Sliver cover art

Nirvana

Sliver

Nirvana

KeyC majorTempo142 bpm
0:00/0:00
// Sliver — Nirvana
// 142 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Guitar 1" named as a guitar, played on electric guitar clean (its harpsichord patch is not one)
// note: duplicate parts dropped: ch 6 "Guitar 3" acoustic guitar steel (copy of ch 5 "Guitar 2" distortion guitar)
// note: Full arrangement: all 74 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(142/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 · electric guitar clean · "Guitar 1"
const electric_guitar_clean = note(`<
  ~@10 A B A B A B A C ~@6 A B A B A B A C D E D F D E G H G H G H G I J K J ~ J L G H G H G H G H G H G H G H G H G H G
  H M ~
>`.pickRestart({
  A: "a2@2 a2 c3@2 g2 a2 g2", B: "a2@2 a2 c3 d3 g2 a2 g2", C: "a2@2 a2 c3 d3 a2!3",
  D: "[c3,g3]@2 [c3,g3]!2 [f2,c3]@2 [f2,c3]!2", E: "[c3,g3]@2 ~ [a2,e3] ~ [g2,d3] [a2,e3] [b2,f#3], ~ [c3,g3] ~@2",
  F: "[c3,g3]@2 ~ [a2,e3] ~ [g2,d3] [a2,e3] [b2,f#3], ~ [a#2,g3] ~@2", // C5 A5 G5 A5 B5 D#
  G: "[a2,e3]@2 [a2,e3] [c3,g3]@2 [g2,d3] [a2,e3] [g2,d3]", // A5 C5 G5 A5 G5
  H: "[a2,e3]@2 [a2,e3] [c3,g3] [d3,a3] [g2,d3] [a2,e3] [g2,d3]", // A5 C5 D5 G5 A5 G5
  I: "[a2,e3]@2 [a2,e3] [c3,g3] [d3,a3] [a2,d3] [a2,e3] [a2,d3]", J: "[e3,c4]", K: "~@7 [e3,c4]",
  L: "~ [c3,g3]@2 ~@4 [a2,e3], ~@3 [g2,d3]@2 [c3,g3]@2 ~, ~@2 [a2,e3] [d3,a3]", M: "c3",
})).s("gm_electric_guitar_clean").gain(0.5)

// bass · electric bass pick · "Bass"
const bass = note(`<
  A B A C A B A C A B D E D E D E D E F B F C F B D E D E D E D E F B F C F B D E D E D E D E F B F C F B D E D E D E D
  E D E D E D E D E D E D E G ~
>`.pickRestart({
  A: "c3@2 c3!2 f2@2 f2@2", B: "c3@2 ~ a2 ~ g2 a2 b2, ~ c3 ~@2", C: "c3@2 ~ a2 ~ g2 a2 b2, ~ a#2 ~@2",
  D: "a2!3 c3!2 g2 a2 g2", E: "a2!3 c3 ~ g2 a2 g2, ~@4 d3@3 ~", F: "c3@2 c3!2 f2@2 f2!2", G: "c4",
})).s("gm_electric_bass_pick").gain(0.5)

// other · guitar harmonics
const guitar_harmonics = note("<~@9 A@2 ~@63>".pickRestart({
  A: "[~@2 e5@3 ~@3, ~@3 e4@2 ~@11]/2",
})).s("gm_guitar_harmonics").gain(0.4)

// other · distortion guitar · "Guitar 2"
const distortion_guitar = note(`<
  ~@18
  [c3@2 c3@2 f2@2 f2!2]
  [c3@2 ~ a2 ~ g2 a2 b2, ~ c3 ~@2]
  [c3@2 c3@2 f2@2 f2!2]
  [c3@2 ~ a2 ~ g2 a2 b2, ~ a#2 ~@2]
  [c3@2 c3@2 f2@2 f2!2]
  [c3@2 ~ a2 ~ g2 a2 b2, ~ c3 ~@2]
  ~@50
>`).s("gm_distortion_guitar").gain(0.25)

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

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

// drums · pedal hat
const pedal_hat = s("hh").struct("<A@9 B ~@8 C@6 ~@8 C@6 ~@8 C@6 ~@22>".pickRestart({
  A: "~ x ~ x", B: "~ x!2 ~", C: "x!8",
})).gain(0.4)

// drums · crash
const crash = s("cr").struct("<~@10 A@8 B ~@5 A@8 B ~@5 A@8 B ~@5 A@20 B ~>".pickRestart({
  A: "x!4", B: "x",
})).gain(0.4)

stack(electric_guitar_clean, bass, guitar_harmonics, distortion_guitar, kick, snare, pedal_hat, crash)

More by Nirvana