Strudelify

Requiem

Foo Fighters

KeyA majorTempo85 bpm
0:00/0:00
// Requiem — Foo Fighters
// 85 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 98 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(85/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.

// other · electric guitar clean
const electric_guitar_clean = note("<[a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~]!74 [a2 ~ a2 ~ a2 ~ a2 ~@9] ~@23>")
  .s("gm_electric_guitar_clean").gain(0.41)

// other · piano
const piano = note(`<
  ~@14 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 A B A B A B A B A B A B A B A B A
  B ~@26
>`.pickRestart({
  A: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~", B: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ g2 ~ g2 ~ g2 ~ g2 ~",
})).s("gm_piano").gain(0.41)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A@11 B C D@8 E C D@14 B D@7 F G@4 H G@2 I D F D F D F D J D F D F D@4 ~@26
>`.pickRestart({
  A: "~ x ~@2", B: "~@4 x!2 ~ x!2 ~@7", C: "~ x ~@2 x!2 ~@2", D: "x!2 ~@2 x!2 ~@2", E: "x!5 ~@5 x!3 ~@3",
  F: "x!2 ~@2 x!3 ~", G: "x!2", H: "~ x ~ x", I: "x!2 ~@6", J: "~@5 x ~ x ~@8",
})).gain(0.64)

// drums · rim
const rim = s("rim").struct("<~@2 [~ x ~@2]!11 ~@85>").gain(0.64)

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

// drums · hihat
const hihat = s("hh").struct("<~@2 A@11 ~@35 B C B C D B C ~@43>".pickRestart({
  A: "~@3 x", B: "x!8", C: "x!7 ~", D: "~@5 x!3",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~@49 [~@7 x] ~ [~@7 x] [~ x] ~ [~@7 x] ~@43>").gain(0.64)

// drums · mid tom
const mid_tom = s("mt").struct("<~@13 [~@5 x ~ x ~@8] ~@9 [x!5 ~@5 x!3 ~@3] ~@15 [~@5 x ~ x ~@8] ~@58>").gain(0.64)

// drums · high tom
const high_tom = s("ht").struct("<~@13 [~ x!2 ~] ~@25 [~ x!2 ~] ~@58>").gain(0.64)

// drums · crash
const crash = s("cr").struct("<~@14 A@9 ~ A@15 ~ A@7 B ~@4 C ~@2 D A B A B A B A ~ A B A B A@3 E ~@26>".pickRestart({
  A: "x!4", B: "x ~ x ~ x ~@2 x", C: "x!2 ~@2", D: "~ x!3", E: "~@3 x",
})).gain(0.64)

stack(electric_guitar_clean, piano, kick, rim, snare, hihat, open_hat, mid_tom, high_tom, crash)

More by Foo Fighters