Strudelify

Abuse Me

Silverchair

KeyD minorTempo104 bpm
0:00/0:00
// Abuse Me — Silverchair
// 104 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 101 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(104/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · "bass"
const bass = note(`<
  ~ A@2 B C D E F@2 G@6 H@2 I@2 J@2 I@2 K@2 G@6 H@2 I@2 J@2 I@2 J@2 I@2 J@2 I@2 L@2 M N O N O N O P Q@2 R@2 I@2 J@2 I@2
  J@2 I@2 J@2 I@2 L@2 M N O N O N O N O N O N O N O P Q@2 R@2 A@2 S@2
>`.pickRestart({
  A: "[a2@24 bb2@3 b2@3 a2@2]/2", B: "f2", C: "~@2 f2@6 bb2@3 b2@3 a2@2", D: "a2", E: "~@2 a2@6 bb2@3 b2@3 a2@2",
  F: "[f2@13 ~ f2@11 ~ f2@2 f2@2 f2@2]/2", G: "[f2 g2 g2@11 f2!3]/2", H: "[f2 g2 g2@11 g1!3]/2",
  I: "[a1@4 a1@4 a1 ~ a1@2 a1@2 a1@4 a1@2 a1@4 a1 ~ a1@2 a1@2 a1@2]/2",
  J: "[f1@4 f1@4 f1 ~ f1@2 f1@2 f1@4 f1@2 f1@4 f1 ~ f1@2 f1 ~ f1@2]/2",
  K: "[f1@2 f1@2 f1@4 f1 ~ f1@2 f1 ~ e1@4 e1@2 e1@4 e1 ~ f2@2 f2@2 f2@2]/2",
  L: "[f1@2 f1@2 f1@4 f1 ~ f1@2 f1 ~ e1@4 e1@2 e1@4 e1 ~ e1 ~ e1 ~ e1 ~]/2",
  M: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~", N: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ f1 ~ f1 ~ d1 ~",
  O: "d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ d1 ~", P: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ f1 ~ f1 ~ d1@2",
  Q: "[d1 ~ d1 ~ d1 ~ d1 ~ d1 ~ f1 ~ f1 ~ d1@4 d1 ~ d1 ~ d1@2 d1 ~ f1 ~ f1 ~ d1@2]/2",
  R: "[~@2 f1 ~ f1@2 d1@4 f1 ~ f1 ~ d1@4 d1 ~ d1 ~ d1 ~ d1@2 d1@2 d1@2 d1 ~]/2", S: "[f2@13 ~ f2@17 ~]/2",
})).s("gm_electric_bass_finger").gain(0.2)

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

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

// drums · hihat
const hihat = s("hh").struct("<[x!4] ~@8 [~@2 x!6] [x ~ x!6]!7 ~@8 [~@2 x!6] [x ~ x!6]!7 ~@68>").gain(0.48)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@9 [~ x ~@6]!8 ~@8 [~ x ~@6]!8 ~@68>").gain(0.32)

// drums · low tom
const low_tom = s("lt").struct("<~@8 A ~@15 B ~@23 C D ~@26 C D ~@23>".pickRestart({
  A: "~@7 x", B: "~ x!4 ~@3", C: "~ x!7", D: "x!6 ~@2",
})).gain(0.32)

// drums · mid tom
const mid_tom = s("mt").struct("<~@8 A ~@15 B ~@23 C D ~@26 C D ~@23>".pickRestart({
  A: "~@5 x ~@2", B: "~ x!4 ~@3", C: "~ x!7", D: "x!6 ~@2",
})).gain(0.32)

// drums · open hat
const open_hat = s("oh").struct("<~@50 A B A C A C A B@2 ~@19 A B A C A C A B A C A C A B A B@2 ~@6>".pickRestart({
  A: "~ x!4 ~ x ~", B: "x!8", C: "x!7 ~",
})).gain(0.4)

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

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~ A@8 ~@8 B C@3 B C D ~@9 B C@3 B C@3 B C B C B C E ~@13 B C@3 B C@3 B C B C B C E ~@21 F A@2 ~
>`.pickRestart({
  A: "x!4", B: "~ x!7", C: "x!8", D: "x!5 ~@3", E: "~ x!4 ~@3", F: "~ x!3",
})).gain(0.4)

stack(bass, kick, snare, hihat, hihat_soft, low_tom, mid_tom, open_hat, crash, ride_bell)

More by Silverchair