Strudelify

Walla Walla

The Offspring

KeyC majorTempo160 bpm
0:00/0:00
// Walla Walla — The Offspring
// 160 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 overdriven guitar (copy of ch 1 "Noodles" distortion guitar); ch 3 electric guitar muted (copy of ch 1 "Noodles" distortion guitar); ch 5 electric guitar jazz (copy of ch 1 "Noodles" distortion guitar)
// note: Full arrangement: all 106 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · distortion guitar · "Noodles"
const distortion_guitar = note(`<
  A B C B A B C D E F G@2 H@2 I@2 J K L@2 H@2 I@2 G H I H G H I M A B C B A B C D E F G@2 H@2 I@2 J K L@2 H@2 I@2 G H I
  H G H I M A B C B A B C N O P Q P O P Q M D E F G@2 H@2 I@2 J K L@2 H@2 I@2 G H I H G H I M ~
>`.pickRestart({
  A: "[f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]!2 [f2,c3,f3]@2 [f2,c3,f3]!2 [f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]@2", // F5
  B: "[c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]!2 [c3,g3,c4]@2 [c3,g3,c4]!2 [c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]@2", // C5
  C: "[g2,d3,g3]@2 [g2,d3,g3]@2 [g2,d3,g3]!2 [g2,d3,g3]@2 [g2,d3,g3]!2 [g2,d3,g3]@2 [g2,d3,g3]@2 [g2,d3,g3]@2", // G5
  D: "[c3,g3,c4] ~ [c3,g3,c4] ~ [c3,g3,c4] ~ [c#3,g#3,c#4] ~", E: "[d3,a3,d4] [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4]!3",
  F: "[d3,a3,d4] [d3,a3,d4]@2 [d3,a3,d4]@2 [d3,a3,d4] [e3,b3,e4]!2", // D5 E5
  G: "[f3,c4,f4] [f3,c4,f4]@2 [f3,c4,f4]@2 [f3,c4,f4]!3", H: "[c3,g3,c4] [c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]!3",
  I: "[g2,d3,g3] [g2,d3,g3]@2 [g2,d3,g3]@2 [g2,d3,g3]!3", J: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~",
  K: "[d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~ [e3,b3,e4] ~", L: "[f3,c4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~",
  M: "[c3,g3,c4] ~ [c3,g3,c4] ~ [c3,g3,c4] ~ [c3,g3,c4] ~", N: "[c3,g3,c4] ~ [c3,g3,c4] ~ [c3,g3,c4] ~@3",
  O: "[f2,c3,f3]@2 [f2,c3,f3]@2 [f2,c3,f3]!2 [c3,f3,a3,c4,f4]@4 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2, ~@3 f2 ~@4", // F5 F
  P: "[c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]!2 [c3,e3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2", // C5 C
  Q: "[g2,d3,g3]@2 [g2,d3,g3]@2 [g2,d3,g3]!2 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@2", // G5 G
})).s("gm_distortion_guitar").gain(0.1).pan(0.9)

// drums · kick
const kick = s("bd").struct("<[x!4]!105 x>").gain(0.22)

// drums · snare
const snare = s("sd").struct("<A@7 ~ A@8 ~@4 A@11 ~ A@7 ~ A@8 ~@4 A@11 ~ A@7 ~ A@7 ~@2 A@8 ~@4 A@11 ~ B>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "x!5 ~@11",
})).gain(0.22)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@7 A ~@8 A@4 ~@11 A ~@7 A ~@8 A@4 ~@11 A ~@7 A ~@7 A@2 ~@8 A@4 ~@11 A B
>`.pickRestart({
  A: "x!4", B: "~ x ~@2",
})).gain(0.22)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@105 [~@3 x]>").gain(0.22)

// drums · open hat
const open_hat = s("oh").struct("<A@7 ~@17 A@7 ~ A@7 ~@17 A@7 ~ A@7 ~ A@7 ~@18 A@7 ~@2>".pickRestart({
  A: "x!8",
})).gain(0.22)

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

// drums · ride
const ride = s("rd").struct("<~@8 A B@7 ~@4 A B@3 ~@16 A B@7 ~@4 A B@3 ~@25 A B@7 ~@4 A B@3 ~@9>".pickRestart({
  A: "~@2 x!6", B: "x!8",
})).gain(0.22)

stack(distortion_guitar, kick, snare, low_tom, pedal_hat, open_hat, crash, ride)

More by The Offspring