Strudelify

Helmet In The Bush

Korn

KeyA minorTempo170 bpm
0:00/0:00
// Helmet In The Bush — Korn
// 170 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 4 "Guitar noise" named as a guitar, played on electric guitar clean (its lead 2 sawtooth patch is not one)
// note: Full arrangement: all 160 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
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.

// chords · electric guitar clean · "Guitar noise"
const electric_guitar_clean = note("<~@104 A@8 ~@2 B@2 ~@20 A@8 ~@16>".pickRestart({
  A: "[~@2 c#2 ~, a1]/8", B: "c#2/2",
})).s("gm_electric_guitar_clean").gain(0.51).pan(0.2)

// bass · electric bass pick · "bass"
const bass = note(`<
  ~@8 A@8 ~@8 B C B C B C B C B C B C B C B C ~@8 D@8 A@8 B C B C B C B C B C B C B C B C ~@8 D@8 A@8 ~@15 E F@14 G@2
  F@6 G@2 A@8 H@8
>`.pickRestart({
  A: "a0!4 ~@4", B: "a0!4 ~@2 a0!2", C: "a0!3 ~@5", D: "~@2 a1 ~", E: "~@12 a0 ~ a0 ~",
  F: "[a0 ~ a0 ~ a0@4 a0@5 ~ a0@5 ~ a0@8 a0 ~ a0 ~]/2", G: "[a0 ~ a0 ~ a0@4 a0@5 ~ a0@5 ~ a0@8 ~@4]/2",
  H: "a0 a0@2 a0@4 ~",
})).s("gm_electric_bass_pick").gain(0.51)

// bass · overdriven guitar · "Guitar1"
const bass_2 = note(`<
  ~@8 A B A B A B A B C@8 D E D E D E D E D E D E D E D E C@8 ~@8 A B A B A B A B D E D E D E D E D E D E D E D E C@8
  ~@8 A B A B A B A B ~@15 F G H I H G H I H G H I H G H I H J H I H G H I K A B A B A B A B L M L M L M L M
>`.pickRestart({
  A: "[a0,a1,a2]!4 [c2,c3]@4", B: "[a0,a1,a2]!4 [b1,b2]@4", C: "[a1,a2]/8", D: "[a1,a2]!4 [c2,c3]@2 [a1,a2]!2",
  E: "[a1,a2]!3 ~@5", F: "~@12 [a0,a1] ~ [a0,a1] ~", G: "[a0,a1] ~ [a0,a1] ~ [a0,a1] ~ [a0,a1] ~ [a1,a2] ~@5 [a0,a1] ~",
  H: "a0 ~ [a0,a1] ~ [a1,a2] ~@7 [a0,a1] ~ [a0,a1] ~", I: "[a0,a1] ~ [a0,a1] ~ a0 ~ [a0,a1] ~ [a1,a2] ~@5 [a0,a1] ~",
  J: "a1@2 [a0,a1] ~ [a0,a1] ~ [a0,a1] ~ [a1,a2] ~@5 [a0,a1] ~, a2 ~, a0 ~@15", K: "a0 ~ [a0,a1] ~ [a1,a2] ~@11",
  L: "[a0,a1,a2]!2 ~ a0 [c2,c3]@4", M: "[a0,a1,a2]!2 ~ a0 [b1,b2]@4",
})).s("gm_overdriven_guitar").gain(0.51).pan(1)

// other · overdriven guitar · "Guitar2"
const overdriven_guitar = note(`<
  ~@4 A B A B C D C D C D C D E@8 ~@8 F G F G F G F G E@8 ~@8 C D C D C D C D ~@8 F G F G F G F G E@8 ~@8 C D C D C D C
  D ~@15 H I J K J I J K J I J K J I J K J I J K J I J K L C D C D C D C D M N M N M N M N
>`.pickRestart({
  A: "a1 ~ a1 ~ a1 ~ a1 ~ c2 ~ c#2 ~ c2 ~ b1 ~", B: "a1 ~ a1 ~ a1 ~ a1 ~ b1 ~ c2 ~ b1 ~ a#1 ~",
  C: "a1!4 [c1,c2,c3] [c#1,c#2,c#3] [c1,c2,c3] [b0,b1,b2]", D: "a1!4 [b0,b1,b2] [c1,c2,c3] [b0,b1,b2] [a#0,a#1,a#2]",
  E: "[a1,a2]/8", F: "[a1,a2]!4 [c2,c3]@2 [a1,a2]!2", G: "[a1,a2]!3 ~@5", H: "~@12 [a0,a1] ~ [a0,a1] ~",
  I: "[a0,a1] ~ [a0,a1] ~ [a0,a1] ~ [a0,a1] ~ [a1,a2] ~@5 [a0,a1] ~", // A
  J: "a0 ~ [a0,a1] ~ [a1,a2] ~@7 [a0,a1] ~ [a0,a1] ~", K: "[a0,a1] ~ [a0,a1] ~ a0 ~ [a0,a1] ~ [a1,a2] ~@5 [a0,a1] ~",
  L: "a0 ~ [a0,a1] ~ [a1,a2] ~@11", M: "a1!2 ~ a1 [c2,c3] [c#2,c#3] [c2,c3] [b1,b2]",
  N: "a1!2 ~ a1 [b0,b1,b2] [c1,c2,c3] [b0,b1,b2] [a#0,a#1,a#2]", // B C B A#
})).s("gm_overdriven_guitar").gain(0.51).pan(0)

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

// drums · snare
const snare = s("sd").struct("<~@8 [~ x]!152>").gain(0.41)

// drums · hihat
const hihat = s("hh").struct("x!8").gain(0.41)

// drums · crash
const crash = s("cr").struct("<~@40 [x!2]!16 ~@24 [x!2]!16 ~@40 [x!2]!8 ~@8 [~ x!3]!8>").gain(0.41)

// drums · tambourine
const tambourine = s("tb").struct("<~@24 [~ x ~ x]!16 ~@24 [~ x ~ x]!16 ~@56 [~ x ~ x]!8 ~@16>").gain(0.41)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<A B A B A B A B ~@16 C@16 ~@24 C@16 ~@56 C@8 ~@16>".pickRestart({
  A: "~@6 x!2", B: "x ~ x!3 ~@3", C: "~ x!3 ~ x!3",
})).gain(2.08)

// drums · triangle
const triangle = s("triangles:35").struct(`<
  ~@16
  [x ~ x!3 ~ x!2]!8
  ~@16
  [x ~ x!3 ~ x!2]!16
  ~@24
  [x ~ x!3 ~ x!2]!16
  ~@64
>`).gain(3.12)

stack(electric_guitar_clean, bass, bass_2, overdriven_guitar, kick, snare, hihat, crash, tambourine, cabasa, triangle)

More by Korn