Skip to main content

SetShapeFiltVolCommand

Initialise une commande FLTVOL SHAPE.

Syntaxe

Paramètres

command   _Inout_
Type : SHAPE_FLOWGRAPH_COMMAND*
La commande SHAPE_FLOWGRAPH_COMMAND à initialiser. contextId   
Type : UINT32
ID (index) du contexte Filtre/Volume auquel cette commande fera référence. inputMixBuffer   
Type : UINT32
ID du tampon de mixage d’entrée. outputMixBuffer   
Type : UINT32
ID du tampon de mixage de sortie.

Valeur de retour

Type : HRESULT Si la fonction réussit, elle retourne S_OK. Si un ou plusieurs des arguments ne sont pas valides, la fonction retourne E_INVALIDARG.

Remarques

Le bloc Filtre/Volume (FLTVOL) sert à modéliser l’occlusion des sons, c’est-à-dire le son qui contourne ou traverse un objet, et distribue l’énergie sonore à plusieurs haut-parleurs pour modéliser la direction d’où provient le son. Le bloc FLTVOL prend un seul canal de données d’entrée d’un tampon de mixage, le filtre et en ajuste le volume, puis écrit la sortie dans un tampon de mixage. En général, plusieurs contrôles FLTVOL sont utilisés pour générer un panoramique à une entrée et plusieurs sorties, comme un panoramique ambiophonique. Le panoramiqueur sert généralement à prendre un son et à effectuer un panoramique sur n haut-parleurs, plus un ou plusieurs effets de réverbération. L’ajout du filtre à variables d’état permet à un titre de créer facilement des effets de distance améliorés ainsi que des effets d’occlusion et d’obstruction de style I3DL2. Par sa nature, le filtre à variables d’état peut créer des résonances qui font dépasser 1,0 (ou -1,0) aux valeurs intermédiaires. Pour atténuer les problèmes causés par la saturation des valeurs intermédiaires, le bloc FLTVOL dispose d’une mise à l’échelle de marge programmable, appliquée au signal entrant puis compensée à la sortie. La mise à l’échelle est réalisée par un décalage arithmétique à droite des données d’un certain nombre de bits. Le champ de marge du contexte spécifie le nombre de bits de décalage à droite que reçoit le signal entrant avant le traitement FLTVOL (0, 1, 2 ou 3). Ainsi, en spécifiant une valeur de marge de 3, le filtre à variables d’état peut conserver 3 bits supplémentaires (18 dB) de marge pour les résonances et les dépassements créés à l’interne. Bien entendu, le décalage à droite des données entrantes réduit nécessairement la précision dans le bas de l’échelle. Les bits de marge les plus bas du signal audio entrant sont perdus définitivement. Par conséquent, les bits de marge ne devraient généralement être spécifiés à une valeur non nulle que s’il est déterminé qu’une saturation interne s’est produite dans le filtre à variables d’état. Pour ce faire, vérifiez la valeur du bit de dépassement interne dans le contexte FLTVOL. Lorsque les données sources d’origine sont sur 16 bits, par exemple si les données sources d’origine sont au format XBOX Media Audio (XMA), les bits de marge peuvent habituellement être réglés à leur maximum (3) sans changement perceptible du son, puisque les bits de poids faible sont de toute façon complétés par des zéros. L’implémentation flexible du filtre à variables d’état permet également d’appliquer un filtrage résonant à une voix afin de faciliter la création d’effets audio intéressants et de variations. Les paramètres du filtre et les attributs de volume sont ajustés progressivement, échantillon par échantillon, afin d’offrir une transition fluide entre les points de consigne d’entrée et de sortie. Le bloc FLTVOL est implémenté sous forme de filtre de Chamberlin. Le filtre offre trois modes, passe-haut, passe-bas et passe-bande, avec un contrôle variable de Q (bande passante). Les paramètres du filtre de Chamberlin sont calculés comme suit.
Les paramètres f et q sont calculés par logiciel à l’extérieur du bloc du moteur de traitement audio matériel évolutif (SHAPE). Lorsqu’un coefficient est mis à jour, il progresse vers la nouvelle valeur au cours d’une trame audio. Des bits de contrôle servent à déterminer quelle sortie (coupe-bande, passe-haut, passe-bande ou passe-bas) est utilisée comme sortie finale du bloc FLTVOL. Les données de contexte de chaque canal ou flux sont stockées en mémoire système. Bien que les performances soient limitées à 2560 flux simultanés à 48 kHz, ce qui signifie que SHAPE peut traiter jusqu’à 2560 contextes FLTVOL par trame audio, le nombre de contextes adressables en mémoire est plus grand afin de simplifier les scénarios de réutilisation de flux. Le comportement de filtrage est conçu pour être identique à celui de XAudio2.

Configuration requise

En-tête : shapeflowgraph.h Plateformes prises en charge : consoles de la famille XBOX One et consoles XBOX Series

Voir aussi

Vue d’ensemble de l’ACP Vue d’ensemble de SHAPE shapeflowgraph
Last modified on October 6, 2026