Strudelify

Keep Away

Godsmack

KeyD minorTempo96 bpm
0:00/0:00
// Keep Away — Godsmack
// 96 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(96/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.

// bass · electric bass finger
const bass = note(`<
  ~@3 A B C B C B C B C D E D E D E D E D E D E D E D E ~@4 B C B C D E D E D E D E D E D E D E D E ~@8 F@4 G@4 H I H I
  H I H I H I H I B C B C B C B C B C B C B C B C
>`.pickRestart({
  A: "~@3 d1", B: "d1@4 d1@2 d1!3 f1 f1@2 f1@2 f1!2", C: "g1!2 g1@2 g1@2 g1!2 ab1!2 ab1@2 g1 f1@3",
  D: "d1@4 d1@2 ~@2 d1 f1 f1@2 f1@2 ~@2", E: "g1!2 g1@2 g1@2 g1@2 ab1@2 ab1!2 g1 f1@3", F: "d1/2", G: "d2!5 ~ d2!5 ~@5",
  H: "d2!4 d2@2 e2!4 e2@2 e2!2 e2@2", I: "f2!4 f2@2 e2!4 e2@2 c2!2 c2@2",
})).s("gm_electric_bass_finger").gain(0.51)

// chords · distortion guitar
const distortion_guitar = note(`<
  A@12 B C B C B C B C B C B C B C B C D E D F G H G H B C B C B C B C B C B C B C B C D E D E D E D I J@4 ~@8 A@8 ~@16
>`.pickRestart({
  A: "[d3,d4]@2 [d3,d4] [d3,d4]@2 [d3,d4] [d3,d4]@2 [d3,d4] [d3,d4]@2 [d3,d4]!5", // D
  B: "[d2,a2,d3]@4 [d2,a2,d3]@2 ~@2 [d2,a2,d3] [f2,c3,f3] [f2,c3,f3]@2 [f2,c3,f3]@2 ~@2", // D5 F5
  C: "[g2,d3,g3]!2 [g2,d3,g3]@2 [g2,d3,g3]@2 [g2,d3,g3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]!2 [g2,d3,g3] [f2,c3,f3]@3", // G5 Ab5 G5 F5
  D: "[d2,a2,d3,a3,d4]@4 [d2,a2,d3,a3,d4]@2 [d2,a2,d3,a3,d4]!2 [c3,g3,d4]!2 [c3,g3,d4]@2 [c3,g3,d4]@2 [c3,g3,d4]!2", // D5 Csus2
  E: "[a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]!2 [bb2,f3,bb3]!2 [bb2,f3,bb3]@2 [bb2,f3,bb3]@2 [bb2,f3,bb3]!2", // A5 Bb5
  F: "[a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]!2 [ab2,eb3,ab3]@4 [e2,b2,e3]@4", // A5 Ab5 E5
  G: "[d2,a2,d3]@4 [d2,a2,d3]@2 [d2,a2,d3]!3 [f2,c3,f3] [f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]!2", // D5 F5
  H: "[g2,d3,g3]!2 [g2,d3,g3]@2 [g2,d3,g3]@2 [g2,d3,g3]!2 [ab2,eb3,ab3]!2 [ab2,eb3,ab3]@2 [g2,d3,g3] [f2,c3,f3]@3", // G5 Ab5 G5 F5
  I: "[a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]@2 [a2,e3,a3]!2 [bb2,f3,bb3]!2 [bb2,f3,bb3]@2 [bb2,f3,bb3]@2 [bb2,f3,bb3] [c3,g3,c4]", // A5 Bb5 C5
  J: "[d2,a2,d3]/2", // D5
})).s("gm_distortion_guitar").gain(0.51)

// chords · distortion guitar
const distortion_guitar_2 = note("<~@4 A B A B A B A B ~@52 C@16 ~@16>".pickRestart({
  A: "[d2,a2,d3]@4 [d2,a2,d3]@2 [d2,a2,d3]!3 [f2,c3,f3] [f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]!2", // D5 F5
  B: "[g2,d3,g3]!2 [g2,d3,g3]@2 [g2,d3,g3]@2 [g2,d3,g3]!2 [ab2,eb3,ab3]!2 [ab2,eb3,ab3]@2 [g2,d3,g3] [f2,c3,f3]@3", // G5 Ab5 G5 F5
  C: "[d3,a3,d4]!5 ~ [d3,ab3,d4]!5 ~@5", // D5 Ddim
})).s("gm_distortion_guitar").gain(0.51)

stack(bass, distortion_guitar, distortion_guitar_2)

More by Godsmack