Strudelify

Kick the PA (feat. The Sneaker Pimps)

Korn

KeyA majorTempo100 bpm
0:00/0:00
// Kick the PA (feat. The Sneaker Pimps) — Korn
// 100 bpm, 4/8, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 161 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/2)

// 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 · overdriven guitar
const overdriven_guitar = note(`<
  ~@12 A@16 ~@16 A@8 ~@16 A@8 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 ~@8 B@2 C@2 B@2 C@2 B@2 C@2 ~@20 A@28 D
>`.pickRestart({
  A: "[a1@4 a1 ~ a1@4 a1 ~ a1@4]/2", B: "[[a2,e3,a3]@3 [g#2,d#3,g#3]@5]/2",
  C: "[[e2,b2,e3]@3 [f2,c3,f3]@2 [d#2,a#2,d#3]@2 [b1,f#2,b2]]/2", D: "a1@4 a1 ~@3",
})).s("gm_overdriven_guitar").gain(0.64)

// bass · electric bass finger
const bass = note(`<
  ~@12 A@4 B@6 A@2 B@4 ~@16 B@8 ~@16 B@8 C@2 D@2 C@2 D@2 C@2 D@2 C@2 D@2 ~@8 C@2 D@2 C@2 D@2 C@2 D@2 C@2 D@2 C@2 D@2 C@2
  D@2 C@2 D@2 C@2 D@2 B@12 A@4 B@12 ~
>`.pickRestart({
  A: "[a0@2 ~ a0@2 ~@3]/2", B: "[a0@4 a0 ~ a0@4 a0 ~ a0@4]/2", C: "[a1@3 g#1@5]/2", D: "[e1@3 f1@2 d#1@2 b0]/2",
})).s("gm_electric_bass_finger").gain(0.64)

// bass · lead 2 sawtooth
const bass_2 = note(`<
  ~@28 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 ~@8 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 ~@8 C@2 D@2 C@2 D@2 C@2 D@2 C@2 D@2 ~@8 C@2
  D@2 C@2 D@2 C@2 D@2 C@2 D@2 C@2 D@2 C@2 D@2 C@2 D@2 C@2 D@2 ~@29
>`.pickRestart({
  A: "[a1@3 g#1@2 d1@2 a1]/2", B: "[d#2@3 a1@2 d1@3]/2", C: "[a1@3 g#1@5]/2", D: "[e1@3 f1@2 d#1@2 b0]/2",
})).s("gm_lead_2_sawtooth").gain(0.64)

// other · string ensemble 1
const string_ensemble_1 = note("<~ A ~ A ~ A ~ A ~ A ~ A ~@16 B@16 ~@8 B@16 ~@30 C@2 ~@61>".pickRestart({
  A: "~@3 [f#5,g#5]", B: "[a4@3 a5@6 e5@2 d#5@2 a4@6 a5@6 e5@2 d#5@2 a4@3]/8", C: "[a#4@3 a4@5]/2",
})).s("gm_string_ensemble_1").gain(0.64)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A B A B A B C ~ C ~ A B A B A B C ~ A B A B A B A B A B A B A B A B A B ~@2 A B A B A B A B A B A B A B A
  B A B A B A B ~@2 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B ~@2 A B A B A B A B A B A B A B A B A B
  A B A B A B A B A B A B A B A B A B A B A B A B A B C ~ C ~ A B A B A B A B A B A B ~
>`.pickRestart({
  A: "x!2 ~ x", B: "x!2 ~@2", C: "x ~@2 x",
})).gain(0.64)

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

// drums · low tom
const low_tom = s("lt").struct("<~@12 A ~ A ~@7 A ~@121 A ~ A ~@14>".pickRestart({
  A: "x ~@2 x",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct(`<
  A@12 ~@4 A B A B A B ~@2 A B A B A@14 ~@2 A C A C A C A C A@14 ~@2 A C A C A C A C A@17 C A C A C ~@2 A@33 B A B A B A
  B A B A B ~@4 A B A B A B A B A B A B ~
>`.pickRestart({
  A: "x!4", B: "x!2", C: "x ~ x!2",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@17 A ~ A ~ A ~@3 A ~ A ~@17 A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~@17 A ~ A ~ A ~@35 A ~ A ~ A ~ A ~ A ~ A ~@5 A ~ A ~ A
  ~ A ~ A ~ A ~
>`.pickRestart({
  A: "~ x ~@2",
})).gain(0.64)

stack(overdriven_guitar, bass, bass_2, string_ensemble_1, kick, snare, low_tom, hihat, open_hat)

More by Korn