Strudelify
Tenderness cover art

1984 · All The Rage

Tenderness

General Public

KeyC majorTempo180 bpm
0:00/0:00
// Tenderness — General Public
// 180 bpm, 4/4, key C major. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(180/4)

const chords = arrange(
  // intro (12 bars)
  [12, "<F!2 C G F!2 C G F!2 C G>"],
  // verse (16 bars)
  [16, "<F!2 C G F!2 C G F!2 C G F!2 C G>"],
  // trans (4 bars)
  [4, "<F!2 C G>"],
  // chorus (4 bars)
  [4, "<F6 F C G>"],
  // verse (16 bars)
  [16, "<F!2 C G F!2 C G F!2 C G F!2 C G>"],
  // bridge (16 bars)
  [16, "<Em!2 F G Em!2 Am G Em!2 F G Em!2 Am G>"],
  // chorus (8 bars)
  [8, "<F6 F C G F6 F C G>"],
  // bridge (18 bars)
  [18, "<Em!2 F!2 G!2 F!2 Em!2 F!2 G!3 [G@2 Bb^7@2] Bb^7 [Bb^7@2 ~@2]>"],
  // trans (8 bars)
  [8, "<F!2 C G F!2 C G>"],
  // chorus (8 bars)
  [8, "<F6 F C G F6 F C G>"],
  // bridge (16 bars)
  [16, "<Em!2 F G Em!2 Am G Em!2 F G Em!2 Am G>"],
  // chorus (16 bars)
  [16, "<F6 F C G F6 F C G F6 F C G F6 F C G>"],
  // fadeout (20 bars)
  [20, "<F6 F C G F6 F C G F6 F C G F6 F C G F6 F C G>"],
)
const bassline = arrange(
  [12, "<f2!2 c2 g2 f2!2 c2 g2 f2!2 c2 g2>"],
  [16, "<f2!2 c2 g2 f2!2 c2 g2 f2!2 c2 g2 f2!2 c2 g2>"],
  [4, "<f2!2 c2 g2>"],
  [4, "<g2 f2 c2 g2>"],
  [16, "<f2!2 c2 g2 f2!2 c2 g2 f2!2 c2 g2 f2!2 c2 g2>"],
  [16, "<e2!2 f2 g2 e2!2 a2 g2 e2!2 f2 g2 e2!2 a2 g2>"],
  [8, "<g2 f2 c2 g2!2 f2 c2 g2>"],
  [18, "<e2!2 f2!2 g2!2 f2!2 e2!2 f2!2 g2!3 [g2@2 bb2@2] bb2 [bb2@2 ~@2]>"],
  [8, "<f2!2 c2 g2 f2!2 c2 g2>"],
  [8, "<g2 f2 c2 g2!2 f2 c2 g2>"],
  [16, "<e2!2 f2 g2 e2!2 a2 g2 e2!2 f2 g2 e2!2 a2 g2>"],
  [16, "<g2 f2 c2 g2!2 f2 c2 g2!2 f2 c2 g2!2 f2 c2 g2>"],
  [20, "<g2 f2 c2 g2!2 f2 c2 g2!2 f2 c2 g2!2 f2 c2 g2!2 f2 c2 g2>"],
)

// 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)