RadioClub RadioClub

 

Apartados

0. Inicio
1. Introducción
2. Csound

2.1 Funciones

2.2. Ejemplos
3. Ecos y Rev.
4. Sonido 3D
5.Ejemplos Csound
6.Bibliografía

 

:Contacta!!!!!

jpermar@ribera.tel.uva.es

acuedie@ribera.tel.uva.es








2. CSOUND

ESTRUCTURA DE UN PROGRAMA CSOUND.

 

Los instrumentos de Csound son creados en un orquesta, mientras que la lista de notas a ser ejecutadas se escribe en un fichero partitura separado. Ambos pueden ser creados usando un  procesador de textos estándar. Cuando ejecutas Csound son una orquesta y partitura determinadas, la partitura es ordenada en el tiempo, la orquesta traducida y cargada y las tablas de onda calculadas y rellenadas antes de ejecutar la partitura.

A diferencia de los sintetizadores comerciales por hardware de hoy día, que tienen una serie limitada de osciladores, generadores de envolvente y filtros, así como  un número limitado de maneras en las que éstos puedes ser interconectados, la potencia de Csound no se ve limitada de forma alguna. Si quieres un instrumento con cientos de osciladores, generadores de envolvente y filtros, lo único que tienes que hacer es teclearlos. Y aún más importante es la absoluta libertad a la hora de interconectar los módulos y de interrelacionar los parámetros que los controlan. Como los instrumentos acústicos, los instrumentos de Csound pueden exhibir una delicada sensibilidad natural al contexto musical y demostrar un nivel de "inteligencia musical" al cual los sintetizadores por hardware no pueden ni tan siquiera aspirar.

Como bien se ha dicho, Csound es un programa que consta de dos archivos:

Se va realizar una pequeña introducción en el programa de Csound, estudiando las principales características de cada uno de los archivos que esta estructurado el programa Csound.

 

 ARCHIVO ORQUESTA.

El archivo orquesta va ser ejecutado y va ser revisado cada cierto tiempo para evitar errores en los  parámetros, por ello se distinguen cuatro tipos de frecuencias distintas, que son:

    Una vez sólo, cuando la orquesta es configurada (es, en realidad, una asignación permanente).

    Una vez al principio de cada nota (es decir, en su inicialización, tipo i-).

    Una vez en cada bucle de control de la ejecución (frecuencia de control o tipo k-).

    Una vez cada muestra de sonido de cada bucle de control (frecuencia de audio o tipo a-).

Cada sentencia ocupa una única línea y tiene el mismo formato básico:

resultado    acción    argumentos

El archivo de Orquesta en Csound  va estar estructurado en dos partes:

  • Sentencias de cabecera.

  • Bloques de instrumento.

Las sentencias de cabecera se caracterizan por:

CARACTERÍSTICAS

EJEMPLO

COMENTARIO

Confirman varios parámetros globales.

sr           =    44100

kr          =    4410

ksmps    =    10

nchnls    =    1

sr : establecemos la frecuencia de muestreo en 44100 muestras por segundo y por canal.

kr : establece la frecuencia de control en 4410 muestras por segundo.

ksmps : establece en 10 el número de muestras en cada periodo de control. Este valor debe ser sr/kr.

nchnls : establece en 1 el número de canales de la salida del audio.

Operan sólo una vez, precisamente en el momento de la configuración de la orquesta.

Todas las sentencias pertenecen a un pseudo-instrumento 0, que se inicializa en el instrumento 0 de la partitura antes de que ningún otro instrumento.

 

Los bloques de instrumento representan los distintos instrumentos, está compuesta por sentencias ordinarias que definen valores, controlan el flujo lógico de la señal o llaman a los distintos tipos de subcircuitos de procesado de la señal que calculan la salida de audio.

Todos los instrumentos son numerados y referenciados según dicho número en la partitura. Los instrumentos en Csound son similares a los patches de un sintonizador  por hardware. Cada instrumento consiste en una serie de generadores simples, o módulos de software, que son conectados mediante bloques de variables de entrada/salida de tipo i-, k- o a-. A diferencia de un módulo en hardware, uno en software tiene un número variable de argumentos que el usuario debe proporcionar para determinar su comportamiento.

 

EJEMPLO DIAGRAMA COMENTARIO

instr 101

a1     oscil 10000, 440, 1

out a1

endin

 

instr : indica el número del instrumento del nuevo evento, que en este ejemplo es 101, indica el comienzo de la descripción del instrumento.

oscil : la salida se la denomina a2, mientras que es un simple oscilador con amplitud 10000, frecuencia 440 y con una salida. Produce una señal periódica de audio, permitiendo así la modulación de frecuencia o amplitud de audio.

endin : indica el fin del instrumento, en este este caso 101.

instr 103

a1 buzz 10000, 440, 1

out a1

endin

buzz : genera una serie aditiva de parciales coseno armónicamente relacionados, con una frecuencia fundamental de 440, y cuyas amplitudes se normalizan de tal forma que el valor pico sea 10000, el tercer parámetro , en nuestro caso 1, indica el número total de armónicos requeridos.

 

En el archivo de orquesta se dividen las sentencias en categorías, que a su vez estas se dividirán en subcategorías, las categorías son:

  1. Síntesis de Orquesta.
  2. Control de los instrumentos.
  3. Operaciones matemáticas.
  4. Convertidores de altura.
  5. Soporte MIDI.
  6. Generadores de Señal.
  7. Control de Tablas de función.
  8. Modificadores de Señal.
  9. Sistema de cableado Zak.
  10. Operaciones que usan Tipo s Espectrales de Datos.
  11. Entrada y Salida de Señales.

 

Arriba

ARCHIVO PARTITURA.

Una partitura (colección de sentencias de partitura) se divide en secciones ordenadas en el tiempo por las sentencias s (de sección). Antes de ser leídas por la orquesta, la partitura es preprocesada sección a sección. Cada una de ellas es procesada normalmente por tres rutinas:

Carry.

Tempo.

Sort.

Cada columna de la partitura constituye un campo paramétrico, denominado p, numerados de izquierda a derecha, de hecho,  los primeros tres campos p de la sentencia i tienen una función reservada.

  • p1 = número de instrumento.

  • p2 = instante de comienzo.

  • p3 = duración.

Todos los demás campos p son considerados según la manera en la que el diseñador de sonido los defina en sus instrumentos.

 

CARRY.

Dentro de un grupo de sentencias i consecutivas cuyos números enteros p1 se correspondan, cualquier campo p vacío tomará el valor del mismo campo p de la sentencia precedente. Un campo p vacío se puede indicar por un punto (.) de limitado por espacios. No se requiere ningún punto después del último campo p no vacío. La salida del preprocesado de Carry mostrará los valores explícitos. El procesado de Carry no se ve afectado por comentarios o líneas en blanco. Se desactiva sólo por una sentencia que no sea i o por una sentencia i con un valor de p1 distinto.

TEMPO.

Esta operación modifica el tempo de una sección de partitura según la sentencia t. La operación de tempo convierte p2 (y , para las sentencias i, p3) de su formato original a pulsos en segundos reales, ya que esa es la unidad de tiempo requerida por los opcodes de la orquesta. Después  de la modificación de Tempo, los archivos de partitura tendrán un formato legible por la orquesta siguiendo la forma:

i p1 p2pulsos p2segundos p3pulsos p3segundos p4 p5 ...

SORT

Esta rutina ordena todas las sentencias que implican una acción en el tiempo según el orden cronológico especificado por se valor p2. También ordena eventos coincidentes en orden de precedencia. Siempre que una sentencia f o i tienen el mismo valor de p2, la primera que aparezca será precedente. Siempre que dos o más sentencias i tienen el mismo valor de p2, son ordenadas ascendentemente según el calor de p1, se ordenarán ascendentemente de acuerdo al valor de p3. La ordenación de la partitura se realiza sección a sección. La ordenación automática implica que las sentencias de la partitura puedan aparecer en cualquier orden dentro de una sección.

 

 

Arriba

VARIABLES Y CONSTANTES.

Tanto en la cabecera como en los bloques de instrumentos de la orquesta como en la partitura se va a trabajar con constantes y variables.

Las variables son elementos que contienen valores, se pueden disponer de ellas en cualquier momento y pueden ser actualizadas a cualquier de las cuatro frecuencias de actualización disponibles.

Las configuraciones en Orquesta son:

    en la inicialización de cada nota (tipo i-).

    en el bucle de control (tipo k-).

    en cada muestra del audio digital producido (tipo a-).

Las variables globales son accesibles por todos los instrumentos de la orquesta. Los nombres son los mismos que reciben las locales pero  precedidas de las letra g o pueden también ser símbolos reservados especiales. Su uso es generalmente para pasar valores generales; para mandar sonido de un instrumento a otro.

Los parámetros de la partitura son variables locales de tipo i- mientras que los controladores MIDI son variables que pueden ser actualizadas asincronamente desde un fichero MIDI o cualquier dispositivo MIDI externo.

 

Arriba

COMENTARIOS.

Para incluir texto, en los archivos orquesta o los archivos partitura, que no sea interpretado por el programa como código, hay que precederlo de un punto y coma (;). Esto permite hacer aclaraciones y comentarios en el código. En cada línea, cualquier texto que siga a un punto y coma será ignorado en el proceso de ejecución.

 

Arriba


 

 


© 2004 Ingeniería de Ondas