In a broad exploration of algorithmic composition, I will study the creative aspects of music composition. In doing so, I will attempt to learn more about the human creative process and methods for simulating such creativity. I will demonstrate my findings and show my own creative ability by building a working computer program to generate new, original compositions. I will conclude the demonstration by producing a collection of unique and original music for each and every other seminar member in the form of a CD.
My inquiry here is no doubt a vast one. My love of composing, performing, and listening to music coupled with my fascination with computer programming has led me to a deep study of the art of computer-generated music. Formally known as algorithmic composition, the field of computer music demands a high degree of knowledge in all of the aforementioned skills; for this reason, the field continues to progress rather slowly even in an age of technological explosion. In order to algorithmically create music, one must not only attempt to uncover the mechanisms behind the human creative process, but also study the patterns that lie within and constitute enjoyable music as well as pack all of this abstract knowledge into the precise bounds of code and user interfaces.
I find the project of creating my own algorithmic composition program appealing for a number of reasons. As I mentioned above, it involves all of the subjects in which I have a great interest: music, computers, and even math. Since the field has had relatively few breakthroughs and an equally scarce number of working programs that implement algorithmic composition, I imagine that if I put a lot of effort into my work, I can make a serious contribution to the field. I can literally count on one hand the number of decent, working algorithmic composition programs available on the internet. Very few fields boast such a lack of implementation.
The work will be difficult. My ability to endure through the challenges that I will face in trying to emulate the creativity of a true human being will no doubt prove my worth as an honors student, provided I manage to endure said challenges. I also think that my work will show my passion for the subjects involved in this project. I'm excited, nervous, happy, and ready to work, all at the same time.
Resource Link Lists
The largest bank of resources I have found so far, algorithmic.net contains a huge list of algorithmic composition projects as well as all sorts of literature on the subject.
IBM developerWorks spaces: Music Programming and Algorithmic Composition
Another huge repository of all sorts of resources related to algorithmic composition and general computer programming with relation to music.
The Voice of Al-Kwarismi
A very extensive list of links related to algorithmic composition, music theory, and mathematics in relation to music. Unfortunately the site appears to be extremely old and few of the links have survived the years.
Algorithmic Composition Tools
Bloom is a mobile application developed for the iPhone that implements algorithmic composition to compose original ambient tracks with or without user input. Brian Eno, the founder of ambient music, co-developed this project.
A freely-available and unpublicized software, cgMusic is the gem of all algorithmic composition tools that I have found so far. Maciej Biedrzycki created this flexible architecture that uses a scripting engine and expert systems to generate coherent music. A very impressive demonstration of algorithmic composition.
A fairly extensive algorithmic composition tool aimed at creating ambient music. Good implementation and interface, though restricted in terms of genre.
Soundtrek Jammer Pro
Though more of an assisted-composition tool rather than a full-out algorithmic composition software, Jammer still qualifies to some extent as random composition. The sound demos are pretty impressive and it looks like a well-made program with a nice interface. I could probably learn a lot if I could get my hands on this program.
Algorithmic Composition Methodology and General Information
A great overview of the history and methods of algorithmic composition as well as a broad definition.
Algorithmic Composition as a Model of Creativity
Bruce Jacob describes the workings behind his variation system for algorithmic composition. Interestingly, his method involves splitting the work into two distinct parts: the 'composer' module and the 'ear' module. The first generates music, the second evaluates the quality of the generated music and filters it until a piece of adequate quality is found. This sounds like a promising method.
A Brief History of Algorithmic Composition
The title of this one leaves little to be explained. Very concise and well-summarized history of algorithmic composition.
Composing with Genetic Algorithms
Bruce Jacob explains in further detail the method of genetic algorithms, part of the variation algorithmic composition system mentioned above.
The Geometry of Music
Discusses and interesting analysis method developed by Dmitri Tymoczko in which chord progressions are mapped to various mathematical spaces. Provides a look into the math of chord progressions and could be useful for the progression module in my algorithmic composition program.