The most recent version of cmix is on the ftp server and is called cmix..tar.gz. This version has a lot of bug fixes, and some nice new features such as a real-time sound option, which will pass output to the DACs as it is being computed. There is also a cute tape backup program which can actually play soundfiles stored on DAT or 8mm backup tapes.
This version will run on NeXT (sparc, m68k, intel), SGI (irix 5.3 and higher), and Sparc (solaris, sunOS)..
Here is the README
The contents of the directories are as follows
Minc-- c-like front end data specification language for Cmix. there is a man page on it
cmd -- a few utility routines, and a mixing program
fancier.instruments -- some fairly complex instrument examples There are some good examples of Minc scripts in this directory.
filters -- Parks/McClellen and and Elliptical filter program
head -- routines to create and tune headers
lib -- library of unit generators
lpc -- complete lpc system, with instructions
macros -- some unit generators in macro form
man -- a bunch of man pages. read cmix usersub and Minc first. There are a few things described in the man pages which are not included in this distribution. Write to me if you want them.
model.instruments -- a few simple cmix instrument examples
sys -- the heart of cmix. builds the cmix kernel, cmix.o and a generic program useful for testing Minc scripts, called ctest
tape.backup -- a nice system for storing soundfiles on tape. Right now it is coded for the exabyte scsi driver, and will work on DAT systems as well. This directory also has a program to play sounds directly from a DAT or Exabyte tape. It really, really works.
Notes on the new realtime option
to play sounds as they are being produced you utter the minc command
play_on(fno,mode,floatflag)
where fno is the cmix number of the output file
if mode = 0, play the output of the mix to disk (instrument output after mixed to disk)
if mode = 1, play the instrument output plus disk, but don't mix instrument output to disk
if mode = 2, just play the instrument output, don't mix to disk
floatflag is needed if the output soundfile is in floating point format to figure out how to rescale the floating point output.
if floatflag < 0, consider the peak amplitude to
be the current output (note the mode as well)
if floatflag = 0, consider the peak amplitude to be the amplitude stored in the files header, assuming that it has been written there already. (don't use floatflag = 0 for a new file, obviously)
if floatflag > 0, consider the peak amplitude to be that value.
The success of the playing depends, obviously on the speed of the instrument and the machine.
sTo turn sound off simply say
play_off(fno)
paul lansky 7/29/76