FLOSS Manuals

 English |  Español |  Français |  Italiano |  Português |  Русский |  Shqip

CSOUND Español

LA SINTÁXIS DE CSOUND

La Orquesta y la Partitura

En Csound debe definir instrumentos, que son unidades que "hacen cosas" como por ejemplo crear una onda senoidal como señal de audio y reproducirla (= emitirla a la tarjeta de audio). Estos instrumentos deben ser llamados o activados desde una partitura. La "partitura" (Score) de Csound es una lista de eventos que describen cómo se van a tocar los instrumentos en el tiempo. Se puede pensar como si fuera una línea de tiempo escrita en texto.

Un instrumento Csound está contenido dentro de un bloque de instrumentos, que comienza con la palabra clave instr instr y termina con la palabra clave endin. Todos los instrumentos reciben un número (o un nombre) para identificarlos.

 instr 1

... las instrucciones de los instrumentos van aquí...
endin

Los eventos de la partitura en Csound son líneas de texto individuales, que pueden activar instrumentos durante un tiempo determinado. Por ejemplo, para encender el instrumento 1, en el tiempo 0, durante 2 segundos se utilizará:

i 1 0 2

Tenga en cuenta que la orquesta y la partitura son dos tipos completamente diferentes de código. La orquesta contiene el código de Csound propiamente dicho.1 Los instrumentos están escritos en el Lenguaje de Programación de Csound. La partitura es principalmente una lista de eventos. El lenguaje de la partitura es relativamente pobre y ofrece sólo algunas herramientas muy básicas.

En el código de Csound moderno, la partitura a menudo permanece vacía. Los eventos se derivan del código de la orquesta,2 o de la interacción en tiempo real, como MIDI, OSC, clics del ratón o cualquier otra entrada en vivo.

La Estructura de un Documento de Csound

Un documento de Csound se estructura en tres secciones principales:

  • CsOptions: Contiene las opciones de configuración de Csound. Por ejemplo, al utilizar -o dac en esta sección, Csound se ejecutará en tiempo real en lugar de escribir a un archivo de sonido.
  • CsInstruments: Contiene las definiciones del instrumento y opcionalmente algunos ajustes globales y definiciones como la frecuencia de muestreo, etc.
  • CsScore: Contiene los eventos de la partitura que activan los instrumentos.

Cada una de estas secciones se abre con una etiqueta <xyz> y se cierra con una etiqueta </xyz>. Cada archivo Csound comienza con la etiqueta <CsoundSynthesizer> y termina con </CsoundSynthesizer>. Csound utilizará sólo lo que esté contenido entre ambas etiquetas.

   EXAMPLE 02B01_DocStruct.csd 

<CsoundSynthesizer>; START OF A CSOUND FILE

<CsOptions> ; CSOUND CONFIGURATION
-odac
</CsOptions>

<CsInstruments> ; INSTRUMENT DEFINITIONS GO HERE

; Set the audio sample rate to 44100 Hz
sr = 44100

instr 1
; a 440 Hz Sine Wave
aSin      poscil    0dbfs/4, 440
          out       aSin
endin
</CsInstruments>

<CsScore> ; SCORE EVENTS GO HERE
i 1 0 1
</CsScore>

</CsoundSynthesizer> ; END OF THE CSOUND FILE
; Anything after a semicolon is ignored by Csound

Los comentarios, que son líneas de texto que Csound ignorará, se inician con el caracter ";" (sin comillas). Los comentarios multilínea se pueden hacer encerrándolos entre "/*" y "*/" (sin comillas).

Opcodes

Los "Opcodes" o "Generadores de unidades" son los componentes básicos de Csound. Los Opcodes pueden hacer muchas cosas como producir señales oscilantes, señales de filtro, realizar funciones matemáticas o incluso encender y apagar los instrumentos. Los Opcodes, dependiendo de su función, toman entradas y salidas. Cada entrada o salida se denomina, en términos de programación, un "argumento". Los Opcodes siempre toman argumentos de entrada a la derecha y emiten sus resultados a su izquierda, tal como se demuestra a continuación:

salida    OPCODE    entrada1, entrada2, entrada3, .., entradaN 

Por ejemplo, el opcode poscil tiene 2 entradas obligatorias:3 amplitud y frecuencia, y produce una señal de onda senoidal:

aSin      poscil    0dbfs/4, 440

En este caso se creará una oscilación de 440 Hertz con una amplitud de 0dbfs/4 (un cuarto de 0 dB como escala completa) y su salida será almacenada en un contenedor llamado aSin. El orden de los argumentos es importante: la primera entrada a poscil siempre será la amplitud y la segunda siempre será leída por Csound como la frecuencia.

Desde Csound6, el código se puede escribir de una manera conocida en algunos otros lenguajes de programación:3

aSin = poscil(0dbfs/4,440)

Muchos opcodes incluyen argumentos de entrada opcionales y ocasionalmente argumentos de salida opcionales. Éstos se colocarán siempre después de los argumentos esenciales. En la documentación del Manual Csound se indican con corchetes []. Si se omiten los argumentos de entrada opcionales, se reemplazan con los valores predeterminados indicados en el Manual de Csound. La adición de argumentos de salida opcionales normalmente inicia un modo diferente de ejecución del opcode: por ejemplo, una versión estéreo en oposición a la versión mono.

Variables

Una "variable" es un contenedor con nombre. Es un lugar para almacenar cosas como señales o valores desde donde pueden ser recuperados usando su nombre. En Csound hay varios tipos de variables. La manera más fácil de manejar las variables cuando se empieza a trabajar con Csound es imaginándolas como cables.

Si desea conectar estos elementos:

   Generador de Sonido -> Filtro -> Salida,

necesitará al menos dos cables, uno que conecta el generador con el filtro y otro que toma la salida del filtro y lo conecta a la Salida propiamente dicha. Los cables llevan señales de audio, que son variables que comienzan con la letra "a".

aSource   buzz       0.8, 200, 10, 1
aFiltered moogladder aSource, 400, 0.8
out aFiltered

En el ejemplo anterior, el opcode buzz produce una forma de onda compleja como señal aSource. Esta señal alimenta al opcode moogladder, que a su vez produce la señal aFiltered. El opcode  out toma esta señal, y la envía a la salida, ya sea a los altavoces o a un archivo de sonido.

Otros tipos de variables comunes son las variables "k" que almacenan señales de control, que se actualizan con menos frecuencia que las señales de audio, y las variables "i" que son constantes dentro de cada nueva instancia de un instrumento.

Puede encontrar más información sobre los tipos de variables en el manual, o en el Csound Journal.

Usando el Manual

El Csound Reference Manual es una fuente completa sobre la sintaxis de Csound y sus opcodes. Todos los opcodes tienen su propia entrada en el manual describiendo su sintaxis y comportamiento, y el manual contiene una referencia detallada sobre el lenguaje de Csound y las opciones disponibles.

En CsoundQt puede encontrar el manual de Csound en el menú de ayuda. Puede ir rápidamente a una entrada sobre un opcode particular colocando el cursor en el opcode y presionando Shift+F1. WinXsound, Cabbage y Blue también proporcionan un fácil acceso al manual.

  1. Sus características son descriptas en detalle en la sección 03 EL LENGUAJE DE CSOUND. ^
  2. Por ejemplo, usando los opcodes schedule o event. ^
  3. Para más detalles, vea el capítulo 03I acerca de la Sintaxis Funcional. ^

There has been error in communication with Booktype server. Not sure right now where is the problem.

You should refresh this page.