DirectSound
# DirectSound

DirectSound es un componente de software de la biblioteca de DirectX, provisto por Microsoft, que reside en una computadora con el sistema operativo Windows. Proporciona una interfaz directa entre las aplicaciones y los drivers de la tarjeta de sonido, permitiendo a las aplicaciones producir sonidos y música. Además de proporcionar el servicio esencial de pasar datos de audio a la tarjeta de sonido, proporciona muchas capacidades necesarias tales como grabación y mezclado de sonido; adición de efectos al sonido como reverberación, eco, flanger; usando buffers controlados por hardware para velocidad extra; posicionar sonidos en espacio 3D (espaciamiento de audio 3D), captura de sonidos de un micrófono o de otra entrada y controlar la captura de efectos durante la captura de audio. De estos, el mezclado de sonido y el control de volumen de audio son los más esenciales. Todo esto a expensas de una enorme latencia comparado con otras tecnologías, principalmente debido a la estructura por capas, la cual no puede ser auditada ni estudiada para optimizarse, debido a la licencia.

DirectSound también permite a varias aplicaciones de una forma conveniente compartir el acceso a la tarjeta de sonido al mismo tiempo. Su capacidad para reproducir el sonido en 3D agregó una nueva dimensión a los juegos. También le proporciona la capacidad a los juegos de modificar una secuencia musical en respuesta a acontecimientos del juego en tiempo real, por ejemplo: el ritmo de la música podría acelerar en cuanto la acción aumenta.

Después de muchos años de desarrollo, DirectSound es hoy un API muy maduro, y provee muchas otras capacidades útiles, tales como la capacidad de reproducir el sonido multicanal y sonidos de alta resolución. Mientras que DirectSound fue diseñado para ser utilizado en los juegos, un número de profesionales de audio aprovechan ahora de sus muy diversas capacidades.

## DirectSound3D

DirectSound3D (DS3D) es una adición al sistema de DirectX de Microsoft el cual intentó estandarizar el audio 3D bajo el Microsoft Windows, introducido con el DirectX 3 en 1996.

DirectSound3D permite al software de los diseñadores escribir en un solo API estandarizado de audio en vez de estar escribiendo código para cada fabricante de tarjetas de audio.

En DirectX 5, DirectSound3D tiene la capacidad de tener tarjetas de sonido que usen algoritmos aceleradores de audio DirectSound3D de terceros correctamente, hasta los métodos aprobados-Microsoft. Esto elimina la necesidad de bibliotecas separadas de audio 3D.

Iniciando desde DirectX8 en adelante, DirectSound y DirectSound3D (DS3D) son conjuntamente llamados como DirectX Audio.

## Windows Vista

Windows Vista ofrece una pila de audio totalmente reescrita. Debido a los cambios arquitectónicos en la reajustada pila de audio, no existe un camino directo desde DirectSound a los drivers de audio. El DirectSound y los otros API tales como MME (MultiMedia Extensions) son emulados como sucesos de la sesión WASAPI (Windows Audio Session API). DirectSound funciona en modo de emulación en el mezclador del software de Microsoft. El emulador no tiene abstracción del hardware, así que no hay ninguna aceleración de DirectSound del hardware, dando a entender que el hardware y el software que confían en la aceleración de DirectSound pudieron haber degradado su funcionamiento, no obstante con un hardware más poderoso, no se podría hacer ninguna mejora de funcionamiento. En el caso de los efectos de audio 3D del hardware reproducidos usando DirectSound3D, ya no serán reproducibles.

API de terceras personas tales como ASIO (Audio Stream Input/Output) y OpenAL no son sin embargo afectados por estos cambios arquitectónicos en Windows Vista. Una solución por lo tanto, para el audio posicional 3D es utilizar un driver OpenAL, y si el software necesita el audio posicional 3D, se escribe para usar OpenAL en vez de DirectSound y de DirectSound3D. Sin embargo, esto trabaja solamente si el fabricante proporciona un driver de OpenAL para su hardware. En el 2007, solamente el Sound Blaster X-Fi es soportado por un driver prelanzado que soporta DirectSound HAL, bajo el nombre de “Creative Alchemy Project” (proyecto creativo de la alquimia).

## XAudio

Debido a la integración de Xbox 360 y Microsoft Windows, Microsoft está alentando activamente a los desarrolladores para emigrar las nuevas aplicaciones hacia el equivalente de las API de audio de Xbox tales como XAudio y XACT. XAudio es una API exclusiva para Xbox diseñada para el procesamiento de señales digitales, sin embargo, XAudio 2 es una API de audio común multiplataforma (Windows y Xbox) de bajo nivel, propuesta como el reemplazo de DirectSound. XAudio 2 está disponible para Windows XP, Windows Vista y Xbox 360. Esta API proporciona "mixing" de bajo nivel y procesamiento de señales mientras que el "authoring" y reproducción de audio de alto nivel están disponibles usando XACT, y funciones 3D vía la biblioteca X3DAudio. El motor de XACT es una biblioteca de programación de audio de alto nivel que opera a través de XAudio en Xbox, DirectSound en Windows XP, y la nueva pila de audio en Windows Vista. X3DAudio es una biblioteca de ayuda que puede ser reemplazada por comportamientos 3D personalizados.

XAudio 2 hace énfasis especial en el procesamiento de señal para API de audio de alto nivel tales como XACT. Algunas de sus características son:

* Separación de datos de sonido de la “voz”
* Submezclado
* Procesamiento Multigrado
* Filtración por voz
* Voces programables
* Procesamientos de efectos, coversión de frecuencia de muestreo (SRC)
* Software DSP
* Mejorar el surround sound (multicanal) y encuadrado/mapeado multicanal explícito
* Soporte de datos compresados nativos
   * XNA en Xbox 360
   * ADPCM en Windows
   * Extensible
* Audio 3D manejado como una biblioteca reemplazable separada: XAudio 2 toma los volúmenes del altavoz multicanal y la biblioteca de X3DAudio transforma coordenadas fuente/oyente en volúmenes del altavoz y otros parámetros de síntesis

## Windows CE

Aunque el soporte de DirectSound estaba disponible en versiones de Windows CE hasta el 4.2, fue quitada iniciando el 5.0. El Windows CE 6.0 tampoco soporta DirectSound, en lugar de favorecerlo esas aplicaciones fueron reescritas para utilizar la API de audio de forma de onda.

