Strudelify
Got The Life cover art

1998 · Follow The Leader

Got The Life

Korn

KeyE majorTempo125 bpm
0:00/0:00
// Got The Life — Korn
// 125 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(125/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.

// other · overdriven guitar
const overdriven_guitar = note("<A B@6 C A B@6 C ~@22 A B@6 C A B@6 D@2 ~@3 E@4 A B@6 C A B@6 C>".pickRestart({
  A: "[f#3,f#4]", B: "[[e3,e4]@2 ~ [g3,g4]@2 [d3,d4]!2 [d3,d4]@3 [f#3,f#4]@6]/2", C: "[e3,e4]@2 ~ [g3,g4]@2 [d3,d4]!3",
  D: "[[e3,e4]@2 ~ [g3,g4]@2 [d3,d4]!2 [d3,d4]@5 ~@4]/2", E: "~@2 d5@2 d#5@2 d5@2 b3 ~@7",
})).s("gm_overdriven_guitar").gain(0.52)

// other · overdriven guitar
const overdriven_guitar_2 = note(`<
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@23 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
>`.pickRestart({
  A: "~@2 [e3,e4] ~@5", // E
})).s("gm_overdriven_guitar").gain(0.52)

// bass · slap bass 2
const bass = note(`<
  A B A B A B A B A B A B A B A B C@3 D C@7 E@4 C@7 A B A B A B A B A B A B A B A F@2 ~@7 A B A B A B A B A B A B A B A
  B
>`.pickRestart({
  A: "b2!8", B: "a2!3 f2!3 e2!2", C: "b2@2 a2!2 a2@2 b2@2 a2!2 a2@2 a2@2 a2@2", D: "b2@2 a2!2 a2@2 b2@2 ~@8",
  E: "[a2,d3]@2 [e2,a2] ~ [g2,c3]@2 [a2,d3]@2 [e2,a2] ~@7", F: "[a2!3 f2!3 e2 e2@5 ~@4]/2",
})).s("gm_slap_bass_2").gain(0.8)

// chords · distortion guitar
const distortion_guitar = note(`<
  A B A B A B A B A B A B A B A B ~@22 A B A B A B A B A B A B A B A C@2 ~@7 A B A B A B A B A B A B A B A B
>`.pickRestart({
  A: "[b2,b3,e4]", B: "[a2,a3]@2 [a2,a3] [f2,f3]@2 [f2,f3] [e2,b2,e3]!2",
  C: "[[a2,a3]@2 [a2,a3] [f2,f3]@2 [f2,f3] [e2,b2,e3] [e2,b2,e3]@5 ~@4]/2", // A F E5
})).s("gm_distortion_guitar").gain(0.52)

// other · pad choir
const pad_choir = note(`<
  A B A B A B A B A B A B A B A B ~@22 A B A B A B A B A B A B A B A C@2 ~@7 A B A B A B A B A B A B A B A B
>`.pickRestart({
  A: "b3@2 b3@2 b3@2 b3!2", B: "a3@2 a3 c4@2 c4 g3!2", C: "[a3@2 a3 c4@2 c4 g3 g3@5 ~@4]/2",
})).s("gm_pad_choir").gain(0.8)

// other · trombone
const trombone = note(`<
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@7 B ~@2 B ~@7 B ~@2 B ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A
>`.pickRestart({
  A: "~@2 d4 ~@5", B: "~@7 a#2 ~@8",
})).s("gm_trombone").gain(0.8)

// other · lead 4 chiff
const lead_4_chiff = note("<~@54 A B A B A B A C@8 ~@9>".pickRestart({
  A: "b2!8", B: "a2!3 f2!3 e2!2", C: "[a2!3 f2!3 e2 e2@57]/8",
})).s("gm_lead_4_chiff").gain(0.8)

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

// drums · snare
const snare = s("sd").struct("<A@7 B A@15 C A@6 D A@3 C A@10 B A@8 ~@8 A@7 B A@8>".pickRestart({
  A: "~ x ~ x", B: "x ~@2 x ~ x!2 ~ x ~@2 x ~ x!2 ~", C: "~@5 x ~@7 x ~@2", D: "~@2 x ~ x!3 ~",
})).gain(0.8)

// drums · hihat
const hihat = s("hh").struct("<~@16 A@3 B A@3 C A@3 ~@3 D A@3 C A@3 ~@16 E@8 ~@16>".pickRestart({
  A: "~ x!2 ~ x ~@3", B: "~@2 x ~@3 x!2 ~ x ~@2 x ~@3", C: "x!16", D: "~@10 x ~@2 x ~@2", E: "~ x ~ x ~ x ~ x",
})).gain(0.8)

// drums · open hat
const open_hat = s("oh").struct(`<
  A B A B A B A ~ A B A@2 B A B A C@3 D C@3 E C@3 F@3 G C@3 E C@3 A B A B A B A ~ A B A@2 B A B A ~@8 A B A B A B A ~ A
  B A@2 B A B A
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~ x!2 ~", C: "~@6 x!2", D: "~@5 x ~ x", E: "~@7 x ~@7 x", F: "x!8",
  G: "x ~ x ~ x ~ x!2 ~@6 x ~",
})).gain(0.8)

// drums · crash
const crash = s("cr").struct(`<
  ~@2 A ~ A ~@3 A ~@4 A ~ A@4 ~ A@3 ~ A@3 ~@4 A@3 ~ A@3 ~@2 A ~ A ~@3 A ~@4 A ~ A ~@10 A ~ A ~@3 A ~@4 A ~ A
>`.pickRestart({
  A: "x",
})).gain(0.8)

// drums · ride bell
const ride_bell = s("rd").struct("<~@19 [~@6 x!2 ~@8] ~@58>").gain(0.8)

// drums · agogo bells
const agogo_bells = s("agogo:4").struct("<~@19 [~@6 x!2 ~@8] ~@58>").gain(5.1)

stack(
  overdriven_guitar, overdriven_guitar_2, bass, distortion_guitar, pad_choir, trombone, lead_4_chiff, kick, snare,
  hihat, open_hat, crash, ride_bell, agogo_bells
)

More by Korn