RTcmix Glossary


Interface


A RTcmix 'interface' is defined as anything that puts out socket commands to cmix. This can be a graphical user interface, a MIDI keyboard or other physical controller, or a simple text-only program that sends cmix commands as you type.

Score File


In the disk-based version of cmix (and, historically, in most computer music languages), a scorefile is a text document with a list of commands that the synthesis program (in this case, a cmix instrument) can recognize and use to make sound. Score files contain, for example, lists of sound files to be used, looping structures for algorithmic composition, and other pieces of data which cmix needs to function. The following example score file reads in the soundfile 'hello.snd', and mixes out the first four seconds of it into another soundfile, called 'goodbye.snd':

input("hello.snd")
output("goodbye.snd")

mix(0,0,4,1)

Socket


Real-time Cmix can be controlled in two different ways: by using a scorefile, or by sending commands directly to the RTcmix instrument over a socket. Sockets are a type of digital phone line that allows two different programs to talk to one another, even if they are being run on different computers. Most RTcmix interfaces are set up so that they establish a direct line of communication with a particular RTcmix instrument, sending commands to the instrument every time the user interacts with the interface.

MINC


MINC (Minc Is Not C) is the parser written for the original disk-based cmix in the 80's. Minc takes commands from a scorefile and breaks the commands down into their component parts, passing the instructions to the cmix instrument. MINC is so named because it can understand a stripped-down version of the C language syntax in a scorefile. For example, if MINC is given this:

for(n=0;n<5;n=n+1) {
combit(n,0,2,1,8.03,1)
}


it will pass the following to the cmix instrument:

combit(0,0,2,1,8.03,1)
combit(1,0,2,1,8.03,1)
combit(2,0,2,1,8.03,1)
combit(3,0,2,1,8.03,1)
combit(4,0,2,1,8.03,1)

Scheduler


In RTcmix, the scheduler takes incoming cmix comands (either from a socket or from a scorefile after going through the parser, MINC), and organizes them so that they are executed in real-time in the correct order. For example, in a scorefile you could write the events backwards, so that the first command in the file is supposed to happen ten seconds after the second command in the file. The scheduler makes sure that everything happens when it's supposed to.

Instrument


The RTcmix instrument is a heart of the synthesis/signal-processing engine. Commands are send to this instrument, which then acts upon them, turning your commands into music! Instruments fall into two categories: Real-Time instruments and Disk-Based ins truments. Real-Time instruments will execute your commands immediately, allowing you to audition your work or even perform music using an interface. Disk-Based instruments take the incoming commands and use them to write soundfiles out to disk, so that you can listen to them later. Real-Time instruments all have Disk-Based equivalents, so that you can use the Real-Time instruments as a scratchpad for a short part of your algorithm to make sure it's working, and then write the rest out to disk.

Input Soundfiles


In addition to commands, one of the great things about RTcmix is its ability to take pre-existing sounds and change them with signal-processing, rather than synthesizing sounds from scratch. Input soundfiles are sounds you provide to cmix, which it then modifies.

ADC


The analog-to-digital converter in a digital audio system is the device which takes input from a microphone or a mixing board and converts the analog waveform into a stream of numbers which the computer can interpret. In RTcmix, it is possible for an instrument to 'listen' to the ADC on your computer, taking input from the outside world and processing it.

Output Soundfiles


In order to make sounds in RTcmix that you can use later, the sounds you create must be stored in the form of soundfiles, which can be played back, edited, or reused in another cmix score as input soundfiles.

DAC


The digital-to-analog converter is the final stage in a digital synthesizer or signal-processing system. It takes streams of samples from the computer and uses them to create an analog waveform, which can then be sent to an amplifier and speakers for your listening pleasure.