Partager via


Contrôle de volume et de tangage XAudio2

Cette rubrique décrit le contrôle de volume et de pas XAudio2.

Contrôle du volume

Les niveaux de volume sont exprimés sous forme de multiplicateurs d’amplitude à virgule flottante entre -XAUDIO2_MAX_VOLUME_LEVEL et XAUDIO2_MAX_VOLUME_LEVEL (-224 à 224), avec un gain maximal de 144,5 dB. Un volume de 1.0 signifie qu’il n’y a pas d’atténuation ou de gain; 0 signifie silence ; et les niveaux négatifs peuvent être utilisés pour inverser la phase audio. Deux fonctions inline sont fournies dans XAudio2.h pour les convertir entre des unités de volume : XAudio2DecibelsToAmplitudeRatio et XAudio2AmplitudeRatioToDecibels.

Vous pouvez appliquer un niveau de volume à l’audio à plusieurs points pendant qu’il circule dans le graphique XAudio2 :

  • Tous les types de voix appliquent un niveau de volume global à leur entrée, qu’ils contrôlent à l’aide de la méthode IXAudio2Voice::SetVolume . Dans les voix de sous-mixage et de mastering, le niveau de volume global est appliqué juste avant la chaîne de filtre et d’effet intégrée de la voix. Dans les voix sources, le niveau de volume global est appliqué après le filtre intégré et la chaîne d’effet de la voix.
  • Les voix appliquent un niveau de volume par canal à leur sortie, qu’elles contrôlent à l’aide de la méthode IXAudio2Voice::SetChannelVolumes . Le niveau de volume par canal est appliqué juste après la conversion finale du taux d’échantillonnage de la voix et avant son envoi à d’autres voix.
  • Chaque connexion entre une voix et une autre a une table de niveaux utilisés pour envoyer l’audio de chaque canal source à chaque canal cible, qui est contrôlé à l’aide de la méthode IXAudio2Voice::SetOutputMatrix .

Tous les volumes globaux et les volumes de canal par défaut sont initialement 1.0. Par défaut, toutes les matrices au niveau de l’envoi ont des valeurs appropriées qui préservent la puissance du signal et le positionnement du canal aussi précisément que possible. Pour plus d’informations, consultez vue d’ensemble du mappage de canaux par défaut XAudio2 .

Notes

XAudio2 ajuste automatiquement les niveaux de volume en fonction des paramètres du haut-parleur de l’utilisateur pour maintenir un niveau de volume cohérent entre les configurations. Si les paramètres de l’utilisateur ne correspondent pas à leur configuration physique, le volume sera trop fort ou trop faible par rapport à un système avec des paramètres précis. Par exemple, un système configuré pour les haut-parleurs surround 5.1 qui n’ont que deux haut-parleurs connectés sonnera trop doux. XAudio2 ne peut pas détecter si les paramètres du haut-parleur utilisateur correspondent correctement à leur configuration physique.

 

Contrôle de tangage

Les pitchs sont exprimés sous forme de rapports de débit d’entrée/débit de sortie compris entre 1/1 024 et 1 024/1, inclus. Un rapport de 1/1 024 abaisse le pas de 10 octaves, tandis qu’un rapport de 1 024/1 l’élève de 10 octaves. Vous pouvez uniquement utiliser la méthode IXAudio2SourceVoice::SetFrequencyRatio pour appliquer des ajustements de hauteur aux voix sources, et uniquement si elles n’ont pas été créées avec l’indicateur XAUDIO2_VOICE_NOPITCH. Le rapport de fréquence par défaut est de 1/1, c’est-à-dire qu’aucun changement de pas. Deux fonctions inline sont fournies dans XAudio2.h pour convertir entre les ratios de fréquence et les demi-tons : XAudio2FrequencyRatioToSemitones et XAudio2SemitonesToFrequencyRatio.

Contrôle de volume et de tangage

Guide de programmation XAudio2

Guide pratique pour modifier le pitch vocal

Guide pratique pour modifier le volume vocal