Sound: Advanced Topics II

Columbia University
Spring, 2015 -- G6611Y
Brad Garton and Christopher Trapani

course syllabus

This semester will definitely be, um, "experimental". The plan is to teach how to develop music/audio apps for iOS and Android mobile computing platforms. The "experimental" aspect is that we will not be assuming any deep programming knowledge to do this. Having programming knowledge will certainly help, but our approach will be to show from a musical perspective how to build and create mobile apps.

RTcmix music-DSP programming language in conjunction with the OpenFrameworks development environment that should be fairly easy to negotiate. We'll have a number of 'templates' that can be used and modified to accomplish particular tasks. Or at least that's the idea...

Interested students have asked me if they could take the course without a strong technical or programming background. I've said "yes", and my hope is that we can present the material in a fashion that will validate that response. We will be doing a fair amount of coding in the class, but (hopefully) this will be a learning-by-doing experiment that works. If you do have a decent amount of programming experience, then the class should still be informative because of the specific tools and techniques we will be covering.

One potential problem is that we will be doing all of our examples and coding using Macintosh/OSX computers, not on Windows or Linux machines. For iOS, this is a requirement. For Android development, we will be using the Eclipse IDE on Mac/OSX. The good news is that the code we will be writing is virtually identical for both iOS and Android -- this is the big win with using OpenFrameworks. I don't know if the Eclipse/Android/RTcmix projects will function properly under Windows or Linux. I believe that it might work on these platforms, but you will have to figure out the appropriate installation and setup yourself. OpenFrameworks does support Windows and Linux, but the RTcmix library is only set up for Android within Eclipse on OSX. Eclipse runs on Windows (I think on Linux too), but I'm not sure how friendly the Windows or Linux compilers will be to the underlying RTcmix source files. If you have these computers and the above several sentences make no sense at all to you, then you may have difficulties in the course. We will be setting up several of our Macintosh workstations at the CMC for classwork, however.

We hope the course isn't derailed by the emphases on coding this year. If you are having serious problems, please come to talk to Chris or me so that we can adjust the syllabus to make it work. And if you do manage to develop the One App to Rule Them All, then we get 10%.


Class meets on Tuesdays in 320H Prentis from 5:30 to about 8 or so. We will be making a few assignments throughout the term, and some of them will be important because they involve downloading and installing packages that will be essential for our instruction. We'll also be using assignments to check to see if what we are teaching is getting across (like I said, this is an "experimental" class!).

Here are a few links to software that we will be using in class:

We'll be going over the installation and configuration of much of this software in class, but you are welcome to go ahead and get things rolling if you'd like.

We will also have several guest speakers in the class during the term. Watch for announcements on the course syllabus.


Nearly all of the CMC studios and hardware resources are available for you to use. If you prefer to work on your own computer, that's perfectly fine. Otherwise you may sign up studios and machines for doing your work at the CMC using our on-line signup system. 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!

Please 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.

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 also 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 before or after class. In addition to being around the CMC on Tuesdays, Chris will be available by appointment for informal "lab" sessions. We also started something last year that has proven to be very useful for a number of students. Each Tuesday afternoon, starting about 4 PM, CMC-people will be available in room 320H for questions and assistance with individual coding problems. We call these our "CMC Hack Sessions".

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

One of the things that changed a few years back concerns access to Prentis Hall. For graduate students 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. For undergraduates, however, you will not be allowed to be in Prentis between midnight and 7 AM. Card-swipe access for undergraduates will be turned off during these hours, and (unfortunately) we will need to enforce sanctions against any undergraduate student who remains in Prentis during this time-period. This policy is also listed here.


Grades will be based mainly on the 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 will be making some assignments throughout the term, and we will be 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!