Seccion previa: Usando los subcomandos integrados de Cmix
Funciones avanzadas de Minc
Los parametros pueden ser reemplazados por variables de Minc, las cuales pueden ser tambien usadas
para almacenar valores retornados por las funciones integradas de Minc.
Siendo Minc un lenguaje interpretado, las variables no tienen que ser declaradas antes de ser usadas.
Minc declarara automaticamente y tipificara las variables (el tipo de default es "floating point"
punto flotante), pero las variables pueden ser declaradas en una partitura para garantirse el tipo
especifico (por ejemplo como int (entero)). El siguiente fragmento de partitura generara una altura
aleatoria comprendida entre el do central (8.00) y el fa sobre el do central (8.05):
offset = random() * 0.05
mypitch = 8.00 + offset
playinst(0, 7, mypitch, ...)
En el ejemplo arriba, las variables offset y mypitch seran automaticamente declaradas como
floating-point (decimales) por Minc. Minc entiende muchos de los operadores aritmeticos basicos
(+, -, *, /, >, <, ==, !=, <=, >=, **, etc.), but it does not parse pre- or post-fix operators (i.e.
i++; ++i). Notese que Minc no necesita puntos y comas (;) para terminar cada linea.
Es tambien posible de utilizar muchas de las construcciones basicas de C en Minc. Bucles for,
bucles while y construcciones if-then-else pueden ser usadas en una partitura de cmix. El segmento
siguiente de codigo puede ser facilmente modificado para generar un cluster de 16 alturas "aleatoriamente"
distribuidos entre 8.00 y 8.05:
for(i = 0; i < 16; i = i+1) {
offset = random() * 0.05 mypitch = 8.00 + offset
playinst(0, 7, mypitch, 1000, 0.3, 0.4)
}
Estructuras de control tambien pueden ser encapsuladas en Minc; pueden ser construidos "programas"
complejos en ciertas partituras. Este aspecto programable de Minc es una herramienta muy poderosa, un
una herramienta que es parte de cada instrumento de Cmix.
Una funcion que falta en Minc es la habilidad de definir funciones en el lenguaje de Minc. En vez,
los programas en C, tienen que ser hechos de un modo que se parezcan a los intrumentos de Cmix.
Estos "instrumentos" no hacen trabajo de sonido realmente, pero devuelven valores al nivel Minc.
Desafortunadamente, adicionando funciones de esta manera requiere una recompilacion del objeto Cmix
(cmix.o); o las funciones pueden ser adicionadas como subcomandos de un instrumento especifico de
Cmix -- y no seran accesibles por otros intrumentos de Cmix.
Proxima seccion: Tocando sonidos (re-escalando archivos de
sonido)
Que es Cmix? -Index-