IAC INSTRUMENTACIÓN DE/TN-EAV/044v.1 DETNEAV_44v1.DOC 31 de octubre de 2002 PROYECTO / DESTINO: ESPACIO ACUSTICO VIRTUAL TÍTULO: SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW INSTITUTO DE ASTROFISICA DE CANARIAS 38200 La Laguna (Tenerife) - ESPAÑA - Teléfono (922)605200 - Fax (922)605210 SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 2 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC CUADRO DE AUTORES Nombre Función Mathieu Nedelec Becario CUADRO DE CONTROL Control Nombre Función Revisado por: Haresh Chulani Ingeniero electrónico Aprobado por: Autorizado por: HISTORIA DEL DOCUMENTO Versión Fecha Resumen Modificación 1 31-oct-02 Primera Versión SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 3 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC RESUMEN Este informe explica el desarrollo del programa de emisión y grabación de sonidos para el proyecto “espacio acústico virtual”. Este programa sirve en el dispositivo de medidas de la HRTF (head related function transfer) que está en el ITC (Santa Cruz). Vamos a ver el dispositivo, las posibilidades de la placa de sonido, el programa y las diferentes opciones que tenemos a nuestra disposición. El objetivo es medir la HRTF, entonces vamos a ver la manera de conseguirla. SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 4 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC TABLA DE CONTENIDO CUADRO DE AUTORES ......................................................................................................2 CUADRO DE CONTROL......................................................................................................2 HISTORIA DEL DOCUMENTO ..........................................................................................2 RESUMEN ...............................................................................................................................3 TABLA DE CONTENIDO .....................................................................................................4 LISTA DE ABREVIATURAS ...............................................................................................5 1. INTRODUCCIÓN ......................................................................................................6 2. DIPOSITIVO DE PRUEBAS UTILIZADO ............................................................7 3. PLACA DE SONIDO .................................................................................................8 4. PROGRAMA PARA EL MODO PUNCH-IN .........................................................9 4.1 FRONT PANEL ......................................................................................................9 4.2 DIAGRAMA .........................................................................................................10 4.2.1 Configuración del sistema de reproducción y de grabación de sonidos. ...........10 4.2.2 Tratamiento de las datos grabada (retraso, longitud) .......................................11 4.2.3 Registro de los archivos......................................................................................11 4.3 RESULTADOS .....................................................................................................12 5. PROGRAMA EN MODO LOCK TO PLAYBACK .............................................13 5.1 FRONT PANEL ....................................................................................................13 5.2 DIAGRAMA .........................................................................................................14 5.2.1 Configuración del sistema de reproducción y de grabación de sonidos. ...........14 5.2.2 Tratamiento de las datos grabada (retraso, longitud) .......................................15 5.2.3 Registro de los archivos......................................................................................16 5.3 RESULTADOS .....................................................................................................17 6. COMPARACION DE LOS DOS MODOS ............................................................18 7. MEDIDA DE LA HRTF ..........................................................................................19 ANEXOS ................................................................................................................................20 A. CONTENIDO DEL DISQUETE ............................................................................20 SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 5 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC LISTA DE ABREVIATURAS EAV Espacio Acústico Virtual HRTF Head Related Function Transfer SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 6 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC 1. INTRODUCCIÓN Maria de los Angeles Malfaz Vazquez ha desarrollado el software de control de sistema de medidas de HRTFS para el proyecto EAVII. Se desarrolló bajo el entorno Labview 6.0, paquete profesional (Professional Development System). No tuvo tiempo de realizar el control de la placa PCI de audio (CardDeluxe de Digital Audio Labs). Se puede obtener mas información en www.digitalaudio.com. Ese documento presenta mi trabajo sobre ese parte del software. Se debe hacer un Instrumento virtual (función de Labview) que se podrá integrar en el programa de María. El objetivo es emitir un sonido y al mismo tiempo grabar con micrófonos miniatura (situados en las orejas). No se debe tener retraso entre la emisión y la grabación, sino el debido a la distancia entre el altavoz y los micrófonos. Vamos a ver que la placa de sonido tiene dos modos de grabación (“Punch-In” y “Lock to Playback”). Se ha desarrollado un instrumento virtual para los dos modos. SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 7 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC 2. DIPOSITIVO DE PRUEBAS UTILIZADO RCA Altavoz Amplificador YAMAHA AX-630 Outputs Distancia (metros) Jack 1/4 DAL micrófonos CardDeluxe Jack 1/4 Bateria 48 V. Inputs BNC PreAmplificador BNC XLR XLR XLR PREFER PPS 6 Stanford SR560 oscilloscopo Gain = 1 * 10^2 Gain Mode Noise = Low Salida =400-500 mV El set-up de laboratorio solo permite trabajar con 1 micrófono cada vez, y por tanto 1 canal de la CardDeluxe. Para el modo de operación de 2 canales, se ha probado el programa, pero 1 de los canales solo adquiere ruido electrónico. SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 8 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC 3. PLACA DE SONIDO Para entrar en la configuración de la placa de sonido CardDeluxe, se debe ir en el panel de control, después en el icono Multimedia, en los dispositivos, dispositivos de audio y en cardDeluxe(configuración). Para que el sonido que entra en los micrófonos no sale sobre el altavoz, se debe bajar el nivel de “Analog Input” en el “Analog Output Mixer” hasta “-INF dB”. En el primer programa, utilizamos el modo Punch-in, es el modo predefinido. Para sincronizar la grabación y la emisión, Se debe elegir el Record mode : “Lock to playback”, es lo que vamos a utilizar en el segundo programa. SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 9 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC 4. PROGRAMA PARA EL MODO PUNCH-IN 4.1 FRONT PANEL El “Instrumento Virtual” que he desarrollado se llama “play&record.VI”. Archivos distancia Modo de grabación retraso Validación de la grabación Las entradas: - El fichero que va a salir en el altavoz (1 file path). - Los ficheros donde van a ser grabados las medidas (2 file paths). - La distancia (en metros) entre el altavoz y los micrófonos (1 integer). SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 - Página: 10 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC El modo de grabación (1 o 2 micrófonos & derecha o izquierda) (2 boolean). El dispositivo del laboratorio no permitía grabar con los dos micrófonos, entonces hemos creado un modo 1 micrófono. Cuando ese modo esta activo, se debe elegir el derecho o el izquierdo. Las salidas: - El retraso corregido (en mseg.) (1 integer). Es el retraso entre la ejecución de los órdenes de grabación y emisión. Este retraso se elimina de la grabación, de manera que el único retraso que permanece es el debido a la distancia física entre el altavoz y micrófonos. - Validación de la grabación, que indica si ésta ha sido correcta (1 boolean). Indica que los ficheros han sido grabados. 4.2 DIAGRAMA El diagrama se divide en 3 secuencias: 4.2.1 Configuración del sistema de reproducción y de grabación de sonidos. Las funciones de sonidos bajo Labview funcionan en línea. Sound INPUT: Primero se debe configurar el modo de grabación (Estéreo, Rate = 44100, 16 bits) y el tamaño del buffer (Si Config). Cogemos para nuestra aplicación un buffer de 10000 bytes, que son 2500 muestras de 16 bits por canal. Iterando 7 veces dentro de un bucle, y rellenando el buffer en cada iteración, obtenemos ,397 seg. de grabación. Despues, empezamos la grabación (Si Start), y las datos se guardan en una variable matricia (Si Read). El bucle contiene “shift registers” ( ) , permite reentrar la salida en la entrada (a cada nueva bucle). Así, cada vez que el buffer se llena, hacemos una nueva bucle, y el contenido del nuevo buffer se agrega al anterior. Sound OUTPUT: Recuperamos la forma de onda del archivo “Mls16kpk.wav” (Wav File), y podemos configurar el modo de reproducción (So Config) (Mono, Rate = 44100, 16 bits). La configuración se pasa en una secuencia para que “Si Start” y “So Start” empiecen en el mismo momento. “So wait” permite esperar que todo el archivo sea leido. SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 11 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC “Si Clear” y “So Clear” permiten borrar todos las datos que no sirven. Diagrama 0 [0...2] 4.2.2 Tratamiento de las datos grabados (retraso, longitud) Primero, se debe separar los dos canales del sonido estéreo. Después, con la función de correlación cruzada, tenemos el retraso de cada canal. Si es en modo 2 micrófonos, cogemos el retraso más pequeño. Se añade el retraso debido a la distancia entre el altavoz y los micrófonos. Se cortan los archivos a la misma longitud que el sonido de salida (0.341 seg.). Entrada modo 1 / 2 micrófonos: TRUE : 2 micrófonos. (el otro modo no importa) FALSE : 1 micrófono. Entrada modo izquierda / derecha: TRUE : izquierda. (solo en modo 1 micrófono) FALSE : derecha. Diagrama 1 [0...2] 4.2.3 Registro de los archivos SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 12 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC Se pueden guardar los sonidos en los archivos que se han entrado. La salida “OK ?” indica que la grabación no ha tenido problema. OK?: TRUE : todo ha ido bien. FALSE : hay un problema Diagrama 2 [0...2] 4.3 RESULTADOS Ese programa funciona pero tiene unos problemas. El retraso debido al software no es siempre el mismo, entonces debemos entrar la distancia entre el altavoz y los micrófonos y después cortar la forma de onda correctamente. El tratamiento de la grabación (correlación cruzada, etc.. ) tiene también un tiempo de ejecución bastante importante. Hay un otro modo en la placa de sonido (“Lock to playback”), quien permite sincronizar la grabación y la reproducción del sonido. Vamos a ver ahora ese nuevo programa. SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 13 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC 5. PROGRAMA EN MODO LOCK TO PLAYBACK 5.1 FRONT PANEL El “Instrumento Virtual” que he desarrollado se llama “play&record.VI”. Archivos Validación de la grabación Las entradas: - El fichero que va a salir en el altavoz (1 file path). SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 - Página: 14 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC Los ficheros donde van a ser grabados las medidas (2 file paths). Las salidas: - Validación de la grabación, que indica si ésta ha sido correcta (1 boolean). Indica que los ficheros están grabados. 5.2 DIAGRAMA El diagrama se divide en 3 secuencias: 5.2.1 Configuración del sistema de reproducción y de grabación de sonidos. Primero se debe configurar el modo de grabación (Estéreo, Rate = 44100, 16 bits) y el tamaño del buffer (Si Config). Cogemos para nuestra aplicación un buffer de 65830 (0.373 seg. de grabacíon). Recuperamos la forma de onda del archivo “Mls16kpk.wav” (Wav File), y podemos configurar el modo de reproducción (So Config) (Mono, Rate = 44100, 16 bits). La placa de sonido tiene un modo “Lock to playback” que permite sincronizar la emisión y la grabación. Se pide primero de reproducir el sonido y cuando se ordena la grabación, la reproducción empieza con un retraso constante de 73 muestras (1,6 ms). Entonces, en ese modo, el sonido no se reproduce si no pedimos despues de grabar. “So wait” permite esperar que todo el archivo sea leído. “Si Read” envía los datos grabados en una matriz. “Si Clear” y “So Clear” permiten borrar todos las datos que no sirven. SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 15 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC Diagrama 0 [0...2] Si añadimos una función de espera en ese secuencia (entre el orden de reproducir y el orden de grabar), el retraso no cambia (siempre 73 muestras). 5.2.2 Tratamiento de las datos grabados (retraso, longitud) Primero, se debe separar los dos canales del sonido estéreo. Tenemos un retraso constante de 73 muestras. Se puede cortar los archivos a la misma longitud que el sonido de salida (0.341 seg.) y corregir el retraso. SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 16 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC Diagrama 1 [0...2] 5.2.3 Registro de los archivos Se pueden guardar los sonidos en los archivos que se han entrado. La salida “OK ?” indica que la grabación no ha tenido problema. OK?: TRUE : todo ha ido bien. FALSE : hay un problema Diagrama 2 [0...2] SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 5.3 Página: 17 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC RESULTADOS Con ese programa, hemos resuelto el problema del retraso(con el modo “lock to playback”). También, no se necesita entrar la distancia entre el altavoz y los micrófonos, lo que sería una obligación de más en el programa, de recibir las coordenadas y de calcular la distancia. SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 18 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC 6. COMPARACION DE LOS DOS MODOS He probado los dos modos en la sala de medida del Instituto tecnológico de Canarias. Los dos programas dan prácticamente la misma forma de onda. Solo podemos ver una pequeña diferencia de amplitud debida al ruido. Sobre el tiempo de ejecución, el programa para el modo “lock to playback” esta mas rápido. En efecto, el programa para el modo “punch in” hace correlaciones cruzadas y otras operaciones. El segundo problema es la necesidad de entrar la distancia entre el altavoz y los micrófonos mientras que en el modo “lock to playback”, tenemos un retraso constante que podemos corregir fácilmente. Por eso, el programa “lock to playback” esta el mas adaptado a nuestra aplicación. Solo falta integrar lo en el programa de María. Podemos ver que los dos programas en misma condición dan al misma función de transferencia. Se puede ver como tener la en la pagina siguiente. PUNCH-IN : LOCK TO PLAYBACK : SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 19 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC 7. MEDIDA DE LA HRTF Con el archivo grabado, se puede calcular la función de transferencia del sistema. Utilizamos para nuestras medidas el fichero mls16kpk.wav, ese fichero corresponde al fichero mlbs.wav filtrado. mlbs R(t) Mls16kpk h(t) Y(t) Grabación R(t) h(t) = mlbs y(t) La procedimiento para obtener la funcion de transferencia bajo MatLab es el siguiente : El fichero grabado se llama medida.wav por ejemplo >> [mls,n] = readsim(‘C:huron\measure\mls0116k.sim) recuperamos la forma de onda de mls0116k.sim >> wav2raw(medida.wav) transformamos .raw medida.wav >> medida = readraw2(‘medida.raw’,1,16,1) recuperamos la forma de onda de medida.raw >> [h,H] = corrcirc (mls,medida,lenght(mls),1) hacemos la correlacíon cruzada circular entre la mls y la medida. en 2^14-1 >> plotmag(h,44100) podemos representar >>shg la función de transferenci SOFTWARE DE EMISIÓN Y GRABACIÓN DE SONIDOS DEL SISTEMA DE MEDIDAS DE HRTFS CON LABVIEW Código: DE/TN-EAV/044v.1 Página: 20 de 20 Fecha: 31 de octubre de 2002 Fichero: DETNEAV_44v1.DOC ANEXOS A. CONTENIDO DEL DISQUETE DETNEAV_044V1.doc El informe PLAY&RECORD1.vi Programa en modo “punch-in” PLAY&RECORD2.vi Programa en modo “lock to playback” Mls16kpk.wav Fichero utilizado para hacer las medidas