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.
Collected here are links to the software we will be using in class:
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.
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.
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!