Sound: Advanced Topics II

Columbia University
Spring, 2020 -- GU6611
Brad Garton and Onur Yildirim

course syllabus

This will be a very different class for me. I've always adopted the "show stuff"/lecture/code/fun model, thinking it was my job to impart precious knowledge to the class. But this term is meant to be a continuation of the massive data-dump that was last semester, and the focus will be upon you, the participants in the class.

What we plan to do is to feature projects you will be developing, and each class will be run more like a 'workshop' where we try different approaches to ideas and problems you may be having in creating your virtual worlds. Of course we will be using Unity and uRTcmix, but the particular aspects of development we emphasize will be up to you. We have gone ahead and roughed-out a potential syllabus, based on the end-of-term projects from last year, but this is completely malleable. If there are techniques you definitely want to explore, let us know and we'll do it! As before, the goal of the class is to give you the tools you need to develop your own nifty applications.

We've improved the documentation for uRTcmix, and we'll be adding more as the semester unfolds. And of course there is the work we did last term plus the previous work we did in the Fall 2017 class Again, be aware that many of the demos we did in that class (linked in the Fall 2017 Course Syllabus pages) used an older version of the Unity/RTcmix package and may not work properly.

Because of the way we will be conducting the class this term, we're reluctant to let people come in half-way through. If you're somewhat familiar with Unity and it looks to you that RTcmix won't present any major difficulties to learn (i.e. you know some coding), then you're welcome to give the class a try. Or feel free to simply 'sit in' on the class to see what we've been doing.

We'll also try to have a special guest or two come to talk to the class during the term. The dates may shift slightly on the syllabus as we work out the schedule. And of course, like we said above, the whole syllabus may be rearranged as we progress. We will again link all of the code, patches and projects to each class in the syllabus for you to download and use.

Links to audio software you may need for the class include (you probably already have these):

As we hope we showed last year, using these apps is a good way to develop audio outside the VR environment, making it much easier to tweak and hone musical parameters of the audio you'd like to use.

There are also a number of other audio utility programs available (like Audacity, Amadeus, SPEAR, etc.); we'll leave it up to you to use what you want to develop your sounds.

Except for classes where we focus explicitly on the VR devices and experience, we will be doing our class instruction using Macs. Nearly every VR/AR interface system (Oculus, HTC, etc,) runs only on Windows at present. We have a powerful Windows desktop computer for use in the class, and may be adding a second one if demand is high. You can still develop on OSX if you have the right tools installed, and most of the demos we do in the class will be on OSX.

If you have a Macintosh, you will need the Xcode/iOS Developer Tools to do development work. You will also need Visual Studio 2017 (get the free "Community" version) for Windows development. This may actually come with the Unity development download package. Obviously you will need that one.


Class meets on Tuesdays in 320H Prentis from 6:10 PM to about 8:00 PM. I doubt we'll make any assignments this term because the Big Assignment will be to bring in your work. Hopefully you'll have a nice, completed app by the end of the class!


Nearly all of the CMC studios and hardware resources are available for you to use. We have invested in a number of different VR/AR systems for use. The fast Windows machine is configured for use with both the Oculus Rift and the HTC Vive systems. We'll be showing how to get them going in the class.

If you prefer to work on your own computer, that's perfectly fine. We actually encourage this.

You may sign up studios and machines for doing your work at the CMC using our new sign-up system. We do these using the Google Calendar app available through your Columbia cunix account (i.e. Lionmail). You will again be receiving an invitation 'join' the relevant room calendars after the class starts. We'll be demonstrating how to use the system to reserve room times in class.

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!

Do let us know if you are having problems getting equipment or software 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.

As before, 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 be holding semi-official office hours from 10:30 AM - 12:00 noon on Wednesdays in Dodge Hall (my Dodge office is room 807). I will also usually be around the CMC before or after class. In addition to being at the CMC on various days, Onur will be available by appointment for informal "lab" sessions. If it looks like we need to schedule some more formal sessions for additional info, we will.

In general, 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:

Security and Access Policy

For graduate students, undergraduate students (I think) and external auditors taking our classes, the policy is 24/7 with card-swipe access. You will need to be approved for access -- Prentis is not open to all CUID holders. External auditors will also need to obtain a CUID card for access, obviously. Talk to me about how we can arrange that.


Grades will be determined mainly on 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. Duh. That's the premise of this class!

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!