We have developed a number of techniques for the automatic generation of playlists. These techniques are based on the constraint programming paradigm. Playlists are seen as sequences of items (music titles) having global properties such as distribution, cardinality, continuity, etc. Items themselves have properties, called metadata (genre, tempo, etc).
These properties can be set by users using a library of constraints. Building a playlist is then seen as a constraint solving problem. Each title in the sequence is a variable, whose domain is the catalogue. Such an approach allows the user to focus on the global properties of playlists, rather than on individual properties of titles. The result is that playlists of arbitrary complexity can be easily produced with minimal a priori knowledge of the underlying music catalogue.
We have developed two constraint solvers at Sony CSL. A complete solver using the technology of BackTalk. Another solver (CtSolver) was developped using local search. These solvers are used for playlist generation (as in the PathBuilder application) and also for sample concatenation (musaicing).