Audio pour les jeux

Apprenez à développer et à incorporer de la musique et des sons dans votre jeu DirectX, et à traiter les signaux audio afin de créer des sons dynamiques et positionnels.

Pour la programmation audio, nous vous recommandons d’utiliser la bibliothèque XAudio2 dans DirectX ou les API Windows Runtime Graphiques audio. Nous utilisons XAudio2 ici. XAudio2 est une bibliothèque audio de bas niveau qui procure une base pour le traitement et le mixage du signal pour les jeux, ainsi que la prise en charge de nombreux formats.

Vous pouvez également implémenter la lecture de sons simples et de musique avec Microsoft Media Foundation. Microsoft Media Foundation est conçu pour la lecture de fichiers et de flux multimédias, autant audio que vidéo, mais il peut aussi être utilisé dans les jeux et est particulièrement utile dans les scènes cinématiques ou les composants non-interactifs de votre jeu.

Concepts en un clin d’œil

Voici quelques concepts de programmation audio que nous utilisons dans cette section.

  • Le signal est à la programmation audio ce que le pixel est au graphisme : l’unité de base. Les processeurs de signal numérique (DSP, digital signal processor) qui les traitent sont comme les nuanceurs de pixels du son du jeu. Ils peuvent transformer les signaux, les combiner ou les filtrer. En programmant les DSP, vous pouvez modifier les effets audio et la musique de votre jeu avec le niveau de complexité de votre choix.
  • Les voix sont les composites sous-mixés de deux signaux, ou plus. Il existe 3 types d’objets vocaux XAudio2 : voix source, sous-mixée et de matriçage. Les voix source opèrent sur les données audio fournies par le client. Les voix source et sous-mixées envoient leur sortie vers une ou plusieurs voix sous-mixées ou de matriçage. Les voix sous-mixées et de matriçage mixent les signaux provenant de toutes les voix qui les alimentent et opèrent sur le résultat. Les voix de matriçage écrivent des données audio sur un périphérique audio.
  • La mixage est le processus consistant à combiner différentes voix discrètes, telles que les effets sonores et le son d’arrière-plan que l’on entend en fond sonore, en un seul flux. Le sous-mixage est le processus consistant à combiner différents signaux discrets, tels que les sons composant un bruit de moteur, et à créer une voix.
  • Formats audio. La musique et les effets audio peuvent être stockés dans une variété de formats numériques pour votre jeu. Il existe des formats non compressés, comme WAV, et des formats non compressés, comme MP3 et OGG. Plus un échantillon est compressé, moins la fidélité est bonne. En règle générale, plus le taux d’échantillonnage est bas, plus la perte de qualité audio est grande. La fidélité pouvant varier suivant les schémas de compression et les taux d’échantillonnage, il est recommandé d’expérimenter pour trouver ce qui fonctionne mieux pour votre jeu.
  • Taux d’échantillonnage et qualité. Les sons peuvent être échantillonnés à différents taux, et les sons échantillonnés à un faible taux offrent une fidélité moindre. Le taux d’échantillonnage de la qualité CD est de 44,1 Khz (44100 Hz). Si vous n’avez pas besoin d’une haute fidélité pour un son, vous pouvez choisir un taux d’échantillonnage inférieur. Les taux plus élevés conviennent aux applications audio professionnelles, mais vous n’en avez pas besoin tant que votre jeu n’exige pas un son à niveau de fidélité professionnel.
  • Émetteurs sonores (ou sources). Dans XAudio2, les émetteurs sonores sont des sources qui émettent un son, qu’il s’agisse d’un parasite de bruit de fond ou d’un morceau de rock joué par un jukebox dans une scène de votre jeu. Vous spécifiez les émetteurs à l’aide de coordonnées universelles.
  • Écouteurs de son. L’écouteur de son est souvent le joueur, voire une entité IA dans un jeu plus avancé, qui traite les sons reçus en provenance d’un écouteur. Vous pouvez sous-mixer ce son dans le flux audio pour le faire entendre au joueur, ou l’utiliser pour accompagner une action spécifique en cours de jeu, comme réveiller un garde IA marqué comme écouteur.

Remarques relatives à la conception

Le son est un élément extrêmement important de la conception et du développement du jeu. De nombreux joueurs sont capables de se souvenir d’un jeu médiocre élevé au rang de légende pour sa bande son, un superbe travail sur les voix ou le mixage du son, ou simplement une production audio exceptionnelle. La musique et le son définissent la personnalité d’un jeu, et établissent le motif principal qui identifie le jeu et le distingue de ses concurrents. L’effort que vous consacrez à concevoir et à développer le profil audio de votre jeu sera bien employé.

Le son 3D positionnel peut ajouter un niveau d’immersion au-delà de ce qu’apportent les graphiques 3D. Si vous développez un jeu complexe qui simule un univers, ou qui exige un style cinématographique, envisagez d’employer des techniques audio positionnelles 3D pour faciliter l’immersion du joueur.

Feuille de route de développement audio DirectX

Ressources conceptuelles XAudio2

XAudio2 est la bibliothèque de mixage audio pour DirectX, principalement destinée au développement de moteurs audio hautes performances pour les jeux. Pour les développeurs qui souhaitent ajouter des effets sonores et de la musique de fond dans leurs jeux modernes, XAudio2 propose un moteur de mixage et de graphique audio caractérisé par sa faible latence et sa prise en charge des tampons dynamiques, de la lecture synchrone et précise en échantillonnage, et de la conversion implicite du débit source.

Rubrique Description

Introduction à XAudio2

Cette rubrique fournit la liste des fonctions de programmation audio prises en charge par XAudio2.

Prise en main de XAudio2

Cette rubrique fournit des informations sur les concepts clés de XAudio2, les versions XAudio2 et le format audio RIFF.

Concepts courants de programmation audio

Cette rubrique fournit une vue d’ensemble des concepts audio courants qu’un développeur audio doit connaître.

Voix XAudio2

Cette rubrique donne une vue d’ensemble des voix XAudio2 qui sont utilisées pour le prémixage, le traitement et le matriçage des données audio.

Rappels XAudio2

Cette rubrique couvre les rappels XAudio 2 qui sont utilisés pour empêcher les ruptures dans la lecture audio.

Graphiques audio XAudio2

Cette rubrique couvre les graphiques de traitement audio XAudio2 qui prennent en entrée une série de flux de données audio provenant du client, les traitent et délivrent le résultat final sur un périphérique audio.

Effets audio XAudio2

Cette rubrique traite des effets audio XAudio2, qui prennent des données audio entrantes et effectuent une opération sur celles-ci (par exemple un effet de réverbération) avant de les transmettre.

Diffusion de données audio en continu avec XAudio2

Cette rubrique couvre la diffusion audio en continu avec XAudio2.

X3DAudio

Cette rubrique traite de X3DAudio, une interface API utilisée en conjonction avec XAudio2 pour créer l’illusion d’un son provenant d’un point donné dans l’espace 3D.

Référence de programmation XAudio2

Cette section contient la référence complète des API XAudio2.

Ressources XAudio2 « Procédure : »

Rubrique Description

Procédure : initialiser XAudio2

Découvrez comment initialiser XAudio2 pour la lecture audio en créant une instance du moteur XAudio2 et en créant une voix mastérisée.

Procédure : charger des fichiers de données audio dans XAudio2

Apprenez comment remplir les structures nécessaires pour lire les données audio dans XAudio2.

Procédure : lire un son avec XAudio2

Apprenez à lire des données audio précédemment chargées dans XAudio2.

Procédure : utiliser des voix prémixées

Apprenez à définir des groupes de voix pour créer en sortie une seule voix prémixée.

Procédure : utiliser des rappels de voix source

Apprenez à utiliser les rappels de voix source XAudio2.

Procédure : utiliser des rappels de moteur

Apprenez à utiliser les rappels de moteur XAudio2.

Procédure : créer un graphique de traitement audio de base

Apprenez à créer un graphique de traitement audio, construit à partir d’une seule voix mastérisée et d’une seule voix source.

Procédure : Ajouter ou supprimer dynamiquement des voix d’un graphique audio

Apprenez à ajouter ou supprimer des voix prémixées dans un graphique qui a été créé en suivant les étapes décrites dans Procédure : Créer un graphique de traitement audio de base.

Procédure : Créer une chaîne d’effets

Apprenez à appliquer une chaîne d’effets à une voix pour le traitement personnalisé des données audio de cette voix.

Procédure : Créer un XAPO

Découvrez comment implémenter IXAPO pour créer un objet de traitement audio XAudio2 (XAPO).

Procédure : Ajouter la prise en charge de paramètre d’exécution à un XAPO

Découvrez comment ajouter la prise en charge des paramètres d’exécution à un XAPO en implémentant l’interface IXAPOParameters .

Procédure : Utiliser un XAPO dans XAudio2

Apprenez à utiliser l’effet implémenté en tant que XAPO dans une chaîne d’effets XAudio2.

Procédure : utiliser un XAPOFX dans XAudio2

Apprenez à utiliser les effets inclus dans XAPOFX dans une chaîne d’effets XAudio2.

Procédure : diffuser un son en continu à partir du disque

Apprenez à diffuser des données audio dans XAudio2 en créant un thread séparé pour lire un tampon audio et en utilisant des rappels pour contrôler ce thread.

Procédure : intégrer X3DAudio avec XAudio2

Apprenez à utiliser X3DAudio pour fournir les valeurs de volume et de tonalité aux voix XAudio2 ainsi que les paramètres de l’effet de réverbération intégré XAudio2.

Procédure : regrouper des méthodes audio comme un ensemble d’opérations

Apprenez à utiliser les ensembles d’opérations XAudio2 pour appliquer un groupe d’appels de méthode en même temps.

Débogage des problèmes audio dans XAudio2

Apprenez à définir le niveau de journalisation de débogage pour XAudio2.

Ressources Media Foundation

Media Foundation (MF) est une plate-forme de médias pour la diffusion audio et la lecture vidéo. Media Foundation (MF) est une plate-forme de médias pour la diffusion audio et la lecture vidéo. Vous pouvez utiliser les API de Media Foundation pour diffuser en continu des flux audio et vidéo encodés et compressés avec une variété d’algorithmes.

Rubrique Description

À propos de Media Foundation

Cette section contient des informations générales sur les API Media Foundation et les outils disponibles pour leur prise en charge.

Media Foundation : notions essentielles

Cette rubrique présente certains concepts que vous devez comprendre avant d’écrire une application Media Foundation.

Architecture Media Foundation

Cette section décrit la conception générale de Microsoft Media Foundation, ainsi que les primitives et le pipeline de traitement multimédia qu’il utilise.

Capture audio/vidéo

Cette rubrique explique comment utiliser Microsoft Media Foundation pour effectuer la capture audio et vidéo.

Lecture audio/vidéo

Cette rubrique décrit comment implémenter la lecture audio/vidéo dans votre application.

Formats multimédias pris en charge dans Media Foundation

Cette rubrique répertorie les formats multimédias que Microsoft Media Foundation prend en charge en mode natif. (Des tiers peuvent prendre en charge des formats supplémentaires en écrivant des plug-in personnalisés.)

Codage et création de fichier

Cette rubrique explique comment utiliser Microsoft Media Foundation pour effectuer le codage audio et vidéo et créer des fichiers multimédias.

Codecs Windows Media

Cette rubrique décrit comment utiliser les fonctionnalités des codecs audio et vidéo Windows Media pour produire et consommer des flux de données compressées.

Référence de programmation Media Foundation

Cette section contient des informations de référence sur les API Media Foundation.

Exemples du kit de développement logiciel Media Foundation

Cette section répertorie les exemples d’applications qui montrent comment utiliser Media Foundation.

Types multimédias XAML de Windows Runtime

Si vous utilisez l’interopérabilité DirectX-XAML, vous pouvez incorporer les API multimédias XAML Windows Runtime dans vos applications UWP à l’aide de DirectX avec C++ pour des scénarios de jeu plus simples.

Rubrique Description

Windows.UI.Xaml.Controls.MediaElement

Élément XAML qui représente un objet contenant des données audio, vidéo ou les deux.

Audio, vidéo et appareil photo

Découvrez comment incorporer du contenu audio et vidéo de base dans votre application pour la plateforme Windows universelle (UWP).

MediaElement

Découvrez comment lire un fichier multimédia stocké localement dans votre application UWP.

MediaElement

Découvrez comment diffuser un fichier multimédia avec une faible latence dans votre application pour UWP.

Diffusion multimédia

Découvrez comment utiliser le Contrat Lire sur pour diffuser du contenu multimédia sur un autre appareil à partir de votre application pour UWP.

Référence