Strudelify

Twist

Korn

KeyA minorTempo160 bpm
0:00/0:00
// Twist — Korn
// 160 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 2 "Guitar2" distortion guitar (copy of ch 1 "Guitar1" distortion guitar)
// note: Full arrangement: all 32 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// bass · distortion guitar · "Guitar1"
const bass = note("<A B A B A B A B A B A B A B A B C@4 A B A B A B A B A C D E>".pickRestart({
  A: "[a0,a1]!3 ~ g2@3 [a0,a1]", B: "[a0,a1]!3 ~ g2@3 ~", C: "[a0,a1]!3 ~ g2@4", D: "[a0,a1] ~ [a0,a1] ~ g2@3 [a0,a1]",
  E: "[a0,a1]!3 ~@5", // A
})).s("gm_distortion_guitar").gain(0.41)

// bass · slap bass 1 · "Bass"
const bass_2 = note("<A B A B A B A B A B A B A B A B@5 A B A B A B A B C D E D>".pickRestart({
  A: "a0@2 a0@2 a0@3 ~@7 a0@2", B: "a0@2 a0@2 a0@3 ~@9", C: "a0!3 ~@4 a0", D: "a0!3 ~@5", E: "a0 ~ a0 ~@4 a0",
})).s("gm_slap_bass_1").gain(0.36)

// drums · kick
const kick = s("bd").struct(`<
  [x!3 ~@5]!15
  [x!3 ~ x ~@3]
  [x!3 ~@5]!11
  [x!3 ~ x ~@3]
  [x!3 ~@5]!2
  [x ~ x ~@4 x]
  [x!3 ~@5]
>`).gain(0.41)

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

// drums · low tom
const low_tom = s("lt").struct("<[x!3 ~@3 x!2]!15 [x!3 ~@5]!5 [x!3 ~@3 x!2]!7 [x!3 ~@5]!3 [x ~ x ~@4 x] [x!3 ~@5]>")
  .gain(0.41)

// drums · hihat
const hihat = s("hh").struct("<~ A@3 ~ A@3 ~ A@3 ~ A@2 B ~@5 A@3 ~ A@2 B ~@2 C D>".pickRestart({
  A: "~@3 x ~@4", B: "~ x", C: "~@7 x", D: "x!3 ~@5",
})).gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<[~@4 x!2 ~@2]!15 ~@5 [~@4 x!2 ~@2]!7 ~@5>").gain(0.41)

// drums · open hat
const open_hat = s("oh").struct("<~@15 [~@3 x] [x!4]!4 ~@7 [~@3 x] [x!4]!3 ~>").gain(0.41)

// drums · crash
const crash = s("cr").struct("<~@16 x ~@11 x ~@3>").gain(0.41)

stack(bass, bass_2, kick, snare, low_tom, hihat, mid_tom, open_hat, crash)

More by Korn