Computer Music

Columbia University
Fall, 2000 -- G6610X
Brad Garton and David Birchfield

Hello, and welcome to our fun digital world. We will be holding class from 5 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, and the configuration of machines and studios may be "evolving" during the coming year (we are in a period of massive upgrading at present). 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. We're just living in a web-ified world these days...

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) have largely been subsumed by the Basic Electroacoustics class (G6601/2) taught by Thanassis Rikakis and Luke Dubois. 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.

This year we are planning a slightly different approach to the entire CMC course structure. Rather than think of each course as being a linear, self-contained entity designed to survey a particular span of knowledge, we have decided to "modularize" the topics we cover, with the intention being that you, the happy Columbia student, can choose from a range of options in order to best address your particular areas of interest. We will be posting a listing of module-offerings and meeting times/locations on our web site (check here for a link). We expect that each module will run for 2-3 sessions. Several of the CMC staff members as well as all CMC teaching assistants have agreed to assist in this effort, so we will actually be able to cover a larger range of topics than we could with the older courses.

What does this mean for you? In actuality, it can mean very little real difference, or it can mean a lot. It all depends on your willingness to Devote Your Life to computer music. For example, this G6610 class can be taken as a single entity (just like in the past), even though it is now construed as a set of three modules. Or you can attend all the G6610 classes and sign up for a number of additional modules to enhance your computer-music skills -- for example, we will not be covering the MAX/MSP music-processing environment in this course, nor will we be explicitly dealing with basic-stamp programming. Should you desire information about these topics, you can choose to attend modules that offer instruction in these areas.

As mentioned, we plan to offer the G6610 class as a set of three 4-session (4 week) modules -- they will be meeting at the regular time for this class (Tuesday, 5-8 PM). The first module will be covering advanced aspects of algorithmic programming. The second module will concentrate upon the capacity of the computer to model various processes, and to exploit musical features abstracted from or mapped onto these processes. The third module will be looking at ways of analyzing music and sound using digital techniques, primarily based upon the Fast Fourier Transform (FFT). We haven't done a lot of what we plan this year, so it should be an exciting class... for us at least!

We will indeed be hitting a fair number of advanced tools and techniques during the year, but our primary purpose is not to teach these techniques explicitly. We will also be doing a fair amount of programming/coding in the class, but this is mainly to demonstrate to you what is possible and to show how to do certain things. It will be up to you to find your own level of engagement with what we cover -- we won't be requiring that you HEAVY DUTY C/C++ or Lisp hacking. It is loads of fun, though.

One other minor change we will be making to the structure of the this class has to do with the programming/music "divide". In the past, we have noticed that it is relatively easy for us to get mired in minutiae of programming to the point where musical objectives become a bit obscure. We plan to informally divide each Tuesday night class into two sessions. The first half will delve into coding issues while the second will be devoted more to applying our created programs (and existing tools) to specific musical tasks.

Depending on class interest and the utility of our planned module-offerings, Dave will probably be hosting "informal" lab sessions throughout the term. These labs are optional, mainly for people who feel that more information about class topics might be useful. Dave 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.

I will be making a few assignments throughout the term. In the past, I haven't done this, but I think that perhaps some suggested activities might help stimulate further work and provoke additional exploration of the topics we hit. We'll also be asking you to do a final project: a finished piece of music, a computer application, a nifty new piece of research, ground-breaking visions, whatever. We'll talk more about this later in the term.

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. Nearly all the software we use in this class is public-domain, so hopefully it will be easy for you to set up a working environment on computers outside the CMC. We will be working primarily on new Linux machines this term, and our studio configuration has changed a fair amount over the summer. Douglas Repetto and Terry Pender will be offering short introductory course modules designed to cover new studio design within the next week or two.

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 will be password-protecting this syllabus at some point in the term because of potential copyright issues -- we will give out the password in class.]

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 3:30-5:00 PM on Tuesdays at Prentis and 10:00 AM-12:00 noon on Wednesdays in Dodge (my Dodge office is room 807). 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!