Seccion previa: Introduccion al diseño de los instrumentos de Cmix

Mirada al diseño de un instrumento de Cmix


Los instrumentos de Cmix tienden a seguir un aspero modelo. Los instrumentos son materializados como funciones de C. Estas funciones son despues vinculadas con las librerias mas importantes de Cmix y con el interprete Minc (ver articulo en Array (vol 13 numero 3) para una descripcion de la interfase Minc de Cmix). Una funcion especial llamada *profile* registra el nombre de la funcion instrumento en la tabla de simbolos del interprete Minc, asi que Minc conoce que funcion de C esta asociada con el nombre del instrumento (esto es descrpito con mas detalles mas tarde en este articulo).

Cada intrumento de Cmix pede ser dividido en tres secciones. La primera seccion contiene las declaraciones de las variables usadas por el instrumento asi como la inclusion de varios archivos "header" (encabezamiento) que contienen las declaraciones de las variables y funciones usadas por Cmix. La segunda seccion inicializa las variables necesarias al instrumento para funcionar y seguido determina los puntadores a los arrays (construidos por el comando *makegen* en el archivo partitura) para ser usado como control de envolvente o forma de onda. Las lineas de retardo son tambien establecidas e inicializadas en esta seccion del instrumento. La tercer seccion es la que procesa las muestras de sonido, ejecutan las entradas y las salidas hacia los archivos de sonidos y calculan lo necesario para producir un algoritmo particular de procesamiento de se&ndilde;ales o de sintesis. Esta seccion esta generalmente delineada por un "for" como:

con "nsamps" siendo el numero de muestras para ser producido o procesado. El uso del nombre "i" como una variable que cuenta es arbitrario, y probablemente refleja la vieja herencia en FORTRAN de Cmix.

Si bien existen algunas variantes en el esquema de esta tercera seccion, y no es siempre la mejor estrategia para ciertos algoritmos, muchos intrumentos de Cmix tienden a seguir esta linea.


Proxima seccion: Construyendo un instrumento "simple" de Cmix
Que es Cmix? -Index-