Strudelify
Liar, Liar cover art

1965 · Liar Liar

Liar, Liar

The Castaways

KeyC majorTempo146 bpm
0:00/0:00
// Liar, Liar — The Castaways
// 146 bpm, 4/4, key C major. Source: mcgill.
// Generated by strudelify. One cycle = one bar.
setcpm(146/4)

const chords = arrange(
  // intro (4 bars)
  [4, "<[C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2]>"],
  // chorus (4 bars)
  [4, "<[C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2]>"],
  // verse (8 bars)
  [8, "<[C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2]>"],
  // trans (2 bars)
  [2, "<[C@2 Ab@2] [G@2 F@2]>"],
  // verse (8 bars)
  [8, "<[C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2]>"],
  // trans (4 bars)
  [4, "<[C@2 Ab@2] [G@2 F@2] ~!2>"],
  // solo (4 bars)
  [4, "<[C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2]>"],
  // chorus (4 bars)
  [4, "<[C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2]>"],
  // verse (8 bars)
  [8, "<[C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2]>"],
  // trans (2 bars)
  [2, "<[C@2 Ab@2] [G@2 F@2]>"],
  // verse (8 bars)
  [8, "<[C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2]>"],
  // trans (2 bars)
  [2, "<[C@2 Ab@2] [G@2 F@2]>"],
  // chorus (4 bars)
  [4, "<[C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2]>"],
  // outro (5 bars)
  [5, "<[C@2 Cm@2] [Gm@2 F@2] [C@2 Cm@2] [Gm@2 F@2] C>"],
)
const bassline = arrange(
  [4, "<[c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2]>"],
  [4, "<[c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2]>"],
  [8, "<[c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2]>"],
  [2, "<[c2@2 ab2@2] [g2@2 f2@2]>"],
  [8, "<[c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2]>"],
  [4, "<[c2@2 ab2@2] [g2@2 f2@2] ~!2>"],
  [4, "<[c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2]>"],
  [4, "<[c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2]>"],
  [8, "<[c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2]>"],
  [2, "<[c2@2 ab2@2] [g2@2 f2@2]>"],
  [8, "<[c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2]>"],
  [2, "<[c2@2 ab2@2] [g2@2 f2@2]>"],
  [4, "<[c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2]>"],
  [5, "<[c2@2 d#2@2] [g2@2 f2@2] [c2@2 d#2@2] [g2@2 f2@2] c2>"],
)

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