Computer Music

Columbia University
Fall, 2012 -- G6610X
Brad Garton and Bryan Jacobs

course syllabus
general resources

Because the field of "computer music" is so broad as to be almost silly as a definite label, we decided awhile ago to make this seminar a topic-oriented seminar. Each year we sit and think of yet another FUN FUN topic in "computer music" that we can teach, and this year we've decided to revisit an area that has brought joy to many through the ages: algorithmic composition. What is algorithmic composition? Do we coerce some guy named Alfred to "go" with his bizarre and fascinating internal sense of rhythm and transcribe the results as a new piece? No no no no NO!

Algorithmic composition is a catch-all term describing a range of computing techniques applied to the generation of music; techniques used to construct pitch, timbre, rhythm (go Al, go!), structure -- the whole range of usual musical suspects. Our challenge this year will be to try to come up with new ways of mapping from algorithms -------> music, hopefully sparking interest in at least a few of these digital approaches among participants in the seminar.

We'll be looking at methodologies ranging from simple probability and control-branching strategies to neural nets and artifical-life simulations, hitting some of the hallowed algo-music procedures (stochastics, markov chains, fractals, strange attractors, etc.) along the way. One of the choices we had to make was the level at which we focus this class. Because algorithmic composition is nearly an entire field-unto-itself at present (and a relatively mature one, technologically considered), a number of turnkey applications exist for crafting algorithmic music. We will be showing a few of these, but we will be aiming more at generalized techniques as they are implemented in a range of different music-programming environments. Don't be concerned, however, this is not intended to be a programming class. We're more interested in communicating the concepts underlying the RTcmix or LISP or Max/MSP or Supercollider code-patches we present. We'll also have plenty of resources available (i.e. people to help!) if you do start floundering with code. In addition, we'll also be looking at several 'mid-level' coding environments that facilitate algorithmic composition approaches. These can be very useful for exploring the wild and wooly algo-comp world.

As always, we'll have a several special guest-stars coming into the class as the term progresses. Stay tuned for partciular info about them. They will be listed on the course syllabus as soon as things get set.


Class meets on Tuesdays in 320H Prentis from 5:30 to about 8 or so. We will be making a few assignments throughout the term, mainly to spur class discussion. Hopefully some of the assignments may lead to your final projects for the class (see below).

Here are a few links to software that we probably will be using in class:

Any/all of the languages and packages mentioned above, plus others you might be more comfortable using, are fair game for you to employ in this class. As much as possible, we will try to use public-domain or shareware programs. Check the resources page for links to additional download sites. We'll also be adding links to information on the course syllabus.


Nearly all of the CMC studios and hardware resources are available for you to use. If you prefer to work on your own computer using applications you know, that's perfectly fine. Otherwise you may sign up studios and machines for doing your work at the CMC using our on-line signup system. If you are having trouble getting access to the hardware or software you need, please let us know. The CMC is intentionally in a state of perpetual flux, reflecting the rapid evolution of the field of computer music. Our primary guide for the kinds of hardware and software investments we need to make comes from you, our happy students!

Please let us know if you are having problems getting equipment or software apps to work for you. In general, if you are having difficulty understanding the programming paradigms we are using or the applications and information we are covering, be sure to talk to us. We'll be happy to sit down and work through any issues with you.


The course syllabus is located here.

Each week we do will become a link to information relating to that class. We'll try to keep up with linking in class patches, examples and information, but we may fall behind. Yell at us when we do.

Contact Information

The best way to reach us is through e-mail: I will also be holding semi-official office hours from 10:30 AM-12:00 noon on Wednesdays in Dodge (my Dodge office is room 807). I will also usually be around before or after class. In addition to being around the CMC on Tuesdays, Bryan will be available by appointment for informal "lab" sessions.

Last year we began holding general lab/hack sessions for all CMC classes on Tuesday afternoons. These sessions proved to be very valuable, so we'll be doing them again this term. If you're having troubles with anything in the class, or you'd like to discuss possible approaches for a project, or you'd just like to hang out with a bunch of excellent and interesting people, cruise on down here on Tuesdays before class. The official time for these sessions at present is 4 PM -- 5 PM, but we'll be here pretty much the whole afternoon.

It's always a good idea to make an appointment to see me, even during my purported office hours, because I often have to run around campus like a maniac doing strange, computer-music stuff. If you need to contact someone at the CMC or Music Department using your actual voice, the relevant phone numbers are:


Grades will be based mainly on the projects you do, and of course they will be completely subjective and the result of our own personal whims -- so ya better treat us right! We will discuss projects as the semester progresses. As noted above, we will be making some assignments throughout the term, and we will be discussing these in class. It'a always fun to see what you all can do.

I say this every year, and generally people believe it (I think): by this point in your career the last thing you should be worrying about is a grade. The main thing is to find something that you'd really like to do and then do it. Please don't try to impress us with your consummate knowledge and skill, we are more impressed by people who do things. Honest!

Hope you enjoy the class!