Strudelify

Rocksteady

Vince Shrestha

KeyA minorTempo104 bpm
0:00/0:00
// Rocksteady — Vince Shrestha
// 104 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/6087807; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 40 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(104/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.

// other · electric guitar clean · "Electric Guitar"
const electric_guitar_clean = note(`<
  A B 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 A C A C
>`.pickRestart({
  A: "a4 ~ a4 ~@2 g4 ~ b4", B: "a4@2 ~@2 a4@2 ~@4 a4!2 a4@2 ~@2", C: "a4@2 ~@2 a4@2 ~@4 c5!2 c5@2 ~@2",
})).s("gm_electric_guitar_clean").gain(0.3)

// other · trombone
const trombone = note("<A B A B A B A B A B A B A B A B A B A B ~@4 A B A B A B A B A B A B A B A B>".pickRestart({
  A: "a3 ~ a3 ~@2 g3 ~ b3", B: "a3@2 ~@2 a3@2 ~@4 c4!2 c4@2 ~@2",
})).s("gm_trombone").gain(0.15)

// chords · piano · Am
const piano = note("a2@4 [a2,c4,e4,a4]@3 g2 a2!2 g2@2 e2@2 [c3,c4,e4,a4]@2").s("gm_piano").gain(0.29)

// drums · kick
const kick = s("bd").struct("x!2").gain(0.3).pan(0.2)

// drums · snare
const snare = s("sd").struct("~ x ~ x").gain(0.3).pan(0.2)

// drums · hihat
const hihat = s("hh").struct("x!8").gain(0.3).pan(0.2)

// drums · cowbell
const cowbell = s("cb").struct("x ~@3 x!2 ~ x ~@2 x ~@3 x ~").gain(0.3).pan(0.2)

stack(electric_guitar_clean, trombone, piano, kick, snare, hihat, cowbell)