Sound: Advanced Topics I



Columbia University
Fall, 2017 -- GR6610
Brad Garton and Onur Yildirim
with asssistance from Ethan Edwards

course syllabus


Back in the Olden Days, our graduate seminars in computer music used to form a sequence, each one building upon the others. We could cover Everything that there Was to Know in the entire world about "computer music" -- yes, everything -- with that approach. This is no longer true (actually it never was), so years ago we adopted a "topics"-oriented approach to our classes. Each semester we would focus upon a particular aspects of doing digital sound. Hopefully these would be relevant to the go-go world of contemporary digital audio at the time they were offered.

This term is no exception, and in fact we're pretty excited about the area we will be focusing upon this semester. We have managed to embed our RTcmix music programming language inside the popular Unity game engine used to develop games and virtual-reality/augmented-reality (VR/AR) applications. This gives us the capability to employ advanced real-time synthesis, signal-processing and algorithmic compositional capabilities in a robust game/VR-AR environment. THIS IS REALLY REALLY COOL!

It's also very very new, and we'll be making a lot of this up as we go along. This semester is something of an extension of last Spring's seminar, but that class is not a prerequisite for this term. It will be helpful if you know RTcmix and/or Unity, but if these are relatively new you should still be able to do the work for the class. There are many good on-line resources for picking up the skills that you may need. We will be linking to them from the class syllabus page. We also won't expect that you've done a lot (or any) programming in your past, although a little familiarity with coding will help. Unity itself is designed for non-coders to use, and we believe that it will be possible to develop interesting apps without extensive a-priori knowledge.

Because the underlying framework we are using for the class is still in flux, you will need to stay on your toes as the semester progresses. We also have no idea if we can even cover one-tenth of the materials we have planned to cover, but hey, this is Columbia! Go Lions!

We'll also be having 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. We may also have to radically bend and stretch the syllabus to accommodate what we plan to teach. Thus you should think of the syllabus primarily as a rough guide to the term and not necessarily set-in-stone. We will, however, link all of the code, patches and projects to each class in the syllabus for you to download and use.

To demonstrate how RTcmix functions in an embedded environment, we will be using it initially as the [rtcmix~] object in Max/MSP (you can also run it in pd. Using this approach is also a good way to develop audio outside the game environment, making it much easier to tweak and hone musical parameters of the audio you'd like to use.

Over the summer, we ported our RTcmix tools to Windows (except for the [rtcmix~] object for Max/MSP and pd, but hopefully we'll have it set soon!). This will allow us to take advantage of the fast graphics capabilities of contemporary Windows machines. Most importantly, nearly every VR/AR system runs only on Windows at present. We have a powerful Windows desktop computer for use in the class. However, most of the demos we do in the class will be on OSX.

If you have 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.


Structure

Class meets on Tuesdays in 320H Prentis 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 that we will be using in class:

For our guest speakers, watch for announcements on the syllabus. As stated above, we may need to rearrange the classes as the term unfolds to accommodate these guests. Plus if we're getting totally behind, then we'll modify the schedule accordingly.


Facilities

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. These are available at the Center.

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


Syllabus

The course syllabus is located here.

Like we said, 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 before or after class. In addition to being around the CMC on various days, Onur will be available by appointment for informal "lab" sessions. I've also listed Sound Arts grad student Ethan Edwards at the top of this page. Ethan is not an 'official' TA for this class, but Ethan has been instrumental in developing the RTcmix/Unity linkage. He'll be very involved in the class and is more than willing to help out with things. 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 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. External auditors will also need to obtain a CUID card for access, obviously. Talk to me about how we can arrange that.


Grades

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