Strudelify
Verse Chorus Verse (outtake, 1991) cover art

Nevermind

Verse Chorus Verse (outtake, 1991)

Nirvana

KeyC♯ minorTempo130 bpm
0:00/0:00
// Verse Chorus Verse (outtake, 1991) — Nirvana
// 130 bpm, 4/4, key C# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 4/4 at bar 1) are rendered on a constant 4/4 grid of one bar per cycle
// note: duplicate parts dropped: ch 3 "Kurt Cobain -Dist Guitar 2-" overdriven guitar (copy of ch 2 "Kurt Cobain -Dist Guitar 1-" distortion guitar)
// note: Full arrangement: all 101 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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 · electric guitar clean · "Kurt Cobain -Clean Guitar 1-"
const electric_guitar_clean = note("<A B C D ~@22 A B C D A B C D A B C D A B C D ~@32 A B C D ~@21 E@2>".pickRestart({
  A: "[c#3,g#3,c#4]@2 [c#3,g#3,c#4] [c#3,g#3,c#4]@2 [c#3,g#3,c#4]!2 [b2,f#3,b3]", // C#5 B5
  B: "[a2,e3,a3]@2 [a2,e3,a3]!2 [f#2,c#3,f#3] [f#2,c#3,f#3,f#4]!2 [f#2,c#3,f#3]", // A5 F#5
  C: "[g#2,d#3,g#3]@2 [g#2,d#3,g#3,d#4] [g#2,d#3,g#3,d#4]@2 [g#2,d#3,g#3,d#4]!2 [f#2,c#3,f#3]", // G#5 F#5
  D: "[a2,e3,a3]@2 [a2,e3,a3]!2 [b2,f#3,b3] [b2,f#3,b3,f#4]!2 [g#2,d#3,g#3]", E: "[~ [g#2,d#3,g#3]@3]/2",
})).s("gm_electric_guitar_clean").gain(0.51)

// chords · distortion guitar · "Kurt Cobain -Dist Guitar 1-"
const distortion_guitar = note(`<
  ~@4 A B C D A B C D A B C D A E F E F E F G H@2 ~@16 A E F E F E F G H@2 I J K L M@2 N O P Q R S A E F E F E F G H@2
  ~@4 A B C D A B C D A B C D A E F E F E F G T@3
>`.pickRestart({
  A: "[c#3,g#3,c#4]@2 [c#3,g#3,c#4] [c#3,g#3,c#4]@2 [c#3,g#3,c#4]!2 [b2,f#3,b3]", // C#5 B5
  B: "[a2,e3,a3]@2 [a2,e3,a3]!2 [f#2,c#3,f#3]!4", // A5 F#5
  C: "[g#2,d#3,g#3]@2 [g#2,d#3,g#3,d#4] [g#2,d#3,g#3,d#4]@2 [g#2,d#3,g#3,d#4]!2 [f#2,c#3,f#3]", // G#5 F#5
  D: "[a2,e3,a3]@2 [a2,e3,a3]!2 [b2,f#3,b3]!3 [g#2,d#3,g#3]", // A5 B5 G#5
  E: "[a2,e3,a3]@2 [a2,e3,a3] [a2,e3,a3]@2 [a2,e3,a3]!2 [f2,c3,f3]", // A5 F5
  F: "[f#2,c#3,f#3]@2 [f#2,c#3,f#3,f#4] [f#2,c#3,f#3,f#4]@2 [f#2,c#3,f#3,f#4]!2 [g#2,d#3,g#3]", // F#5 G#5
  G: "[a2,e3,a3]@2 [a2,e3,a3] [a2,e3,a3]@2 [a2,e3,a3]!3", H: "[[g#2,d#3,g#3]@7 ~]/2", I: "c#3 e3 f#3 g#3 f#3 e3 g#3 b3",
  J: "c#4 b3 g#3 e4@2 e4@3", K: "d#4@4 ~ c#4 d#4 c#4", L: "d#4 c#4 c4 e4@2 e4@2 ~", M: "f#3 e3 c#3 e3 f#3 e3 f#3 c#3",
  N: "c3 c#3 c3 e3 b3 e3 f#3 c#3", O: "c3 c#3 c3 e3 g#3 e3 f#3 c#3", P: "e3!4", Q: "c#3 g#2 f#2 c#3 c#3@2 c#3!2",
  R: "c3@4 ~ c3 c#3 c3", S: "c#3 b2 g#2 e3@2 [e3,b3,e4]!3", T: "[[g#2,d#3,g#3]@11 ~]/3",
})).s("gm_distortion_guitar").gain(0.41)

// bass · electric bass finger · "Chris Novoselic -Bass-"
const bass = note(`<
  ~@4 A B C D A B C D A B C D A E F E F E F G H ~ A B C D A B C D A B C D A B C D A E F E F E F G H ~ A I C J A I C J A
  I C J A E F E F E F G H ~@5 A B C D A B C D A B C D A E F E F E F G K@2 ~
>`.pickRestart({
  A: "c#2@2 c#2 c#2@2 c#2!2 b1", B: "a1@2 a1!2 f#1 f#2 f#1 f#2", C: "g#1@2 g#1 g#1@2 g#1!2 f#1",
  D: "a1 a2 a1 a2 b1 b2 b1 b2", E: "a1@2 a1 a1@2 a1!2 f1", F: "f#1@2 f#1 f#1@2 f#1!2 g#1", G: "a1@2 a1 a1@2 a1!3",
  H: "g#1", I: "a1@2 a1!2 f#1!4", J: "a1!4 b1!4", K: "g#1/2",
})).s("gm_electric_bass_finger").gain(0.51)

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

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

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@4 A@3 ~ A@3 ~ A@3 ~ A@7 ~@3 A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@7 ~@3 A@3 ~ A@3 ~ A@3 ~ A@7 ~@7 A@3 ~ A@3 ~ A@3 ~ A@7 ~@2 B ~
>`.pickRestart({
  A: "~@7 x", B: "x!9 ~@7",
})).gain(0.51)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@4 A@3 ~ A@3 ~ A@3 ~ A@7 ~@3 A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@7 ~@3 A@3 ~ A@3 ~ A@3 ~ A@7 ~@7 A@3 ~ A@3 ~ A@3 ~ A@7 ~ B C ~
>`.pickRestart({
  A: "~@7 x", B: "~ x ~@3 x!2 ~ x!8", C: "x!2 ~@2",
})).gain(0.51)

// drums · open hat
const open_hat = s("oh").struct("<~@4 A@20 B ~ A@24 B ~ A@20 B ~@5 A@20 B C ~>".pickRestart({
  A: "x!4", B: "x", C: "~ x",
})).gain(0.51)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@4 A ~ A ~ A ~ A ~ A ~ A ~@11 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@11 A ~ A ~ A ~ A ~ A ~ A ~@15 A ~ A ~ A ~ A ~ A ~ A ~@9
  B ~@2
>`.pickRestart({
  A: "~@7 x", B: "x!8 ~@5 x ~@2",
})).gain(0.51)

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

// drums · tambourine
const tambourine = s("tb").struct("<~@4 A@20 B ~ A@24 B ~ A@20 B ~@5 A@20 B C ~>".pickRestart({
  A: "x!8", B: "x", C: "~ x",
})).gain(0.51)

stack(
  electric_guitar_clean, distortion_guitar, bass, kick, snare, low_tom, mid_tom, open_hat, high_tom, crash, tambourine
)

More by Nirvana