Direct Sound Componente de sonido de la API para aplicaciones multimediales de Microsoft: DirectX.

Slides:



Advertisements
Presentaciones similares
Capítulo I Gestión de E/S 1.- Gestión de E/S 2.- Hardware de E/S 3.- Software de E/S.
Advertisements

VIDEOCONFERENCIA.
Telecomunicaciones Calificación Final. Primer parcial 30%
Sistema operativo Componentes de un sistema operativo
III - Gestión de memoria
2.- EL SISTEMA DE COMUNICACIONES DE DATOS. El sistema de comunicaciones de datos, es un sistema de proceso de datos, en el que los periféricos, pueden.
Subsistemas De un Sistema Operativo Celeste Domínguez Romo
Estructuras en Sistemas Operativos
Windows XP sp3.
UTFSM - Sistemas Operativos
Johanna Lizeth Rodríguez Lorena Fda. Chávarro Ramos
UNIDAD 5 Tarjetas de sonido.
Composición Interna de un Procesador
Ondas y Sonido..
Características del sonido
Arquitectura del Computador
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Tema 10: Gestión de Memoria
Introducción a la Ingeniería en Sistemas
Ing. Karen Torrealba de Oblitas
Estructura y Tecnología de Ordenadores Noviembre 2004.
Administración de Memoria Memoria Virtual
Valor X Valor Y Punto (0,0) Coordenadas.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Asignación de Espacio No Contiguo
O Funcionamiento, ventajas y alcance o ESTUDIANTE: EDWIN ARAY VÉLEZ o PROFESOR: ING. JOSÉ MEDINA o FUNDAMENTOS TECNOLÓGICOS DE INFORMACIÓN.
Introducción a los Sistemas Operativos
LENGUAJES DE PROGRAMACIÓN
Chips Controladores Pequeño circuito electrónico utilizado para realizar una función electrónica especifica. El chips es el que hace posible que la placa.
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
Ondas y Sonido..
Integrantes: Miriam Pastrana Brito376401ITE 5to semestre Víctor Manuel Rodríguez Bahena378087IMT 5to semestre Erendira Victoria Sánchez Montes de Oca ITE.
Introducción a los Sistemas Operativos
Direct Sound Componente de sonido de la API para aplicaciones multimediales de Microsoft: DirectX.
Teoría de Sistemas Operativos I/O
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
MANTENIMIENTO LOGICO DEL PC
CLASIFICACION DE LAS COMPUTADORAS
Resumen: DirectSound Componente de sonido de la API para aplicaciones multimediales de Microsoft: DirectX.
Estructura de los Sistemas Operativos
Sistemas Operativos.
 En el interior de un ordenador habita una densa amalgama de componentes electrónicos que son los responsable de su correcto funcionamiento; componentes.
MEMORIA RAM. son las siglas de random access memory, un tipo de memoria de ordenador a la que se puede acceder aleatoriamente; es decir, se puede acceder.
Teoría de Sistemas Operativos Sistema de I/O. 2 Introducción Una de las funciones principales del sistema operativo es el control de todos los dispositivos.
Sistemas de Archivos Sistemas Operativos.  Se debe proporcionar un almacenamiento secundario que respalda a la memoria principal  El Sistema de archivos.
MIGUEL ENRIQUE CARCAMO FLORES.
INTEGRANTES: ONEIDA OSORIO VILLA, JUAN CAMILO SÁNCHEZ BAENA, JOANNA SÁNCHEZ, LUISA VILLA, JIMMY MORALES, BRIAM ZAMBRANO.
LOGO CPU. COMPANY LOGO DEFINICIÓNHISTORIA CPU DE TRANSISTORE S Y DE CIRCUITOS INTEGRADOS DISCRETOS MICROPROCES ADORES OPERACIÓN DEL CPU.
ESCUELA COLOMBIANA DE CARRERAS INDUSTRIALES ARQUITECTURA DEL COMPUTADOR INTRODUCCIÓN Ing. Luis Hernando Concha.
MEMORIA RAM. es la memoria desde donde el procesador recibe las instrucciones y guarda los resultados. QUE ES LA MEMORIA RAM.
INTERRUPCIONES – ABRAZO MORTAL
María Camila Restrepo C. Mantener la Operatividad del sistema
El Streaming  Consiste en la distribución de audio o video por Internet.  La palabra streaming se refiere a que se trata de una corriente continua.
Hardware El término hardware (pronunciación AFI: [ˈhɑːdˌwɛə] o [ˈhɑɹdˌwɛɚ]) se refiere a todas las partes tangibles de un sistema informático; sus componentes.
Elementos y tipos de sistemas operativos
El sonido Autor.
MIA - Grupo 5 Unidad 2.
Driver o controlador para la pc.
TECNICO EN SISTEMAS NUMERO DE FICHA:
HARDWARE – SOFTWARE - MANTENIMIENTO Presentado por: Andrey Muñoz Dayana Cubillos Sandra Hernández.
MEMORIA DINÁMICA.
Unidad de transferencia de memoria
Historia de los sistemas operativos. Los Sistemas Operativos han sufrido una serie de cambios revolucionarios llamados generaciones. Hay cuatro generaciones:
CAPITULO III El Sistema Operativo (OS)
Gestión de Memoria – Parte 2
ARCHIVO Es una colección de información o bien es una secuencia de bits, bytes, líneas o registros definida por su creador.
Arquitectura de Computadoras (Taller) Semestre II de 2008.
1/50 Ing. Gerardo Chávez Malpartida Administración de Memoria SISTEMAS OPERATIVOS.
Arquitectura y Ensamblaje de Computadores Semana 08 Lab.
Transcripción de la presentación:

Direct Sound Componente de sonido de la API para aplicaciones multimediales de Microsoft: DirectX.

La Física del sonido El sonido es generado por ondas de energía liberadas de objetos que chocan entre si. Luego estas ondas de energía producen cambios de presión, lo que al final es captado por los tímpanos. El sonido es generado por ondas de energía liberadas de objetos que chocan entre si. Luego estas ondas de energía producen cambios de presión, lo que al final es captado por los tímpanos.

La Física del sonido La forma en que las tarjetas de sonido producen sonido en forma de ondas de sonido, luego los cambios de voltaje amplificado, el que es recibido por parlantes que vibran, estas vibraciones, producen cambios en la presión del aire y son consideradas sonidos. La forma en que las tarjetas de sonido producen sonido en forma de ondas de sonido, luego los cambios de voltaje amplificado, el que es recibido por parlantes que vibran, estas vibraciones, producen cambios en la presión del aire y son consideradas sonidos.

Sonido en Computadores. Al principio de la era computacional, los primeros computadores no fueron pensados para ser equipos multimediales, sino simples calculadoras. Al principio de la era computacional, los primeros computadores no fueron pensados para ser equipos multimediales, sino simples calculadoras. Por ello solo se contaba con los “beeps” para avisar mensajes. Por ello solo se contaba con los “beeps” para avisar mensajes.

Sonido en Computadores. En los 70 aparecen las primeras tarjetas de Sonido que usaban FM. En los 70 aparecen las primeras tarjetas de Sonido que usaban FM. Los primeros Mac ya manejaban sonido. Los primeros Mac ya manejaban sonido. En DOS de Microsoft, se podía contar con sonido, gracias a que existían ya a esas alturas T de Sonido. Pero para ello se necesitaba que el juego o aplicación misma se hiciera cargo de hacer funcionar la tarjeta de sonido. En DOS de Microsoft, se podía contar con sonido, gracias a que existían ya a esas alturas T de Sonido. Pero para ello se necesitaba que el juego o aplicación misma se hiciera cargo de hacer funcionar la tarjeta de sonido.

Direct X & DirectSound En 1995 aparece DirectX, con la idea de ser una API, con la cual, los programadores de video juegos se olvidarían del hardware que el usuario este utilizando, dejando la responsabilidad al SO. En 1995 aparece DirectX, con la idea de ser una API, con la cual, los programadores de video juegos se olvidarían del hardware que el usuario este utilizando, dejando la responsabilidad al SO. Parte de DirectX 1, es DirectSound, que en ese tiempo solo ofrecía efectos básicos de paneo izquierdo y derecho. Parte de DirectX 1, es DirectSound, que en ese tiempo solo ofrecía efectos básicos de paneo izquierdo y derecho.

Direct X & DirectSound DirectSound 3 introdujo en concepto de Directsound3d (DS3D), que ofrecía comandos para ubicar sonidos en un espacio 3D. DirectSound 3 introdujo en concepto de Directsound3d (DS3D), que ofrecía comandos para ubicar sonidos en un espacio 3D. Fue hasta DS5 que estas librerías pudieron ser aceleradas por componentes alternativos, lo que redujo sustancialmente el consumo de CPU. Fue hasta DS5 que estas librerías pudieron ser aceleradas por componentes alternativos, lo que redujo sustancialmente el consumo de CPU.

DirectSound hoy Lo que hoy nos ofrece DirectSound: Lo que hoy nos ofrece DirectSound: Tocar archivos o recursos en formato WAV. Tocar archivos o recursos en formato WAV. Tocar varios sonidos de manera simultanea. Tocar varios sonidos de manera simultanea. Asignar alta prioridad a los sonidos. Asignar alta prioridad a los sonidos. Localizar sonidos en ambientes 3-D. Localizar sonidos en ambientes 3-D. Agregar efectos como Ecos y Coros, y cambiar los parámetros de estos de manera dinámica. Agregar efectos como Ecos y Coros, y cambiar los parámetros de estos de manera dinámica. Capturar sonidos en formato WAV desde un micrófono u otros dispositivos. Capturar sonidos en formato WAV desde un micrófono u otros dispositivos.

Api inside. La Api de DirectSound, está formado por objetos COM de Microsoft. La Api de DirectSound, está formado por objetos COM de Microsoft. Todo objeto DirectSound, DS, debe estar asociado a lo que llamaremos buffer primario. Sobre este buffer no tenemos permisos ni de escritura ni de lectura en Windows NT / Windows En este buffer se almacena la mezcla de sonidos que se le entregará a la tarjeta de sonido. Todo objeto DirectSound, DS, debe estar asociado a lo que llamaremos buffer primario. Sobre este buffer no tenemos permisos ni de escritura ni de lectura en Windows NT / Windows En este buffer se almacena la mezcla de sonidos que se le entregará a la tarjeta de sonido.

DirectSound en VxD. Bajo el modelo de drivers virtuales, VxD, las mezclas de los buffers son hechas en Dsound.vxd. Esto implica que es posible acceder al buffer primario de manera directa. En este caso, se accede al buffer del DMA que usa la T de sonido. Es posible setear propiedades del buffer de esta manera, incluso cambiar las propiedades del mismo hardware. Bajo el modelo de drivers virtuales, VxD, las mezclas de los buffers son hechas en Dsound.vxd. Esto implica que es posible acceder al buffer primario de manera directa. En este caso, se accede al buffer del DMA que usa la T de sonido. Es posible setear propiedades del buffer de esta manera, incluso cambiar las propiedades del mismo hardware.

Windows Driver Model (WDM) No hay acceso al buffer primario, DS manda los datos al mezclador del kernel. No hay acceso al buffer primario, DS manda los datos al mezclador del kernel. El mezclador del kernel se encarga de convertir los formatos de audio que recibe en uno común. Mezclar y enviar a la T De Sonido. El mezclador del kernel se encarga de convertir los formatos de audio que recibe en uno común. Mezclar y enviar a la T De Sonido. Es capaz de mezclar WaveOut con DS. Es capaz de mezclar WaveOut con DS.

Buffers de sonido. Para mezclar un conjunto de sonidos, se usan buffers secundarios. Luego se mezclan y se reproducen en el buffer primario de manera simultanea. Para mezclar un conjunto de sonidos, se usan buffers secundarios. Luego se mezclan y se reproducen en el buffer primario de manera simultanea. Para escribir sobre un buffer secundario, primero debemos hacer un lock, a un trozo de ese buffer. Escribir lo que deseemos en esos bytes y desbloquearlo, con unlock. DS te permite bloquear un trozo mientras se está reproduciendo otro, siempre con cierta seguridad para evitar mezclas no deseadas. Para escribir sobre un buffer secundario, primero debemos hacer un lock, a un trozo de ese buffer. Escribir lo que deseemos en esos bytes y desbloquearlo, con unlock. DS te permite bloquear un trozo mientras se está reproduciendo otro, siempre con cierta seguridad para evitar mezclas no deseadas.

Buffers de sonido. Cada aplicación debe crear al menos un buffer secundario, para almacenar y tocar los sonidos. Cada aplicación debe crear al menos un buffer secundario, para almacenar y tocar los sonidos. Un buffer secundario puede ser destruido en cualquier momento, puede ser estático y que almacene un sonido simple, o también puede tocar los sonidos de forma streaming, en caso de que el consumo de memoria fuese mayor. Un buffer secundario puede ser destruido en cualquier momento, puede ser estático y que almacene un sonido simple, o también puede tocar los sonidos de forma streaming, en caso de que el consumo de memoria fuese mayor. Los buffers secundarios se mezclan simplemente al tocar los sonidos al mismo tiempo, cualquiera sea el número, sólo dependerá del poder de procesamiento. Los buffers secundarios se mezclan simplemente al tocar los sonidos al mismo tiempo, cualquiera sea el número, sólo dependerá del poder de procesamiento.

Características de los buffers. Formato : el formato de cada buffer debe ser el mismo que el del wav que se tocará. Formato : el formato de cada buffer debe ser el mismo que el del wav que se tocará. Controls. Volumen, frecuencia, y movimiento 3d son algunos de los controles para cada buffer. Controls. Volumen, frecuencia, y movimiento 3d son algunos de los controles para cada buffer. Location. Un buffer puede estar en memoria manejado por hardware, o en memoria manejado por software. Location. Un buffer puede estar en memoria manejado por hardware, o en memoria manejado por software.

Programación del API DirectSound Lo primero de todo, debemos crear un objeto DirectSound, llamando a la siguiente función: Lo primero de todo, debemos crear un objeto DirectSound, llamando a la siguiente función: HRESULT WINAPI DirectSoundCreate( LPGUID lpGuid, LPDIRECTSOUND *ppDS, LPUNKNOWN pUnkOuter );

Programación del API DirectSound El primer y tercer parámetro debe estar a 0, y el segundo es un puntero a un objeto DirectSound, creado tras la llamada a esta función. El código sería como sigue: El primer y tercer parámetro debe estar a 0, y el segundo es un puntero a un objeto DirectSound, creado tras la llamada a esta función. El código sería como sigue: LPDIRECTSOUNDpDS; HRESULT hRes = :: DirectSoundCreate(0, &pDS,0); If (hRes == DS_OK) {...

Programación del API DirectSound Tras ello, debemos de establecer al objeto DS lo que la librería llama el cooperative level. Básicamente, eso consiste en asociar el objeto a una ventana de la aplicación, indicando la prioridad que tiene respecto al resto de aplicaciones ejecutándose. Tras ello, debemos de establecer al objeto DS lo que la librería llama el cooperative level. Básicamente, eso consiste en asociar el objeto a una ventana de la aplicación, indicando la prioridad que tiene respecto al resto de aplicaciones ejecutándose. Se realiza mediante el método del objeto COM DS: Se realiza mediante el método del objeto COM DS: HRESULT SetCooperativeLevel ( HWND hwnd, DWORD dwLevel DWORD dwLevel);

Tras ello, creamos el buffer secundario y establecemos su formato interno, número de canales, frecuencia... Tras ello, creamos el buffer secundario y establecemos su formato interno, número de canales, frecuencia... Se realiza mediante el siguiente código: Se realiza mediante el siguiente código: DSBUFFERDESC bufferDesc; memset(&bufferDesc, 0, sizeof(DSBUFFERDESC)); bufferDesc.dwSize = sizeof(DSBUFFERDESC); bufferDesc.dwFlags = DSBCAPS_PRIMARYBUFFER |DSBCAPS_STICKYFOCUS; |DSBCAPS_STICKYFOCUS; bufferDesc.dwBufferBytes = 0; bufferDesc.lpwfxFormat = NULL; hRes = pDS->CreateSoundBuffer (&bufferDesc,&primaryBuffer, NULL);

if (hRes == DS_OK) { // Establecemos el formato, 48kz, 16bits, stereo WAVEFORMATEX format; memset(&format, 0, sizeof(WAVEFORMATEX)); format.wFormatTag = WAVE_FORMAT_PCM; format.nChannels = 2;// stereo format.nSamplesPerSec = F_MUEST; format.nAvgBytesPerSec = 4 * F_MUEST ; format.nBlockAlign = 4; format.wBitsPerSample = 16; format.cbSize = 0; hRes = primaryBuffer->SetFormat(&format);

Programación del API DirectSound HRESULT Lock ( DWORD dwWriteCursor, DWORD dwWriteBytes, LPVOID lplpvAudioPtr1, LPDWORD lpdwAudioBytes1, LPVOID lplpvAudioPtr2, LPDWORD lpdwAudioBytes2, DWORD dwFlags ); ); El primer parámetro indica a partir de que posición se desea bloquear. El segundo, el número de bytes que se quieren tomar. El tercero y el quinto son punteros a void, que se rellenarán con las direcciones donde escribir. El cuarto y sexto parámetro devuelven las longitudes en bytes de sus respectivos trozos de memoria. El último parámetros es un conjunto de flags entre los que señalo DSBLOCK_ENTIREBUFFER, para bloquear el buffer completo

Programación del API DirectSound Después de esto, se debe escribir en las posiciones indicadas por los punteros. Y al terminar, desbloquear el buffer mediante la siguiente llamada: Después de esto, se debe escribir en las posiciones indicadas por los punteros. Y al terminar, desbloquear el buffer mediante la siguiente llamada: HRESULT Unlock( LPVOID lpvAudioPtr1, DWORD dwAudioBytes1, LPVOID lpvAudioPtr2, DWORD dwAudioBytes2 );

Programación del API DirectSound Cuando se quiera reproducir un buffer secundario, se indica mediante la llamada Play. Cuando se quiera reproducir un buffer secundario, se indica mediante la llamada Play. HRESULT Play ( DWORD dwReserved1, DWORD dwReserved2, DWORD dwFlags );

Programación del API DirectSound Los 2 primeros parámetros son 0, y el tercero, se le puede agregar un flag de looping. Los 2 primeros parámetros son 0, y el tercero, se le puede agregar un flag de looping. Al hacer play, el contenido de este buffer secundario es mezclado por la libreria en el buffer primario, asi, si habian sonidos ya en el buffer primario, estos son reproducidos simultanemamente. Al hacer play, el contenido de este buffer secundario es mezclado por la libreria en el buffer primario, asi, si habian sonidos ya en el buffer primario, estos son reproducidos simultanemamente.

Manejo de sonido 3D Cordenadas usadas son las cartesianas, eje x de izq a der, eje y de arriba abajo, y eje z, lejos a cerca. Cordenadas usadas son las cartesianas, eje x de izq a der, eje y de arriba abajo, y eje z, lejos a cerca. Para la posicion se usan metros. Para la posicion se usan metros. Velocidad se mide por unidades en cada eje por segundo, es decir m/s. Velocidad se mide por unidades en cada eje por segundo, es decir m/s.

Sonido 3D: Percepción de posición Ruido general : Ruido general : Una fuente de sonido que se aleja, se percibe como una disminución cte de sonido. Esto se le llama rolloff. Diferencia interaural de intensidad : Diferencia interaural de intensidad : Sonidos que vienen del lado derecho se perciben más fuerte por el oído derecho. Sonidos que vienen del lado derecho se perciben más fuerte por el oído derecho.

Sonido 3D: Percepción de posición Diferencia de tiempo interaural : Diferencia de tiempo interaural : Un sonido que viaja hacia el oyente desde la derecha, llegará antes al oído derecho que al izq.  Amortiguación (Rolloff) Dada la forma de la persona, los sonidos que vienen desde atrás, así como los que vienen de la derecha y son oídos por el oído izq., son amortiguados.

Sonido 3D: Distancia Mínima y máxima Sonido cambia de acuerdo a la distancia, pero existe una distancia mínima a la cual el sonido es percibido de la misma forma. Sonido cambia de acuerdo a la distancia, pero existe una distancia mínima a la cual el sonido es percibido de la misma forma. Distancia default para un buffer es de un metro, ( unidad básica ) Distancia default para un buffer es de un metro, ( unidad básica ) La distancia máxima en Un billón, pero para evitar mal uso en caso de que existan drivers DxV, se aconseja preocuparse de esto. La distancia máxima en Un billón, pero para evitar mal uso en caso de que existan drivers DxV, se aconseja preocuparse de esto.

Sonido 3D: Processing Mode Tres modelos de procesar la información 3D Tres modelos de procesar la información 3DNormal Relativo a la cabeza Disabled

Sonido 3D: Efecto Doppler. La velocidad en DS sólo se usa para calcular efectos Doppler. La velocidad en DS sólo se usa para calcular efectos Doppler. Cambio en el tono debido a un cambio en la frecuancia de las ondas de sonido. Cambio en el tono debido a un cambio en la frecuancia de las ondas de sonido.

Sonidos 3D: Cono De Sonido. Estos conos de sonido sirven para tratar con fuentes de sonido, que se localizan en determinado punto del espacio. Estos conos de sonido sirven para tratar con fuentes de sonido, que se localizan en determinado punto del espacio.

Sonidos 3D: Cono De Sonido.

Efectos Los efectos que se pueden aplicar a los sonidos con la librería de DS son los siguientes. Los efectos que se pueden aplicar a los sonidos con la librería de DS son los siguientes. Chorus Chorus Chorus Compression Compression Compression Distortion Distortion Distortion Echo Echo Echo Environmental Reverberation Environmental Reverberation Environmental Reverberation Environmental Reverberation Flange Flange Flange Gargle Gargle Gargle Parametric Equalizer Parametric Equalizer Parametric Equalizer Parametric Equalizer Waves Reverberation Waves Reverberation Waves Reverberation Waves Reverberation

DirectSound and DirectMusic DirectSound y DirectMusic son componentes separados de DirectX, que tienen funcionalidades muy parecidas. Ambos reproducen sonidos WAV, y DirectMusic al final sintetiza todos los sonidos en ondas que son reproducidos por los buffers de DirectSound. DirectSound y DirectMusic son componentes separados de DirectX, que tienen funcionalidades muy parecidas. Ambos reproducen sonidos WAV, y DirectMusic al final sintetiza todos los sonidos en ondas que son reproducidos por los buffers de DirectSound. DirectMusic es una solución mucho más completa para la mayoría de las aplicaciones y juegos. Es capaz de reproducir todo tipo de sonidos. DirectSound es mas requerida para el manejo de recursos a bajo nivel. Especial para el manejo de latencias y uso de recursos más adecuado. DirectMusic es una solución mucho más completa para la mayoría de las aplicaciones y juegos. Es capaz de reproducir todo tipo de sonidos. DirectSound es mas requerida para el manejo de recursos a bajo nivel. Especial para el manejo de latencias y uso de recursos más adecuado. Interacción entre ambas es fuerte, a través de DS, manejar buffers manejados por DirectMusic. Interacción entre ambas es fuerte, a través de DS, manejar buffers manejados por DirectMusic.

DirectSound and DirectMusic FuncionalidadDirectMusicDirectSound Reproducir Wavs SiSi Reproducir MIDI SiNo Reproducir segmentos de Produccion de DM SINo

DirectSound and DirectMusic FuncionalidadDirectMusicDirectSound Cargar archivos con contenidos y manejar objetos Si No, pero existe código de ejemplo utilizable. Controlar parámetros musicales en tiempo ejecución SiNo Menejo de tiempos para encolar sonidos SiNo

DirectSound and DirectMusic FuncionalidadDirectMusicDirectSound Usar sonidos descargables (DLS) SiNo Setear Volumen, tonos y paneos de sonidos Si, a travez de DS. Si Setear volumen en distintos canales de sonidos. SiNo

DirectSound and DirectMusic FuncionalidadDirectMusicDirectSound Implementar sonido 3-d Si, a travez de DS. Si. Aplicar efectos Si, a travez de DS. Si Capturar WAV NoSi

DirectSound and DirectMusic FuncionalidadDirectMusicDirectSound Implementar Full Duplex NoSi Control sobre localización de Buffers NoSi Capturar MIDI SiNo

Links