Sound: Advanced Topics I

Columbia University
Fall, 2023 -- GU6610
Brad Garton and Yanqi Chen

course syllabus

This promises to be an insane semester, but I'm hoping that the insanity will result in loads of creative fun. I'm returning from a year-long sabbatical, and a lot has happened, sound-technology-wise, during this past year. I want to cover as much of these new developments as I can. At the same time, I also want to reinforce some of the tried-and-true and still-pretty-cool things that made us the INCREDIBLY EXCITING AND DYNAMICALLY WONDERFUL Computer Music Center that we are.

My plan is to cover three broad areas and bring them together at the end of the term. Each of these could easily be a full semester, or even full year, course on their own. Hence the insanity.

We'll take a look at aspects of what is called "algorithmic composition" for the first two or three weeks. This is the "tried-and-true" part of the class. Many of the topics we'll hit have been used for decades.

Algorithmic composition will give us a base for approaching the middle third of the class: current AI approaches to generating music. This field is presently exploding, and we'll do our best to cover some of the more salient issues. It is very much a moving target, however.

The final few weeks will be devoted to looking at AR/VR/XR applications, working to embed the sound- and music-generating activities we had explored in the class previously in virtual environments. We will be using the Unity development environment, and our obvious focus will be upon the integration of sound into the worlds we build.

Whew! To be sure, this is probably an impossible task to do in one semester. But you all are COLUMBIA students! Yay! You do IMPOSSIBLE things! Go Lions!

We will also be doing a fair amount of coding, BUT don't be worried if you have never done anything like this before! Everything we do will be with a musical goal in mind, and I think you'll pick up what we're doing without too much trouble. And for those with significant coding experience, the musical aspect should provide some new information that will allow you to expand your knowledge and keep the class from being too pedestrian. If you are feeling totally befuddled or bored, or even just a little befuddled or bored, please get in touch with Yanqi or me. We're here to help!

The computer language we will primarily use for most of the coding we do will be RTcmix, a text-based sound synthesis and signal-processing language we developed here at Columbia. It's fairly straightforward, although it does support advanced programming structures. We will endeavor to keep things relatively simple in class. RTcmix can be run 'standalone', but we will be using its 'embedded' form, as an extension to existing development environments. Nearly all the class examples and exercises will be done using the [rtcmix~] object inside the Max/MSP or pd (Pure Data) music/media development environments. This will set us up for deploying it in our Unity applications at the end of the class.

You should have at least some basic knowledge of digitial audio (how to record sounds onto your computer, how to edit them, etc.) and acoustics (frequency/amplitude/etc.). We won't be covering these aspects of 'doing' computer music in class (but again, if you have questions or are confused, please let us know!). We also don't assume any great knowledge of music theory or composition, but we hope you'll have some ideas of things you'd like to try by the end of the term.


We'll be meeting on Wednesdays from 6:10 PM to about 8:00 PM. We may make assignments throughout the term intended to get you working with the development tools and also spur class discussion. Perhaps some of the assignments may lead to your final projects for the class.

Collected here are links to the software we will be using in class:

We will be having at least one guest speaker coming into the class later in the semester; watch for announcements on the syllabus. We may need to rearrange the classes as the term progresses to accommodate these guests. Plus if we're getting totally behind, then we'll modify the schedule accordingly.


The CMC studios are available for use by you. Check with me or Yanqi about how best to access them. We'll be making several VR goggles available, connected to a powerful Windows machine with a fast gaphics card.

Do let us know if you are having problems getting the software to work for you. To be sure, this promises to be an intense term because of the range of material we will be discussing. 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 will link all of the code, patches and projects to each class in the syllabus for you to download and use. 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: We won't be having "office hours"; use e-mail to make an appointment. Generally, however, we'll be around the CMC before and after class.

Security and Access Policy

Your CUID card should work to open the main door to Prentis Hall, 24/7. We will be telling you the CMC studio door codes in class. We have a reservation system in place for you to use the studios. We will also be covering this in class.


Grades will be determined mainly by the final projects you do, and of course they will be completely subjective and based on our own personal whims -- so ya better treat us right! We will discuss projects as the semester progresses. As noted above, we may be making some assignments throughout the term and discussing these in class. It's 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!