Strudelify

Pure Massacre

Silverchair

KeyD minorTempo165 bpm
0:00/0:00
// Pure Massacre — Silverchair
// 165 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 6 "Tell me what you think" electric bass pick (copy of ch 5 electric bass finger)
// note: Full arrangement: all 223 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): guitar program 26.
setcpm(165/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.

// other · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 D@2 ~@114 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2
  C@2 ~@52
>`.pickRestart({
  A: "~@6 d3 g3", B: "[a3@3 a3@3 a3@3 ab3@3 ab3@2 ab3!2]/2", C: "[a3@3 a3@3 a3@3 c4@3 c4@2 g3!2]/2",
  D: "[a3@3 a3@3 a3@3 c4@3 c4@2 ~@2]/2",
})).s("gm_acoustic_guitar_steel").gain(0.37)

// other · acoustic guitar steel
const acoustic_guitar_steel_2 = note("<~ A@30 B@2 A@24 ~@4 A@4 ~@4 A@24 ~@4 A@4 ~@46 C@24 ~@44 D@2 E@6>".pickRestart({
  A: "[d2@3 d2@3 d2@3 d2@3 d2@2 d2!2]/2", B: "[d2@3 d2@3 d2@3 d2@3 d2@2 ~@2]/2", C: "[d3@3 d3@3 d3@3 d3@3 d3@2 d3!2]/2",
  D: "[d3@3 d3 d3@2 bb2@6 bb2@2 bb2!2]/2", E: "[c3@3 c3 c3@2 g2@40 ~@2]/6",
})).s("gm_acoustic_guitar_steel").gain(0.37)

// other · electric guitar clean
const electric_guitar_clean = note(`<
  A B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 D@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 E@2
  F@2 B@2 C@2 E@2 F@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 E@2 F@2 B@2 C@2 E@2 F@2 B@2 C@2 B@2 C@2 G@2 H@2
  G@2 H@2 G@2 H@2 G@2 I@4 ~@92
>`.pickRestart({
  A: "~@6 d3 g3", B: "[a3@3 a3@3 a3@3 ab3@3 ab3@2 ab3!2]/2", C: "[a3@3 a3@3 a3@3 c4@3 c4@2 g3!2]/2",
  D: "[a3@3 a3@3 a3@3 c4@3 c4@2 ~@2]/2", E: "[g2@3 g2 g2@2 f2@6 f2@4]/2", F: "[g2@3 g2 g2@2 bb2@6 bb2@4]/2",
  G: "[d2@3 d2 d2@2 bb1@6 bb1@2 bb1!2]/2", H: "[c2@3 c2 c2@2 g1@6 g1@2 g1!2]/2", I: "c2!4",
})).s("gm_electric_guitar_clean").gain(0.37)

// bass · electric bass finger
const bass = note(`<
  ~@33 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2
  A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 A@2 B@2 E@2 F@2 E@2 F@2 E@2 F@2 E@2 G@4 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2
  B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 A@2 B@2
  A@2 B@2 A@2 B@2 E@2 H@6
>`.pickRestart({
  A: "[a1@3 c2@3 a1@3 c2@3 a1@2 g1@2]/2", B: "[a1@3 c2@3 a1@3 c2@3 d2@2 e2@2]/2", C: "[g1@3 g1 g1@2 f1@6 f1@4]/2",
  D: "[g1@3 g1 g1@2 f2@6 f2@4]/2", E: "[d2@3 d2 d2@2 bb1@6 bb1@4]/2", F: "[c2@3 c2 c2@2 g1@6 g1@4]/2", G: "c2!4",
  H: "[c2@3 c2 c2@2 g1@40 ~@2]/6",
})).s("gm_electric_bass_finger").gain(0.37)

// other · electric guitar clean
const electric_guitar_clean_2 = note(`<
  ~@33 A@2 B@2 A@2 B@2 ~@8 A@2 B@2 A@2 B@2 C@2 D@2 ~@4 C@2 D@2 ~@24 C@2 D@2 ~@4 C@2 D@2 ~@8 E@2 F@2 E@2 F@2 E@2 F@2 E@2
  G@4 H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2 ~@24 J@2 K@2 ~@4 J@2 K@2 ~@4 J@2 K@2 ~@4 J@2 K@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 I@2
  E@2 L@6
>`.pickRestart({
  A: "[a3@3 c4@3 a3@3 c4@3 a3@2 g4@2]/2", B: "[a3@3 c4@3 a3@3 c4@3 d4@2 e4@2]/2", C: "[g3@3 g3 g3@2 f3@6 f3@4]/2",
  D: "[g3@3 g3 g3@2 bb3@6 bb3@4]/2", E: "[d3@3 d3 d3@2 bb2@6 bb2@2 bb2!2]/2", F: "[c3@3 c3 c3@2 g2@6 g2@2 g2!2]/2",
  G: "c3!4", H: "[a2@3 c3@3 a2@3 c3@3 a2@2 g3@2]/2", I: "[a2@3 c3@3 a2@3 c3@3 d3@2 e3@2]/2",
  J: "[g2@3 g2 g2@2 f2@6 f2@4]/2", K: "[g2@3 g2 g2@2 bb2@6 bb2@4]/2", L: "[c3@3 c3 c3@2 g2@40 ~@2]/6",
})).s("gm_electric_guitar_clean").gain(0.37)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@33 A@2 B@2 A@2 B@2 ~@8 A@2 B@2 A@2 B@2 C@2 D@2 ~@4 C@2 D@2 ~@24 E@2 F@2 ~@4 E@2 F@2 ~@8 G@2 H@2 G@2 H@2 G@2 H@2 G@2
  I@4 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 ~@24 C@2 D@2 ~@4 C@2 D@2 ~@4 C@2 D@2 ~@4 C@2 D@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2
  J@2 K@6
>`.pickRestart({
  A: "[a2@3 c3@3 a2@3 c3@3 a2@2 g3@2]/2", B: "[a2@3 c3@3 a2@3 c3@3 d3@2 e3@2]/2", C: "[g2@3 g2 g2@2 f2@6 f2@4]/2",
  D: "[g2@3 g2 g2@2 bb2@6 bb2@4]/2", E: "[g3@3 g3 g3@2 f3@6 f3@4]/2", F: "[g3@3 g3 g3@2 bb3@6 bb3@4]/2",
  G: "[d2@3 d2 d2@2 bb1@6 bb1@2 bb1!2]/2", H: "[c2@3 c2 c2@2 g1@6 g1@2 g1!2]/2", I: "c2!4",
  J: "[d3@3 d3 d3@2 bb2@6 bb2@2 bb2!2]/2", K: "[c3@3 c3 c3@2 g2@40 ~@2]/6",
})).s("gm_overdriven_guitar").gain(0.37)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@33 A@2 B@2 A@2 B@2 C@8 D@8 ~@4 C@4 ~@4 C@24 ~@4 C@4 ~@4 C@8 ~@16 E@2 ~@72 F@2 G@2 F@2 G@2 F@2 G@2 ~@8
>`.pickRestart({
  A: "[a2@3 c3@3 a2@3 c3@3 a2@2 g3@2]/2", B: "[a2@3 c3@3 a2@3 c3@3 d3@2 e3@2]/2",
  C: "[d4@3 d4@3 d4@3 d4@3 d4@2 d4!2]/2", D: "[d3@3 d3@3 d3@3 d3@3 d3@2 d3!2]/2", E: "c3!4",
  F: "[a3@3 c4@3 a3@3 c4@3 a3@2 g4@2]/2", G: "[a3@3 c4@3 a3@3 c4@3 d4@2 e4@2]/2",
})).s("gm_distortion_guitar").gain(0.41)

// other · harpsichord
const harpsichord = note(`<
  ~@33 A@2 B@2 A@2 B@2 ~@8 A@2 B@2 A@2 B@2 C@2 D@2 ~@4 C@2 D@2 ~@24 E@2 F@2 ~@4 E@2 F@2 ~@8 G@2 H@2 G@2 H@2 G@2 H@2 G@2
  I@4 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 ~@24 C@2 D@2 ~@4 C@2 D@2 ~@4 C@2 D@2 ~@4 C@2 D@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2
  J@2 K@6
>`.pickRestart({
  A: "[a3@3 c4@3 a3@3 c4@3 a3@2 g4@2]/2", B: "[a3@3 c4@3 a3@3 c4@3 d4@2 e4@2]/2", C: "[g3@3 g3 g3@2 f3@6 f3@4]/2",
  D: "[g3@3 g3 g3@2 bb3@6 bb3@4]/2", E: "[g4@3 g4 g4@2 f4@6 f4@4]/2", F: "[g4@3 g4 g4@2 bb4@6 bb4@4]/2",
  G: "[d3@3 d3 d3@2 bb2@6 bb2@2 bb2!2]/2", H: "[c3@3 c3 c3@2 g2@6 g2@2 g2!2]/2", I: "c3!4",
  J: "[d4@3 d4 d4@2 bb3@6 bb3@2 bb3!2]/2", K: "[c4@3 c4 c4@2 g3@40 ~@2]/6",
})).s("gm_harpsichord").gain(0.37)

stack(
  acoustic_guitar_steel, acoustic_guitar_steel_2, electric_guitar_clean, bass, electric_guitar_clean_2,
  overdriven_guitar, distortion_guitar, harpsichord
)

More by Silverchair