Strudelify
KeyF♯ minorTempo125 bpm
0:00/0:00
// Boys — Britney Spears
// 125 bpm, 4/4, key F# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 14 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(125/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 · electric bass finger
const bass = note("<A B C D E F G A H I D J F K>".pickRestart({
  A: "f#2 ~@6 f#2 ~@5 f#2 ~@2 f#2 ~ g#2@3 a2@3", B: "~@4 f#2 ~@6 f#2 ~@5 f#2 ~@2 f#2 ~ g#2@2",
  C: "~ a2@3 ~ f#1!2 ~ f#2 ~@6 f#2 ~@5 f#2 ~@2", D: "f#2 ~ g#2@3 a2@3 ~@4 f#2 ~@6 f#2 ~@4",
  E: "~ f#2 ~@2 f#2@2 a2@3 a2@2 g#2@2 f#2@2 ~ f#2 ~@6 f#2", F: "~@5 f#2 ~@2 f#2 ~ g#2@3 a2@3 ~@4 f#2 ~@3",
  G: "~@3 f#2 ~@5 f#2 ~@2 f#2 ~ g#2@3 a2@3 ~ f#1!2 ~", H: "~@4 f#2 ~@6 f#2 ~@5 f#2 ~@2 f#2@2 a2@2",
  I: "~ a2@2 g#2@2 f#2@2 ~ f#2 ~@6 f#2 ~@5 f#2 ~@2", J: "~ f#2 ~@2 f#2 ~ g#2@3 a2@3 ~ f#1 ~ f#1 f#2 ~@6 f#2",
  K: "~@3 f#2 ~@5 f#2 ~@2 f#2@2 a2@2 ~ a2@2 g#2@2 f#2@2 ~",
})).s("gm_electric_bass_finger").gain(0.5)

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

// drums · snare
const snare = s("sd").struct("<A B C D E F G A B C D H F G>".pickRestart({
  A: "~@7 x ~@13 x ~@2", B: "~@11 x ~@12", C: "~ x ~@13 x ~@8", D: "~@5 x ~@13 x ~@4", E: "~@23 x", F: "~@13 x ~@10",
  G: "~@3 x ~@13 x ~@6", H: "~@9 x ~@13 x",
})).gain(0.5)

// drums · clap
const clap = s("cp").struct(`<
  ~@4
  [~@6 x ~@2 x ~@3 x!2 ~@9]
  ~@3
  [~@11 x]
  [~ x ~@3 x!2 ~@17]
  ~@3
  [~@14 x ~@2 x ~@3 x ~ x]
>`).gain(0.5)

// drums · hihat
const hihat = s("hh").struct("<A B C D E F G A B C D H F G>".pickRestart({
  A: "x ~@6 x ~@6 x ~@6 x ~@2", B: "~@4 x ~@6 x ~@6 x ~@5", C: "~ x ~@6 x ~@6 x ~@6 x ~", D: "~@5 x ~@6 x ~@6 x ~@4",
  E: "~@16 x ~@6 x", F: "~@6 x ~@6 x ~@6 x ~@3", G: "~@3 x ~@6 x ~@6 x ~@6", H: "~@2 x ~@6 x ~@6 x ~@6 x",
})).gain(0.5)

stack(bass, kick, snare, clap, hihat)

More by Britney Spears