Posts In:


February 9, 2009 General News 0 Comments

I've completely deconstructed the program's main GUI over the past few days and am now in the process of redesigning it to be sleeker, more efficient, and more powerful all at the same time. It's starting to actually look like a real piece of software now. One of the problems with algorithmic composition is that it's so darn complicated. If I'm ever to get this thing going mainstream, users will need the interface to be intuitive and easy to use.

Progress Report #5

February 5, 2009 General News 0 Comments

Purpose Statement

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, 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

Algorithmic Composition

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.

New Resource Links

February 4, 2009 Sources & Notes 0 Comments

IBM: Music Programming and Algorithmic Composition
Developer space for a wide variety of algorithmic composition resources, tools, etc. Very extensive!

The Geometry of Music
Excellent article that takes a more mathematical approach to music analysis.

Blog: Ideas and thoughts on computer programs that compose music
Katarina Miljkovic seems to have produced a new electronic piece of music for her blog each day for quite some time in 2007. I haven't yet figured out if these pieces were generated algorithmically or by her, but it seems like a valuable resource.

Music Algorithms
Really cool website dedicated to demonstrating the mathematical relations in music. It has a bunch of fun tools that let you try algorithmic composition yourself!

The Voice of Al-Kwarismi
Great list of sources related to algorithms, music, and math in general.

Generative Art and Music
Yet another helpful list of sources related to generative music.


February 4, 2009 General News 0 Comments

Intermorphic appears to be one of the only companies currently actively "marketing" algorithmic composition. They market three such tools: a generative music application for desktops, one for mobile devices, and a generative lyrics tool. The programs are known as noatikl, mixtikl, and liptikl, respectively. Brian Eno, known as the father of ambient music, helped author the programs.

Considering that these make up a large portion of the algorithmic composition software that I have encountered so far, I think it would be wise for me to study them and learn how they operate. I have messed around briefly with noatikl already, and have found the following:

Pros of Noatikl

  • Clean interface
  • Well-structured generative process
  • Flexible, powerful scripting engine and ability to make "hyperinstruments"

Cons of Noatikl

  • While the interface is clean, it's not altogether inviting to inexperienced users
  • Not powerful enough for genres outside of ambient

In short, Noatikl is a fairly well-implemented algorithmic composition program, but it lacks the power to break outside of the droning ambient genre, thus severely hindering its mass appeal.

Brian Eno

February 2, 2009 Sources & Notes 0 Comments

Brian Eno

  • Father of ambient music
  • Worked with popular bands such as U2 and Cold Play
  • Help produce the SSEYO Koan Generative Music system
  • Co-developed "Bloom," an interactive generative application for iPhones
  • Designed the generative sound engine for the game "Spore"


Progress Report #4

February 1, 2009 General News 0 Comments

This week, although I worked hard on my program each day, I did not preview any sources. At least I'm honest, right? I had decided that the week would be dedicated to the programming/creative aspect of my thesis. Next week I will shift my focus back to research. I think alternating this way will help me, since I can research methods one week and then spend the next week trying to implement them. So, in short, no sources this week, but expect many next week.

Reflecting on the Week
In my last report, I set three goals, two of which I have partially met this week. First, I said I would like to finish the Variating Drummer plugin. I should have known that 'finish' is simply too strong of a word to ever use in setting goals. Nonetheless, I 'finished' giving the plugin some basic functionality this week. In other words, it now works on a very basic level. I doubt that any single component will truly be 'finished' until the end. But it now works, so I consider that goal fulfilled.

My second goal was to develop a method for generating melody. In this goal I failed. I did not even attempt to develop such a method this week. It's a very, very difficult problem to tackle, and to be honest, I'm still not entirely sure how I'll approach it. Eventually I'm going to have to face the problem, but I think for now I should stick to the basics rather than try tackling something this difficult.

Finally, I said I wished to have a basic trance song outputted by the program by the end of the week. In theory I met the goal, but it wasn't really what I had in mind. There's still not much creativity in the output, so it hardly counts as a song...all the elements are very simple. Nonetheless, I think it still counts.

Overall, I think things are going well. My only concern is losing my creative steam. Right now I'm pushing full force ahead...but it's very easy to get sucked into the routine of grinding out lines of code without really thinking about the innovation it takes to 'synthesize' creativity. I need to be inspired in order to make an inspiring program. That means I just need to keep my creative juices flowing.

Goals for This Week
I'm going to try to be more specific and more realistic about my goals this week. Hopefully I'll be able to meet them all.

  • Research a New Method
  • It's about time I researched a new method of algorithmic composition. This week I will aim to find and extensively research a new method which I will implement next week if all goes well.

  • Finish the VDrummer Variation Algorithm Editor
  • I was too vague last week when I said complete the Variating Drummer plugin. This week I'll focus on trying to get the variation algorithm editor working since it's the last piece of the plugin that's not working yet. Variation algorithms basically provide the instructions for making drum style random and interesting; they comprise the heart of the VDrummer (Variating Drummer) system.

  • Make a Sound Demo
  • Last week I said I would try to make a basic trance song. Since I wasn't really impressed with my attempts to do so, I'm going to be more general this time. For the next status seminar (that is, in a week, not this coming one) I would like to have something to show for my work. Whether it's just a short clip of the VDrummer groovin' or a fully fleshed-out song demo, I want something tangible.