-- scorefiles (archivos partitura) (o archivos de datos) contienen la informacion especificada por el usuario para un instrumento particular de Cmix como el tiempo inicial de un sonido, la duracion, posiblemente algunos parametros para la frecuencia, etc. Todos estan contenidos en esos archivos del tipo texto. La mayor parte de este articulo sera dedicado a la estructura y la sintaxis de los archivos partituras de Cmix.
-- archivos de sonido son creados por los intrumentos de Cmix y son raramente (seguramente nunca) editados "a mano". Esto es principalmente por su tamaño la representacion digital del sonido consume muchos megabytes. Los archivos de sonido de Cmix contienen una pequeña parte de informacion, ademas del sonido digitalizado. Mucha de la informacion necesaria para los instrumentos de Cmix es almacenada en el encabezamiento del archivo de sonidos, como la frecuencia de muestreo, el numero de canales (generalmente mono o estereo), el formato de los numeros de los datos del sonido (decimales o enteros 16-bit), etc.
La estructura del encabezamiento del archivo de sonidos de Cmix, es basada en el trabajo hecho por robert Gross cuando estaba en el IRCAM. Los archivos de sonidos con este tipo de encabezamiento son referidos como archivos "bsd" por Cmix, reflejando el desarrollo en Unix. La version de Cmix llevada a NeXTStep, encapsula el encabezamiento de archivos NeXT en el encabezamiento del archivo "bsd", asi que Cmix puede leer o escribir directamente hacia/desde ambos , los archivos del tipo NeXT o archivos de sonidos del tipo estandard de Cmix. El archivo sfheader.h en el directorio cmix?H contiene una lista de la informacion contenida en el encabezamiento junto con algunas macros en C para leer o extraer el encabezamiento del archivo desde el interior de un programa en C. Es porque Cmix necesita la informacion contenida en el encabezamiento del archivo, que el archivo de salida tiene que existir a priori a la ejecucion del instrumento de Cmix. Si Cmix esta creando un nuevo archivo "desde el comienzo" en vez de estar agregando sonido a un archivo ya existente, entonces un encabezamiento tiene que ser pre-creado en el disco.
Este archivo solo-encabezamiento es en escencia un archivo de sonidos de longitud 0; un archivo que no contiene sonidos. El comando de Cmix sfcreate cumplira esta tarea. Como muchos comandos de Unix, sfcreate usa un grupo de "flags" (condiciones) para especificar los datos que deben ser escritos en el encabezamiento del archivo. Ejecutando sfcreate sin opciones mostrara una lista de las opciones para sfcreate:
sfcreate usage:
"sfcreate -r [s. rate] -c [# chans] -[i=int; f=float] <-w
Como un ejemplo, el comando:
sfcreate -r 44100 -c 2 -i fun.snd
creara un encabezamiento de un archivo llamado "fun.snd" con una frecuencia de muestreo de 44100 muestras por segundo, 2 canales
(estereo), con un formato de enteros 16-bit. Hasta que este nuevisimo archivo no tenga ningun dato de sonido digital escrito en el,
existira como solo de 1024-bytes del tipo encabezamiento largo.
Otros dos comandos en el directorio cmix/head son utiles para tratar encabezamientos de archivos de sonidos. sfprint imprimira
toda la informacion contenida en el encabezamiento, y sfhedit puede cambiar los parametros almacenados en el. Notese que sfhedit
solo cambia la informacion en el encabezamiento --cambiando la frecuencia de muestreo -- en el encabezamiento no convertira la
frecuencia de muestreo del archivo; solo cambiara la manera con la cual Cmix interpreta el numero de muestras en el archivo.
- archivos ejecutables,
El tercer tipo de archivos de Cmix, tiene dos formas. La primera forma son los comandos (como sfprint, sfcreate, etc.) designados
para ejecutar tareas utiles y manipular 'globalmente' los archivos de sonidos (sfshrink y sfextend son tambien ejemplos de este
tipo de comandos de Cmix). Muchas de esos comandos utiles han sido substituidos por otros programas. Por ejemplo, el comando hist
de Cmix, grafica una representacion ASCII de la variacion de amplitud con el tiempo de un archivo. Esta tarea es ejecutada mucho
mas elegantemente por otros programas contemporaneos graficos como Mixview y EdSnd.
El segundo tipo de archivo ejecutable de Cmix son los instrumentos, o comandos de Cmix designados a cumplir funciones especificas
de procesamiento de señales o de sintesis. Ya una cierta cantidad de intrumentos de Cmix fueron construidos. El archivo
cmixinsts.tar.Z disponible en el directorio pub/music del sito ftp princeton.edu contiene algunos algoritmos de procesamiento de
señales y de sintesis, implementados como instrumentos de Cmix.
Escribiendo el nombre del comando de un instrumento de Cmix invoca el ambiente de Cmix, el cual acepta entrada desde teclado
(entrada Unix estandard) e imprime la informacion en una terminal (la salida Unix estandard). Cmix puede ser usado en modo
interactivo, simplemente escribiendo los comandos a ser ejecutados, o puede ser usado en un modo "batch" a travez de el
redireccionamiento de i/o de Unix. Por ejemplo, una serie de instrucciones para el instrumento fm pueden ser escritas
directamente en el ambiente de Cmix, despues de invocar directamente el comando fm, o las instrucciones de Cmix pueden ser
ingresadas como texto en un archivo partitura (posiblemente "fm.sco") y cargadas en el instrumento diciendo:
fm < fm.sco
Generalmente, es preferible usar archivos partituras que escribir las instrucciones directamente en el ambiente de Cmix, porque
Cmix no tiene capacidades de edicion de textos. Ingresando una serie larga y con comandos complejos solo para descubrir que
habia un caracter errado puede ser frustrante.
Ademas de leer en la entrada estandar y de escribir en la salida estandard, Cmix (por supuesto!) lee y escribe archivos de
sonidos. Los nombres de los archivos son especificados en el archivo partitura.
Proxima seccion: Estructura del archivo "partitura" de Cmix
Que es Cmix? -Index-