Strudelify

Right Here, Right Now

Fatboy Slim

KeyB♭ minorTempo125 bpm
0:00/0:00
// Right Here, Right Now — Fatboy Slim
// 125 bpm, 4/4, key A# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 181 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(125/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 finger
const bass = note(`<
  ~@40 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 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B ~@8 A@3 B A@3 B
  ~@28 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B ~@9
>`.pickRestart({
  A: "bb1 ~ bb1@2 ~@2 bb1 ~ bb1 ~ f1@2 ~@4", B: "bb1 ~ bb1@2 ~@2 bb1@2 ab1 ~ ab1@2 g1 ~ g1@2",
})).s("gm_electric_bass_finger").gain(0.5)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@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 ~@8 A B A B A B A B A B A B A B A B ~@8 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 ~@24 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@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 D@8 ~
>`.pickRestart({
  A: "bb2 c3 db3 c3 eb3 db3 c3 bb2", B: "ab2 bb2 c3 bb2 db3 c3 bb2 ab2", C: "db2/4", D: "db2/8",
})).s("gm_string_ensemble_1").gain(0.16)

// other · synth strings 1
const synth_strings_1 = note(`<
  ~@6 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 ~@8 A B A B A B A B A B A B A B A B ~@8 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 ~@24 A B A B 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
  A B A B A B A B ~@9
>`.pickRestart({
  A: "bb4 c5 db5 c5 eb5 db5 c5 bb4", B: "ab4 bb4 c5 bb4 db5 c5 bb4 ab4",
})).s("gm_synth_strings_1").gain(0.22)

// other · string ensemble 2
const string_ensemble_2 = note(`<
  ~@24 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 ~@8 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 ~@32
  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 B A B A B A B A B A B A B A B D@8 ~
>`.pickRestart({
  A: "bb5@3 ab5", B: "db6 c6 bb5 ab5", C: "[db1,db2,db3]/4", D: "[db1, db3@27 ~@5, db2 ~]/8",
})).s("gm_string_ensemble_2").gain(0.25)

// chords · synth strings 1
const synth_strings_1_2 = note("<A@4 B@28 ~@8 B@16 ~@8 B@8 ~@8 B@16 ~@24 B@24 ~@4 B@24 ~@9>".pickRestart({
  A: "[bb2 c3 ab2 g2, bb1]/2", B: "[bb2 c3 ab2 g2 bb2 c3 ab2 g2, bb1]/4",
})).s("gm_synth_strings_1").gain(0.5)

// other · synth strings 1
const synth_strings_1_3 = note(`<
  ~@10 A B A B A B A B A B A B A B A B A B A B A B C@7 D A B A B A B A B A B A B A B A B ~@8 A B A B A B A B ~@16 E@8
  ~@24 A B A B A B A B A B A B A B A B F@8 G@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 H@4 ~@5
>`.pickRestart({
  A: "bb5 c6 db6 c6 eb6 db6 c6 bb5", B: "ab5 bb5 c6 bb5 db6 c6 bb5 ab5",
  C: "[bb1,bb2] ~@3 [bb1,bb2] ~@3 [bb1,bb2] ~@3 [bb1,bb2] ~@3", // Bb
  D: "[bb1,bb2] ~@3 [bb1,bb2] ~@3 [bb1,bb2] ~@3 [bb1,bb2] ~@3, [db3,db4]@15 ~", E: "[bb3,bb4,bb5,bb6]/8",
  F: "[~ c6 db6 c6 eb6 db6 c6 ~ ab5 ~ c6 ~ db6 c6 ~ ab5 ~ c6 db6 c6 eb6 db6 c6 ~ ab5 ~ c6 ~ db6 c6 ~ ab5 ~ c6 db6 c6 eb6 db6 c6 ~ ab5 ~ c6 ~ db6 c6 ~ ab5 ~ c6 db6 c6 eb6 db6 c6 ~ ab5 ~ c6 ~ db6 c6 ~ ab5, [bb3,bb4,bb6], bb5@7 bb5@2 bb5@2 bb5@3 bb5@2 bb5@7 bb5@2 bb5@2 bb5@3 bb5@2 bb5@7 bb5@2 bb5@2 bb5@3 bb5@2 bb5@7 bb5@2 bb5@2 bb5@3 bb5@2]/8", // Bb
  G: "[~ db1, db2]/4", H: "[db2, db1 ~]/4",
})).s("gm_synth_strings_1").gain(0.25)

// other · percussive organ
const percussive_organ = note(`<
  ~@32 A@7 B C D C D C D C D C D C D C D C D ~@8 C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D C D
  C D C D ~@40 E F@2 G ~@24 E F@2 G ~@5
>`.pickRestart({
  A: "[bb1,bb2] ~@3 [bb1,bb2] ~@3 [bb1,bb2] ~@3 [bb1,bb2] ~@3", // Bb
  B: "[bb1,bb2] ~@3 [bb1,bb2] ~@3 [bb1,bb2] ~@3 [bb1,bb2] ~@3, [db3,db4]", C: "bb2 ab2", D: "g2 ab2",
  E: "db3@2 ~@2 db3@3 ~ db3@3 ~ db3@3 ~", F: "db3@3 ~ db3@3 ~ db3@3 ~ db3@2 ~@2",
  G: "db3@3 ~ db3@2 ~@2 db3@3 ~ db3@3 ~",
})).s("gm_percussive_organ").gain(0.46)

// other · lead 8 bass lead
const lead_8_bass_lead = note(`<
  ~@31 A@7 B@2 ~@16 C D C E C@2 D C ~@8 C D C E C@2 D C ~@24 C D C E C@2 D C@2 D C E C@2 D C ~@15 A@7 B@2 F@2 G ~@9 C D
  C E C@2 D H@7 B@2 F@2 G ~@6
>`.pickRestart({
  A: "[~@14 bb4@5 ~@3 bb4@6 ~@2 bb4@5 ~@3 bb4@5 ~@3 bb4@6 ~@2 bb4@6 ~@2 bb4@6 ~@2 bb4@5 ~@3 bb4@5 ~@3 bb4@6 ~@2 bb4@5 ~@3 bb4@6 ~@2 bb4@2]/7",
  B: "[~@3 bb4@3 ~ bb4@3 ~ bb4@3 ~@2]/2", C: "bb4 ~ ab4 bb4 ~@2 c5 ~ bb4 ~ ab4 ~ f4@2 ~@2",
  D: "bb4 ~ ab4 bb4 ~@2 c5 ~ bb4 ~ ab4 ~ f4 ~@3", E: "bb4 ~ ab4 bb4 ~@2 c5 ~ bb4 ~ ab4 ~ f4@2 db5 ~",
  F: "bb4@3 ~ bb4@3 ~ bb4@3 ~ bb4@3 ~", G: "bb4 ~ bb4 ~@5",
  H: "[bb4 ~ ab4 bb4 ~@2 c5 ~ bb4 ~ ab4 ~@3 bb4@5 ~@3 bb4@6 ~@2 bb4@5 ~@3 bb4@5 ~@3 bb4@6 ~@2 bb4@6 ~@2 bb4@6 ~@2 bb4@5 ~@3 bb4@5 ~@3 bb4@6 ~@2 bb4@5 ~@3 bb4@6 ~@2 bb4@2]/7",
})).s("gm_lead_8_bass_lead").gain(0.22)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@96
  [bb3@3 ~ bb3@3 ~ bb3@3 ~ bb3@3 ~, ~@8 eb4 ~@7]
  [bb3@3 ~ bb3@3 ~ bb3@3 ~ bb3@3 ~]!3
  [bb3@3 ~ bb3@3 ~ bb3@3 ~ bb3@3 ~, ~@8 eb4 ~@7]
  [bb3@3 ~ bb3@3 ~ bb3@3 ~ bb3@3 ~]!3
  ~@77
>`).s("gm_overdriven_guitar").gain(0.31)

// drums · kick
const kick = s("bd").struct("<~@40 [x!2 ~ x!3 ~@2]!64 x!8 [x!2 ~ x!3 ~@2]!8 ~@28 [x!2 ~ x!3 ~@2]!24 ~@9>").gain(0.46)

// drums · snare
const snare = s("sd").struct(`<
  ~@39 A B@3 C B@3 C B@3 C B@3 D E B@2 C B@3 D E B@2 C B@3 D E B@2 C B@3 D E B@2 C B@3 C B@3 C B@3 D E B@2 C B@3 D F G@7
  C@7 D H ~@26 I E B@2 C B@3 C B@3 C B@3 C B@3 C B@3 D H ~@8
>`.pickRestart({
  A: "~ x ~ x!13", B: "~ x ~ x", C: "~@2 x ~@3 x!2", D: "~@4 x ~@3 x!8", E: "x!2 ~ x", F: "x ~ x ~@4 x",
  G: "~@2 x ~@4 x", H: "x", I: "~@8 x!8",
})).gain(0.46)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@36 [x!8]!3 [x!2 ~@6] ~@141>").gain(0.15)

// drums · clap
const clap = s("cp").struct("<~@24 [~ x ~ x]!8 ~@149>").gain(0.51)

// drums · hihat
const hihat = s("hh").struct("<~@16 A@16 ~@8 A@64 B C B C B C B C A@8 ~@8 A@16 ~@4 A@24 ~@9>".pickRestart({
  A: "x!8", B: "~@3 x ~@4", C: "~@3 x",
})).gain(0.46)

// drums · low tom
const low_tom = s("lt").struct("<~@40 A@64 B ~ B ~ B ~ B ~ C A C A C A C A ~@28 A@24 ~@9>".pickRestart({
  A: "~@7 x", B: "~@3 x", C: "~@6 x!2",
})).gain(0.46)

// drums · open hat
const open_hat = s("oh").struct("<~@104 [~ x]!16 ~@61>").gain(0.46)

// drums · crash
const crash = s("cr").struct(`<
  ~@16 A ~@7 A ~@3 A ~@3 A ~@6 B A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@7 A ~@3 A ~@3 C D C D C D C D A ~@7
  E ~ F ~ F ~ F ~ E ~ F ~ F ~ F ~ A ~@7 A ~@7 A ~@11 A ~@3 A ~@3 A ~@3 A ~@3 C D C D C D C D ~@9
>`.pickRestart({
  A: "x", B: "~@3 x", C: "x ~@2 x ~@4", D: "~@5 x ~@2", E: "x ~@6 x", F: "~@7 x",
})).gain(0.46)

// drums · high tom
const high_tom = s("ht").struct("<~@40 A@52 B A@11 ~ C ~ C ~ C ~ C A B A B A B A B ~@28 A@20 B A@3 ~@9>".pickRestart({
  A: "~@5 x ~@2", B: "~@3 x ~ x ~@2", C: "~@3 x ~@4",
})).gain(0.46)

// drums · ride
const ride = s("rd").struct("<~@40 A@64 ~ B ~ B ~ B ~ B A C A C A C A C ~@28 A@24 ~@9>".pickRestart({
  A: "x!2", B: "~@5 x ~@2", C: "x ~@3 x!2 ~@2",
})).gain(0.51)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@40 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 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B C D C D C D C D
  A@3 B A@3 B ~@28 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B ~@9
>`.pickRestart({
  A: "x!8", B: "x ~ x ~ x ~ x ~ x ~ x!3 ~ x ~", C: "~@5 x ~@2", D: "~@7 x",
})).gain(0.31)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@16 A@16 ~@8 A@64 ~@8 A@8 ~@8 A@16 ~@4 A@24 ~@9>".pickRestart({
  A: "x!4",
})).gain(2.34)

// drums · shaker
const shaker = s("sh").struct("<~@16 A@16 ~@8 A@64 ~@8 A@8 ~@8 A@16 ~@4 A@24 ~@9>".pickRestart({
  A: "~ x ~ x ~ x ~ x",
})).gain(0.46)

stack(
  bass, string_ensemble_1, synth_strings_1, string_ensemble_2, synth_strings_1_2, synth_strings_1_3, percussive_organ,
  lead_8_bass_lead, overdriven_guitar, kick, snare, snare_soft, clap, hihat, low_tom, open_hat, crash, high_tom, ride,
  tambourine, cabasa, shaker
)

More by Fatboy Slim