1. A method of generating a playlist of songs comprising: receiving a request for a playlist of songs; retrieving a defined mood gradient containing a sequence of target value sets, each target value set including a plurality of values in which each value represents a different objective musical characteristic; for each target value set in the mood gradient, selecting a song based on the plurality of values in the target value set; and generating the playlist of songs, the playlist containing each selected song in the sequence of the mood gradient.