Strudelify
Whoomp (There It Is) cover art

1993 · Whoomp! There It Is (Radio Edit)

Whoomp (There It Is)

Tag Team

KeyB majorTempo128 bpm
0:00/0:00
// Whoomp (There It Is) — Tag Team
// 128 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 "Fingered Bass" electric bass finger (copy of ch 1 "Synth Bass-1" synth bass 1)
// note: Full arrangement: all 145 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(128/4)

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

// bass · synth bass 1 · "Synth Bass-1"
const bass = note(`<
  A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~ B C D ~ B C D ~ A ~ A ~ A ~ A
  ~@9 A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ E
>`.pickRestart({
  A: "f#1!2 b1!2 f#1!2 b1!2 f#1!4 f#1@2 ~@2", B: "~ e2 f2 ~ e2 f2 ~@2", C: "~ e2 f2 ~ e2 f2 ~ c2", D: "d#2",
  E: "b1 ~@7",
})).s("gm_synth_bass_1").gain(0.5)

// other · brass section · "Brass-1"
const brass_section = note("<~@81 A ~ A ~ A ~ A ~@57>".pickRestart({
  A: "~@2 [d#5,d#6]@8 [c#5,c#6] [a#4,a#5] [g#4,g#5] [f#4,f#5] [c#4,c#5] [d#4,d#5]", // D# C# A# G# F# C# D#
})).s("gm_brass_section").gain(0.5)

// bass · acoustic guitar steel · "808 Kick &Snare"
const bass_2 = note(`<
  [c2 ~@3 d2 ~ c2 ~@3 c2 ~ d2 c2 ~@2]!112
  [~@4 d2 ~@7 d2 ~@3]!4
  [c2 ~@3 d2 ~ c2 ~@3 c2 ~ d2 c2 ~@2]!28
  [c2 ~@15]
>`).s("gm_acoustic_guitar_steel").gain(0.55)

// drums · kick
const kick = s("bd").struct("<[x ~@5 x ~@3 x ~@2 x ~@2]!112 ~@4 [x ~@5 x ~@3 x ~@2 x ~@2]!28 x>").gain(0.55)

// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!144 ~>").gain(0.55)

// drums · hihat
const hihat = s("hh").struct("<[x!16]!112 ~@4 [x!16]!28 x>").gain(0.55)

// drums · cowbell
const cowbell = s("cb").struct("<~@80 [~@2 x!6 ~@8]!8 ~@8 [~@2 x!6 ~@8]!8 ~@41>").gain(0.55)

stack(bass, brass_section, bass_2, kick, snare, hihat, cowbell)