Sound: Advanced Topics II

Columbia University
Spring, 2021-- GU6611
Brad Garton and Nina Fukuoka

course syllabus

This promises to be another "interesting" semester. It's not clear yet how the pandemic will continue to unfold, but this class will be entirely 'virtual' -- i.e. on-line -- for the entire term. But that's ok, because we're going to be discussing the Unity development engine with the uRTcmix embedded audio evironment, and hey! -- it's made for creating virtual worlds!

So we will be teaching the course remotely, using Zoom for our class meetings. We'll be meeting each week Wednesday at 6:10 PM (Eastern Time), and hopefully the pedagogy won't suffer too much. I will be sending out the Zoom link for each class before the weekly meetings.

We won't be going as deep into Unity and uRTcmix as I have in previous classes because I want to cover some other topics. Specifically, I want to spend a few sessions looking at the use of Unity on the web (WebGL/WASM), and I'd also like to spend some time discussing 'production' aspects of the sounds we build into various apps -- how can we make it sound good?

We will also be doing a fair amount of coding, BUT don't be worried about it! 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. If you are feeling totally befuddled, or even just a little befuddled, please get in touch with Nina or me. We're here to help!

In addition to the object-coding we'll be doing in Unity, we will be using the computer music language RTcmix for most of the audio work. It's a functional, procedural language with interactive capabilities. It runs as a standalone program (for free!) on Windows/OSX/Linux, or you can run it inside Max/MSP or pd (Pure Data) (pd is also free!). We will link all of the code, patches and projects to each class in the syllabus for you to download and use. I also plan to record our class sessions for you to review later if you'd like.

To work up our RTcmix scripts for use inside Unity, we will be using the [rtcmix~] object in Max/MSP. You can also use [rtcmix~] in pd if you'd rather not shell out the $$$ for Max/MSP. Or you can run RTcmix as a free "standalone" app on OSX, Windows and Linux computers. We can show you how to set that up. John Gibson at Indiana University has built a nice interface-app called RTcmixShell that runs on Windows and OSX, but it doesn't give you access to some of the interactivity we will be explorig for use in Unity.


As mentioned above, class will meet via Zoom 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 to spur class discussion. Hopefully some of the assignments may lead to your final projects for the class.

Collected here are links to software and resources that we will be using in class:

We will be having several guest speakers 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 will only be available for semi-public use because of the pandemic. This may (hopefully) change for the better as the situation evolves through the spring. Contact me or Nina if you'd like to have limited access. Unfortunately the emphasis will be on "limited" for now. We expect that most of your work will be done on your own computer.

Unfortunately, we can't at this time allow access to the CMC hardware most useful for this class: our VR gear (we have HTC Vive and Oculus Rift systems available). We don't have a good protocol for keeping the goggles safe from COVID. If the pandemic abates, we will be certain to get this set for you to use.

Do let us know if you are having problems getting the software to work for you. This promises to be a more 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.

Like we said, each week we do will become a link to information relating to that class. We will place recordings of the Zoom meetings on these class pages, too. 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 havving "office hours"; use e-mail to make an appointment to talk with us via Zoom.

Security and Access Policy

If you do use the CMC for limited(!) access, you will need to abide by the Columbia regulations in place at that time for campus access. The information for this (and other Columbia/COVID-19 issues) is here:


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'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!