Computer Music

Columbia University
Fall, 2003 -- G6610X
Brad Garton and Francisco Iovino

course syllabus
general resources

Hello, and welcome to our fun digital world. We will be holding class from 5:30 PM to 8 PM on Tuesday evenings in room 324 Prentis Hall. There are a number of places where you can do work for the class including your own machines, and the configuration of machines and studios may be "evolving" during the coming year. Some of this evolution will depend on how this class functions, so if you are having difficulties getting to the appropriate equipment, please let us know! This is also supposedly our last (scheduled) year in the present Prentis building, so we'll probably not do a lot of infrastructure investment, but we will certainly be futzing around with new machinery and software.

Check on the course syllabus up-to-date information, class announcements, etc. We will also be placing a lot of other material related to the class on this page. In particular, we'll be putting a lot of the class notes and links to references/resources under each of the syllabus entries, so visit often for FUN FUN info!

During the past several years, I have tried shifting the structure of this course around -- the original intent of the class (to teach the tools and techniques of computer music) has largely been subsumed by the Basic Electroacoustics class (G6601/2) taught this year by Terry Pender, Douglas Repetto and James Fei. The field of computer music has experienced explosive growth in the past decade, and it has been a challenge to define the particular focus of this (G6610/11) class. To be honest, I'm not even sure how much meaning the term "computer music" actually has these days.

Over the summer, we began to re-think our pedagogical offerings through CMC courses, and we will be trying a different approach this year. Instead of teaching 'tools and techniques' -- showing how a particular computer music language works, or showing the parameters for a specific signal-processing algorithm -- we want to focus on a more "topic-oriented" methodology (or as Douglas Repetto likes to put it: why, then how). We will be showing you a diverse and hopefully interesting set of applications and concepts, leaving it up to you, the happy computer-music student, to figure out what you'd like to do and then how to accomplish it.

In this class, we will attempt to hit truly advanced topics, nifty stuff like weird algorithmic programming approaches, musical applications from a-life research, grow-your-own FFT, etc. In presenting these, we will often 'gloss over' the real programming work and context necessary for these snazzy applications to take place. However, we will be putting all of our class samples and code fragments on-line, and we have also worked to get in place extensive tutorials and documentation for the primary languages and computer-music environments we plan to use in our class demonstrations. (again, see the general resources pages for links and information).

If you are having problems with the class, or if you need some assistance in getting a projected started, PLEASE be sure to contact Francisco or myself for help!

We will be showing a fair amount of C/C++ code (and possibly Java) during the course of the year. We might even throw in a bit of Lisp and Smalltalk. The idea is not to teach you to become ace programmers, but to realize how to twist a programming language/environment to a particular musical end. Everything we show will be aimed at a musical application or result. It may be tremendously boring, but what the heck. If you truly hate this stuff, then maybe you should seriously considering not taking this class.

The class will be wide-ranging, perhaps focussing in one session on real-world modelling, and in the next possibly a look at abstract feature extraction in an interactive context. We will be using these computer languages/environments primarily -- RTcmix for much of our non-interactive algorithmic synthesis and signal-processing examples, Max/MSP for real-time, interactive applications, and OpenMusic for a lot of our computer-aided composition examples. We may also show a few programs during the term that draw upon JSyn, CSOUND, and possibly SuperCollider 3. Any/all of these languages are fair game for you to use. As much as possible, we will try to use public-domain or shareware programs in the class. RTcmix, CSOUND, JSyn and SuperCollider are all free for developers to use. Check the resources page for links to the download sites. Max/MSP is a commercial package, but it is about the best there is at present for doing interactive music work.

We will be asking each of you to prepare a final project for this class. Your project may well be a work-in-progress, but we will expect you to engage something you find interesting in computer-music. There should be some kind of reason for your wanting to take this class! There will also be public performance/presentation opportunities that will arise during the course of the semester. Please take advantage of them! If you are at all worried about your grade for this class, please come and talk to us.

Francisco will be hosting informal lab sessions throughout the term, generally on Thursday afternoons. These labs will be optional, mainly for people who feel that more information about class topics might be useful. Francisco and I are also both available by appointment, or through e-mail, phone, etc. (see below for contact information). If you are feeling totally dazed and confused by the class, please let us know. Chances are that we also feel the same way.

We do realize that there are at least a few of you who would like to take this class to continue work on a particular piece of computer music, or perhaps survey the extant stuff that is "out there". This is fine, but we warn again: the class may be really boring for you, and we do want you to try a realization of something.

Finally, we do assume that you sort-of know your way around our studios and hardware. If you don't, ask and we'll find a way to get you the information you need. You may also choose to do class work on other machines, including your own home system. Hopefully it will be easy for you to set up a working environment on computers outside the CMC. We will be working primarily on Macintosh and Linux machines this term, and our studio configuration is always in a state of flux.

We also plan to continue expanding and upgrading our facilities a lot this year, so machines/studios will most likely be rearranged at some point (more about this in class!). We will try to keep disruption of the class to a minimum, and let you know about any fun new toys we get in the class. Like I said, this should be an exciting term!


The course syllabus is located here.
[Note: We may be password-protecting this syllabus at some point in the term because of potential copyright issues -- we will give out the password in class if we do this.]

Contact Information

The best way to reach us is through e-mail: or If the machines are in flames and our e-mail server is down, you can also contact me via: 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 usually be around from 3:30-5:00 PM on Tuesdays at Prentis, and Francisco will generally be available on Thursday afternoons. 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. You can also call on the phone, but please refrain from calling my home much after 11:00 PM or my wife will mutter evil curses that will affect Your Future. Relevant phone numbers are:


Grades will be based mainly on the final project you do, and of course they will be completely subjective and based on our own personal whims -- so ya better treat us right!

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