Strudelify
Lake of Fire cover art

1993

Lake of Fire

Nirvana

KeyG minorTempo87 bpm
0:00/0:00
// Lake of Fire — Nirvana
// 87 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 1 "Guitar 1" named as a guitar, played on electric guitar clean (its piano patch is not one); ch 2 "Guitar 2" named as a guitar, played on electric guitar clean (its piano patch is not one); ch 4 "Bass" named as a bass, played on electric bass finger (its piano patch is not one)
// note: Full arrangement: all 44 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(87/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(`<
  ~ A B A C D C A B A C D C E F E G A B A C D C E F E G A B A C D H C@2 I@7 J@2
>`.pickRestart({
  A: "[g3,d4,g4,bb4] ~ [g3,d4,g4,bb4]@3 ~ [g3,d4,g4] [gb3,db4,gb4] [f3,c4,f4] ~ [f3,c4,f4] ~ [bb3,f4,bb4]@3 ~", // Gm G5 Gb5 F5 Bb5
  B: "[g3,d4,g4,bb4] ~ [g3,d4,g4,bb4]@3 ~ [c4,g4,c5] ~ [c4,g4,c5]@3 ~ [bb3,f4,bb4]@3 ~", // Gm C5 Bb5
  C: "[c4,g4,c5] ~ [c4,g4,c5]@3 ~ [c4,g4,c5] ~ [f3,c4,f4] ~ [f3,c4,f4] ~ [g3,d4,g4]@3 ~", // C5 F5 G5
  D: "[g3,d4,g4,bb4] ~ [g3,d4,g4,bb4]@3 ~ [g3,d4,g4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~ [g3,d4,g4]@3 ~", // Gm G5 F5 G5
  E: "[d4,a4,d5,f5] ~ [d4,a4,d5,f5] [d4,a4,d5,f5]@2 ~ [d4,a4,d5,f5] ~ [bb3,f4,bb4,d5] ~ [bb3,f4,bb4,d5] [bb3,f4,bb4,d5]@2 ~ [bb3,f4,bb4,d5] ~", // Dm Bb
  F: "[d4,a4,d5,f5] ~ [d4,a4,d5,f5] [d4,a4,d5,f5]@2 ~ [d4,a4,d5,f5] ~ [a3,e4,a4,db5] ~ [a3,e4,a4,db5] [a3,e4,a4,db5]@2 ~ [a3,e4,a4,db5] ~", // Dm A
  G: "[c4,g4,c5,e5] ~ [c4,g4,c5,e5] [c4,g4,c5,e5]@2 ~ [c4,g4,c5,e5] ~ [d4,a4,d5,f5] ~@2 a4 ~@2 e5 d4, ~@11 [d4,e5]@4 ~, ~@11 d5@2 d5@2 ~, ~@12 a4@3 ~", // C Dm Dsus2
  H: "[g3,d4,g4,bb4] ~ [g3,d4,g4,bb4]@3 ~ [g3,d4,g4] ~ [f3,c4,f4] ~ [c4,g4,c5] ~ [g3,d4,g4]@3 ~", // Gm G5 F5 C5 G5
  I: "[g3,d4] ~ [g3,d4]@3 ~ [g3,d4] ~ [f3,c4] ~ [f3,c4] ~ [g3,d4]@3 ~", // G5 F5 G5
  J: "[[g3,d4] ~ [g3,d4]@3 ~ [g3,d4] ~ [f3,c4] ~ [f3,c4] ~ [g3,d4]@15 ~@5]/2", // G5 F5 G5
})).s("gm_electric_guitar_clean").gain(0.2)

// chords · electric guitar clean · "Guitar 2"
const electric_guitar_clean_2 = note(`<
  ~@2 A ~@2 B C ~ A ~@2 B C D E D ~@2 A ~@2 B C D E D ~@2 A ~@2 F G C@2 H I J K L M N O@2
>`.pickRestart({
  A: "~@8 [c5,e5]@5 [bb4,d5]@2 ~", B: "[g3,d4] ~ [g3,d4]@3 ~ [g3,d4] ~ [f3,c4] ~ [f3,c4] ~ [g3,d4]@3 ~",
  C: "~@2 f5 [f5,bb5] bb5 [f5,bb5] f5 [f5,bb5] ~ [c5,f5] c5 [c5,f5] [d5,g5]@3 ~", // Bb5 F5 G5
  D: "~@2 d5 [d5,f5]@2 ~ [d5,f5] ~@3 bb4 [bb4,d5]@2 ~ [bb4,d5] ~, d4@5 ~@3 bb3@5 ~@3, ~ a4@3 ~@5 f4@4 ~@3", // Dm Bb
  E: "~@2 d5 [d5,f5]@2 ~ [d5,f5] ~@3 a4 [a4,db5]@2 ~ e5 ~, d4@5 ~@3 a3@5 ~@3, ~ a4@3 ~@5 e4@4 ~@3", // Dm A
  F: "[f3,c4] ~ [g3,d4]!6 [f3,c4] ~@3 [g3,d4]@3 ~", G: "[f3,c4] ~ [g3,d4]!6 [f3,c4] ~ c4 ~ [g3,d4]@3 ~",
  H: "db5 d5 g5 d5 f5 ~ g5 ~ f5 c5 bb4 g4 f4 d4 db4 c4", I: "bb3 g3@3 bb3 c4 db4 d4 f4 g4 [g4,bb4] ~ [bb4,d5] ~ g4 ~",
  J: "g4 ~ bb4 f5 ~ bb4 f5 bb4 ~ bb4 g4 ~ g4@2 d4 ~", K: "d4 f4 d4 f4 d4 ~ c4 bb3 g3 ~ g3 ~ g3@3 ~",
  L: "bb4 ~ f5 bb4@2 ~ d5 g5 d5 gb5 d5 bb4 c5 f4 g3 ~", M: "~@6 g4 ~ [bb4,d5] ~ g4 ~ f4 g4@2 ~",
  N: "[bb4,d5] ~ g4@2 ~@3 [bb4,d5] ~ g4 d4 db4 c4 bb3 g3 ~", O: "[g3 bb3 c4 db4 d4 f4!2 g4 c4 ~ bb3 ~ g3@15 ~@5]/2",
})).s("gm_electric_guitar_clean").gain(0.15)

// bass · electric bass finger · "Bass"
const bass = note("<~ A B A C D C A B A C D C E F E G A B A C D C E F E G A B A C H I C@2 D@7 J@2>".pickRestart({
  A: "g2 ~ g2@3 ~@3 f2 ~ f2 ~ bb2@3 ~", B: "g2 ~ g2@3 ~@3 c3 ~ c3 ~ bb2@3 ~", C: "c3 ~ c3@3 ~@3 f2 ~ f2 ~ g2@3 ~",
  D: "g2 ~ g2@3 ~@3 f2 ~ f2 ~ g2@3 ~", E: "d3@3 ~ d3 ~ d3 ~ bb2@3 ~ bb2 ~ bb2 ~",
  F: "d3@3 ~ d3 ~ d3 ~ a2@3 ~ a2 ~ a2 ~", G: "c3 ~ c3 ~ c3@3 ~ d3@5 ~@3", H: "f2 ~ g2@3 ~@3 f2 ~ f2 ~ g2@3 ~",
  I: "f2 ~ g2@3 ~@3 f2 ~ c3 ~ g2@3 ~", J: "[g2 ~ g2@3 ~@3 f2 ~ f2 ~ g2@15 ~@5]/2",
})).s("gm_electric_bass_finger").gain(0.2)

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

// drums · hihat
const hihat = s("hh").struct("<[x!4] [x!8]!41 [x!4 ~@4] ~>").gain(0.26)

// drums · mid tom
const mid_tom = s("mt").struct("<[x!4] [x!2]!42 ~>").gain(0.26)

// drums · crash
const crash = s("cr").struct("<~ A ~@11 A ~@3 A ~@5 A ~@11 B@7 C ~>".pickRestart({
  A: "x", B: "~@3 x", C: "~@4 x!3 ~",
})).gain(0.26)

stack(electric_guitar_clean, electric_guitar_clean_2, bass, snare, hihat, mid_tom, crash)

More by Nirvana