Article de reference

DirectSound

DirectSound est un composant logiciel obsolète de la bibliothèque Microsoft DirectX pour le système d'exploitation Windows , remplacé par XAudio2 . Il offre une interface à faib...

DirectSound est un composant logiciel obsolète de la bibliothèque Microsoft DirectX pour le système d'exploitation Windows , remplacé par XAudio2 . Il offre une interface à faible latence aux pilotes de cartes son conçus pour Windows 95 à Windows XP et permet le mixage et l'enregistrement de plusieurs flux audio. DirectSound a été initialement développé pour Microsoft par John Miles .

Outre le service essentiel de transmission des données audio à la carte son, DirectSound offre d'autres fonctionnalités essentielles telles que l'enregistrement et le mixage audio, l'ajout d'effets sonores (par exemple, réverbération , écho , flanger ou autres effets d'amélioration audio ), l'utilisation de tampons d'accélération matérielle sous Windows 95 à XP et le positionnement des sons dans l'espace 3D . DirectSound permet également de capturer des sons à partir d'un microphone ou d'une autre entrée et de contrôler les effets de capture pendant l'enregistrement audio.

Après de nombreuses années de développement, DirectSound est aujourd'hui une API mature offrant de nombreuses fonctionnalités utiles, comme la lecture de sons multicanaux en haute résolution. Conçu initialement pour les jeux vidéo , DirectSound est désormais utilisé dans de nombreuses applications audio. DirectShow exploite l'accélération matérielle audio de DirectSound si celle-ci est disponible sur la carte son et accessible par le pilote audio.

Caractéristiques

DirectSound est une API en mode utilisateur qui fournit une interface entre les applications et le pilote de la carte son , permettant aux applications de produire des sons et de lire de la musique.

DirectSound a été considéré comme révolutionnaire lors de son lancement en 1995, car il permettait la gestion de plusieurs flux audio simultanés et autorisait plusieurs applications à accéder simultanément à la carte son. Auparavant, les développeurs de jeux devaient implémenter leur propre moteur de rendu audio par logiciel.

DirectSound assure la conversion de la fréquence d'échantillonnage et le mixage sonore ( volume et panoramique ) pour un nombre illimité de sources audio ; cependant, ses limites pratiques résident dans le nombre de sources audio matérielles et les performances des mélangeurs logiciels.

L'architecture DirectSound repose sur le concept de « tampon circulaire » qui est lu en boucle. Le développeur crée ce tampon, puis interroge en permanence son état via le « curseur de lecture » ​​et le met à jour avec le « curseur d'écriture ». Il existe deux types de tampons : un tampon « de flux », qui contient des sons continus comme la musique de fond, et un tampon « statique », qui contient des sons brefs.

Sur les cartes son compatibles, DirectSound tente d'utiliser des tampons à accélération matérielle, c'est-à-dire ceux qui peuvent être placés dans la mémoire locale de la carte son ou accessibles par celle-ci depuis la mémoire système. Si l'accélération matérielle n'est pas disponible, DirectSound crée des tampons audio dans la mémoire système et utilise un mixage logiciel.

Certaines cartes son « wavetable » de la fin de l'ère DOS, comme la Sound Blaster AWE32 et la Gravis Ultrasound, intégraient des processeurs de signal numérique (DSP) dédiés , empruntés aux instruments de musique numériques . Ces cartes disposaient d'une mémoire locale permettant de mettre en mémoire tampon plusieurs flux audio et de les mixer directement, déchargeant ainsi le processeur et améliorant considérablement la qualité sonore. Cependant, sous DOS, cela n'était possible qu'en programmant directement le matériel, et l'« accélération matérielle » complète à partir de la mémoire locale n'a jamais été implémentée sur ces cartes, en raison de la complexité du double tamponnage . Des cartes plus récentes, telles que la Sound Blaster Live!, l'Audigy et la X-Fi, peuvent accéder directement aux tampons de la mémoire système.

DirectSound3D

DirectSound3D (DS3D) est une extension de DirectSound, introduite avec DirectX 3 en 1996, dans le but de standardiser l'audio 3D sous Windows. DirectSound3D permet aux développeurs de logiciels d'utiliser l'audio en écrivant une seule fois le code pour une API audio unique , au lieu de devoir le réécrire plusieurs fois pour chaque fabricant de cartes son.

Dans DirectX 5, DirectSound3D a bénéficié de la prise en charge des cartes son utilisant des algorithmes audio 3D tiers afin d' accélérer correctement DirectSound3D, grâce à des méthodes approuvées par Microsoft.

Dans DirectX 8, DirectSound et DirectSound3D (DS3D) ont été officiellement fusionnés et ont reçu le nom de DirectX Audio , cependant l'API est encore couramment appelée DirectSound.

EAX

Windows 2000/XP

Sous Windows 2000, Microsoft a également implémenté la même pile audio WDM sous Windows NT en introduisant les pilotes audio WDM et le composant de mixage du noyau ( KMixer ) . Sous Windows XP, Microsoft a introduit un autre pilote de classe de flux du noyau amélioré, AVStream . À partir de Windows XP, l'accélération matérielle a également été ajoutée pour le traitement des effets de capture DirectSound , tels que l'annulation d'écho acoustique pour les microphones USB, la réduction du bruit et la prise en charge des microphones matriciels.

Windows Server 2003

Sous Windows Server 2003 , l'accélération matérielle DirectSound est désactivée par défaut.

Windows Vista/Windows 7

Windows Vista intègre une pile audio entièrement réécrite, basée sur l' architecture audio universelle (UAA) . Du fait de ces modifications architecturales, il n'existe plus de chemin direct entre DirectSound et les pilotes audio. DirectSound, DirectMusic et d'autres API comme MME sont des interfaces de compatibilité pour les instances de session WASAPI . DirectSound fonctionne en mode émulation sur le mixeur logiciel Microsoft. L'émulateur ne disposant pas d'abstraction matérielle, il n'y a pas d'accélération matérielle DirectSound, ce qui peut entraîner une dégradation des performances pour les matériels et logiciels dépendant de cette accélération. Cette baisse de performances, bien que supposée, peut être imperceptible, selon l'application et la configuration matérielle du système. Les effets audio 3D matériels lus via DirectSound3D ne seront pas compatibles ; cela compromet également la compatibilité avec les extensions EAX. Sous Windows Vista/7, l' API WASAPI est gérée par le service audio Windows .

Les API tierces telles qu'ASIO et OpenAL ne sont pas affectées par ces modifications architecturales dans Windows Vista, car elles utilisent IOCtl pour interagir directement avec le pilote audio. Une solution pour les applications souhaitant tirer parti de l'audio positionnel 3D haute qualité accéléré par le matériel consiste à utiliser ASIO ou OpenAL. Cependant, cela n'est possible que si le fabricant fournit un pilote ASIO ou OpenAL pour son matériel.

Sous Windows Vista / Windows 7 , ainsi que dans les versions ultérieures de Microsoft Windows , les logiciels utilisent XACT et WASAPI est recommandé car WASAPI est conçu pour les périphériques audio UAA et offre une latence plus faible que les anciens protocoles MME/DirectSound.

Windows 8

La pile audio WASAPI de Windows 8 introduit la prise en charge du déchargement matériel de plusieurs flux audio vers la carte son pour le mixage et le traitement des effets, en complément du traitement logiciel introduit dans Vista Cependant, cette fonctionnalité n'est accessible qu'aux applications Windows Runtime . Les interfaces matérielles DirectSound et DirectMusic avec les pilotes de carte son ne sont pas implémentées. Windows 8 exigeait que les pilotes audio soient basés sur WDF et UAA .

Windows 10

Windows 10 prend en charge le déchargement matériel des effets sonores APO ; le mixeur WASAPI reste quant à lui un logiciel. Windows 10 a ajouté la prise en charge d’un optimiseur audio logiciel appelé Spatial Sound.

Windows CE

Bien que la prise en charge de DirectSound soit disponible dans les versions de Windows CE jusqu'à la version 4.2, elle a été supprimée à partir de la version 5.0. Windows CE 6.0 ne prend pas non plus en charge DirectSound, préférant que les applications soient réécrites pour utiliser l'API audio Waveform.

implémentations de remplacement

Suite à la suppression de DirectSound dans Windows Vista, quelques implémentations de remplacement ont vu le jour.

La technologie Creative ALchemy (2007) de Sound Blaster assure l'accélération matérielle de DirectSound3D et des effets audio, tels que EAX. Creative ALchemy intercepte les appels DirectSound3D et les convertit en appels OpenAL pour être traités par le matériel compatible, comme les cartes Sound Blaster X-Fi et Sound Blaster Audigy . Pour les solutions audio logicielles Creative, ALchemy utilise son moteur audio 3D intégré sans recourir à OpenAL.

Realtek , fabricant de codecs audio HD intégrés , propose un produit similaire à ALchemy appelé 3D SoundBack. C-Media , fabricant de puces pour cartes son PC , propose également une solution nommée Xear3D EX, qui intercepte les appels DirectSound3D de manière transparente en arrière-plan, sans intervention de l'utilisateur.

IndirectSound est une bibliothèque gratuite qui émule DirectSound 3D en utilisant XAudio2, sans utiliser l'accélération matérielle.

DSOAL est une bibliothèque open source qui émule DirectSound 3D et EAX à l'aide d'OpenAL. On peut utiliser soit une implémentation OpenAL accélérée par matériel, soit OpenAL Soft (qui fournit la HRTF).

Limite supérieure de la fréquence d'échantillonnage

La fréquence d'échantillonnage maximale prise en charge par DirectSound est de 200 kHz . Si Windows est configuré sur une fréquence d'échantillonnage supérieure à 192 kHz (par exemple 384 kHz, fréquence prise en charge par certains périphériques audio comme les convertisseurs N/A USB), les applications compatibles DirectSound (comme les jeux anciens antérieurs aux années 2010) risquent de ne pas se lancer, ou, si elles se lancent, de ne produire aucun son. Pour résoudre ce problème, réduisez la fréquence d'échantillonnage à 192 kHz ou moins.

Les applications qui utilisent XAudio2, WASAPI ou ASIO au lieu de DirectSound peuvent toujours fonctionner à 384 kHz.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index