Strudelify

Nookie

Limp Bizkit

KeyF♯ minorTempo100 bpm
0:00/0:00
// Nookie — Limp Bizkit
// 100 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 108 bars on a 16-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): guitar program 30.
setcpm(100/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.

// bass · electric bass pick
const bass = note(`<
  A@12 B C B C B C B C ~@4 B C B C B C B C A@8 B C B C B C B C A@8 D@3 E D@3 E D@3 E D@3 E D F G H D F G H D F G I A@8
  ~@16
>`.pickRestart({
  A: "a1@2 f#1@2 ~ g2@2 f#1 a1@2 f#1@2 g2@2 f#1@2", B: "~ f#3 ~ g2@3 ~@2 e2 f#2 c3 g2 f#2 ~@3, ~@2 c3@3 ~@11",
  C: "f#2 f#3 c3 g2@3 ~@2 e2 f#2 c3 g2 f#2 ~@3", D: "e1 f#1@15", E: "e1@4 a1@3 g1", F: "a1", G: "b1", H: "g1 f#1",
  I: "c#2 e2",
})).s("gm_electric_bass_pick").gain(0.66)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@4 A@2 B@2 A@2 B@2 ~@20 A@2 B@2 A@2 B@2 ~@8 A@2 B@2 A@2 B@2 ~@16 C D E F G H@3 C D E F A@2 B@2 A@2 B@2 ~@16
>`.pickRestart({
  A: "[e1,e2]@2 [f#1,f#2]@2 ~ [g2,g3]@3 [e1,e2]@2 [f#1,f#2]@2 [g2,g3]@2 ~@2", // E F# G E F# G
  B: "[e1,e2]@2 [f#1,f#2]@2 ~ [g2,g3]@3 [e1,e2]@2 [f#1,f#2]@2 [g2,g3]@3 ~", // E F# G E F# G
  C: "[f#1,f#2]@2 [f#2,f#3]@2 [f#1,f#2] [f#2,f#3]@2 f#1 f#3@2 [f#1,f#2] [f#2,f#3]@2 [f#1,f#2] [f#2,f#3]@2, ~@7 f#2@3 ~@6", // F#
  D: "[f#1,f#2]@2 [f#2,f#3]@2 [f#1,f#2] [f#2,f#3]@2 [f#1,f#2] [f#2,f#3]@2 [f#1,f#2] [f#2,f#3]@2 [f#1,f#2] [f#2,f#3]@2", // F#
  E: "f#1@2 f#3@2 f#1 f#3@2 [f#1,f#2] [f#2,f#3]@2 f#1 f#3@2 f#1 [f#2,f#3]@2, f#2@4 f#2@3 ~@3 f#2@4 ~@2", // F#
  F: "f#1@2 f#3@2 [f#1,f#2] f#3@2 f#1 f#3@2 f#1 f#3@2 [f#1,f#2] [f#2,f#3]@2, f#2@4 ~ f#2@5 f#2@3 ~@3", // F#
  G: "f#1@2 f#3@2 f#1 f#3@2 f#1 f#3@2 f#1 f#3@2 f#1 f#3@2, f#2@4 f#2@3 f#2@9",
  H: "[f#1@2 f#3@2 f#1 f#3@2 f#1 f#3@2 f#1 f#3@2 [f#1,f#2] f#3@2 f#1@2 [f#2,f#3]@2 f#1 f#3@2 f#1 f#3@2 f#1 f#3@2 f#1 f#3@2 f#1@2 f#3@2 f#1 f#3@2 f#1 f#3@2 f#1 f#3@2 ~ f#3 ~, f#2@4 f#2@3 f#2@3 f#2@3 ~ f#2@4 ~@2 f#2@3 f#2@3 f#2@3 f#2@7 f#2@3 f#2@3 f#2@3 [f#1,f#2]@2 ~]/3", // F#
})).s("gm_distortion_guitar").gain(0.32)

// other · electric guitar clean
const electric_guitar_clean = note("<~@12 A@8 B@4 A@8 ~@8 A@8 ~@44 C ~ C D E ~ E D E ~ E D E ~ E D>".pickRestart({
  A: "~@5 g3 f#3 c3 f#2@2 f#2 ~@4 f#2", B: "~@2 f#2 ~@2 f#2@2 ~ f#2 ~@2 f#2@2 ~ f#2 g2",
  C: "~@2 f#2@2 ~ f#2 ~@2 f#2@2 ~ f#2@2 ~ f#2 ~", D: "~@4 e2 f#2 ~@2", E: "~@2 f#2@2 ~ f#2 ~@2 f#2@2 ~ f#2@2 ~ f#2 g2",
})).s("gm_electric_guitar_clean").gain(0.5)

// chords · celesta
const celesta = note("<~@12 A ~ A ~ A ~ A ~@5 A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~@61>".pickRestart({
  A: "~ [f#5,g5]@3 ~@4", // Gmaj7
})).s("gm_celesta").gain(0.12)

// other · electric bass finger
const electric_bass_finger = note(`<
  ~@16
  [~@4 g4 ~@2 f#4 ~@2 f#4 ~@5]!4
  ~@8
  [~@4 g4 ~@2 f#4 ~@2 f#4 ~@5]!4
  ~@12
  [~@4 g4 ~@2 f#4 ~@2 f#4 ~@5]!4
  ~@44
  [e1 f#1 ~@6]!16
>`).s("gm_electric_bass_finger").gain(0.4)

// bass · lead 1 square
const bass_2 = note("<~@20 A@4 ~@84>".pickRestart({
  A: "f#1/4",
})).s("gm_lead_1_square").gain(0.4)

// bass · electric bass pick
const bass_3 = note("<~@56 A@3 B A@3 B A@3 B A@3 B A C D E A C D E A C D F ~@24>".pickRestart({
  A: "e1 f#1!15", B: "e1!8 a1!6 g1!2", C: "a1!16", D: "b1!16", E: "g1!8 f#1!8", F: "c#2!8 e2!8",
})).s("gm_electric_bass_pick").gain(0.18)

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

// drums · rim
const rim = s("rim").struct("<~@20 [x!16]!4 ~@84>").gain(0.52)

// drums · snare
const snare = s("sd").struct("<A@20 ~@4 A@7 B A@3 C A@11 B A@3 C A@4 ~@16 D@12 A@3 C A@20>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~ x!2", C: "~ x ~@2", D: "~@4 x ~@7 x ~@2 x",
})).gain(0.66)

// drums · hihat
const hihat = s("hh").struct("<A@4 ~@8 A@8 B@4 A@8 ~@8 A@8 ~@44 A@16>".pickRestart({
  A: "x!7 ~", B: "~ x ~@3 x ~@2",
})).gain(0.66)

// drums · low tom
const low_tom = s("lt").struct("<~@61 [~@7 x] ~ [~@14 x!2] ~@44>").gain(0.52)

// drums · open hat
const open_hat = s("oh").struct("<A@4 ~@8 A@8 ~@4 A@8 ~@8 A@8 ~@44 A@16>".pickRestart({
  A: "~@7 x",
})).gain(0.66)

// drums · mid tom
const mid_tom = s("mt").struct("<~@61 [~@11 x ~@4] ~@2 [~@14 x!2]!2 ~@42>").gain(0.52)

// drums · crash
const crash = s("cr").struct("<~@4 A@8 ~@20 A@8 ~@8 A@8 B C D E B C D E B C D E B C D E A@20 ~@16>".pickRestart({
  A: "x!8", B: "x ~@3 x ~@3 x ~ x!2 ~@2 x ~", C: "~ x ~@4 x ~ x ~@2 x ~@2 x ~", D: "~ x ~ x ~@4 x ~@2 x ~@2 x!2",
  E: "x ~@3 x ~ x ~ x!2 ~@2 x ~@2 x",
})).gain(0.59)

// drums · ride
const ride = s("rd").struct("<~@56 A B C D A B E D A B E D A B E D ~@36>".pickRestart({
  A: "~@11 x ~ x ~ x", B: "x ~ x!3 ~@2 x ~ x!2 ~ x!2 ~ x", C: "x ~ x ~ x ~@2 x ~ x!2 ~ x!2 ~ x",
  D: "~@2 x!2 ~ x!2 ~@3 x!2 ~ x!2 ~", E: "x ~ x ~ x!4 ~ x!2 ~ x!2 ~ x",
})).gain(0.33)

stack(
  bass, distortion_guitar, electric_guitar_clean, celesta, electric_bass_finger, bass_2, bass_3, kick, rim, snare,
  hihat, low_tom, open_hat, mid_tom, crash, ride
)

More by Limp Bizkit