Minc -- This subdirectory contains the source code for the MINC front-end parser for CMIX. MINC was written by Lars Graf using the UNIX yacc compiler-compiler program. The original yacc grammar is included in this directory. The Makefile here will produce an object file called m.o. This is used in the sys subdirectory to build the core CMIX object. The Makefile can also be used to build the parse command; a very useful command for debugging and checking scorefiles. parse will unpack any programming instructions in the scorefile and interpret all parameters without actually doing any of the sound synthesis or signal-processing work.
sys -- The heart of the CMIX package resides in this subdirectory. The code here, when linked with the m.o object in the Minc subdirectory, produces a single object file called cmix.o. This is the file which is linked with user-written code to produce a CMIX instrument. Of particular interest are the following files:
--sound.c, source for the CMIX disk i/o routines.
--makegen.c, source for the makegen MINC command, which is used to build various function tables.
--genX.c, files (gen1.c, gen2.c, gen5.c...) for creating the function tables using makegen. ug_intro.c -- this file contains a listing of "built-in" MINC functions. These are compiled into any CMIX instrument.
lib -- The source code for all of the CMIX unit generators resides in this subdirectory. These are compiled to produce the library file genlib.a, which is linked to user-written CMIX instruments.
head -- This subdirectory contains files used for creating and manipulating soundfile headers. CMIX uses the Robert Gross/IRCAM soundfile structure, which includes a 1024 byte header containing information about the soundfile (sampling rate, peak amplitude, etc.) in addition to the sound sample data. The NeXT version of CMIX can also read and write NeXT soundfile headers.
H -- Header files (.h) for declaring CMIX functions and variables are located in this subdirectory. The file sfheader.h contains several useful macros for reading and writing soundfile header information within a CMIX instrument.
bin -- CMIX executable commands and complete executable instruments should be located in this directory.
cmd -- Some of the original CMIX commands for operating on soundfiles are in this directory. Many of these have been superceded by newer and more "user-friendly" programs.
man -- Unix-style manual pages for some of the CMIX functions and programs are stored in this subdirectory. These can be located in the general unix manual area (usually a subdirectory of /usr/man) for access by users. The command nroff -man xxxxxxx.man | more will format the CMIX manual page xxxxxxx.man and display it directly. The manual pages intro.man1, cmix.man2, Minc.man2, genlib.man2 and usersub.man2 are good starting places.
tape -- This directory contains programs for storing and retrieving soundfiles to and from most popular unix-system external tape drives. The programs also maintain a catalog of each tape in a user's home directory.