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.1. FUNCIONES ELEMENTALES DEL CSOUND

 

ALGUNAS SENTENCIAS QUE CONSIDERAMOS PRINCIPALES PARA EL ARCHIVO DE PARTITURA.

SENTENCIA f

Esta sentencia hace que una subrutina GEN almacene valores en una tabla de función, para usarla con los instrumentos de la orquesta.

f p1    p2    p3    p4...

p1 :  número de la tabla con el que será conocida la función almacenada, un número negativo indica que la tabla debe ser destruida.

p2 :  instante de comienzo de la generación (o destrucción) de la función en pulsos.

p3 :  Tamaño de la tabla de función (número de puntos). Debe ser una potencia de 2 o una potencia de 2 más 1 (el tamaño máximo de la tabla es de 16777216, 2**24, puntos).

p4 :  número de la rutina GEN a llamar.

Los demás parámetros vendrán determinados por la rutina GEN en particular.

Una sentencia f0 ( p1 = 0, p2 = valor positivo) puede ser usada para crear una indicación de comienzo sin ninguna acción real asociada.

SENTENCIA i

Esta sentencia llama a un instrumento para hacerlo activo en un instante específico y durante un tiempo determinado. Los valores de los campos p se pasan a ese instrumento antes de su inicialización, y permanecen válidos durante toda su ejecución.

i p1    p2    p3    p4...

p1 :  número del instrumento (de 1 a 200), normalmente un entero no negativo. Una parte fraccionaria puede proporcionar un indicador adicional para especificar ligaduras entre notas determinadas. Un valor negativo (incluido el indicador) puede usarse para desactivar una nota tenida determinada.

p2 :  instante de comienzo en unidades arbitrarias llamadas pulsos.

p3 :  duración en pulsos (normalmente positiva). Valor negativo iniciará una nota tenida. Valor 0 invocará una pasada de inicialización sin ejecución.

Los demás parámetros vendrán determinados por la rutina GEN en particular.

Los pulsos son evaluados como segundos, a menos que haya una sentencia t en esa sección de la partitura o un indicador t en la línea de comando de Csound que cambie el criterio.

El instante de comienzo es relativo al principio de una sección (ver sentencia s ) a la que se asigna un tiempo 0.

SENTENCIA t

Esta sentencia llama a un instrumento para hacerlo activo en un instante específico y durante un tiempo determinado. Los valores de los campos p se pasan a ese instrumento antes de su inicialización, y permanecen válidos durante toda su ejecución.

t p1    p2    p3    p4... (ilimitado)

p1 :  debe ser 0.

p2 :  tiempo inicial en pulsos por minuto.

p3, p5, p7, ... :  instante en los que se produce el cambio de tiempo, en pulsos y en orden creciente.

p4, p5, p8, ... :  tiempos aplicados en los instantes anteriores.

Una sentencia t se aplica sólo en la sección en la que aparece. Sólo una sentencia t es significativa en una sección. Puede ser colocada en cualquier lugar dentro de esa sección. Si no contiene ninguna sentencia t , la sección interpretará los pulsos como segundos, seria equivalente a tener: t 0 60 .

SENTENCIA s

Esta sentencia llama a un instrumento para hacerlo activo en un instante específico y durante un tiempo determinado. Los valores de los campos p se pasan a ese instrumento antes de su inicialización, y permanecen válidos durante toda su ejecución.

s cualquier cosa

Campos p :  son todos ingnorados.

Una sección se considera completa cuando todos los instantes de activación ( p2s ) y duraciones finitas ( p3s ) han sido ejecutadas (es decir, el fin de la longitud de una sección viene determinado por la última acción o desactivación que se produzca). Una sentencia puede ser prolongada por le uso de una sentencia f0 .

ALGUNAS SENTENCIAS QUE CONSIDERAMOS PRINCIPALES PARA EL ARCHIVO DE ORQUESTA.

SINTAXIS DE ORQUESTA.

instr, endin

Estas sentencias delimitan el cuerpo de un instrumento. Siempre deben aparecer en parejas.

instr i,    j, ...

    < Cuerpo del instrumento >

endin

instr :  empieza el bloque de definición de los instrumentos i, j,...

i, j, ... :  deben ser números enteros, nunca expresiones, es conveniente evitar números muy altos.

endin :  termina el bloque de instrumento actual.

Estas sentencias delimitan el cuerpo de un instrumento. Siempre deben aparecer en parejas.

Puede haber cualquier número de bloques de instrumento en una orquesta.

follow

Este opcode es un "extractor" del envolvente de una señal de audio.

ar follow asig ,    idt

asig :  señal de la cual se extrae el envolvente.

idt :  periodo, en segundos, en el que se proporciona la amplitud media de la señal asig . Si la frecuencia de asig es baja, idt debe ser entonces un valor grande (más de la mitad del valor periodo de asig ).

Para evitar los ruiditos producidos por las discontinuidades del rastreo de envolventes complejos, se puede usar un Filtro Paso-Bajo que suavice el envolvente calculado.

OPERACIONES MATEMÁTICAS.

Operaciones Aritméticas y Lógicas.

Los operadores aritméticos llevan a cabo operaciones de cambio de signo (negación), preservación de signo, "Y" y "O" lógicos, suma, resta, multiplicación y división.

- a ;(sin restricción de frecuencia)

 + a ;(sin restricción de frecuencia)

a && b ;(Y lógico; no válido a frecuencia de audio)

a  | | b ;(O lógico; no válido a frecuencia de audio)

a + b  ;(sin restricción de frecuencia)

a - b ;(sin restricción de frecuencia)

a * b ;(sin restricción de frecuencia)

a  / b ;(sin restricción de frecuencia)

a ^ b ;(b no puede ser de tipo audio)

a     %  b ;(sin restricción de frecuencia)

^ : calcula a elevado a b , pero b no puede ser una señal de audio.

% : devuelve el valor absoluto de b , es lo mismo que el módulo de los números enteros.

Observa que un valor o una expresión puede estar en medio de dos de tales operadores, los cuales lo tomarán como su argumento a la izquierda o a la derecha.

Funciones Matemáticas.

Los funciones matemáticas, donde los argumentos entre paréntesis pueden ser expresiones.

int          (x) ;( solamente argumentos i- o k- ) : devuelve la parte entera de x .

frac        (x) ;( solamente argumentos i- o k- ) : devuelve la parte fraccionaria de x .

i             (x) ;(solamente argumentos k-) : devuelve el equivalente en tipo i- de un valor x de tipo k- .

abs        (x) ;(sin restricción de tipo) : devuelve el valor absoluto de x .

exp        (x) ;(sin restricción de tipo) : devuelve el valor de e elevado a x .

log         (x) ;(sin restricción de tipo) : devuelve el logaritmo natural de x (para x>0).

log10    (x) ;(sin restricción de tipo) : devuelve el logaritmo en base 10 de x (para x positivo) .

sqrt       (x) ;(sin restricción de tipo) : devuelve la raíz cuadrada de x (para x>0) .

Los convertidores de valor realizan traducciones aritméticas de unidades de una clase a unidades de otra. El resultado puede ser a su vez un término de una expresión.

Funciones Trigonométricas.

Los funciones trigonométricas.

sin            (x) ;( sin restricción de tipo ) : devuelve el seno de x ( x en radianes).

cos           (x) ;( sin restricción de tipo ) : devuelve el coseno de x ( x en radianes).

tan           (x)  ;( sin restricción de tipo ) : devuelve la tangente de x .

sininv      (x) ;(sin restricción de tipo) : devuelve el arcoseno de x .

cosinv     (x) ;(sin restricción de tipo) : devuelve el arcocoseno de x .

taninv     (x) ;(sin restricción de tipo) : devuelve la arcotangente de x .

sinh       (x) ;(sin restricción de tipo) : devuelve el seno hiperbólico de x .

cosh       (x) ;(sin restricción de tipo) : devuelve el coseno hiperbólico de x .

tanh       (x) ;(sin restricción de tipo) : devuelve la tangente hiperbólica de x .

El resultado puede ser a su vez un término de una expresión.

OSCILADORES.

Osciladores Básicos.

Reproducen señales periódicas de control ( k- ) o de audio ( a- ).

kr oscil     kamp ,    kcps,    ifn[, iphs]

kr oscili    kamp ,    kcps,    ifn[, iphs]

kr oscil3   kamp ,    kcps,    ifn[, iphs]

ar oscil     kamp ,    kcps,    ifn[, iphs]

ar oscili    kamp ,    kcps,    ifn[, iphs]

ar oscil3   kamp ,    kcps,    ifn[, iphs]

kr poscil   kamp ,    kcps,    ifn[, iphs]

kr poscil3 kamp ,    kcps,    ifn[, iphs]

ar poscil kamp ,    kcps,    ifn[, iphs]

ar poscil3 kamp ,    kcps,    ifn[, iphs]

ar :  señal de salida.

kamp :  amplitud.

kcps :  frecuencia.

ifn :  número de la tabla de función.

iphs :  es opcional, es la fase inicial (expresada en muestras).

La tabla ifn es muestreada incremental y cíclicamente en toda su longitud y los valores obtenidos son multiplicados por el factor amp . Los osciladores de alta precisión poscil3 ya que usan una interpolación cúbica.

Osciladores de Espectro Dinámico.

Reproducen señales periódicas de control ( k- ) o de audio ( a- ).

ar buzz     xamp ,    x cps,    knh,    ifn[, iphs]

ar gbuz z    x amp ,    x cps,    knh,    klh,    kr,    ifn[, iphs]

knh :  número total de armónicos requeridos.

klh :  armónico más bajo presente. Puede ser positivo, 0 o negativo.

kr :  especifica el factor múltiplo en la serie de coeficientes de amplitud.

ifn :  número de la tabla de función que contiene una onda sinusoidal (para buzz ) o una onda cosinusoidal (para gbuzz ).

iphs :  es opcional, es la fase inicial de la frecuencia fundamental, expresada como fracción de un ciclo (de 0 a 1). Un valor negativo omitirá la inicialización. El valor por defecto es 0.

La salida es una serie de parciales coseno armónicamente relacionados. Los osciladores buzz y gbuzz son útiles para obtener sonidos complejo que pueden usarse como fuente en síntesis substractiva.

GENERADORES DE SEÑAL.

Síntesis FM.

Osciladores de frecuencia modulada básicos.

ar foscil     xamp ,    x cps,    xcar,    xmod,    kndx,    ifn[, iphs]

ar foscili    x amp ,    x cps,     xcar,    xmod,    kndx,     ifn[, iphs]

ifn :  número de la tabla de función. Requiere el elemento límite añadido.

iphs :  es opcional, es la fase inicial del muestreo expresada como fracción de un ciclo (de 0 a 1). Un valor negativo omitirá la inicialización. El valor por defecto es 0.

foscil es una unidad compuesta que implementa eficientemente dos osciladores según la conocida configuración FM de Chowning, en la que la salida de audio de un generador se usa para que la de la onda moduladora es kcps*xmod .

Reproducción de Muestras.

Lee el sonido sampleado (mono o estéreo) almacenado en una tabla, con bucles opcionales en el sostenimiento y en la caida.

ar loscil     xamp ,    k cps,    ifn[,    ibas[,    imod1,    ibeg1,    iend1  \\

                         [,    imod2,    ibeg2,    iend2 ]]]

ar loscil3    xamp ,    k cps,    ifn[,    ibas[,    imod1,    ibeg1,    iend1  \\

                         [,    imod2,    ibeg2,    iend2 ]]]

ifn :  número de la tabla de función, normalmente indicando un segmento del sonido sampleado en formato AIFF, con los puntos de bucle configurados. El fichero fuente puede ser mono o estéreo.

ibas :  es opcional, en Hz, del sonido grabado. Opcionalmente, este valor puede reemplazar a la frecuencia proporcionada por el fichero AIFF, pero es necesario siempre que el fichero fuente no especifique una. El valor por defecto es 0 (sin reemplazar).

imod1, imod2 :  es opcional, ejecuta de modos distintos los bucles de sostenimiento y caída. Un valor 1 indica un bucle normal; 2 indica un bucle de ida y vuelta (hacia delante y hacia atrás); 0 indica que no se produzca bucle alguno. El valor por defecto (-1) indica que se tomarán del fichero fuente los puntos de bucle  y su modo de ejecución.

ibeg1, iend1, ibeg2, iend2 :  es opcional y dependiente de mod1 , mod2 ; puntos de comienzo  y final de los bucles de sostenimiento y caída. Se miden en sample frame desde el principio del fichero, así que serán los mismos sin importar que el segmento de sonido sea mono o estéreo.

ALGUNAS MANUALES DE REFERENCIA  DE SCOUND.

 


 

 


© 2004 Ingeniería de Ondas