Since the evolution of dance music, people have enjoyed listening to disc-jockeys (DJs) blending songs together to create a continuous musical session. This project concerns an automated implementation of this process which potentially could be installed on music playing software on a home PC, or perhaps as a feature on a portable MP3 player.
The process is carried out by performing a set of signal processing methods on input song signals. It focuses on the accuracy of the output, and includes a machine learning classification system which rejects songs from consideration if it identifies them as unlikely to mix adequately. It also contains a process which mimics a DJ by extracting appropriate features and using them to order the input songs in a desired manner, before mixing them together.
The program was found to extract the tempo from 50% of test songs with sufficient accuracy to mix them confidently. The mixed output was evaluated by human listeners, who concluded that 42% of mixes were ‘good’, 28% ‘passable’, and 30% ‘bad’.
The tempo extraction method and the mixability classification process were found to be very effective. It was established that the majority of poor mixes were created when the method aligned songs relative to one another inadequately.