Strudelify

Leave It Behind

The Offspring

KeyG majorTempo153 bpm
0:00/0:00
// Leave It Behind — The Offspring
// 153 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 5 "Guit1B" overdriven guitar (copy of ch 3 "Guit1" distortion guitar); ch 6 "Guit1C" overdriven guitar (copy of ch 3 "Guit1" distortion guitar, 0.083 beats late)
// note: Full arrangement: all 71 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(153/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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(`<
  ~@2 A@3 B A C A B D A D A@3 B A C A B D A D A E F G H E F G H A@5 B A C A B D A D A E F G H E F G H A@4 E F G H E F G
  H A@3 I
>`.pickRestart({
  A: "e2@2 e2@4 e2 e2@3 e2@2 e2@2 e2@2", B: "d2@2 d2@4 d2 d2@3 e2@2 e2@2 e2@2", C: "d2@2 d2@4 d2 d2@3 b1@2 b1@2 b1@2",
  D: "c2 g1 a1 b1", E: "g1@2 g1@4 g1@2 g1@2 g1 g1@2 g1 g1@2", F: "d2@2 d2@4 d2@2 d2@2 d2 d2@2 d2 d2@2",
  G: "e2@2 e2@4 e2@2 e2@2 e2 e2@2 e2 e2@2", H: "c2@2 c2@4 c2@2 c2@2 c2 c2@2 c2 c2@2", I: "e2 ~@3",
})).s("gm_electric_bass_finger").gain(0.45)

// chords · distortion guitar · "Guit1"
const distortion_guitar = note("<A@4 ~@9 B@2 ~@18 A@4 ~@18 A@4 ~@8 C@3 ~>".pickRestart({
  A: "[e2@2 e4@3 [e4,f#4]@3 [e4,g4]@2 [e4,f#4]@3 ~@3 e2@2 e4@3 [e4,f#4]@3 [e4,g4]@2 [e4,f#4]@3 ~@3 e2@2 e4@3 [e4,f#4]@3 [e4,g4]@2 [e4,f#4]@3 ~@3 e2@2 e4@3 [e4,f#4]@3 [e4,g4]@2 [e4,f#4]@3 e4@3, ~@13 e4@5 ~@11 e4@5 ~@11 e4@5 ~@14]/4", // Esus2 Em Esus2 Em Esus2 Em Esus2 Em …
  B: "[e2@2 e4@3 [e4,f#4]@3 [e4,g4]@2 [e4,f#4]@3 ~@3 e2@2 e4@3 [e4,f#4]@3 [e4,g4]@2 [e4,f#4]@3 e4@3, ~@13 e4@5 ~@14]/2", // Esus2 Em Esus2 Em Esus2
  C: "[e2@2 e4@3 [e4,f#4]@3 [e4,g4]@2 [e4,f#4]@3 ~@3 e2@2 e4@3 [e4,f#4]@3 [e4,g4]@2 [e4,f#4]@3 ~@3 e2@2 e4@3 [e4,f#4]@3 [e4,g4]@2 [e4,f#4]@3 e4@3, ~@13 e4@5 ~@11 e4@5 ~@14]/3", // Esus2 Em Esus2 Em Esus2 Em Esus2
})).s("gm_distortion_guitar").gain(0.46)

// chords · distortion guitar · "Guit2"
const distortion_guitar_2 = note(`<
  ~@2 A@3 B A C A D E A E A@3 B A C A D E A E A F G H I F G H I A@5 B A C A D E A E A F G H I F G H I A@4 F G H I F G H
  I A@3 J
>`.pickRestart({
  A: "e2@2 [e3,b3,e4]@2 [e3,b3,e4]!2 [e3,b3,e4]@2 [e3,b3,e4]@2 [e3,b3,e4] [e3,b3,e4]@2 [e3,b3,e4]!3", // E5
  B: "[d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]!2 [d3,a3,d4]@2 [d3,a3,d4]@2 [e3,b3,e4] [e3,b3,e4]@2 [e3,b3,e4] [e3,b3,e4]@2", // D5 E5
  C: "[d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]!2 [d3,a3,d4]@2 [d3,a3,d4]@2 [b2,f#3,b3] [b2,f#3,b3]@2 [b2,f#3,b3] [b2,f#3,b3]@2", // D5 B5
  D: "[d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]!2 [d3,a3,d4]@2 [d3,a3,d4]@2 [e3,b3,e4] [e3,b3,e4]@2 [e3,b3,e4]!3", // D5 E5
  E: "[c3,g3,c4] [g2,d3,g3] [a2,e3,a3] [d3,a3,d4]", // C5 G5 A5 D5
  F: "[g2,d3,g3]@2 [g2,d3,g3]@4 [g2,d3,g3]@2 [g2,d3,g3]@2 [g2,d3,g3] [g2,d3,g3]@2 [g2,d3,g3] [g2,d3,g3]@2", // G5
  G: "[d3,a3,d4]@2 [d3,a3,d4]@4 [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4] [d3,a3,d4]@2 [d3,a3,d4] [d3,a3,d4]@2", // D5
  H: "[e3,b3,e4]@2 [e3,b3,e4]@4 [e3,b3,e4]@2 [e3,b3,e4]@2 [e3,b3,e4] [e3,b3,e4]@2 [e3,b3,e4] [e3,b3,e4]@2", // E5
  I: "[c3,g3,c4]@2 [c3,g3,c4]@4 [c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4] [c3,g3,c4]@2 [c3,g3,c4] [c3,g3,c4]@2", // C5
  J: "[e3,b3,e4] ~@3", // E5
})).s("gm_distortion_guitar").gain(0.64)

// drums · kick
const kick = s("bd").struct("<~@2 A@8 B A B A@8 B A B C A@18 B A B C A@11 C A@11 C>".pickRestart({
  A: "x ~@6 x ~ x ~@2 x ~@3", B: "x!4", C: "x",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct("<~@2 A@8 B A B A@8 B A B C A@7 D A@10 B A B C A@7 D A@3 C A@7 D A@3 ~>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2", C: "~@2 x ~ x!8 ~@4", D: "~@2 x ~@3 x ~@3 x ~@3 x!2",
})).gain(0.4)

// drums · hihat
const hihat = s("hh").struct("<~@25 A B@3 A B@3 ~@14 A B@3 A B@3 ~@4 A B@3 A B@3 ~@4>".pickRestart({
  A: "~ x!7", B: "x!8",
})).gain(0.4)

// drums · low tom
const low_tom = s("lt").struct("<~@24 [~@12 x!4] ~@21 [~@12 x!4] ~@11 [~@12 x!4] ~@12>").gain(0.4)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@2 A B A B@5 ~ A ~ A B A B@5 ~ A ~@10 A B@3 A B@5 ~ A ~@10 A B@2 ~@9 A B@2 ~
>`.pickRestart({
  A: "~ x!7", B: "x!8",
})).gain(0.4)

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

stack(bass, distortion_guitar, distortion_guitar_2, kick, snare, hihat, low_tom, open_hat, crash)

More by The Offspring