Drew Jex and Dr. Dan Ventura, Computer Science Department
Introduction
A common element in music is the concept of repeating patterns. It is the careful organization and combination of notes and rhythms that forms these patterns, and indeed the very essence of music itself. Because music is definitive and pattern-based, we as humans recognize it intuitively as music, distinct and discernible from other random sounds. Music can therefore be roughly defined as ”a combination of patterns, plus some variety.” If we can describe music in terms of such patterns, then it becomes at once easier to define, manipulate, and imitate. We propose a method for imitating and creating music from existing music through the analysis, manipulation, and reconstruction of repeated patterns found in music.
Methodology
Our approach essentially contains three processes in order to create a new song:
1. Deconstructing an existing song into a manageable set of patterns.
2. Manipulating, rearranging or copying the patterns.
3. Putting the patterns back together
To perform deconstruction, our computer algorithm, which will be referred to as “MusicMaker”, converts a MIDI file to a data model that’s easier to manipulate and find patterns. This data model consists of a collection of pattern-objects which keep track of the various patterns of notes MusicMaker finds throughout the song. Depending on the parameters provided, the length of these patterns can be as small as one or two beats or as big as entire measures.
After deconstructing the provided song into a collection of patterns, MusicMaker can make changes to the patterns or structure to create something new. This phase of music-generation is most important in determining what the final result will sound like. In our most recent versions, we created several tools that would develop pattern objects into a more repetitive and a more pleasant final result than randomly combining notes, such as evaluating results with a scoring function based on the number of patterns it finds and selecting notes that are close together.
After creating sub-pieces for each pattern during manipulation, it is relatively simple to recombine the pieces into a song. When the song is complete, it can then be converted back to MIDI format and played back on the computer. From phase one to phase three, the entire process only takes a few seconds.
Results
In order to test the success of creating new music using the previously described methods, we created a web-based survey seeking input on how well the music imitates the original music. We are asking this under the assumption that if our music can create something that sounds similar to the original music, then it’s also somewhat similar in the level of enjoyment experienced by the listener. The results from our survey are shown in the figures below. The figure on the left indicates the percentage of correct responses for each of the four questions, while the figure on the right shows the average ratings (from 1 to 5, 5 being that the new song is very similar to the original song) that respondents submitted for the computer-generated songs.
Discussion
The survey suggests that most people, regardless of musical training, could answer at least 75 percent of the survey questions correctly. Such a high percentage shows that MusicMaker can, to some degree, create new music that sounds similar in style and structure to existing songs. The end goal of MusicMaker is to eventually be able to mutate the pattern structure to create something that is perhaps hardly traceable to the original song, yet still maintains the key component of repetitive patterns and chord-progressions, etc. The main goal for this research, however, was to evaluate how well MusicMaker can mimic music using the basic idea of imitating the structure of repeated patterns, which it appears to be able to do successfully.
Conclusion
We have built a solid framework to improve the efficiency and quality of generating new music from existing music. By giving MusicMaker the ability to break apart a song into patterns, it is relatively simple to generate new songs with a sense of repetition and structure which we propose are core, fundamental elements of music.