Graphique audio XAudio2
L’ensemble de toutes les voix, avec leurs effets contenus et leurs interconnexions, est appelé graphique de traitement audio. Le graphique prend un ensemble de flux audio du client en tant qu’entrée, les traite et remet le résultat final à un périphérique audio. Tout le traitement audio a lieu dans un thread distinct avec une périodicité définie par le quantum du graphique (actuellement 10 millisecondes sur Microsoft Windows et 5 1/3 millisecondes sur Xbox 360). Toutes les millisecondes quantiques, le thread se réveille et disperse les millisecondes quantiques des données audio dans l’ensemble du graphique. Pour obtenir un exemple de création d’un graphe audio de base, consultez Comment : Créer un graphique de traitement audio de base.
Un graphique audio simple :
Le client peut contrôler l’état du graphique dynamiquement pendant son exécution. Les actions de contrôle peuvent inclure l’ajout et la suppression d’entrées et de sorties, la modification des effets internes et des interconnexions, la définition de paramètres sur les effets, l’activation et la désactivation de parties du graphique, et ainsi de suite. Pour obtenir un exemple de modification dynamique d’un graphique audio, consultez Guide pratique pour ajouter ou supprimer dynamiquement des voix d’un graphique audio.
Traitement du graphique
Tout appel de méthode qui affecte n’importe quel objet dans le graphique est considéré comme un changement d’état de graphique. Les modifications apportées à l’état du graphique sont les suivantes :
- Création et destruction de voix
- Démarrage ou arrêt des voix
- Modification des destinations d’une voix
- Modification des chaînes d’effets
- Activation ou désactivation des effets
- Définition de paramètres sur les effets ou sur les CONTRÔLEURS intégrés, les filtres, les volumes et les mélangeurs intégrés
Tous les ensembles de modifications d’état de graphe peuvent être combinés et effectués en tant que transaction atomique. Ces opérations atomiques sont appelées jeux d’opérations. Ils sont abordés dans la vue d’ensemble des jeux d’opérations XAudio2.
Représentation des données internes
Les données audio dans le graphe XAudio2 sont toujours stockées et traitées sous forme PCM à virgule flottante 32 bits. Toutefois, le nombre de canaux et le taux d’échantillonnage peuvent varier dans le graphique. Le format dans lequel une voix donnée traite l’audio est déterminé par le type de voix et les paramètres utilisés pour créer la voix.
Type de voix | Paramètres |
---|---|
IXAudio2SourceVoice | Nombre de canaux et taux d’échantillonnage des voix auxquelles la voix source envoie de l’audio. |
IXAudio2SubmixVoice et IXAudio2MasteringVoice | Les arguments InputChannels et InputSampleRate utilisés pour créer la voix de sous-mélange/mastering. |
Format Conversion
XAudio2 gère toutes les conversions de taux d’échantillonnage ou de canal requises en tant que déplacement audio d’une voix vers une autre, avec les limitations suivantes :
- Toutes les voix de destination d’une voix particulière doivent être exécutées au même taux d’échantillonnage
- Les effets d’une chaîne d’effets peuvent modifier le nombre de canaux de l’audio, mais pas son taux d’échantillonnage
- Le nombre de canaux de sortie d’une chaîne d’effet doit correspondre à celui des voix auxquelles elle envoie
- Aucune modification dynamique du graphique ne peut être apportée, ce qui interrompt les règles ci-dessus
Côté entrée, les voix sources peuvent lire des données dans n’importe quel format PCM valide ou dans l’un des formats compressés pris en charge par XAudio2. Si les données d’entrée sont compressées, elles sont décodées en PCM à virgule flottante avant toute autre opération de traitement.
Côté sortie, la maîtrise des voix ne peut produire que des données PCM. Ces données répondent toujours aux mêmes restrictions décrites ci-dessus pour les données PCM d’entrée.
Rubriques connexes