[home]
[policies]
[syllabus]
[signup]
[CECM]
Assignment 2: Introduction to RTcmix
RTcmix is a program that generates or processes sound according to instructions
you give it in a simple programming language. Because you use a programming
language, it’s easy to make sound in response to an algorithm you
design. The algorithm typically incorporates a certain amount of controlled
randomness, letting the computer make some of the decisions when rendering
the sound.
This is a very different approach from the way we work with sequencer-based
tools, such as Digital Performer or Pro Tools, and their collections of
plug-ins. Not better — just different. Most people take the sound
produced by RTcmix and mix it in a program like Pro Tools.
RTcmix is an open source project that uses the
GPL software license. As a result, the source code for the
program is free: it doesn’t cost anything, and you have the freedom to
change the code. This probably doesn’t sound like a big deal, but it is.
It means, at least in theory, that your creative work can be free from the
constraints of some company’s business plan. (Ask any former user of
Opcode’s Vision sequencer program about this.)
The source code for RTcmix, as well as some documentation, is available at RTcmix.org. You can find compiled
packages for Mac OS X (both PPC and Intel) at iub.edu/~emusic/rtcmix/pkg.
Here’s what you should do this week.
- Brush up on your Unix command-line skills. (You’ll need them.)
- Open up a web browser and go to the
RTcmix Tutorial.
- Download the
example scores.
- Read the first part of the tutorial, stopping just before “Sound
File Input and Output.” Make sure you run the example scores;
otherwise you won’t get much out of the tutorials. Be brave, and
make changes to the scores. Experimentation is the key to learning this
stuff!
- Write at least one RTcmix score that uses the WAVETABLE instrument and
explores as many of the following concepts or techniques as you can.
Be ready to play and discuss your scores in class.
- looping
- randomness
- envelope tables
- non-sine wavetables
- pitch computation
- conditionals
- arrays
©2009, John Gibson