Este tutorial explica la sintaxis de los archivos .csd, así como la creación y borrado (clearing) de una ventana openGL en CsoundAV.
El programa de Csound es solo la parte que esta en itálicas en negro. La parte roja son comentarios, que sin embargo pueden hacer parte del programa. Hay que tener cuidado con las mayúsculas y minúsculas, sobre todo en las instrucciones relacionadas con openGL, ya que Csound en algunos casos no reconocerá las instrucciones si no se escriben exactamente igual. Intente, sobretodo si está comenzando con Csound de escribir todo el programa en vez de usar cut & paste.
Así empiezan todos los programas .csd:
;Esta primera linea le dice al compilador (CsoundAV), que éste es el comienzo y que el archivo está en formato unificado.
;Las diferentes secciones de un archivo csd comienzan siempre como <Seccion> y terminan como </Seccion>, teniendo el
;nombre de la sección entre los signos. En este tutorial se puede ver que las secciones son: CsOptions, CsInstruments,
;y CsScore. Estas son las secciones de un archivo csd.
;Esta sección contiene las banderas de la línea de comando que se utilizan cuando se compila este archivo.
-+Y;Esta bandera le dice a Csound que no genere audio. Esta bandera es útil para programas que sólo utilizan video.
;En el manual se pueden encontrar otras banderas válidas para Csound.
</CsOptions>;Aqui termina la sección CsOptions
;Y aquí arranca todo realmente
<CsInstruments>;Esta sección define los instrumentos que serán usados cuando el programa compile. También se le refiere como
;la orquesta. El término instrumento puede ser un poco confuso, ya que un instrumento de Csound no produce
;sonido necesariamente. Un instrumento es realmente sólo un grupo de procesos que csound realiza.
;Un instrumento puede ser utilizado como instrumento de control para otros instrumentos, como un efecto para procesar
;sonido, o como un instrumento gráfico como en este caso. Los instrumentos son activados posteriormente en el score.
;Si no hay referencia a un instrumento en el score no tendrá ningún efecto.
;Esta línea debe incluirse cuando se utilicen comandos de openGL en CsoundAV. Contiene definiciones y activa el motor
;gráfico. No es necesario entender qué hace esta línea, sólo hay que ponerla siempre.,
;Este es el encabezado usual de Csound. Define el sample rate (sr), la velocidad de control (control rate o kr), la cantidad
;de muestreos de control por segundo (control samples per second o ksmps) y el número de canales.
;Estos valores afectan principalmente el motor de audio, así que en este caso son bastante bajos.
;El encabezado es un requerimiento de Csound, y siempre debe estar presente.
;Vale la pena aclarar que: ksmps = sr/kr
;Aquí comienza la parte gráfica
GLfps 30;Con esta instrucción se define el número de cuadros por segundo de la ventana openGL. Un valor muy usual es 30.
;Aquí se define el nombre y el tamaño de la ventana openGL que será creada. Experimente con otros valores.
GLpanel_end;Este comando debe acompañar siempre el anterior Glpanel.
;Aquí definimos nuestro primer instrumento.
instr 1;instr es la instrucción de Csound para definir un instrumento. Cada instrumento debe tener un número único,
;y debe terminar con la instrucción endin.
FLrun;Esta instrucción crea la ventana. Las instrucciones anteriores solamente la definían.
glClearColor 0,0,0,0;Aquí fijamos el color del fondo. Los valores usados para definir colores están siempre entre 0 y 1 y representan
;los componentes de rojo, verde y azul (RGB por sus siglas en inglés). El cuarto valor indica el valor alpha
;Esto indica la transparencia, pero explicará con más detalle en un tutorial posterior. Intente diferentes valores.
glClear $GL_COLOR_BUFFER_BIT + $GL_DEPTH_BUFFER_BIT;glClear es una instrucción openGL para limpiar la ventana. Normalmente se utiliza como se ve aquí,
;$GL_COLOR_BUFFER_BIT + $GL_DEPTH_BUFFER_BIT, para que la ventana quede completamente limpia.
GLinsert 1.5;Esta instrucción coloca las instrucciones openGL anteriores en la cadena de procesamiento openGL. 1.5 es un valor
;usual, que es adecuado para la mayoría de los casos. Si no se pone este comando, las instrucciones no entran en
;la cadena de procesamiento, y no tendrán ningún efecto. Recuerde siempre ponerla después de un grupo de instrucciones
;openGL.
;Así terminamos el instrumento.
</CsInstruments>;Y aquí cerramos la sección CsInstruments. En este programa sólo hemos creado un instrumento (instr 1)
;Aquí inicia el score. Score en Csound equivale a 'ejecuciones de un instrumento'. El comando 'i' ejecuta un instrumento.
;Los números que siguen a la 'i' indican primero el número del instrumento (en este caso el 1), luego el tiempo de inicio, y
;luego la duración. El comando que se presenta abajo ejecuta el instrumento 1 en el segundo 4 por un tiempo de 100.
;Experimente cambiando el inicio y la duración.
i 1 4 100;Aquí termina el score, y luego el programa csd.
</CsoundSynthesizer>