Strudelify
Push The Feeling On (MK Dub Revisted Edit) cover art

Push The Feeling On

Push The Feeling On (MK Dub Revisted Edit)

Nightcrawlers

KeyB minorTempo123 bpm
0:00/0:00
// Push The Feeling On (MK Dub Revisted Edit) — Nightcrawlers
// 123 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 124 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/4)

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

// bass · synth bass 1 · "SYN BASS 1"
const bass = note(`<
  ~@8 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D ~@16 E@3 F E@3 F E@3 F E@3 F E@3 F E@3 F
  E@3 F ~@4 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D
>`.pickRestart({
  A: "b0@5 ~@3 b0@5 ~ f#0@4 ~@2 f#0@4 ~@2 f#0@3 ~@3", B: "b0@5 ~@3 b0@4 ~@2 d1@4 ~@2 d1@3 ~@3 d1@3 ~@3",
  C: "b0@4 ~@4 b0@4 ~@2 f#0@3 ~@3 f#0@3 ~@3 f#0@2 ~@4", D: "b0@5 ~@3 b0@3 ~@3 d1@3 ~@3 d1@3 ~@3 d1@2 ~@4",
  E: "a0 ~ b0 ~ f#1 ~ f#1 ~ g1 ~@2 d1 ~@2 d1 ~", F: "a0 ~ b0 ~ d1 ~ d1 ~ f#1 ~@2 g1 ~@2 d1 ~",
})).s("gm_synth_bass_1").gain(0.36)

// other · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
  ~@4 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 ~@12 C D E F C D E F C D E F C D E
  F C D E F C D E F C D E F C D E F ~@4 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
>`.pickRestart({
  A: "a2@2 b2@3 ~@3 b2@3 ~@3 f#3@3 ~@3 f#3@3 ~@3 f#3@3 ~@3", B: "f#3@2 g3@2 ~@4 g3@3 ~@3 d3@3 ~@3 d3@3 ~@3 d3@3 ~@3",
  C: "a2@3 ~ b2 ~@3 f#3@3 ~@5 g3@4 ~@2 d3@3 ~@3 d3@2 ~@2", D: "a2@4 b2@2 ~@2 f#3@3 ~@5 g3@3 ~@3 d3@3 ~@3 d3@3 ~",
  E: "a2@4 b2@2 ~@2 f#3@3 ~@5 g3@3 ~@3 d3@3 ~@3 d3@2 ~@2", F: "a2@3 ~ b2@2 ~@2 d3@4 ~@4 f#3@4 ~@2 g3@4 ~@2 d3@3 ~",
})).s("gm_percussive_organ").gain(0.5).pan(0.2)

// other · lead 8 bass lead · "BASS&LEAD"
const lead_8_bass_lead = note(`<
  ~@20 A B A B A B A B ~@8 A B A B A B A B A B A B A B A B ~@20 A B A B A B A B ~@28 A B A B A B A B ~@8
>`.pickRestart({
  A: "b3@2 ~@2 b3@2 ~@2 d4@3 ~ e4@2 ~@2 a4@5 ~ f#4@4 ~@2 f#4@2 ~@2",
  B: "b3 ~@3 b3@2 ~@2 d4@3 ~ e4@2 ~@2 c#4@4 ~@2 c#4@4 ~@2 c#4@3 ~",
})).s("gm_lead_8_bass_lead").gain(0.4).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~@8 [x!4]!36 [x ~@2 x!2 ~ x ~ x ~@2 x!2 ~ x ~]!8 ~@8 [x!4]!28 ~@4 [x!4]!32>").gain(0.71)

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

// drums · clap
const clap = s("cp").struct("~ x ~ x").gain(0.71)

// drums · hihat
const hihat = s("hh").struct("<[~ x ~ x ~ x ~ x]!4 [x!8]!4 ~@4 [~ x ~ x ~ x ~ x]!44 [x!8]!4 [~ x ~ x ~ x ~ x]!64>")
  .gain(0.71)

// drums · open hat
const open_hat = s("oh").struct("<~@8 [x!4]!4 ~@48 [x!4]!28 ~@36>").gain(0.57)

// drums · tambourine
const tambourine = s("tb").struct("<[~ x ~ x ~ x ~ x]!4 ~@8 [~ x ~ x ~ x ~ x]!112>").gain(0.57)

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

// drums · shaker
const shaker = s("sh").struct(`<
  ~@4 A ~ A ~ A ~ A B C D C E C D C E C D C E C D C E C D C E C D C E C D C E C D C E C D C E C D C F ~@4 A ~ A ~ A ~ A
  B C D C E C D C F ~@7 B C D C E C D C F ~@3 B C D C E C D C E C D C E C D C E C D C E C D C E C D C E C D C F
>`.pickRestart({
  A: "x!2 ~@14", B: "~@31 x", C: "x ~ x!2 ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~ x ~ x ~@3 x",
  D: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~ x ~ x ~@3 x", E: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~ x ~ x",
  F: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~ x ~@2",
})).gain(0.57)

// drums · shaker · soft notes
const shaker_soft = s("sh").struct(`<
  ~@12 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B ~@12 A@3 B A@3 B ~@8 A@3 B A@3 B ~@4 A@3 B A@3 B A@3
  B A@3 B A@3 B A@3 B A@3 B A@3 B
>`.pickRestart({
  A: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@7 x ~@2", B: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@6",
})).gain(0.29)

stack(
  bass, percussive_organ, lead_8_bass_lead, kick, snare, clap, hihat, open_hat, tambourine, crash, shaker, shaker_soft
)