Strudelify

Eruption

Van Halen

KeyD majorTempo122 bpm
0:00/0:00
// Eruption — Van Halen
// 122 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 3/4 at bar 29, 4/4 at bar 29, 5/4 at bar 40, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: ch 4 "Doubled Lead Guitar" named as a guitar, played on overdriven guitar (its lead 5 charang patch is not one)
// note: duplicate parts dropped: ch 1 "Lead Guitar" distortion guitar (copy of ch 4 "Doubled Lead Guitar" overdriven guitar); ch 8 "echo (space voice)" pad choir (copy of ch 7 "echo (pad 7 halo)" pad halo); ch 9 "echo (sweep)" pad sweep (copy of ch 7 "echo (pad 7 halo)" pad halo)
// note: Full arrangement: all 52 bars on a 24-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): Lead Guitar, Harmonics, Rythym Guitar.
setcpm(122/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 · guitar harmonics · "Harmonics"
const guitar_harmonics = note("<~@44 [~@5 g#1 ~@5 b2 ~@12] ~@7>").s("gm_guitar_harmonics").gain(0.12).pan(0.3)

// chords · distortion guitar · "Rythym Guitar"
const distortion_guitar = note("<~@8 A@3 ~@33 B ~@7>".pickRestart({
  A: "[~@3 d2@2 f#3@48 ~@19]/3", B: "~@5 g#1 ~@5 b2 ~@12",
})).s("gm_distortion_guitar").gain(0.19).pan(0.8)

// bass · electric bass finger · "bass"
const bass = note("<A@5 ~@2 B@4 ~@41>".pickRestart({
  A: "[~@20 a1@97 ~@3]/5", B: "[~@13 a1@8 g1@8 d1@48 ~@19]/4",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · pad halo · "echo (pad 7 halo)"
const pad_halo = note("<~@46 A@5 ~>".pickRestart({
  A: "[d3,a3]/5", // D5
})).s("gm_pad_halo").gain(0.33).pan(0.6)

// drums · kick
const kick = s("bd").struct("<[~@5 x ~@5 x!2 ~@3 x!2 ~@6] ~@6 [~@13 x!2 ~@6 x!2 ~] [~@5 x ~@18] ~@43>").gain(0.59)

// drums · snare
const snare = s("sd").struct("<[~@5 x!2 ~@2 x!2 ~@3 x!2 ~@8] ~@6 [~@7 x ~@3 x] [~ x ~@2] ~@43>").gain(0.59)

// drums · low tom
const low_tom = s("lt").struct("<~@7 [~@7 x ~@3 x] [~ x ~@2] ~@43>").gain(0.59)

// drums · crash
const crash = s("cr").struct("<[~@10 x!2] [~ x ~@3 x ~@4 x ~@4 x ~@8] ~@6 [~@7 x!2 ~ x ~@2 x ~@3 x ~@3 x ~@2] ~@43>")
  .gain(0.59)

stack(guitar_harmonics, distortion_guitar, bass, pad_halo, kick, snare, low_tom, crash)

More by Van Halen