Strudelify
It Takes Two cover art

1988 · It Takes Two

It Takes Two

Rob Base

KeyG majorTempo110 bpm
0:00/0:00
// It Takes Two — Rob Base
// 110 bpm, 4/4, key G major. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(110/4)

const chords = arrange(
  // intro (8 bars)
  [8, "<Fm!2 Eb Fm ~!4>"],
  // chorus (8 bars)
  [8, "<[G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~>"],
  // verse (13 bars)
  [13, "<[G@2 F G] ~!4 [G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~!3>"],
  // chorus (8 bars)
  [8, "<[G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~>"],
  // verse (17 bars)
  [17, "<[G@2 F G] ~!4 [G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~!5>"],
  // chorus (8 bars)
  [8, "<[G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~>"],
  // verse (15 bars)
  [15, "<[G@2 F G] ~!4 [G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~!3>"],
  // chorus (8 bars)
  [8, "<[G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~>"],
  // verse (25 bars)
  [25, "<[G@2 F G] ~!24>"],
  // chorus (8 bars)
  [8, "<[G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~ [G@2 F G] ~>"],
  // outro (8 bars)
  [8, "<[G@2 F G] ~!7>"],
  // fadeout (4 bars)
  [4, "<~!4>"],
)
const bassline = arrange(
  [8, "<f2!2 eb2 f2 ~!4>"],
  [8, "<[g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~>"],
  [13, "<[g2@2 f2 g2] ~!4 [g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~!3>"],
  [8, "<[g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~>"],
  [17, "<[g2@2 f2 g2] ~!4 [g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~!5>"],
  [8, "<[g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~>"],
  [15, "<[g2@2 f2 g2] ~!4 [g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~!3>"],
  [8, "<[g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~>"],
  [25, "<[g2@2 f2 g2] ~!24>"],
  [8, "<[g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~ [g2@2 f2 g2] ~>"],
  [8, "<[g2@2 f2 g2] ~!7>"],
  [4, "<~!4>"],
)

// chords · gm_piano
const keys = chord(chords).voicing().s("gm_piano").gain(0.8)
// bass · gm_electric_bass_finger
const bass = note(bassline).s("gm_electric_bass_finger").gain(0.9)
// drums
const drums = s("[bd hh] [sd hh] [bd hh] [sd hh]").gain(0.8)

stack(keys, bass, drums)