Strudelify

Up in Arms

Foo Fighters

KeyC majorTempo170 bpm
0:00/0:00
// Up in Arms — Foo Fighters
// 170 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 58 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): grt 2.
setcpm(170/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// chords · distortion guitar · "grt 1"
const distortion_guitar = note(`<
  ~ A B C D A B E D F G H I F G D@2 A B E D A B E D F G H I F G D@2 A B E D A B E D F G H I F G D@2 F G H I F G J K ~
>`.pickRestart({
  A: "[c3,g3,c4]!4 [b2,f#3,b3]!4", B: "[a2,e3,a3]!4 [g2,d3,g3]!4", C: "[f2,f3] [f2,c3,f3]!3 [g#2,d#3,g#3]!4",
  D: "[c3,g3,c4]!8", E: "[f2,c3,f3]!4 [g#2,d#3,g#3]!4", F: "[f2,c3,f3]!8", G: "[g#2,d#3,g#3]!8",
  H: "[c3,g3,c4]@2 [c3,g3,c4] [c3,g3,c4]@2 [c3,g3,c4]!3", // C5
  I: "[a2,e3,a3,c4]@2 [a2,e3,a3,c4] [a2,e3,a3,c4]@2 [a2,e3,a3,c4]!3", J: "[c3,g3,c4]",
  K: "[c3,g3,c4,e4]!2 [c3,g3,c4] ~", // C C5
})).s("gm_distortion_guitar").gain(0.54)

// chords · distortion guitar · "grt 2"
const distortion_guitar_2 = note("<~@3 A ~@28 B C@2 D E F@2 G@2 ~@15 H ~>".pickRestart({
  A: "c3 ~@7", B: "[e2,a2,d3]", C: "[d4@2 ~ a3 c4@2 a3 c4@2 d4@2 c4@2 a3 c4 a3]/2", D: "d4!4", E: "d4@4 ~@2 d4 ~",
  F: "[~@4 a3@2 ~@4 d4@4 c4@5 ~@3 c4@4 ~@6]/2", G: "d4!8", H: "~@2 e4 ~",
})).s("gm_distortion_guitar").gain(0.54)

// bass · electric bass pick · "bass"
const bass = note(`<
  ~ A B C D A B C D E F G H E F D@2 A B C D A B C D E F G H E F D@2 A B C D A B C D E F G H E F D@2 E F G H E F I J ~
>`.pickRestart({
  A: "c2!4 b1!4", B: "a1!4 g1!4", C: "f1!4 g#1!4", D: "c2!8", E: "f1!8", F: "g#1!8", G: "c2@2 c2 c2@2 c2!3",
  H: "a1@2 a1 a1@2 a1!3", I: "c2", J: "c2!3 ~",
})).s("gm_electric_bass_pick").gain(0.64)

// other · distortion guitar · "grt  3"
const distortion_guitar_3 = note("<~@32 A B@2 C D@3 E@2 ~@6 F G ~@9>".pickRestart({
  A: "[e2,b2,e3]", B: "[d4@2 a3 c4@2 ~ a3 c4@2 d4@2 c4@2 a3 c4 a3]/2", C: "d4!4",
  D: "[d4@8 g4@4 d4@2 c4@5 ~ a3@2 c4@4 d4@4 c4@5 ~ a3@2 c4@4 d4@2 d4@2 d4@2]/3", E: "d4!8", F: "~@2 [d4,d5]!2",
  G: "[d4,d5]!2 [d4,d5]@2", // D
})).s("gm_distortion_guitar").gain(0.8)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@4 A ~@15 A ~@15 A ~@11 B ~@9>".pickRestart({
  A: "~@14 x!2", B: "~@12 x!4",
})).gain(0.8)

// drums · mid tom
const mid_tom = s("mt").struct("<~@4 A ~@15 A ~@15 A ~@11 B ~@9>".pickRestart({
  A: "~@7 x", B: "~@10 x!3 ~@3",
})).gain(0.8)

// drums · open hat
const open_hat = s("oh").struct("<~ A@10 ~@2 A@2 ~@2 A@10 ~@2 A@2 ~@10 A@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@3>".pickRestart({
  A: "x!4",
})).gain(0.8)

// drums · high tom
const high_tom = s("ht").struct("<~@48 [~@5 x ~@2] ~@9>").gain(0.8)

// drums · splash
const splash = s("cr").struct(`<
  ~ A ~@3 A ~@3 A ~ B@2 ~@2 B C A ~@3 A ~@3 A ~ B@2 ~@2 B A B@3 D B@3 D A ~ B@2 ~@2 B A@2 ~ B@2 A ~ A D ~
>`.pickRestart({
  A: "x", B: "x!4", C: "x ~ x!2 ~@4", D: "x!3 ~",
})).gain(0.8)

stack(
  distortion_guitar, distortion_guitar_2, bass, distortion_guitar_3, kick, snare, low_tom, mid_tom, open_hat, high_tom,
  splash
)

More by Foo Fighters