DirectSound es un componente de software obsoleto de la biblioteca DirectX de Microsoft para el sistema operativo Windows , reemplazado por XAudio2 . Proporciona una interfaz de baja latencia para los controladores de tarjetas de sonido escritos para Windows 95 a Windows XP y puede gestionar la mezcla y grabación de múltiples flujos de audio. DirectSound fue escrito originalmente para Microsoft por John Miles . [ 1 ]
Además de proporcionar el servicio esencial de transmitir datos de audio a la tarjeta de sonido, DirectSound ofrece otras capacidades esenciales como la grabación y mezcla de sonido, la adición de efectos de sonido (por ejemplo, reverberación , eco , flanger u otros efectos de mejora de audio ), el uso de búferes acelerados por hardware en Windows 95 a XP y el posicionamiento de sonidos en el espacio 3D . DirectSound también permite capturar sonidos desde un micrófono u otra entrada y controlar los efectos de captura durante la captura de audio. [ 2 ]
Tras muchos años de desarrollo, DirectSound es hoy una API madura que ofrece muchas otras funcionalidades útiles, como la reproducción de sonido multicanal en alta resolución. Si bien DirectSound se diseñó para videojuegos , actualmente se utiliza para reproducir audio en numerosas aplicaciones. DirectShow aprovecha las capacidades de aceleración de audio por hardware de DirectSound si la tarjeta de sonido dispone de dichas capacidades y estas están disponibles en el controlador de audio. [ 3 ]
Características
DirectSound es una API en modo de usuario que proporciona una interfaz entre las aplicaciones y el controlador de la tarjeta de sonido , lo que permite a las aplicaciones producir sonidos y reproducir música.
DirectSound fue considerado revolucionario cuando se presentó en 1995, ya que permitía múltiples flujos de audio simultáneos y que varias aplicaciones accedieran a la tarjeta de sonido al mismo tiempo. Antes de eso, los desarrolladores de juegos debían implementar su propio motor de renderizado de audio mediante software.
DirectSound proporciona conversión de frecuencia de muestreo y mezcla de sonido ( volumen y panorama ) para un número ilimitado de fuentes de audio; sin embargo, los límites prácticos son el número de fuentes de audio de hardware y el rendimiento de los mezcladores de software.
La arquitectura DirectSound incorpora el concepto de "búfer circular", que se reproduce continuamente en un ciclo. El programador crea el búfer de sonido y luego consulta su estado de forma continua mediante el "cursor de lectura", actualizándolo con el "cursor de escritura". Existen dos tipos de búferes: un búfer de "transmisión", que almacena sonidos continuos como música de fondo, y un búfer "estático", que almacena sonidos cortos.
En las tarjetas de sonido compatibles, DirectSound intentaría usar búferes con aceleración por hardware, es decir, aquellos que se pueden almacenar en la memoria local de la tarjeta de sonido o a los que la tarjeta de sonido puede acceder desde la memoria del sistema. Si la aceleración por hardware no está disponible, DirectSound crearía búferes de audio en la memoria del sistema y utilizaría la mezcla exclusivamente por software.
Algunas tarjetas de sonido de " tabla de ondas " de finales de la era DOS, como la Sound Blaster AWE32 y la Gravis Ultrasound, incorporaban DSP dedicados , tomados de los instrumentos musicales digitales . Estas tarjetas contaban con memoria local que podía utilizarse para almacenar en búfer múltiples flujos de audio y mezclarlos internamente, lo que liberaba a la CPU y mejoraba notablemente la calidad del sonido. Sin embargo, esto solo era posible en DOS mediante la programación directa del hardware, y la "aceleración por hardware" completa desde la memoria local nunca se implementó en estas tarjetas debido a la complejidad del doble búfer . Tarjetas posteriores, como la Sound Blaster Live!, la Audigy y la X-Fi, son capaces de acceder directamente a los búferes de memoria del sistema.
DirectSound3D
DirectSound3D (DS3D) es una extensión de DirectSound introducida con DirectX 3 en 1996 con la intención de estandarizar el audio 3D en Windows. DirectSound3D permite a los desarrolladores de software utilizar el audio escribiendo el código una sola vez para una única API de audio , en lugar de reescribir el código numerosas veces para que funcione con cada fabricante de tarjetas de audio.
En DirectX 5, DirectSound3D obtuvo compatibilidad con tarjetas de sonido que utilizan algoritmos de audio 3D de terceros para acelerar DirectSound3D correctamente, mediante métodos aprobados por Microsoft.
En DirectX 8, DirectSound y DirectSound3D (DS3D) se fusionaron oficialmente y recibieron el nombre de DirectX Audio ; sin embargo, la API todavía se conoce comúnmente como DirectSound.
EAX
EAX es una extensión de DirectSound y DirectSound3D que proporciona procesamiento de efectos de sonido a los búferes acelerados por hardware.
Soporte del sistema operativo
Windows 9x
En Windows 95, 98 y Me, tanto el componente mezclador DirectSound como los controladores de la tarjeta de sonido se implementaron como un controlador VxD en modo kernel (Dsound.vxd), lo que permitía el acceso directo al búfer principal utilizado por el hardware de audio y, por lo tanto, proporcionaba la menor latencia posible entre la API en modo usuario y el hardware subyacente, pero en algunos casos causaba inestabilidad y errores de pantalla azul .
Windows 98 introdujo el audio WDM y el controlador Kernel Audio Mixer ( KMixer ), que permitía la mezcla, el enrutamiento y el procesamiento digital de flujos de audio simultáneos con una conversión de frecuencia de muestreo de mayor calidad, así como el flujo del kernel. Bajo WDM, DirectSound envía datos al KMixer basado en software. Windows 98 Second Edition mejoró la compatibilidad con audio WDM al agregar almacenamiento en búfer de hardware DirectSound y aceleración de hardware DirectSound, abstracción de hardware DirectSound3D, conversión de frecuencia de muestreo (SRC) de KMixer para flujos de captura, compatibilidad con sonido envolvente (hasta 5.1 ) [ 4 ] e introducción de DirectMusic . [ 5 ] [ 6 ] Si el hardware de audio admite la mezcla de hardware (también conocida como almacenamiento en búfer de hardware o aceleración de hardware DirectSound), DirectSound almacena en búfer directamente en el dispositivo de renderizado. [ 7 ] Si los flujos DirectSound utilizan mezcla de hardware, se omite KMixer y su retardo de latencia. [ 8 ] En Windows 98 y Windows Me, se preferían los controladores de audio WDM, pero se conservaba la compatibilidad con el modelo de controlador VxD.
Aunque el Modelo de Controlador de Windows (WDM) estaba disponible a partir de Windows 98, pocos fabricantes de tarjetas de audio lo utilizaron para Windows 98 FE. Debido al almacenamiento en búfer interno, KMixer introdujo una latencia de procesamiento significativa (30 ms en los sistemas de la época). Windows 98 también incluye un controlador de clase de transmisión WDM (Stream.sys) para satisfacer estos requisitos de procesamiento de flujo de datos multimedia en tiempo real. Cuando la tarjeta de sonido utiliza un controlador personalizado para su uso con el controlador de clase de puerto proporcionado por el sistema, PortCls.sys , o implementa un minicontrolador para su uso con el controlador de clase de transmisión, las aplicaciones pueden omitir completamente KMixer y utilizar las interfaces de transmisión del kernel para reducir la latencia.
En Windows 95, 98 y Me, DirectSound está diseñado para dispositivos de audio más antiguos de esa época, como AC'97 y AudioPCI . [ 9 ]
Windows 2000/XP
En Windows 2000, Microsoft también implementó la misma pila de audio basada en WDM en Windows NT mediante la introducción de los controladores de audio WDM y el componente mezclador del kernel ( KMixer ). [ 10 ] En Windows XP, Microsoft introdujo otro controlador de clase de transmisión del kernel mejorado, AVStream . A partir de Windows XP, también se agregó aceleración de hardware para el procesamiento de efectos de captura de DirectSound [ 11 ] como cancelación de eco acústico para micrófonos USB, supresión de ruido y compatibilidad con micrófonos de matriz.
Windows Server 2003
En Windows Server 2003 , la aceleración de hardware DirectSound está deshabilitada de forma predeterminada.
Windows Vista/Windows 7
Windows Vista presenta una pila de audio completamente reescrita basada en la Arquitectura de Audio Universal . Debido a los cambios arquitectónicos en la pila de audio rediseñada, no existe una ruta directa de DirectSound a los controladores de audio. [ 12 ] DirectSound, DirectMusic y otras API como MME son envoltorios de compatibilidad sobre instancias de sesión WASAPI . DirectSound se ejecuta en modo de emulación en el mezclador de software de Microsoft. El emulador no tiene abstracción de hardware, por lo que no hay aceleración de DirectSound por hardware, lo que significa que el hardware y el software que dependen de la aceleración de DirectSound pueden tener un rendimiento degradado. Es probable que una supuesta pérdida de rendimiento no sea perceptible, dependiendo de la aplicación y el hardware real del sistema. En el caso de los efectos de audio 3D de hardware reproducidos con DirectSound3D, no se podrán reproducir; esto también rompe la compatibilidad con las extensiones EAX. [ 13 ] En Windows Vista/7, WASAPI es administrado por el servicio de audio de Windows . [ 14 ]
Las API de terceros, como ASIO y OpenAL, no se ven afectadas por estos cambios arquitectónicos en Windows Vista, ya que utilizan IOCtl para interactuar directamente con el controlador de audio. Una solución para las aplicaciones que desean aprovechar el audio posicional 3D de alta calidad acelerado por hardware es usar ASIO u OpenAL. Sin embargo, esto solo funciona si el fabricante proporciona un controlador ASIO u OpenAL para su hardware. [ 15 ]
En Windows Vista / Windows 7 , así como en versiones posteriores de Microsoft Windows , el software utiliza XACT y se recomienda WASAPI porque WASAPI está diseñado para dispositivos de audio UAA y puede ofrecer una latencia menor en comparación con MME/DirectSound más antiguos. [ 16 ] [ 17 ]
Windows 7 SP1 ha añadido compatibilidad con la transmisión de Dolby TrueHD y DTS-HD a través de HDMI tanto en modo compartido WASAPI como en modo exclusivo WASAPI. [ 18 ]
Windows 8
La pila de audio WASAPI en Windows 8 introduce soporte para la "descarga de hardware" de múltiples flujos de audio a la tarjeta de audio para la mezcla y el procesamiento de efectos, además del procesamiento de software introducido en Vista, [ 19 ] [ 20 ] sin embargo, la funcionalidad solo está expuesta para aplicaciones de Windows Runtime . [ 21 ] Las interfaces de hardware de DirectSound y DirectMusic para los controladores de tarjetas de sonido no están implementadas. Windows 8 requería que los controladores de audio estuvieran basados en WDF y UAA .
Windows 10
Windows 10 admite la descarga de hardware de los efectos de sonido APO ; el mezclador WASAPI en sí sigue siendo basado en software. [ 22 ] [ 23 ] Windows 10 agregó soporte para el potenciador de audio basado en software llamado Spatial Sound. [ 24 ]
Windows CE
Aunque la compatibilidad con DirectSound estaba disponible en las versiones de Windows CE hasta la 4.2, se eliminó a partir de la 5.0. [ 25 ] Windows CE 6.0 tampoco es compatible con DirectSound, sino que prefiere que las aplicaciones se reescriban para usar la API de audio Waveform.
Implementaciones de reemplazo
Tras la eliminación de DirectSound en Windows Vista, han aparecido algunas implementaciones que lo reemplazan.
Creative ALchemy de Sound Blaster (2007) proporciona aceleración por hardware de DirectSound3D y efectos de audio, como EAX. [ 26 ] Creative ALchemy intercepta las llamadas a DirectSound3D y las traduce a llamadas OpenAL para que las procese el hardware compatible, como Sound Blaster X-Fi y Sound Blaster Audigy . Para las soluciones de audio Creative basadas en software, ALchemy utiliza su motor de audio 3D integrado sin usar OpenAL en absoluto.
Realtek , fabricante de códecs de audio HD integrados , cuenta con un producto similar a ALchemy llamado 3D SoundBack. C-Media , fabricante de chipsets para tarjetas de sonido de PC , también ofrece una solución llamada Xear3D EX, aunque esta funciona interceptando las llamadas DirectSound3D de forma transparente en segundo plano, sin intervención del usuario.
IndirectSound es una biblioteca de software libre que emula DirectSound 3D usando XAudio2, sin usar aceleración de hardware. [ 27 ]
DSOAL es una biblioteca de código abierto que emula DirectSound 3D y EAX usando OpenAL. Se puede usar una implementación de OpenAL acelerada por hardware o OpenAL Soft (que proporciona HRTF). [ 28 ]
Límite superior de la tasa de muestreo
La frecuencia de muestreo máxima que admite DirectSound es de 200 kHz [ 29 ] , y si Windows está configurado con una frecuencia de muestreo superior a 192 kHz, por ejemplo, 384 kHz (que es compatible con dispositivos de sonido como los DAC USB), es posible que las aplicaciones que utilizan DirectSound (como los juegos antiguos creados antes de la década de 2010) no se inicien o, si lo hacen, no emitan ningún sonido. Para solucionar esto, configure la frecuencia de muestreo a 192 kHz o inferior y funcionará correctamente.
Las aplicaciones que utilizan XAudio2, WASAPI o ASIO en lugar de DirectSound pueden seguir funcionando a 384 kHz.
Véase también
Referencias
- ↑ "La evolución de DirectX" . Maximum PC . 3 (9): B8. Octubre de 1998. Consultado el 21 de julio de 2019 .
- ↑ Efectos de captura de DirectSound: MSDN
- ↑ Preguntas frecuentes de DirectShow
- ↑ "Estructura DSBUFFERDESC" . learn.microsoft.com . Consultado el 26 de junio de 2026 .
- ↑ "Biblioteca de controladores antiguos de VOGONS" . www.vogonsdrivers.com . Consultado el 19 de abril de 2026 .
- ↑ "Win98SE/ME - Audio (4.31)|NVIDIA" . www.nvidia.com . Consultado el 20 de junio de 2026 .
- ↑ Modelos de controladores DirectSound
- ↑ Descripción general de la aceleración de hardware de DirectSound
- ↑ "El poder de DirectSound" . learn.microsoft.com . Consultado el 22 de abril de 2026 .
- ↑ CakeWalk - Mesa redonda sobre audio profesional de Windows
- ↑ Revelando los efectos de la captura acelerada por hardware
- ↑ "Artículo de Techreport sobre tarjetas de sonido compatibles con Vista" . 15 de enero de 2008. Consultado el 23 de diciembre de 2008 .
- ↑ Tecnología creativa - Soporte - Audio en Windows Vista
- ↑ mhopkins-msft. "Arquitectura de audio de Windows - Controladores de Windows" . learn.microsoft.com . Consultado el 1 de marzo de 2026 .
- ↑ "OpenAL y Windows Vista" . Archivado del original el 2 de enero de 2008. Consultado el 10 de enero de 2008 .
- ↑ drewbatgit. "Acerca de WASAPI - Aplicaciones Win32" . learn.microsoft.com . Consultado el 22 de abril de 2026 .
- ↑ drewbatgit. "Sesiones de audio - Aplicaciones Win32" . learn.microsoft.com . Consultado el 22 de abril de 2026 .
- ↑ https://learn.microsoft.com/en-us/windows/win32/coreaudio/representing-formats-for-iec-61937-transmissions
- ↑ Descarga de audio: Exponiendo el procesamiento de audio descargado por hardware en Windows
- ↑ Kit de controladores de Windows - Vista previa para desarrolladores de Windows - Novedades para controladores de audio
- ↑ "Descripción general de la implementación: controladores de Windows | Microsoft Docs" .
- ↑ "Windows 10: Novedades en controladores de audio" . Microsoft . 15 de diciembre de 2021.
- ↑ "Arquitectura de objetos de procesamiento de audio" . Microsoft . 13 de diciembre de 2024.
- ↑ "Cómo activar el sonido espacial en Windows - Soporte técnico de Microsoft" . support.microsoft.com . Consultado el 27 de abril de 2026 .
- ↑ Funcionalidad eliminada en Windows CE 5.0
- ↑ "Sitio web de Creative ALchemy" . Archivado del original el 17 de diciembre de 2008. Consultado el 23 de diciembre de 2008 .
- ↑ Sonido indirecto
- ↑ "DSOAL: Un reemplazo de DLL de DirectSound que habilita sonido envolvente, HRTF y compatibilidad con EAX a través de OpenAL Soft" . GitHub . 20 de abril de 2023.
- ↑ Novedades de DirectSound
Enlaces externos
- MSDN DirectSound
- ¿Qué ocurre con el sonido 3D en DirectX?
- Audio en Windows Vista
- Alquimia creativa {en el Archivo de Internet}
- Glosario: Tarjeta de sonido en PC Gaming Wiki, con notas sobre alternativas a DirectSound
- Interfaces de programación de aplicaciones
- Bibliotecas de audio
- DirectX
- Arquitecturas de complementos de software musical
- Audio de Windows