RadioClub

Apartados

0. Inicio
1. Introducción
2. Csound

2.1 Funciones

2.2. Ejemplos
3. Ecos y Rev.
4. Sonido 3D

4.0. Introducción

4.1. Aud. Espacial

4.2. Coordenadas

4.3. Sist. de audio

4.4. HRTF

4.5. Sist. HRTF

4.6. Implementación
5.Ejemplos Csound
6.Bibliografía

 

:Contacta!!!!!

jpermar@ribera.tel.uva.es

acuedie@ribera.tel.uva.es

5. EJEMPLOS en Csound

1. Reverberaciones

A continuación pasamos a explicar el comportamiento de uno de los fichero s que se expone como ejemplo.

 ; Comenzamos con el archivo orquesta de 2312.orc .

 ; Su cabecera de inicio

sr = 44100
kr = 4410
ksmps = 10
nchnls = 2

 ; A continuación se define las variables globales que se van utilizar a lo largo de todo el programa orquesta .

gifeed = .5
gilp1 = 1/10
gilp2 = 1/23
gilp3 = 1/41
giroll = 3000
gadrysig in it nit 0

 ; La definición de los instrumento.

instr 2307

idryamt = 1-p4
iwetamt = p4

 ;Aquí llamamos mediante la función soundin a el archivo "speech1.aif" y la salida es una variable asndfile.

asndfile soundin "speech1.aif", 0

 ; Realizamos una serie de transformaciones sobre el archivo audio extraído en la sentencia anterior.

gadrysig = gadrysig+asndfile*iwetamt

; Sacamos el resultado a la salida mediante la función outs.

outs asndfile*idryamt, asndfile*idryamt endin

 ;Tenemos definido un segundo instrumento que realizará implementara el fenómeno de reverberación.

instr 2312

atmp alpass gadrysig, 1.7, .1
aleft alpass atmp, 1.01, .07
atmp alpass gadrysig, 1.5,.2
aright alpass atmp, 1.33, .05

 ; raind va proporcionar una salida de números aleatorios, que  representará el ruido.

kdel1 randi .01, 1, .666
kdel1 = kdel1+.1

 ; deltayr va leer la señal, para retardarla unos 0.3segundos

addl1 delayr .3

; deltapi extrae el sonido, calculando el tiempo de retardo con más exactitud, a continuación a la señal retardada le añadimos el ruido generado anteriormente.

afeed1 deltapi kdel1
afeed1 = afeed1+gifeed*aleft

 ; deltayw siempre emparejado con deltayw,  escribe la señal aleft en la línea de retardo establecida anteriormente por deltayr, que en este caso el retardo es de 0.3segundos.

delayw aleft
kdel2 randi .01,. 95, .777
kdel2 = kdel2+.1
addl2 delayr .3
afeed2 deltapi kdel2
afeed2 = afeed2+gifeed*aright
delayw aright

; Sacamos el resultado a la salida mediante la función outs.

outs aleft, aright

; Para que inicialmente sea cero la variable gloval gadrysig en el caso de ya haber sido ejecutado el instrumento al menos una vez.

gadrysig = 0

endin


La sintaxis del archivo 2312.sco, el instrumento 2307 se ejecutara de 0 hasta 8 segundos, mientras que el instrumento 2312 se ejecutará desde 0 hasta los 12segundo.

;INST   ST   DUR   REVERB_AMT
i 2307 0 8 .4

;INST   ST   DUR
i 2312 0 12

2. 3D SOUND

Se recomienda leer previamente el apartado de funciones , como referencia, así como los manuales. Hay algunos muy simplificados.

Empecemos con un ejemplo sencillo, lo podemos encontrar en la referencia [2] . A continuación pasamos a explicar el comportamiento de este fichero y más adelante haremos unas modificaciones e implementaremos otros efectos.

 ; Comenzamos con el archivo orquesta. Tal y como hemos explicado en secciones anteriores, la cosa quedaría así.

sr = 44100
kr = 4410
ksmps = 10
nchnls = 2

instr 2501 ; HRTFER ejemplo de archivo orquesta.


  ;Esta asignación de variables significa se debe a que en el archivo partitura "score" se usan normalmente las variables p1, p2, p3, ...y es en el archivo partitura donde le vamos a dar los valores.

iazstart = p4
iazend = p5
ielstart = p6
ielend = p7

 ;Mueve el sounido horizontalmente desde IAZSTART hacia IAZEND
  ;la estructura de las siguientes sentencias es la siguiente: nombre_salida función parámentro1, parámentro2,...
  ;Aquí se llama k (puesto que es una frecuencia de tipo control) el "az" viene de azimnut y los parámetros funcionan similarmente.

kaz line iazstart, p3, iazend

;Mueve el sonido verticalmente desde IELSTART TO IELEND.

kel line ielstart, p3, ielend

 ;Aquí llamamos mediante la función soundin a el archivo "speech1.aif" y la salida es una variable a_rsr (a_source).

asrc soundin "speech1.aif"

 ;Aquí es cuando utilizamos la función hrtfer, es aconsejable mirar el manual aclara un poco.

aleft, aright hrtfer asrc, kaz, kel, "HRTFcompact"

aleftscale = aleft*300
arightscale = aright*300

 ;Sacamos el resultado a la salida mediante la función outs.

outs aleftscale, arightscale

endin

La sintaxis del "score" ó del archivo partitura es distinta y más complicada. En primer lugar, te habrás dado cuenta que el propósito del score es decir a los instrumentos cuando deben de tocar. La sintaxis del score es  ve en el apartado 2 y 2.1 .

 ; En el caso de nuestro estudio, el archivo partitura es:

f 1 0 8192 10 1

; INS START DUR AZ START AZ END EL START EL END
i 2501 0 7.57 0 360 -45 45

A continuación dejamos los archivos estudiados y el resultado archivo de audio. Estos son unos ejemplos del libro de Richar Boulanger."Csound Book". Te recomendamos guardar los archivos e intentar jugar con los parámetros, pues a partir de aquí ya se puede crear todos los archivos que se quieran.

 

ARCHIVO

ORQUESTA (.org)

ARCHIVO

PARTITURA (.sco)

RESULTADO

2501.orc

2501.sco

 

Ponemos ahora un esquema del sonido 2501, tal y como se hace en csound:

 

[2] Csound Book. Richard Boulanger.Pág.502

 


 

 


© 2004 Ingeniería de Ondas